您的位置:首页 > 其它

Elasticsearch-head插件使用小结

2019-06-29 10:41 218 查看

1、ElasticSearch-head是什么?

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。              -----百度百科

而ElasticSearch-head就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。

对于如何安装ElasticSearch和ElasticSearch-head下面不做说明,百度下,网上有很多资料~

2、ElasticSearch-head页面介绍

2.1 head插件登陆和连接ElasticSearch

在登陆和访问head插件地址和ElasticSearch前需要事先在服务器上安装和配置好ElasticSearch以及head插件。安装完后,默认head插件的web端口为9100,ElasticSearch服务的端口为9200,使用浏览器访问head地址,如http://IP地址:9100/,推荐使用Chrome浏览器,head插件对Chrome浏览器兼容更佳。进入head页面后将ElasticSearch连接输入框中填写正确的ElasticSearch服务地址,如http://IP地址:9200/。访问后效果如下图:

2.2 head插件页面

概览页面:

上图为概览页面效果,简单说明下以上5个画了红框的地方

1:集群健康值。Elasticsearch 中其实有专门的衡量索引健康状况的标志,分为三个等级:

  • green,绿色。这代表所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
  • yellow,黄色。所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果更多的分片消失,你就会丢数据了。所以可把 yellow 想象成一个需要及时调查的警告。
  • red,红色。至少一个主分片以及它的全部副本都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。

如果只有一台主机的话,其实索引的健康状况也是 yellow,所有上图显示为yellow。因为一台主机,集群没有其他的主机可以防止副本,所以说,这就是一个不健康的状态,因此集群也是十分有必要的。

2:表示在Elasticsearch已经创建的索引(index)。包含了索引的名称、索引的大小(size)、索引的数据量(docs),并且通过【信息】和【动作】可以查看索引信息或者给索引建别名。

3:表示Elasticsearch节点。上图中的带有感叹号的Unassigned表示未分配的节点,带有星号的表示是主节点,其节点名称叫:Hu9Suoy,并能查看节点信息。

4:表示索引分片,Elasticsearch数据就存储在这些分片中。

5:查看Elasticsearch相关的信息和刷新head插件。如查看Elasticsearch版本信息,如下图:

索引页面:

索引页面能看到当前Elasticsearch中已经创建的索引,这里的索引类似于传统关系型数据库中的一张张表,并且可以在该页面上新建索引。

数据浏览页面:

数据浏览页面能查看所有索引分片的数据

基本查询和复合查询页面:

这两个页面做数据检索,基本查询页面仅提供简单的查询并不能修改数据,复合查询页面提供编写RESTful接口风格的请求,来对Elasticsearch中的数据进行各种增删改查等操作请求,其页面分别如下:

基本查询页面

复合查询页面

3、基本查询

基本查询页面可以对数据进行简单的查询。

查询关键字有三种:分别是:must,should,must_not

  • must子句:文档必须匹配must查询条件,相当于“=”;
  • should子句:文档应该匹配should子句查询的一个或多个;
  • must_not子句:文档不能匹配该查询条件,相当于“!=”;

如下图基本查询实例:

默认返回结果使用table展示,即表格形式,还有json、csv形式展示

其中检索条件有诸多,如下图:

通常term表示精确匹配,wildcard : 通配符匹配  prefix:前缀匹配,range区间查询,如使用wildcard查找带有“粤BN69”的数据:

其它的检索条件也可以尝试检索下

4、复合查询

复合查询页面提供编写RESTful接口风格的请求,使用json进行复杂的查询,也可发送put请求新增及更新索引,使用delete请求删除索引等等来对Elasticsearch中的数据或者索引进行各种增删改查等操作请求。

ES以RESTFul风格来命名API的, 其API的基本格式类似如下:

以http来决定请求的方法或者动作: 常用的有GET/PUT/POST/DELETE

4.1查询数据

比如我们查询st_face这个索引,通过索引类型face_info(这里的索引类型类似于mysql数据库中创建的索引),搜索分片属性为time的字段,如下图效果:

4.2插入数据

插入数据使用POST或者PUT方法,只是POST方法为自动生成id,而PUT方法需要指明id,如下图实例:

POST方法

PUT方法:

4.3修改数据

4.4删除数据

删除数据使用DELETE方法,实例如下:

注:

Head插件中编写json发送请求比较复杂和不方便, 可以使用postman或者python ElasticSearch模块提供的API等工具进行请求的发送,来实现对ElasticSearch的数据和索引进行增删改查。

5、Python 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模块的使用:

https://www.cnblogs.com/xiao987334176/p/10130712.html

下面通过一个实例编写脚本,实现连接Elasticsearch,并批量向Elasticsearch数据库中的st_face索引中写入数据,在PyCharm中编辑如下代码:

执行完成后,在Elasticsearch中查看st_face索引中刚刚批量插入的数据,如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: