如何搜索满足"标准的文件介于"之间?

时间:2016-09-13 13:02:44

标签: 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实际上寻找满足标准的文件&#34;大于&#34; /&#34;小于&#34;在查询中传递 - 这与我想要做的相反。

1 个答案:

答案 0 :(得分:2)

以下两个range查询可以正常工作

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