如何使用Linux查询ES索引 (linux 查询es索引)

Elasticsearch(ES)是一个流行的开源全文搜索和分析引擎。它使用Lucene作为搜索引擎核心,并提供了易用的RESTful API。这使得开发者可以使用不同种类的编程语言来对Elasticsearch进行操作。本文将介绍如何使用Linux命令行和curl工具来查询ES索引。

步骤1: 安装curl和jq工具

curl和jq工具是Linux命令行下的两个非常常用工具,它们可以用来发送HTTP请求并处理ON数据。如果这两个工具还没有安装,请使用以下命令进行安装:

“`

sudo apt-get install curl

sudo apt-get install jq

“`

步骤2: 安装Elasticsearch

运行ES之前,需要先下载和安装它。首先要从官网上下载相应版本的代码包。下载完成后,解压缩该压缩包,即可按照以下命令来启动ES:

“`

cd elasticsearch-version/

./bin/elasticsearch

“`

等待一段时间,直到输出类似于“[INFO][node] [node-name] started”这样的信息时,表明成功启动了Elasticsearch。

步骤3: 发送查询请求

现在我们已经安装了curl和jq工具,并成功启动了Elasticsearch。我们可以开始执行一些基本的查询请求了。例如,我们可以查询/index/_search接口,它将返回索引中的所有文档。以下是查询请求的实例:

“`

curl -XGET ‘http://localhost:9200/index/_search’ | jq

“`

以上命令中,XGET是定义请求类型的方法,http://localhost:9200是ES服务器地址和端口,index是需要查询的索引名称。jq是一个对ON数据进行处理的工具,用于美化输出结果。

要获取特定的索引字段,例如title和content,我们需要在请求中指定查询参数如下所示:

“`

curl -XGET ‘http://localhost:9200/index/_search?q=title:test’ | jq

“`

以上命令中,q=title:test表示我们在title字段中搜索“test”关键字。如果要在两个字段中搜索,需要修改查询字符串:

“`

curl -XGET ‘http://localhost:9200/index/_search?q=title:test OR content:test’ | jq

“`

以上请求将在title和content字段中搜索“test”关键字。

步骤4: 使用查询DSL语言

在查询中使用查询DSL语言是使用ES最强大的功能之一。它允许开发者以更加复杂的方式查询索引数据。以下是使用DSL语言的查询请求示例:

“`

curl -XGET ‘http://localhost:9200/index/_search’ -H ‘Content-Type: application/json’ -d’

{

“query”: {

“bool”:{

“must”:[

{

“match”:{

“title”:”test”

}

},

{

“wildcard”:{

“content”:”*es*”

}

}

]

}

}

}’ | jq

“`

以上命令中,我们使用了bool查询和must查询,这法匹配title中包含“test”关键字和content中包含“es”通配符的文档。在这种情况下,我们使用了Content-Type标头和-d标志来在请求主体中指定ON字符串。

在这篇文章中,我们学习了如何使用Linux命令行和curl工具查询ES索引。我们已经讨论了安装和启动Elasticsearch的步骤,以及发送基本查询请求和使用DSL语言查询的方法。这些技术可以帮助我们找到感兴趣的数据,并帮助我们在大型文档库中搜寻特定的信息。

相关问题拓展阅读:

ES-URL查询实例解析

4.1、查询节点

heap.percent:堆内存,1/2更大内存-1和31之间取较小的值,高的话就是ES集群负担比较重,解决铅告:关闭一些索引(阈值差不多可以定在80左右)后会释放一部分heap.percent,但不会释放disk.percent

ram.percent:一直挺高,物理内存的使用情况,Lucene会将闲置的内存都占用做cache,如果有应用使用内存时,cache会被释放出来

cpu:一般不会很高,5以下吧,如果有很多query的话会高,如果一直高释放不掉运咐可能查询语句有问题

node.role:【mdi】master  data  i查询接口(可否在节点上查询)

4.2、查询节点健康状态

4.3、查询节点

disk.percent显示占用的硬盘空间

4.4、查询索引

4.5、查询索引的具体记录信息

4.6、查询字段是否存在

4.7、查询指定值的字段是否存在

4.8、查询并控制返回的记录条数

默认是10,范围为

4.9、查询并指旁激纯定起始位置

4.10、查询并按指定字段排序

4.11、模糊查询

4.12、比较大小查询

4.13、查询并不显示具体内容

4.14、包含指定字段

4.15、组合查询

4.16、范围查询

4.17、关闭和打开索引

4.18、删除符合条件的记录

转发自:

elasticsearch restclient 客户端 如何获取es库所有索引名称或列表

GET /_cat/indices这个接口不就是获取所有索引列表吗?吵早如果你只要索引名称用老碰握awk ‘{print $3}’取第三侍庆列就行了

ES索引生命周期管理

定义:以时间为导向对数据进行应用策略操作。

索引管理流程:热数据->暖数据->冷数据->数据归档->数据删除

索引策略动作:优先级、重索引、分片分配、只读、合并、收缩、冻结、删除

针对索引根据时间、空间、类型、优先级进行不同种类的管理策略。

示例:

a. 我需要将tdx_ 索引自动关闭30天前的数据,自动删除180天前的数据;

b. 我需要将jty_ 索引每达到100g新生成一个新的吵核二级索引;

c. 我需要将ths_ 和jty_ 索引在进行段合并时,之一优先顺序为ths索引,第二优先顺序为jty索引;

针对索引根据不同策略,进行相关的宴咐规则设计以及阶段设计

示例:

针对tdx_ 索引,我需要先合并,再收缩,再关闭,再删除;

针对jty_ 索引,我需要增加副本,再关闭,再删除

针对每个动作,编写索引的实际操作脚本

合并:

关闭:

针对每个策略,调用系统定时任务进行循环操作

ES7.0版本提供ILM策略进行es-stack的组件生命周期管理功能;

ES6.x及以下版本使用elasticsearch-curator进行索引策略动作;

使用ILM策略优先级比使用curator优先级更高,为了避免冲突,使用ILM进行索引管理后尽量避免使用curator再次进行管理;

通过将生命周期策略附加到用于创建索引模板的索引模板来控制索引在老化时的处理方式。您可以更新策略以修改新索引和现有索引的生命周期。

对于时间序列索引,索引生命周期中有四个阶段:

•热- 索引正在积极更新和查询。

•暖- 索引不再更新,但仍需要查升祥掘询。

•冷- 索引不再被更新,且很少被查询。数据仍然需要搜索,但如果这些查询速度较慢也没关系。

•删除- 不再需要索引,可以安全删除。

生命周期策略控制索引如何在这些阶段中转换以及在每个阶段对索引执行的操作。该政策可以指定:

•要转移到新索引的更大空间或时间。

•索引不再更新和主分片的数量可以减少。

•强制合并以永久删除标记为删除的文档。

•索引可以移动到性能较低的硬件。

•可用性不那么重要的索引和副本的数量可以减少。

•索引需要进行安全删除。

例如,如果要将一组ATM中的度量标准数据编入索引到Elasticsearch,则可以定义一个策略:

1.当索引达到50GB时,转到新索引。

2.将旧索引移动到暖数据阶段,将其标记为只读,并将其合并缩小为单个分片单个数据段。

3.7天后,将索引移至冷数据阶段并将其移至较便宜的硬件。

4.达到所需的30天保留期后,删除索引。

Curator安装

Centos7

wget

Centos6

wget

rpm -ivh elasticsearch-curator*.rpm

软件安装完毕后,得到安装目录:/opt/elasticsearch-curator

安装完毕后,需要新建一个主配置文件curator.yml:

Curator策略编写

官方链接:

目前支持的策略动作有:

Alias(重新别名)

Allocation(分配分片)

Close(关闭索引)

Cluster Routing(集群路由)

Create Index(创建索引)

Delete Indices(删除索引)

Delete Snapshots(删除快照)

Forcemerge(段合并)

Index Settings(索引设置)

Open(打开索引)

Reindex(重新索引)

Replicas(副本分配)

Restore(重新存储)

Rollover(滚动索引)

Shrink(收缩索引)

Snapshot(索引快照)

单个策略有以下几部分组成:

a.动作名称,例如close,open,shrink,

官方链接:

b.动作参数,例如忽略空索引,之一个执行错误继续执行后面的动作,

官方链接:

c.过滤器,例如按照时间,按照空间,按照分片等维度类型来过滤,

官方链接:

d.过滤参数,例如设置时间大小,空间大小,索引状态模式进行过滤器的增强参数,

官方链接:

示例:关闭索引策略

Curator启动

命令启动:

curator –config curator.ymlconfig/close.yml &

配置定时任务:

Crontab -e

0 22 * * * /usr/bin/curator –config /opt/elasticsearch-curator/curator.yml /opt/elasticsearch/config/close.yml

* * * /usr/bin/curator –config /opt/elasticsearch-curator/curator.yml /opt/elasticsearch/config/forcemerge.yml

请编写一个索引管理策略文件和定时任务,需求:

1.针对通达信索引tdx_*(按月生成),每天凌晨2点开始进行段合并,每个分片合并成3个段;

2.针对金太阳索引jty_ (按小时生成),每天凌晨3点开始进行关闭,关闭40天前的索引,且保留大于50gb的索引,同时排除掉jty_app 索引;

3.针对君泓索引jh_*(按天生成),每天22点开始进行索引分片合并,将小于1gb的索引的分片数量调整为1个分片;

4.针对tomcat索引tomcat_*(按小时生成),每天21点开始自动创建未来1天的索引;

5.针对nginx索引(nginx_jty_ ,nginx_jty48_ ,nginx_jty48_log_ ), 代表每天自动生成时间戳,需要使用一个action动作完成以上3种索引的关闭动作,自动关闭10天前的以上索引;

linux 查询es索引的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 查询es索引,如何使用Linux查询ES索引,ES-URL查询实例解析,elasticsearch restclient 客户端 如何获取es库所有索引名称或列表,ES索引生命周期管理的信息别忘了在本站进行查找喔。


数据运维技术 » 如何使用Linux查询ES索引 (linux 查询es索引)