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

相关文章
|
存储 C语言 C++
C++学习笔记(day1)
C++学习笔记(day1)
|
XML SQL 机器学习/深度学习
M-PEG7 | 学习笔记
快速学习 M-PEG7,介绍了 M-PEG7系统机制, 以及在实际应用过程中如何使用。
M-PEG7 | 学习笔记
|
Java 开发者
Loger 的使用|学习笔记
快速学习 Loger 的使用
403 0
Loger 的使用|学习笔记
|
开发工具 Android开发 iOS开发
快速开始|学习笔记
快速学习快速开始
112 0
快速开始|学习笔记
|
Scala 开发者
ListBuffer 的使用 | 学习笔记
快速学习 ListBuffer 的使用
ListBuffer 的使用 | 学习笔记
|
SQL 运维 监控
小打卡|学习笔记
快速学习小打卡
小打卡|学习笔记
|
缓存 Dubbo 应用服务中间件
本地存根|学习笔记
快速学习本地存根
本地存根|学习笔记
|
Arthas 监控 测试技术
|
消息中间件 缓存 NoSQL
总结| 学习笔记
快速学习总结。
|
Java 数据安全/隐私保护 开发者
属性驱动 | 学习笔记
快速学习属性驱动,介绍了属性驱动系统机制, 以及在实际应用过程中如何使用。
下一篇
无影云桌面