• 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     }

    执行之后的效果

  • 相关阅读:
    sql server 2008 安装过程与创建建sql server登录用户
    Angularjs之controller 和filter(四)
    Angularjs之表单实例(三)
    antlr应用
    antlr4笔记(转)
    go升级版本
    go安装依赖包
    tsar
    java纤程
    HighLevelRestApi管理ES
  • 原文地址:https://www.cnblogs.com/kangxinxin/p/8018125.html
Copyright © 2020-2023  润新知