將 向量搜尋索引 作為 Databricks Apps 資源,以啟用語意搜尋與基於相似性的檢索功能。 向量搜尋索引可儲存與查詢高維向量嵌入,支持檢索增強生成(RAG)、語意搜尋及推薦系統等應用場景。
權限要求
要存取向量搜尋索引,應用程式的服務主體必須擁有 USE CATALOG 父目錄、 USE SCHEMA 父結構 SELECT 及索引的權限。 當你新增索引資源時,Azure Databricks 會自動將這些權限授予應用程式的服務主體。
若要讓此自動授與成功,每個權限必須符合下列其中一項:
-
對於
USE CATALOG: 所有帳戶使用者都擁有USE CATALOG目錄的權限,或者您擁有MANAGE目錄的權限。 - 對於
USE SCHEMA:所有帳戶使用者都必須擁有在結構描述上的權限,或者您必須擁有USE SCHEMA在結構描述上的權限。 -
對於
SELECT: 要麼所有帳號用戶都擁有SELECT索引的特權,要麼你擁有MANAGE該索引的特權。
欲了解更多關於以這些權限查詢向量搜尋索引的資訊,請參閱 「如何查詢向量搜尋索引」。
新增向量搜尋索引資源
在新增向量搜尋索引作為資源之前,請先檢視 應用程式資源的前置條件。
- 當你建立或編輯應用程式時,請切換到 「配置 」步驟。
- 在 應用程式資源 區塊,點擊 + 新增資源。
- 選擇 向量搜尋索引 作為資源類型。
- 從工作區可用的索引中選擇向量搜尋索引。 該索引必須已經存在於 Unity 目錄中。
- 選取應用程式的權限層級:
- 可選擇: 授權應用程式查詢向量搜尋索引以進行相似性搜尋。 這與 SELECT 權限相符。
- (可選)指定一個自訂資源鍵,這就是你在應用程式設定中參考索引的方式。 預設索引鍵是
vector-search-index。
備註
向量搜尋索引是具有類型 TABLE_ONLINE_VECTOR_INDEX_REPLICA 或 TABLE_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}")
如需詳細資訊,請參閱 使用環境變數存取資源。
移除向量搜尋索引資源
當你從應用程式中移除向量搜尋索引資源時,該應用程式的服務主體會失去對該索引的存取權。 索引本身保持不變,並持續對擁有適當權限的其他使用者和應用程式開放。
最佳做法
在使用向量搜尋索引資源時,請考慮以下幾點:
- 如果索引引用其他資料表,請確保應用程式的服務主體能存取底層的資料來源。
- 監控查詢效能,若回應時間下降,則調整索引配置或嵌入模型。
- 考慮使用索引更新排程,以保持嵌入與來源資料同步。
- 根據你的嵌入模型,使用適當的相似度指標(餘弦、歐幾里得、點積)。