共用方式為


在 Databricks 應用程式中新增向量搜尋索引資源

向量搜尋索引 作為 Databricks Apps 資源,以啟用語意搜尋與基於相似性的檢索功能。 向量搜尋索引可儲存與查詢高維向量嵌入,支持檢索增強生成(RAG)、語意搜尋及推薦系統等應用場景。

權限要求

要存取向量搜尋索引,應用程式的服務主體必須擁有 USE CATALOG 父目錄、 USE SCHEMA 父結構 SELECT 及索引的權限。 當你新增索引資源時,Azure Databricks 會自動將這些權限授予應用程式的服務主體。

若要讓此自動授與成功,每個權限必須符合下列其中一項:

  • 對於 USE CATALOG 所有帳戶使用者都擁有 USE CATALOG 目錄的權限,或者您擁有 MANAGE 目錄的權限。
  • 對於 USE SCHEMA:所有帳戶使用者都必須擁有在結構描述上的權限,或者您必須擁有 USE SCHEMA在結構描述上的權限。
  • 對於 SELECT 要麼所有帳號用戶都擁有 SELECT 索引的特權,要麼你擁有 MANAGE 該索引的特權。

欲了解更多關於以這些權限查詢向量搜尋索引的資訊,請參閱 「如何查詢向量搜尋索引」。

請參閱 Unity Catalog 使用權限與可保護物件

新增向量搜尋索引資源

在新增向量搜尋索引作為資源之前,請先檢視 應用程式資源的前置條件

  1. 當你建立或編輯應用程式時,請切換到 「配置 」步驟。
  2. 應用程式資源 區塊,點擊 + 新增資源
  3. 選擇 向量搜尋索引 作為資源類型。
  4. 從工作區可用的索引中選擇向量搜尋索引。 該索引必須已經存在於 Unity 目錄中。
  5. 選取應用程式的權限層級:
    • 可選擇: 授權應用程式查詢向量搜尋索引以進行相似性搜尋。 這與 SELECT 權限相符。
  6. (可選)指定一個自訂資源鍵,這就是你在應用程式設定中參考索引的方式。 預設索引鍵是 vector-search-index

備註

向量搜尋索引是具有類型 TABLE_ONLINE_VECTOR_INDEX_REPLICATABLE_ONLINE_VECTOR_INDEX_DIRECT的 Unity 目錄表格。 當你選擇向量搜尋索引時,你選擇了一個特別設定的表格,支援語意搜尋操作。

環境變數

當你部署一個帶有向量搜尋索引資源的應用程式時,Azure Databricks 會透過環境變數揭露完整的三層級名稱,你可以透過該 valueFrom 欄位來參考。

設定範例:

env:
  - name: VECTOR_SEARCH_INDEX
    valueFrom: vector-search-index # Use your custom resource key if different

在申請中使用索引:

import os
from databricks.sdk import WorkspaceClient

# Access the vector search index name
index_name = os.getenv("VECTOR_SEARCH_INDEX")

# Initialize workspace client
w = WorkspaceClient()

# Query the vector search index
results = w.vector_search_indexes.query_index(
    index_name=index_name,
    query_text="What is machine learning?",
    num_results=10
)

# Process results
for result in results.manifest.columns:
    print(f"Result: {result}")

如需詳細資訊,請參閱 使用環境變數存取資源

移除向量搜尋索引資源

當你從應用程式中移除向量搜尋索引資源時,該應用程式的服務主體會失去對該索引的存取權。 索引本身保持不變,並持續對擁有適當權限的其他使用者和應用程式開放。

最佳做法

在使用向量搜尋索引資源時,請考慮以下幾點:

  • 如果索引引用其他資料表,請確保應用程式的服務主體能存取底層的資料來源。
  • 監控查詢效能,若回應時間下降,則調整索引配置或嵌入模型。
  • 考慮使用索引更新排程,以保持嵌入與來源資料同步。
  • 根據你的嵌入模型,使用適當的相似度指標(餘弦、歐幾里得、點積)。