Elasticsearch SuggestResponse 数字字符串错误

Elasticsearch SuggestResponse wrong on string with number

我已经使用 Elasticsearch 2.x.x 构建了一个自动完成服务。我的自动完成值之一是“3M”。我已将模糊度配置为 AUTO,我的映射只是默认值:

"mapping": {
    "type": "completion",
     "analyzer": "simple",
     "payloads": false,
     "preserve_separators": true,
     "preserve_position_increments": true,
     "max_input_length": 50
}

基于 this documentation 分析器应该很简单,模糊性 AUTO 意味着 MAX 2 个拼写错误。

问题是,每当我输入“1000000M”时,它仍然会自动完成“3M”,尽管 1000000 和 3 超过了 2 个拼写错误的限制。

Elastic 知道 1000000 和 3 都是数字吗?我正在寻找{一个数字}M?

我希望数字表现为实际的字符串拼写错误,因为这不是首选行为。

即使我将模糊度设置为零,它仍会将 1000000M 更正为 3M。

解决方案相当简单。我所要做的就是将我的分析仪从 simple to keyword 更改。不过要记住的一件事是关键字不使用小写分析器,这意味着您的自动完成将区分大小写,除非 .toLowercase() 全部由您自己