Назад | Перейти на главную страницу

Настройка group_concat_max_len в конфигурации Sphinx не применяется

Я столкнулся с проблемой, из-за которой наши SQL-запросы Sphinx усекаются. Это произошло из-за того, что ограничение по умолчанию для функции Group Concat в MySQL составляет 1024 байта.

Я использовал следующее в моем Sphinx.conf, чтобы исправить эту проблему:

sql_query_pre = УСТАНОВИТЬ СЕССИЮ group_concat_max_len = 10000

Это устранило проблему на моем локальном компьютере. Однако я обновил sphinx.conf на нашем промежуточном сервере и выполнил команду:

indexer --config sphinx.staging.conf --all --rotate

для обновления индексов, но часть запроса группового конкатенации все еще усекается до 1024 байтов.

Версия Sphinx: 2.2.10 Версия сервера: CentOS Linux, выпуск 7.2.1511 Mysql: libmysql - 5.5.47-MariaDB (локальная версия: libmysql - mysqlnd 5.0.10)

Я не особо разбираюсь в Sphinx, поэтому, возможно, пропустил какой-то очевидный шаг. Кроме того, мы не хотим изменять ограничения по умолчанию в нашей конфигурации MySql, поскольку они обеспечивают некоторую защиту в других ситуациях.

Проблема заключалась в том, что если у вас есть общий раздел конфигурации, который содержит:

источник sCommon sql_query_pre = SET SESSION group_concat_max_len = 10000

но, следовательно, в дочернем разделе конфигурации, который наследует общую конфигурацию, определите другой параметр sql_query_pre:

источник sUsers: sCommon sql_query_pre = SET NAMES utf8

они перезапишут любые настройки, которые были применены в общей конфигурации, и, следовательно, общая конфигурация не будет применена.