Результаты поиска Solr и получение позиции документа

StackOverflow https://stackoverflow.com/questions/4594218

  •  15-10-2019
  •  | 
  •  

Вопрос

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

Более подробно ... запрос возвращает ~ 30 000 документов и заказывается целочисленным полем. Уникальное поле ключа содержит GUID, и я хотел бы найти, где в результатах находится конкретный документ, основанный на уникальном ключе, а только возвращает первые 10 результатов.

Этот индекс был первоначально реализован в простом старом Lucene, и эта задача была достигнута с помощью двух запросов, один, чтобы получить идентификатор Lucene Doc документа, о котором я хочу узнать, а затем секунду, которая возвращает весь набор результатов. Затем я могу использовать идентификатор DOC, чтобы найти, где появляется документ в полном наборе результатов, но затем перечислять только документы для первых 10.

Есть ли способ достичь того, что я и после Solr, не возвращая все 30000 результатов (даже ограничение этого на GUID кажется слишком медленным)?

Спасибо

Это было полезно?

Решение

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

Итак, если вы знаете, что у вас пользовательский пункт - 10.000, вы можете сделать запрос: игра: Tetris Points [maxint to 10000], и если результат составляет 375, вы бы знали, что ваш пользователь находится в рейтинге 375.

Другие советы

Единственный надежный способ, о котором я могу придумать,-это построить рейтинг в индексном времени, то есть иметь целочисленное поле «ранга» и заполнять его при создании индекса. Недостатком этого является то, что каждое обновление требует восстановления всего индекса.

Lucene Doc идентификаторы не стабильны, я бы не рекомендовал использовать их для этого (см. это, это, это), и Solr все равно не выставляет их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top