2010-03-31 103 views

回答

5

您能否对您的意思是模糊匹配更具体一点?如果你想使用诸如莱文斯坦,哈罗,温克勒等来比较两个字符串的字符串距离

的Lucene提供了使用符号(〜)运算符和 See here

模糊查询通配符(* &?)您最好使用单独的库,例如SimMetrics。 我在我的生产现场使用了Simmetrics,它可以在工厂生产。

SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); //compare string 1, string 2 
double sim = ls.GetSimilarity(string_1, string_2); 
if(sim > [some value]) 
{ 
//do something 
} 
+0

谢谢你的回答,先生。 你说得对,我想用Levenshtein算法来比较两个字符串,你能给我一个例子,你如何使用SimMetrics模糊匹配两个字符串? – user306080 2010-04-01 07:41:43

+1

其实很直接: 1.在你的项目添加到Simmetrics DLL的引用 2.在您想运行的相似的方法, SimMetricsMetricUtilities.Levenstein LS =新SimMetricsMetricUtilities.Levenstein(); //比较字符串1,字符串2 double sim = js.GetSimilarity(string_1,string_2); if(sim> [some value]) { //做些什么 } – Mikos 2010-04-01 21:48:34

+0

我看到的唯一问题是,您是否在从lucene获取结果后进行匹配。 – Dementic 2011-10-18 15:01:42