[英]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.