Java Lucene 8.6.1联接查询未收集所有联接记录

Java Lucene 8.6.1联接查询未收集所有联接记录,java,lucene,Java,Lucene,Lucene 8.6.1联接查询未收集所有联接记录 joinQuery = JoinUtil.createJoinQuery(fromField, false, toField, query, searcher, ScoreMode.None); 执行联接查询时,它不会收集所有联接的记录 protectedvoid搜索(列出树叶、重量、收集器) 抛出IOException{ //托多:我们应该这样做吗 //线程化…?收集器是否可以同步? //始终使用单线程: 对

Lucene 8.6.1联接查询未收集所有联接记录

joinQuery = JoinUtil.createJoinQuery(fromField, false, toField, query, searcher,
                ScoreMode.None);
执行联接查询时,它不会收集所有联接的记录

protectedvoid搜索(列出树叶、重量、收集器)
抛出IOException{
//托多:我们应该这样做吗
//线程化…?收集器是否可以同步?
//始终使用单线程:
对于(leaveReaderContext ctx:leaves){//搜索每个子读取器
最终叶片采集器叶片采集器;
试一试{
**leafCollector=collector.getLeafCollector(ctx)**
}捕获(收集终止异常e){
//在此读者上下文中没有感兴趣的文档
//继续下面的叶子
继续;
}
BulkScorer scorer=重量。BulkScorer(ctx);
if(记分器!=null){
试一试{
score(leafCollector,ctx.reader().getLiveDocs());
}捕获(收集终止异常e){
//收集被提前终止
//继续下面的叶子
}
}
}
}
lucene 4.5.1中也有类似的joinQuery

我们是否需要编写自定义收集器来收集JoinQuery记录,或者以其他方式收集它

//更新

当我在org.apache.lucene.search.MultiTermQueryConstantCoreWrapper中以重写方法传递连接查询TermsQuery{field=associatedresourceurifromQuery=+\u category:animals}时,我得到的collectedTerms为null,结果为MatchNodeOcsquery(“空布尔查询”),任何人都知道,我们是否必须编写任何CustomCollector来收集联接查询结果


提前感谢。

您能否提供一个数据示例,该数据在4.5.1中正常工作,但在8.6.1中不再工作?8.6.1术语查询不起作用TermsQuery{field=AssociatedResourceFromQuery=+((+(_类别:动物)(+_类别:*+(_文档类型:节点-_类别:动物))}4.5.1术语查询是TermsQuery{field=associatedresourceuri}它也有来自同一个类别的fromQuery,您可以在那里而不是在评论中回答问题并提供详细信息吗?您能提供一个数据示例(不仅仅是查询)吗?该数据过去在4.5.1中正常工作,但在8.6.1中不再工作?