我有一个关于 Lucene/Solr 的问题。
我正在尝试解决一般(公司)名称匹配问题。
让我举一个过于简单的例子:
我们有两个(可能很大)名称列表,即 list_A 和 list_B。 我们想找到两个列表的交集,但是两个列表中的名称可能并不总是完全匹配。对于 list_A 中的每个不同名称,我们将要报告来自 list_B 的一个或多个最佳匹配。
听说Lucene/Solr可以解决这个问题。你能告诉我这是不是真的?如果是,请指出一些最小的工作示例。
感谢和问候, 迪比恩杜
最佳答案
你可以用 Lucene 解决这个问题,是的,但是如果你只需要解决这个问题,创建 Lucene 索引会有点迂回。
我更倾向于采用更简单的方法。您可以找到一个用于字符串之间模糊比较的库,并遍历您的列表并仅返回那些在特定相似度阈值下的匹配项。
org.apache.commons.lang3.StringUtils想到,像这样的东西:
for (String a : alist) {
for (String b : blist) {
int dist = StringUtils.getLevenshteinDistance(a,b)
if (dist < threshold) {
//b is a good enough match for a, do something with it!
}
}
}
关于java - Lucene/Solr 用于近似(公司)名称匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263599/