Search lucene-返回所有包含一个字段的文档,并按另一个字段的相关性排序

Search lucene-返回所有包含一个字段的文档,并按另一个字段的相关性排序,search,lucene,Search,Lucene,我需要能够搜索某个组的所有成员(由一个公共groupId字段标识),并通过与另一个字段(description)的相关性将其取回 也就是说,假设我对以下文档进行了索引: 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 flower

我需要能够搜索某个组的所有成员(由一个公共
groupId
字段标识),并通过与另一个字段(
description
)的相关性将其取回

也就是说,假设我对以下文档进行了索引:

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和…
)获取它们,然后按与单词“blue”的相关性排序 意思-我想先得到a、b、c,但仍然得到其他人(他们在描述中根本没有“蓝色”这个词),只是分数较低

我怎样才能做到这一点


谢谢

你想要的是刺激
groupId:445^10 description:blue
例如。

我找到了一个答案: 查询的编程构造(更多信息如下:)

当我将一个TermQuery添加到BooleanQuery中时,我发现我可以将它定义为“必须发生”或“应该发生”(我认为在查询语法中,它在该术语之前翻译为“+”,或者不翻译)

更多关于发生:

一种简单的黑客方法是使用布尔查询来组合多个查询。更好的方法是使用覆盖getCustomScoreProvider的CustomScoreQuery的子类返回CustomScoreProvider的子类。我已经看过CustomScoreQuery,此时更改评分机制对我来说有点太高级了,所以我可以像你说的那样重新排列查询