前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot中进行elasticSearch查询,使用QueryBuilders构建各类条件查询

SpringBoot中进行elasticSearch查询,使用QueryBuilders构建各类条件查询

作者头像
翎野君
发布2023-07-21 19:17:18
9950
发布2023-07-21 19:17:18
举报
文章被收录于专栏:翎野君翎野君

查询所有

代码语言:javascript
复制
//搜索全部文档
QueryBuilder queryBuilder =
QueryBuilders.matchAllQuery();

查询单个,等于/eq

代码语言:javascript
复制
//单个匹配,搜索name为li的文档
QueryBuilder queryBuilder =
QueryBuilders.matchQuery("name", "li");

查询多个字段匹配某一个值

代码语言:javascript
复制
//搜索name中或nickname中包含有li的文档(必须与li一致)
QueryBuilder queryBuilder =
QueryBuilders.multiMatchQuery("li","name", "nickname");

模糊匹配

代码语言:javascript
复制
//搜索名字中含有li文档(name中只要包含li即可)
WildcardQueryBuilder queryBuilder =
QueryBuilders.wildcardQuery("name","*li*");

BoolQueryBuilder复合查询

BoolQueryBuilder对象使用must方法build,多个and使用多个must

代码语言:javascript
复制
WildcardQueryBuilder queryBuilder1 = QueryBuilders.matchQuery("name", "li");
WildcardQueryBuilder queryBuilder2 = QueryBuilders.matchQuery("id", "1");

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//查询名字是LI和id是1的所有数据
boolQueryBuilder.must(queryBuilder1);
boolQueryBuilder.must(queryBuilder2);

BoolQueryBuilder对象使用should方法build,多个or使用多个should使用

代码语言:javascript
复制
WildcardQueryBuilder queryBuilder1 = QueryBuilders.matchQuery("name", "li");
WildcardQueryBuilder queryBuilder2 = QueryBuilders.matchQuery("id", "1");

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//查询名字是LI或id是1的所有数据
boolQueryBuilder.should(queryBuilder1);
boolQueryBuilder.should(queryBuilder2);
代码语言:javascript
复制
must:必须满足的条件

should:非必须满足的条件

minimumShouldMatch(1):至少要满足一个 should 条件

等值查询

代码语言:javascript
复制
BoolQueryBuilder queryBuilder =
QueryBuilders.boolQuery().must(QueryBuilders.termQuery("name", "小李"));

范围查询

代码语言:javascript
复制
BoolQueryBuilder queryBuilder =
QueryBuilders.rangeQuery("age").gte(18).lte(50);

判空查询

代码语言:javascript
复制
BoolQueryBuilder queryBuilder =
QueryBuilders.boolQuery()
.must(QueryBuilders.existsQuery("name"))
.mustNot(QueryBuilders.existsQuery("tag"));
//查询name有值,tag不存在值

分页查询

代码语言:javascript
复制
SearchResponse response =
this.transportClient
.prepareSearch(index)
.setTypes(type)
.setQuery(queryBuilder)
.setFrom(offset)
.setSize(rows)
.setExplain(false)
.execute()
.actionGet();

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

首发链接:https://cloud.tencent.com/developer/article/2304044

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查询所有
  • 查询单个,等于/eq
  • 查询多个字段匹配某一个值
  • 模糊匹配
  • BoolQueryBuilder复合查询
  • 等值查询
  • 范围查询
  • 判空查询
  • 分页查询
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档