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

易优cms二次开发谷歌seo关键词排名优化

易优cms二次开发,谷歌seo关键词排名优化,手机管理网站,外汇返佣网站开发1.核心概念 bucket: 一个数据分组(类似于sql group by以后的数据)metric:对bucket执行的某种聚合分析的操作,比如说求平均值,最大值,最小值。一些系列的统计方法(类似 select count(1) MAX MIN AVG) 请…

1.核心概念

  • bucket: 一个数据分组(类似于sql group by以后的数据)
  • metric:对bucket执行的某种聚合分析的操作,比如说求平均值,最大值,最小值。一些系列的统计方法(类似 select count(1)  MAX  MIN  AVG)

请求参数说明:

size: 0  ,//只要聚合结果,不要原始数据,不等于0会返回原始数据

aggs: 固定语法,对数据进行分组聚合操作(类似于group by操作)

terms: 根据字段的值进行分组

field: 根据指定的字段值进行分组

返回参数说明:

hits.hits: 我们指定的size是0,所以hits.hits就是空,否则会返回聚合原始数据

aggregations:聚合结果

buckets:根据聚合条件返回的结果集

key: 每个bucket对应分组条件的值

doc_count:每个bucket分组内数据量

默认排序规则:安装doc_count 降序排列

Aggregation 的语法


例如:


2.java代码关于脚本解析(Painless 编程调试)

第一种使用自定义聚合脚本

Map<String, List<TimeDuration>> resMap = new HashMap<String, List<TimeDuration>>();String index = this.getIndex();SearchRequest searchRequest = new SearchRequest(index);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0);BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
TermQueryBuilder bdsIdQueryBuilder = QueryBuilders.termQuery("bdsId", bdsId);BoolQueryBuilder lessThanStartQueryBuilder = QueryBuilders.boolQuery();
RangeQueryBuilder faultStartLessThanStart = QueryBuilders.rangeQuery("faultStartTime").lte(start);
RangeQueryBuilder faultEndLessThanStart = QueryBuilders.rangeQuery("faultEndTime").lte(start);
lessThanStartQueryBuilder.must(faultStartLessThanStart);
lessThanStartQueryBuilder.must(faultEndLessThanStart);BoolQueryBuilder greatThanStartQueryBuilder = QueryBuilders.boolQuery();
RangeQueryBuilder faultStartGreatThanStart = QueryBuilders.rangeQuery("faultStartTime").gte(end);
RangeQueryBuilder faultEndGreatThanStart = QueryBuilders.rangeQuery("faultEndTime").gte(end);
greatThanStartQueryBuilder.must(faultStartGreatThanStart);
greatThanStartQueryBuilder.must(faultEndGreatThanStart);boolQueryBuilder.must(bdsIdQueryBuilder);
boolQueryBuilder.mustNot(lessThanStartQueryBuilder);
boolQueryBuilder.mustNot(greatThanStartQueryBuilder);searchSourceBuilder.query(boolQueryBuilder);//这里开始是脚本聚合,自定义脚本聚合可以互相交互
ScriptedMetricAggregationBuilder scriptedMetricAggregationBuilder = AggregationBuilders.scriptedMetric("fault_duration");//参数初始化
Map<String, Object> params = new HashMap<String, Object>();
params.put("now", now.getTime());
params.put("start", start.getTime());
params.put("end", end.getTime());//脚本初始化
Script initScript = ScriptUtil.getScriptBy(CABLEFAULT_SCRIPT_PATH, "init_script.js");
Script mapScript = ScriptUtil.getScriptBy(CABLEFAULT_SCRIPT_PATH, "map_script.js");
Script combineScript = ScriptUtil.getScriptBy(CABLEFAULT_SCRIPT_PATH, "combine_script.js");
Script reduceScript = ScriptUtil.getScriptBy(CABLEFAULT_SCRIPT_PATH, "reduce_script.js");
scriptedMetricAggregationBuilder.params(params);
scriptedMetricAggregationBuilder.initScript(initScript);
scriptedMetricAggregationBuilder.mapScript(mapScript);
scriptedMetricAggregationBuilder.combineScript(combineScript);
scriptedMetricAggregationBuilder.reduceScript(reduceScript);TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("group_by_cableid").field("cableId");
termsAggregationBuilder.subAggregation(scriptedMetricAggregationBuilder);
termsAggregationBuilder.size(ESPage.DEFAULT_ALL_PAGESIZE);
termsAggregationBuilder.minDocCount(0);searchSourceBuilder.aggregation(termsAggregationBuilder);ESPage.Builder builder = new ESPage.Builder(ESPage.DEFAULT_ALL_PAGESIZE).pageNo(0);
ESPage esPage = builder.build();
searchSourceBuilder.from(Long.valueOf(esPage.getFrom()).intValue());
searchSourceBuilder.size(0);searchRequest.source(searchSourceBuilder);
//执行发送 ES调用查询
SearchResponse searchResponse = this.restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
Aggregations aggs = searchResponse.getAggregations();

第二种混合调用

String index = this.getIndex();SearchRequest searchRequest = new SearchRequest(index);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0);BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
TermQueryBuilder bdsIdQueryBuilder = QueryBuilders.termQuery("bdsId", bdsId);
RangeQueryBuilder evaluateTimeQueryBuilder = QueryBuilders.rangeQuery("evaluateTime").gte(start).lte(end);
TermQueryBuilder evaluateTypeQueryBuilder = QueryBuilders.termQuery("evaluateType",String.valueOf(evaluateType.getValue()));
boolQueryBuilder.must(bdsIdQueryBuilder);
boolQueryBuilder.must(evaluateTimeQueryBuilder);
boolQueryBuilder.must(evaluateTypeQueryBuilder);searchSourceBuilder.query(boolQueryBuilder);TopHitsAggregationBuilder topHitsAggregationBuilder = AggregationBuilders.topHits("top_record");
topHitsAggregationBuilder.sort("createDate", SortOrder.ASC);
topHitsAggregationBuilder.size(CommonConstant.ES_MAX_TOP_HITS);Script filterScript=ScriptUtil.getScriptBy(HEALTH_PVLOSS_SCRIPT_PATH,"pv_filter_script.js");TermsAggregationBuilder groupByEvaluateTimeAggregationBuilder = AggregationBuilders.terms("group_by_bds_id_evaluate_time");
groupByEvaluateTimeAggregationBuilder.script(filterScript);//注意一下这里,与第一种方式调用不一样
groupByEvaluateTimeAggregationBuilder.subAggregation(topHitsAggregationBuilder);
groupByEvaluateTimeAggregationBuilder.size(CommonConstant.ES_MAX_PAGE_SIZE);
groupByEvaluateTimeAggregationBuilder.minDocCount(0);TermsAggregationBuilder groupByPvCodeAggregationBuilder = AggregationBuilders.terms("group_by_pvcode").field("pvCode");
groupByPvCodeAggregationBuilder.subAggregation(groupByEvaluateTimeAggregationBuilder);
groupByPvCodeAggregationBuilder.size(CommonConstant.ES_MAX_PAGE_SIZE);
groupByPvCodeAggregationBuilder.minDocCount(0);searchSourceBuilder.aggregation(groupByPvCodeAggregationBuilder);
ESPage.Builder builder = new ESPage.Builder(ESPage.DEFAULT_ALL_PAGESIZE).pageNo(0);
ESPage esPage = builder.build();searchSourceBuilder.size(0);searchRequest.indices(index);
searchRequest.source(searchSourceBuilder);SearchResponse searchResponse = this.restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
Aggregations aggs = searchResponse.getAggregations();

http://www.hrbkazy.com/news/43389.html

相关文章:

  • 响应网站先做电脑端网站优化排名工具
  • 江苏省职业建设注册管理中心网站成都seo外包
  • 上饶做网站多少钱数据分析网页
  • 广州专业做网站建设全球疫情最新数据统计
  • 做网站公司logo云南疫情最新消息
  • 安徽建设工程信息网实名制怎么解聘seo信息是什么
  • 搬家网站怎么做灰色行业怎么推广引流
  • 做网站设计师的感想推广营销方案
  • 中国十大新闻网站排名百度seoo优化软件
  • 做冰淇淋生意网站百度知道入口
  • 民治做网站哪家便宜微信公众号软文怎么写
  • 网站推广网络推广做百度线上推广
  • 厦门仿站定制模板建站官网排名优化
  • 六安门户网站建设哪家好简述seo的概念
  • 大型游戏网页游戏大全汤阴县seo快速排名有哪家好
  • 网站建设宣传视频教程百度提交入口
  • 网站建设 推广人员福州百度推广排名优化
  • 做网站在国外发图片全网营销公司排名前十
  • 武汉网站虚拟主机网络推广员上班靠谱吗
  • 数码印花图案设计网站网上商城网站开发
  • 东营 微信网站建设推广注册app拿佣金平台
  • 地产网网站优化推广seo公司
  • 网站源码 后台佛山做网站建设
  • 太和县住房和城乡建设局网站360建站官网
  • wordpress搜站点网络中断什么广告推广最有效果
  • 怎样免费给自己的公司做网站24小时网站建设
  • 国内最大的网站建设公司排名色盲眼镜
  • 网站恶意点击怎样优化网站关键词排名靠前
  • 利用access做网站色盲色弱测试
  • asp 网站路径泄露 解决新东方英语培训机构官网