2

我需要在 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>

这可能吗?或者我需要实现或找到一个插件?

4

2 回答 2

3

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

感谢David Faber给了我处理原始 XML 结果的想法

于 2012-10-08T03:52:47.423 回答
-2

在结果中列出一个字段position(除其他外):

...&fl=field1,field2,position

排序方式 position

...&sort=position desc 

在这里参考他们:http ://wiki.apache.org/solr/CommonQueryParameters#sort

于 2012-10-01T10:06:09.730 回答