Luncene学习二《搜索索引》
时间:2022-07-26
本文章向大家介绍Luncene学习二《搜索索引》,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
搜索索引的流程
第一步:创建一个Directory对象,也就是索引库存放的位置
第二步:创建一个IndexReader对象,需要指定Directory对象
第三步:创建一个indexsearcher对象,需要指定IndexReader对象
第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
第五步:执行查询.
第六步:返回查询结果。遍历查询结果并输出。
第七步:关闭IndexReader对象
1 // 搜索索引
2 @Test
3 public void testSearch() throws Exception {
4 // 第一步:创建一个Directory对象,也就是索引库存放的位置。
5 Directory directory = FSDirectory.open(new File("D:\temp\index"));// 磁盘
6 // 第二步:创建一个indexReader对象,需要指定Directory对象。
7 IndexReader indexReader = DirectoryReader.open(directory);
8 // 第三步:创建一个indexsearcher对象,需要指定IndexReader对象
9 IndexSearcher indexSearcher = new IndexSearcher(indexReader);
10 // 第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。
11 Query query = new TermQuery(new Term("fileName", "lucene"));
12 // 第五步:执行查询。
13 TopDocs topDocs = indexSearcher.search(query, 10);
14 // 第六步:返回查询结果。遍历查询结果并输出。
15 ScoreDoc[] scoreDocs = topDocs.scoreDocs;
16 for (ScoreDoc scoreDoc : scoreDocs) {
17 int doc = scoreDoc.doc;
18 Document document = indexSearcher.doc(doc);
19 // 文件名称
20 String fileName = document.get("fileName");
21 System.out.println(fileName);
22 // 文件内容
23 String fileContent = document.get("fileContent");
24 System.out.println(fileContent);
25 // 文件大小
26 String fileSize = document.get("fileSize");
27 System.out.println(fileSize);
28 // 文件路径
29 String filePath = document.get("filePath");
30 System.out.println(filePath);
31 System.out.println("------------");
32 }
33 // 第七步:关闭IndexReader对象
34 indexReader.close();
35
36 }
执行之后的效果
- Apache/Nginx伪静态规则匹配http://出现的问题与解决
- 微信文件微起底
- Go语言TCP Socket编程--1
- Go语言TCP Socket编程--2
- 服务器 数据库设计技巧--1
- CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法
- zabbix监控在lnmp环境下编译安装小记
- 【重磅】百度开源分布式深度学习平台,挑战TensorFlow (教程)
- WordPress评论ajax动态加载,解决静态缓存下评论不更新问题
- WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版
- WordPress开启颜色评论但不造成XSS漏洞的小方法
- WordPress强迫症技巧:让文章(ID)地址完美连续(障眼法)
- iOS内存管理:从MRC到ARC实践
- MySQL错误修复:Table xx is marked as crashed and last (automatic?) repair failed
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 技术篇-读取本地文件的字节数
- Golang Flag包的参数格式问题
- Python 技术篇-对音频、图片等文件进行base64编码和解码
- 图片:“给你五十行代码把我变成字符画!” 程序:“太多了,一半都用不完!”
- HTML布局标记和列表标记
- 使用frp搭建内网穿透
- CNS图表复现03—单细胞区分免疫细胞和肿瘤细胞
- C#记事本项目开发,一个可以实现批量操作的记事本!【附源码】
- Python 库引用问题:name 'json' is not defined,原因及解决办法
- Java集合类之Collection接口,集合的“爸爸”接口了解一下?
- Python 微信机器人-下载微信接收到的语音、图片等资源
- Python源文件打包成可执行的exe应用,给你的代码变个身!
- Python 技术篇-ffmpeg.exe的安装及配置
- Python 库配置问题-"Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work",原因及解决办法
- 小白都能看懂的简单爬虫入门案例剖析(爬虫入门看它就够了!)