【发布时间】:2012-08-23 12:47:23
【问题描述】:
我的 ElasticSearch 索引未正确索引和查询非字母数字字符。具体来说,点和破折号会导致问题。
如果我索引一个名为“O.K. Corral”的文档,它应该匹配“OK Corral”的查询。同样,如果我索引“Whiskey A Go-Go”,我希望它匹配“Whiskey A GoGo”和“Whiskey A Go Go”。
目前,只有带有正确点和破折号的查询才会返回这些文档。
我希望该解决方案还能解决其他非字母数字字符(如逗号和撇号)的任何潜在问题。
这听起来像是 ElasticSearch 令牌过滤器的工作,但我一直无法找到符合我要求的工作。另外,我想在 ElasticSearch 中执行此操作——我不想在数据到达我的 ES 索引之前编写自定义字符串操作来规范化数据。
感谢您的帮助!
【问题讨论】:
-
看看单词分隔符过滤器,它至少应该做一些你需要的事情。
-
@javanna 看起来单词分隔符用破折号做我想要的——现在它只是那些讨厌的点。谢谢!
-
太好了,我刚刚添加了我的评论作为答案。
标签: string normalization elasticsearch