Elasticsearch 常用查询命令

安装环境及版本:

  • 系统:es 7.12.0

一 图形化界面

dsl: Domain Specific Language 的缩写,中文翻译为领域特定语言

  1. 图形化界面

    • kibana: https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz

    • chrome插件: elasticsearch-head

  2. sql 转 dsl 语法

    • kibana转化

      POST /_sql/translate 
      {"query":"select * from complex where name ='张三'"}
      
    • 在线工具: https://tools.pet/sql/sql-es

二 基础DSL

  1. 运行状态信息

    # 检测集群是否健康。 确保9200端口号可用
    curl 'localhost:9200/_cat/health?v'
    # 获取集群的节点列表
    curl 'localhost:9200/_cat/nodes?v'
    
  2. 索引

    # 创建索引
    curl -XPUT 'localhost:9200/test?pretty'
    # 查看单个索引详情
    curl localhost:9200/test?pretty
    # 列出所有索引
    curl 'localhost:9200/_cat/indices?v'
    #删除索引
    curl -XDELETE 'localhost:9200/test?pretty'
    
  3. 文档

    # 新增
    curl -H "Content-Type: application/json" -XPUT 'localhost:9200/test/_doc/1?pretty' -d '{"name": "张三"}'
    # 查询
    curl -XGET 'localhost:9200/test/_doc/1?pretty'
    # 修改
    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/test/_doc/1/_update?pretty' -d '{"doc":{"name":"李四"}}'
    # 删除
    curl -XDELETE 'localhost:9200/test/_doc/1?pretty'
    

三 高级DSL

  • 官网: https://www.elastic.co/guide/cn/elasticsearch/guide/2.x/_finding_exact_values.html
  1. 新建数据

    # 指定索引名
    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/test/_doc/1?pretty' -d '{"name": "张三1","age":1}'
    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/test/_doc/2?pretty' -d '{"name": "张三2","age":2}'
    #不指定索引名(自动生成)
    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/test/_doc?pretty' -d '{"name": "张三3","age":3}'
    
  2. 查询全部

    curl -XGET 'localhost:9200/test/_doc/_search?pretty'
    
  3. 根据 index id查询

    #values 索引id,可以多个
    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/_search?pretty' -d '{"query":{"ids":{"values":["1"]}}}'
    
  4. 查看映射类型(mapping)

    #查看索引(index)的的映射(mapping)类型
    curl -XGET "http://localhost:9200/test/_mapping"
    
    #分析数据分词结构
    curl -XGET "localhost:9200/test/_analyze" -H 'Content-Type: application/json' -d'{ "field": "name",  "text": ["张三1"]}'
    
  5. 模糊查询

    # 模糊查询,排序,分页
    curl -XGET "localhost:9200/test/_search" -H 'Content-Type: application/json' -d'{  "query": {    "term": {      "name.keyword": "张三1"    }  }}'
    
  6. 高亮查询

    GET test/_doc/_search
    {
      "query":{
        "match":{
          "name":"张三"
        }
      },
      "highlight":{
        "fields":{
          "name":{}
        }
      }
    }
    
  7. 排序

    # 模糊查询,排序,分页
    GET test/_doc/_search
    {
     "query":{
       "match":{
         "name":"张三1"
       }
     },
     "sort":{
       "age":{
         "order":"desc"
       }
     }
    }
    
  8. 分页

    # 模糊查询,排序,分页
    GET test/_doc/_search
    {
     "query":{
       "match":{
         "name":"张三1"
       }
     },
     "from":0,
     "size":10
    }
    

你可能感兴趣的:(Elasticsearch 常用查询命令)