Lucene查询索引代码实现
查询索引
实现步骤
第一步:创建一个Directory对象,也就是索引库存放的位置。
第二步:创建一个indexReader对象,需要指定Directory对象。
第三步:创建一个indexsearcher对象,需要指定IndexReader对象
第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
第五步:执行查询。
第六步:返回查询结果。遍历查询结果并输出。
第七步:关闭IndexReader对象
- IndexSearcher搜索方法
- 代码实现
//查询索引库
@Test
public void searchIndex() throws Exception {//指定索引库存放的路径//D:\temp\0108\indexDirectory directory = FSDirectory.open(new File("D:\\temp\\0108\\index"));//创建indexReader对象IndexReader indexReader = DirectoryReader.open(directory);//创建indexsearcher对象IndexSearcher indexSearcher = new IndexSearcher(indexReader);//创建查询Query query = new TermQuery(new Term("filename", "apache"));//执行查询//第一个参数是查询对象,第二个参数是查询结果返回的最大值TopDocs topDocs = indexSearcher.search(query, 10);//查询结果的总条数System.out.println("查询结果的总条数:"+ topDocs.totalHits);//遍历查询结果//topDocs.scoreDocs存储了document对象的idfor (ScoreDoc scoreDoc : topDocs.scoreDocs) {//scoreDoc.doc属性就是document对象的id//根据document的id找到document对象Document document = indexSearcher.doc(scoreDoc.doc);System.out.println(document.get("filename"));//System.out.println(document.get("content"));System.out.println(document.get("path"));System.out.println(document.get("size"));}//关闭indexreader对象indexReader.close();
}
- TopDocs
Lucene搜索结果可通过TopDocs遍历,TopDocs类提供了少量的属性,如下:
注意:
Search方法需要指定匹配记录数量n:indexSearcher.search(query, n)
TopDocs.totalHits:是匹配索引库中所有记录的数量
TopDocs.scoreDocs:匹配相关度高的前边记录数组,scoreDocs的长度小于等于search方法指定的参数n
Lucene查询索引代码实现相关推荐
- 【示例】Lucene查询索引库编程步骤
Lucene查询索引库编程步骤
- 搜索引擎学习(三)Lucene查询索引
一.查询理论 创建查询:构建一个包含了文档域和语汇单元的文档查询对象.(例:fileName:lucene) 查询过程:根据查询对象的条件,在索引中找出相应的term,然后根据term找到对应的文档i ...
- Lucene查询索引(分页)
分页查询只需传入每页显示记录数和当前页就可以实现分页查询功能 Lucene分页查询是对搜索返回的结果进行分页,而不是对搜索结果的总数量进行分页,因此我们搜索的时候都是返回前n条记录 package c ...
- java代码查询索引文件实例_关于使用pdfbox的对PDF文件通过lucene生成索引文件IndexPDFFiles类代码示例...
一.前言 下面通过pdfbox的pdfbox-2.0.9源码中org.apache.pdfbox.examples.lucene.IndexPDFFiles索引PDF文件生成类,基于apache的lu ...
- Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程, ...
- Lucene学习总结之三:Lucene的索引文件格式(2)
2019独角兽企业重金招聘Python工程师标准>>> 四.具体格式 上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向 ...
- lucene 查询示例_高级Lucene查询示例
lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...
- lucene 查询示例_Lucene查询(搜索)语法示例
lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...
- lucene创建索引_Lucene概述第一部分:创建索引
lucene创建索引 介绍 我最近一直在与开源搜索引擎Lucene合作 . 我不是专家,但是由于我只是浏览了一些相当稀疏的文档并将应用程序从Lucene的很旧的版本迁移到了最新版本的2.4,所以我在总 ...
最新文章
- python开多少进程合适_用了python多进程,我跑程序花费的时间缩短了4倍
- 最好的Java开发人员测试和集成工具
- matlab畸变校正代码_关于OpenCV中的去畸变
- 编程之美——数字哑谜
- python设置字符_Python基础教程 将字符串格式设置功能用于字典
- halcon显示坐标_机器视觉之halcon入门(10)-一文弄懂halcon例程:color_fuse.hdev
- 免费开源的100套Echarts大屏数据可视化模板分享
- Aerospike SSD模式下写入swb内的记录格式
- 软件架构风格介绍和总结
- jbox弹窗_jbox很好的弹出层 很好的弹出层 - 下载 - 搜珍网
- VMware虚拟机+Kali linux 2021.2 下载和安装以及初始操作
- 创建git仓库(简易局域网版)
- h5获取当前浏览器ip和城市名称
- android adb找不到,adb找不到我的设备/手机(MacOS X)
- GWAS丨GEMMA软件下载和安装
- Unity可视化编程插件: Bolt,可以像UE4的蓝图那样啦
- 手机相机里面的m_我的数码相机设置里面有个图像尺寸分L、M、S,有何用
- 微信美食菜谱小程序系统毕业设计毕设(1)开发概要
- codesys 之 SFC探索
- jquery改变css样式和vue改变样式的区别
热门文章
- 【算法基础】数据结构导论第三章-栈、队列和数组.pptx
- 【科普】什么是Docker?看这一篇干货文章就够了!
- 学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!附下载链接!...
- 周志华《机器学习》课后习题(第五章):神经网络
- 还在为pip安装发愁?whl自助搜索查找及下载脚本问世!
- ACCV2020国际细粒度网络图像识别冠军方案解读、经验总结
- 关于jupyter几个不得不知道的tips
- 场景创新,推动金融行业数字化转型
- 助力区域性银行突破困局,网易云信入选爱分析报告典型案例
- 超干货 | 在线教育增长实操者案例分享:如何玩转教育增长模型?