日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作

發布時間:2023/12/13 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[數據庫]es~通過ElasticsearchTemplate進行聚合操作

0

2020-08-24 17:00:38

聚合操作,我們可以對數據進行分組的求和,求數,最大值,最小值,或者其它的自定義的統計功能,es對聚合有著不錯的支持,需要注意的是,在對某字段進行聚合之后,需要開啟這個字段的fielddata我,或者會出現如下錯誤:Fielddata is disabled on text fields by default.

通過postman等工作像es api發送請求,可以將字段的這個特性打開.PUT /esdto/esdto/_mapping{ "properties": { "sex": { "type": "text", "fielddata": true } }}

使用ElasticsearchTemplate對sex字段進行聚合// 創建一個查詢條件對象 BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); // 拼接查詢條件 queryBuilder.should(QueryBuilders.termQuery("creator", "1")); // 創建聚合查詢條件 TermsAggregationBuilder agg = AggregationBuilders.terms("sex").field("sex.keyword");//keyword表示不使用分詞進行聚合 // 創建查詢對象 SearchQuery build = new NativeSearchQueryBuilder() .withQuery(queryBuilder) //添加查詢條件 .addAggregation(agg) // 添加聚合條件 .withPageable(PageRequest.of(0, 10)) //符合查詢條件的文檔分頁(不是聚合的分頁) .build(); // 執行查詢 AggregatedPage testEntities = elasticsearchTemplate.queryForPage(build, TestEsDto.class); // 取出聚合結果 Aggregations entitiesAggregations = testEntities.getAggregations(); Terms terms = (Terms) entitiesAggregations.asMap().get("sex"); // 遍歷取出聚合字段列的值,與對應的數量 for (Terms.Bucket bucket : terms.getBuckets()) { String keyAsString = bucket.getKeyAsString(); // 聚合字段列的值 long docCount = bucket.getDocCount();// 聚合字段對應的數量 log.info("keyAsString={},value={}", keyAsString, docCount); }

本文網址:http://www.shaoqun.com/a/466734.html

*特別聲明:以上內容來自于網絡收集,著作權屬原作者所有,如有侵權,請聯系我們:admin@shaoqun.com。

0

總結

以上是生活随笔為你收集整理的estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。