我有一个必须查询,如下所示:
{
"query": {
"bool": {
"must": [{
"match": {
"section": {
"query": "word1",
"boost": "3"
}
}
}, {
"match": {
"section": {
"query": "word2",
"boost": "4"
}
}
}]
}
}
}
如何使其成为“或”即所有与“word1”,“word2”或两者相匹配的文档,因为上面的代码会给出包含“word1”和“word2”的文档的结果。
我在documentation中读到这可以通过在过滤器上下文中使用should来实现,但我找不到任何示例。
由于
答案 0 :(得分:0)
您应该使用should
块而不是must
。这是一个正确的查询
{
"query": {
"bool": {
"should": [
{
"match": {
"section": {
"query": "word1",
"boost": "3"
}
}
},
{
"match": {
"section": {
"query": "word2",
"boost": "4"
}
}
}
]
}
}
}
对于filter
阻止,它会返回与must
相同的文档但不会影响最终得分