Как применить сортировку по умолчанию в люцене на равные баллы? - PullRequest
3 голосов
/ 09 ноября 2009

Добрый день,

Если у меня есть, например, документы со следующими полями

Person_name - Birthday
Jordan - 2009-06-15
Marc - 2009-01-01
Marcos - 2009-01-01
Marcissh_something_something - 2009-06-15
Marcos - 2009-12-31

И после поиска Person_name: Marc * я получил следующие оценки (оценки здесь гипотетические)

Person_name - Birthday - Score
Jordan - 2009-06-15 - 0.0
Marc - 2009-01-01 - 1.0
Marcos - 2009-01-01 - 0.8
Marcissh_something_something - 2009-06-15 - 0.1
Marcos - 2009-12-31 - 0.8

Как я могу получить результат таким образом, чтобы результат сначала сортировался по релевантности, а затем предполагалось, что сортировка по релевантности (баллам) по дню рождения будет происходить по убыванию ... так, что результат будет

Person_name - Birthday - Score
Marc - 2009-01-01 - 1.0
Marcos - 2009-12-31 - 0.8
Marcos - 2009-01-01 - 0.8
Marcissh_something_something - 2009-06-15 - 0.1

Спасибо

Ответы [ 2 ]

1 голос
/ 09 ноября 2009

Я собирался порекомендовать ScoreDocComparator, но теперь он устарел. Вы можете использовать FieldComparator . Вам необходимо создать TopFieldCollector и определить его Сортировка в соответствии с вашими пожеланиями. Я считаю, что это довольно новое, так как я не смог найти хороший пример.

1 голос
/ 09 ноября 2009

Попробуйте просмотреть результаты поиска, а затем самостоятельно отсортировать результаты. Для этого вы можете использовать компаратор, который сравнивает оценку, а затем естественные поля результатов поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...