开发者学堂课程【ElasticSearch 最新快速入门教程:BoolQuery】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10652
BoolQuery
内容介绍:
一、组合查询(复杂查询)笔记
二、演示操作
一、组合查询(复杂查询)笔记
must(QueryBuilders):AND
must(QueryBuilders):NOT
must(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.spanFirstQuery(QueryBuilders.spanTermQuery(“content”,“问题”) ,300)).get();
SearchHits hits=searchResponse.getHits();
//获取命中次数,查询结果有多少对象
二、演示操作
需求:查询索引库 blgdatas 中的 type 之 products 中,name 为 nadoop,,且 author 中包含了辛格的索引信息。
@ Test
public void testBoolQuery(); {
//检索
SearchResponse response = client. prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(Query Builders, boolQuery()
.must(QueryBuilders.termQuery(name: "name" , value: ”hadoop”))
.must(Query Builders. wildcardQuery name: "author”, query:“辛格” )))
.get();
//显示检索到的信息
SearchHits hits = response.getHits();
for (SearchHit hit hits) {
System.out printIn(hit. getSourceAsStringo());
}