首页 > 其他分享 >ES操作RestHighLevelClient手册

ES操作RestHighLevelClient手册

时间:2024-10-30 18:09:01浏览次数:5  
标签:salary searchSourceBuilder SearchSourceBuilder AggregationBuilders 手册 field Rest

    //设置分页
     searchSourceBuilder.from(1);
     searchSourceBuilder.size(5);
     //排序
     searchSourceBuilder.sort("age", SortOrder.DESC);
     searchSourceBuilder.sort("id", SortOrder.DESC);

     //数据过滤创建 SearchSourceBuilder条件构造
     SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
     //指定需要返回或者排除的字段
     String[] includes = {"id", "name"};
     String[] excludes = {};
     searchSourceBuilder.fetchSource(includes, excludes);

     //精确查找 term
     TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("address.keyword", "三国演义小乔");

     //Range 范围查找
     RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age");
     rangeQueryBuilder.gte(18);
     rangeQueryBuilder.lt(23);
     //match 匹配关键词分词查找
     MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("address", "王者打野");
     matchQueryBuilder.operator(Operator.OR);

     //MultiMatch 多字段查找
     MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("王者辅助","address", "desc");
     multiMatchQuery.operator(Operator.OR);

     //Bool 多条件查找
     BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
     // and
     boolQueryBuilder.must(QueryBuilders.rangeQuery("age").gte(20));
     boolQueryBuilder.must(QueryBuilders.matchQuery("sex", "0"));
     // or
     boolQueryBuilder.should(QueryBuilders.rangeQuery("age").gte(20));
     boolQueryBuilder.should(QueryBuilders.matchQuery("sex", "0"));

     //模糊查询 Fuzzy
     FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilders.fuzzyQuery("name", "张").fuzziness(Fuzziness.ONE);

     //聚合查询
     AggregationBuilder sumBuilder = AggregationBuilders.sum(termName).field("COLLECT_PEOPLE_MONEY");

     //对salary统计:个数、平均、最高、最低、总和
     StatsAggregationBuilder statsBuilder = AggregationBuilders.stats(termName).field("COLLECT_PEOPLE_MONEY");

     //等值查询
     searchSourceBuilder.query(QueryBuilders.termQuery(groupColumn, "6"));

     searchSourceBuilder.aggregation(statsBuilder);
     searchRequest.source(searchSourceBuilder);

     //cardinate对搜索结果去重统计
     CardinalityAggregationBuilder cardinalityAggregationBuilder = AggregationBuilders.cardinality("jobCardinate").field("job.keyword");
     searchSourceBuilder.aggregation(cardinalityAggregationBuilder);

     //限定聚合范围
     SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
     RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("salary").gte(10000);
     searchSourceBuilder.query(rangeQueryBuilder);

     //获取 job的分类信息
     TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("jobGroup")
     .field("job.keyword")
     .size(10)
     .order(BucketOrder.aggregation("_count", true));
     searchSourceBuilder.aggregation(termsAggregationBuilder);

     // Salary Range分桶,可以自己定义 key
     RangeAggregationBuilder rangeAggregationBuilder = AggregationBuilders.range("salary_range")
     .field("salary")
     .addUnboundedTo(10000)
     .addRange(10000, 20000)
     .addUnboundedFrom(">20000", 20000);

     // Histogram示例:按照工资的间隔分桶
     HistogramAggregationBuilder histogramAggregationBuilder = AggregationBuilders.histogram("salary_histrogram")
     .field("salary")
     .interval(5000)
     .extendedBounds(0, 100000);

  

 

参考链接:Java 操作RestHighLevelClient查询详解-CSDN博客

标签:salary,searchSourceBuilder,SearchSourceBuilder,AggregationBuilders,手册,field,Rest
From: https://www.cnblogs.com/mangwusuozhi/p/18516332

相关文章

  • 在同一子网下,利用wireshark进行的QQ数据分析
    在同一子网下,利用wireshark进行的QQ数据分析该实验目的是使用wireshark对新版QQ进行抓包,对QQ的数据流进行分析,对指定文件进行复现。和老版本的QQ相比,新版本的QQ传输的安全性更高,因为它采用了更多的TCP加密协议。这也直接导致新版QQ的验证程序更加繁琐,传输速度有所下降。所以,在wi......
  • 【GiraKoo】Manifest中的intent-filter使用
    【笔记】【Android】Manifest中的intent-filter使用笔记系列,内容是从网络搜索的结果,不一定是正确的理解。如果存在谬误,欢迎大家指正。intent-filter是为了标明Activity,Service或者BraodcastReceiver可以相应的intent类型。基本结构<activityandroid:name=".YourActivity"......
  • # [Educational Codeforces Round 171](https://codeforces.com/contest/2026)
    EducationalCodeforcesRound171D.SumsofSegments定义四个前缀和:\(s_i=a_1+a_2+\dots+a_i\)\(u_i=s_1+s_2+\dots+s_i\)\(t_i=s(i,i)+s(i,i+1)+\dots+s(i,n)\)\(ts_i=t_1+t_2+\dots+t_i\)\(s_i\)为\(a_i\)的前缀和,\(u_i\)为\(s_i\)的前缀和,\(t_i\)为分块之后第......
  • Array and string offset access syntax with curly braces is deprecated
    你遇到的这个问题确实是因为PHP版本升级后对一些语法的支持发生了变化。具体来说,从PHP7.4开始,使用大括号 {} 访问数组和字符串的偏移已经被弃用,并将在未来的版本中完全移除。因此,你需要对代码进行相应的调整。解决方法方法一:降级PHP版本更改PHP版本为7.0以下的版本:如果你......
  • js文件切片上传组件resumable.js使用
    接到一个媒体文件切片上传的需求,写demo记录下。前端<fieldset><legend>videopreview</legend><div><videoid="video-preview"controlsmutedheight="112px"width="200px"></video><inputtype="......
  • 【Unity】Addressables下的图集(SpriteAtlas)内存优化
    前言:资源管理系统:AddressablesUI:模拟NGUI图集Sprite,在UGUI下继承Image增加UIImage组件,实现将SpriteAtlas组件拖拽到属性面板上,切换选择里面的小图问题:在检查项目内存占用过高问题时,发现直接拖拽上去的资源不受Addressables系统的自动引用管理,导致部分资源虽然没有引用,但是未被释放......
  • Codeforces 4 A-D
    题面ABCD难度:红橙橙黄题解A题目大意:判断一个正整数\(w\)能否表示成两个正偶数之和。解题思路:考虑分类讨论\(w\)。对于\(1\)和\(2\),显然为NO;对于\(w\ge3\),考虑将其表示为\(x+2\)。根据题意,若\(x\)为偶数,则答案显然必为YES;否则必然为NO。因为\(......
  • Oracle、MySQL、ClickHouse的通用AES256加解密如何实现?
     Oracle、MySQL、ClickHouse的通用AES256加解密如何实现? 前段时间研究了加密算法aes,写了个文档,分享到博客上来。防。1  说明应XXX安全生产需求,对目标库目标表业务字段敏感信息进行加密密文存放,查询时通过解密得到明文进行数据使用,要求使用AES256。目前公司所使用主要......
  • 使用 FastGPT 工作流搭建 GitHub Issues 自动总结机器人
    如今任何项目开发节奏都很快,及时掌握项目动态是很重要滴,GitHubIssues一般都是开发者和用户反馈问题的主要渠道。然而,随着Issue数量的增加,及时跟进每一个问题会变得越来越困难。为了解决这个痛点,我们开发了一个自动化Issue总结机器人,它的功能很简单:自动获取项目最新的Gi......
  • 笔记本电脑组装及装配行业MES系统解决方案介绍
    一、笔记本电脑组装及装配行业为什么需要上MES系统?随着笔记本电脑市场的不断发展,消费者对产品的质量、性能和定制化需求不断提高,导致生产企业面临越来越多的挑战。笔记本电脑组装及装配行业具有多工序、多部件、多批次的特点,如何确保生产效率、提高产品质量、缩短交货周期成......