lucene笔记-001-新建索引和读取索引
来源:互联网 发布:淘宝模特纹身 编辑:程序博客网 时间:2024/06/05 07:08
package com.test.lucene;import java.io.File;import org.apache.commons.io.FileUtils;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field.Store;import org.apache.lucene.document.LongField;import org.apache.lucene.document.StoredField;import org.apache.lucene.document.TextField;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.index.Term;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TermQuery;import org.apache.lucene.search.TopDocs;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.util.Version;import org.junit.Test;public class Lucene001 {/** * 创建索引 * * @throws Exception */@Testpublic void testInedx() throws Exception {// 第一步:新建工程,导入JAR包// 第二步:创建IndexWriter对象// 1)将索引保存在内存中:// Directory directory = new RAMDirectory();// 2)将索引保存在磁盘中:Directory directory = FSDirectory.open(new File("D:/bbb/temp/index"));Analyzer analyzer = new StandardAnalyzer();IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer);IndexWriter iWriter = new IndexWriter(directory, config);// 第三步:读取待操作文档File f = new File("D:/bbb/temp/sourse");File[] listFiles = f.listFiles();if (listFiles.length > 0) {for (File file : listFiles) {// 创建Document对象Document doc = new Document();// 文件名称String file_name = file.getName();doc.add(new TextField("file_name", file_name, Store.YES));// 文件大小long file_size = FileUtils.sizeOf(file);doc.add(new LongField("file_size", file_size, Store.YES));// 文件路径String file_path = file.getPath();doc.add(new StoredField("file_path", file_path));// 文件内容String file_content = FileUtils.readFileToString(file);doc.add(new TextField("file_content", file_content, Store.YES));// 第四步:将Document对象写入索引库iWriter.addDocument(doc);}}// 第五步:关闭IndexWriter对象iWriter.close();}/** * 查询索引 * * @throws Exception */@Testpublic void testSearch() throws Exception {// 第一步:创建一个Directory对象(索引库位置)Directory directory = FSDirectory.open(new File("D:/bbb/temp/index"));// 第二步:创建一个DirectoryReader对象DirectoryReader ireader = DirectoryReader.open(directory);// 第三步:创建一个IndexSearcher对象IndexSearcher isearcher = new IndexSearcher(ireader);// 第四步:创建一个TermQuery对象(需要查询的域和关键词)Query query = new TermQuery(new Term("file_content", "lucene"));// 第五步:执行查询TopDocs topDocs = isearcher.search(query, 10);// 第六步:返回查询结果数组ScoreDoc[] scoreDocs = topDocs.scoreDocs;if (scoreDocs.length > 0) {for (ScoreDoc scoreDoc : scoreDocs) {System.out.println("----------start----------");Document document = isearcher.doc(scoreDoc.doc);// 文件名称String file_name = document.get("file_name");System.out.println(file_name);// 文件大小String file_size = document.get("file_size");System.out.println(file_size);// 文件路径String file_path = document.get("file_path");System.out.println(file_path);// 文件内容String file_content = document.get("file_content");System.out.println(file_content);System.out.println("-----------end-----------");}// 第七步:关闭DirectoryReader对象ireader.close();}}}
阅读全文
0 0
- lucene笔记-001-新建索引和读取索引
- lucene创建索引读取索引简单测试--笔记
- 读取Lucene 索引数据
- lucene索引笔记
- Lucene建立索引笔记
- Lucene学习笔记之(一)简介和向文档写索引并读取文档
- 如何读取Lucene索引数据
- Lucene--001创建索引
- Lucene.Net 全文索引笔记
- lucene索引和数据库索引的比较
- Lucene创建索引和搜索索引
- Lucene的内存索引和磁盘索引
- solr入门之lucene创建索引和查询索引及查询的源码读取类确定
- Lucene 建立索引和搜索
- Lucene 索引和搜索过程
- lucene索引和检索原理
- Lucene简介和索引原理
- 【Lucene&&Solr】Lucene索引和搜索流程
- JavaScript流程控制,关键是如何实现任务的顺序执行。
- [SQL]数据分析人员如何快速入门SQL-SQL学习感悟(一)
- maya win10下的路径脚本
- fastjson 远程反序列化poc的构造和分析
- 数据结构——链表
- lucene笔记-001-新建索引和读取索引
- Java基础--------(8)继承
- 【用VC建立C++程序】
- [SQL]数据分析人员如何快速入门SQL-删除数据(二)
- caffe可视化
- Android主题Theme的了解
- Spring4整合Hibernate4.3
- MyBatis学习总结(一)——MyBatis快速入门
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理