Solr: Как динамически поднять ограниченное количество документов? Нужно ли изменять QueryElevationComponent?

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

У меня есть одно поле документа, в котором хранится числовое значение, аналогичное повышающему значению, которое представляет собой значение рейтинга лифта.

Таким образом, пользовательский запрос вернет 5 документов с наивысшим значением рейтинга лифта, а остальные документы заполнят страницу в обычном порядке.

Как это сделать?

QueryElevationComponent разрешает только статические определения запросов. Повышение не позволяет повышать ограниченное количество документов для специального поля ранжирования лифта.

Должен ли я писать модифицированный QueryElevationComponent? Если да, есть ли хорошие примеры, как это сделать?

Или существует другой подход, который я не догнал?

Спасибо за любые подсказки или идеи!


person Omnaest    schedule 03.11.2011    source источник


Ответы (2)


У меня был бы один из этих двух подходов:

Оба эти метода могут привести к непредсказуемым результатам (поскольку модель релевантности в Solr очень сложна). Однако с функцией запроса вы можете немного больше настроить.

person Max Charas    schedule 04.11.2011
comment
Спасибо за ваш комментарий. Как я могу ограничить количество форсированных документов с помощью этого подхода? - person Omnaest; 04.11.2011

Нашел решение, используя два отдельных запроса.

Сначала повышайте документы по этому полю очков. Используйте разбиение на страницы, чтобы ограничить результат. Возьмите уникальные идентификаторы документов со страницы результатов и явно повысьте их в новом запросе.

person Omnaest    schedule 14.01.2012
comment
Нет. Вам просто нужно использовать ExternalFileField для достижения того, что вы только что сделали, используя два запроса. stackoverflow.com/questions/ 6015879/ - person zengr; 20.07.2013