Solr результаты поиска и получения позиции документа - PullRequest
2 голосов
/ 04 января 2011

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

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

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

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

Спасибо

Ответы [ 2 ]

5 голосов
/ 14 января 2011

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

так что, если вы знаете, что ваша пользовательская точка равна 10.000, вы можете выполнить запрос: game: tetris points [MaxInt TO 10000], и если результат будет 375, вы будете знать, что ваш пользователь имеет ранг 375.

0 голосов
/ 06 января 2011

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

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

...