# Manticore Search 7.0.0: Smarter Search, Real-Time Syncing, and Enhanced Performance

Manticore Search 7.0.0 introduces fuzzy search, query suggestions, Kafka integration, scroll pagination, Chinese tokenization, and 60+ improvements

We’re thrilled to announce the release of **Manticore Search 7.0.0**, packed with groundbreaking features, performance optimizations, and critical improvements to elevate your search experience. From fuzzy search capabilities to seamless Kafka integration, this release empowers developers to build faster, more resilient, and user-friendly applications.

---

### 🚨 Important Upgrade Notes

Before diving into the new features, please review these **breaking changes**:

1. **Per-Table Binlog** ([#879](https://github.com/manticoresoftware/manticoresearch/issues/879)): Perform a **clean shutdown** before upgrading.
2. **Replication Protocol Updates** ([#1789](https://github.com/manticoresoftware/manticoresearch/issues/1789), [#2308](https://github.com/manticoresoftware/manticoresearch/issues/2308)): Follow [cluster restart guidelines](https://manual.manticoresearch.com/Creating_a_cluster/Setting_up_replication/Restarting_a_cluster#Restarting-a-cluster) to avoid downtime.
3. **Master / agent Protocol Update** ([#2468](https://github.com/manticoresoftware/manticoresearch/issues/2468)): If you are running Manticore Search in a distributed environment with multiple instances, make sure to first upgrade the agents, then the masters.

For full details and more breaking changes, refer to the [changelog](https://manual.manticoresearch.com/Changelog#Version-7.0.0).

---

### 🔍 Fuzzy Search & Autocomplete
Say goodbye to typos! The new **[Fuzzy Search](https://manual.manticoresearch.com/Searching/Spell_correction#Fuzzy-Search)** handles spelling mistakes by matching similar terms, while **[Autocomplete](https://manual.manticoresearch.com/Searching/Autocomplete#CALL-AUTOCOMPLETE)** predicts queries in real time. Perfect for e-commerce and dynamic search bars.

```sql
mysql> call autocomplete('gra', 'test');
+-----------+
| query     |
+-----------+
| gradually |
| grow      |
| grew      |
| angry     |
| draw      |
| hungry    |
| brave     |
+-----------+
```

```sql
mysql> SELECT * FROM mytable WHERE MATCH('someting') OPTION fuzzy=1, layouts='us,ua', distance=2;
+------+-------------+
| id   | content     |
+------+-------------+
|    1 | something   |
|    2 | some thing  |
+------+-------------+
2 rows in set (0.00 sec)
```

Both new features are also accessible via the JSON interface.

### Scroll for Pagination ([#2811](https://github.com/manticoresoftware/manticoresearch/issues/2811))
Efficiently navigate large datasets with the **[Scroll](https://manual.manticoresearch.com/Searching/Pagination#Scroll-Search-Option)** option, ideal for deep pagination without performance penalties.

```sql
SELECT weight(), id FROM test WHERE match('hello') limit 20
OPTION scroll='eyJvcmRlcl9ieV9zdHIiOiJ3ZWlnaHQoKSBkZXNjLCBpZCBhc2MiLCJvcmRlcl9ieSI6W3siYXR0ciI6IndlaWdodCgpIiwiZGVzYyI6dHJ1ZSwidmFsdWUiOjEyODEsInR5cGUiOiJpbnQifSx7ImF0dHIiOiJpZCIsImRlc2MiOmZhbHNlLCJ2YWx1ZSI6MiwidHlwZSI6ImludCJ9XX0=';
```

---

### ⚡ Real-Time Data Syncing from Kafka

Sync data seamlessly from **[Kafka](https://manual.manticoresearch.com/Integration/Kafka#Syncing-from-Kafka)**. Ingest streaming data into Manticore in real time, enabling instant searchability for logs, metrics, or user-generated content.

```sql
CREATE SOURCE kafka
(id bigint, term text, abbrev '$abbrev' text, GlossDef json)
type='kafka'
broker_list='kafka:9092'
topic_list='my-data'
consumer_group='manticore'
num_consumers='2'
batch=50

CREATE TABLE destination_kafka
(id bigint, name text, short_name text, received_at text, size multi);

CREATE MATERIALIZED VIEW view_table
TO destination_kafka AS
SELECT id, term as name, abbrev as short_name, UTC_TIMESTAMP() as received_at, GlossDef.size as size FROM kafka
```

---

### 📊 Performance: Secondary Indexes for JSON ([#1928](https://github.com/manticoresoftware/manticoresearch/issues/1928))
Accelerate queries that filter by JSON attributes with **[secondary indexes](https://manual.manticoresearch.com/Creating_a_table/Local_tables/Plain_and_real-time_table_settings#json_secondary_indexes) for json**.

```sql
ALTER TABLE users ADD COLUMN profile JSON;
ALTER TABLE users ADD secondary_index profile_json ON (profile);
```

There's also a new command [SHOW TABLE INDEXES](https://manual.manticoresearch.com/Node_info_and_management/Table_settings_and_status/SHOW_TABLE_INDEXES) to inspect indexes:
```sql
mysql> SHOW TABLE test INDEXES;
+------------------------------+--------+---------+---------+
| Name                         | Type   | Enabled | Percent |
+------------------------------+--------+---------+---------+
| j['addresses']               | uint32 | 1       | 100     |
| j['addresses']['a1']         | uint32 | 1       | 100     |
| j['addresses']['a2']         | uint32 | 1       | 100     |
| j['factor']                  | uint32 | 1       | 100     |
| j['int_arr']                 | uint32 | 1       | 100     |
| j['tags']                    | uint32 | 1       | 100     |
| id                           | int64  | 1       | 100     |
| j['price']                   | float  | 1       | 100     |
| j['addresses']['a1']['id']   | string | 1       | 100     |
| j['addresses']['a1']['name'] | string | 1       | 100     |
| j['addresses']['a2']['id']   | string | 1       | 100     |
| j['addresses']['a2']['name'] | string | 1       | 100     |
| j['arr']                     | string | 1       | 100     |
| j['str']                     | string | 1       | 100     |
| j['tags']['1']               | string | 1       | 100     |
| j['tags']['2']               | string | 1       | 100     |
+------------------------------+--------+---------+---------+
16 rows in set (0.00 sec)
```

---

### 📊 Performance: Non-Blocking Updates & Merges ([#2361](https://github.com/manticoresoftware/manticoresearch/issues/2361))
No more query delays during disk chunk merges! Updates and searches now run uninterrupted while disk chunks are optimized.

---

### 📊 Performance: Automatic disk chunk flush for RT tables ([#2787](https://github.com/manticoresoftware/manticoresearch/issues/2787))

Now, Manticore automatically flushes a RAM chunk to a disk chunk, preventing performance issues caused by the lack of optimizations in RAM chunks, which could sometimes lead to instability depending on chunk size.

You can control it per-table or for the whole table with the [diskchunk_flush_write_timeout](https://manual.manticoresearch.com/Server_settings/Searchd#diskchunk_flush_write_timeout) setting.

---

### 🌍 Jieba Chinese Tokenization ([#931](https://github.com/manticoresoftware/manticoresearch/issues/931))
Achieve precise Chinese text analysis with **[Jieba integration](https://manual.manticoresearch.com/Creating_a_table/NLP_and_tokenization/Languages_with_continuous_scripts#Chinese-Tokenization)**.

```sql
CREATE TABLE products(title text, price float) charset_table = 'cont' morphology = 'jieba_chinese'
```

---

### And many more
The updates highlighted above are just a part of the many improvements included in Manticore 7.0.0. Please read about:

🚀 7 major changes
✅ 49 minor changes
🐞 63 bug fixes

in the [changelog](https://manual.manticoresearch.com/Changelog).

---

## 🚀 Get Started Today
Upgrade to **Manticore Search 7.0.0** to leverage these powerful new features. For a full list of changes, visit the [changelog](https://manual.manticoresearch.com/Changelog).

**We’d love to hear from you!**
- Join the discussion on our [Community Forum](https://forum.manticoresearch.com)
- Report issues or suggest features on [GitHub](https://github.com/manticoresoftware/manticoresearch/issues)
- Chat with us on [Slack](https://slack.manticoresearch.com)
* Email us directly at `contact@manticoresearch.com`

*Special thanks to contributors [@subnix](https://github.com/subnix), [@animetosho](https://github.com/animetosho), Alexey Ivanov and all who helped shape this release!* ❤️
