Elasticsearch查询、精确查询、统计数量和删除

Elasticsearch查询、精确查询、统计数量和删除


实现查询操作

如果在服务器里可以使用本地调用

http://localhost:9200/索引名/_search

不在服务器中可以使用下面方式调用

http: //cluster-nodes:port/索引名/_search

cluster-nodes 和 port在ES的配置里

_search 用于查询

下面用于查询所有的索引

{
    "query": {
        "match_all": {}
    }
}

操作展示:


通过match进行单个条件查询件

{
  "query": { "match": { "姓名": "小明" } }
}

match代表模糊查询,也是一种分词器,会将"小明"分解为[‘小’,‘小明’,’明‘],然后进行查询,导致结果不太精确,解决方式如下:
给参数加上 .keyword

通过term进行精确查询

{
  "query": {
    "bool": {
      "must": [
        { "term": { "姓名.keyword": "小明" } }
      ]
    }
  }
}

多个条件查询,需要通过bool

{
  "query": {
    "bool": {
      "must": [
        { "match": { "姓名": "小明" } },
        { "match": { "姓名": "男" } }
      ]
    }
  }
}

统计数量

http://localhost:9200/索引名/_count

_count主要用于统计数量,条件跟查询写的一样就行,有个好处是查询出来的数量不受限制,直接查询的话会限制10000条数据


实现删除操作

如果在服务器里可以使用本地调用

http://localhost:9200/索引名/_delete_by_query

__delete_by_query 关键字用于查询后删除


通过多个条件查询实现删除操作

{
    "query": {
        "bool": {
            "must": [
                {
                    "term": {
                        "姓名.keyword": "小明"
                    }
                },
                {
                    "term": {
                        "性别.keyword": "man"
                    }
                }
            ]
        }
    }
}

版权声明:本文为qq_41883461原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。