ElasticSearch-查询语法(结构化查询)

╰半橙微兮° 2023-10-02 22:44 75阅读 0赞

文章目录

  • ElasticSearch-结构化查询
    • 查询所有索引
    • 查看es集群状态
    • 查询所有索引
    • 查看所有索引的分片信息
    • 查询指定索引(各种信息)
    • 查看指定索引分片信息
    • 查看集群的节点信息
    • 查询谁是主节点
    • 显示每个节点分片数量、占用空间
    • 显示node节点属性
    • 查询索引的别名
    • 查询指定索引的映射
    • 查询指定索引的全部的文档
    • 查询指定id的文档
    • 多ID查询
    • 查询返回结果个数
    • URI搜索
    • 显示正在等待的任务
    • 查询使用的插件
    • 查看线程池信息
    • 响应体返回格式

ElasticSearch-结构化查询

查询所有索引

GET /_cat/indices?v


















































表头 含义
health 当前服务器健康状态:green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status 索引打开、关闭状态
index 索引名
uuid 索引统一编号
pri 主分片数量
rep 副本数量
docs.count 可用文档数量
docs.deleted 文档删除状态(逻辑删除)
store.size 主分片和副分片整体占空间大小
pri.store.size 主分片占空间大小

查看es集群状态

GET _cat/health?v


































































名称 描述
epoch: 自标准时间(1970-01-01 00:00:00)以来的秒数
timestamp: 时间
cluster: 集群名称
status: 集群状态
node.total: 节点总数
node.data: 数据节点总数
shards: 分片总数
pri: 主分片总数
repo: 复制节点的数量
init: 初始化节点的数量
unassign: 未分配分片的数量
pending_tasks: 待定任务数
max_task_wait_time: 等待最长任务的等待时间
active_shards_percent: 活动分片百分比

查询所有索引

GET _cat/indices?pretty


















































名称 描述
health: 索引的健康状态
status: 索引的开启状态
index: 索引名字
uuid: 索引的uuid
pri: 索引的主分片数量
rep: 索引的复制分片数量
docs.count: 索引下的文档总数
docs.deleted: 索引下删除状态的文档数
store.size: 主分片+复制分片的大小
pri.store.size: 主分片的大小

查看所有索引的分片信息

GET _cat/shards?v










































名称 描述
index: 索引名称
shard: 分片序号
prirep: 分片类型,p表示是主分片,r表示是复制分片
state: 分片状态
docs: 该分片存放的文档数量
store: 该分片占用的存储空间大小
ip: 该分片所在的服务器ip
node: 该分片所在的节点名称

查询指定索引(各种信息)

GET 索引名称

查看指定索引分片信息

GET _cat/shards/索引名称?v

在这里插入图片描述

查看集群的节点信息

GET _cat/nodes?v


















































名称 描述
ip: node节点的IP
heap.percent: 堆内存占用百分比
ram.percent: 内存占用百分比
cpu: CPU占用百分比
load_1m: 1分钟的系统负载
load_5m: 5分钟的系统负载
load_15m: 15分钟的系统负载
node.role: node节点的角色
master: 是否是master节点
name: 节点名称

查询谁是主节点

GET _cat/master


























名称 描述
id: 节点ID
host: 主机名称
ip: 主机IP
node: 节点名称

显示每个节点分片数量、占用空间

GET _cat/allocation?v














































名称 描述
shards: 节点承载的分片数量
disk.indices: 索引占用的空间大小
disk.used: 节点所在机器已使用的磁盘空间大小
disk.avail: 节点可用空间大小
disk.total: 节点总空间大小
disk.percent: 节点磁盘占用百分比
host: 节点的host地址
ip: 节点的ip地址
node: 节点名称

显示node节点属性

GET _cat/nodeattrs?v






























名称 描述
node: 节点名称
host: 主机地址
ip: 主机ip
attr: 属性描述
value: 属性值

查询索引的别名

GET 索引名称/_alias

查询指定索引的映射

GET 索引名称/_mapping

查询指定索引的全部的文档

GET 索引名称/_search

查询指定id的文档

GET 索引名称/_doc/1

注意: 在8+版本_doc`就被取消了 在7版本只是过度

多ID查询

  1. GET /student_info/_search
  2. {
  3. "query":{
  4. "ids":{
  5. "values":[11001,11002,11003]
  6. }
  7. }
  8. }

查询返回结果个数

  1. GET /testindex/_count
  2. {
  3. "query": {
  4. "multi_match": {
  5. "query": "elasticsearch",
  6. "fields": ["question","answer"]
  7. }
  8. }
  9. }

URI搜索

Elasticsearch支持用uri搜索,可用get请求里面拼接相关的参数,并用curl相关的命令就可以进行测试。

GET twitter/_search?q=user:kimchy

如下是上一个请求的相应实体:

  1. {
  2. "timed_out": false,
  3. "took": 62,
  4. "_shards":{
  5. "total" : 1,
  6. "successful" : 1,
  7. "skipped" : 0,
  8. "failed" : 0
  9. },
  10. "hits":{
  11. "total" : 1,
  12. "max_score": 1.3862944,
  13. "hits" : [
  14. {
  15. "_index" : "twitter",
  16. "_type" : "_doc",
  17. "_id" : "0",
  18. "_score": 1.3862944,
  19. "_source" : {
  20. "user" : "kimchy",
  21. "date" : "2009-11-15T14:12:12",
  22. "message" : "trying out Elasticsearch",
  23. "likes": 0
  24. }
  25. }
  26. ]
  27. }
  28. }

URI中允许的参数:






















































































名称 描述
q 查询字符串,映射到query_string查询
df 在查询中未定义字段前缀时使用的默认字段
analyzer 查询字符串时指定的分词器
analyze_wildcard 是否允许通配符和前缀查询,默认设置为false
batched_reduce_size 应在协调节点上一次减少的分片结果数。如果请求中潜在的分片数量很大,则应将此值用作保护机制,以减少每个搜索请求的内存开销
default_operator 默认使用的匹配运算符,可以是AND或者OR,默认是OR
lenient 如果设置为true,将会忽略由于格式化引起的问题(如向数据字段提供文本),默认为false
explain 对于每个hit,包含了具体如何计算得分的解释
_source 请求文档内容的参数,默认true;设置false的话,不返回_source字段,可以使用_source_include_source_exclude参数分别指定返回字段和不返回的字段
stored_fields 指定每个匹配返回的文档中的存储字段,多个用逗号分隔。不指定任何值将导致没有字段返回
sort 排序方式,可以是fieldNamefieldName:asc或者fieldName:desc的形式。fieldName可以是文档中的实际字段,也可以是诸如_score字段,其表示基于分数的排序。此外可以指定多个sort参数(顺序很重要)
track_scores 当排序时,若设置true,返回每个命中文档的分数
track_total_hits 是否返回匹配条件命中的总文档数,默认为true
timeout 设置搜索的超时时间,默认无超时时间
terminate_after 在达到查询终止条件之前,指定每个分片收集的最大文档数。如果设置,则在响应中多了一个terminated_early的布尔字段,以指示查询执行是否实际上已终止。默认为no terminate_after
from 从第几条(索引以0开始)结果开始返回,默认为0
size 返回命中的文档数,默认为10
search_type 搜索的方式,可以是dfs_query_then_fetchquery_then_fetch。默认为query_then_fetch
allow_partial_search_results 是否可以返回部分结果。如设置为false,表示如果请求产生部分结果,则设置为返回整体故障;默认为true,表示允许请求在超时或部分失败的情况下获得部分结果

显示正在等待的任务

GET _cat/pending_tasks?v


























名称 描述
insertOrder: 任务插入顺序
timeInQueue: 任务排队了多长时间
priority: 任务优先级
source: 任务源

查询使用的插件

GET _cat/plugins?v






















名称 描述
name: 节点名称
component: 插件名称
version: 插件版本

查看线程池信息

GET _cat/thread_pool?v






























名称 描述
node_name: 节点名称
name: 线程池名称
active: 活跃线程数量
queue: 当前队列中的任务数
rejected: 被拒绝的任务数

响应体返回格式

响应体返回格式,支持json,yaml,text(default),smile,cbor

GET /_cat/indices?format=json&pretty

  1. [
  2. {
  3. "health" : "green",
  4. "status" : "open",
  5. "index" : ".monitoring-kibana-6-2018.12.24",
  6. "uuid" : "vkJltBs1T8qEfdUDdyDYzA",
  7. "pri" : "1",
  8. "rep" : "0",
  9. "docs.count" : "1345",
  10. "docs.deleted" : "0",
  11. "store.size" : "453.3kb",
  12. "pri.store.size" : "453.3kb"
  13. },
  14. {
  15. "health" : "green",
  16. "status" : "open",
  17. "index" : "user2",
  18. "uuid" : "xo9Zb2OkRWeqV5bRKNDKGg",
  19. "pri" : "1",
  20. "rep" : "0",
  21. "docs.count" : "12",
  22. "docs.deleted" : "0",
  23. "store.size" : "7.9kb",
  24. "pri.store.size" : "7.9kb"
  25. },
  26. .....
  27. ]

在这里插入图片描述

点赞 -收藏-关注-便于以后复习和收到最新内容有其他问题在评论区讨论-或者私信我-收到会在第一时间回复在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考 免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。感谢,配合,希望我的努力对你有帮助^_^

发表评论

表情:
评论列表 (有 0 条评论,75人围观)

还没有评论,来说两句吧...

相关阅读