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


    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查询

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

    查询返回结果个数

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

    URI搜索

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

    GET twitter/_search?q=user:kimchy

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

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

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

    在这里插入图片描述

    点赞 -收藏-关注-便于以后复习和收到最新内容
    有其他问题在评论区讨论-或者私信我-收到会在第一时间回复
    在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考
    免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。
    感谢,配合,希望我的努力对你有帮助^_^
  • 相关阅读:
    小马识途营销顾问分享百度百科词条创建的实战技巧
    【ASE入门学习】ASE入门系列二十——flowmap
    Websocket搭建(Vue+Springboot)
    如何查看网站的https的数字证书
    如何让 useEffect 支持 async/await?
    chapter 1 项目首页
    行业洞察 | AI贩卖的焦虑,我们该买单吗?
    老风控的心声:风控的“痛”与“恨”|内卷当下,单做好风控已远远不够
    前端代码规范
    cuda安装失败原因汇总
  • 原文地址:https://blog.csdn.net/weixin_45203607/article/details/127753977