我正在尝试使用 elasticsearch 搜索特定短语,即“foo bar”。我的查询类似于以下查询:
curl -X GET "http://localhost:9200/objects/object/_search" -d '{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "\"foo bar\"",
"default_field": "_all"
}
}
]
}
}
}'
我的索引中有两个对象,看起来类似于:
{
sub_sections: [
{
name: "foo"
},
{
name: "bar"
}
]
}
和
{
sub_sections: [
{
name: "foo bar"
}
]
}
当我在查询中使用双引号时,我只希望返回与短语匹配的最后一个对象。但是,始终返回两个对象。到目前为止,我已经尝试过auto_generate_phrase_queries
++ 之类的选项,但没有运气。
这是预期的行为吗?我怎样才能只返回具有完全匹配词组的文档?