Lucene阻止连接查询抛出ArrayOutOfBoundsException

时间:2015-11-19 13:54:03

标签: java join lucene

我正在尝试在我的一个项目中使用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?

我非常感谢任何导致此类错误的指示。

提前感谢您的帮助

0 个答案:

没有答案