我们很高兴地宣布 Manticore Search 2.4.1 的 GA 版本发布。
可用于 Debian、Ubuntu、Red Hat/CentOS、Windows 和 OSX 的预构建包可以从 这里 下载。
Manticore Search 2.4.1 GA 与现有的 Sphinx 搜索版本 100% 兼容(如果您从旧版 Sphinx 升级,请检查升级路径到 2.3.2)。
新特性
WHERE 中的 OR 运算符
现在可以在属性过滤器之间的 WHERE 子句中使用 OR。请注意,仍然无法在 MATCH 子句和属性过滤器之间使用 OR。
mysql> select * from wikipedia where match('test') and pageid=357881 OR len=2070;
+-----------+------------------------------------------------------------+---------+-------+------------+
| id | title | pageid | len | touched |
+-----------+------------------------------------------------------------+---------+-------+------------+
| 227704715 | Test-driven_development | 357881 | 24915 | 1216959577 |
| 222632760 | Echo_(command) | 754160 | 2070 | 1214847412 |
+-----------+------------------------------------------------------------+---------+-------+------------+
2 rows in set (0.01 sec)
维护模式
使用 SET 语句,服务器可以进入维护模式。在此模式下,只有使用 VIP 连接的客户端可以执行查询。
mysql> SET MAINTENANCE = 1;
在分布式索引上使用 CALL KEYWORDS
现在也可以在分布式索引上运行 CALL KEYWORDS。该命令在每个节点上执行,结果由主节点合并并发送回去。
UTC 中的分组
默认情况下,时间分组函数在本地时区计算。 grouping_in_utc 允许切换到 UTC 时区。也可以使用 SET 语句动态更改。
日志文件权限
默认情况下,searchd 创建的日志文件权限为 600。现在可以使用 query_log_mode 设置不同的权限。
searchd
{
...
query_log_mode = 666
...
}
其他小调整:
字段权重可以为零或负数
max_query_time 现在可以中断全扫描查询(没有 MATCH 子句的查询)
引入了 net_wait_tm、net_throttle_accept 和 net_throttle_action。这些是针对繁忙服务器的工作线程的网络线程微调设置。
现在可以在使用分面时执行 COUNT DISTINCT
IN 现在可以与 JSON 浮动数组一起使用
整数/浮动表达式不再破坏多查询优化
当使用多查询优化时,SHOW META 显示 'multiplier' 行
编译
编译所需的最低 gcc 版本为 4.7.2。编译过程需要 cmake。这使得能够将构建打包为 zip 或特定的发行版包(rpm/deb)。有关更多信息,请查阅文档的 编译部分 。
从 Sphinx 搜索升级
Manticore Search 继续使用常规的 /etc/sphinxsearch/sphinx.conf。
服务将以 manticore 用户身份运行(Sphinx 使用的是 sphinx 或 sphinxsearch)。
默认使用的文件夹是 /var/lib/manticore、/var/log/manticore、/var/run/manticore。您仍然可以使用现有的 sphinx.conf,但需要手动更改 /var/lib/sphinxsearch、/var/log/sphinxsearch、/var/run/sphinxsearch 的权限。
错误修复
在 Sphinx 2.3.2 上报告的许多错误已被修复,但可能并非全部。如果您升级后仍然遇到错误,请在官方 问题跟踪器 上提交工单。
如果您使用实时索引,我们建议升级到 Manticore Search 2.4.1 GA,因为在 Sphinx Search 2.3.2 中引入的实时块的渐进合并可能导致索引损坏。
有关更改的完整报告,请查阅 发布说明 。