searchperformancetest.java

来自「ajax lucene 部分源代码 HTMLParser.java Muil」· Java 代码 · 共 68 行

JAVA
68
字号
package performance.search;

import java.io.IOException;
import java.util.Date;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;

public final class SearchPerformanceTest {

	private IndexSearcher searcher = null;

	private Analyzer analyzer = null;

	public SearchPerformanceTest() throws IOException {
		analyzer = new StandardAnalyzer();
		searcher = new IndexSearcher(IndexReader.open("c:\\index"));
	}

	/**
	 * 
	 * @param queryString
	 *            The keyword a user typed
	 * @param field
	 *            The field to search for
	 * @return search result, or null if anything went wrong
	 */
	public final Hits search(String queryString, String field) {
		if (searcher != null) {
			try {
				QueryParser parser = new QueryParser(field, analyzer);
				parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
				Query query = parser.parse(queryString);
				return searcher.search(query);
			} catch (ParseException e) {
				// logs here
				e.printStackTrace();
				return null;
			} catch (IOException e) {
				// logs here
				e.printStackTrace();
				return null;
			}
		}
		return null;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) throws IOException {
		SearchPerformanceTest searcher = new SearchPerformanceTest();
		Date start = new Date();
		Hits h = searcher.search("中国","contents");
		Date end = new Date();
		System.out.println("总共耗时" + (end.getTime()-start.getTime()) + "毫秒" );
		System.out.println("总共找到" + h.length() + "个文件");
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?