我正在尝试编写查询的一部分来过滤掉类型为" group"并且在给定的id数组中有一个组ID不是。我开始用必须和must_not编写一个bool查询但是我被惹恼了如何写#34; id不在给定的数组中。
编辑: 我实际上使用"和"转换过时的查询并且"不是"与ES 5.5兼容。这是旧的查询。
:and => [
{
term: {
type: 'group'
}
},
{
:not => {
terms: {
group_id: group_ids
}
}
},
{
:not => {
terms: {
user_id: user_ids
}
}
}
]
group_ids和user_ids是数组。
答案 0 :(得分:0)
您可能尚未使用ID分析数组。您可以使用带有Bool
子句的filter
查询,然后在该过滤器中启动带有bool
子句的新mustNot
查询,并在该子句中添加{{1使用您的ID查询。
答案 1 :(得分:0)
bool: {
must: {
term: {
kind: 'group'
}
},
must_not: [
{
terms: {
group_id: group_ids
}
},
{
terms: {
user_id: user_ids
}
}
]
}