Luncene学习二《搜索索引》
2024-10-09 23:41:59
搜索索引的流程
第一步:创建一个Directory对象,也就是索引库存放的位置
第二步:创建一个IndexReader对象,需要指定Directory对象
第三步:创建一个indexsearcher对象,需要指定IndexReader对象
第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
第五步:执行查询.
第六步:返回查询结果。遍历查询结果并输出。
第七步:关闭IndexReader对象
// 搜索索引
@Test
public void testSearch() throws Exception {
// 第一步:创建一个Directory对象,也就是索引库存放的位置。
Directory directory = FSDirectory.open(new File("D:\\temp\\index"));// 磁盘
// 第二步:创建一个indexReader对象,需要指定Directory对象。
IndexReader indexReader = DirectoryReader.open(directory);
// 第三步:创建一个indexsearcher对象,需要指定IndexReader对象
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
// 第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
Query query = new TermQuery(new Term("fileName", "lucene"));
// 第五步:执行查询。
TopDocs topDocs = indexSearcher.search(query, 10);
// 第六步:返回查询结果。遍历查询结果并输出。
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for (ScoreDoc scoreDoc : scoreDocs) {
int doc = scoreDoc.doc;
Document document = indexSearcher.doc(doc);
// 文件名称
String fileName = document.get("fileName");
System.out.println(fileName);
// 文件内容
String fileContent = document.get("fileContent");
System.out.println(fileContent);
// 文件大小
String fileSize = document.get("fileSize");
System.out.println(fileSize);
// 文件路径
String filePath = document.get("filePath");
System.out.println(filePath);
System.out.println("------------");
}
// 第七步:关闭IndexReader对象
indexReader.close(); }
执行之后的效果
最新文章
- 在CentOS上安装ZooKeeper集群
- 【转】去掉eclipse的validate
- ubuntu下编译安装PHP
- [转]SharePoint 2010 Download as Zip File Custom Ribbon Action
- .NET4.5 Console.ReadKey()在多线程下的BUG
- CRS-2800 CRS-4000
- python3的urllib2报错问题解决方法
- macbook远程连接报错no matching cipher found
- PHP中写定时任务
- http 协议三次握手
- 雷林鹏分享:Ruby 环境变量
- mac下git安装和使用
- 【前端vue开发架构】vue开发单页项目架构总结
- Li的前期工作Level_Set_Evolution_Without_Re-initialization_A_New_Variational_Formulation
- winnfsd 操作
- openGL中的原理理解1---一个视图需要支持OGL需要配置,GLenbalView的理解
- [LG1886]滑动窗口 单调队列
- Vue.js(2.x)之插值
- logistic function 和 sigmoid function
- Sports
热门文章
- XML系列之--创建电文格式的XML(一)
- QTCreator 调试:unknown debugger type ";No engine";
- js中的children实时获取子元素
- AtCoder Beginner Contest 070 ABCD题
- 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
- 每日linux命令学习-lsattr和chattr
- 计算概论(A)/基础编程练习1(8题)/2:苹果和虫子
- modelform save
- bzoj5421:收藏家
- 使用 select 实现 goroutine 超时