Manticore Search 25.0.0: Key Updates for Hybrid Search and RT Tables
Manticore Search 25.0.0 introduces full hybrid search, combining full-text and vector queries in a single call. Packaging has been simplified, KNN pre-filtering added, parallel serving for RT tables, support for prepared statements, and backups to S3-compatible storage. These changes optimize deployment and operation of search systems for high-load scenarios.
Upgrade Requirements
Before upgrading, note these incompatibilities:
- MCL 13.0.0 is required, with new API_URL and API_TIMEOUT parameters for embeddings.
- Upgrade replication clusters consistently due to replication protocol changes from 24.0.0.
- Bigrams tokenization changes (since 23.0.0) make indexes incompatible with legacy versions.
- KNN pre-filtering changes result ordering: neighbors matching the filter now take priority during search.
Simplified Packaging
The manticore package is now monolithic for deb/rpm: includes the daemon, tools, converter, ICU data, Jieba, and language packs (de, en, ru). To upgrade: remove old manticore* packages and install the new one—data is preserved. In yum-based systems, the config is backed up automatically. This eliminates dependency conflicts and simplifies DevOps processes.
Hybrid Search
Hybrid search combines MATCH() and KNN() in SQL or JSON. Example SQL query:
SELECT * FROM table
WHERE MATCH('query')
AND KNN('vector_column', query_embedding, 10) > 0.8;
Perfect for semantic search with lexical precision: product categories, multi-tenancy, RBAC filters. It reduces latency through a single query.
KNN Pre-Filtering
Attribute filters are applied during vector search, not afterward. For queries like "nearest vector neighbors + category=electronics", relevance improves as irrelevant candidates are filtered early. Ideal for e-commerce, recommendations, and enterprise search with ACL.
RT Table Optimization
Parallel N-ary chunk merges accelerate OPTIMIZE under heavy write loads. Instead of sequential merging, concurrent tasks reduce compaction downtime. RT tables can now handle high-insert traffic without degrading query performance.
Prepared Statements
Support for MySQL-compatible prepared statements via prepare/execute in the binary protocol. Works seamlessly with connection pools, ORMs (SQLAlchemy, Hibernate), and frameworks. Simplifies migration from MySQL/PostgreSQL without refactoring client code.
PREPARE stmt FROM 'SELECT * FROM idx WHERE MATCH(?)';
EXECUTE stmt USING 'search query';
DEALLOCATE PREPARE stmt;
S3 Backups
Backup/restore now supports AWS S3, MinIO, Wasabi, and Cloudflare R2. Perfect for Kubernetes/Docker setups where local disks are ephemeral but object storage is persistent. Command: backup --storage s3://bucket/path.
Automatic Embeddings
MCL 13.0.0 adds API_URL and API_TIMEOUT. Supports GGUF (quantized), T5-encoder, HF with rate limiting, and embedding replication in RT tables. Enables on-the-fly embedding generation for local or cloud pipelines without external services.
Bug Fixes
The release includes 36 fixes:
- No false MATCH triggers during max_query_time timeouts.
- Replication no longer loses rows on duplicate doc IDs.
- Improved stability for auto-embeddings: UTF-8 handling, RT locks.
- LEFT JOIN now returns proper MySQL NULL (not the string 'NULL').
- Race condition in RT-chunk saving fixed.
- Fuzzy search works correctly in multi-table queries.
What's Important:
- Hybrid search cuts code complexity by 30–50% for semantic applications.
- KNN pre-filtering improves precision in filtered workloads.
- Monolithic package streamlines CI/CD pipelines.
- S3 backups deliver RPO/RTO <1h in the cloud.
- Prepared statements accelerate integration with the MySQL ecosystem.
Detailed changelog available in the repository. Version 25.0.0 makes Manticore production-ready for hybrid search at scale.
— Editorial Team
No comments yet.