如何通过前缀获得学期建议,我有名称字段。
我有三条记录:
坐在这个地方的中间
完成最低工作
运河mib消失了
我希望能够在输入 min 时将最小这个词作为建议用语,但我确实 mid 和 mib ,在其他文件中。
这是我的疑问:
{
"suggest": {
"text": "min",
"simple_phrase": {
"term": {
"analyzer": "standard",
"field": "Name.raw",
"min_word_length": 2,
"prefix_length": 1,
"suggest_mode": "always"
}
}
}
}
MAPPING :
{
"Name": {
"type": "text",
"index": "not_analyzed",
"include_in_all": true,
"fields": {
"raw": {
"type": "text",
"index": "not_analyzed",
"include_in_all": false
},
"trigram": {
"type": "text",
"analyzer": "trigram_analyzer"
}
}
}
}
RESULT
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": 0,
"hits": []
},
"suggest": {
"simple_phrase": [
{
"text": "min",
"offset": 0,
"length": 3,
"options": [
{
"text": "mib",
"score": 0.6666666,
"freq": 79
},
{
"text": "mid",
"score": 0.6666666,
"freq": 59
}
]
}
]
}
}
答案 0 :(得分:0)
正如文档中所述:
术语建议者根据编辑距离建议术语。在建议术语之前分析提供的建议文本。建议的术语是根据分析的建议文本标记提供的。术语建议者不会将查询视为请求的一部分。
因此,术语建议或者编辑"你的文字。所以你可以尝试这样的事情,看看minimum
作为建议的结果:
{
"suggest": {
"text" : "minimam",
"simple_phrase" : {
"term" : {
"analyzer" : "standard",
"field" : "Name.raw",
"min_word_length" : 1,
"suggest_mode" : "always"
}
}
}
}
我认为,为了您的目的,最好使用completion suggester。