zoukankan      html  css  js  c++  java
  • Lucene4.6查询时完全跳过打分,提高查询效率的实现方式

      由于索引的文件量比较大,而且应用中不需要对文档进行打分,只需要查询出所有满足条件的文档。所以需要跳过打分来提高查询效率。一开始想用ConstantScoreQuery,但是测试发现这个类虽然让所有返回的文档打分都为1.0并没有提高查询效率,因此查资料发现可以用Filter实现跳过打分,其中又以 FieldCacheTermsFilter为最佳,其缓存机制给查询的速度提升极为明显。后面有空的时候给出完整实现,这两天略忙。

    核心代码:

    Query query = new TermQuery(new Term("word", word));
    Filter filter = new FieldCacheTermsFilter("category", category);
    TotalHitCountCollector collector = new TotalHitCountCollector();
    searcher.search(query, filter, collector);
    int count = collector.getTotalHits();
    三年程序员,专注语音文本分析、大数据挖掘、预训练模型及知识图谱相关技术的探索
  • 相关阅读:
    字符串与Unicode码的相互转换
    关于es6中的yield
    ajax请求中的6个全局事件
    用H5上传文件
    类型化数组
    git笔记-9-29
    js正则表达式验证身份证号和密码
    assertThat用法
    java产生随机数的几种方式
    jQuery之Deferred对象详解
  • 原文地址:https://www.cnblogs.com/jetHu/p/7270901.html
Copyright © 2011-2022 走看看