Я ищу модуль сходства в Lucene (Java), который дает оценку на основе веса. Я знаю, что это расплывчато, лучше объяснить с помощью примера.Lucene custom сходство/оценка
Document 1
-----------
Firstname: Francesca
Document 2
-----------
Firstname: Francisco
В поле Имени анализируется с помощью Doublemetaphone & Рафинированного SOUNDEX фонетических алгоритмов. во время этапа индексации.
Таким образом, инвертированный индекс выглядит следующим образом (последние два термина дается Doublemetaphone и утонченный Soundex соответственно):
francesca ===> Doc1
francisco ===> Doc2
FRNS ===> Doc1, Doc2
F29083030 ===> Doc1
F2908306 ===> Doc2
Теперь мой поисковый запрос выглядит следующим образом: Firstname: «Франческа»
Очевидно, что для Doc1 все 4 члена соответствуют. Для каждого матча я хочу дать процент от 25% (я заранее знаю, что для данного срока может быть максимум 4 расширенных условия.
Следуя этому принципу, я хочу дать следующую оценку :
Doc1 (100) [Reason: All 4 terms match]
Doc2 (25) [Reason: Only FRNS term matches, rest don't match]
Теперь мой вопрос здесь, чтобы достичь этого, есть ли модуль подобия доступен из полки Если нет, то я считаю, что я должен расширить DefaultSimilarity и переопределить необходимые методы Но где модуль?. который вызывает модуль подобия и суммирует все баллы по каждому документу? Причина, по которой я спрашиваю, я буду расширять этот балл в зависимости от веса для других полей. В этом случае общий балл на документ будет суммой средневзвешенного показателя для отдельных лиц ual поля. Поэтому я также должен настроить код, который суммирует количество отдельных полей и переопределяет его, чтобы найти среднее значение. Может кто-нибудь показать некоторые указатели, пожалуйста? Благодарю.
Благодарим за это. Но то, что я также рассматриваю, - это класс, который мне нужно переопределить, чтобы усреднить отдельные баллы (за поле). – user1189332
Обновленный ответ. –