我想这应该是显而易见的,但我是 OpenSearch 的新手,我显然错过了一些东西:
我有一组文档,其中包含以下形式的关键字数组:
{
"keywords": [ "foo", "bar", "baz", "woof", "etc" ]
}
并且我想在文档中搜索匹配的关键字,例如
foo AND bar
,这样会选择包含foo
和bar
的文档,但不会选择仅包含foo
或bar
的文档。
我已经尝试过了
"query": {
"bool": {
"must": {
"match": {
"keywords": "bar"
},
"match": {
"keywords": "foo"
}
}
}
}
以及该主题的多种变体,但这似乎不起作用。
任何来自明智头脑的指导将不胜感激。
回答我自己的问题,看来查询的“anded”部分必须位于数组中,例如,
"query": {
"bool": {
"must": [
{
"match": {
"keywords": "foo",
},
},
{
"match": {
"keywords": "bar",
},
},
],
},
},
老实说,我不知道这是在哪里记录的,但我碰巧通过在this论坛发帖中的推理弄清楚了。
我希望这(a)对其他人有帮助并且(b)让聪明的人嘲笑我的无知。 。 .