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

问题描述 投票:0回答:2

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

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

执行后,尽管以下查询存在数据,但结果集为空。 如果我使用

而不是上面的查询

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

然后elastic-search正在返回数据。 如何搭配完整的句子?

elasticsearch pattern-matching match
2个回答
6
投票

我相信你应该简单地在必须查询数组中使用两个term查询。

{
  "query": 
    { "bool" :
          {
             "must":[
                        {"term":{"my_field": "word1" } },
                        {"term":{"my_field": "word2" } }
                    ] 
          } 
    } 
 } 

1
投票

你可以尝试将单词放入数组中,看看是否有效。 像这样: {“查询”:{“布尔”:{“必须”:[{“术语”:{“my_field”:[“word1”,“word2”]}}]}

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

希望它有效=)

© www.soinside.com 2019 - 2024. All rights reserved.