Manticore Search 28.6.6 has been released. The headline additions are UUID document IDs for real-time tables and ordered, limited GROUP_CONCAT() for grouped queries. The release also includes 16 fixes for backups, replication, query processing, SQL compatibility, and secondary indexes.
This post covers everything shipped from 28.4.5 through 28.6.6.
Upgrade notes
There are no new mandatory data migrations in this release. UUID IDs are an opt-in table definition: existing numeric-ID tables keep working as they are. If you want UUID identifiers, create a real-time table with id uuid; ALTER TABLE cannot convert an existing table between numeric and UUID IDs.
Two fixes are particularly useful for production installations. Successful backups now always unfreeze real-time tables when they finish (previously in rare cases they didn't), rather than leaving writes blocked. And authenticated replication can again add an existing populated RT table with ALTER CLUSTER ... ADD.
UUID document IDs for real-time tables
Applications often already have UUID identifiers from the system of record. Until now, using them with Manticore Search meant maintaining a separate numeric ID mapping. Real-time tables can now use UUID document IDs directly:
CREATE TABLE products_uuid(id uuid, title text, price int);
Enter fullscreen mode Exit fullscreen mode
Manticore accepts an explicit UUID string, or generates one when id is omitted from an insert or replace. UUID equality and IN filters work in queries, and UUID IDs can be used with REPLACE, UPDATE, and DELETE.
This is currently a real-time-table capability, including columnar and replicated RT tables. Plain, percolate, and sharded tables continue to use their existing ID models.
Ordered and limited GROUP_CONCAT()
Grouped results often need a compact preview of the most relevant values in each group. GROUP_CONCAT() can now sort values and retain only the requested number of them in explicit SQL GROUP BY queries:
SELECT category,
GROUP_CONCAT(title ORDER BY price DESC SEPARATOR ', ' LIMIT 3)
FROM products
GROUP BY category;
Enter fullscreen mode Exit fullscreen mode
The new ORDER BY, SEPARATOR, and LIMIT options let the query return the top values in the requested order instead of concatenating an arbitrary-sized set and sorting it again in application code. See the GROUP_CONCAT() reference for the full syntax.
Safer table, backup, and cluster maintenance
A few changes remove failures that tend to appear during routine operations rather than ordinary searches:
- Manticore Backup 1.10.2 fixes a path where a successful backup could leave an RT table frozen and future writes blocked.
- Authenticated replication state transfer now works when
ALTER CLUSTER ... ADDis used to add a populated RT table. - RT lifecycle operations now remove obsolete external files after
ALTER,TRUNCATE, chunk removal, and optimization. The same release preserves Jieba settings during unrelatedALTER TABLEoperations and rejects unsupported effective setting changes explicitly. -
OPTIMIZE TABLE accepts qualified
system.<table>names, so physical sharded tables can be optimized.
Query processing and client compatibility
The fixes are broad, but several stand out for busy search services:
-
CALL SNIPPETS no longer spends seconds simplifying some complex boolean queries before highlighting them when
boolean_simplifyis enabled. - Long exact and phrase-like queries no longer risk a query-stack underestimate that could corrupt memory or crash
searchd; repeated keyword statistics are also deduplicated forlocal_dfwork on multi-chunk RT and distributed tables. - The updated columnar library fixes a StreamVByte decoder over-read that could crash secondary-index queries, including
GROUP BYon JSON fields.indextool --checknow reports corrupted secondary-index files instead of crashing. -
USER()remains usable afterUSERbecame an authentication keyword, restoring MySQL clientstatuscommand compatibility.SHOW INDEX ... STATUSis also protected from a concurrent percentile-calculation race. - Document-ID
IN(...)filters correctly accept valid unsigned 64-bit IDs aboveLong.MAX_VALUE, and aLEFT JOINwith multipleFACETclauses no longer crashes.
The release also fixes a SphinxQL SSL connection-handling race that could consume workers at 100% CPU, and fixes PHP API response parsing and the Ruby API fixture so valid response chunks ending in "0" are preserved.
For the complete list, see the Version 28.6.6 changelog.
Get Manticore Search 28.6.6
Install or upgrade Manticore Search with the installation guide. If you are upgrading an authenticated or replicated deployment, review the existing authentication rollout checklist before changing production traffic.
Need help or want to connect?
- Join our Slack
- Visit the Forum
- Report issues or suggest features on GitHub
- Email us at
[email protected]
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.