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

Cla*_*ell 6 string normalization elasticsearch

我的ElasticSearch索引未正确索引和查询非字母数字字符.具体而言,点和短划线会引起问题.

如果我使用名称"OK Corral"索引文档,它应该匹配"OK Corral"的查询.同样,如果我将"Whiskey A Go-Go"编入索引,我希望它能与"Whiskey A GoGo"和"Whiskey A Go Go"相匹配.

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

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

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

谢谢你的帮助!

jav*_*nna 7

您可能想要查看Word分隔符令牌过滤器.它至少可以用"Whiskey A GoGo"和"Whiskey A Go-Go"来做你想做的事.您可以使用analyze api提前检查其行为.

  • 事实证明,单词分隔符令牌过滤器也用点处理我的问题.我必须要记住的一件事就是取下标准的标记器 - 如果它已经到位,那么字符串在进入过滤器之前就已经被标记化了(在我的情况下是不正确的).但是通过使用空白标记器和正确配置的单词分隔符标记过滤器,我能够使一切正常工作.谢谢! (5认同)