lucene多条件查询

  1. 使用booleanQuery进行组合
  2. 特点是使用查询关键词已经是最小分词单元,不需要分词
  3. booleanQuery本身是一个布尔子句的容器,可以将lucene提供的Query子类添加到其中,标明子句之间的关系,组合条件后进行索引库查询
         // 模糊条件WildcardQuery w = new WildcardQuery(new Term(queryField,keyWord));// 词条查询TermQuery t = new TermQuery(new Term(queryField, keyWord));// 相似度查询FuzzyQuery f = new FuzzyQuery(new Term(queryField, keyWord));//参数1:查询域字段名称//参数2:指定查询起始角标//参数3:指定查询结束角标//参数4:左边开[不包含](闭[包含]: true)区间//参数5:右边开(闭 : true)区间NumericRangeQuery n = NumericRangeQuery.newLongRange(queryField, 5L, 15L, false, true);// 查询所有MatchAllDocsQuery m = new MatchAllDocsQuery();BooleanQuery.Builder b = new BooleanQuery.Builder();组合关系代表的意思如下:
//        1、MUST和MUST表示“与”的关系,即“交集”。
//        2、MUST和MUST_NOT前者包含后者不包含。
//        3、MUST_NOT和MUST_NOT没意义
//        4、SHOULD与MUST表示MUST,SHOULD失去意义;
//        5、SHOULD与MUST_NOT相当于MUST与MUST_NOT。
//        6、SHOULD与SHOULD表示“或”的关系,即“并集”。b.add(w, BooleanClause.Occur.MUST);b.add(t, BooleanClause.Occur.MUST_NOT);b.add(f, BooleanClause.Occur.SHOULD);b.add(n, BooleanClause.Occur.MUST);b.add(m, BooleanClause.Occur.MUST);BooleanQuery query = b.build();// 读取索引库索引DirectoryReader reader = DirectoryReader.open(FSDirectory.open(Paths.get(filePath)));// 创建检索索引库核心对象IndexSearcher indexSearcher = new IndexSearcher(reader);TopDocs topDocs = indexSearcher.search(query,查询条数);

lucene多条件查询相关推荐

  1. SpringCloud学习笔记024---SpringBoot集成Lucene实现全文检索_分词_索引_更新_删除文档_词条搜索_多条件查询

    JAVA技术交流QQ群:170933152 先看代码实现,下面有lucene介绍: 测试用例 Github 代码 代码我已放到 Github ,导入spring-boot-lucene-demo 项目 ...

  2. Lucene mysql app查询_集成Lucene,查询相关数据

    应用场景:有一大部分固定的数据,短期内不会改变的,之前是直接走mysql,然后搜索时为了用到索引,走了前缀匹配,然后其他的一些固定查询在中间设置了一层缓存,但是想想直接这样部署到线上的话,这一类的根据 ...

  3. 基于Solr的HBase多条件查询测试

    背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级的快速检索,对于多字段的组合查询却无能为力.针对HBase ...

  4. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

    大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...

  5. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作...

    一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 ...

  6. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  7. excel vlookup多个条件匹配多列_Excel中的Vlookup函数,轻松实现多条件查询!

    VLOOKUP函数,原始数据中存在重复值 我们在使用VLOOKUP函数的时候,如果查找区域内有多个可以查找的到的值的话,Excel会默认返回第一个查找的到的值 在E2单元格中输入公式: =VLOOKU ...

  8. mysql多条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了

    在excel中条件求和想必大家都不陌生,这个可以说是我们工作中经常遇到的问题,常见的条件求和函数有sumif以及sumifs,但是还有一个更加强但知道的人却非常少的函数,他就是dsum函数,dsum相 ...

  9. Hibernate的条件查询的几种方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. 第一种,用?占位符,如: //登录(用?占位符)public List<UserPO> LoginUser( ...

最新文章

  1. 相机数据格式设置不对踩坑
  2. python3.5怎么使用-在ros中使用python3.5
  3. 现代密码学5.2--域扩张:Merkle-Damgard Transform
  4. 使用Memcached提高.NET应用程序的性能
  5. Sentinel(二十)之Envoy RLS Token Server
  6. java是什么_Java是什么?Java的特点有哪些?
  7. 一道学吧上的题 ^ 题目:不允许重复的实验 - 从数字1、2、3、4、5中随机抽取3次数字(不允许重复)组成一个三位数,则其各位数字之和等于n的概率为________ 输入整数 输出一个小数(保留
  8. Linux查看网卡是千兆还是万兆网卡
  9. 8.局部变量、成员变量、jvm垃圾回收机制 、封装、this关键字、匿名对象
  10. 《哈利波特》购书最低折扣
  11. k8s教程(基础篇)-基本概念和术语
  12. 让iOS Safari浏览器支持油猴脚本
  13. SpringBoot+Vue实现邮箱登录注册找回密码(附接口文档)
  14. Latex 如何给数学公式进行编号
  15. 基于ATTCK框架解析勒索病毒攻击
  16. Sigmoid Function
  17. html下拉刷新原理,科技常识:移动端下拉刷新头实现原理及代码实现
  18. MLAT-Autoencoders---下篇-关键代码及结果展示(1)
  19. java语言程序设计郑莉课后答案_java语言程序设计 第2版 (郑莉)课后习题答案.doc...
  20. 【Code】代码答案错误怎么办?三种方法教你如何查错

热门文章

  1. Spacial Structures Uva806
  2. 推送通知/传感器/UIDynamic仿真(推送通知已适配iOS10)
  3. 哪些企业网络场景会用到云专线?
  4. 剑桥大学 计算机课程,剑桥大学计算机课程
  5. php发表说说,发表qq说说的句子
  6. php实现“杨辉三角”
  7. [Storm]分布式单词计数(一)一个简单的storm demo
  8. tinkpad BIOS 超级密码 清除
  9. 如何定时启停Winform应用程序
  10. 计算机协会活动横幅标语,社团 | 广科数学建模等你来pick