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 收集器主要是指用来收集源搜索结果集,并对此进行诸如排序自定义过滤等相关整理