首页 > 解决方案 > 如何查询没有记录 Elasticsearch

问题描述

我是 Elasticsearch 的新手,使用版本 7.1.2。我正在建立一个索引,其中包含用户的时间戳记录。我想了解如何搜索在一段时间内不活跃(即没有记录)的所有用户。我可以创建另一个包含所有用户列表的索引,但不确定如何在查询中将两者结合起来并搜索没有记录的用户。

我的记录映射的简化版本如下所示:

    PUT /records
    {
        "mappings": {
        "properties": {
            "user_id" : {"type": "text"},
            "user_name" : {"type": "keyword"},
            "date" : {"type": "date"}
             }
        } 
    }

标签: elasticsearch

解决方案


据我了解,您希望找到没有将值(日期)设置为字段(日期)的记录。如果我是对的,这个exists查询可以帮助你。

GET /_search
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "date"
        }
      }
    }
  }
}

推荐阅读