Lucene创建索引和索引的基本检索

阅读: 评论:0

Lucene创建索引和索引的基本检索

Lucene创建索引和索引的基本检索

Author: 百知教育 gaozhy
注:演示代码所使用jar包版本为 lucene-xxx-5.2.0.jar


  1. lucene索引操作

    1. 创建索引代码

      try {// 1. 指定索引文件存储位置Directory directory = FSDirectory.("F:/lucene/index/example01"));// 2. 创建分词器 标准分词器StandardAnalyzer analyzer = new StandardAnalyzer();// 3. 创建索引写入器IndexWriterConfig config = new IndexWriterConfig(analyzer);config.setOpenMode(OpenMode.CREATE_OR_APPEND); //索引不存在创建,索引存在追加IndexWriter indexWriter = new IndexWriter(directory, config);// 4. 创建索引文档Document document = new Document();document.add(new Field("id", "2", StringField.TYPE_STORED ));document.add(new Field("name", "CoreJava实战",StringField.TYPE_STORED  ));document.add(new Field("content", "百知金牌讲师 胡鑫哲出品",TextField.TYPE_STORED));// 5. 添加索引indexWriter.addDocument(document);// 6. 释放资源indexWritermit();indexWriter.close();directory.close();
      } catch (Exception e) {e.printStackTrace();
      }
      // 索引日期
      document.add(new Field("date", DateTools.dateToString(new Date(), Resolution.SECOND),StringField.TYPE_STORED));
      // 索引数字
      document.add(new IntField("age", 18, Field.Store.YES));
    2. 创建的索引文件
  2. lucene索引的检索

    1. 索引检索代码

      try{// 1. 获取索引文件Directory directory = FSDirectory.("F:/lucene/index/example01"));// 2. 读取索引文件IndexReader indexReader = DirectoryReader.open(directory);// 3. 创建索引检索器IndexSearcher searcher = new IndexSearcher(indexReader);// 4. 创建查询条件 QueryParser parser = new QueryParser("content",new StandardAnalyzer()); //第一个参数: 需要检索的域名 第二个参数: 分词器Query query = parser.parse("百知"); //检索字符串System.out.String());// 5. 调用检索器检索TopDocs topDocs = searcher.search(query, 10); //第二个参数:返回结果 10条信息System.out.println("命中数:"&#alHits);ScoreDoc[] docs = topDocs.scoreDocs;// 6. 处理查询结果for (ScoreDoc scoreDoc : docs) {System.out.print(searcher.doc(scoreDoc.doc).get("id") + " | ");System.out.print(searcher.doc(scoreDoc.doc).get("name") + " | ");System.out.print(searcher.doc(scoreDoc.doc).get("content"));System.out.println();}// 7. 释放资源indexReader.close();directory.close();
      }catch(Exception e){e.printStackTrace();
      }
      // 日期检索
      String date = searcher.doc(sd.doc).get("date");
      if(date != null){System.out.print(DateTools.stringToDate(date) + " | ");
      }
      // 数字检索
      System.out.println(searcher.doc(sd.doc).get("age"));
    2. 检索结果

      1. 使用“百知”检索结果

      2. 使用“胡鑫哲”检索结果

本文发布于:2024-01-27 19:22:50,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063545692148.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:索引   Lucene
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23