`
q_wong
  • 浏览: 105405 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Lucene Paoding Demo

阅读更多

/**
 * 
 * @author Q.Wong [2010-12-17]
 *
 */
public class TestInvoker {

	private Logger logger = LogManager.getLogger(TestInvoker.class);

	/**
	 * 索引保存在磁盘目录
	 */
	@Test
	public void testFSDirectory() {

		String indexDir = "d:\\temp\\index";
		String sourceDir = "d:\\temp\\TestLucene";
		String field = "contents";
		String keyWord = "河蟹";
		Analyzer analyzer = new PaodingAnalyzer();

		try {
			/** Index **/
			IndexWriter writer = IndexManager.getFSDirectoryIndexWriter(
					indexDir, analyzer);
			long l1 = System.currentTimeMillis();
			IndexManager.indexDocs(new File(sourceDir), writer, true);
			long l2 = System.currentTimeMillis();
			logger.info("Indexed " + writer.numDocs() + " files in ["
					+ (l2 - l1) + "] milliseconds.");
			writer.optimize();
			writer.close();

			/** Query **/
			IndexReader reader = IndexManager
					.getFSDirectoryIndexReader(indexDir);
			Searcher searcher = new IndexSearcher(reader);
			long l3 = System.currentTimeMillis();
			TopDocs resultDocs = QueryManager.doQuery(analyzer, searcher, field, keyWord, 10);
			long l4 = System.currentTimeMillis();
			logger.info("Found " + resultDocs.totalHits
					+ " document(s) matched query '" + keyWord + "' in ["
					+ (l4 - l3) + "] milliseconds.");
			searcher.close();
			reader.close();
			
			QueryManager.resolvedResults(resultDocs, searcher);
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 索引保存在内存
	 * 查询并高亮关键字
	 */
	@Test
	public void testRAMDirectory() {
		String sourceDir = "d:\\temp\\TestLucene\\text.txt";
		Directory ramDir = new RAMDirectory();
		Analyzer analyzer = new PaodingAnalyzer();
		try {
			/** Index **/
			IndexWriter writer = IndexManager.getRamDirIndexWriter(ramDir,
					analyzer);
			long l1 = System.currentTimeMillis();
			IndexManager.indexDocs(new File(sourceDir), writer, true);
			long l2 = System.currentTimeMillis();
			logger.info("Indexed " + writer.numDocs() + " files in ["
					+ (l2 - l1) + "] milliseconds.");
			writer.optimize();
			writer.close();

			/** Query **/
			IndexReader reader = IndexManager.getRamDirIndexReader(ramDir);
			QueryManager.doQuery(analyzer, reader, "contents", "河蟹", 10);
			reader.close();
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		} catch (InvalidTokenOffsetsException e) {
			e.printStackTrace();
		}
	}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics