算子功能詳解
Trigger組件
“Trigger組件”是“Recall召回”組件的前置組件,獲取召回表的trigger,只能存在一個同類型組件。
點擊“+”選擇新增算子類型
選擇trigger表
KV類型trigger表的trigger字段為STRING類型的非主鍵字段(非pk字段)。
KKV類型trigger表的trigger字段默認為右鍵字段(sk字段),新增“加權(quán)字段”,選擇Trigger表中的其他屬性字段(非STRING和非RAW類型),字段內(nèi)容可作為后續(xù)召回排序的加權(quán)分使用。
Recall召回
召回算子,唯一,且不可刪除。
支持召回表類型:KV/KKV/INDEX/EMBEDDING。
可返回召回表的所有字段。
Join關(guān)聯(lián)
關(guān)聯(lián)字段:Recall組件返回字段,與關(guān)聯(lián)表的主鍵(pkey)字段類型相同。在歸并同級算子時,可用做所有鏈路數(shù)據(jù)集合去重的字段。
關(guān)聯(lián)表:支持kv/kkv/index(倒排索引)類型表。
關(guān)聯(lián)類型:inner/outer,默認值為inner。
返回字段:關(guān)聯(lián)表中所有字段,可用于后續(xù)排序或者展示使用。
Filter過濾
過濾類型:表達式/數(shù)據(jù)表,其中數(shù)據(jù)表過濾僅支持KKV類型表。
差級表:如果過濾時需要額外排出部分數(shù)據(jù),可以設(shè)置差級表,存在差級表中的數(shù)據(jù)可不被過濾。舉例 說明:過濾表為曝光數(shù)據(jù),差級表可設(shè)置點擊數(shù)據(jù),可過濾掉沒有被點擊的曝光數(shù)據(jù)。
trigger參數(shù):默認值 user_id。
召回過濾字段:召回表字段內(nèi)容與過濾表中的字段內(nèi)容相同時,該條記錄將被過濾丟棄。
表達式:支持運算符 >、<、=、!=、>=、<=、AND、OR、in()、notin()、contain()、notcontain()。示例如下:
1) >
例:item_id>1
2) <
例:item_id<12398063478
3) =
String類型:item_set_id="crm_5233"
int類型: item_id=12398063478
4) !=
String類型:item_set_id!="crm_5233"
int類型: item_id!=12398063478
5) >=
例:item_id>=12398063478
6) <=
例:item_id<=12398063478
7) AND
兩個表達式中間加AND,AND前后需要空格
例:item_id=12398063478 AND item_id<=12398063479
8) OR
兩個表達式中間加OR,OR前后需要空格
例:item_id>12398063478 OR item_id<12398063478
9) in()
僅支持單值字段
例:in(item_id, "12398063478|12398063479|12398063480")
10) notin()
僅支持單值字段
例:notin(item_id, "12398063478|12398063479|12398063480")
11) contain()
僅支持多值字段
例:contain(tags, "tagA|tagB|tagC")
”|“表示or,即只需tags包含tagA、tagB、tagC中的至少一個值
12) notcontain()
僅支持多值字段
例:notcontain(tags, "tagA|tagB|tagC")
”|“表示and,即需要tags不包含tagA、tagB、tagC中的任意一個
13) 表達式組合示例:
AND優(yōu)先級高于OR,表達式中可以加()
例:item_id>12398063478 OR item_id<12398063478 AND item_set_id!="crm_5233" OR item_id!=12398063477
例:(item_id<=12398063478 OR item_id>=12398063478) AND item_id<=12398063478 AND item_id>=12398063478
例:(item_id<=12398063478 OR item_id>=12398063478) AND item_id<=12398063478 AND item_id>=12398063478 AND in(item_id, "12398063478|12398063479|12398063480")
表達式參數(shù):默認值 expose_filter_rule。
Score算分
表達式:自定義,可配置多個參數(shù)進行計算做排序。支持運算符 +、-、*、/、pow()。示例如下:
例:field1*field2+0.6, field1/field2+1, field1+field2-1.6, pow(field1, field2)
注意:表達式中的參數(shù)field1,field2 需要是一致的數(shù)值類型,否則需要使用轉(zhuǎn)換函數(shù)來統(tǒng)一類型,比如:
1)若field1為float類型,field2為double類型,則可以修改為:field1*float(field2)+0.6
2) 若field1為double類型,field2為float類型,則可以修改為:float(field1)*field2+0.6
3) 若field為float或double類型,想要轉(zhuǎn)換為整型時可以使用int32(field)或者int64(field),整型變量需要配合整型常量使用,比如int32(field)+1是可以的, 但int32(field)+1.2是不可以的
4) string類型不可以強制轉(zhuǎn)換為數(shù)值類型
score字段:新增返回字段,字段值為上述表達式的計算結(jié)果,可用于后續(xù)算子使用。可自定義字段名,注意不能和已有字段重復。
Sorter排序
排序字段:單選,Recall 組件返回字段 + 前面所有Join組件返回字段 + 前面所有Score 組件的score字段。
去重字段:單選,Recall 組件返回字段 + 前面所有Join組件返回字段。
插件參數(shù):設(shè)置Sorter排序標識,可通過Query params設(shè)定一致的標識內(nèi)容,進行不同的排序邏輯。