boolQuery | 学习笔记

简介: 快速学习 boolQuery

开发者学堂课程【ElasticSearch 入门精讲boolQuery学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/10004


boolQery


内容介绍:

一、讲义

二、演示


一、讲义

组合查询(复杂查询

must(QueryBuilders): AND

mustNot(QueryBuilders): NOT

should(QueryBuilders):OR

在定义 json:放置到 Elasticsearch的插件中

{

"query":{

"bool":{

"must":{

"term":{

"title":"elasticsearch"

}

},

"should":{

"range":{

"id":{  

"from":1,

"to":2

        }

}SearchResponse searchResponse = client.prepareSearch("blog2").setTypes("article") .setQuery(QueryBuilders.boolQuery().must(QueryBuilderstermQuery("title","搜索").must(QueryBuilders.wildcardQuery("content","elagic*ch")).get();

SearchHits hits = searchResponse.getHits();//获取命中次数,查询结果有多少对象

二、演示

/**

* boolQuery 演示

*需求:查询索引库 bigdata 中的 type 之 product 中,name 为 hadoop,且 author 中包含了辛格的索引信息。

*/

@Test

public void testBoolQuery(){

 //检索

SearchResponse response = client.preparesearch(INDEX)

.setTypes (TYPE)

.setQuery(QueryBuilders.boolQuery()

.must(QueryBuilders.matchPhraseQuery(name: "name",value: "hadoop"))

.should(QueryBuilders.wildcardQuery(name: "author",query:"Sp*")))

.get();

//显示检索到的信息

SearchHits hits = response.getHits();

for (SearchHit hit : hits){

System.out.println(hit.getSourceAsString());

}

}

运行结果如图

image.png

要显示检索信息为施瓦辛格,修改代码

.should(QueryBuilders.wildcardQuery(name: "author",query:"Sp*")))

.should(QueryBuilders.matchPhraseQuery(name: "author",query:"Spark")))

运行结果如图

image.png

如要显示两条记录,则应该将 must 都换为 should,为或的关系,

.should(QueryBuilders.matchPhraseQuery(name: "name",value: "hadoop"))

如图

image.png

相关文章
|
存储 缓存 自然语言处理
ElasticSearch高阶使用
ElasticSearch高阶使用
|
设计模式 Oracle Java
设计模式--- 桥接模式、JDBC 源码剖析(桥接)
设计模式--- 桥接模式、JDBC 源码剖析(桥接)
235 2
|
3月前
|
关系型数据库 MySQL Java
SpringBoot集成Sharding-Jdbc分库分表
ShardingSphere是一套开源分布式数据库中间件解决方案,包含Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar三款产品,提供数据分片、分布式事务和数据库治理功能,适用于多样化应用场景。
543 0
SpringBoot集成Sharding-Jdbc分库分表
|
4月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1649 10
|
安全 Java 网络安全
Java Socket编程教程:构建安全可靠的客户端-服务器通信
【6月更文挑战第21天】构建安全的Java Socket通信涉及SSL/TLS加密、异常处理和重连策略。示例中,`SecureServer`使用SSLServerSocketFactory创建加密连接,而`ReliableClient`展示异常捕获与自动重连。理解安全意识,如防数据截获和中间人攻击,是首要步骤。通过良好的编程实践,确保网络应用在复杂环境中稳定且安全。
329 0
|
安全 网络安全 数据安全/隐私保护
网络安全之双因素认证
【8月更文挑战第12天】
1644 2
|
应用服务中间件
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
1459 0
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
|
安全 Shell Linux
【Shell 命令集合 系统设置 】Linux 创建一个与主系统分离的独立的运行环境 chroot命令 使用指南
【Shell 命令集合 系统设置 】Linux 创建一个与主系统分离的独立的运行环境 chroot命令 使用指南
352 0
|
机器学习/深度学习 存储 编解码
Google Earth Engine(GEE)——ESRI 10m年度土地利用土地覆盖(2017-2021)
Google Earth Engine(GEE)——ESRI 10m年度土地利用土地覆盖(2017-2021)
539 0
|
分布式计算 API 调度
Flink教程(30)- Flink VS Spark(上)
Flink教程(30)- Flink VS Spark(上)
457 0