我们很高兴地宣布Manticore Search 6.3.0的发布!此版本带来了大量增强、新功能和更新,使您的搜索引擎更加强大和用户友好。
向量搜索
- 浮点向量数据类型:我们引入了 float_vector 数据类型,允许您存储和查询浮点数数组。这对于需要使用向量搜索执行相似性搜索的应用程序特别有用。
- 向量搜索功能:结合新的数据类型,向量搜索功能使您能够执行k最近邻(KNN)向量搜索。这对于在应用程序中构建更直观和响应迅速的搜索功能非常理想。请在博客文章 向量搜索在Manticore中的应用 中了解更多。
JOIN(测试版)
尽管Manticore Search中的JOIN功能仍处于测试阶段,但它代表了用户执行查询和管理数据关系方式的重大增强。 在文档中了解更多 。
示例:
SELECT product, customers.email, customers.name, customers.address
FROM orders
LEFT JOIN customers
ON customers.id = orders.customer_id
WHERE MATCH('maple', customers)
ORDER BY customers.email ASC;
+----------+-------------------+----------------+-------------------+
| product | customers.email | customers.name | customers.address |
+----------+-------------------+----------------+-------------------+
| Phone | NULL | NULL | NULL |
| Monitor | NULL | NULL | NULL |
| Keyboard | NULL | NULL | NULL |
| Laptop | alice@example.com | Alice Johnson | 123 Maple St |
| Tablet | alice@example.com | Alice Johnson | 123 Maple St |
+----------+-------------------+----------------+-------------------+
5 rows in set (0.00 sec)
正则表达式
新的 REGEX运算符 显著改善了您搜索复杂文本模式的方式。此功能在需要非常准确的搜索结果的领域尤为重要,例如分析专利、审查合同和搜索商标。
例如,在数据分析中,REGEX运算符可以帮助查找日志文件或代码中的特定错误代码或编程模式。在学术研究中,它使查找使用特定引用样式的文章变得更加容易。对于商标搜索,此工具非常适合识别完全相同或非常相似的商标。这一增强使Manticore Search在处理详细和复杂搜索时更加强大和精确。
在
博客文章
中了解更多:
示例:
SELECT * FROM brands WHERE MATCH('"REGEX(/(c|sea).*crest/) REGEX(/flo(we|u)r/)"')
+---------------------+-----------------+
| id | name |
+---------------------+-----------------+
| 1515699435999330620 | SeaCrest Flower |
| 1515699435999330621 | C-Crest Flour |
| 1515699435999330622 | CCrest Flower |
+---------------------+-----------------+
Range() 和 histogram()
新的
RANGE函数
通过将值分类到指定区间来增强聚合、分面和分组。这些区间是使用range_from和range_to定义的,确定值落入的边界。此功能允许根据用户定义的范围有效地对数据进行排序和分析。
示例:
select * from test;
+---------------------+-----------+-------+
| id | data | value |
+---------------------+-----------+-------+
| 8217240980223426563 | Product 1 | 12 |
| 8217240980223426564 | Product 2 | 15 |
| 8217240980223426565 | Product 3 | 23 |
| 8217240980223426566 | Product 4 | 3 |
+---------------------+-----------+-------+
SELECT COUNT(*), RANGE(value, {range_to=10},{range_from=10,range_to=25},{range_from=25}) price_range FROM test GROUP BY price_range ORDER BY price_range ASC;
+----------+-------------+
| count(*) | price_range |
+----------+-------------+
| 1 | 0 |
| 3 | 1 |
+----------+-------------+
Manticore Search中的
HISTOGRAM()
函数根据指定的桶大小将数据分类到桶中。它返回每个值的桶编号,使用hist_interval和hist_offset参数来确定适当的桶。该函数通过测量从桶的起始点到桶的距离来计算桶键,并根据区间大小进行调整。此功能对于创建直方图尤其有用,直方图将数据分组到特定值范围内,以便于分析和可视化。
示例:
select count(*), histogram (value, {hist_interval=10}) as price_range from test GROUP BY price_range ORDER BY price_range ASC;
+----------+-------------+
| count(*) | price_range |
+----------+-------------+
| 1 | 0 |
| 2 | 10 |
| 1 | 20 |
+----------+-------------+
还有 date_range 和 date_histogram 用于类似的日期/时间数据聚合。
新命令以简化数据更新和模式管理
- ALTER TABLE ... type='distributed' 允许您在不先删除的情况下更改分布式表。
- CREATE TABLE ... LIKE ... WITH DATA 使您可以轻松复制实时表及其所有数据。
- 使用 REPLACE INTO ... SET 更新表中记录的部分内容。
- 将一个实时表附加到另一个表 将两个表合并为一个。
- 使用 ALTER TABLE ... RENAME 重命名实时表,以保持数据库的组织性。
复制相关的更改
在复制领域进行了重大更改,以改善节点之间的数据传输过程。已修复在传输大文件时的复制错误,添加了重试命令执行的机制,并改善了复制过程中的网络管理。解决了复制和属性更新期间的阻塞问题,并为加入集群的节点添加了跳过复制更新命令的功能。所有这些更改都提高了在各种使用场景中复制过程的效率和可靠性。
有关更改的详细信息,请参见 此处 。
许可证更改和性能优化
我们已将 Manticore Search 的许可证更改为 GPLv3 或更高版本。这个新许可证为用户提供了更好的法律安全性,并与其他开源许可证更兼容。此更改表明我们致力于满足社区的需求,并保持开源软件的强大。在版本 6.3.0 中,我们添加了 Apache 2 许可证的 CCTZ library ,使日期/时间函数的速度大大提高。请看改进:
之前:
mysql> select count(*),year(time_local) y, month(time_local) m from logs10m where y>2010 and m<5;
+----------+------+------+
| count(*) | y | m |
+----------+------+------+
| 10365132 | 2019 | 1 |
+----------+------+------+
1 row in set (8.26 sec)
现在:
mysql> select count(*),year(time_local) y, month(time_local) m from logs10m where y>2010 and m<5;
+----------+------+------+
| count(*) | y | m |
+----------+------+------+
| 10365132 | 2019 | 1 |
+----------+------+------+
1 row in set (0.11 sec)
查询现在快了 75 倍。
我们还改进了表的压缩方式。之前,在合并磁盘块时,Manticore 从任何包含已删除文档的块中删除这些文档,消耗了大量资源。我们已停止使用这种方法。现在,合并块仅由 progressive_merge 设置管理,这使得过程更简单,资源消耗更少。
Ubuntu Noble 24.04
Ubuntu Noble 24.04 现在得到支持。
还有更多
上述更新只是 Manticore 6.3.0 中众多改进的一部分。请阅读:
🚀 9 个主要更改
✅ 50+ 个次要更改
🐞 120+ 个错误修复
在 changelog 中。
我们希望您喜欢 Manticore Search 中的新功能和改进。我们欢迎您的反馈,并鼓励您通过以下方式与我们互动:
- 在我们的 Community Forum 上开始讨论
- 在 GitHub 上报告错误或建议新功能
- 加入我们 Public Slack Chat 的讨论
- 直接通过电子邮件与我们联系
[email protected]

