搜索结果中solr文档的排名或位置

时间:2012-10-01 01:16:47

标签: solr full-text-search position

我需要在solr中查询查询后列出排名(或位置,您可能更喜欢)或每个文档。我想看的东西是这样的:

<doc>
    <int name="field1">1</int>
    <str name="someotherfield">blabla</str>
    <int name="position">1</int>
</doc>
<doc>
    <int name="field1">2</int>
    <str name="someotherfield">blabla</str>
    <int name="position">2</int>
</doc>
<doc>
    <int name="field1">3</int>
    <str name="someotherfield">blabla</str>
    <int name="position">3</int>
</doc>
这可能吗?或者我需要实现或找到一个插件?

2 个答案:

答案 0 :(得分:3)

在挖掘源代码之后,我现在能够看到每个不同搜索的动态位置。我只是将位置函数添加到DocIterator并在子类中实现。然后我在ReturnFields中添加了一个控制块,用于检查fl是否在其中有位置。它与score的工作方式类似。最后要做的是添加一个自定义增强器类,如PositionAugmenter - 类似于ScoreAugmenter。然后我完成了:)

感谢 David Faber 让我了解处理原始XML的结果

答案 1 :(得分:-2)

在结果中列出字段position(以及其他内容):

...&fl=field1,field2,position

position

排序
...&sort=position desc 

请在此处提及:http://wiki.apache.org/solr/CommonQueryParameters#sort