Я столкнулся с проблемой, из-за которой наши 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
они перезапишут любые настройки, которые были применены в общей конфигурации, и, следовательно, общая конфигурация не будет применена.