Lucene查询索引代码实现
2023-09-14 09:02:01 时间
-
查询索引
-
实现步骤
第一步:创建一个Directory对象,也就是索引库存放的位置。
第二步:创建一个indexReader对象,需要指定Directory对象。
第三步:创建一个indexsearcher对象,需要指定IndexReader对象
第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
第五步:执行查询。
第六步:返回查询结果。遍历查询结果并输出。
第七步:关闭IndexReader对象
- IndexSearcher搜索方法
- 代码实现
//查询索引库
@Test
public void searchIndex() throws Exception {
//指定索引库存放的路径
//D:\temp\0108\index
Directory 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对象的id
for (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
相关文章
- mysql怎么创建账户_mysql添加索引
- 理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
- WordPress 教程:如何通过 PHP 代码修改表结构和索引
- SQLServer 错误 2530 表 “%.*ls” 的索引 “%.*ls” 已禁用。 故障 处理 修复 支持远程
- MongoDB创建一个索引而性能提升1000倍示例代码
- oracle分区索引的失效和重建代码示例
- Day4 MySql触发器视图索引以及设计优化详解数据库
- Redis实现二级索引提升数据处理效率(redis二级索引)
- 如何使用MySQL建立索引(mysql怎么建索引)
- Oracle重建索引:提高数据库运行效率(oracle重建索引)
- Oracle索引失效: 找到原因与解决方案(oracle索引失效)
- MySQL中的数字索引优化技巧(mysql数字索引)
- Oracle索引:一个详细解析(oracle索引详解)
- 深入了解Oracle索引和函数的使用(oracle索引函数)
- MySQL多列索引:实现更高效的查询(mysql多列索引)
- MySQL中利用B树索引优化查询(mysql中b树索引)
- Oracle不等于号与索引的比较(oracle不等于和索引)
- SQLSERVER创建索引实现代码
- C#索引器简单实例代码
- NET索引器使用方法实例代码
- 在RowCommand事件中获取索引值示例代码