我在名为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版本
答案 0 :(得分:0)
你有一个拼写错误(from django.db.models import F
Item.objects\
.annotate(latest_inventoryentry_id=Max('inventoryentry__created'))\
.filter(
inventoryentry__id=F('latest_inventoryentry_id'),
inventoryentry__receipt=None
)
而不是perferences
):
preferences