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. SQL基本操作——通配符

    SQL 通配符:在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符.SQL 通配符必须与 LIKE 运算符一起使用.在 SQL 中,可使用以下通配符: 通配符 描述 % 替代一个或多个字符 ...

  2. SQL基本操作——COVERT

    CONVERT() 函数是把日期转换为新数据类型的通用函数.CONVERT() 函数可以用不同的格式显示日期/时间数据. --语法 CONVERT(data_type(length),data_to_ ...

  3. VC++ 遍历文件夹

    }; strcpy_s(szFind, MAX_PATH, m_szDir); strcat_s(szFind, "\\*.*"); WIN32_FIND_DATA wfd; HA ...

  4. 在Mac安装Scheme

    我也不知道安装的是Scheme这门语言还是编程环境还是其他的什么东西,反正能在控制台运行Scheme代码了.... 谁能告诉我怎么在sublime使用scheme.... 原地址 首先下载安装MIT- ...

  5. 体验SqlServer Express 2014

    想使用SQLServer Express记录一些数据,但使用起来并不令人愉快.SQLServer Express是一个免费的可用数据库,但似乎设置了一些门槛,多少显得并不真心实意.抛开版本(技术)限制 ...

  6. STL_string用法总结

    参考自:http://blog.csdn.net/y990041769/article/details/8763366 1:string对象的定义和初始化以及读写 string s1;      默认 ...

  7. numpy.tile()

    numpy.tile()是个什么函数呢,说白了,就是把数组沿各个方向复制 比如 a = np.array([0,1,2]),    np.tile(a,(2,1))就是把a先沿x轴(就这样称呼吧)复制 ...

  8. js 图表转图片

    最近项目上有个需求,是将一些teechart做的图表转换成图片插入自动生成的PDF里,Teechart绘图和如何生成PDF这些这里就不说了,这个任务比较别扭的一点是,图表自动生成,且整个过程中页面不能 ...

  9. POJ3984——迷宫问题

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31616   Accepted: 18100 Descriptio ...

  10. MySQL中是索引

    MySQL中是索引: --.唯一索引: 一行中的内容不能一样, create t2( id int , num int, unique weiyisuiyin (id,num) ) --唯一; --约 ...