搜尋功能與次要索引

本頁面將說明搜尋和次要索引的功能。

在決定要使用搜尋索引還是次要索引時,請注意,搜尋索引應是全文用途的預設選擇,而次要索引則應是其他用途的預設選項。下表說明各類索引的使用時機。

功能 次要索引 搜尋索引
排列順序 索引會依據所有索引鍵欄排序 搜尋索引只能依據最多兩個使用者控制的 INT64 欄進行排序
陣列 您無法在次要索引中使用陣列資料類型值做為索引鍵。 搜尋索引支援陣列索引。文件的所有符記都會位於同一個區段。因此,變更 1 列的交易只會寫入一個索引分割項目。
JSON/JSONB 您無法在次要索引中使用 JSON 值做為索引鍵。 搜尋索引支援 JSON 值的索引。
查詢 按索引鍵查詢只需要存取一個分割區 使用搜尋索引的查詢通常需要從特定分區的所有分割區讀取資料。唯一的例外狀況是 Top-K 模式比對。
多欄索引 次要索引可包含多個索引鍵欄。查詢必須依據索引鍵欄的前置字串查詢資料,才能有效執行。 搜尋索引可為多個資料欄建立索引。查詢可在任何已編入索引的資料欄子集上指定複雜的邏輯運算式 (連接詞、析取詞、否定詞),並且仍能有效執行
索引交集 使用者可以重新撰寫查詢,以便彙整多個次要索引。 多個已編入索引的資料欄的交集會以高效率的本機「之字型」彙整方式實作,接著再執行分散式合併聯集 (合併所有相關分割的結果)。
讀取資料 SQL 查詢或讀取 API SQL 查詢

除了語意之外,用來建立搜尋索引的 DDL 陳述式語法,與用來建立次要索引的 DDL 語法不同:

  • 索引資料欄的定義與搜尋索引中的排序順序分開。
  • CREATE SEARCH INDEX 陳述式的 ON 子句中 TOKENLIST 欄的順序不重要。

後續步驟