lucene多条件查询
lucene多条件查询
- 使用booleanQuery进行组合
- 特点是使用查询关键词已经是最小分词单元,不需要分词
- 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多条件查询相关推荐
- SpringCloud学习笔记024---SpringBoot集成Lucene实现全文检索_分词_索引_更新_删除文档_词条搜索_多条件查询
JAVA技术交流QQ群:170933152 先看代码实现,下面有lucene介绍: 测试用例 Github 代码 代码我已放到 Github ,导入spring-boot-lucene-demo 项目 ...
- Lucene mysql app查询_集成Lucene,查询相关数据
应用场景:有一大部分固定的数据,短期内不会改变的,之前是直接走mysql,然后搜索时为了用到索引,走了前缀匹配,然后其他的一些固定查询在中间设置了一层缓存,但是想想直接这样部署到线上的话,这一类的根据 ...
- 基于Solr的HBase多条件查询测试
背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级的快速检索,对于多字段的组合查询却无能为力.针对HBase ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作
大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作...
一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 ...
- MyBatis关联查询、多条件查询
MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...
- excel vlookup多个条件匹配多列_Excel中的Vlookup函数,轻松实现多条件查询!
VLOOKUP函数,原始数据中存在重复值 我们在使用VLOOKUP函数的时候,如果查找区域内有多个可以查找的到的值的话,Excel会默认返回第一个查找的到的值 在E2单元格中输入公式: =VLOOKU ...
- mysql多条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了
在excel中条件求和想必大家都不陌生,这个可以说是我们工作中经常遇到的问题,常见的条件求和函数有sumif以及sumifs,但是还有一个更加强但知道的人却非常少的函数,他就是dsum函数,dsum相 ...
- Hibernate的条件查询的几种方式
2019独角兽企业重金招聘Python工程师标准>>> 1. 第一种,用?占位符,如: //登录(用?占位符)public List<UserPO> LoginUser( ...
最新文章
- 相机数据格式设置不对踩坑
- python3.5怎么使用-在ros中使用python3.5
- 现代密码学5.2--域扩张:Merkle-Damgard Transform
- 使用Memcached提高.NET应用程序的性能
- Sentinel(二十)之Envoy RLS Token Server
- java是什么_Java是什么?Java的特点有哪些?
- 一道学吧上的题 ^ 题目:不允许重复的实验 - 从数字1、2、3、4、5中随机抽取3次数字(不允许重复)组成一个三位数,则其各位数字之和等于n的概率为________ 输入整数 输出一个小数(保留
- Linux查看网卡是千兆还是万兆网卡
- 8.局部变量、成员变量、jvm垃圾回收机制 、封装、this关键字、匿名对象
- 《哈利波特》购书最低折扣
- k8s教程(基础篇)-基本概念和术语
- 让iOS Safari浏览器支持油猴脚本
- SpringBoot+Vue实现邮箱登录注册找回密码(附接口文档)
- Latex 如何给数学公式进行编号
- 基于ATTCK框架解析勒索病毒攻击
- Sigmoid Function
- html下拉刷新原理,科技常识:移动端下拉刷新头实现原理及代码实现
- MLAT-Autoencoders---下篇-关键代码及结果展示(1)
- java语言程序设计郑莉课后答案_java语言程序设计 第2版 (郑莉)课后习题答案.doc...
- 【Code】代码答案错误怎么办?三种方法教你如何查错
热门文章
- Spacial Structures Uva806
- 推送通知/传感器/UIDynamic仿真(推送通知已适配iOS10)
- 哪些企业网络场景会用到云专线?
- 剑桥大学 计算机课程,剑桥大学计算机课程
- php发表说说,发表qq说说的句子
- php实现“杨辉三角”
- [Storm]分布式单词计数(一)一个简单的storm demo
- tinkpad BIOS 超级密码 清除
- 如何定时启停Winform应用程序
- 计算机协会活动横幅标语,社团 | 广科数学建模等你来pick