如何使用ElasticSearch创建基于关键字的搜索,其中精确的词组匹配应显示在结果集的顶部,后跟包含该词组的任何单词的其他匹配。
有关搜索查询的示例是快速棕色狐狸,结果集将如下:快速棕狐,快速狐狸,棕色狐狸等。
应该采用什么方法,以便我们获得欲望结果集。
答案 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更喜欢“棕色狐狸”而不是“快速狐狸”,因为它优先考虑组合令牌而不是分开的令牌。