修复: 明细维度聚合跳过空值/0, 避免同adping多文档时误取空campaign_id/account
This commit is contained in:
@@ -131,15 +131,22 @@ PAYIN_SRC="try{return Double.parseDouble(doc['advertiser_payin.keyword'].value)}
|
||||
PRICE_SRC="try{return Double.parseDouble(doc['deliver_price.keyword'].value)}catch(Exception e){return 0.0}"
|
||||
|
||||
def dims_aggs():
|
||||
# size 调大,避免同一 adping_id 下混有空值时取到空;取值时在 first() 里跳过空
|
||||
return {
|
||||
'rc':{'terms':{'field':'routing_campaign_id.keyword','size':1}},
|
||||
'cid':{'terms':{'field':'campaign_id.keyword','size':1}},
|
||||
'sc':{'terms':{'field':'second_channel.keyword','size':1}},
|
||||
'acc':{'terms':{'field':'advertiser_account_id','size':1}},
|
||||
'pkg':{'terms':{'field':'pkg_name.keyword','size':1}},
|
||||
'rc':{'terms':{'field':'routing_campaign_id.keyword','size':10}},
|
||||
'cid':{'terms':{'field':'campaign_id.keyword','size':10}},
|
||||
'sc':{'terms':{'field':'second_channel.keyword','size':10}},
|
||||
'acc':{'terms':{'field':'advertiser_account_id','size':10}},
|
||||
'pkg':{'terms':{'field':'pkg_name.keyword','size':10}},
|
||||
}
|
||||
def first(agg_obj):
|
||||
# 返回第一个"有意义"的值:跳过空串、0、'0'(这些是缺失/占位)
|
||||
b=agg_obj.get('buckets',[])
|
||||
for x in b:
|
||||
k=x.get('key')
|
||||
if k not in ('',None,0,'0'):
|
||||
return k
|
||||
# 全是空值时,退回第一个原始值(保持原样,不强造)
|
||||
return b[0]['key'] if b else ''
|
||||
|
||||
# click表: 按 adping_id -> clicks(计数) + 维度(优先来源)
|
||||
|
||||
Reference in New Issue
Block a user