ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。 -----百度百科html
而ElasticSearch-head就是一款能链接ElasticSearch搜索引擎,并提供可视化的操做页面对ElasticSearch搜索引擎进行各类设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就能够对ElasticSearch中的数据进行增删改查、建立或者删除索引等操做。相似于使用navicat工具链接MySQL这种关系型数据库,对数据库作操做。python
对于如何安装ElasticSearch和ElasticSearch-head下面不作说明,百度下,网上有不少资料~mysql
在登录和访问head插件地址和ElasticSearch前须要事先在服务器上安装和配置好ElasticSearch以及head插件。安装完后,默认head插件的web端口为9100,ElasticSearch服务的端口为9200,使用浏览器访问head地址,如http://IP地址:9100/,推荐使用Chrome浏览器,head插件对Chrome浏览器兼容更佳。进入head页面后将ElasticSearch链接输入框中填写正确的ElasticSearch服务地址,如http://IP地址:9200/。访问后效果以下图:web
概览页面:sql
上图为概览页面效果,简单说明下以上5个画了红框的地方数据库
1:集群健康值。Elasticsearch 中其实有专门的衡量索引健康情况的标志,分为三个等级:json
若是只有一台主机的话,其实索引的健康情况也是 yellow,全部上图显示为yellow。由于一台主机,集群没有其余的主机能够防止副本,因此说,这就是一个不健康的状态,所以集群也是十分有必要的。浏览器
2:表示在Elasticsearch已经建立的索引(index)。包含了索引的名称、索引的大小(size)、索引的数据量(docs),而且经过【信息】和【动做】能够查看索引信息或者给索引建别名。服务器
3:表示Elasticsearch节点。上图中的带有感叹号的Unassigned表示未分配的节点,带有星号的表示是主节点,其节点名称叫:Hu9Suoy,并能查看节点信息。elasticsearch
4:表示索引分片,Elasticsearch数据就存储在这些分片中。
5:查看Elasticsearch相关的信息和刷新head插件。如查看Elasticsearch版本信息,以下图:
索引页面:
索引页面能看到当前Elasticsearch中已经建立的索引,这里的索引相似于传统关系型数据库中的一张张表,而且能够在该页面上新建索引。
数据浏览页面:
数据浏览页面能查看全部索引分片的数据
基本查询和复合查询页面:
这两个页面作数据检索,基本查询页面仅提供简单的查询并不能修改数据,复合查询页面提供编写RESTful接口风格的请求,来对Elasticsearch中的数据进行各类增删改查等操做请求,其页面分别以下:
基本查询页面
复合查询页面
基本查询页面能够对数据进行简单的查询。
查询关键字有三种:分别是:must,should,must_not
以下图基本查询实例:
默认返回结果使用table展现,即表格形式,还有json、csv形式展现
其中检索条件有诸多,以下图:
一般term表示精确匹配,wildcard : 通配符匹配 prefix:前缀匹配,range区间查询,如使用wildcard查找带有“粤BN69”的数据:
其它的检索条件也能够尝试检索下
复合查询页面提供编写RESTful接口风格的请求,使用json进行复杂的查询,也可发送put请求新增及更新索引,使用delete请求删除索引等等来对Elasticsearch中的数据或者索引进行各类增删改查等操做请求。
ES以RESTFul风格来命名API的, 其API的基本格式相似以下:
以http来决定请求的方法或者动做: 经常使用的有GET/PUT/POST/DELETE
好比咱们查询st_face这个索引,经过索引类型face_info(这里的索引类型相似于mysql数据库中建立的索引),搜索分片属性为time的字段,以下图效果:
插入数据使用POST或者PUT方法,只是POST方法为自动生成id,而PUT方法须要指明id,以下图实例:
POST方法
PUT方法:
删除数据使用DELETE方法,实例以下:
注:
Head插件中编写json发送请求比较复杂和不方便, 可使用postman或者python ElasticSearch模块提供的API等工具进行请求的发送,来实现对ElasticSearch的数据和索引进行增删改查。
Python Elasticsearch模块是Python的一个第三方模块库,须要手动安装,若是已经安装了pip工具,就能够直接经过命令:pip install elasticsearch一键安装。Elasticsearch API封装并提供了可操做Elasticsearch的几乎全部动做,包括经常使用的Elasticsearch数据的增删改查和索引操做。
如下是一些参考文档地址:
Elasticsearch官方API文档地址:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html
Elasticsearch模块的使用:
http://www.javashuo.com/article/p-tzribfbf-d.html
下面经过一个实例编写脚本,实现链接Elasticsearch,并批量向Elasticsearch数据库中的st_face索引中写入数据,在PyCharm中编辑以下代码:
执行完成后,在Elasticsearch中查看st_face索引中刚刚批量插入的数据,以下: