【发布时间】:2017-10-23 04:21:27
【问题描述】:
我想知道短语建议器是否有任何方法可以纠正语音差异上的前缀拼写错误。
弹性搜索 5.1.2
在 Kibana 5.1.2 中测试
例如:
有人写了“sircus”而不是“马戏团”,或者有人写了“koding”而不是“编码”。 有趣的是,你可以写“frase”来代替“短语”并获得建议。
这是我的设置。
设置:
PUT text_index
{
"settings": {
"analysis": {
"analyzer": {
"suggests_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding",
"shingle_filter"
],
"type": "custom"
},
"reverse": {
"type": "custom",
"tokenizer": "standard",
"filter": ["standard", "reverse"]
}
},
"filter": {
"shingle_filter": {
"min_shingle_size": 2,
"max_shingle_size": 5,
"type": "shingle"
}
}
}
},
"mappings": {
"testtype": {
"properties": {
"suggest_field": {
"type": "text",
"analyzer": "suggests_analyzer",
"fields": {
"reverse": {
"type": "text",
"analyzer": "reverse"
}
}
}
}
}
}
}
一些文件:
POST test_index/test_type/_bulk
{"index":{}}
{ "suggest_field": "phrase"}
{"index":{}}
{ "suggest_field": "Circus"}
{"index":{}}
{ "suggest_field": "Coding"}
查询:
POST /so-index/_search
{
"suggest" : {
"text" : "sircus",
"simple_phrase" : {
"phrase" : {
"field" : "suggest_field",
"max_errors": 0.9,
"highlight": {
"pre_tag": "<em>",
"post_tag": "</em>"
},
"direct_generator" : [ {
"field" : "suggest_field",
"suggest_mode" : "always"
}, {
"field" : "suggest_field.reverse",
"suggest_mode" : "always",
"pre_filter" : "reverse",
"post_filter" : "reverse"
}]
}
}
}
}
另外,我重复以下步骤几次(5 到 10 次之间)而不做任何更改:
- 删除索引
- 放置索引、设置和映射
- 添加文档
- 查询(代码)
有时我会收到建议,有时却没有。有什么解释吗?
【问题讨论】:
-
这可以使用术语建议者elastic.co/guide/en/elasticsearch/reference/current/…进行更正
标签: elasticsearch kibana search-suggestion