java - Elasticsearch带数字的字符串的SuggestResponse错误

标签 java elasticsearch autocomplete fuzzy-search search-suggestion

我已经用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的分析器应该简单易行,而Fuzziness AUTO表示 MAX 2拼写错误。

这就是问题所在,尽管1000000和3超出了2个拼写错误的限制,但是只要我键入“1000000M”,它仍会自动完成“3M”。

Elastic知道1000000和3都是数字,并且我正在寻找{a number} M吗?

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

即使将“模糊性”设置为“零”,它仍然可以将1000000M校正为3M。

最佳答案

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

关于java - Elasticsearch带数字的字符串的SuggestResponse错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491013/

相关文章:

java - Intellij IDEA 不在自动完成弹出菜单中显示类导入

java - 按属性属性选择 Realm

java - Android 按钮动画

elasticsearch - 具有不同操作系统的Elasticsearch复制集群

c# - Missing()方法DateHistogramAggregationDescriptor在特定条件下似乎不起作用

Jquery 仅自动完成一次 post 请求

php - 将 2000 条自动完成字段记录添加到现有的 mysql 表中

java - 从语言类获取语言

java - JTree选择问题

Elasticsearch 通配符搜索和相关性