lucene 3.0 分页如何实现 以及近实时搜索

	
	IndexWriter writer = new IndexWriter(Dir, new StandardAnalyzer(Version.LUCENE_30), IndexWriter.MaxFieldLength.UNLIMITED)
	// 添加文档
	//...
	
	IndexReader reader  = writer.getReader(); 				//1.创建近实时reader
	
	IndexSearcher searcher = new IndexSearcher(reader);		//2. 将reader封装到IndexIndexSearcher中
	// 添加文档和删除文档
	//....
	IndexReader newReader = reader.reopen(); 				//3. 重新启动reader
	
	reader.close();											//4. 关闭旧的reader
	
	searcher = new IndexSearcher(newReader);
	
	//重新检索
	//...
	
	newReader.close(); 										//	5.关闭	newReader	writer	searcher
	
	writer.close();
	
	searcher.close();

 1:分页一:将首次搜索多页结果收集起来并保存在ScoreDocs和IndexSearcher实例中。并在换页时展示结果。

2:分页二 :每次用户换页浏览时都是重新进行查询。

 

个人建议重新查询是最好的解决方法。

 

lucene 3.0  近实时搜索:

从2.9开始就有近实时搜索,如果IndexWriter实例和负责搜索的程序在同一个JVM 中,我们就可以使用近实时搜索,近实时搜索功能使你能够对新创建的,但还么有提交的段进行搜索。

 

 

你可能感兴趣的:( 以及近实时搜索)