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

相关文章
|
8月前
|
消息中间件 存储 NoSQL
|
11月前
|
存储 C语言 C++
C++学习笔记(day1)
C++学习笔记(day1)
|
12月前
|
机器学习/深度学习 人工智能 调度
学习笔记6
人工智能课程
55 0
|
NoSQL MongoDB 开发者
故障测试_1|学习笔记
快速学习故障测试_1
97 0
故障测试_1|学习笔记
|
机器学习/深度学习 算法 数据挖掘
总结与回顾 | 学习笔记
快速学习总结与回顾
56 0
|
开发者 索引
MatchAllQuery|学习笔记
快速学习 MatchAllQuery。
76 0
|
云安全 安全 网络安全
总结 | 学习笔记
快速学习总结
79 0
|
人工智能 开发者
特征空间与应用 | 学习笔记
快速学习特征空间与应用
105 0
特征空间与应用 | 学习笔记
|
分布式计算 Hadoop Apache
regexpQuery | 学习笔记
快速学习 regexpQuery
144 0
|
开发者 Python
In 和 not in 的使用 | 学习笔记
快速学习 In 和 not in 的使用
106 0