查詢所有
//搜索全部文檔
QueryBuilder queryBuilder =
QueryBuilders.matchAllQuery();
查詢單個(gè),等于/eq
//單個(gè)匹配,搜索name為li的文檔
QueryBuilder queryBuilder =
QueryBuilders.matchQuery("name", "li");
查詢多個(gè)字段匹配某一個(gè)值
//搜索name中或nickname中包含有l(wèi)i的文檔(必須與li一致)
QueryBuilder queryBuilder =
QueryBuilders.multiMatchQuery("li","name", "nickname");
模糊匹配
//搜索名字中含有l(wèi)i文檔(name中只要包含li即可)
WildcardQueryBuilder queryBuilder =
QueryBuilders.wildcardQuery("name","*li*");
BoolQueryBuilder復(fù)合查詢
BoolQueryBuilder對(duì)象使用must方法build,多個(gè)and使用多個(gè)must
WildcardQueryBuilder queryBuilder1 = QueryBuilders.matchQuery("name", "li");
WildcardQueryBuilder queryBuilder2 = QueryBuilders.matchQuery("id", "1");
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//查詢名字是LI和id是1的所有數(shù)據(jù)
boolQueryBuilder.must(queryBuilder1);
boolQueryBuilder.must(queryBuilder2);
BoolQueryBuilder對(duì)象使用should方法build,多個(gè)or使用多個(gè)should使用
WildcardQueryBuilder queryBuilder1 = QueryBuilders.matchQuery("name", "li");
WildcardQueryBuilder queryBuilder2 = QueryBuilders.matchQuery("id", "1");
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//查詢名字是LI或id是1的所有數(shù)據(jù)
boolQueryBuilder.should(queryBuilder1);
boolQueryBuilder.should(queryBuilder2);
must:必須滿足的條件
should:非必須滿足的條件
minimumShouldMatch(1):至少要滿足一個(gè) should 條件
等值查詢
BoolQueryBuilder queryBuilder =
QueryBuilders.boolQuery().must(QueryBuilders.termQuery("name", "小李"));
范圍查詢
BoolQueryBuilder queryBuilder =
QueryBuilders.rangeQuery("age").gte(18).lte(50);
判空查詢
BoolQueryBuilder queryBuilder =
QueryBuilders.boolQuery()
.must(QueryBuilders.existsQuery("name"))
.mustNot(QueryBuilders.existsQuery("tag"));
//查詢name有值,tag不存在值
分頁查詢
SearchResponse response =
this.transportClient
.prepareSearch(index)
.setTypes(type)
.setQuery(queryBuilder)
.setFrom(offset)
.setSize(rows)
.setExplain(false)
.execute()
.actionGet();
本篇文章如有幫助到您,請(qǐng)給「翎野君」點(diǎn)個(gè)贊,感謝您的支持。文章來源:http://www.zghlxwxcb.cn/news/detail-587487.html
首發(fā)鏈接:https://www.cnblogs.com/lingyejun/p/17557467.html文章來源地址http://www.zghlxwxcb.cn/news/detail-587487.html
到了這里,關(guān)于SpringBoot中進(jìn)行elasticSearch查詢,使用QueryBuilders構(gòu)建各類條件查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!