0
我正在尝试创建一个查询,它在切换到弹性搜索5后不同地匹配过滤器中的多个字段,但它们似乎没有工作。这是我认为查询应该是:ElasticSearch - 具有多个子句的已过滤查询ES 5
query: {
bool: {
must: [{ match: { name: 'athing' }}],
filter: [
{ bool: {
must: [
{ term: { ownerId: 123} },
{ term: { itemId: 3453} },
]
}},
{ bool: {
minimum_should_match: 1,
must: [
{ term: { groupId: 123565} },
{ term: { groupId: 5555} },
]
}}
]
}
}
在这种情况下,结果必须匹配未分析的项目Id和组Id。在前面的代码中,使用了弹性搜索1.5,匹配是通过在过滤器中放置'and'和'or'集合来完成的。这似乎不工作了。
我也想让它查询能够让任何人与传递的组ID(而不是所有的人)之一。我试图在过滤器的第二个布尔查询中做到这一点。
理想的情况下,我想具有匹配“athing”的查询时,属于所有者ID 123和3453的产品ID,它是存在于任一组ID 123565或5555
这似乎工作,谢谢!有一个问题,根据我的理解,查询意味着结果必须至少与必须和应该相匹配。这是否意味着符合必要条件的结果,而不是任何条款可以通过的结果? –