elasticsearch - 如何搜索符合 “is between”标准的文档?

标签 elasticsearch

我有类似的文件

{
   "name": "A",
   "start": 5,
   "end": 10
},
{
   "name": "B",
   "start": 1,
   "end": 10
},
{
   "name": "C",
   "start": 20,
   "end": 30
}

我也有一个X值(例如7)。我需要查找诸如start < X < end的文档。在上面的示例中,这将产生两个文档(name等于AB)。

我不知道该如何制定搜索查询:最初看起来是正确的 range query实际上正在查找满足查询中传递的“大于” /“小于”标准的文档-这与相反我想要做。

最佳答案

以下两个range查询将起作用

{
    "query": {
        "bool": {
            "filter": [
                 {"range": {"start": {"lt": 7}}},
                 {"range": {"end": {"gt": 7}}}
            ]
        }
    }
}

关于elasticsearch - 如何搜索符合 “is between”标准的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470804/

相关文章:

elasticsearch - Elasticsearch查询文档,其中两个位置具有相对距离

json - Elasticsearch查询检索所有ID的特定类型的特定_source值

elasticsearch - 如何在 ES 中使用数组映射?

ruby-on-rails-3 - Elasticsearch Tire on Rails,返回该年龄段的所有男性,但也返回女性

.net - 嵌套NEST `FirstOrDefault()`查询中 `Term()`有什么用途?

elasticsearch - Elasticsearch 在 query_string 精确搜索中使用通配符

elasticsearch - 嵌套查询查找包含项X的子项和包含项Y的父项

c# - ElasticSearch搜索结果不佳

elasticsearch - 不支持内容类型 header

amazon-web-services - 将ElasticSearch集群的EBS卷类型从Magnetic切换到SSD