簡體   English   中英

由 JsonQuery 計算的百分位數並不總是相同

[英]Percentile calculated By JsonQuery is not always same

對於滿足過濾器查詢中搜索條件的 1000 多條記錄,solr 集合每次都會給出不同的百分位值。 我一直在使用相同的過濾器查詢並使用 json 方面查詢來獲取一個查詢方面內的百分位數。

示例查詢:`

json.facet = {
    time: "sum(time)",
    users: "sum(numofusers)",
    queryfacet: {
        q: "time: [0 TO 50000}",
        type: query,
        facet: {
            timepercentile: "percentile(time, 95)"
        }
    }
}

`

percentile function 是一個近似值,不是精確值。 它記錄在統計功能下:

百分位數

基於參數值指定的分界點的百分位數列表,例如 1,99,99.9。 這些值是使用 t-digest 算法的近似值。 此統計信息是針對數字字段類型計算的,默認情況下不計算。

JSON Facet API中的percentile function使用相同的方法:

通過 t-digest 算法進行百分位數估計。 按此指標排序時,列出的第一個百分位用作排序值。

您可以在 GitHub 存儲庫中閱讀有關 t-digest 算法的更多信息

由於這些值是基於估計的,所以我猜元素被采樣時會有一些小的差異; 它還可能取決於索引的結構(節點數、更新時間、提交提交時間等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM