Lucene分析仪的名字

时间:2013-03-05 20:42:28

标签: search solr lucene elasticsearch

是否有一个Lucene分析仪,用相同的短名称标记名称部分(例如Mike和Michael,Rich和Richard,Suzie和Susan)等等?

Levenshtein距离上的模糊匹配是我所知道的解决方案,并且一些实现者似乎将模糊匹配与soundex算法配对。当然有人在某处简单地列出了所有这些短名称?

编辑:这个问题中最棘手的部分是从哪里获取同义词数据?

1 个答案:

答案 0 :(得分:5)

我不知道有任何具体的昵称过滤器。

如果您有数据源,SynonymFilter会使生成起来相当容易。这似乎是昵称数据的一个很好的来源:

https://code.google.com/p/nickname-and-diminutive-names-lookup/

您需要生成SynonymMap以传递到SynonymFilter ctor,它应该看起来像这样(我认为):

SynonymMap.Builder builder = new SynonymMap.Builder(true);
builder.add(new CharsRef("Mike"), new CharsRef("Michael"), false);
builder.add(new CharsRef("Rich"), new CharsRef("Richard"), false);
builder.add(new CharsRef("Suzie"), new CharsRef("Susan"), false);
SynonymMap map = builder.build();