美文网首页
常用ES操作

常用ES操作

作者: 老猫要快落 | 来源:发表于2019-08-01 18:12 被阅读0次

    其他要点

    1. 索引中的主分片数在创建索引时是固定的,但副本分片的数量可以随时更改,而不会中断索引或查询操作。

    2. 需要JRE 最低1.8, 安装elasticsearch包前需要配置JAVA_HOME环境变量

    3. shard分片,primary 和replicas, 副本表示主分片的副本数(不含主

    1. 默认情况下,从索引/更新/删除数据到搜索结果中显示的时间,可能会有一秒钟的延迟(刷新间隔)。

    常用查询

    1. 查询列表

    curl 127.0.0.1:9200/_cat

    显示字段:?v

    格式化输出: ?pretty

    curl -i 打印响应头, -v 打印请求和响应头

    2. 查询集群状态

    curl 10.10.7.151:9200/_cat/health?v

    • 绿色 - 一切都很好(集群功能齐全)
    • 黄色 - 所有数据都可用,但尚未分配一些副本(群集功能齐全)
    • 红色 - 某些数据由于某种原因不可用(群集部分功能)

    [图片上传失败...(image-d10858-1564654185186)]

    3. 查看节点状态

    curl 10.10.7.151:9200/_cat/nodes?v

    [图片上传失败...(image-e948d3-1564654185186)]

    4. 查看索引

    curl 10.10.7.151:9200/_cat/indices?v

    [图片上传失败...(image-11af45-1564654185185)]

    curl -XGET http://10.10.7.151:9200/mos-master_zone/_settings ?pretty

    [图片上传失败...(image-423545-1564654185185)]

    5. 查看分片

    curl 10.10.7.151:9200/_cat/shards?v

    [图片上传失败...(image-a35cd5-1564654185185)]

    常用DSL

    1. 查询指定条数结果,排序

    
    curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
    
    { "query": {"match_all": {} },
    
    "sort": [ { "postDate": "asc"}],
    
    "from":0,
    
    "size":10
    
    }'
    
    

    [图片上传失败...(image-51a74c-1564654185185)]

    2. match_all查询指定字段

    
    curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
    
    { "query": {"match_all": {} },
    
    "_source":["user", "postDate", "endpoint"]
    
    }' 
    
    

    [图片上传失败...(image-3f26d1-1564654185184)]

    3. match查询指定条件

    查询postDate 为 2019-07-23的文档, 能查到相关的并打分

    
    curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
    
    { "query": {"match": {"postDate":"2019-07-23"}}
    
    }'
    
    

    查询address 包含mill 或者lane的文档

    
    {
    
      "query": { "match": { "address": "mill lane" } }
    
    }
    
    

    查询address 为 完整字符串 "mill lane"的文档

    ···

    {

    "query": { "match_phrase": { "address": "mill lane" } }

    }

    ···

    查询address 同时包含mill和lane, bool must 表示与

    ···

    {

    "query": {

    "bool": {
    
      "must": [ 
    
        { "match": { "address": "mill" } },
    
        { "match": { "address": "lane" } }
    
      ] } }
    

    }

    ···

     

    查询address 包含mill或者lane, bool should 表示或

    ···

    {

    "query": {

    "bool": {
    
      "should": [
    
        { "match": { "address": "mill" } },
    
        { "match": { "address": "lane" } }
    
      ]  } }
    

    }

    ···

    同时使用must和must_not

    
    {
    
      "query": {
    
        "bool": {
    
          "must": [
    
            { "match": { "age": "40" } }
    
          ],
    
          "must_not": [
    
            { "match": { "state": "ID" } }
    
          ] } }
    
    }
    
    

    过滤语句filter

    查询余额balance 大于20000小于30000的文档

    
    {
    
      "query": {
    
        "bool": {
    
          "must": { "match_all": {} },
    
          "filter": {
    
            "range": {
    
              "balance": {
    
                "gte": 20000,
    
                "lte": 30000
    
              }
    
            }
    
          }
    
        }
    
      }
    
    }
    
    

    查询分词器效果

    ···

    curl -X POST "localhost:9200/_analyze" -H 'Content-Type: application/json' -d'

    {"tokenizer": "keyword",

    "text": "BIG.JPG"}'

    分词器

    standard: 默认逐个分词

    ik_max_word: ik尽可能多分词

    ik_smart: 尽可能少分词

    ···

    查询索引详情

    curl localhost:9200/mos-data_zone/_stats?pretty

    curl localhost:9200/_cluster/stats?pretty

    curl localhost:9200/_nodes/stats?pretty

    相关文章

      网友评论

          本文标题:常用ES操作

          本文链接:https://www.haomeiwen.com/subject/ljbcdctx.html