Version 25.0.0
Released: March 30th 2026
This release brings a broader packaging overhaul, new API_URL and API_TIMEOUT options for auto-embedding models, hybrid search, S3-compatible backup and restore support, faster RT tables maintenance with N-way merges and parallel OPTIMIZE, KNN prefiltering, and MySQL-compatible prepared statements.
Breaking Changes
- ⚠️ v25.0.0 PR #123 Breaking change: updated MCL to 13.0.0, adding
API_URLandAPI_TIMEOUTfor auto-embedding models. This affects you if you use auto-embedding models or manage MCL separately from the daemon, because Manticore 25.0.0 requires MCL 13.0.0 and is not compatible with older MCL versions; upgrade the daemon and MCL together, and downgrade is only safe if you also restore a matching older MCL version. - ⚠️ v24.0.0 Issue #4343 Breaking change: the internal replication protocol version is bumped, and cluster epoch tracking is added so recovering nodes can detect when cluster table membership changed while they were offline and use SST instead of failing during IST recovery. This affects you only if you use replication clusters: mixed-version replication clusters are not compatible across this change, so upgrade clustered nodes together, and downgrade is only safe before the new replication protocol is used in the cluster.
- ⚠️ v23.0.0 Issue #4364 Breaking change: index format version 69 is introduced to support new bigram tokenization options, including
bigram_delimitermodes and digit-awarebigram_indexmodes. This affects you if you use those bigram options or if you rebuild indexes and later need to open the rewritten indexes with an older Manticore version: existing older indexes remain readable, but indexes rebuilt or newly written in format 69 are not compatible with older Manticore versions, so downgrade is only safe before such indexes are rewritten. - ⚠️ v22.0.0 Issue #4301 Breaking change: embedding generation for RT tables is moved out of the commit phase and replicated as vector data. This affects you if you use replication clusters with RT tables that have
model_name: it preserves user-provided vectors, prevents replicas from regenerating different embeddings, and improves auto-embeddings performance when used with replication, but mixed-version replication clusters are not compatible across this change. Upgrade clustered nodes together; downgrade is only safe before the new replication protocol is used in the cluster. - ⚠️ v21.0.0 PR #138 Breaking change: updated MCL to 12.0.0 and bumped the required KNN API to support adaptive KNN early termination during HNSW traversal. This affects you if you manage MCL separately from the daemon or run KNN queries that rely on the previous candidate exploration behavior or borderline result selection: Manticore 21.0.0 requires MCL 12.0.0 with the newer KNN interface, and with that library KNN search can stop earlier once enough candidates are found, which may change which candidates are explored and returned. Existing data remains compatible and no special migration is required, but upgrade the daemon and MCL together; downgrade is only safe if you also restore a matching older MCL version.
- ⚠️ v19.0.0 Issue #4103 Breaking change: added KNN prefiltering. This affects you if you run KNN queries together with attribute filters, because filters can now be applied during KNN search instead of only after candidate selection. That changes result-selection behavior for filtered KNN queries by prioritizing filtered nearest neighbors; no special migration is required, but queries relying on the previous post-filtered result behavior may return different results after upgrade. Downgrade is possible since no index or protocol format change is introduced by this feature.
- ⚠️ v18.0.0 Issue #4261 Breaking change: index format version 68 is introduced to fix
hitless_wordsdictionary layout handling. This affects you if you rebuild or newly write indexes and later need to open them with an older Manticore version: existing older indexes remain readable, but any indexes rebuilt or newly written in the new format are not compatible with older Manticore versions, so downgrade is only safe before such indexes are rewritten.
Packaging-related changes
- 🆕 v25.0.0 PR #4357 Packaging change:
manticoreis now a bundle package for deb and rpm. It includes the daemon, tools, converter, development headers, ICU data, bundled dependency packages (manticore-columnar-lib,manticore-backup,manticore-buddy,manticore-executor,manticore-load,manticore-galera, andmanticore-tzdatawhere applicable), plus built-in language packs for German, English, and Russian, along with Jieba support. The Ukrainian lemmatizer is not bundled; install it separately using the Debian/Ubuntu or RHEL/CentOS instructions.
When upgrading from the previous package layout, normally you can just install themanticorepackage. If the old split packages cause conflicts, remove them withapt remove 'manticore*'oryum remove 'manticore*'and then installmanticore. That cleanup does not remove your existing data or configuration.
New Features and Improvements
- 🆕 v24.4.0 PR #4091 Improved RT table compaction by adding N-way disk chunk merges and parallel
OPTIMIZEjobs, reducing the time needed to merge many disk chunks and exposing the newmerge_chunks_per_jobandparallel_chunk_mergessettings. - 🆕 v24.3.0 PR #133 Updated Manticore Backup to 1.10.0, adding S3-compatible backup and restore support, including AWS S3, MinIO, Wasabi, and Cloudflare R2.
- 🆕 v24.2.0 Issue #2079 Added hybrid search with Reciprocal Rank Fusion (
fusion_method='rrf'), allowing SQL and JSON queries to combine full-text and KNN results, rank them withhybrid_score(), and support multiple KNN subqueries in a single fused result set. - 🆕 v24.1.0 PR #141 Updated MCL to 12.4.1, adding support for GGUF quantized local embedding models, T5 encoder models, and gated Hugging Face models via token-authenticated downloads.
- 🆕 v23.2.0 PR #4372 Updated Buddy to 3.44.0, adding fuzzy search support for queries involving multiple tables.
- 🆕 v23.1.0 PR #4357 Added a new Manticore bundle package for deb and rpm, replacing the previous meta package to simplify installation and distribution of bundled components.
- 🆕 v21.1.0 PR #4352 Updated MCL to 12.1.0, improving KNN early-termination performance and adding more efficient 64-bit value encoding.
- 🆕 v19.2.0 PR #4306 Updated MCL to 11.1.0, adding codec cache support.
- 🆕 v19.1.0 PR #4271 Updated Buddy to 3.43.0, including improved metrics handling.
- 🆕 v19.0.3 Issue #4303 Added separate
interactive_timeoutandwait_timeouthandling for SQL connections, so interactive clients and non-interactive clients can use different idle timeouts like MySQL. - 🆕 v17.6.0 Issue #1124 Added MySQL-compatible prepared statements support, including binary protocol prepare/execute handling and bound parameter validation.
Bug Fixes
- 🪲 v24.2.3 Issue #4375 Fixed false-positive full-text matches when
max_query_timeinterrupts queries using operators such asNOTNEAR,MAYBE, or negation, so timed-out searches no longer return rows that do not actually satisfy the query. - 🪲 v24.2.2 Issue #4398 Fixed query time statistics so query log, global counters, and per-table
SHOW STATUStimings stay consistent, and Buddy’s internal requests no longer distort user-facing daemon stats. - 🪲 v24.2.1 PR #653 Updated Buddy to 3.44.1, fixing incorrect default handling of empty request payloads.
- 🪲 v24.1.3 PR #4396 Fixed manual
searchdstartup on macOS so Buddy-backed SQL commands no longer fail from loading an older systemlibcurl; runtime lookup now prefers Homebrew curl automatically, withMANTICORE_CURL_LIBstill available as an explicit override. - 🪲 v24.1.2 PR #4394 Fixed macOS packaged builds so Buddy-backed SQL commands no longer fail because
searchdlinks against an incompatiblelibcurl; the package now prefers Homebrew curl and supports aMANTICORE_CURL_LIBruntime override. - 🪲 v24.1.1 Issue #4388 Fixed replication in clusters when a transaction contains duplicate document IDs, so replicas no longer lose rows while the donor correctly removes duplicates.
- 🪲 v24.0.1 Issue #4354 Fixed
UPDATEhandling when a changed attribute must also disable its secondary index, preventing incorrect warnings and inconsistent secondary-index state. - 🪲 v23.0.2 PR #4370 Updated MCL to 12.1.1, fixing crashes during auto-embedding generation when text contains invalid UTF-8, including inserts into tables with
html_strip=1. - 🪲 v23.0.1 PR #4371 Fixed a missing RT segments lock during embedding validation, preventing crashes and race conditions in embedding-related operations.
- 🪲 v21.0.3 Issue #4315 Fixed inserts into tables with auto-embedding columns so MVA values are preserved instead of being stored as empty.
- 🪲 v21.0.2 PR #4277 Updated Buddy to 3.43.1, fixing autocomplete and fuzzy search handling for terms with numeric prefixes and wildcard asterisks.
- 🪲 v21.0.1 PR #4349 Fixed a crash during embedding generation for tables using columnar storage.
- 🪲 v19.2.5 PR #4333 Updated Executor to 1.4.1, switching PHP source downloads from php.net to GitHub to avoid CAPTCHA-protected links, and bumping bundled PHP to 8.4.18.
- 🪲 v19.2.4 Issue #4314 Fixed model-backed
float_vectorcolumns to support an explicit emptyFROM='', which now correctly means “use all text/string fields.”. - 🪲 v19.2.3 Issue #4315 Fixed inserts into tables with auto-embedding
float_vectorcolumns so MVA values are preserved instead of being stored as empty. - 🪲 v19.2.2 Issue #4297 Fixed
IMPORT TABLEto copy external files correctly, includinghitless_words, so imported tables no longer reference missing external files after import. - 🪲 v19.2.1 Issue #4229 Fixed
LEFT JOINresults to emit proper MySQLNULLvalues instead of the stringNULL, improving compatibility with native MySQL clients and drivers. - 🪲 v19.0.4 Issue #4308 Fixed daemon crashes caused by filtering on stored/full-text fields such as
WHERE title='test'; these queries now return an error instead of crashing. - 🪲 v19.0.2 PR #4311 Fixed crashes in HTTP
/sql?mode=rawmulti-statement requests using.@filesfollowed bySHOW META. - 🪲 v19.0.1 Issue #4103 Updated MCL to 11.0.0 to support KNN prefiltering.
- 🪲 v18.0.1 Issue #4293 Fixed
ALTER TABLE ... ADD COLUMNfor auto-embeddingfloat_vectorcolumns somodel_nameandFROMare preserved correctly instead of being replaced withknn_dims='0'. - 🪲 v17.6.6 Issue #4264 Fixed kqueue EOF handling on macOS to prevent spurious HTTP receive warnings such as
Resource temporarily unavailableduring request processing. - 🪲 v17.6.5 PR #4296 Fixed document-count and cost estimation for full-text
ANDnodes, improving query planner decisions for intersecting full-text conditions. - 🪲 v17.6.4 Issue #4274 Fixed
indextool --checkfailing to open disk-chunkhitless_wordsfiles by resolving their paths relative to the index directory. - 🪲 v17.6.3 Issue #4284 Fixed crashes on replica nodes when inserting into clustered tables with auto-embeddings by preserving the source text needed to generate embeddings during replicated commits.
- 🪲 v17.6.2 Issue #4257 Fixed a Valgrind-detected invalid read in prepared statement execution by ensuring the parser input buffer is terminated correctly.
- 🪲 v17.6.1 Issue #4207 Added a regression fix and test coverage for the RT disk chunk save race that could lose document kills and lead to duplicate rows after merges.
- 🪲 v17.5.10 Issue #4207 Updated MCL to 10.2.2, fixing crashes when running searches while data is being inserted into tables with local embedding models by adding a concurrency guard around local model usage.
- 🪲 v17.5.9 PR #4247 Fixed a race during RT disk chunk save that could lose document kills and produce duplicate rows after merges or saves.
- 🪲 v17.5.8 PR #4241 Fixed incorrect post-limit attribute evaluation in joined tables, including
LEFT JOINqueries after flushing RAM chunks to disk. - 🪲 v17.5.7 PR #4239 Clarified query-time and wall-time definitions in logging and status documentation.
- 🪲 v17.5.6 PR #4245 Fixed global
search_stats_ms_*metrics overreporting search time by double-counting local execution time; these statistics now match the actual query execution time. - 🪲 v17.5.5 Issue #858 Fixed
HIGHLIGHT()and snippet generation for CJK text adding unnecessary spaces between words; highlighted excerpts now preserve the original text spacing instead of tokenized spacing. - 🪲 v17.5.4 Issue #1166 Fixed a crash on INSERT after
TRUNCATE TABLE ... WITH RECONFIGUREfor RT tables withindex_field_lengths=1, particularly when fields and string attributes are mixed; field-length attributes are now set up correctly during reconfigure. - 🪲 v17.5.3 Fixed corrupted Wordforms documentation content in the manual.
- 🪲 v17.5.2 Issue #3213 Fixed JOIN queries filtering on expressions built from aliases of joined-table columns, such as
SELECT t2.i al, (al*0.1) pct ... WHERE pct > 0, which could fail withincoming-schema expression missing evaluator; these filters now evaluate correctly after the join.