【实现步骤】
1.创建一个Directory对象,也就是索引库存放的位置。
2.创建一个indexReady对象,需要指定Directory对象。
3.创建一个indexsearcher对象,需要指定indexReady对象。
4.创建一个TermQuery对象,指定查询的域和查询的关键词。
5.执行查询。
6.返回查询结果,遍历查询结果并输出。
7.关闭indexReader对象。
【IndexSearch搜索方法】
【代码开发】
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", "java"));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 }