Lucene使用总结

 Lucene使用总结

1、引入Lucene相关的jar, 本实验采用的是如下版本,现在最新的版本为3.0

lucene-core-2.4.0.jar、lucene-analyzers-2.4.0.jar、lucene-highlighter-2.4.0.jar、je-analysis-1.5.3.jar

下载地址:https://olex.openlogic.com/, Maven库:

2、Lucene3.0分为网页抓取、分词器、高亮器、索引库等20几个模块, 具体参考~\lucene-3.0.0\contrib\*

 

  
  
  
  
  1. import org.apache.lucene.analysis.Analyzer; 
  2. import org.apache.lucene.analysis.standard.StandardAnalyzer; 
  3. import org.apache.lucene.document.Document; 
  4. import org.apache.lucene.index.IndexWriter; 
  5. import org.apache.lucene.index.IndexWriter.MaxFieldLength; 
  6. import org.apache.lucene.queryParser.MultiFieldQueryParser; 
  7. import org.apache.lucene.queryParser.QueryParser; 
  8. import org.apache.lucene.search.Filter; 
  9. import org.apache.lucene.search.IndexSearcher; 
  10. import org.apache.lucene.search.Query; 
  11. import org.apache.lucene.search.ScoreDoc; 
  12. import org.apache.lucene.search.TopDocs; 
  13. import org.junit.Test; 
  14.  
  15. import cn.itcast.lucene.utils.File2DocumentUtils; 
  16.  
  17. public class HelloWorld { 
  18.     String filePath = "E:\\workspace\\LuceneDemo\\luceneDatasource\\IndexWriter addDocument's a javadoc.txt"
  19.  
  20.     String indexPath = "E:\\workspace\\LuceneDemo\\luceneIndex"
  21.  
  22.     Analyzer analyzer = new StandardAnalyzer(); 
  23.  
  24.     /** 
  25.      * 创建索引 
  26.      *  
  27.      * IndexWriter 是用来操作(增、删、改)索引库的 
  28.      */ 
  29.     @Test 
  30.     public void createIndex() throws Exception { 
  31.         // file --> doc 
  32.         Document doc = File2DocumentUtils.file2Document(filePath); 
  33.  
  34.         // 建立索引 
  35.         IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, true
  36.                 MaxFieldLength.LIMITED); 
  37.         indexWriter.addDocument(doc); 
  38.         indexWriter.close(); 
  39.     } 
  40.  
  41.     /** 
  42.      * 搜索 
  43.      *  
  44.      * IndexSearcher 是用来在索引库中进行查询的 
  45.      */ 
  46.     @Test 
  47.     public void search() throws Exception { 
  48.         // String queryString = "document"; 
  49.         String queryString = "adddocument"
  50.  
  51.         // 1,把要搜索的文本解析为 Query 
  52.         String[] fields = { "name""content" }; 
  53.         QueryParser queryParser = new MultiFieldQueryParser(fields, analyzer); 
  54.         Query query = queryParser.parse(queryString); 
  55.  
  56.         // 2,进行查询 
  57.         IndexSearcher indexSearcher = new IndexSearcher(indexPath); 
  58.         Filter filter = null
  59.         TopDocs topDocs = indexSearcher.search(query, filter, 10000); 
  60.         System.out.println("总共有【" + topDocs.totalHits + "】条匹配结果"); 
  61.  
  62.         // 3,打印结果 
  63.         for (ScoreDoc scoreDoc : topDocs.scoreDocs) { 
  64.             int docSn = scoreDoc.doc; // 文档内部编号 
  65.             Document doc = indexSearcher.doc(docSn); // 根据编号取出相应的文档 
  66.             File2DocumentUtils.printDocumentInfo(doc); // 打印出文档信息 
  67.         } 
  68.     } 

3、更多实例待续......

 

 

 

 

 

 

 

你可能感兴趣的:(职场,Lucene,休闲)