lucene 3.0 分页如何实现 以及近实时搜索
IndexWriter writer = new IndexWriter(Dir, new StandardAnalyzer(Version.LUCENE_30), IndexWriter.MaxFieldLength.UNLIMITED)// 添加文档//...IndexReader reader = writer.getReader(); //1.创建近实时readerIndexSearcher searcher = new IndexSearcher(reader);//2. 将reader封装到IndexIndexSearcher中// 添加文档和删除文档//....IndexReader newReader = reader.reopen(); //3. 重新启动readerreader.close();//4. 关闭旧的readersearcher = new IndexSearcher(newReader);//重新检索//...newReader.close(); //5.关闭newReaderwritersearcherwriter.close();searcher.close();
?1:分页一:将首次搜索多页结果收集起来并保存在ScoreDocs和IndexSearcher实例中。并在换页时展示结果。
2:分页二 :每次用户换页浏览时都是重新进行查询。
?
个人建议重新查询是最好的解决方法。
?
lucene 3.0 近实时搜索:
从2.9开始就有近实时搜索,如果IndexWriter实例和负责搜索的程序在同一个JVM 中,我们就可以使用近实时搜索,近实时搜索功能使你能够对新创建的,但还么有提交的段进行搜索。
?
?