Lucene里面有关于Filter的整体知识

下面,我们来看下具体的在代码里怎么实现,先来看下我们的测试数据

Java代码   
  1. id      score       bookname    ename       type            price       date
  2. 1       1       飘渺之旅        pmzl        小说      52.23       201005
  3. 2       1       三国演义        sgyy        小说      36.13       201207
  4. 3       1       数据库实战       sjksz       技术      77.13       200811
  5. 4       1       编程宝典        bcbd        技术      100.3       200501
  6. 5       1       职场关系论       zcgxl       职场      36.59       200501
  7. 6       1       健康生活        jksh        生活      20.47       200008
  8. 7       1       看清本质        kqbz        社会      10.37       201004
  9. 8       1       编程,编程       bcbc        社会      10.37       201004

核心代码

Java代码   
  1. //使用过滤器   最后一个为true时包含边界部分,为false时不包含边界部分
  2. //倒数第二个为true时,包含查询边界,为false时不包含
  3. TermRangeFilter filter=new TermRangeFilter("ename", new BytesRef("h"), new BytesRef("n"), true, true);
  4. TopDocs topDocs=searcher.search(new MatchAllDocsQuery(),filter,10000);//默认无排序方式

输出结果

Java代码   
  1. 6       1       健康生活        jksh        生活      20.47       200008
  2. 7       1       看清本质        kqbz        社会      10.37       201004

核心代码

Java代码   
  1. NumericRangeFilter<Double> filter=NumericRangeFilter.newDoubleRange("price", 10D, 40D, true, false);
  2. TopDocs topDocs=searcher.search(new MatchAllDocsQuery(),filter,10000);//默认无排序方式

输出结果

Java代码   
  1. 2       1       三国演义        sgyy        小说      36.13       201207
  2. 5       1       职场关系论       zcgxl       职场      36.59       200501
  3. 6       1       健康生活        jksh        生活      20.47       200008
  4. 7       1       看清本质        kqbz        社会      10.37       201004
  5. 8       1       编程,编程       bcbc        社会      10.37       201004

核心代码

Java代码   
  1. //使用缓存过滤
  2. Filter filter=FieldCacheRangeFilter.newDoubleRange("price", 20D, 50D, true, true);
  3. TopDocs topDocs=searcher.search(new MatchAllDocsQuery(),filter,10000);//默认无排序方式

输出结果

Java代码   
  1. 2       1       三国演义        sgyy        小说      36.13       201207
  2. 5       1       职场关系论       zcgxl       职场      36.59       200501
  3. 6       1       健康生活        jksh        生活      20.47       200008

 

 

lucene 范围过滤的更多相关文章

  1. lucene 过滤结果

    package cn.itcast.h_filter; import java.util.ArrayList; import java.util.List; import org.apache.luc ...

  2. 【lucene系列学习四】使用IKAnalyzer分词器实现敏感词和停用词过滤

    Lucene自带的中文分词器SmartChineseAnalyzer不太好扩展,于是我用了IKAnalyzer来进行敏感词和停用词的过滤. 首先,下载IKAnalyzer,我下载了 然后,由于IKAn ...

  3. lucene整理3 -- 排序、过滤、分词器

    1.    排序 1.1. Sort类 public Sort() public Sort(String field) public Sort(String field,Boolean reverse ...

  4. lucene查询索引库、分页、过滤、排序、高亮

    2.查询索引库 插入测试数据 xx.xx. index. ArticleIndex @Test public void testCreateIndexBatch() throws Exception{ ...

  5. lucene自定义过滤器

    先介绍下查询与过滤的区别和联系,其实查询(各种Query)和过滤(各种Filter)之间非常相似,可以这样说只要用Query能完成的事,用过滤也都可以完成,它们之间可以相互转换,最大的区别就是使用过滤 ...

  6. MySQL和Lucene索引对比分析

    MySQL和Lucene都可以对数据构建索引并通过索引查询数据,一个是关系型数据库,一个是构建搜索引擎(Solr.ElasticSearch)的核心类库.两者的索引(index)有什么区别呢?以前写过 ...

  7. Lucene系列-FieldCache

    域缓存,加载所有文档中某个特定域的值到内存,便于随机存取该域值. 用途及使用场景 当用户需要访问各文档中某个域的值时,IndexSearcher.doc(docId)获得Document的所有域值,但 ...

  8. Apache Lucene(全文检索引擎)—分词器

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

  9. Apache Lucene(全文检索引擎)—搜索

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

随机推荐

  1. VMWare 安装Ubuntu 16.04

    1.新建虚拟机 (1)点击文件-->新建虚拟机 (2)选择 自定义(高级)--> 下一步 (3)选择Workstation 12.0 --> 下一步 (4)选择 稍后安装操作系统 - ...

  2. (转)Hibernate框架基础——在Hibernate中java对象的状态

    http://blog.csdn.net/yerenyuan_pku/article/details/52760627 在Hibernate中java对象的状态 Hibernate把对象分为4种状态: ...

  3. JDK升级

    保存jboss运行时环境的配置 删除jboss下面的缓存文件 删除deployments里面的war包 重新build项目

  4. 项目关联到svn

    最近因为要升级项目,改用64位的eclipse,原先已经被svn管理的项目需要被复制到另一个工作空间,只需要导入并复制项目到新的工作空间即可 右键,点import 选择已经存在的项目导入工作空间 选择 ...

  5. 模态框(layer)

    推荐一个好看的模态框(layer)   地址:http://layer.layui.com/ 相应列子及配置  全部来自于官网,可直接访问官网学习了解. //信息框-例1 layer.alert('见 ...

  6. Shell 脚本编程 基本语法:

    Shell 脚本编程语法: 注: 文章来源 http://www.cnblogs.com/yunquan/p/6821850.html 视频来源:https://www.bilibili.com/vi ...

  7. Django cookie、session使用

    一.cookie Cookie是key-value结构,类似于一个python中的字典.随着服务器端的响应发送给客户端浏览器.然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cook ...

  8. 36.分组聚合操作—bucket进行多层嵌套

    主要知识点: 分组聚合操作-嵌套bucket.         本讲以前面电商实例,从颜色到品牌进行下钻分析,每种颜色的平均价格,以及找到每种颜色每个品牌的平均价格. 比如说,现在红色的电视有4台,同 ...

  9. Windows Phone开发(18):变形金刚第九季

    变换不是一个好理解的概念,不是吓你,它涉及很多有关代数,几何,以及线性代数的知识.怎么?被我的话吓怕了?不用怕,尽管我们未必能够理解这些概念,只要我们知道怎么使用它们就是了.其实,变换就是平面上一种坐 ...

  10. 【郑轻邀请赛 F】 Tmk吃汤饭

    [题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2132 [题意] [题解] 很容易想到用队列来模拟; 这个队列维护的是正在煮的4个人煮 ...