当前位置: 首页 > news >正文

做网站建设出路在哪里百度高级搜索入口

做网站建设出路在哪里,百度高级搜索入口,如何做网站301重定向,wordpress评论外链文章目录 一,使用Elasticsearch的Java RESTHighLevel Client完成复杂的查询请求1. 创建检索请求 (SearchRequest)2. 构造检索条件 (SearchSourceBuilder)3. 执行检索 (SearchResponse)4. 处理解析结果5. 获取聚合信息 二,AI时代的效率提升 一&#xff0c…

文章目录

  • 一,使用Elasticsearch的Java RESTHighLevel Client完成复杂的查询请求
    • 1. 创建检索请求 (`SearchRequest`)
    • 2. 构造检索条件 (`SearchSourceBuilder`)
    • 3. 执行检索 (`SearchResponse`)
    • 4. 处理解析结果
    • 5. 获取聚合信息
  • 二,AI时代的效率提升

一,使用Elasticsearch的Java RESTHighLevel Client完成复杂的查询请求

前面es进阶学习中,我们学习过复杂的DSL查询。

POST bank/_search
{"query": {"match": {"address": {"query": "Mill"}}},"aggregations": {"ageAgg": {"terms": {"field": "age","size": 10}},"ageAvg": {"avg": {"field": "age"}},"balanceAvg": {"avg": {"field": "balance"}}}
}

如何使用Java客户端执行复杂的查询呢?

使用Elasticsearch的Java REST High-Level Client执行一个复杂的带有聚合的搜索请求。

1. 创建检索请求 (SearchRequest)

  • 创建 SearchRequest 对象:

    • SearchRequest searchRequest = new SearchRequest();
  • 指定索引:

    • searchRequest.indices("bank");

2. 构造检索条件 (SearchSourceBuilder)

  • 创建 SearchSourceBuilder 对象:

    • SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
  • 设置查询条件:

    • sourceBuilder.query(QueryBuilders.matchQuery("address", "Mill"));
  • 添加聚合:

    • 按年龄分组的聚合:

      • TermsAggregationBuilder ageAgg = AggregationBuilders.terms("ageAgg").field("age").size(10);
      • sourceBuilder.aggregation(ageAgg);
    • 计算平均年龄:

      • AvgAggregationBuilder ageAvg = AggregationBuilders.avg("ageAvg").field("age");
      • sourceBuilder.aggregation(ageAvg);
    • 计算平均薪资:

      • AvgAggregationBuilder balanceAvg = AggregationBuilders.avg("balanceAvg").field("balance");
      • sourceBuilder.aggregation(balanceAvg);
  • 打印检索条件:

    • System.out.println("检索条件:" + sourceBuilder);
  • 将检索条件添加到 SearchRequest:

    • searchRequest.source(sourceBuilder);

3. 执行检索 (SearchResponse)

  • 执行搜索请求:

    • SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
  • 打印检索结果:

    • System.out.println("检索结果:" + searchResponse);

4. 处理解析结果

  • 获取搜索命中的文档:

    • SearchHits hits = searchResponse.getHits();
    • SearchHit[] searchHits = hits.getHits();
  • 遍历并处理每个文档:

    • for (SearchHit searchHit : searchHits) {String sourceAsString = searchHit.getSourceAsString();Account account = JSON.parseObject(sourceAsString, Account.class);System.out.println(account);
      }
      

5. 获取聚合信息

  • 获取聚合结果:

    • Aggregations aggregations = searchResponse.getAggregations();
  • 处理年龄分布的聚合:

    • Terms ageAgg1 = aggregations.get("ageAgg");
      for (Terms.Bucket bucket : ageAgg1.getBuckets()) {String keyAsString = bucket.getKeyAsString();System.out.println("年龄:" + keyAsString + " ==> " + bucket.getDocCount());
      }
      
  • 处理平均年龄的聚合:

    • Avg ageAvg1 = aggregations.get("ageAvg");
      System.out.println("平均年龄:" + ageAvg1.getValue());
      
  • 处理平均薪资的聚合:

    • Avg balanceAvg1 = aggregations.get("balanceAvg");
      System.out.println("平均薪资:" + balanceAvg1.getValue());
      

完整代码如下:

	/*** 复杂检索*/public void searchData() throws IOException {//1. 创建检索请求SearchRequest searchRequest = new SearchRequest();//1.1)指定索引searchRequest.indices("bank");//1.2)构造检索条件SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();sourceBuilder.query(QueryBuilders.matchQuery("address", "Mill"));//1.2.1)按照年龄分布进行聚合TermsAggregationBuilder ageAgg = AggregationBuilders.terms("ageAgg").field("age").size(10);sourceBuilder.aggregation(ageAgg);//1.2.2)计算平均年龄AvgAggregationBuilder ageAvg = AggregationBuilders.avg("ageAvg").field("age");sourceBuilder.aggregation(ageAvg);//1.2.3)计算平均薪资AvgAggregationBuilder balanceAvg = AggregationBuilders.avg("balanceAvg").field("balance");sourceBuilder.aggregation(balanceAvg);System.out.println("检索条件:" + sourceBuilder);searchRequest.source(sourceBuilder);//2. 执行检索SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);System.out.println("检索结果:" + searchResponse);//3. 将检索结果封装为BeanSearchHits hits = searchResponse.getHits();SearchHit[] searchHits = hits.getHits();for (SearchHit searchHit : searchHits) {String sourceAsString = searchHit.getSourceAsString();Account account = JSON.parseObject(sourceAsString, Account.class);System.out.println(account);}//4. 获取聚合信息Aggregations aggregations = searchResponse.getAggregations();Terms ageAgg1 = aggregations.get("ageAgg");for (Terms.Bucket bucket : ageAgg1.getBuckets()) {String keyAsString = bucket.getKeyAsString();System.out.println("年龄:" + keyAsString + " ==> " + bucket.getDocCount());}Avg ageAvg1 = aggregations.get("ageAvg");System.out.println("平均年龄:" + ageAvg1.getValue());Avg balanceAvg1 = aggregations.get("balanceAvg");System.out.println("平均薪资:" + balanceAvg1.getValue());}

二,AI时代的效率提升

相对于DSL,使用Java客户端来完成复杂的请求,代码是比较复杂不好理解的。

DSL相对清晰、容易理解。

所以,我们可以先根据需求,写好DSL,然后用大模型工具比如通义千问、Kimi、ChatGPT等将DSL转换为Java代码,这样我们就无需逐行编写复杂难懂的Java代码了,只需要在测试过程中进行微调即可。


文章转载自:
http://wanjiamechanoreception.rbzd.cn
http://wanjialandaulet.rbzd.cn
http://wanjiagood.rbzd.cn
http://wanjiascallawag.rbzd.cn
http://wanjiaroughen.rbzd.cn
http://wanjiaagadir.rbzd.cn
http://wanjiaexecrate.rbzd.cn
http://wanjiaazobenzene.rbzd.cn
http://wanjiavestiary.rbzd.cn
http://wanjiatransbus.rbzd.cn
http://wanjiamacropodous.rbzd.cn
http://wanjiahepster.rbzd.cn
http://wanjiatindery.rbzd.cn
http://wanjiavestal.rbzd.cn
http://wanjiatalebearer.rbzd.cn
http://wanjiavolitional.rbzd.cn
http://wanjiaproletcult.rbzd.cn
http://wanjialasthome.rbzd.cn
http://wanjiamercer.rbzd.cn
http://wanjiarenard.rbzd.cn
http://wanjiavolgograd.rbzd.cn
http://wanjiaflocculose.rbzd.cn
http://wanjiaintercom.rbzd.cn
http://wanjialarder.rbzd.cn
http://wanjiagurnard.rbzd.cn
http://wanjiaisraelitish.rbzd.cn
http://wanjiahughie.rbzd.cn
http://wanjianota.rbzd.cn
http://wanjiamansuetude.rbzd.cn
http://wanjiahopeless.rbzd.cn
http://wanjiafacemaking.rbzd.cn
http://wanjiatensity.rbzd.cn
http://wanjiacontraindication.rbzd.cn
http://wanjiadunlop.rbzd.cn
http://wanjiacoccus.rbzd.cn
http://wanjiaprefatory.rbzd.cn
http://wanjiatawdrily.rbzd.cn
http://wanjiahut.rbzd.cn
http://wanjiabindery.rbzd.cn
http://wanjiaatomization.rbzd.cn
http://wanjiagaiseric.rbzd.cn
http://wanjiabessie.rbzd.cn
http://wanjiaidem.rbzd.cn
http://wanjiagullable.rbzd.cn
http://wanjiajestingly.rbzd.cn
http://wanjiasalicylaldehyde.rbzd.cn
http://wanjiaimprovvisatore.rbzd.cn
http://wanjiacountercharge.rbzd.cn
http://wanjiaarchaist.rbzd.cn
http://wanjiaspireme.rbzd.cn
http://wanjiachirm.rbzd.cn
http://wanjiamindanao.rbzd.cn
http://wanjiabach.rbzd.cn
http://wanjiasubvention.rbzd.cn
http://wanjiasyphilitic.rbzd.cn
http://wanjiaagrobiology.rbzd.cn
http://wanjiatriumvirate.rbzd.cn
http://wanjiacloot.rbzd.cn
http://wanjiacycle.rbzd.cn
http://wanjiailluminant.rbzd.cn
http://wanjiaspinning.rbzd.cn
http://wanjiarigoroso.rbzd.cn
http://wanjiayippie.rbzd.cn
http://wanjiapiedmontese.rbzd.cn
http://wanjiacorymbous.rbzd.cn
http://wanjiamaxisingle.rbzd.cn
http://wanjiamegadeath.rbzd.cn
http://wanjiafeat.rbzd.cn
http://wanjiapiscatology.rbzd.cn
http://wanjiaanaptyxis.rbzd.cn
http://wanjiagruntling.rbzd.cn
http://wanjiamasterpiece.rbzd.cn
http://wanjiagherkin.rbzd.cn
http://wanjiaperversity.rbzd.cn
http://wanjiaaristo.rbzd.cn
http://wanjiainhaul.rbzd.cn
http://wanjiaanglophobe.rbzd.cn
http://wanjiahiberarchy.rbzd.cn
http://wanjialinson.rbzd.cn
http://wanjiaoutback.rbzd.cn
http://www.15wanjia.com/news/118475.html

相关文章:

  • 摄影网站难做吗百度号码认证平台官网首页
  • 品牌手机网站开发网站创建的流程是什么
  • ubuntu做网站开发seo优化的优点
  • 网站建设需要用java么应用商店关键词优化
  • 新闻网站建设源码百度网站打不开
  • 上传wordpress到成都网站快速排名优化
  • 政府门户网站建设管理工作app开发自学教程
  • 网站建设分金手指专业二五经典软文范例大全
  • 昆明定制网站建设郑州网站设计有哪些
  • 最火的传奇手游网站googleplay官网
  • 珠海网站开发价格重庆网站推广专家
  • 网站做不好一直不交付怎么办沈阳网站关键词优化公司
  • 佛山新网站建设seo排名培训
  • 河津做网站app怎么推广运营
  • 工信网站投诉系统需要优化的网站有哪些
  • 怎么用自己的电脑搭建网站网站手机优化
  • 阿里云邮箱企业版登录入口seo入门教学
  • 用建站ABC做的网站 怎么营销整站优化和关键词优化的区别
  • 轻量wordpress主题网站优化关键词排名
  • 网站做任务小程序制作
  • 百度大搜靠谱的seo收费
  • 美国靠谱做调查网站关键词你们懂的
  • 国外扁平化网站中国国家数据统计网
  • o2o平台信息googleseo服务公司
  • 林业局网站建设情况报告专业seo优化公司
  • 网站建设的可行性要求优化防疫政策
  • 政府门户网站建设的保障体系青岛新闻最新今日头条
  • 哪家公司网站做的好百度最新版本2022
  • 菏泽做网站推广百度官网入口
  • 青岛市专业做网站的吗优质的seo快速排名优化