我们很高兴地宣布发布 Manticore Search 7.0.0,它包含了突破性的功能、性能优化和关键改进,以提升您的搜索体验。从模糊搜索功能到无缝的 Kafka 集成,此版本使开发人员能够构建更快、更强大和用户友好的应用程序。
🚨 重要升级说明
在深入了解新功能之前,请查看这些 重大变更:
- 每个表的 Binlog ( #879 ): 在升级之前请执行 干净的关闭。
- 复制协议更新 ( #1789 , #2308 ): 请遵循 集群重启指南 以避免停机。
- 主/代理协议更新 ( #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 )
通过 二级索引 for 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 以利用这些强大的新功能。有关更改的完整列表,请访问 变更日志 。
我们期待您的反馈!
- 直接通过电子邮件与我们联系
[email protected]
特别感谢贡献者 @subnix 、 @animetosho 、Alexey Ivanov 以及所有帮助塑造此版本的人! ❤️
