Semantic search — поиск документов по смыслу query, не по keyword match. Принцип: embedding query + doc в vectors → cosine similarity → top-k closest docs. Понимает synonyms ("car" ≈ "automobile"), концептуальные связи ("how to fix engine" → docs про motor troubleshooting). Comparing traditional: BM25/TF-IDF только keyword. Hybrid search: sparse (BM25) + dense (embeddings) + rerank — 2026 best practice.
Ниже: подробности, пример, смежные термины, FAQ.
# Hybrid search с Qdrant
curl -X POST http://localhost:6333/collections/docs/points/search/batch \
-d '{
"searches": [
{"vector": {"name": "dense", "vector": [...]}, "limit": 50},
{"vector": {"name": "sparse", "vector": {"indices": [...], "values": [...]}}, "limit": 50}
]
}'Нет. BM25 отличен для exact-match (code, names, rare words). Hybrid (sparse + dense) лучше чем любой alone.
Elasticsearch: mature, sparse search king, добавил vector в 8+. Qdrant: dense-first, Rust быстрый. Для hybrid — Elasticsearch+vector extension или Weaviate natively.
<100ms для interactive search. HNSW ANN index helps, no full scan. Для >1M docs — ок.