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

北京王府井集团股份有限公司百度点击优化

北京王府井集团股份有限公司,百度点击优化,做网站如何下载别人网站图片,微网站建设 合同数据聚合 聚合的种类 DSL实现Bucket聚合 如图所示,设置了10个桶,那么就显示了数量最多的前10个桶,品牌含有7天酒店的有30家, 品牌含有如家的也有30家。 修改排序规则 限定聚合范围 DSL实现Metrics聚合 如下案例要求对不同的品…

数据聚合

聚合的种类

DSL实现Bucket聚合

 如图所示,设置了10个桶,那么就显示了数量最多的前10个桶,品牌含有7天酒店的有30家,

品牌含有如家的也有30家。

修改排序规则

 

 限定聚合范围

 DSL实现Metrics聚合

如下案例要求对不同的品牌进行统计,所以要进行分组。

 如图所示,要对桶的平均评分做排序,要使用不同桶的平均评分

 

RestClient实现聚合

请求组装 

    @Testvoid testAggregation() throws IOException {//1.准备RequestSearchRequest request = new SearchRequest("hotel");//2.准备DSl//2.1设置sizerequest.source().size(0);//2.2聚合request.source().aggregation(AggregationBuilders.terms("brandAgg").field("brand").size(10));//3.发出请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);//4.解析结果System.out.println(response);}

 

结果解析

    @Testvoid testAggregation() throws IOException {//1.准备RequestSearchRequest request = new SearchRequest("hotel");//2.准备DSl//2.1设置sizerequest.source().size(0);//2.2聚合request.source().aggregation(AggregationBuilders.terms("brandAgg").field("brand").size(10));//3.发出请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);//4.解析结果Aggregations aggregations = response.getAggregations();//4.1根据聚合名称获取聚合结果Terms brandTerms = aggregations.get("brandAgg");//4.2获取bucketsList<? extends Terms.Bucket> buckets = brandTerms.getBuckets();//4.3遍历for (Terms.Bucket bucket : buckets) {//4.4获取keyString key = bucket.getKeyAsString();System.out.println(key);}}

 

多条件聚合

在Service中 

将公共代码抽取出来,提高复用性

    @Overridepublic Map<String, List<String>> filters() {try {//1.准备RequestSearchRequest request = new SearchRequest("hotel");//2.准备DSl//2.1设置sizerequest.source().size(0);//2.2聚合buildAggregation(request);//3.发出请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);//4.解析结果Map<String, List<String>>result=new HashMap<>();Aggregations aggregations = response.getAggregations();//5.1根据品牌名称获取品牌结果List<String> brandList = getAggByName(aggregations,"brandAgg");result.put("品牌",brandList);//5.2根据品牌名称获取品牌结果List<String> cityList = getAggByName(aggregations,"cityAgg");result.put("城市",cityList);//5.3根据品牌名称获取品牌结果List<String> starList = getAggByName(aggregations,"starAgg");result.put("星级",starList);return result;} catch (IOException e) {throw new RuntimeException(e);}}private static List<String> getAggByName(Aggregations aggregations,String aggName) {//4.1根据聚合名称获取聚合结果Terms brandTerms = aggregations.get(aggName);//4.2获取bucketsList<? extends Terms.Bucket> buckets = brandTerms.getBuckets();//4.3遍历List<String>brandList=new ArrayList<>();for (Terms.Bucket bucket : buckets) {//4.4获取keyString key = bucket.getKeyAsString();brandList.add(key);}return brandList;}

 

在一个测试类中

@SpringBootTest
class HotelDemoApplicationTests {@Autowiredprivate IHotelService hotelService;@Testvoid contextLoads() {Map<String, List<String>> filters = hotelService.filters();System.out.println(filters);}}

 运行得到

带过滤条件的聚合

在查询的时候要在查询结果上做聚合,不应该直接将所有数据的聚合结果返回。

所以就是加上query参数。

Controller中 

传递的参数和正常参数一模一样 

@PostMapping("filters")public Map<String, List<String>> getFilters(@RequestBody RequestParams Params){return hotelService.filters(Params);}

Service中

添加传递参数,并且新设置了2.3query,使用搜索时同款的query设置方法

 @Overridepublic Map<String, List<String>> filters(RequestParams Params) {try {//1.准备RequestSearchRequest request = new SearchRequest("hotel");//2.准备DSl//2.1设置sizerequest.source().size(0);//2.2聚合buildAggregation(request);//2.3querybuildBasicQuery(Params, request);//3.发出请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);//4.解析结果Map<String, List<String>>result=new HashMap<>();Aggregations aggregations = response.getAggregations();//5.1根据品牌名称获取品牌结果List<String> brandList = getAggByName(aggregations,"brandAgg");result.put("品牌",brandList);//5.2根据品牌名称获取品牌结果List<String> cityList = getAggByName(aggregations,"cityAgg");result.put("城市",cityList);//5.3根据品牌名称获取品牌结果List<String> starList = getAggByName(aggregations,"starAgg");result.put("星级",starList);return result;} catch (IOException e) {throw new RuntimeException(e);}}

结果测试

根据搜索框和过滤条件成功过滤

 

http://www.ds6.com.cn/news/73103.html

相关文章:

  • 固安做网站最新足球赛事
  • 网站 建设 业务需求表完美动力培训价格表
  • wordpress连接数据修改seo百度贴吧
  • 网站哪家做的比较好的百度推广客户端教程
  • 视频网站开发项目新东方烹饪学校
  • 滨江区高端网站建设深圳网站设计小程序
  • 百度网站建设公司室内设计培训
  • 网站除了域名还要什么用浙江seo技术培训
  • 网站的网页声明怎么做搜索引擎排名google
  • 怪兽网站模板网站seo的主要优化内容
  • dede网站版权信息标签合肥网络优化公司有几家
  • 怀化新站优化seo诊断分析工具
  • 一页网站首页图如何做seo自然优化排名技巧
  • 网站文件夹 安全设置seo是什么地方
  • 广州网站设计皆赞乐云践新花都网络推广seo公司
  • 西安动力无限网站建设怎样做一个网站平台
  • 省级精品课程网站如何在百度上发布自己的广告
  • 电子商务网站建设与维护北京百度竞价托管公司
  • 内部券网站怎么做制作网页完整步骤代码
  • 做阳具到哪个网站有卖品牌策划公司排名
  • 做网站怎么写工作日志怎么进行推广
  • php旅游网站开发小结英语培训机构前十名
  • HS酒店网站建设北京网络推广有哪些公司
  • 做微信封面的网站中国重大新闻
  • 驻马店企业做网站全网网络营销推广
  • 保定做网站百度推广百度竞价员
  • 网站域名 格式怀化seo推广
  • 晋城住房保障和城乡建设管网站网络销售靠谱吗
  • cpanel wordpress是什么西安官网seo
  • 加强网站党建频道建设成都网站建设公司排名