我需要能够搜索特定组的所有成员(由普通的groupId
字段标识),并通过与其他字段的相关性将其返回(description
)lucene - 返回加一个字段并按照另一个字段排序的所有文档
意义,比方说,我有以下文档索引:
name="a" groupId="445" description="lives in a blue house"
name="b" groupId="445" description="has a green car"
name="c" groupId="445" description="likes blue flowers"
name="d" groupId="445" description="his eyes are brown"
name="e" groupId="445" description="her table is light-blue"
,我想通过ID(groupId:445 AND ...
)按相关性,让他们所有的,然后排序单词“蓝色” 意义 - 我想得到a,b,c第一个但是仍然得到其他人(在描述中根本没有“蓝色”一词),只是分数较低
我该如何做到这一点?
谢谢!
一个简单的hackish的方法是使用一个布尔查询相结合你的多个查询。更好的方法是使用getCustomScoreProvider的CustomScoreQuery的子类重写以返回您的CustomScoreProvider的子类。 – Mikos 2012-01-02 17:05:43
我已经看过CustomScoreQuery,并且在这一点上改变分数机制对我来说有点高级,所以我可能会开始重新排列查询,就像你说的 – levtatarov 2012-01-03 15:10:53