我们很高兴地宣布 Manticore Search 3.4.0 的发布。下载链接可在 这里 获取,Docker 镜像在 Docker Hub 。
新功能
在线管理您的索引,无需编辑配置
在 3.3.0 版本中,我们提到 CREATE TABLE 和 DROP TABLE 处于 alpha 阶段。在此版本中,我们宣布:
命令及相关功能通常已准备好在您的应用程序中使用。它使您不仅可以控制数据,还可以控制索引。现在,添加、更新或删除索引变得简单。您仍然可以完全使用并支持在配置文件中定义索引模式的其他模式,这仍然是有意义的(例如,从外部存储同步数据:MySQL / PostgreSQL / CSV 等)。
我们创建了一个互动课程,将向您展示如何处理上述命令。
新的 PHP 客户端
我们很高兴为您带来 Manticore Search 的新官方 PHP 客户端。
与旧客户端相比,新客户端:
- 使用 HTTP 协议而不是 SphinxAPI
- 设计用于 PHP 7+
- 支持 Composer
- 支持连接池和故障转移策略
- 提供不仅用于搜索的方法,还用于数据操作和索引/节点/集群管理
- 可以使用 PSR 日志记录器
新的 Docker 镜像
我们发布了全新重新设计的 Docker 镜像,具有:
- 默认使用的新在线模式更改。即使您没有任何配置,仍然可以使用 Docker 镜像。在生产环境中也是如此
- 内置 MySQL 客户端。您现在不需要在主机上安装它。要查看,只需运行:
docker run --name manticore --rm -d manticoresearch/manticore && docker exec -it manticore mysql -w && docker stop manticore
- 如果您接着执行
source /sandbox.sql
它将创建一个测试索引,您可以使用 UP 和 DOWN 箭头键浏览一些示例查询
- docker-compose 示例,展示了在生产中使用它的推荐方式
- 复制示例
仅存储字段
您现在可以拥有存储但未进行全文索引的字段。当您想存储某些内容以便在最终结果集中仅保留它时,这非常有用,但希望避免:
- 进行全文索引,以免增加字典大小和索引时间
- 将其作为字符串属性保留在内存中以节省 RAM
典型用例包括:
- 对于文档的标题/正文,使用索引 + 存储,以便能够在字段中查找并即时高亮/显示结果
- 对于文档的 URL,仅使用存储,因为您几乎不想通过 URL 进行搜索并高亮显示
- 对于标签/颜色/大小,使用字符串属性以便能够按它们进行过滤并进行分面搜索
注意:现在实时索引的全文字段默认是“存储”的。
从 3.4.0 开始,实时索引中的全文字段默认是“存储”的,这使您添加到 Manticore Search 的所有数据默认以其原始形式可用。Manticore Search 可以作为独立数据库使用,而不是作为其他存储的补充,这就是我们更改默认设置的原因。
所有语言的标记化
现在大多数语言的标记化默认效果良好。
另一个更改的默认值是 charset_table。之前它仅包含数字、拉丁字母和西里尔字母。从此版本开始,它包含 大多数语言 的代码,因此在大多数情况下,您根本不需要担心它。
HTTP /sql 端点
现在所有 SQL 语句都通过 HTTP 支持。
HTTP 协议 的 /sql 端点现在支持所有 SphinxQL 语句,这些语句在 MySQL 协议中也可以实现。
注意:自 3.4.0 起,复制不能与索引的配置模式混合。
复制始终仅支持实时索引,并且可以在线进行操作,无需更新配置。
由于我们添加了可以在线管理模式,因此我们决定仅在新模式中支持复制。因此现在很简单:
CREATE TABLE -> `CREATE CLUSTER -> ALTER CLUSTER ... ADD
无需去编辑配置以添加每个新索引。
关于 Manticore 中复制的在线课程
COVID-19 大流行
我们都面临着与 COVID-19 相关的前所未有的情况。我们希望您和您的亲人安全健康,现在比以往任何时候,远程合作都显得尤为重要。
Manticore Software 核心团队一直在世界各地远程工作,因此,我们的正常工作流程完全不受情况的影响。我们继续做我们以前做的事情,不断改进我们的产品并支持我们的客户。
照顾好自己和你所爱的人!