搜索索引的流程

第一步:创建一个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(); }

执行之后的效果

最新文章

  1. 在CentOS上安装ZooKeeper集群
  2. 【转】去掉eclipse的validate
  3. ubuntu下编译安装PHP
  4. [转]SharePoint 2010 Download as Zip File Custom Ribbon Action
  5. .NET4.5 Console.ReadKey()在多线程下的BUG
  6. CRS-2800 CRS-4000
  7. python3的urllib2报错问题解决方法
  8. macbook远程连接报错no matching cipher found
  9. PHP中写定时任务
  10. http 协议三次握手
  11. 雷林鹏分享:Ruby 环境变量
  12. mac下git安装和使用
  13. 【前端vue开发架构】vue开发单页项目架构总结
  14. Li的前期工作Level_Set_Evolution_Without_Re-initialization_A_New_Variational_Formulation
  15. winnfsd 操作
  16. openGL中的原理理解1---一个视图需要支持OGL需要配置,GLenbalView的理解
  17. [LG1886]滑动窗口 单调队列
  18. Vue.js(2.x)之插值
  19. logistic function 和 sigmoid function
  20. Sports

热门文章

  1. XML系列之--创建电文格式的XML(一)
  2. QTCreator 调试:unknown debugger type "No engine"
  3. js中的children实时获取子元素
  4. AtCoder Beginner Contest 070 ABCD题
  5. 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
  6. 每日linux命令学习-lsattr和chattr
  7. 计算概论(A)/基础编程练习1(8题)/2:苹果和虫子
  8. modelform save
  9. bzoj5421:收藏家
  10. 使用 select 实现 goroutine 超时