Lucene_demo04_ページング

1465 ワード

Lucene_demo04_ページング

/**
 *  
 */
public class DispageTest {

	//  
	private void testSearchIndex(int firstResult, int maxResult) throws Exception {
		IndexSearcher indexSearcher = new IndexSearcher(LuceneUtils.directory);
		QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "title", "content" }, LuceneUtils.analyzer);
		Query query = queryParser.parse("2013");
		TopDocs topDocs = indexSearcher.search(query, 50);//  50 
		int count = topDocs.totalHits;//  
		int scoreCount = Math.min(count, firstResult + maxResult);//  
		ScoreDoc[] scoreDocs = topDocs.scoreDocs;

		//  doc model List 
		List<Article> articleList = new ArrayList<Article>();
		for (int i = firstResult; i < scoreCount; i++) {
			int index = scoreDocs[i].doc;
			Document document = indexSearcher.doc(index);
			Article article = DocumentUtils.document2Article(document);
			articleList.add(article);
		}

		//  
		for (Article article : articleList) {
			System.out.println(article.getId());
			System.out.println(article.getTitle());
			System.out.println(article.getContent());
		}
	}

	@Test
	public void dispage() throws Exception {
		this.testSearchIndex(20, 10);//  , 20 10 
	}
}