Мы рады объявить о выпуске Manticore Search 7.0.0, наполненного революционными функциями, оптимизациями производительности и критическими улучшениями, которые повысят ваш опыт поиска. От возможностей нечеткого поиска до бесшовной интеграции с Kafka, этот релиз дает разработчикам возможность создавать более быстрые, устойчивые и удобные приложения.
🚨 Важные заметки по обновлению
Перед тем как погрузиться в новые функции, пожалуйста, ознакомьтесь с этими существенными изменениями:
- Бинлог на уровне таблицы ( #879 ): Выполните чистое завершение работы перед обновлением.
- Обновления протокола репликации ( #1789 , #2308 ): Следуйте инструкциям по перезапуску кластера , чтобы избежать простоя.
- Обновление протокола Master / agent ( #2468 ): Если вы запускаете Manticore Search в распределенной среде с несколькими экземплярами, сначала обновите агенты, затем мастеров.
Для получения полной информации и других существенных изменений обратитесь к журналу изменений .
🔍 Нечеткий поиск и автозаполнение
Прощайте, опечатки! Новый Нечеткий поиск обрабатывает орфографические ошибки, сопоставляя похожие термины, в то время как Автозаполнение предсказывает запросы в реальном времени. Идеально подходит для электронной коммерции и динамических строк поиска.
mysql> call autocomplete('gra', 'test');
+-----------+
| query |
+-----------+
| gradually |
| grow |
| grew |
| angry |
| draw |
| hungry |
| brave |
+-----------+
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)
Обе новые функции также доступны через JSON интерфейс.
Прокрутка для постраничной навигации ( #2811 )
Эффективно перемещайтесь по большим наборам данных с помощью Прокрутки , идеально подходящей для глубокой постраничной навигации без потерь производительности.
SELECT weight(), id FROM test WHERE match('hello') limit 20
OPTION scroll='eyJvcmRlcl9ieV9zdHIiOiJ3ZWlnaHQoKSBkZXNjLCBpZCBhc2MiLCJvcmRlcl9ieSI6W3siYXR0ciI6IndlaWdodCgpIiwiZGVzYyI6dHJ1ZSwidmFsdWUiOjEyODEsInR5cGUiOiJpbnQifSx7ImF0dHIiOiJpZCIsImRlc2MiOmZhbHNlLCJ2YWx1ZSI6MiwidHlwZSI6ImludCJ9XX0=';
⚡ Синхронизация данных в реальном времени из Kafka
Синхронизируйте данные без проблем из Kafka . Встраивайте потоковые данные в Manticore в реальном времени, обеспечивая мгновенный поиск по логам, метрикам или пользовательскому контенту.
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
📊 Производительность: Вторичные индексы для JSON ( #1928 )
Ускорьте запросы, которые фильтруют по атрибутам JSON с помощью вторичных индексов для json.
ALTER TABLE users ADD COLUMN profile JSON;
ALTER TABLE users ADD secondary_index profile_json ON (profile);
Также есть новая команда SHOW TABLE INDEXES для проверки индексов:
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)
📊 Производительность: Неблокирующие обновления и слияния ( #2361 )
Больше никаких задержек запросов во время слияний дисковых чанков! Обновления и поиски теперь выполняются без перерывов, пока оптимизируются дисковые чанки.
📊 Производительность: Автоматическая очистка дисковых чанков для RT таблиц ( #2787 )
Теперь Manticore автоматически очищает RAM чанк в дисковый чанк, предотвращая проблемы с производительностью, вызванные отсутствием оптимизаций в RAM чанках, что иногда может привести к нестабильности в зависимости от размера чанка.
Вы можете контролировать это для каждой таблицы или для всей таблицы с помощью настройки diskchunk_flush_write_timeout .
🌍 Токенизация китайского языка Jieba ( #931 )
Достигайте точного анализа китайского текста с помощью интеграции Jieba .
CREATE TABLE products(title text, price float) charset_table = 'cont' morphology = 'jieba_chinese'
И многое другое
Обновления, выделенные выше, являются лишь частью множества улучшений, включенных в Manticore 7.0.0. Пожалуйста, ознакомьтесь с:
🚀 7 основными изменениями
✅ 49 незначительными изменениями
🐞 63 исправлениями ошибок
🚀 Начните сегодня
Обновите до Manticore Search 7.0.0, чтобы воспользоваться этими мощными новыми функциями. Для полного списка изменений посетите журнал изменений .
Мы будем рады услышать от вас!
- Присоединяйтесь к обсуждению на нашем Форуме сообщества
- Сообщайте о проблемах или предлагайте функции на GitHub
- Общайтесь с нами в Slack
- Напишите нам напрямую на
[email protected]
Особая благодарность участникам @subnix , @animetosho , Алексею Иванову и всем, кто помог создать этот релиз! ❤️
