【发布时间】:2017-08-31 20:58:28
【问题描述】:
我有以下数据(示例):
[
{
"name": "eli",
"requests": [
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 1
},
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 2
},
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 5
}
]
},
{
"name": "John",
"requests": [
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 1
},
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 2
},
{
"creation": "2016-09-07T00:00:00Z",
"title": "something",
"message": "lorem ipsum",
"priority": 1
}
]
}
]
而且我似乎无法弄清楚要对请求使用哪种类型的映射,以便我只能过滤具有优先级 gte 1 和 lte 2 的请求的用户 这意味着用户 eli 不会显示
-
我尝试将其创建为简单字段并按如下方式查询
{"query": {"bool": {"must": [{"range": {"requests.priority": {"gte": 1, "lte": 2}}}]}}}但它仍然返回用户 eli。 - 所以我尝试将其设置为嵌套但仍然不行(使用以下查询)
{"query": {"bool": {"must": [{"nested": {"path": "requests","query": {"range": {"requests.priority": {"gte": 1,"lte": 1}}}}}]}}}任何帮助表示赞赏
附言我不确定 multimatch 是在我的问题中使用的正确术语
【问题讨论】:
-
我希望你能从这里找到解决方案:codingworkspace.com/2016/08/… 并且这里有一些系列的排序和范围教程:codingworkspace.com/search/label/Elasticsearch
-
这与我的问题无关,正如我所说,我需要一个依赖查询来检查所有对象以匹配我的查询,而不是其中一个对象
标签: elasticsearch