【发布时间】:2017-03-17 00:09:30
【问题描述】:
我在名为users 的索引中有以下文档:
[
{
"name": "foo",
"preferences": [{"id":1, "name":"a"}, {"id": 2, "name":"b"}]
},
{
"name": "bar",
"preferences": [{"id":2, "name":"a"}, {"id": 3, "name":"c"}, {"id": 4, "name":"d"}]
}
]
和一个选择的 id 列表,例如var choosenPrefs=[2, 3],匹配首选项的 id 属性。
现在,我想获取在其偏好中至少具有一个 id 的所有用户。
我尝试了不同的查询,但没有得到它......
目前看起来是这样的:
"query": {
"bool": {
"must": [
{"prefix": {"name": ""}},
{
"terms": {
"perferences.id": choosenPrefs
}
}
],
"filter": {
"geo_distance": {
"distance": "10km",
"location": position
}
}
}
}
我还使用了距离过滤器(无需偏好过滤/匹配即可工作)。
查询没有抛出任何错误,但我没有得到任何结果。
希望有人给点建议?!
PS:我用的是最新的ES版本
【问题讨论】:
标签: javascript json elasticsearch