我正在尝试在我的一个项目中使用Lucene的IndexTimeJoin功能。 当我做ToParentBlockJoinQuery时,我正面临异常。
[Exception: java.lang.AssertionError
at org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.nextDoc(ToParentBlockJoinQuery.java:297)
at org.apache.lucene.search.ConjunctionScorer.nextDoc(ConjunctionScorer.java:99)
at org.apache.lucene.search.Scorer.score(Scorer.java:64)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:627)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:309)
我使用的lucene版本是4.5.0 要求很简单。 例如: 我有一个对象组,其中有多个成员。 组中的每个成员都被编入索引为子文档,并且该组被编入索引为父文档。 所有这些都使用" updateDocuments"写入索引。 lucene index writer的方法。
当我用一些样本数据测试时,它工作正常。在部署时,大量数据被索引,我得到了这个例外。
我目前无法弄清楚哪种数据可能会导致此异常信息出现此问题。
调试代码后,我看到原因是,在BlockJoinScorer.nextDoc方法中,parentDoc返回-1。 这是否意味着没有父母的索引中存在子Doc?
我非常感谢任何导致此类错误的指示。
提前感谢您的帮助