2012-01-02 57 views
0

我需要能够搜索特定组的所有成员(由普通的groupId字段标识),并通过与其他字段的相关性将其返回(descriptionlucene - 返回加一个字段并按照另一个字段排序的所有文档

意义,比方说,我有以下文档索引:

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第一个但是仍然得到其他人(在描述中根本没有“蓝色”一词),只是分数较低

我该如何做到这一点?

谢谢!

+0

一个简单的hackish的方法是使用一个布尔查询相结合你的多个查询。更好的方法是使用getCustomScoreProvider的CustomScoreQuery的子类重写以返回您的CustomScoreProvider的子类。 – Mikos 2012-01-02 17:05:43

+0

我已经看过CustomScoreQuery,并且在这一点上改变分数机制对我来说有点高级,所以我可能会开始重新排列查询,就像你说的 – levtatarov 2012-01-03 15:10:53

回答

0

你想要的是一种提升。例如groupId:445^10 description:blue