全部產品
Search
文件中心

OpenSearch:OSS + API 資料來源

更新時間:Jun 06, 2026

本文介紹添加表選擇Object Storage Service+API為資料來源時的操作步驟。

添加OSS+API資料來源,需要以下兩步:

  1. 開通OSS服務

  2. OSS+API資料來源添加


步驟一:開通OSS服務

1. 開通OSS服務

開通的OSS服務,需要和已購買的OpenSearch服務是同一帳號、相同地區。

在 OSS 資源套件購買頁面,將商品類型設定為OSS 資源套件,根據業務需要選擇資源套件類型(如標準 - 同城冗餘儲存),並選擇對應的地區(如中國內地通用)。

重要
  • OSS服務需要和已購買的OpenSearch服務是同一帳號、相同地區,否則會出現鑒權失敗的情況。

  • 執行新增OSS資料來源操作時,將會自動建立一個服務關聯角色(如已經建立,則不會重複建立)AliyunServiceRoleForSearchEngine,OpenSearch使用此角色來訪問您在其他雲產品中的資源以完成相應功能。

2. 建立Bucket

在上傳檔案到OSS之前,您需要建立一個用於隱藏檔的儲存空間Bucket,可以參考建立儲存空間瞭解。

路徑:Object Storage Service 管理主控台 → Bucket列表 → 建立 Bucket

說明
  • 召回引擎版不支援無地區屬性的OSS的bucket。

進入已建立的Bucket內,添加OpenSearch標籤。

路徑:Bucket配置 → Bucket 標籤 → 建立標籤

標籤的鍵(Key)和值(Value)均設定為 opensearch

3. OSS檔案格式設定

a. OSS檔案格式

為了使傳輸的檔案能夠被用於索引構建的資料來源,請確保:

  • 檔案採用UTF-8編碼。

  • 檔案資料格式轉化為HA3格式或JSON格式。

ⅰ. JSON格式設定

多條記錄樣本,參考以下樣本:

{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "華為 Mate 9 麒麟960晶片 徠卡雙鏡頭", "color": "紅", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei/華為 P10 Plus全網通手機", "color": "藍", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "color藍", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}

說明:

  • JSON欄位的類型都是string,引擎建索引的時候,會根據schema轉換為欄位指定的類型。

  • '\n'表示分行符號,單條記錄不能有分行符號,

ⅱ. HA3格式設定
  1. 首先看一個完整的資料檔案standard_sample.data的內容。

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里雲計算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里雲計算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_
  1. 檔案分隔字元定義:可以看到上面的資料檔案中總共有兩個命令,分別是add、delete。每個命令由多行組成,每行都是一個key-value對。 命令與命令之間用'^^\n'分隔,每一對key-value之間以'^_\n'分隔,多值之間以'^]'分隔,以下是檔案分隔字元介紹。

C++編碼

ASCII

16進位

描述

(emacs/vi)中的顯示形態

emacs中輸入方法

vi中輸入方法

"\x1F\n"

1F0A

key value分隔字元

^_(接換行)

C-q C-7

C-v C-7

"\x1E\n"

1E0A

命令分隔字元

^^(接換行)

C-q C-6

C-v C-6

"\x1D"

1D

multi value 分隔字元

^]

C-q C-5

C-v C-5

"\x1C"

1C

section weight標誌符

^\

C-q C-4

C-v C-4

"\x1D"

1D

section 分隔字元

^]

C-q C-5

C-v C-5

"\x03"

03

sub doc 欄位分隔符號

^C

C-q C-c

C-v C-c

  1. 命令格式定義:Add command formatadd命令表示往索引中增加新的內容,add命令第一行必須為CMD=add,後面是該文檔的field,field順序可以與schema中fields順序一致,所有出現的field必須是fields中指定的。

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里雲計算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里雲計算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
  1. Delete command format delete命令表示從索引中刪除指定的內容。delete命令第一"行"必須為CMD=delete,接下來的"行"為index schema中定義屬性為primary key 的field,以及用於partition hash的field,如果兩個field相同,則只需要出現一個field。

CMD=delete^_
PK=12345321^_
^^CMD=delete^_
PK=12345321^_
^^

b. 上傳檔案到Bucket

返回到新建立的Bucket控制頁,在左側導覽列找到檔案管理 → 檔案清單 → 上傳檔案

待上傳檔案 項中選擇掃描檔案的方式,勾選好上傳的內容,再點擊 上傳檔案 ,完成檔案的上傳。

在右側彈出的工作清單面板中,確認檔案狀態顯示為上傳成功

步驟二:OSS+API資料來源添加

購買執行個體:可參考購買OpenSearch召回引擎版執行個體瞭解。

1. 表基礎資訊

執行個體列表 中找到已購買的召回引擎版執行個體,在操作欄中點擊 管理

左側導覽列找到 表管理添加表

完成表的基礎資訊填寫後,點擊 下一步 。

  • 表名稱:字母、數字或底線組成,最大25字元。

  • 資料分區數:分區數設定時,請填寫不超過256的正整數, 用於提升全量構建速度、單次查詢效能。(部分存量執行個體,仍需各索引表分區數保持一致,或至少一個索引表分區數為1,其餘索引表分區數一致)

  • 資料更新資源數:資料更新所用資源數,每個索引預設免費提供2個4核8G的更新資源,超出免費額度的資源將產生費用,詳情可參考召回引擎版計費概述

2. 資料同步

全量資料來源 選擇「Object Storage Service+API」,並完成其他項的配置,資料來源校正 校正通過後,點擊 下一步

配置說明:

  • OSS路徑:訪問OSS檔案的路徑,需以/開頭,路徑中不允許包含?、=、&符號,檔案不能放在根目錄,需放在某個檔案夾下然後填寫路徑。

  • OSS儲存空間(Bucket):OSS的Bucket名稱。

在 OSS 管理主控台的Bucket 列表頁面,單擊目標 Bucket 名稱(例如 zhyq-sz)進入該 Bucket 的管理頁面。

3. 索引結構

欄位索引進行設定,配置完成後,點擊下一步。

樣本欄位配置:id(INT64,主鍵,屬性欄位,資料壓縮 equal),fb_string(STRING,多值且分隔字元為逗號,資料壓縮 uniq),name(TEXT,分析方式為中文-通用分析),code(STRING,屬性欄位,資料壓縮 uniq,自訂預設值為 <EMPTY_STRING>)。

例如,添加索引 index_name(索引類型為 TEXT,包含欄位為 name)和索引 index_string(索引類型為 STRING,包含欄位為 fb_string)。

  • 配置說明:

    • 欄位設定:

      • 屬性欄位:可以選擇是否壓縮,預設為不壓縮,選擇file_compressor表示開啟壓縮。

      • 資料壓縮:欄位內容的壓縮,通過去重等方式實現資料壓縮,欄位內容可以選擇是否壓縮,預設為不壓縮,預設多值和STRING類型選擇uniq,單值數實值型別是equal。

      • 設定說明:

        1. 如果開啟了屬性壓縮,建議前往「叢集管理-節點狀態-表載入策略」編輯索引載入方式,以此降低對效能的影響。

        2. 配置分析方式的欄位類型必須為TEXT類型。

        3. 支援複製欄位操作,複製出的新欄位(DUP欄位)與原欄位內容保持一致(推送不一致內容時,將採用原欄位內容覆蓋),如期望欄位內容不一致,請手動刪除DUP欄位進階配置中的copy from配置

        4. 當資料中缺少欄位或欄位為空白時,系統將自動補充預設值,數字類型預設補0,STRING類型預設補Null 字元串,支援自訂預設值

    • 索引設定:給需要進行索引檢索的欄位配置對應的索引。

4. 確認建立

點擊確認建立後,系統將自動建立配置好的表。