常用ES操作

2019-08-01  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读