<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Diversified Sampler Aggregation 原文鏈接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-diversified-sampler-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-diversified-sampler-aggregation.html) 譯文鏈接 : [http://www.apache.wiki/display/Elasticsearch](http://www.apache.wiki/display/Elasticsearch)(修改該鏈接為 **ApacheCN** 對應的譯文鏈接) 貢獻者 : @于永超,[ApacheCN](/display/~apachecn),[Apache中文網](/display/~apachechina) ## Significant Terms Aggregation 在集合中返回有趣或不尋常的術語的聚合。 這個功能是實驗性的,可以在未來的版本中完全改變或刪除。?Elastic 將采取最大的努力來解決任何問題,但實驗功能不受SLA官方GA特性的支持。 像“sampler”聚合一樣,這是一個過濾聚合,用于將任何子聚合的處理限制為最高評分文檔的樣本。diversified_sampler聚合增加了限制共享一個值的匹配數量的能力,例如“author”。 任何好的市場研究人員都會告訴你,在使用數據樣本時,重要的是樣本表示健康的意見,而不是任何單一的聲音。 聚合和采樣同樣如此,通過這些多樣化設置可以提供一種方法來消除您內容中的偏見(人口過多的地理位置,時間軸上的大量峰值或過多的垃圾郵件發送者)。 ## Example use cases: * 將分析的重點放在高度相關性匹配上,而不是低質量的長尾詞的匹配上 * 通過確保來自不同來源的內容的公平表示來消除分析中的偏見 * Reducing the running cost of aggregations that can produce useful results using only samples e.g.?`significant_terms` `field或script設置的選擇用于提供用于重復數據刪除的值,而max_docs_per_value設置控制在任何共享一個公共值的shard上所收集的文檔的最大數量。max_docs_per_value的默認設置為1` 如果字段或腳本的選擇為單個文檔生成多個值,則聚合將拋出錯誤(由于效率問題,不支持使用多值字段的重復數據刪除)。 例子: 我們可能會想看看哪些標簽在StackOverflow論壇上有很強的關聯,但忽略了一些多數用戶的拼寫錯誤, 他們傾向把#Kibana誤拼寫為#Cabana。 ``` POST /stackoverflow/_search?size=0 { "query": { "query_string": { "query": "tags:elasticsearch" } }, "aggs": { "my_unbiased_sample": { "diversified_sampler": { "shard_size": 200, "field" : "author" }, "aggs": { "keywords": { "significant_terms": { "field": "tags", "exclude": ["elasticsearch"] } } } } } } ``` 返回: ``` { ... "aggregations": { "my_unbiased_sample": { "doc_count": 1000, #1 "keywords": { #2 "doc_count": 1000, "buckets": [ { "key": "kibana", "doc_count": 150, "score": 2.213, "bg_count": 200 } ] } } } } ``` #1?因為我們從5個碎片的索引中詢問了最多200個文件,所以共采集了1000份文件。 因此,執行嵌套的significant_terms聚合的成本是有限的,而不是無限制的。 #2?significant_terms聚合結果不會被任何一個作者的怪癖所扭曲,因為我們在我們的示例中要求從任何一個作者那里獲得最多的一個帖子 ### Scripted example: 在這種情況下,我們可能希望將字段值的組合多樣化。我們可以使用一個script來產生一個標簽字段中的多個值的散列,以確保我們沒有由相同的重復標簽組合組成的樣本。 ``` POST /stackoverflow/_search?size=0 { "query": { "query_string": { "query": "tags:kibana" } }, "aggs": { "my_unbiased_sample": { "diversified_sampler": { "shard_size": 200, "max_docs_per_value" : 3, "script" : { "lang": "painless", "inline": "doc['tags'].values.hashCode()" } }, "aggs": { "keywords": { "significant_terms": { "field": "tags", "exclude": ["kibana"] } } } } } } ``` 結果: ``` { ... "aggregations": { "my_unbiased_sample": { "doc_count": 1000, "keywords": { "doc_count": 1000, "buckets": [ { "key": "logstash", "doc_count": 3, "score": 2.213, "bg_count": 50 }, { "key": "elasticsearch", "doc_count": 3, "score": 1.34, "bg_count": 200 }, ] } } } } ``` ### shard_size shard_size參數限制在每個分片處理的樣本中收集的頂級評分文檔數量。 默認值為100。 ### max_docs_per_value max_docs_per_value是一個可選參數,并限制每個選擇de-duplicating值允許的文檔數量。 默認設置為“1”。 ### execution_hint 可選的execution_hint設置可以影響用于de-duplication的管理,每個選項在執行de-duplication時都會保持內存中的shard_size值,但是可以如下控制持有的值的類型: * 直接保存字段值(map) * 根據Lucene索引(global_ordinals)確定字段的序名 * 保持字段值的哈希值 - 具有哈希沖突的可能性(bytes_hash) 默認設置是使用global_ordinals,如果該信息可以從Lucene索引中獲得,并返回到map。在某些情況下,bytes_hash設置可能會更快一些,但由于哈希沖突的可能性,引入了de-duplication邏輯中的錯誤肯定的可能性。?請注意,Elasticsearch將忽略執行提示的選擇,如果不適用,并且這些提示沒有向后兼容性保證。 ### Limitations #### Cannot be nested under?`breadth_first`?aggregations 作為基于質量的過濾器,diversified_sampler聚合需要訪問為每個文檔生成的相關性分數。因此,它不能嵌套在將默認depth_first模式切換到breadth_first的collect_mode的條件聚合,因為這丟棄了分數。 在這種情況下,將會拋出一個錯誤。 #### Limited de-dup logic. de-duplication邏輯只適用于shard級別,因此不適用于across shards. #### No specialized syntax for geo/date fields 目前用于定義多樣化值的語法由field或script的選擇來定義-沒有添加語法糖來表達地理或日期單位,如“7d”(7天)。這種支持可能會在稍后的版本中添加,用戶現在需要使用script創建這些類型的值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看