elasticsearch使用操作部分
本片文章记录了elasticsearch概念、特点、集群、插件、API使用方法。
1.elasticsearch的概念及特点。
概念:elasticsearch是一个基于lucene的搜索服务器。lucene是全文搜索的一个框架。
特点:
- 分布式,可扩展,高可用。
- 能够实时搜索分析数据。
- 复杂的RESTful API。
总结:是一个采用RESTful API标准,实现分布式、可扩展以及高可用的实时数据存储分析的全文搜索工具。
2.elasticsearch涉及的相关概念。(关系非关系对比)
相关概念:
- Node: 装有一个elasticsearch服务器的节点。
- Cluster: 有一个或多个Node组成的集群,共同工作。
- Document: 一个可被搜素的基础信息单元。
- Index: 拥有相似特征的文档的集合。
- Type: 一个索引中可以定义一种或多种类型。
- Filed: 是elasticsearch的最小单位,相当于数据的某一列。
- Shards: 索引分成若干份,每一份就是一个shard。默认5份。
- Replics: 是索引的一份或者多份拷贝。
关系型与非关系型对比:
database ----> Index
table ----> Type
row ----> Document
column ----> Filed
内置字段和字段类型:
- 内置字段:_uid,_id,_type,_source,_all,_analyzer,_boost,_parent,_routing,_index,_size,_timestamp,_ttl
- 字段类型:string,integer/long,float/double,boolean,null,date
3.elasticsearch架构详解。
4.什么是倒排索引。
概念:倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案。是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。
正向索引和倒排索引对比:
内容 --正向--> 关键字/词
内容 <--倒排-- 关键字/词
5.RESTful API以及curl。
概念:RESTful 表现层状态转化。
- 表现层:图片,文字,视频等
- 转化后:资源
API:应用程序接口。
RESTful API:一种资源操作的应用程序接口。
curl:一个利用URL语法在命令行下工作的文件传输工具,支持文件上传和下载。
curl常用参数:
- I 获取头部信息
- v 获取握手过程
- o 保存文件
curl -o baidu.html www.baidu.com
curl -I -v www.baidu.com
6.elasticsearch单机/集群安装配置。
单机安装(node1上安装elasticsearch)
①.安装jdk1.8_65
[root@node1 ~]# rpm -ivh jdk-8u65-linux-x64.rpm
②.下载安装elasticsearch,并设置开启自启动。
[root@node1 ~]# wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.4/elasticsearch-2.3.4.rpm
[root@node1 ~]# rpm -ivh elasticsearch-2.3.4.rpm
[root@node1 ~]# chkconfig --add elasticsearch
③.修改配置文件,并启动服务。
[root@node1 ~]# grep -Ev "^#|^$" /etc/elasticsearch/elasticsearch.yml
network.host: 192.168.3.1
http.port: 9200
[root@node1 ~]# service elasticsearch start
④.浏览器访问IP:9200查看结果。
http://192.168.3.1:9200
集群安装(node1|node2安装elasticsearch)
①.node2上安装,安装同单机node1一样。
②.修改node1和node2配置文件。
node1:
[root@node1 ~]# grep -Ev "^#|^$" /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-xkops
node.name: node-1
network.host: 192.168.3.1
http.port: 9200
node2:
[root@node2 ~]# grep -Ev "^#|^$" /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-xkops
node.name: node-2
network.host: 192.168.3.2
discovery.zen.ping.unicast.hosts: ["192.168.3.1"]
*注释:关于单播和多播,为了防止节点的任意加入,官方建议集群关闭多播,使用单播集群。单播列表只要能保证与集群中任一节点能通信即可,不需要列出所有集群节点。
7.elasticsearch常用插件。(head,kopf,bigdesk)
在线安装:
①.安装head插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
②.安装bigdesk插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install hlstudio/bigdesk
③.安装kopf插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
离线安装:
①.安装head插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install file:/elk/soft/elasticsearch-head-master.zip
②.安装bigdesk插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install file:/elk/soft/bigdesk-master.zip
③.安装kopf插件。
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install file:/elk/soft/elasticsearch-kopf-master.zip
浏览器端访问插件:
http://192.168.3.1:9200/_plugin/head
http://192.168.3.1:9200/_plugin/bigdesk
http://192.168.3.1:9200/_plugin/kopf
8.使用RESTful API操作elasticsearch。
①.索引初始化配置:创建、获取、删除。
初始化配置school索引:
curl -XPUT 'http://192.168.3.1:9200/school/' -d '{
"settings":{
"index":{
"number_of_shards": ,
"number_of_replicas":
}
}
}'
获取索引配置信息:
curl -XGET 'http://192.168.3.1:9200/school/_settings/'
curl -XGET 'http://192.168.3.1:9200/school,index_name/_settings/'
curl -XGET 'http://192.168.3.1:9200/_all/_settings/'
删除索引配置信息:
curl -XDELETE 'http://192.168.3.1:9200/school/'
curl -XDELETE 'http://192.168.3.1:9200/school,index_name/'
curl -XDELETE 'http://192.168.3.1:9200/_all/'
②.创建、更新、删除索引文档。
创建索引文档:
curl -XPUT 'http://192.168.3.1:9200/school/students/1' -d '{
"title": "devops",
"name":{
"first": "guzhang",
"last": "wu"
},
"age":
}'
*注释:school为索引名称,students为文档类型,1为文档ID(可省略)。
获取索引文档(通过source指定字段获取信息):
curl -XGET 'http://192.168.3.1:9200/school/students/1'
curl -XGET 'http://192.168.3.1:9200/school/students/1?_source=name,age'
更新索引文档:
- 覆盖 意即重新创建
- _update 使用API更新
curl -XPOST 'http://192.168.3.1:9200/school/students/1/_update' -d '{
"doc":{
"age":
}
}'
删除索引文档:
curl -XDELETE 'http://192.168.3.1:9200/school/students/1'
使用bulk批量创建文档:
官方元数据:
https://www.elastic.co/guide/en/kibana/3.0/snippets/shakespeare.json
https://raw.githubusercontent.com/bly2k/files/master/accounts.zip
导入官方元数据:
[root@node1 ~]# curl -XPOST 'http://192.168.3.1:9200/shakesapear/act/_bulk?pretty' --data-binary @shakespeare.json
[root@node1 ~]# curl -XPOST 'http://192.168.3.1:9200' --data-binary @account.json
使用mget批量获取文档:
mget可以快速的同时检索多个文档。mget API参数是一个docs数组,数组的每个节点定义一个文档的——index、_type、_id元数据。
获取多个索引下文档信息:
curl -XGET 'http://192.168.3.1:9200/_mget' -d '{
"docs":[
{
"_index": "bank",
"_type:": "account",
"_id":
},
{
"_index": "bank",
"_type:": "account",
"_id":
},
{
"_index": "shakespeare",
"_type:": "act",
"_id":
}
]
}'
获取相同索引下多个文档信息,并指定字段获取(_source)。
curl -XGET 'http://192.168.3.1:9200/bank/account/_mget' -d '{
"docs":[
{
"_id": ,
"_source": "age"
},
{
"_id": ,
"_source": "firstname"
}
]
}'
mapping:
映射:创建索引的时候,可以预先定义字段的类型及相关属性。
作用:这样会让索引建立得更加的细致和完善。
分类:静态映射和动态映射。
动态映射:自动根据数据进行相应的映射。
静态映射:自定义字段映射数据类型。
*提示:可以修改如下文件,共用mapping。
/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-elasticsearch-2.7.1-java/lib/logstash/outputs/elasticsearch/elasticsearch-template.json
elasticsearch使用操作部分的更多相关文章
- ElasticSearch Index操作源码分析
ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...
- 使用Spring Data ElasticSearch+Jsoup操作集群数据存储
使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...
- Elasticsearch批处理操作——bulk API
Elasticsearch提供的批量处理功能,是通过使用_bulk API实现的.这个功能之所以重要,在于它提供了非常高效的机制来尽可能快的完成多个操作,与此同时使用尽可能少的网络往返. 1.批量索引 ...
- elasticsearch简单操作
现在,启动一个节点和kibana,接下来的一切操作都在kibana中Dev Tools下的Console里完成 创建一篇文档 将小黑的小姨妈的个人信息录入elasticsearch.我们只要输入 PU ...
- JestClient 使用教程,教你完成大部分ElasticSearch的操作。
本篇文章代码实现不多,主要是教你如何用JestClient去实现ElasticSearch上的操作. 授人以鱼不如授人以渔. 一.说明 1.elasticsearch版本:6.2.4 . jdk版本: ...
- Elasticsearch 安装操作手册
第一部分 ES安装环境的准备和初始化 现在交心的版本Elasticsearch 5.6.3 官方建议安装Oracle的JDK8,安装前先检查机器是否已安装JDK. Step 1 检查环境机器是否已安装 ...
- elasticsearch简单操作(二)
让我们建立一个员工目录,假设我们刚好在Megacorp工作,这时人力资源部门出于某种目的需要让我们创建一个员工目录,这个目录用于促进人文关怀和用于实时协同工作,所以它有以下不同的需求:1.数据能够包含 ...
- elasticsearch聚合操作——本质就是针对搜索后的结果使用桶bucket(允许嵌套)进行group by,统计下分组结果,包括min/max/avg
分析 Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计.它很像SQL中的GROUP BY但是功能更强大. 举个例子,让我们找到所有职员中最大 ...
- python使用elasticsearch模块操作elasticsearch
1.创建索引 命令如下 from elasticsearch import Elasticsearch es = Elasticsearch([{"host":"10.8 ...
随机推荐
- HDU2138 & 米勒拉宾模板
题意: 给出n个数,判断它是不是素数. SOL: 米勒拉宾裸题,思想方法略懂,并不能完全理解,所以实现只能靠背模板.... 好在不是很长... Code: /*==================== ...
- BZOJ1012[JSOI2008]最大数maxnumber 题解
题目大意: 维护一个数列,有两种操作:1. 查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2.插入操作:将n加上t,其中t是最近一次查询操作的答案(如果还未执行 ...
- 洛谷 P1160 队列安排 Label:链表 数据结构
题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...
- DOM操作优化
文档对象模型(DOM)是一个独立 于特定语言的应用程序接口.在浏览器中,DOM接口是以JavaScript语言实现的,通过JavaScript来操作浏览器页面中的元素,这使得 DOM成为了JavaSc ...
- 【noiOJ】p8211 (PS:二分浮点数的精度问题)
05:派 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 我的生日要到了!根据习俗,我需要将一些派分给大家.我有N个不同口味.不同大小的派.有F个朋友会来参加 ...
- java分享第二天(变量及命名规范)
1 JAVA是一种强类型语言,每个变量都必须声明其类型 2 Java变量是程序中最基本的存储单元,其主要包括变量名,变量类型和作用域 3 声明变量可以一行声明多个 4局部变量:方法或语句块内部定义的变 ...
- [转]as3事件流机制彻底理解
题记: 看过网上一些as3事件流的教程,觉得大多都讲得不甚清楚,让人不能直观的理解事件流.而这篇教程以将事件流过程比喻成捕鱼过程,形象简单. 在此基础上对于as3事件流总算有了全面的理解.事件流机制说 ...
- 一个网页抓取的类支持get+post+cookie存储
前段时间提取了一个工具类,分享给大家: <?php class httpconnector { private $curl; private $cookie; private $kv; func ...
- Qt Load and Save PCL/PLY 加载和保存点云
Qt可以跟VTK和PCL等其他库联合使用,十分强大,下面的代码展示了如何使用Qt联合PCL库来加载和保存PCL/PLY格式的点云: 通过按钮加载点云: void QMainWindow::on_pb_ ...
- 内置函数----整理、例题 、xmin
-----------数值函数 ---绝对值 select abs(-123) from dual; --求模 select mod (12,5) from dual; --取整 --上限值 sele ...