用于多词搜索建议的 Elasticsearch 查询
Elasticsearch query for multi-word search suggestions
我目前正在使用这个 ES 查询来获取 ES 的搜索建议(使用边 n 克)
var terms = query.split(' '),
baseTerms = terms.length === 1 ? '' : terms.slice(0, -1).join(' ') + ' ',
lastTerm = terms[terms.length - 1].toLowerCase();
"query": {
"simple_query_string": {
"fields": ['title.autocomplete'], //title.basic
"query": baseTerms + '(' + lastTerm + '|' + lastTerm + '*)',
"default_operator": "and"
}
}
这适用于单个单词。当我键入字母时,会出现单个词的建议,但我正在尝试获取以空格分隔的多词建议(短语建议)。是否有更好的 ES 查询可供使用,以便我可以获得一些短语建议?
使用match_phrase_prefix Query。它会为您提供短语建议:ES 查询就像:
{
"match_phrase_prefix" : {
"message" : {
"query" : "quick brown f"
}
}
}
我目前正在使用这个 ES 查询来获取 ES 的搜索建议(使用边 n 克)
var terms = query.split(' '),
baseTerms = terms.length === 1 ? '' : terms.slice(0, -1).join(' ') + ' ',
lastTerm = terms[terms.length - 1].toLowerCase();
"query": {
"simple_query_string": {
"fields": ['title.autocomplete'], //title.basic
"query": baseTerms + '(' + lastTerm + '|' + lastTerm + '*)',
"default_operator": "and"
}
}
这适用于单个单词。当我键入字母时,会出现单个词的建议,但我正在尝试获取以空格分隔的多词建议(短语建议)。是否有更好的 ES 查询可供使用,以便我可以获得一些短语建议?
使用match_phrase_prefix Query。它会为您提供短语建议:ES 查询就像:
{
"match_phrase_prefix" : {
"message" : {
"query" : "quick brown f"
}
}
}