国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot ElasticSearch 聚合排序

這篇具有很好參考價值的文章主要介紹了SpringBoot ElasticSearch 聚合排序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring Boot和Elasticsearch的集成主要涉及使用Spring Data Elasticsearch庫。Elasticsearch是一個分布式搜索引擎,它提供了豐富的RESTful API,用于索引、搜索和分析大量數(shù)據(jù)。
在Spring Boot中,你可以使用Spring Data Elasticsearch來簡化與Elasticsearch的交互。Spring Data Elasticsearch提供了對Elasticsearch的高級查詢、聚合和其他操作的支持。

聚合(Aggregation): 聚合是一種在Elasticsearch中進(jìn)行數(shù)據(jù)分析的方式。它允許你對數(shù)據(jù)集執(zhí)行各種統(tǒng)計、計算和分析操作。聚合框架支持的一些常見聚合類型包括:

BucketAggregations: 將文檔分配到不同的"桶"中,類似于SQL中的GROUP BY。常見的桶聚合包括terms、date histogram等。

MetricAggregations: 計算文檔字段的度量值,如求和、平均值、最大值、最小值等。

PipelineAggregations: 允許你在其他聚合的結(jié)果上執(zhí)行進(jìn)一步的操作,類似于數(shù)據(jù)流管道。

Spring Data Elasticsearch中的聚合支持: Spring Data Elasticsearch通過ElasticsearchTemplate或ElasticsearchRepository接口提供對Elasticsearch聚合的支持。你可以使用NativeSearchQueryBuilder構(gòu)建查詢,然后使用addAggregation方法添加各種聚合。文章來源地址http://www.zghlxwxcb.cn/news/detail-818788.html

import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.aggregations.metrics.ValueCountAggregationBuilder;
import org.elasticsearch.search.aggregations.pipeline.BucketHelpers;
import org.elasticsearch.search.aggregations.pipeline.BucketSortPipelineAggregationBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.jeecg.modules.mark.common.es.entity.AudioMarkInfo;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;

@SpringBootTest
public class ElasticSearchTest {

    @Autowired
    private ElasticsearchRestTemplate restTemplate;

    @Test
    public void count() {

        String indexName = "app_student_1";

        List<String> ids = new ArrayList<>();
        ids.add("1");
        ids.add("2");

        NativeSearchQueryBuilder query = new NativeSearchQueryBuilder();
        query.withQuery(QueryBuilders.termsQuery("id", ids));

        TermsAggregationBuilder group = AggregationBuilders.terms("group").field("id");

        // 計數(shù)
        ValueCountAggregationBuilder counts = AggregationBuilders.count("count").field("id");
        group.subAggregation(counts);

        // 統(tǒng)計字段排序
        group.subAggregation(new BucketSortPipelineAggregationBuilder("orderType",
                Collections.singletonList(new FieldSortBuilder("count").order(SortOrder.DESC)))
                .gapPolicy(BucketHelpers.GapPolicy.INSERT_ZEROS));

        SearchHits<AudioMarkInfo> search = restTemplate.search(query.build(), AudioMarkInfo.class,
                IndexCoordinates.of(indexName));

        Aggregations aggregations = search.getAggregations();

        ParsedStringTerms terms = aggregations.get("group");

        List<? extends Terms.Bucket> buckets = terms.getBuckets();

        for (Terms.Bucket bucket : buckets) {
            String id = bucket.getKeyAsString();
            long count = bucket.getDocCount();

            for (Aggregation list : bucket.getAggregations().asList()) {
                // TODO:
            }
        }

    }

}

到了這里,關(guān)于SpringBoot ElasticSearch 聚合排序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決Elasticsearch的Text類型的字段參與聚合和排序

    解決Elasticsearch的Text類型的字段參與聚合和排序

    text字段類型用于全文內(nèi)容,例如電子郵件正文或產(chǎn)品說明,并且es會通過分析器對字符串進(jìn)行分詞,可以在全文檢索中搜索單獨(dú)的單詞。文本字段最適合非結(jié)構(gòu)化但可讀的內(nèi)容并且不用于排序,也很少用于聚合 keyword主要用于結(jié)構(gòu)化內(nèi)容的字段,并且總是會有相同值的字段。

    2024年02月11日
    瀏覽(23)
  • Elasticsearch聚合學(xué)習(xí)之四:結(jié)果排序,阿里云java面試

    Elasticsearch聚合學(xué)習(xí)之四:結(jié)果排序,阿里云java面試

    返回結(jié)果如下,已經(jīng)按照key的大小從大到小排序: … “aggregations” : { “price” : { “buckets” : [ { “key” : 80000.0, “doc_count” : 1 }, { “key” : 60000.0, “doc_count” : 0 }, { “key” : 40000.0, “doc_count” : 0 }, { “key” : 20000.0, “doc_count” : 4 }, { “key” : 0.0, “doc_count” : 3 } ] } } }

    2024年04月09日
    瀏覽(24)
  • ElasticSearch(7.8版本)聚合查詢使用javaHighLevelRestClient實現(xiàn)(從MySQL聚合查詢概念->ES聚合概念及實操)

    申明:本文是在實現(xiàn)ES聚合功能中,將過程中查找的多篇博客文獻(xiàn)拼接在一起,參考到的博文全部在標(biāo)題中附上了原文的超鏈接,分享出來僅是為了提做一個筆記以防忘記,并給大家提供一個參考。 聚合操作指的是在數(shù)據(jù)查找基礎(chǔ)上對于數(shù)據(jù)進(jìn)一步整理篩選行為,聚合操作也

    2023年04月24日
    瀏覽(33)
  • elasticsearch[四]-數(shù)據(jù)聚合排序查詢、搜索框自動補(bǔ)全、數(shù)據(jù)同步、集群

    elasticsearch[四]-數(shù)據(jù)聚合排序查詢、搜索框自動補(bǔ)全、數(shù)據(jù)同步、集群

    **聚合(aggregations)**可以讓我們極其方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運(yùn)算。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價格、最高價格、最低價格? 這些手機(jī)每月的銷售情況如何? 實現(xiàn)這些統(tǒng)計功能的比數(shù)據(jù)庫的 sql 要方便的多,而且查詢速度非???,可以實現(xiàn)近

    2024年01月19日
    瀏覽(18)
  • ES度量聚合(ElasticSearch Metric Aggregations),Java開發(fā)自學(xué)教程

    ES度量聚合(ElasticSearch Metric Aggregations),Java開發(fā)自學(xué)教程

    .value( (new MultiValuesSourceFieldConfig.Builder()) .setFieldName(“num”) .setMissing(0) .build() ) .weight( (new MultiValuesSourceFieldConfig.Builder()) .setFieldName(“num”) .setMissing(1) .build() ) // .valueType(ValueType.LONG) ; avg.toString(); sourceBuilder.aggregation(avg); sourceBuilder.size(0); sourceBuilder.query( QueryBuilders.termQuery(“

    2024年04月14日
    瀏覽(26)
  • elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補(bǔ)全,數(shù)據(jù)同步,ES集群)

    elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補(bǔ)全,數(shù)據(jù)同步,ES集群)

    **聚合(aggregations)**可以讓我們極其方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運(yùn)算。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價格、最高價格、最低價格? 這些手機(jī)每月的銷售情況如何? 實現(xiàn)這些統(tǒng)計功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非??欤梢詫崿F(xiàn)近

    2024年02月08日
    瀏覽(36)
  • SpringBoot ES 聚合后多字段加減乘除

    在SpringData Elasticsearch中,聚合統(tǒng)計的原理主要依賴于Elasticsearch本身的聚合框架。Elasticsearch提供了強(qiáng)大的聚合功能,使得你可以對文檔進(jìn)行各種計算和統(tǒng)計,從而得到有關(guān)數(shù)據(jù)集的有用信息。 Elasticsearch的聚合(Aggregation)是一種強(qiáng)大的數(shù)據(jù)分析和統(tǒng)計工具,它允許你對文檔集

    2024年01月21日
    瀏覽(15)
  • SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢)

    章節(jié) 第一章鏈接: SpringBoot集成Elasticsearch7.x(1)|(增刪改查功能實現(xiàn)) 第二章鏈接: SpringBoot集成Elasticsearch7.x(2)|(復(fù)雜查詢) 第三章鏈接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢) 第四章鏈接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合查詢)

    2024年02月05日
    瀏覽(22)
  • 【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗?,ES倒排索引介紹

    【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗?,ES倒排索引介紹

    termQuery matchQuery 模糊查詢 multiMatchQuery 多個字段模糊查詢 如果時間字段寫入時用的類型是Text,可以用“時間字段.keyword”來處理 #查詢前傳入分頁參數(shù) #分頁后拿到總記錄數(shù) 把文檔D對應(yīng)到的映射轉(zhuǎn)換為到文檔ID的映射,每個都對應(yīng)著一系列的文檔,這些文

    2024年02月15日
    瀏覽(126)
  • ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.unit.

    2024年04月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包