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、更多实例待续......




本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/396733,如需转载请自行联系原作者

相关文章
|
分布式计算 算法 Hadoop
什么是 lucene|学习笔记
快速学习 什么是 lucene
什么是 lucene|学习笔记
|
关系型数据库 MySQL 数据库
为什么要使用 Lucene|学习笔记
快速学习为什么要使用 Lucene
147 0
为什么要使用 Lucene|学习笔记
|
存储 Apache 索引
Lucene就是这么简单(二)
Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和查询索引,以及部分文本分析的引擎,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上创建的,思想是相通的。
125 0
Lucene就是这么简单(二)
|
SQL 自然语言处理 算法
Lucene就是这么简单(三)
Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和查询索引,以及部分文本分析的引擎,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上创建的,思想是相通的。
168 0
Lucene就是这么简单(三)
|
SQL 数据采集 自然语言处理
Lucene就是这么简单(一)
Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和查询索引,以及部分文本分析的引擎,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上创建的,思想是相通的。
158 0
Lucene就是这么简单(一)
|
索引
lucene学习笔记
lucene学习笔记
137 0
|
开发框架 Java Apache
Lucene|学习笔记
快速学习 Lucene
118 0
|
SQL 自然语言处理 算法
Lucene就是这么简单
什么是Lucene?? Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引和查询索引,以及部分文本分析的引擎,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上创建的,思想是相通的。
1270 0