至 Select 个具有相同开始日期和结束日期的文档

To Select documents having same startDate and endDate

我有一些文档,每个文档中都有一个 startDateendDate 日期字段。我需要所有这些值都相同的文件。我找不到任何可以帮助我完成此操作的查询。

Elasticsearch 支持脚本过滤器,您可以在这种情况下使用它。 More Info 您将需要这样的东西 -

POST /<yourIndex>/<yourType>/_search?
{
    "query": {
        "filtered": {
           "filter": {
               "script": {
                  "script": "doc['startDate'].value == doc['endDate'].value"
               }
           }
        }
    }
}

这可以通过两种方式实现

  1. 索引解决方案 - 在索引时添加一个名为 isDateSame 的附加字段,并根据 startDate 和 endDate 的值将其设置为 true 或 false。然后你可以轻松地根据该字段进行查询。这是最佳优化方案
  2. 脚本解决方案-Elasticdearch 维护字段数据中的所有索引数据,这更像是一个反向反向索引。使用脚本,您可以访问任何索引字段并进行比较。这非常快,但不如第一个 one.You 可以使用以下查询相同