我需要解决一个带有“SHOULD”条件的问题,该条件使组和该组应根据最小应匹配进行单独评估。因此,不仅一组具有“应该”条件,而且还有更多独立的组具有“应该”条件。
想象一下 A1、A2、A3 和 B1 B2 B3 等条件。 简单的应该查询如下所示:
{
"query": {
"bool": {
"should": [
{ A1 },
{ A2 },
{ A3 },
{ B1 },
{ B2 },
{ B3 },
],
"minimum_should_match" : 1
}
}
}
但是我需要评估每个组的minimum_should_match。一组为A组,另一组为B组。类似的东西(这是一个想法,不是有效的代码):
{
"query": {
"bool": {
"should": [
{ A1 },
{ A2 },
{ A3 },
],
"minimum_should_match" : 1,
"should": [
{ B1 },
{ B2 },
{ B3 },
],
"minimum_should_match" : 1
}
}
}
如您所见,我需要每个应该组的 bool 结果为 TRUE。在 ElasticSearch 6 中可以做到吗?谢谢。
最佳答案
我会将这两个 block 作为 must
bool 查询的情况分开。
{
"query": {
"bool": {
"must: [
{
"bool": {
"should": [
{ A1 },
{ A2 },
{ A3 },
],
"minimum_should_match" : 1
}
},
{
"bool": {
"should": [
{ B1 },
{ B2 },
{ B3 },
],
"minimum_should_match" : 1
}
}
]
}
}
}
关于Elasticsearch multi should 查询多个minimum_should_match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893320/