如果用户通过在"花和覆盖物"等关键字周围添加引号进行搜索然后应显示完全匹配。
我尝试使用query_string,它几乎可以工作,但对这些结果不满意。
任何人都可以帮帮我。
{
"query": {
"query_string": {
"fields": ["body"],
"query": "\"flowers and mulch\""
}
}
}
答案 0 :(得分:4)
你应该使用phrase_match来完成短语匹配:
{
"query": {
"match_phrase": {
"body": "flowers and mulch"
}
}
}
词组匹配
与匹配查询是标准的“转到”查询的方式相同 全文搜索,match_phrase查询是您应该达到的 当你想要找到彼此接近的单词时。
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/phrase-matching.html
答案 1 :(得分:1)
当我提出问题的评论时,我认为知道OP发现不满足query_string
的内容会很棒。我建议在这些情况下使用query_string。请注意,可以设置多个选项,例如:auto_generate_phrase_queries
,split_on_whitespace
或quote_field_suffix
(例如:here),这使得它非常通用。
可以使用one "two three"
query_string