即時推送文檔格式
[
{
"cmd": "add",
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body",
"tags" : [1, 2, 3]
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]召回引擎版的文檔包括cmd和fields兩個部分,這兩個欄位都是必選欄位:
cmd:文檔的更新方式。
add:添加一篇文檔,如果文檔已經存在會先刪除然後再添加。
delete:刪除一篇文檔,刪除文檔時需要指定文檔主鍵,如果索引構建時採用多級hash方式,需要指定每級hash的主鍵。
fields:文檔包含的欄位,fields中必須指定主鍵欄位,多重值欄位是一個arrary類型,需要使用JsonArray來處理,如[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “ADD”}]。
召回引擎版提供了資料推送的SDK。
全量文檔格式
召回引擎版目前只支援MaxCompute全量資料來源,schema中配置的欄位名要和MaxCompute中的欄位名相同。對於多重值欄位,在MaxCompute中的內容需要使用多值分隔字元'\x1D' ('^]')進行分割。MaxCompute中的資料不需要執行cmd,全量時預設全部都是add。
注意事項
召回引擎版有些內建的字元請不要在文檔中使用,內建的字元如下表所示:
編碼 | (emacs/vi)中的顯示形態 | emacs中輸入方法 | vi中輸入方法 |
"\x1E\n" | ^^(接換行) | C-q C-6 | C-v C-6 |
"\x1F\n" | ^_(接換行) | C-q C-7 | C-v C-7 |
"\x1D" | ^] | C-q C-5 | C-v C-5 |
"\x1C" | ^\ | C-q C-4 | C-v C-4 |
"\x03" | ^C | C-q C-c | C-v C-c |
即時推送時資料中不要出現多值分割符'\x1D' ('^]')。
TEXT類型的欄位中不要出現多值分隔字元'\x1D' ('^]')。