Elasticsearch / Lucene缩写搜索

时间:2014-12-29 01:09:59

标签: elasticsearch lucene

我发现公司名称中的首字母缩写词有多种格式,例如

AB Industries A.B. Industries A B Industries

这些名称可能位于我的任何格式的索引数据中,也可能出现在任何这些格式的搜索查询中。

是否有任何过滤器和标记器组合可以搜索任何列出的格式,以查找任何列出的格式的索引文档?

1 个答案:

答案 0 :(得分:1)

如果您使用的是StandardAnalyzer,您的数据将以'。'分隔。 A和B将作为单独的条款编入索引。

我建议尝试以下选项

1)实现您自己的自定义分析器,删除StandardFilter并使用LowerCaseFilter使用ClassicTokenizer。 (根据ClassicTokenizer文档 - “在标点符号上拆分单词,删除标点符号。但是,没有空格后面的点被视为标记的一部分”

2)如果以上工作,仍然将“A.B”索引为“A.B”,因此查询“AB”将找不到任何匹配。要完全解决此问题,您必须使用您的标记器来标准化标记A.B-> AB,A B->索引前的AB等。

您可以在google上获得大量自定义标记器和分析器的示例。

让我知道实验状态。