2010-03-31 102 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