ES SearchSourceBuilder的一些常用用法的记录

摘要: 用ES存储数据,存进去简单,查询的时候,构造条件比较晕。其实本来也类似SQL的插件,写SQL语句,然后转成es的语法解析。但环境没有装。只能通过 hightRestClient去操作。这个searchsourceBulider的设计,其实并不友好,开发人员并不能专注于业务。要去拼很多条件。经常容易忘记。通过一段代码先记录下

用ES存储数据,存进去简单,查询的时候,构造条件比较晕。其实本来也类似SQL的插件,写SQL语句,然后转成es的语法解析。但环境没有装。只能通过 hightRestClient去操作。这个searchsourceBulider的设计,其实并不友好,开发人员并不能专注于业务。要去拼很多条件。经常容易忘记。通过一段代码先记录下。

long startTime = new Date().getTime() - 300000000;
long endTime = new Date().getTime();

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//-----------------------指定where条件-------------------------
//name = 'name1'
QueryBuilder tempBuilder = QueryBuilders.termQuery("name","name1");
//must:and  should:or
boolQueryBuilder.must(tempBuilder );
// date >=时间戳 
tempBuilder = QueryBuilders.rangeQuery("date").from(startTime, true);
boolQueryBuilder.must(tempBuilder);
// date<=时间戳 
tempBuilder = QueryBuilders.rangeQuery("date").to(endTime, true);
boolQueryBuilder.must(tempBuilder);
// 设置in查询, 其他字段的in 查询,不是ID字段。
//List<String> listId = new ArrayList<>();
//listId.add("CE129F72F2074F549113B2FFCB3EB27F");
//listId.add("3DF4DDE120CB4781BBE1AAE643ECE1B8");
//listId.add("04ED5EC532CE4368B15F748DF0DCCC68");
//boolQueryBuilder.must(QueryBuilders.termQuery("_id", listId));

// id in查询
tempBuilder = QueryBuilders.idsQuery().addIds("CE129F72F2074F549113B2FFCB3EB27F","3DF4DDE120CB4781BBE1AAE643ECE1B8","04ED5EC532CE4368B15F748DF0DCCC68");
boolQueryBuilder.must(tempBuilder);

// ------------把where条件 设置进SearchSourceBuilder
sourceBuilder.query(boolQueryBuilder);

有了这个sourceBulier之后,就可以做自己想要的查询了

上一篇: Web3与元宇宙
下一篇: 不惑之年的最近生活状态
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号