例如,我查询了几个术语
{
"query": {
"bool": {
"should": [
{
"term": { "colors": 5 }
},
{
"term": { "productTypes": 10 }
},
{
"term": { "rooms": 18 }
}
]
}
}
}
我想知道哪些文件符合所有3个条款的条件,而不是。 可能我可以使用文档得分来做,但无法找到 - 如何。
" MAX_SCORE"只有最大的已找到文件得分,所以如果没有完整匹配的文件 - 它将是部分匹配的最大值。
我尝试使用" constant_score"将每个词的得分设置为1。并将得分与过滤器数量进行比较:
{
"explain": true,
"query": {
"bool": {
"should": [
{ "constant_score": {
"filter": { "match_all": {}},
"boost": 1
}},
{ "constant_score": {
"filter": { "term": { "collection": 14579 } },
"boost": 1
}},
{ "constant_score": {
"filter": { "term": { "rooms": 19 } },
"boost": 1
}}
]
}
}
}
...但是" queryNorm"降低这个分数,我无法找到解决方法。
有什么建议吗?