zoukankan      html  css  js  c++  java
  • Lucene 常用名词解析

    索引的创建:
    IndexWriter: 用于创建索引
    Directory: 这个可以用来定义我们的索引是存放在内存中还是在硬盘上
    Analyzer: 分词器 有几种()
    这个地方需要好好解释下
    Document: 存放索引的文档信息,一个Document有多个Field
    Field: 域名

    索引的搜索过程:
    IndexReader: 找到索引
    IndexSearcher: 获取索引
    Term: 检索过程中的最小单元,可以指定某个域为某个值
    Query: 主要用来进行查询 (TermQuery(子类)
    TopDocs: 用于返回索引的文本信息
    ScoreDoc: 所有的文本信息(上面的TopDocs数组)都可以转换文档(通过get方法获取域的存储信息)

    queryparser :使用queryparser完成解析搜索请求
    基本格式: QueryParser parser=new QueryParser(版本号,"字段名字","分析器实例");
    这个字段名字:是指你建立索引所设定的域名
    Query q=new parser("关键字");

    eg:
    QueryParser parser = new QueryParser(Version.LUCENE_35,"content",analyzer);
    Query q = parser.parse(query);

    IndexSearcher:可以通过它的构造方法来获取你索引存放的位置
    TopDocs tds = searcher.search(q, 500);//总共取出来的条数

    TopDocs 指向相匹配的搜索条件的前N个搜索结果。它是指针的简单容器指向它们的搜索结果输出的文档。

    ScoreDoc是代表一个结果的相关度得分与文档编号等信息的对象。
    eg:

    Directory dir = FileIndexUtils.getDirectory();
    IndexSearcher searcher = getSearcher(dir);
    QueryParser parser = new QueryParser(Version.LUCENE_35,"content",analyzer);
    Query q = parser.parse(query);
    TopDocs tds = searcher.search(q, 500);//总共取出来的条数
    ScoreDoc[] sds = tds.scoreDocs;
    int start = (pageIndex-1)*pageSize;
    int end = pageIndex*pageSize;
    for(int i=start;i<end;i++) {
    Document doc = searcher.doc(sds[i].doc);
    System.out.println("filename:"+doc.get("filename"));
    System.out.println("path:"+doc.get("path"));
    System.out.println("date:"+doc.get("date"));
    System.out.println("size:"+doc.get("size"));
    System.out.println("content:"+doc.get("content"));
    System.out.println("-------------------------------------------");
    }
  • 相关阅读:
    Java中线程池,你真的会用吗?ExecutorService ThreadPoolExcutor
    springcloud中微服务的优雅停机(已验证)
    SpringCloud eureka
    Spring Boot实战:静态资源处理
    你真的理解CountDownLatch与CyclicBarrier使用场景吗?
    Effective.Java第56-66条(规范相关)
    Effective.Java第45-55条(规范相关)
    Effective.Java第34-44条(枚举)
    装饰(Decorator)模式
    合成(Composite)模式
  • 原文地址:https://www.cnblogs.com/yaobolove/p/6682780.html
Copyright © 2011-2022 走看看