我正在创建一个Lucene
需要实现分页的 Web 应用程序。我在这里看到了关于在收集器上使用偏移的不同示例。然而,那些似乎是旧的。 Lucene 3.5
(或3.6不记得哪个)我相信添加了这个。我看过IndexSearcher
方法searchAfter
。但是,它要求您通过最后一个ScoreDoc
. 因为这是一个 Web 应用程序,所以我无法将最后一个结果(作为 ScoreDoc 对象)传递给下一个请求。所以,我的问题是这通常是如何完成的?
我真正想出的唯一方法是在构建时将唯一键添加到索引中。然后,在尝试获取下一页时将该键作为 post 参数传递。然后,我必须搜索该键以获取文档 ID 并拉出该文档以与 searchAfter 一起使用。我认为我必须使用自己的唯一密钥,因为我不能依靠文档 ID 保持不变。我对此是否正确?
如果有更好的方法,请告诉我。这是我第一次尝试 Lucene。