寻呼Lucene';s的搜索结果

寻呼Lucene';s的搜索结果,lucene,Lucene,我使用Lucene在web应用程序中显示搜索结果。我还使用自定义分页来显示搜索结果。 搜索结果可能从5000到10000或更多不等。 有人能告诉我分页和缓存搜索结果的最佳策略吗?我建议您不要缓存结果,至少不要在应用程序级别缓存。不过,在一个有大量内存的盒子上运行Lucene会有所帮助,操作系统可以将其用于文件缓存 只需对每一页使用不同的偏移量重复搜索。缓存引入了状态性,最终会破坏性能。我们有数百名并发用户在搜索超过4000万个文档的索引。在不使用显式缓存的情况下,搜索在不到一秒钟的时间内完成 使

我使用Lucene在web应用程序中显示搜索结果。我还使用自定义分页来显示搜索结果。 搜索结果可能从5000到10000或更多不等。
有人能告诉我分页和缓存搜索结果的最佳策略吗?

我建议您不要缓存结果,至少不要在应用程序级别缓存。不过,在一个有大量内存的盒子上运行Lucene会有所帮助,操作系统可以将其用于文件缓存

只需对每一页使用不同的偏移量重复搜索。缓存引入了状态性,最终会破坏性能。我们有数百名并发用户在搜索超过4000万个文档的索引。在不使用显式缓存的情况下,搜索在不到一秒钟的时间内完成

使用搜索返回的
Hits
对象,您可以访问以下页面的文档:

Hits hits = searcher.search(query);
int offset = page * recordsPerPage;
int count = Math.min(hits.length() - offset, recordsPerPage);
for (int i = 0; i < count; ++i) {
  Document doc = hits.doc(offset + i);
  ...
}
Hits=searcher.search(查询);
int offset=页面*记录页面;
int count=Math.min(hits.length()-offset,recordsPerPage);
对于(int i=0;i
该用户似乎在重复询问相同或类似的问题:在花时间回答之前,请查看发帖记录……你好,埃里克森。。你能告诉我从哪个版本开始lucene支持只使用1个query参数的搜索方法吗..这个解决方案也可以排序吗?@AshaKoshti Forever?它在2004年发布的1.4.3中就出现了。我在档案中找不到比这个版本更旧的版本。是的,
搜索器上也有一个
搜索(查询,排序)
重载。@erickson.它在1.4.3中有三个版本的搜索。。1) TopDocs搜索(查询查询、筛选筛选、int nDocs)2)TopFieldDocs搜索(查询查询、筛选筛选、int nDocs、排序)3)无效搜索(查询查询、筛选筛选、HitCollector结果)。。我找不到您所说的那个,即searcher.search(查询)@AshaKoshti您正在查看可搜索的
界面。我指的是
org.apache.lucene.search.Searcher
类中声明的方法。@erickson。。它在1.4.3版本中可用。但在那之后,即使在稳定版本3.5或最新版本4.0中也不可用。。