• 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("-------------------------------------------");
    }
  • 相关阅读:
    vue04-动画、组件
    vue02—— 动画、组件、组件之间的数据通信
    webpack使用
    Promise
    css 尾巴
    js尾巴
    Python字符串格式转换
    CentOS 6.5下Redmine的安装配置
    gem Errno::ECONNRESET: Connection reset by peer
    MySQL几个重要的目录
  • 原文地址:https://www.cnblogs.com/yaobolove/p/6682780.html
Copyright © 2020-2023  润新知