zoukankan      html  css  js  c++  java
  • 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     }

    执行之后的效果

  • 相关阅读:
    C#遍历DataSet中数据的几种方法总结
    angularjs作用域
    SQL 语句日期用法及函数
    Sublime Text3 快捷键汇总
    AngularJS 最常用的功能
    C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
    AngularJS的指令用法
    [WCF REST] Web消息主体风格(Message Body Style)
    泛型
    语法补充
  • 原文地址:https://www.cnblogs.com/kangxinxin/p/8018125.html
Copyright © 2011-2022 走看看