如何使用 query_string 的字段 属性 并在逻辑上使用 elasticsearch?

how to use fields property of query_string to be and logically using elasticsearch?

elasticsearchquery_string 中有一个 fields 属性.. 限制通过指定字段的搜索.. 似乎默认情况下 运行 query_string 多字段查询是将每个查询词展开成一个OR子句,像这样:

field1:query_term **OR** field2:query_term | ...

这是我的问题:如果我希望我的字段像这样:

field1:query_term **AND** field2:query_term | ...

如果我想在逻辑上 and 我的字段在一起,如何编写我的查询?

在我的搜索中,最好不要使用 phrase_match,因为我的搜索中有一些功能可以让用户选择如何搜索,exact 或查看 文档中的所有单词或在结果字段中查看one_or_more单词...现在当用户选择时这是可以的one_or_more

我希望我能清楚地解释我的问题。如果不是,请告诉我!

谢谢

您可以将设置 "default_operator": "AND" 添加到您的 query_string 查询(默认设置为 OR):

POST /_search
{
    "query": {
        "query_string" : {
            "query" : "field1:query_term field2:query_term",
            "default_operator": "AND"                         <--- add this
        }
    }
}