我想弄清楚为什么ES中的场景对我来说似乎不起作用。我有一个非常简单的建议映射设置:
{
"ding" : {
"properties" : {
"name" : { "type" : "string" },
"title" : { "type" : "string" },
"test" : { "type" : "string" },
"suggest": {
"type": "completion",
"analyzer": "simple",
"payloads": true,
"max_input_length": 50
}
}
}
}
并将文件编入索引:
{
"title": "Title",
"name": "Name",
"test": "Test",
"suggest": {
"input": [
"Koolmees 21, Breda",
"4822PP 21"
]
}
}
完成建议可以正常使用:
{
"ding" : {
"text" : "Koo",
"completion" : {
"field" : "suggest"
}
}
}
但不是:
{
"ding" : {
"text" : "482",
"completion" : {
"field" : "suggest"
}
}
}
是因为输入以数字字符开头吗?我似乎无法弄明白:S
答案 0 :(得分:2)
完成建议器默认使用simple
分析器。如果您使用Analyze
API,则可以看到它删除了数字:
curl -XGET 'localhost:9200/_analyze?analyzer=simple&pretty=true' -d '4822PP 21'
返回
{
"tokens" : [ {
"token" : "pp",
"start_offset" : 4,
"end_offset" : 6,
"type" : "word",
"position" : 1
} ]
}
您可能希望切换自动完成功能以使用Standard
分析器。