OpenSearch:查询数组的元素

问题描述 投票:0回答:1

我想这应该是显而易见的,但我是 OpenSearch 的新手,我显然错过了一些东西:

我有一组文档,其中包含以下形式的关键字数组:

{
  "keywords": [ "foo", "bar", "baz", "woof", "etc" ]
}

并且我想在文档中搜索匹配的关键字,例如

foo AND bar
,这样会选择包含
foo
bar
的文档,但不会选择仅包含
foo
bar
的文档。

我已经尝试过了

"query": {
    "bool": {
        "must": {
            "match": {
                "keywords": "bar"
            },
            "match": {
                "keywords": "foo"
            }
        }
    }
}

以及该主题的多种变体,但这似乎不起作用。

任何来自明智头脑的指导将不胜感激。

arrays opensearch
1个回答
0
投票

回答我自己的问题,看来查询的“anded”部分必须位于数组中,例如,

"query": {
    "bool": {
        "must": [
            {
                "match": {
                    "keywords": "foo",
                },
            },
            {
                "match": {
                    "keywords": "bar",
                },
            },
        ],
    },
},

老实说,我不知道这是在哪里记录的,但我碰巧通过在this论坛发帖中的推理弄清楚了。

我希望这(a)对其他人有帮助并且(b)让聪明的人嘲笑我的无知。 。 .

© www.soinside.com 2019 - 2024. All rights reserved.