ElasticSearch错误地索引和查询非字母数字字符

时间:2012-08-28 23:26:03

标签: string normalization elasticsearch

我的ElasticSearch索引未正确索引和查询非字母数字字符。具体来说,点和短划线会导致问题。

如果我索引名为“O.K. Corral”的文档,它应匹配“OK Corral”的查询。同样,如果我将“Whiskey A Go-Go”编入索引,我希望它能与“Whiskey A GoGo”和“Whiskey A Go Go”相匹配。

现在,只有带正确点和短划线的查询才会返回这些文档。

我希望该解决方案还能解决其他非字母数字字符(如逗号和撇号)的任何潜在问题。

对于ElasticSearch令牌过滤器来说,这听起来像是一项工作,但我找不到能够满足我所需要的人的工作。另外,我想在ElasticSearch中执行此操作 - 我不想编写自定义字符串操作来在数据到达我的ES索引之前对其进行规范化。

感谢您的帮助!

1 个答案:

答案 0 :(得分:7)

您可能想查看Word Delimiter Token Filter。它至少可以用“Whiskey A GoGo”和“Whiskey A Go-Go”来做你想做的事。您可以使用analyze api预先检查其行为。