メインコンテンツまでスキップ

AI 検索インデックス リソースを Databricks アプリに追加する

アプリケーションでセマンティック検索と類似性に基づく検索を有効にするために、Databricks Apps のリソースとしてAI Search インデックスを追加します。AI検索インデックスは、高次元ベクトル埋め込みを保存およびクエリし、検索拡張生成(RAG)、セマンティック検索、および推奨システムなどのユースケースを強化します。

Databricks AI Search(旧 Databricks ベクトル検索)でした。

特権要件

AI Searchインデックスにアクセスするには、アプリのサービスプリンシパルは、親カタログに対するUSE CATALOG権限、親スキーマに対するUSE SCHEMA権限、およびインデックスに対するSELECT権限を持っている必要があります。インデックスリソースを追加すると、Databricksは自動的にこれらの権限をアプリのサービスプリンシパルに付与します。

この自動付与が成功するには、権限ごとに次のいずれかが当てはまる必要があります。

  • USE CATALOGの場合: すべてのアカウント ユーザーがカタログに対してUSE CATALOG権限を持っているか、カタログに対してMANAGE権限を持っています。
  • USE SCHEMAの場合: すべてのアカウント ユーザーがスキーマに対するUSE SCHEMA権限を持っているか、またはスキーマに対するMANAGE権限を持っています。
  • SELECTの場合: すべてのアカウント ユーザーがインデックスに対してSELECT権限を持っているか、またはユーザーがインデックスに対してMANAGE権限を持っています。

これらのアクセス許可を使用して AI Searchインデックスのクエリに関する詳細については、「AI Searchインデックスをクエリする方法」を参照してください。

Unity Catalog権限に関するリファレンスを参照してください。

AI検索インデックス リソースを追加

AI Search インデックスをリソースとして追加する前に、アプリのリソースの前提条件を確認してください。

  1. アプリを作成または編集するときに、 [アプリ リソース] セクションで、 [+ リソースの追加] > [検索インデックス] をクリックします。

  2. ワークスペースにある利用可能なAI検索インデックスから選択してください。インデックスはUnity Catalogにすでに存在している必要があります。

  3. アプリの権限レベルを選択します:

    • 選択可能:アプリが類似性検索のためにAI検索インデックスをクエリーすることを許可します。SELECT 権限に相当します。
  4. (オプション) アプリ構成でインデックスを参照する方法であるカスタム リソース キーを指定します。デフォルトのキーはvector-search-indexです。

注記

AI検索インデックスは、タイプTABLE_ONLINE_VECTOR_INDEX_REPLICAまたはTABLE_ONLINE_VECTOR_INDEX_DIRECTのUnity Catalogテーブルです。AI検索インデックスを選択すると、セマンティック検索操作をサポートする特別に構成されたテーブルが選択されます。

環境変数

AI Search インデックスリソースを使用してアプリをデプロイすると、Databricks は、valueFrom フィールドを使用して参照できる環境変数を介して、完全な 3 レベル名を公開します。

構成例:

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

アプリケーションでインデックスを使用する:

Python
import os
from databricks.sdk import WorkspaceClient

# Access the AI Search index name
index_name = os.getenv("VECTOR_SEARCH_INDEX")

# Initialize workspace client
w = WorkspaceClient()

# Query the AI 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}")

詳細については、 「環境変数を使用してリソースにアクセスする」を参照してください。

AI検索インデックスのリソースを削除

アプリから AI Searchインデックスリソースを削除すると、アプリのサービスプリンシパルはインデックスにアクセスできなくなります。インデックス自体は変更されず、適切な権限を持つ他のユーザーおよびアプリケーションが引き続き使用できます。

ベストプラクティス

AI検索インデックス リソースを使用する場合は、次の点を考慮してください。

  • インデックスが他のテーブルを参照している場合、アプリのサービスプリンシパルが基になるデータソースにアクセスできることを確認してください。
  • クエリのパフォーマンスを監視し、応答時間が低下する場合はインデックス構成または埋め込みモデルを調整します。
  • 埋め込みをソース データと同期させるには、インデックス更新スケジュールを検討してください。
  • 埋め込みモデルに基づいて、適切な類似度メトリクス (コサイン、ユークリッド、ドット製品) を使用します。