www.pudn.com > lucene+mysql+eclipe.rar > SearcherFile.java


package com.lucene; 
 
import java.io.IOException; 
import org.apache.lucene.analysis.Analyzer; 
import org.apache.lucene.analysis.standard.StandardAnalyzer; 
import org.apache.lucene.document.Document; 
import org.apache.lucene.queryParser.MultiFieldQueryParser; 
import org.apache.lucene.queryParser.ParseException; 
import org.apache.lucene.search.Hits; 
import org.apache.lucene.search.Query; 
import org.apache.lucene.search.Searcher; 
import java.util.*; 
import jeasy.analysis.MMAnalyzer;; 
 
/* 
 * @CopyRigth(R) 城市通 
 * @author 申华锋 E-mail:leonshine@qq.com 
 * @version 创建时间:Mar 9, 2008 12:12:45 AM 
 * @description  
 */ 
 
public class SearcherFile {   
	private static int hitslength = 0;	 
	 
	public static List search(Searcher searcher, String[] q, int startIndex,int endIndex) 
			throws IOException, ParseException { 
		//Analyzer analyzer = new StandardAnalyzer(); 
		Analyzer analyzer = new MMAnalyzer();//实例化jeasy分词器 
		String[] fields = { "title", "description", "tag", "userName" }; 
		Query query = MultiFieldQueryParser.parse(q, fields, analyzer); 
		Hits hits = searcher.search(query); 
		hitslength = hits.length(); 
		System.out.println("Hits总长度"+hits.length()); 
		List lst = new ArrayList(); 
		/*for (int i = 0; i < hits.length(); i++) { 
			Document doc = hits.doc(i); 
			//取出ID,存入List 
			lst.add(doc.get("productId"));		 
		}*/ 
		 
		if(endIndex>=hits.length()) 
			   endIndex=hits.length()-1; 
			  List docs=new ArrayList(); 
			  for(int i=startIndex;i<=endIndex;i++){ 
			   Document doc=hits.doc(i); 
			   lst.add(doc.get("productId")); 
			  } 
		return lst;  
	} 
	public static int getHitsLength(){ 
		return hitslength; 
	} 
}