Lucene 2小时学习笔记

1,创建index步骤

1.1 IndexWriter writer = new IndexWriter(FSDirectory.open(INDEX_DIR), new StandardAnalyzer(Version.LUCENE_CURRENT),

true, IndexWriter.MaxFieldLength.LIMITED);   //创建indexWriter

1.2 writer.addDocument(FileDocument.Document(file)); //添加索引

1.3 writer.optimize();  //调优

1.4 writer.close();  //关闭

总体思路:

首先建立索引文件,然后把要全文检索的文件索引化,接着再进行调优,最后关闭索引。


2,根据index查询指定内容

2.1 IndexReader reader = IndexReader.open(FSDirectory.open(new File(index)), true); // only searching, so read-

only=true      // 创建IndexReader 打开索引

2.2 Searcher searcher = new IndexSearcher(reader);  //创建搜索器

2.3 创建查询单元 
2.3.1 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);  //  创建分析器
2.3.2 QueryParser parser = new QueryParser(field, analyzer); // 创建查询解析器
2.3.3 Query query = parser.parse(line); 通过使用查询解析器对查询字段进行解析,创建查询对象

2.4 具体查询
2.4.1 Collector streamingHitCollector = new Collector() { ... ... }; // 创建搜索数据收集器
2.4.2 searcher.search(query, streamingHitCollector); //搜索器根据查询对象及数据收集器进行搜索业务

总体思路:

首先打开索引文件,然后构建搜索器,接着再创建查询对象和数据收集器,最后用搜索器根据查询对象和数据收集器进行搜索。

3,核心类介绍
3.1 IndexWriter 索引写入器主要是用来创建索引、把全文检索源写入索引
3.2 IndexReader 索引读取器主要是用来打开索引并创建搜索器
3.3 Searcher 搜索器只要是用来根据查询对象及数据收集器来进行数据搜索
3.4 Query 查询对象,通过查询解析器获取查询对象
3.4.1 Analyzer  分析器,提供了查询解析器的分析逻辑实现
3.4.2 QueryParser 查询对象解析器,根据查询分析器及查询字段构建查询对象
3.5 Collector 收集器主要是指用来收集源搜索结果集,并对此进行诸如排序自定义过滤等相关整理

你可能感兴趣的:(Lucene,全文检索)