6

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

如果我索引一个名为“OK Corral”的文档,它应该匹配“OK Corral”的查询。同样,如果我索引“Whiskey A Go-Go”,我希望它匹配“Whiskey A GoGo”和“Whiskey A Go Go”。

现在,只有带有正确点和破折号的查询才会返回这些文档。

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

这听起来像是 ElasticSearch 令牌过滤器的工作,但我一直无法找到一个能满足我要求的功能。另外,我想在 ElasticSearch 中执行此操作——我不想在数据到达我的 ES 索引之前编写自定义字符串操作来规范化数据。

谢谢你的帮助!

4

1 回答 1

7

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

于 2012-08-29T15:16:39.253 回答