gpt4 book ai didi

java - 在lucene中分组搜索后检索文档

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:17 25 4
gpt4 key购买 nike

我正在对我的资源进行 lucene 搜索。我有一个案例,我搜索特定产品,我需要通过“关键字”字段进行分组搜索。我可以了解分组的产品总数通过与其关联的关键字。如何获取与此搜索相关的所有文档,以便我可以从中检索其他所需的字段。我尝试使用 AbstractAllGroupHeadsCollector 但找不到并对其用法感到困惑。这是我的代码。提前致谢。

        Integer totalGroupCount = null;
IndexReader ir = DirectoryReader.open(indexLocation);
IndexSearcher is = new IndexSearcher(ir);
GroupingSearch groupingSearch = new GroupingSearch("keywords");
groupingSearch.setGroupSort(Sort.RELEVANCE);
groupingSearch.setFillSortFields(true);
groupingSearch.setCachingInMB(4.0, true);
groupingSearch.setAllGroups(true);
//TermQuery query = new TermQuery(new Term("products", "wfa packages"));
TopGroups<BytesRef> result = groupingSearch.search(is, query, 0, 10);
// Render groupsResult...
totalGroupCount = result.totalGroupCount; // The group count
GroupDocs<BytesRef>[] d=result.groups;
System.out.println("total groups="+result.totalGroupedHitCount);

最佳答案

您已经有了 GroupDocs 数组,这已经是大部分内容了。然后,您可以从每个 GroupDocs 中获取 scoreDocs,并从 ScoreDoc.doc 中查找具有文档 ID 的文档,例如:

for (GroupDocs<BytesRef> group : d) {
for (ScoreDoc scoredoc : group.scoreDocs) {
Document doc = is.doc(scoredoc.doc);
//Do stuff
}
}

关于java - 在lucene中分组搜索后检索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27277265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com