• Elasticsearch-head插件使用小结


    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索引中刚刚批量插入的数据,如下:

  • 相关阅读:
    mySql存储emoji表情报错(mysql incorrect string value)
    git初始化本地项目并推送到git服务器
    linux安装kafka
    解决:ngxin做http强制跳转https,接口的POST请求变成GET
    idea生成类注释和方法注释的正确方法
    Netty学习笔记
    Centos7下安装运行keepalived
    logback.xml配置文件详解
    IDEA快捷键笔记
    word,excel,ppt,txt转换为 PDF
  • 原文地址:https://www.cnblogs.com/tdp0108/p/11105848.html
Copyright © 2020-2023  润新知