我遇到了一个问题,我们的 Sphinx SQL 查询被截断。这是因为 MySQL 中 Group Concat 函数的默认限制为 1024 字节。
我在 Sphinx.conf 中使用了以下内容来修复此问题:
sql_query_pre = 设置会话group_concat_max_len = 10000
这修复了我本地机器上的问题。但是,我更新了我们的临时服务器上的 sphinx.conf 并运行了以下命令:
索引器--config sphinx.staging.conf--all--rotate
更新索引,但查询的组连接部分仍然在 1024 字节处被截断。
Sphinx版本:2.2.10 服务器版本:CentOS Linux release 7.2.1511 Mysql:libmysql-5.5.47-MariaDB(本地版本:libmysql-mysqlnd 5.0.10)
我对 Sphinx 并不是特别熟悉,所以可能错过了一些明显的步骤。此外,我们不想更改 MySql 配置中的默认限制,因为这些限制在其他情况下提供了一些保护。
答案1
问题是,如果您有一个包含以下内容的通用配置部分:
源 sCommon sql_query_pre = SET SESSION group_concat_max_len = 10000
但随后,在继承公共配置的子配置部分中,定义另一个 sql_query_pre 设置:
源 sUsers : sCommon sql_query_pre = SET NAMES utf8
这些将覆盖在通用配置中应用的任何设置,因此通用配置将不会被应用。