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. 1、Xamarin 环境准备

    一.安装环境 1.安装VS2017 2.安装Xamarin扩展包 3.安装NDK 工具栏中,一个为AVD(模拟器管理)一个为NDK(管理Andoid SDK) 3.1 先打开NDK,在Tools\Op ...

  2. JS——三个运用正则的方法

    trim().replace().search() <script> //trim();去除前后的空格 var str = " 你好 我很好! "; console.l ...

  3. mysql_数据查询_嵌套查询

    嵌套查询 一个SELECT-FROM-WHERE语句称为一个查询块. 嵌套查询:将一个查询块嵌套在另一个查询块的WHERE子句或者HAVING短语的条件中的查询. 注:子查询的SELECT语句中不能使 ...

  4. eclipse版本和jdk的版本兼容问题

    eclipse也是有版本的,当版本过低时,无法兼容高版本的jdk 项目中用的是jdk1.8,但是低版本的eclipse只能选到jdk1.7,导致java文件在编译的过程中,不识别1.8版本jdk的语法 ...

  5. 关于css定位的一些总结

    #pay_pic{ overflow: hidden; width: 200px; margin: 0 auto; } table.dataintable { margin-top: 15px; bo ...

  6. typeof和instanceof的区别

    typeof和instanceof的区别: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.typeof 一般只能 ...

  7. c++ map: 根据value逆向查找key

    #include <iostream> #include <map> #include <algorithm> #include <vector> #i ...

  8. Scrapy实战:爬取http://quotes.toscrape.com网站数据

    需要学习的地方: 1.Scrapy框架流程梳理,各文件的用途等 2.在Scrapy框架中使用MongoDB数据库存储数据 3.提取下一页链接,回调自身函数再次获取数据 重点:从当前页获取下一页的链接, ...

  9. 非常简单的Python HTTP服务

    如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助你.使用Python可以完成一个简单的内建 HT ...

  10. 【http反向代理】多个域名指向同一个ip的不同网站解决方法

    一个服务器需要挂载多个项目[重点是都能通过域名访问] 实现原理: 1.当前市面上看到的一些服务器,开放的端口一般都要求为 '80' 端口 所以80端口成了商用端口 2.域名的绑定是绑定一个一般是绑定你 ...