Java Lucene-返回按匹配字段数排序的结果

Java Lucene-返回按匹配字段数排序的结果,java,lucene,Java,Lucene,我有一个包含许多字段的Lucene索引。我想用它来查找按匹配字段数排序的文档,并让结果显示匹配的字段数 在我的特定示例中,Lucene索引中的文档表示web页面,字段是标题、元描述、h1文本等 如果我搜索像“bicycle”这样的术语,我希望返回任何字段中包含单词“bicycle”的所有文档。但是,我希望相关性得分表示包含关键字“bicycle”的字段的数量。例如,如果一个文档在标题和元描述中包含“bicycle”,我希望该文档的排名高于仅在标题中包含“bicycle”的文档。我还希望能够确定第

我有一个包含许多字段的Lucene索引。我想用它来查找按匹配字段数排序的文档,并让结果显示匹配的字段数

在我的特定示例中,Lucene索引中的文档表示web页面,字段是标题、元描述、h1文本等

如果我搜索像“bicycle”这样的术语,我希望返回任何字段中包含单词“bicycle”的所有文档。但是,我希望相关性得分表示包含关键字“bicycle”的字段的数量。例如,如果一个文档在标题和元描述中包含“bicycle”,我希望该文档的排名高于仅在标题中包含“bicycle”的文档。我还希望能够确定第一个文档包含两个匹配项,而第二个文档只包含一个匹配项。特定字段中关键字的频率并不重要。我只想知道它是否匹配

我知道我可以使用
BooleanQuery
在单个字段上查找匹配项,我可以将这些字段组合在一起在多个字段上执行and或or,但我不确定如何执行查询,该查询将返回与任何字段匹配的文档,但也会返回匹配字段数量的一些指示符

任何帮助都将不胜感激

在Lucene中,可以通过形成查询来完成,如
标题:网页
。假设您创建查询q1、q2。。对于n个字段,类似于上面的qn。使用这些查询进行搜索将返回存储在列表l1、l2、l2中的文档ID,。。自然对数。现在,将它们合并到一个集合S中。对于S中的每个项目,检查该项目属于多少个列表(或哪些列表)。如果我理解正确的话,那应该能解决你的问题

在Lucene中,可以通过形成查询来完成,如
标题:网页
。假设您创建查询q1、q2。。对于n个字段,类似于上面的qn。使用这些查询进行搜索将返回存储在列表l1、l2、l2中的文档ID,。。自然对数。现在,将它们合并到一个集合S中。对于S中的每个项目,检查该项目属于多少个列表(或哪些列表)。如果我理解正确的话,那应该能解决你的问题