Solr搜索结果并检索文档的位置

时间:2011-01-04 13:39:18

标签: solr solrnet

我有一个使用SolrNet访问的solr索引,我想在结果中检索特定文档的索引(位置),而不返回整个结果集。

更详细...查询返回~30,000个文档,并按整数字段排序。唯一键字段包含一个Guid,我想根据唯一键找到特定文档的结果,同时只返回前10个结果。

这个索引最初是在普通的旧Lucene中实现的,这个任务是通过两个查询实现的,一个用于获取我想知道的文档的lucene doc id,然后是第二个返回整个结果集的查询。然后,我可以使用doc id来查找文档在完整结果集中的显示位置,但只能枚举前10个文档。

有没有办法实现我在Solr之后所做的事情,而没有返回所有30000个结果(甚至将此限制为Guid似乎只是太慢了)?

由于

2 个答案:

答案 0 :(得分:5)

我认为您可以使用范围查询,包括您的用户点作为较低级别,您可以获得上面的用户数。您可以使用构面范围方法进行显式查询或获取该信息。

所以,如果你知道你的用户点是10.000,你可以做一个查询:游戏:俄罗斯方块点[MaxInt TO 10000],如果结果是375,你会知道你的用户在375级。

答案 1 :(得分:0)

我能想到的唯一可靠的方法是在索引时建立排名,即有一个“rank”整数字段,并在构建索引时填充它。这样做的缺点是每次更新都需要重建整个索引。

Lucene doc ids不稳定,我建议不要使用它们(请参阅thisthisthis),Solr也不会公开它们。