我有单词列表,例如:
'today
today
t-oday
t oday
t/oda y
如果我搜索单词today
或t/oday
或'today
,我如何从Lucene索引中检索所有这些单词。
我实际上希望搜索对&符号,短划线,空格和其他一些字符不敏感。
处理这种情况的最佳方法是什么?我应该编写自己的分析器/标记器,还是可以用来执行此搜索?
我正在使用Hibernate Search。
答案 0 :(得分:0)
在您的分析仪中添加CharFilter
可能是最佳解决方案。这允许您在应用标记生成器之前预处理输入。 Hibernate documentation中有一些TokenFilter示例(参见示例4.13)。
我建议使用MappingCharFilterFactory
,并定义映射以去除您不感兴趣的字符。
从输入中删除所有空格对我来说似乎是一个相当不寻常的情况,因为这可能会阻止有用的标记化,但我想我会假设你已经考虑到了这一点。