最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

elasticsearch bucket 之rare terms聚合使用詳解

 更新時間:2022年11月23日 15:51:58   作者:huan1993  
這篇文章主要為大家介紹了elasticsearch bucket 之rare terms聚合使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1、背景

我們知道當我們使用 terms聚合時,當修改默認順序為_count asc時,統(tǒng)計的結(jié)果是不準備的,而且官方也不推薦我們這樣做,而是推薦使用rare terms聚合。rare terms是一個稀少的term聚合,可以一定程度的解決升序問題。

2、需求

統(tǒng)計province字段中包含上和湖的term數(shù)據(jù),并且最多只能出現(xiàn)2次。獲取到聚合后的結(jié)果。

3、前置準備

3.1 準備mapping

PUT /index_person
{
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {
      "id": {
        "type": "long"
      },
      "name": {
        "type": "keyword"
      },
      "province": {
        "type": "keyword"
      },
      "sex": {
        "type": "keyword"
      },
      "age": {
        "type": "integer"
      },
      "pipeline_province_sex":{
        "type": "keyword"
      },
      "address": {
        "type": "text",
        "analyzer": "ik_max_word",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    }
  }
}

3.2 準備數(shù)據(jù)

PUT /_bulk
{"create":{"_index":"index_person","_id":1}}
{"id":1,"name":"張三","sex":"男","age":20,"province":"湖北","address":"湖北省黃岡市羅田縣匡河鎮(zhèn)"}
{"create":{"_index":"index_person","_id":2}}
{"id":2,"name":"李四","sex":"男","age":19,"province":"江蘇","address":"江蘇省南京市"}
{"create":{"_index":"index_person","_id":3}}
{"id":3,"name":"王武","sex":"女","age":25,"province":"湖北","address":"湖北省武漢市江漢區(qū)"}
{"create":{"_index":"index_person","_id":4}}
{"id":4,"name":"趙六","sex":"女","age":30,"province":"北京","address":"北京市東城區(qū)"}
{"create":{"_index":"index_person","_id":5}}
{"id":5,"name":"錢七","sex":"女","age":16,"province":"北京","address":"北京市西城區(qū)"}
{"create":{"_index":"index_person","_id":6}}
{"id":6,"name":"王八","sex":"女","age":45,"province":"北京","address":"北京市朝陽區(qū)"}
{"create":{"_index":"index_person","_id":7}}
{"id":7,"name":"九哥","sex":"男","age":25,"province":"上海市","address":"上海市嘉定區(qū)"}

4、實現(xiàn)需求

4.1 dsl

GET /index_person/_search
{
  "size": 0,
  "aggs": {
    "agg_province": {
      "rare_terms": {
        "field": "province",
        "max_doc_count": 2,
        "precision": 0.01,
        "include": "(.*上.*|.*湖.*|.*江.*)",
        "exclude": ["江蘇"],
        "missing": "default省"
      }
    }
  }
}

4.2 java代碼

@Test
@DisplayName("稀少的term聚合,類似按照 _count asc 排序的terms聚合,但是terms聚合中按照_count asc的結(jié)果是不準的,需要使用 rare terms 聚合")
public void agg01() throws IOException {
    SearchRequest searchRequest = new SearchRequest.Builder()
            .size(0)
            .index("index_person")
            .aggregations("agg_province", agg ->
                    agg.rareTerms(rare ->
                            // 稀有詞 的字段
                            rare.field("province")
                                    // 該稀有詞最多可以出現(xiàn)在幾個文檔中,最大值為100,如果要調(diào)整,需要修改search.max_buckets參數(shù)的值(嘗試修改這個值,不生效)
                                    // 在該例子中,只要是出現(xiàn)的次數(shù)<=2的聚合都會返回
                                    .maxDocCount(2L)
                                    // 內(nèi)部布谷鳥過濾器的精度,精度越小越準,但是相應的消耗內(nèi)存也越多,最小值為 0.00001,默認值為 0.01
                                    .precision(0.01)
                                    // 應該包含在聚合的term, 當是單個字段是,可以寫正則表達式
                                    .include(include -> include.regexp("(.*上.*|.*湖.*|.*江.*)"))
                                    // 排出在聚合中的term,當是集合時,需要寫準確的值
                                    .exclude(exclude -> exclude.terms(Collections.singletonList("江蘇")))
                                    // 當文檔中缺失province字段時,給默認值
                                    .missing("default省")
                    )
            )
            .build();
    System.out.println(searchRequest);
    SearchResponse<Object> response = client.search(searchRequest, Object.class);
    System.out.println(response);
}

一些注意事項都在注釋中。

4.3 運行結(jié)果

5、max_doc_count 和 search.max_buckets

6、注意事項

  • rare terms統(tǒng)計返回的數(shù)據(jù)沒有大小限制,而且受max_doc_count參數(shù)的限制,比如:如果復合 max_doc_count 的分組有60個,那么這60個分組會直接返回。
  • max_doc_count的值最大為100,貌似不能修改。
  • 如果一臺節(jié)點聚合收集的結(jié)果過多,那么很容易超過 search.max_buckets的值,此時就需要修改這個值。
# 臨時修改
PUT /_cluster/settings
{"transient": {"search.max_buckets": 65536}}
# 永久修改
PUT /_cluster/settings
{"persistent": {"search.max_buckets": 65536}}

完整代碼

gitee.com/huan1993/sp…

參考文檔

www.elastic.co/guide/en/el…

以上就是elasticsearch bucket 之rare terms聚合使用詳解的詳細內(nèi)容,更多關(guān)于elasticsearch bucket rare terms的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • spring 整合 mybatis 中數(shù)據(jù)源的幾種配置方式(總結(jié)篇)

    spring 整合 mybatis 中數(shù)據(jù)源的幾種配置方式(總結(jié)篇)

    因為spring 整合mybatis的過程中, 有好幾種整合方式,尤其是數(shù)據(jù)源那塊,經(jīng)??吹讲灰粯拥呐渲梅绞?,總感覺有點亂,所以今天有空總結(jié)下,感興趣的朋友跟隨腳本之家小編一起學習吧
    2018-05-05
  • Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析

    Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析

    這篇文章主要介紹了Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • JAVA如何獲取工程下的文件

    JAVA如何獲取工程下的文件

    這篇文章主要介紹了JAVA如何獲取工程下的文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 深入了解java8的foreach循環(huán)

    深入了解java8的foreach循環(huán)

    雖然java8出來很久了,但是之前用的一直也不多,最近正好學習了java8。下面給大家分享java8中的foreach循環(huán),感興趣的朋友一起看看吧
    2017-05-05
  • Spring Boot創(chuàng)建非可執(zhí)行jar包的實例教程

    Spring Boot創(chuàng)建非可執(zhí)行jar包的實例教程

    這篇文章主要介紹了Spring Boot創(chuàng)建非可執(zhí)行jar包的實例教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程

    Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程

    這篇文章主要介紹了Springboot+Flowable?快速實現(xiàn)工作流的開發(fā)流程,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Java中方法的重載與重寫舉例比較

    Java中方法的重載與重寫舉例比較

    這篇文章主要給大家介紹了關(guān)于Java中方法的重載與重寫的相關(guān)資料,Java中的方法重載和重寫是面向?qū)ο缶幊讨械膬蓚€重要概念,文中介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • SpringCloud?Alibaba環(huán)境集成之nacos詳解

    SpringCloud?Alibaba環(huán)境集成之nacos詳解

    Spring?Cloud?Alibaba提供了越來越完善的各類微服務(wù)治理組件,比如分布式服務(wù)配置與注冊中心nacos,服務(wù)限流、熔斷組件sentinel等,本篇先來介紹SpringCloud?Alibaba環(huán)境集成之nacos詳解,需要的朋友可以參考下
    2023-03-03
  • 詳解在java中進行日期時間比較的4種方法

    詳解在java中進行日期時間比較的4種方法

    這篇文章主要介紹了詳解在java中進行日期時間比較的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java實現(xiàn)無損Word轉(zhuǎn)PDF的示例代碼

    Java實現(xiàn)無損Word轉(zhuǎn)PDF的示例代碼

    本文將利用Java中的兩個jar包:pdfbox和aspose-words實現(xiàn)無損Word轉(zhuǎn)PDF功能,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-06-06

最新評論

东丽区| 长汀县| 读书| 黎城县| 普兰县| 张掖市| 新干县| 平舆县| 临沧市| 土默特右旗| 城步| 老河口市| 文安县| 三原县| 申扎县| 天镇县| 泰和县| 呼伦贝尔市| 博兴县| 梁河县| 苍溪县| 金阳县| 锡林郭勒盟| 确山县| 许昌市| 高雄市| 星座| 达日县| 玛曲县| 大冶市| 柯坪县| 丹棱县| 金平| 弥勒县| 塔河县| 临沂市| 施甸县| 贺州市| 琼结县| 伽师县| 蒙城县|