2010-03-31 15 views

risposta

5

Potresti essere un po 'più specifico su cosa intendi per abbinamento sfocato?

Lucene offre query sfocate utilizzando l'operatore tilde (~) ed i caratteri jolly (* &?) See here

Se si desidera confrontare la distanza stringa di 2 stringhe utilizzando metodi come Levenshtein, Jaro-Winkler etc. stai meglio usando una libreria separata come SimMetrics. Io uso Simmetrics nel mio sito di produzione e funziona perfettamente.

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

Grazie per la risposta, signore. Hai ragione, voglio confrontare due stringhe usando l'algoritmo di Levenshtein, potresti darmi un esempio di come stai sfocando due stringhe usando SimMetrics? – user306080

+1

è in realtà molto straight-forward: 1. Aggiungere un riferimento al dll Simmetrics nel progetto 2. Nel metodo in cui si desidera eseguire la somiglianza, SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); // confronta stringa 1, stringa 2 double sim = js.GetSimilarity (stringa_1, stringa_2); se (SIM> [qualche valore]) {// fare qualcosa } – Mikos

+0

l'unico problema che vedo con questo, è che si fa l'abbinamento Dopo aver ottenuto i risultati di Lucene. – Dementic