完全匹配查询文本短语应显示在顶部,然后是其他单词匹配

时间:2017-04-19 10:36:16

标签: elasticsearch

如何使用ElasticSearch创建基于关键字的搜索,其中精确的词组匹配应显示在结果集的顶部,后跟包含该词组的任何单词的其他匹配。

有关搜索查询的示例是快速棕色狐狸,结果集将如下:快速棕狐快速狐狸棕色狐狸等。

应该采用什么方法,以便我们获得欲望结果集。

1 个答案:

答案 0 :(得分:0)

尝试使用' query_string ': -

  

原始数据: -

1) quick brown fox
2) quick fox
3) brown fox
  

QUERY: -

{ 

  "query": {
    "query_string": {
       "fields" : ["fieldName"] ,
      "query": "*quick*  *brown* *fox*"
    }
  }
}
  

回复将是: -

1)quick brown fox 
2)brown fox
3)quick fox

我认为query_string正在做正确的工作。我们有三个令牌(快速,棕色,狐狸)。 Query_string更喜欢“棕色狐狸”而不是“快速狐狸”,因为它优先考虑组合令牌而不是分开的令牌。