修复: 明细维度聚合跳过空值/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}"
|
PRICE_SRC="try{return Double.parseDouble(doc['deliver_price.keyword'].value)}catch(Exception e){return 0.0}"
|
||||||
|
|
||||||
def dims_aggs():
|
def dims_aggs():
|
||||||
|
# size 调大,避免同一 adping_id 下混有空值时取到空;取值时在 first() 里跳过空
|
||||||
return {
|
return {
|
||||||
'rc':{'terms':{'field':'routing_campaign_id.keyword','size':1}},
|
'rc':{'terms':{'field':'routing_campaign_id.keyword','size':10}},
|
||||||
'cid':{'terms':{'field':'campaign_id.keyword','size':1}},
|
'cid':{'terms':{'field':'campaign_id.keyword','size':10}},
|
||||||
'sc':{'terms':{'field':'second_channel.keyword','size':1}},
|
'sc':{'terms':{'field':'second_channel.keyword','size':10}},
|
||||||
'acc':{'terms':{'field':'advertiser_account_id','size':1}},
|
'acc':{'terms':{'field':'advertiser_account_id','size':10}},
|
||||||
'pkg':{'terms':{'field':'pkg_name.keyword','size':1}},
|
'pkg':{'terms':{'field':'pkg_name.keyword','size':10}},
|
||||||
}
|
}
|
||||||
def first(agg_obj):
|
def first(agg_obj):
|
||||||
|
# 返回第一个"有意义"的值:跳过空串、0、'0'(这些是缺失/占位)
|
||||||
b=agg_obj.get('buckets',[])
|
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 ''
|
return b[0]['key'] if b else ''
|
||||||
|
|
||||||
# click表: 按 adping_id -> clicks(计数) + 维度(优先来源)
|
# click表: 按 adping_id -> clicks(计数) + 维度(优先来源)
|
||||||
|
|||||||
Reference in New Issue
Block a user