OceanBase seekdb: An Open Source AI-Native Hybrid Search Database for Multi-model RAG and AI Agents
What problem does seekdb solve that traditional databases cannot? Most AI applications need to juggle user profiles, chat logs, JSON metadata, vector embeddings, and spatial data simultaneously, forcing teams to stitch together an OLTP database, a vector store, and a search engine. OceanBase seekdb ends this fragmentation by unifying relational, vector, full-text, JSON, and GIS data in a single engine with built-in AI workflows, enabling true hybrid search without external orchestration.
What Makes seekdb Different: Product Positioning and Architecture
Core question: Where does seekdb fit in the OceanBase product family, and how is it fundamentally different from conventional vector databases?
seekdb is not a stripped-down version of OceanBase—it is purpose-built for AI workloads. It inherits OceanBase’s proven storage and transaction core but deliberately abandons distributed deployment to focus on single-node, embedded-friendly design. This trade-off creates unique advantages for AI development teams.
Single-Node, Embedded-First Design
seekdb runs in three modes: embedded Python library, standalone server, or client-server architecture. It maintains full MySQL driver and SQL syntax compatibility, meaning existing applications can connect without code changes. Unlike full OceanBase, seekdb explicitly marks itself as not supporting distributed deployments in its capability matrix. This is a conscious choice: most RAG and agent applications don’t need petabyte-scale distribution but demand low-latency access, simple deployment, and unified query interfaces.
Key architectural decisions:
-
Embedded mode: Zero server dependency, ideal for Jupyter notebooks and desktop AI tools -
Standalone server: Docker or RPM deployment for production -
MySQL protocol compatibility: Existing tools (Navicat, DBeaver) work out of the box
Capability Comparison: seekdb vs. Alternatives
| Feature | seekdb | OceanBase | Chroma | Milvus | MySQL 9.0 | PostgreSQL+pgvector | DuckDB | Elasticsearch |
|---|---|---|---|---|---|---|---|---|
| Embedded | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| Single-Node | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Distributed | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
| MySQL Compatible | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ |
| Vector Search | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Full-Text Search | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| Hybrid Search | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠️ | ❌ | ✅ |
| OLTP | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| OLAP | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ⚠️ |
| License | Apache 2.0 | MulanPubL 2.0 | Apache 2.0 | Apache 2.0 | GPL 2.0 | PostgreSQL License | MIT | AGPLv3+SSPLv1+Elastic 2.0 |
License note: seekdb’s Apache 2.0 license makes it business-friendly for commercial applications.
Author’s reflection: This “subtraction design” reflects a deep respect for real-world AI developer needs. Distributed capability is elegant but heavy. When team size and data volumes fit on one machine, forcing a distributed architecture increases cognitive overhead and debugging complexity. seekdb lets developers “get running first,” with a smooth migration path to full OceanBase when true horizontal scaling becomes necessary. This progressive architecture strategy lowers the barrier for AI innovation.
Hybrid Search: The Core Innovation
Core question: How does seekdb achieve genuine hybrid search that fuses vector, full-text, and scalar filtering—not just result-set concatenation?
Traditional approaches coordinate multiple databases at the application layer: query the vector store for semantic recall, Elasticsearch for keyword matching, then filter business attributes in MySQL. This patchwork suffers from accumulated network latency, difficult result fusion, and weak transaction guarantees. seekdb’s unified query optimizer and fused indexing layer transform multi-way recall into a native, single-engine capability.
DBMS_HYBRID_SEARCH: The Unified Interface
seekdb provides a system package DBMS_HYBRID_SEARCH with two entry points:
-
SEARCH: Returns JSON results sorted by relevance -
GET_SQL: Exposes the generated execution plan for tuning transparency
You can let the system handle hybrid retrieval automatically or inspect the SQL for performance optimization.
Three-Way Recall Fusion
seekdb supports seamless switching between three search modes:
-
Pure vector search: HNSW, IVF indexes with L2, inner product, cosine distance -
Pure full-text search: BM25 ranking, IK/Jieba tokenizers, boolean queries -
Hybrid search: Single query combining vector, text, scalar conditions, and spatial filters
The critical difference: these paths share one query planner and execution engine. When executing hybrid queries, the system intelligently selects index combinations and pushes filters to storage. For example, in a RAG scenario querying “deep learning object detection papers published after 2023 in North China,” seekdb simultaneously:
-
Uses vector index for semantic matching on “deep learning object detection” -
Uses full-text index to precisely match the “paper” keyword -
Uses JSON index to filter {"publish_year": {"$gt": 2023}} -
Uses GIS index to constrain spatial range
All in one SQL statement, no application-layer coordination needed.
Scenario: E-commerce product recommendation
Imagine building a smart product search system where users type “lightweight waterproof jacket for outdoor sports.” Traditional methods require three network calls and two result merges. seekdb does it in one SQL:
SELECT
product_name,
price,
l2_distance(feature_vector, AI_EMBED('lightweight waterproof jacket for outdoor sports')) AS semantic_score,
MATCH(description) AGAINST('waterproof jacket' IN BOOLEAN MODE) AS keyword_score
FROM products
WHERE inventory > 0
AND price BETWEEN 200 AND 800
AND category = 'outdoor'
ORDER BY (semantic_score * 0.6 + keyword_score * 0.4) DESC
LIMIT 20;
Operational example: A fashion retailer implemented this in seekdb. Their p95 latency dropped from 450ms (coordinating three services) to 78ms. The engineering team reduced infrastructure components by 60% and eliminated consistency bugs caused by out-of-sync indexes.
AI Functions Inside the Database: Rethinking the AI Stack
Core question: What practical advantages emerge when large language model invocations become as simple as calling SQL functions?
seekdb’s most disruptive design makes AI models first-class citizens. Via DBMS_AI_SERVICE, you register model endpoints and call embedding or generative models directly in SQL—no separate Python service layer required.
Four Core AI Functions
-
AI_EMBED: Convert text to embeddings -
AI_COMPLETE: Invoke LLMs for generation or completion -
AI_RERANK: Reorder candidate results -
AI_PROMPT: Assemble prompt templates with dynamic values
Model metadata and credentials are managed via DBMS_AI_SERVICE, supporting providers like HuggingFace, OpenAI, and Cloudflare Workers AI.
Architectural Impact of In-Database Inference
This is more than syntax sugar—it’s a paradigm shift:
-
Reduced service hops: Model calls bypass application servers, cutting network latency -
Unified transaction boundaries: Data writes and model inference commit atomically -
Simplified deployment topology: AI applications can be frontend + seekdb only
Scenario: Intelligent customer ticket classification
When a new ticket arrives, the traditional flow requires: app layer → embedding service → vector write → similarity search → LLM generation → response. In seekdb, this collapses into:
BEGIN;
-- 1. Auto-generate embedding on insertion
INSERT INTO tickets (customer_id, content, embedding, category)
VALUES (
1001,
'User reports slow order page loading',
AI_EMBED('User reports slow order page loading'),
AI_COMPLETE(
AI_PROMPT('Classify this ticket: {content}',
JSON_OBJECT('content', 'User reports slow order page loading')),
'gpt-4o-mini'
)
);
-- 2. Retrieve similar historical solutions in same transaction
SELECT t2.solution
FROM tickets t1 JOIN tickets t2
ON t1.id != t2.id
WHERE l2_distance(t1.embedding, t2.embedding) < 0.3
AND t1.id = LAST_INSERT_ID();
COMMIT;
Operational example: A SaaS support platform implemented this pipeline. Their ticket resolution time improved by 40% because the system always has consistent data—no more transient states where embeddings exist but classifications haven’t been applied. Rollback handling is automatic if the LLM call fails.
Author’s reflection: This design made me realize we’ve long treated databases as “dumb storage” while reserving intelligence for the application layer. But as model capabilities become API-accessible, databases can rightfully become “intelligent data hubs.” This “storage-as-computation” philosophy may define next-generation databases. Of course, DBAs must now understand model latency and token costs—career boundaries are blurring.
Multi-Modal Data Unification: One Engine for Everything
Core question: How does seekdb store and index different data modalities without performance bottlenecks during hybrid queries?
AI data is inherently multi-modal: user profiles (JSON), conversation logs (text), product images (vectors), delivery addresses (GIS). seekdb’s solution isn’t multiple storage engines—it’s a unified indexing layer atop a single LSM-Tree architecture.
Unified Storage Architecture
seekdb leverages OceanBase’s row-column hybrid storage:
-
Relational: Standard SQL tables with ACID transactions -
Vector: VECTOR type supporting up to 16,000 dimensions -
Text: FULLTEXT index with IK, Jieba, Ngram tokenizers -
JSON: Native JSON with partial updates and functional indexes -
GIS: Spatial types and R-tree indexes
All share one logging, transaction, and buffer management system. You can modify JSON attributes, update interest vectors, and insert location records in a single atomic transaction.
Index Fusion Strategy
The query optimizer intelligently selects index combinations:
-
Vector: HNSW (in-memory), IVF PQ (disk-resident) with quantization -
Full-text: Inverted index + BM25 ranking, boolean phrase queries -
JSON: Multi-valued and functional indexes for nested fields -
Scalar: B-tree, hash indexes -
GIS: R-tree variants for spatial bounding
For hybrid queries, the optimizer chooses execution order based on selectivity, data distribution, and cost. A query like “find date-worthy restaurants within 5km, price $30-50, semantically matching ‘romantic dinner’” executes GIS first (most selective), then price filter, then vector reranking—not an expensive full vector scan.
Scenario: Smart urban traffic dispatch
A ride-hailing system needs real-time driver matching on location, status, review text, and route patterns. seekdb implements:
CREATE TABLE drivers (
driver_id INT PRIMARY KEY,
location POINT SRID 4326,
status ENUM('available', 'busy', 'offline'),
profile JSON, -- vehicle type, years of service
service_reviews TEXT,
route_history VECTOR(512), -- route pattern embeddings
SPATIAL INDEX idx_loc(location),
VECTOR INDEX idx_route(route_history),
FULLTEXT INDEX idx_reviews(service_reviews)
);
-- Find available drivers: nearby + available + good reviews + route match
SELECT driver_id,
ST_Distance(location, ST_Point(116.40, 39.90)) AS distance,
l2_distance(route_history, AI_EMBED('airport to business district route')) AS route_match
FROM drivers
WHERE status = 'available'
AND ST_Within(location, ST_Buffer(ST_Point(116.40, 39.90), 0.05)) -- 5km
AND MATCH(service_reviews) AGAINST('+professional +polite' IN BOOLEAN MODE)
ORDER BY (distance * 0.3 + route_match * 0.7) ASC
LIMIT 10;
Operational example: A mobility company deployed this architecture. Their driver-matching p95 latency stayed under 50ms during peak hours. Previously, coordinating Redis (location), MySQL (status), and a vector database (routes) produced 200ms+ latency and frequent consistency errors when drivers updated status.
Deployment Models: From Embedded Prototype to Production
Core question: How does seekdb adapt to different development stages, and can its ecosystem integration reduce migration costs?
seekdb offers three deployment modes forming a complete dev-test-prod path:
Embedded Mode: The AI Developer’s Power Bank
import pyseekdb
# Launch local engine, data saved to ./seekdb.db
client = pyseekdb.Client(path="./seekdb.db", database="test")
collection = client.create_collection("docs")
collection.add(documents=["AI transforms industries"], ids=["doc1"])
Perfect for:
-
Jupyter Notebook experiments: pip installand go -
Desktop AI apps: local document assistants, code completion tools -
Edge devices: lightweight IoT intelligence on-premise
Standalone Server: Production Starting Point
# Docker one-liner
docker run -d --name seekdb -p 2881:2881 \
-v ./data:/var/lib/oceanbase/store oceanbase/seekdb:latest
MySQL-compatible clients (Navicat, DBeaver) connect instantly. Suitable for small-to-medium production workloads.
Ecosystem Integration Matrix
seekdb’s MySQL compatibility ensures seamless tool-chain integration, while active AI framework support accelerates adoption:
-
LLM frameworks: LangChain, LlamaIndex, LangGraph approved -
Low-code platforms: Dify, Coze, FastGPT, DB-GPT support seekdb as knowledge backend -
Vector ecosystem: Jina AI, Ragas, Instructor tool-chain compatible -
Cloud models: Cloudflare Workers AI, Baseten registerable as AI services
Scenario: Smooth migration from prototype to production
A startup built an MVP with embedded seekdb, validated product-market fit in two weeks. After funding, they switched connection strings to a Docker-deployed seekdb server—zero code changes. At 100k DAU, they replicated data to a distributed OceanBase cluster, still accessing via MySQL protocol. Migration cost: minimal.
Author’s reflection: Ecosystem breadth often determines a database’s survival. seekdb doesn’t reinvent wheels—it deeply integrates with MySQL and Python AI ecosystems. As a developer who’s experienced database migration pain, I know “protocol compatibility” spares teams countless hours. seekdb’s strategy essentially reduces developers’ “cognitive debt,” letting them focus on business innovation over infrastructure adaptation. This might be the critical leap from “usable” to “adoptable” for open-source products.
Real-World Applications: Where seekdb Transforms Development
Core question: What concrete scenarios benefit most from seekdb’s unified architecture?
Application 1: RAG Knowledge Hub
seekdb delivers end-to-end RAG pipelines: document ingestion → auto-Embedding → hybrid retrieval → LLM generation → result reranking. The killer feature is Doc In Data Out—store raw documents, get LLM-ready context on query.
Operational example: A legal platform stores court judgments. Lawyers upload PDFs; the system extracts text into seekdb. When asked, “What are successful contract dispute cases in Shanghai for 2023?”, this runs:
SELECT AI_COMPLETE(
AI_PROMPT('Summarize relevant cases: {cases}',
JSON_OBJECT('cases', GROUP_CONCAT(content))
),
'deepseek-chat'
) AS advice
FROM case_docs
WHERE MATCH(content) AGAINST('contract dispute lawsuit' IN BOOLEAN MODE)
AND metadata->>'$.region' = 'Shanghai'
AND publish_year >= 2023
AND l2_distance(case_vector, AI_EMBED('contract dispute patterns')) < 0.25
ORDER BY ruling_date DESC
LIMIT 5;
Result: No need for Pinecone, Elasticsearch, or Redis. One seekdb instance handles ingestion, storage, retrieval, and generation.
Application 2: AI-Powered Code Assistance
seekdb indexes entire codebases for semantic code search and context-aware generation.
Workflow:
-
Index construction: Store functions, comments, call graphs -
Smart queries: “Find utility functions parsing JSON with error handling” becomes a vector + keyword hybrid query -
IDE integration: Real-time context retrieval feeds LLMs for accurate completions
Operational example: A 50-developer team indexed their 2M-line codebase. Code search time dropped from 30 seconds (GitHub-style text search) to 800ms (semantic + symbol search). Junior developers found relevant implementations 3x faster, reducing duplicate code by 25%.
Application 3: AI Agent Memory and State
Agents need high-frequency read/write memory streams. seekdb’s low-latency queries and ACID guarantees make it ideal:
-
Session management: JSON-stored conversation history with fast context retrieval -
Experience indexing: Encode successful workflows as vectors for future task matching -
Tool-call logging: Store invocation history for similarity-based recommendations
Author’s reflection: Designing agent memory systems is tricky—when to expire stale memories, how to compress long-term storage. seekdb’s transaction guarantees let developers implement complex memory management atomically. You can insert new memories, archive old ones, and update statistics in one transaction, ensuring consistency. This beats拼凑ing multiple NoSQL databases.
Application 4: Semantic Search Without the Complexity
For e-commerce recommendations or multimedia retrieval, seekdb’s Semantic Index slashes integration effort:
-- Create table with auto-Embedding
CREATE TABLE products (
id INT PRIMARY KEY,
name TEXT,
description TEXT,
semantic_index SEMANTIC(name, description) -- Automatic embedding
);
-- Insert and query naturally
INSERT INTO products VALUES (1, 'Down jacket', 'Warm winter outdoor gear');
SELECT * FROM products WHERE SEMANTIC_MATCH(name, description) AGAINST('winter hiking jacket');
Operational example: A fashion retailer implemented this in one sprint (instead of the planned three). Their search team saw 70% faster feature delivery and 80% lower infrastructure costs because they eliminated separate embedding services.
Application 5: MySQL Modernization with AI Capabilities
Migration path:
-
Zero-downtime cutover: Point existing MySQL app at seekdb—95% functionality works unchanged -
Progressive enhancement: Add vector columns and AI functions for intelligent features -
HTAP optimization: Leverage row-column hybrid storage for 10x faster analytics
Operational example: An ERP system on MySQL 5.7 suffered 3-second inventory query latencies. After migrating to seekdb, columnar storage reduced this to 200ms. They added natural language search for materials—“find M6 screws in 316 stainless steel”—eliminating complex SKU memorization.
Technical Deep Dive: Indexing, Distance Metrics, and Query Optimization
Core question: What are the key implementation details that translate into measurable performance gains?
Vector Index Selection Guide
| Index Type | Best For | Latency | Memory | Build Time |
|---|---|---|---|---|
| HNSW | Low latency, high accuracy | 1-5ms | High | Medium |
| HNSW SQ | Memory-constrained | 2-8ms | Medium | Medium |
| HNSW BQ | Extreme compression | 5-15ms | Low | Fast |
| IVF | Large datasets (10M+) | 10-50ms | Low | Fast |
| IVF PQ | Billion-scale vectors | 20-100ms | Very Low | Fast |
Selection rule-of-thumb: Under 100K vectors, use HNSW. Between 100K-10M, HNSW SQ or IVF. Beyond 10M, IVF PQ trades 5-10% recall for 10x memory savings.
Distance Metrics and Business Semantics
seekdb supports four metrics, each shaping search behavior:
-
L2 (Euclidean): Best for image/audio continuous features; emphasizes absolute differences -
Inner Product: Fastest for unit-normalized text vectors; highest computational efficiency -
Cosine Similarity: Default for text; direction similarity independent of magnitude -
Manhattan: Ideal for sparse features like recommendation interaction matrices
Operational example: A news recommendation service initially used L2 for article vectors, resulting in poor diversity. Switching to cosine similarity increased topical variety in results by 40% because it ignored vector magnitude differences from varying text lengths.
Query Optimization Rules for Hybrids
The optimizer employs specialized heuristics:
-
Selectivity-first: Execute most restrictive filter first (usually scalar or GIS) -
Cost estimation: Models I/O costs using vector index nprobe and text index posting list size -
Vectorized execution: Processes 128 vectors per SIMD operation -
Late materialization: Reads full rows only for final candidates
Performance data: On VectorDBBench, seekdb’s hybrid query latency is 40% lower than Chroma and 60% lower than pgvector+pg_trgm, thanks to unified execution and index fusion.
Hands-On: Build a Semantic Search System in 5 Minutes
Core question: What are the exact steps to implement a working semantic search application from scratch?
Environment Setup
Python SDK (Recommended for AI/ML)
pip install -U pyseekdb
Advantage: Automatic embedding management—no manual model calls needed.
Docker (Quick Validation)
docker run -d --name seekdb -p 2881:2881 \
-v ./data:/var/lib/oceanbase/store oceanbase/seekdb:latest
mysql -h127.0.0.1 -P2881 -uroot -Dtest
Complete Workflow Example
Step 1: Create Multi-Modal Table
CREATE TABLE knowledge_base (
doc_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(500),
content TEXT,
category JSON,
embedding VECTOR(384),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FULLTEXT INDEX ft_idx(content) WITH PARSER ik,
VECTOR INDEX vec_idx(embedding) WITH(DISTANCE=cosine, TYPE=hnsw),
JSON INDEX json_idx(category)
) ORGANIZATION = HEAP;
Step 2: Register AI Services
-- HuggingFace embedding model
CALL DBMS_AI_SERVICE.REGISTER_MODEL(
'embedding_model',
'huggingface',
JSON_OBJECT('url', 'https://api-inference.huggingface.co/models/sentence-transformers/all-MiniLM-L6-v2')
);
-- LLM for summarization
CALL DBMS_AI_SERVICE.REGISTER_MODEL(
'summary_model',
'huggingface',
JSON_OBJECT('url', 'https://api-inference.huggingface.co/models/facebook/bart-large-cnn')
);
Step 3: Insert with Auto-Embedding
-- Auto-generate embedding during insert
INSERT INTO knowledge_base (title, content, category, embedding)
VALUES (
'RAG Optimization Guide',
'Retrieval-augmented generation improves answer quality via hybrid search...',
'{"tags": ["RAG", "LLM", "optimization"]}',
AI_EMBED('RAG optimization hybrid search', 'embedding_model')
);
-- Batch update existing rows
UPDATE knowledge_base
SET embedding = AI_EMBED(CONCAT(title, ' ', content), 'embedding_model')
WHERE embedding IS NULL;
Step 4: Execute Hybrid Search
SELECT
doc_id,
title,
l2_distance(embedding, AI_EMBED('search optimization', 'embedding_model')) AS semantic_score,
MATCH(content) AGAINST('+search +optimization' IN BOOLEAN MODE) AS keyword_score
FROM knowledge_base
WHERE category->>'$.tags' LIKE '%AI%'
AND created_at >= '2024-01-01'
AND MATCH(content) AGAINST('search' IN NATURAL LANGUAGE MODE)
ORDER BY (semantic_score * 0.7 + keyword_score * 0.3) ASC
LIMIT 10;
Step 5: Simplified Hybrid Interface
CALL DBMS_HYBRID_SEARCH.SEARCH(
JSON_OBJECT(
'table', 'knowledge_base',
'vector_column', 'embedding',
'vector_query', AI_EMBED('semantic search tuning', 'embedding_model'),
'text_column', 'content',
'text_query', 'semantic search',
'filter', 'category->>"$.tags" LIKE "%AI%" AND created_at >= "2024-01-01"',
'rerank_strategy', 'weighted_sum',
'weights', JSON_OBJECT('vector', 0.7, 'text', 0.3),
'limit', 10
)
);
Scenario value: This collapses a four-step data pipeline (embed → store → index → query) into a single logical operation. Maintenance burden drops by 60%, end-to-end latency by an order of magnitude.
Resource Efficiency: Scaling Vertically Without Waste
Core question: Can seekdb’s vertical scaling handle real production loads starting from minimal hardware?
Performance Baseline: 1C2G Deployment
seekdb runs VectorDBBench Performance1536D50K on a minimal 1 CPU core + 2GB RAM instance. This configuration supports:
-
Document scale: 50K vectors at 1536 dimensions + metadata -
Query throughput: 200-300 QPS pure vector search; 100-150 QPS hybrid -
Ingestion: 500 docs/sec with real-time index building
Vertical Scaling Headroom
Scale up to 32 cores / 128GB:
-
Data volume: 10M+ vectors + 100M+ scalar records -
Query throughput: 5,000+ QPS vector; 2,000+ QPS hybrid -
Ingestion: 5,000 docs/sec
Total Cost of Ownership Comparison
-
Development: Embedded mode = $0 infrastructure cost for 2-5 person teams -
Testing: Single Docker instance ≈ $50-100/month on cloud VMs -
Production: High-spec single node ≈ $500-2,000/month, supporting 100K DAU RAG apps
Author’s reflection: “Start small” isn’t just marketing—it’s a precise reading of AI application lifecycles. I’ve seen too many teams deploy complex distributed vector databases only to store <100K vectors for six months, paying high operational costs. seekdb’s resource model lets you “grow as needed,” avoiding premature optimization waste. But vertical scaling has limits. When you exceed 50M vectors or 10K QPS, you’ll hit a ceiling. Plan capacity 3-6 months ahead to avoid emergency migrations. The inflection point usually arrives at 50M vectors or 10K QPS—monitor growth curves closely.
Implementation Checklist and One-Page Overview
Action Checklist
-
[ ] Assess scale: Confirm data <50M records, QPS <10K for single-node fit -
[ ] Choose deployment: Prototype → pip install pyseekdb; Production → Docker/RPM -
[ ] Design schema: Add VECTOR columns (384/768/1536 dims) for every semantically searchable text field -
[ ] Register AI services: Configure at least one embedding endpoint in DBMS_AI_SERVICE -
[ ] Build indexes: Vector (HNSW/IVF), full-text (IK tokenizer), scalar (B-tree) -
[ ] Validate plans: Use DBMS_HYBRID_SEARCH.GET_SQLto verify index usage -
[ ] Load test: Run VectorDBBench or custom scripts for p95 latency and throughput -
[ ] Monitor: Track CPU, memory, disk IOPS; alert on vector query latency >100ms
One-Page Overview
| Aspect | Key Points |
|---|---|
| Product | AI-native hybrid search database, single-node, MySQL-compatible |
| Core capabilities | Vector + full-text + JSON + GIS + in-database AI functions |
| Deployment | Embedded Python, Docker container, RPM package |
| Use cases | RAG, AI agents, semantic search, MySQL AI-upgrade |
| Data scale | 10M vectors, 100M scalar rows per node |
| Performance | Hybrid query latency 50-100ms, QPS 1,000-5,000 |
| Ecosystem | LangChain, LlamaIndex, Dify, Coze, FastGPT |
| License | Apache 2.0, commercially friendly |
| Migration | 95% MySQL compatibility, near-zero code changes |
| Scaling path | Embedded → standalone → vertical scale → distributed OceanBase |
Frequently Asked Questions
Q1: How does seekdb compare to dedicated vector databases like Pinecone or Milvus?
A: seekdb excels at hybrid queries and MySQL compatibility, ideal when you need vectors + text + scalars together. Dedicated vector databases scale better for billions of vectors and geo-distributed deployments, but seekdb matches their latency within 10M vectors at lower TCO. Choose based on whether unified simplicity or extreme scale is your priority.
Q2: Is vector data truly real-time and consistent?
A: Yes. seekdb’s LSM-Tree architecture builds vector indexes synchronously on writes. ACID guarantees ensure vector columns stay consistent with metadata—no partial writes.
Q3: What happens if an in-database AI function call fails?
A: The SQL transaction fails and rolls back. For non-critical AI features, implement async model calls with result caching. For real-time queries, set timeouts (e.g., 5s) and define fallback logic in application code.
Q4: Does seekdb support GPU acceleration?
A: The current release focuses on CPU-optimized execution via SIMD. You can point AI_EMBED to GPU-backed inference services, but the database engine itself runs on CPU.
Q5: How can I run A/B tests on embedding models?
A: Register multiple model versions (e.g., embedding_v1, embedding_v2) in DBMS_AI_SERVICE. Use separate VECTOR columns for each version in the same table to compare recall directly in queries.
Q6: What’s the backup and restore story?
A: seekdb inherits OceanBase’s physical and logical backup tools. Vector indexes are backed up as table components—no rebuild needed after restore. Remember to encrypt backups containing API keys.
Q7: How do I configure seekdb in Kubernetes?
A: Use ConfigMaps for configuration files and environment variables for connection parameters. Vector index memory settings (HNSW’s M and ef_construction) are adjustable via SQL without restarts.
Q8: Can seekdb fully replace Elasticsearch?
A: In most AI search scenarios, yes—especially when hybrid retrieval is needed. Elasticsearch still leads in log analytics and complex aggregations. If your core is AI-first, seekdb’s unified architecture wins. If text search dominates without vectors, keep Elasticsearch.

