我正在尝试升级到Elasticsearch v7(我正在使用ruby / rails客户端),并且这样做并修复了一些问题之后,遇到了以下错误
Elasticsearch::Transport::Transport::Errors::BadRequest:
[400] {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"The [standard] token filter has been removed."}],"type":"illegal_argument_exception","reason":"The [standard] token filter has been removed."},"status":400}
在检查重大更改时,确实提到了
标准令牌过滤器已删除,因为它不会更改流中的任何内容。
我不确定我该如何在我的配置中反映出来。如果我理解正确,则可能是由于我的自定义短语建议者
{
"analysis": {
"filter": {
"shingle": {
"type": "shingle",
"min_shingle_size": 2,
"max_shingle_size": 3
}
},
"analyzer": {
"trigram": {
"type": "custom",
"tokenizer": "standard",
"filter": ["standard", "shingle"]
},
"reverse": {
"type": "custom",
"tokenizer": "standard",
"filter": ["standard", "reverse"]
}
}
}
}
我应该只删除tokenizer
字段吗?也许他们忘记更新了,但这仍然是[Elasticsearch documentation of the suggester][1]
如果问题不是出在那儿,我应该去哪里找?
答案 0 :(得分:5)
答案已在评论中给出,请赞成Rob的评论(我不喜欢保留未解决的问题,因此为了完整起见,我添加此答案)
{
"analysis": {
"filter": {
"shingle": {
"type": "shingle",
"min_shingle_size": 2,
"max_shingle_size": 3
}
},
"analyzer": {
"trigram": {
"type": "custom",
"tokenizer": "standard",
"filter": ["shingle"]
},
"reverse": {
"type": "custom",
"tokenizer": "standard",
"filter": ["reverse"]
}
}
}
}