全部產品
Search
文件中心

OpenSearch:線上多表join快速搭建

更新時間:Jun 09, 2026

本文介紹如何快速搭建支援線上多表join功能的執行個體。

前提條件

  1. 成功註冊阿里雲帳號並通過實名認證

  2. 首次登入阿里雲控制台時,系統會提示先建立AccessKey才能繼續使用。

操作步驟

  1. 建立併購買應用。

  2. 配置應用:定義應用結構->定義索引結構->配置資料來源->建立成功。

  3. 搜尋測試。

建立應用

  1. OpenSearch-高效能檢索版实例管理頁,單擊创建实例

  2. 選擇執行個體類型,包括商品版本、商品類型、地區和可用性區域、應用程式名稱、叢集偏好、儲存容量、計算資源,單擊立即购买

    可選的商品版本包括行業演算法版LLM智能問答版高效能檢索版向量檢索版召回引擎版

    商品版本選擇高性能检索版

    應用程式名稱由英文字母開頭,由數字、英文字母或底線組成,長度不超過30個字元,建立後無法修改。資源群組按需選擇或建立。

    • 商品類型可選:包月包年按量付费

    • 地區和可用性區域:使用者按需選擇。

    • 應用程式名稱:可自訂。

    • 叢集偏好:獨享儲存型 (固定)。

    • 儲存容量和計算資源保持預設,或按需購買。

  3. 確認訂單,勾選服務合約後,單擊立即开通

  4. 開通完成後,可以在控制台列表頁,查看待配置狀態的執行個體:

    執行個體付費類型顯示為隨用隨付,單擊操作列的配置可進行應用配置。

配置應用

  1. 在控制台列表頁,找到新購的執行個體,在右側操作欄中單擊配置

    此時新購執行個體的狀態顯示為待配置

  2. 定義應用結構:目前提供了 4 種方式的應用結構建立方式。

    • 通過模板建立應用結構,使用者可以將自己定義的應用結構建立成模板,可以通過已有模板快速建立出一個新的應用。

    • 通過上傳文檔建立應用結構,使用者可以上傳已有的資料檔案(僅支援JSON格式),系統會自動解析並建立出初始的應用結構(注意欄位類型等需要重新定義)。

    • 通過資料來源建立應用結構,適用於RDS、MaxCompute等資料來源同步情境。此功能可快速從源表結構產生初始應用結構,減少手動構造工作量並降低出錯機率。具體詳見資料來源配置

    • 通過手動建立應用結構,快速測試接入時使用,這裡以該方式為例,建立2張表:

    第一張表名為 main,包含欄位 m_id(INT,主鍵)、m_name(LITERAL)、m_age(LITERAL)、m_titile(TEXT)。第二張表名為 table_1,包含欄位 t_id_1(INT,主鍵)、t_name(LITERAL)、t_age(LITERAL)、t_title(TEXT)。

    欄位類型的選擇可以參考OpenSearch-高效能檢索版表結構

    注意

    說明

    表總數不能超過系統最大限制8個。

  3. 索引結構配置,不同的表需要單獨配置:(每張表都需要單獨配置)

    索引結構配置頁麵包含以下地區:索引欄位列表(配置索引名稱、包含欄位及分析方式)、屬性欄位列表分欄欄位列表(選填)和進階配置(選填)。多張表(如 main 表和 table_1 表)需分別展開單獨配置。

    • 應用結構的配置可參考索引結構

    • 分析方式的選擇,可參考文本分析器

    • 屬性欄位的選擇:需要在SELECT 、WHERE、ORDER BY 時使用該欄位時,將其設定為屬性欄位。

    說明
    • FLOAT,FLOAT_ARRAY,DOUBLE,DOUBLE_ARRAY 不支援設定索引欄位。

    • TEXT,SHORT_TEXT 不支援設定屬性欄位。

  4. 在各表設定(如 areas 表設定test 表設定)中,展開分欄欄位列表(選填)地區,在包含欄位列中添加分欄欄位。

    OpenSearch執行個體,後端是分布式的部署,在多表情境下,需要多個表join的資料在同一台機器上,如下圖:

    引擎在build索引時根據使用者配置的分列進行hash,將hash結果相同的記錄存放在同一列。查詢時,查詢節點向各列發起請求,各列根據使用者的SQL進行內部join操作,不進行跨列join。最終,每列將join結果返回給查詢節點,查詢節點匯總後將結果返回給使用者。

    說明
    • 系統預設已採用主鍵分列;

    • 只能選擇一個欄位為分欄欄位;

    • 分欄欄位需要保證全域值唯一;

    • 分欄欄位支援的類型有:INT、LITERAL;

    • 如需非主鍵join,必須在分列鍵中配置需要join的欄位;

  5. 資料來源配置,可根據高效能檢索版支援的資料來源類型進行配置:

    頁面中會展示 maintable_1 兩個資料來源區域,需要分別單擊對應地區下方的 添加資料來源 進行配置。

    單擊添加資料來源,配置對應的資料來源:

  6. 配置完成後,單擊完成:

    單擊完成後,頁面跳轉至執行個體詳情頁。

  7. 在執行個體詳情頁中,等待線下應用狀態為正常後,即可進行查詢:

    此時線下應用狀態顯示為應用初始化中

搜尋測試

  1. 線下應用狀態正常,並切換上線後,可在搜尋測試頁進行搜尋測試:

    在左側導覽列選擇功能擴充 > 搜尋測試,或在執行個體列表的操作列中單擊搜尋測試進入搜尋測試頁面。

  2. 目前多表線上join方式,僅支援SQL查詢:

    SQL查詢輸入框中輸入多表JOIN語句,例如 SELECT ... FROM auction_table INNER JOIN trade_table ON auction_table.id = trade_table.auction_id WHERE contain(auction_table.user_id, ?) ORDER BY ... LIMIT 20 OFFSET 0,通過 dynamic_params=123,456 傳入查詢參數,單擊執行後下方展示查詢結果。

    詳細的SQL文法可參考SQL支援

注意事項

  • 目前僅儲存型-獨享叢集,支援線上多表join;

  • 多表join情境下,僅支援SQL查詢;

  • 多表join情境下,不支援自訂分析器

  • 多表join情境下,不支援排序配置;(可以用ORDER BY

  • 多表join情境下,不支援搜尋結果展示

  • 儲存型-獨享叢集執行個體,不可變更配置為其他規格執行個體;