工作Lucene SearchAfter示例

我正在尝试使用Lucene 4.8.1的SearchAfter方法在Web应用程序中实现搜索结果的分页。

之前已经提出了类似的问题,但是那里接受的答案对我不起作用:

Stack Overflow问题:Lucene网页分页

当我以这种方式从头开始创建Lucene ScoreDoc以用作SearchAfter的参数时:

ScoreDoc sd = new ScoreDoc(14526, 0.0f); TopDocs td = indexSearcher.searchAfter(sd, query, null, PAGEHITS); 

我得到这个例外:

 java.lang.IllegalArgumentException: after must be a FieldDoc 

这似乎与文档相反。 但无论如何,当我创建一个Field Doc时,我得到:

 java.lang.IllegalArgumentException: after.fields wasn't set 

after.fields是一个Object数组,所以我很难设置我可以在URI中传递的信息!

我找不到任何使用SearchAfter的工作代码示例。 我的原始计划显然是创建一个新的ScoreDoc,如前一个问题所示。 任何人都可以建议我可能做错了什么,或链接到SearchAfter的任何工作代码示例?

谢谢!

我不相信你可以创建一个scoredoc然后将它传递给searchAfter。 您需要使用先前搜索返回的ScoreDocs。