2011-09-20 2 views
1

Я пытаюсь проверить SOLR для моего приложения для нахождения процентного соответствия между строками.Solr Lucene нечеткий матч возвращает неправильные результаты

Я сконфигурировал solr и определенную схему только для соответствия first_name, я использовал text_general datatype в схеме (solr 3.3).

В моем документе/CSV Я держал слово «rushik» и в Solr запроса Я пытаюсь искать с «rushk» - намеренно удалены «я»

В идеале с помощью алгоритма Левенштейн расстояние 1 между выше две строки таким образом, процентное совпадение между строками должно быть (1 - distance/maxLen (string1, string2)), которое равно (1 - 1/6) = 0,83 - это означает, что обе строки соответствуют 83%.

Но в solr его соответствие до тех пор, пока я дам rushk ~ 0.79 в запросе - когда я использую ~ 0.80, 0.81 и т. Д., Это не совпадает с документом.

Не уверен, что мой расчет совпадения строк levenshtein неверен или как именно я могу определить, где проблема.

Любая помощь здесь очень ценится.

Thanks, Rushik.

ответ

0

нечеткий процент расчет нечеткого запрос -

distance = 1 - ((double)dist/(double)Math.min(textlen, targetlen)); 
return (distance > FUZZY_THRESHOLD); 

В вашем случае это будет 1 - 1/5 = 0,8 Так это кажется действительным.

+0

Спасибо Jayendra, но большинство мест, где я нашел ppl, используя MAX Length в этом расчете, знаете ли вы точную причину, почему SOLR настроен с MIN? – Rushik

+0

Не уверен. Вы можете проверить источник @ http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FuzzyTermsEnum.java – Jayendra

Смежные вопросы