弹性搜索建议不要删除不需要的空格 查询使用...
POST /_search
{
"_source": false,
"suggest": {
"text": "mega polis",
"simple_phrase": {
"phrase": {
"field": "address.phonetic",
"size": 5,
"confidence": 1,
"max_errors": 3,
"gram_size": 2,
"analyzer": "trigram",
"direct_generator": [
{
"suggest_mode": "always",
"field": "address.phonetic",
"size": 10,
"prefix_length": 0
}
],
"highlight": {
"pre_tag": "<em>",
"post_tag": "</em>"
}
}
}
}
}
我已将数据 megapolis 编入索引,如果我输入搜索文字 mega polis 它不是纠正大城市 我使用过ngram analyzer min_shingle_size = 2和max_shingle_size = 3
答案 0 :(得分:0)
您找到了一个好的解决方案吗?
我不确定这是否是最好的方法,但就我而言,一个简单的解决方案是切换到term
-建议。为了将完整的输入保留为一个术语,我使用了keyword
分析器。我想您的trigram
分析器也可以解决这个问题,在处理较长的输入文本时可能更可取。
GET myindex/_search
{
"suggest": {
"did_you_mean": {
"text": "orddelings feil",
"term": {
"analyzer": "keyword",
"field": "title"
}
}
}
}