我需要能够搜索特定群组的所有成员(由常见的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 AND ...
)获取所有内容,然后按“blue”一词的相关性排序
意思是 - 我想得到a,b,c首先但仍然得到其他人(在说明中根本没有“蓝色”这个词),只是得分较低< / p>
我怎样才能实现这一目标?
谢谢!
答案 0 :(得分:0)
你想要的是一种提升。例如groupId:445^10 description:blue
。
答案 1 :(得分:0)
我找到了答案: 程序化构建查询(更多信息:http://www.lucenetutorial.com/lucene-query-syntax.html)
当我将一个TermQuery添加到一个BooleanQuery时,我发现我可以将它定义为“必须发生”或“应该发生”(我认为在查询语法中它转换为'+',或者缺少它,之前术语)
更多关于Occur: http://lucene.apache.org/java/3_4_0/api/all/org/apache/lucene/search/BooleanClause.Occur.html