Lucene搜索最长公共子串

时间:2017-05-02 09:17:26

标签: java elasticsearch solr lucene

我正在使用Lucene 6.0.0,并猜测我的问题可以通过FuzzuQuery来解决,前提是Lucene支持editDistance > 2

我使用的是普通的Java Lucene API(Nor SOLR或ElasticSearch)。

假设非标记化的索引文本字段为 - This is Ram's House,当我使用Ramram进行搜索时,我应该将This is Ram's House作为匹配,因为三个连续字符在某种意义上匹配 - 这是一种模糊匹配要求,具有两个以上的编辑距离。

使用My name is Ram and my brother's name is Shyam搜索也应该This is Ram's House作为匹配。

最长公共子串中的最小字符数可能有限制,目前我们应该没有限制为三个。

根据我们的分析,存在可以通过这种方式解决的业务问题。

Lucene可以吗?

可以使用任何其他工具 - 如SOLR,ElasticSearch等?

1 个答案:

答案 0 :(得分:1)

我能够通过使用 - NGramTokenizer

在lucene中使用N-Gram索引技术来解决这个问题

我选择minGram&根据我的要求maxGram值,我已准备好子字符串作为索引,我可以查询这些术语的索引。

它大大增加了生成和索引术语的数量,但解决了我的问题。

More Explanation here

相关问题