如何通过elasticsearch中的术语匹配多个单词

Sow*_*mya 4 pattern-matching match elasticsearch

我匹配多个单词的查询如下,

{"query":
{"bool":{"must":[{"terms":{"my_field":"word1 word2"}}]}
Run Code Online (Sandbox Code Playgroud)

执行时,尽管存在以下查询的数据,但结果集为空。而不是上面的查询,如果我使用

{"bool":{"must":[{"terms":{"my_field":"word1"}}]}

然后弹性搜索正在返回数据。如何匹配完整的句子?

Tus*_*ahi 6

根据您对上述答案的评论,我相信您应该在 must 查询数组中简单地使用两个术语查询。

{
  "query": 
    { "bool" :
          {
             "must":[
                        {"term":{"my_field": "word1" } },
                        {"term":{"my_field": "word2" } }
                    ] 
          } 
    } 
 } 
Run Code Online (Sandbox Code Playgroud)


小智 1

你可以尝试将单词放入数组中,看看是否有效。像这样:{“query”:{“bool”:{“must”:[{“terms”:{“my_field”:[“word1”,“word2”]}}]}

这是文档: https: //www.elastic.co/guide/en/elasticsearch/guide/current/_finding_multiple_exact_values.html

希望它有效=)