本頁面說明如何使用 
Kubernetes 部署選項,部署 AlloyDB Omni 
16.8.0 版。
選擇其他部署選項。
  
        
 
     
  
  
  
    
  
  
  
    
  
  
    
      ScaNN 索引參考資料
  
      
    
  
  
  
  
  
    
  
  
    
    
    
    
  
選取說明文件版本:
  
  
本頁面提供 ScaNN 索引的參考資料。
調整參數
下列索引參數和資料庫標記會一併使用,以找出合適的召回率和 QPS 平衡點。
  
  
    | 調整參數 | 說明 | 選項類型 | 
  
    
    | max_num_levels | K-means 分群樹的質心層級數量上限。 
 兩層樹狀結構索引:預設為 1,適用於兩層樹狀結構 (1 個質心層級 + 底層葉節點層級)。三層樹狀結構索引:預設為 2,適用於三層樹狀結構 (2 個質心層級 + 底層葉節點層級)如果向量資料列數超過 1 億列,請將值設為 2。如果向量資料列數少於 1 千萬列,請將值設為 1。如果向量列數介於 1 千萬到 1 億列之間,請設為 1或2,以最佳化索引建構時間 (設為 2) 或最佳化搜尋召回率 (設為 1)。
 | 建立索引 (選用)
 | 
  
    
    | num_leaves | 要套用至這個索引的分區數量。建立索引時套用的分區數量會影響索引效能。增加一組向量的分區數量,即可建立更精細的索引,進而提升召回率和查詢效能。不過,這樣會導致索引建立時間變長。 
 由於三層樹狀結構的建構速度比兩層樹狀結構快,因此建立三層樹狀結構索引時,您可以增加
 num_leaves_value來提升效能。
 兩層索引:將這個值設為 1到1048576之間的任何值。
 如要建立索引,並在索引建構速度和搜尋效能之間取得平衡,請以
 sqrt(ROWS)做為起點,其中ROWS是向量資料列的數量。每個分區所含的向量數量會以
 ROWS/sqrt(ROWS) = sqrt(ROWS).
 計算。由於可以在向量列數少於 1 千萬的資料集上建立雙層樹狀結構索引,因此每個分區所含的向量會少於 (
 sqrt(10M)) 個,也就是3200個向量。為獲得最佳向量搜尋品質,建議盡量減少每個分割區中的向量數量。建議每個分區約有 100 個向量,因此請將num_leaves設為ROWS/100。如果您有 1 千萬個向量,請將num_leaves設為 100,000。三層索引:將這個值設為 1和1048576之間的任何值。
 如果不確定要選取哪個確切值,請使用
 power(ROWS, 2/3)做為起點,其中ROWS是向量列數。每個分區所含的向量數量會由
 ROWS/power(ROWS, 2/3) = power(ROWS, 1/3).
 計算。由於可以在向量列超過 1 億的資料集上建立三層樹狀索引,因此每個分區會包含超過
 (
 power(100M, 1/3)) 個向量,也就是465個向量。為獲得最佳向量搜尋品質,建議盡量減少每個分割區中的向量數量。建議每個分區約有 100 個向量,因此請將num_leaves設為ROWS/100。如果您有 1 億個向量,請將num_leaves設為 100 萬。
 | 建立索引 (必填)
 | 
  
    | quantizer | 您想用於 K 平均值樹狀結構的量化器類型。預設值為 SQ8,可提供更優異的查詢效能,同時將喚回率損失降到最低 (通常低於 1-2%)。
 如需 99% 以上的喚回率,請設為
 FLAT。 | 建立索引 (選用)
 | 
  
    | scann.enable_inline_filtering | 支援內建篩選功能,可查詢資料並直接在向量相似度搜尋作業中套用篩選條件。這些向量相似度查詢會對相同資料庫表格使用篩選器,並在計算距離以找出最鄰近項目時,完成篩選器評估。這個選項預設為停用。 
 如要啟用內嵌篩選功能,請將這個參數設為
 true。如果發現效能變差,請設為false。
 這個選項適用於預先發布版。
 | 查詢執行階段 (選用)
 | 
  
    | scann.enable_pca | 啟用主成分分析 (PCA),這是一種降維技術,可盡可能自動縮減嵌入的大小。這個選項預設為啟用。 
 如果發現召回率下降,請設為
 false。 | 建立索引 (選用)
 | 
  
    
    | scann.num_leaves_to_search | 這個資料庫標記可控制要搜尋的分葉或分割區絕對數量,讓您在召回率和 QPS 之間取捨。預設值為 num_leaves中設定值的 1%。
 值越高,喚回度就越好,但 QPS 會降低。同樣地,如果值較低,喚回度就會較低,但 QPS 會較高。
 | 查詢執行階段 (選用)
 | 
  
    
    | scann.pre_reordering_num_neighbors | 設定資料庫標記後,系統會在初始搜尋找出候選項目後,於重新排序階段考慮指定數量的候選鄰點。將這個參數設為大於查詢要傳回的鄰居數。 
 值越高,喚回度就越好,但 QPS 會越低。將這個值設為
 0,即可停用重新排序功能。如果建立索引時未啟用 PCA,則預設值為0。否則預設值為50 x K,其中K是查詢中指定的 LIMIT。 | 查詢執行階段 (選用)
 | 
  
    
    | scann.num_search_threads | 多執行緒搜尋的搜尋者執行緒數量。在對延遲時間較為敏感的應用程式中,使用多個執行緒進行 ScaNN ANN 搜尋,有助於縮短單一查詢的延遲時間。如果資料庫已受 CPU 限制,這項設定不會改善單一查詢延遲。預設值為 2。 | 查詢執行階段 (選用)
 | 
 
後續步驟
  
  
  
  
    
  
  
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
  上次更新時間:2025-10-22 (世界標準時間)。
  
  
    
    
    
      
  
    
  
  
    
      [[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-10-22 (世界標準時間)。"],[],[]]