Databricks Vector Search is a managed vector database integrated with Unity Catalog. It converts unstructured data such as text and images into vectors (embeddings) and provides search based on semantic similarity. It plays a central role as the retrieval component of RAG (Retrieval-Augmented Generation) pipelines, and the GenAI Engineer exam frequently tests index type selection and query design.
Traditional keyword search (BM25, etc.) depends on lexical matching between query and document, so it cannot handle variations in wording such as "machine learning" vs "ML". Vector Search converts text into high-dimensional vectors and computes semantic closeness via cosine similarity or dot product, enabling search that handles synonyms, paraphrases, and multilingual content.
Vector Search offers two index types that differ in how data is managed and which use cases they fit. The GenAI Engineer exam tests selecting the right index type for a given scenario.
| Comparison | Delta Sync Index | Direct Vector Access Index |
|---|---|---|
| Data source | Delta Table (governed by Unity Catalog) | Inserted directly via REST API |
| Sync model | Detects and syncs source table changes automatically | Call upsert/delete APIs manually |
| Embedding computation | Auto-compute mode (specify a model) or precomputed column | Accepts precomputed vectors only |
| Update frequency | Continuous or Triggered | Only on API calls |
| Operational overhead | Low (auto-sync) | High (you must implement sync logic) |
| Best for | Internal-document RAG, knowledge base search | External system integration, real-time vector ingestion |
In Delta Sync Index's auto-compute mode, you just point at a text column and Databricks computes the embeddings and stores them in the index. In precomputed-column mode, you compute the embeddings yourself, store them in a Delta Table column, and point the index at that column.
A Vector Search Endpoint is the compute resource that hosts indexes. You create the endpoint first, then attach indexes to it.
from databricks.vector_search.client import VectorSearchClient
vsc = VectorSearchClient()
# Create a Vector Search endpoint
vsc.create_endpoint(
name="my_vs_endpoint",
endpoint_type="STANDARD"
)
# Check endpoint status
endpoint = vsc.get_endpoint("my_vs_endpoint")
print(endpoint["endpoint_status"]["state"]) # "ONLINE"# Create a Delta Sync Index (auto-compute embeddings)
index = vsc.create_delta_sync_index(
endpoint_name="my_vs_endpoint",
index_name="catalog.schema.doc_index",
source_table_name="catalog.schema.documents",
primary_key="doc_id",
pipeline_type="TRIGGERED", # "TRIGGERED" or "CONTINUOUS"
embedding_source_column="content", # Specify the text column
embedding_model_endpoint_name="databricks-gte-large-en"
)
# Check index status
print(index.describe()["status"]["ready"]) # True# Create an index from a Delta Table that already has a precomputed embedding column
index = vsc.create_delta_sync_index(
endpoint_name="my_vs_endpoint",
index_name="catalog.schema.doc_index_precomputed",
source_table_name="catalog.schema.documents_with_embeddings",
primary_key="doc_id",
pipeline_type="TRIGGERED",
embedding_dimension=1024,
embedding_vector_column="embedding_vector"
)# Create a Direct Vector Access Index
index = vsc.create_direct_access_index(
endpoint_name="my_vs_endpoint",
index_name="catalog.schema.realtime_index",
primary_key="item_id",
embedding_dimension=1024,
embedding_vector_column="embedding",
schema={
"item_id": "string",
"embedding": "array<float>",
"category": "string",
"title": "string"
}
)
# Insert vectors directly
index.upsert([
{"item_id": "001", "embedding": [0.1, 0.2, ...], "category": "tech", "title": "..."},
{"item_id": "002", "embedding": [0.3, 0.1, ...], "category": "science", "title": "..."}
])Run a query against the index to retrieve the top-K most similar documents. You can use a text query (auto-embedded) or a vector query (precomputed).
# Text-based similarity search (Delta Sync Index + auto embeddings)
results = index.similarity_search(
query_text="How to manage Databricks clusters",
columns=["doc_id", "content", "source_url"],
num_results=5
)
# Process the results
for doc in results["result"]["data_array"]:
print(f"Score: {doc[-1]:.4f} | ID: {doc[0]} | Content: {doc[1][:100]}...")
# Vector-based similarity search (Direct Vector Access Index)
results = index.similarity_search(
query_vector=[0.1, 0.2, 0.3, ...], # precomputed vector
columns=["item_id", "title", "category"],
num_results=10
)Adding metadata predicates to a vector similarity search lets you restrict results to a specific category or time range. In RAG pipelines, this is used for permission-based document filtering and category narrowing.
# Search with metadata filtering
results = index.similarity_search(
query_text="about security policy",
columns=["doc_id", "content", "department", "updated_at"],
num_results=5,
filters={"department": "engineering", "updated_at >=": "2026-01-01"}
)
# Multi-predicate filtering
results = index.similarity_search(
query_text="data pipeline design",
columns=["doc_id", "content", "category"],
num_results=5,
filters={"category IN": ["architecture", "data-engineering"]}
)| Model | Provider | Dimensions | Foundation Model API support | Notes |
|---|---|---|---|---|
| GTE-large-en | Databricks | 1024 | Supported | Selectable for Delta Sync Index auto-compute mode |
| BGE-large-en | BAAI (open source) | 1024 | Available via Model Serving | Self-hostable and cost efficient |
| text-embedding-3-large | OpenAI | 3072 | Available via External Model | High accuracy, variable dimensions |
| Cohere embed-v3 | Cohere | 1024 | Available via External Model | Multilingual, optimized for search/classification |
When using Delta Sync Index's auto embedding mode, specify a Foundation Model API model (such as GTE) via embedding_model_endpoint_name. To use an external model, create an endpoint with the External Model feature, precompute embeddings, store them in a Delta Table, and choose the precomputed-column mode.
Vector Search / GenAI Engineer
問題 1
A team is building a RAG chatbot over internal documents already stored in a Delta Table. The documents are updated daily by an ETL pipeline, and the team wants embedding computation to stay entirely inside the Databricks platform. Which Vector Search configuration is most appropriate?
正解: B
Because the source is a Delta Table updated daily, a Delta Sync Index is the right fit. Since the team wants embedding computation to stay inside Databricks, the auto embedding mode (specifying the text column via embedding_source_column and a Foundation Model API model via embedding_model_endpoint_name) is best. For daily updates, TRIGGERED is sufficient. Direct Vector Access Index (A, D) cannot auto-sync with a Delta Table and requires manual management. The precomputed-column mode (C) adds the overhead of managing an external API, which does not match the requirements.
When should I use Delta Sync Index vs Direct Vector Access Index?
Delta Sync Index automatically syncs with its source Delta Table, making it ideal for internal document search and RAG pipelines where data is updated on a regular cadence. Direct Vector Access Index inserts and updates vectors directly via REST API, so choose it when you need real-time vector ingestion from external systems or when you want to use embeddings already computed outside of Databricks.
What is the relationship between a Vector Search Endpoint and an Index?
A Vector Search Endpoint is a compute resource that hosts one or more Vector Search Indexes. Attaching multiple indexes to a single endpoint lets you share compute efficiently. Endpoints are created at the workspace level, while indexes are created against tables governed by Unity Catalog. Endpoint scaling is managed automatically by Databricks.
How is Vector Search priced?
Vector Search runs on serverless compute and is billed in DBUs (Databricks Units) based on endpoint uptime. Endpoints auto-scale based on index size and query volume, so cost scales with usage. Note that the automatic sync work for a Delta Sync Index incurs additional compute cost on top of the endpoint.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)
Complete guide to all 7 Databricks certifications — Data Eng...
Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)
Every Databricks certification ranked by difficulty, with st...
Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)
How to pass Databricks certifications efficiently. Official ...
Databricks Data Engineer Associate: Complete Guide (2026)
Domain-by-domain breakdown of the Databricks Certified Data ...
Databricks Data Engineer Professional: Complete Guide (2026)
Tactics for the Databricks Certified Data Engineer Professio...