如何从 Elasticsearch 中的“bool”查询中生成逻辑“OR”?

The*_*ter 1 database search json elasticsearch

在 Elasticsearch 文档中,它表示不推荐使用“或查询”并使用“bool”查询代替:https : //www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-or-查询.html

但我不确定如何使用“bool”查询进行逻辑“OR”。我试过:

query: {
    bool: {
        must: [
            { match: { title: 'some title'}},
            { match: { author: 'some author'}}
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

这与标题为“某个标题”且作者为“某个作者”相匹配,但是如何将其转换为 OR 表达?就像我希望它匹配标题为“某个标题”或作者为“某个作者”。谢谢!

Jet*_*die 5

只需用 should 替换你 must 并添加运算符:

query: {
    bool: {
        should: [
            { match: { title: {query:'some title', operator: 'AND'}},
            { match: { author: {query: 'some author', operator: 'AND'}}
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)