Page 1 of 1
sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Sun Jun 11, 2017 12:23 pm
by burn
Здравствуйте.
На одном из новых сайтов появилась ошибка при поиске:
Error:Mysql error:: 1064 (sphinxql: syntax error, unexpected BAD_NUMERIC near 'domain_com_scj_index WHERE match ('"sex"/1') LIMIT 0, 156 OPTION max_matches=20000') (db_sphinx) in query SELECT id FROM domain_com_scj_index WHERE match ('"sex"/1') LIMIT 0, 156 OPTION max_matches=20000. (
www.domain.com) Fatal error: Class 'Log' not found in /var/www/domain.com/scj/includes/libs/functions.php on line 0
При прямом запросе у сфинкса в консоле ошибка аналогичная.
Переиндексация сфинкса проходит без ошибок, в базе и в логах ошибок тоже нет.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 10:35 am
by admin
И в гугле чтото ничего по поводу такой ошибки
На этом же серваке на других сайтах этот запрос проходит ?
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 10:52 am
by burn
Да, проблема только с одним сайтом.
Остальные все аналогичные и проблемы нет.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 11:00 am
by admin
Если это один и тот же сервак
и вы напрямую в сфинкс даете один и тот же запрос на разных индексах
и не работает только на одном то мне кажетс логичным выводы
1. скрипт тут никаким боком, запрос то прямо в сфинкс
2. один и тот же сфинкс - ошибка только на одном = надо проверить чем этот индекс отличается от остальных
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 11:21 am
by burn
Индекс генерируется из данных базы скрипта, может в базе что не так.
Скрипт только засетапили и залили в него дамп с галерами (через sets).
Как можно проверить чем этот индекс отличается от остальных ?
На любой запрос получаем эту ошибку.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 12:35 pm
by admin
Если бы ошибка была в базе то индекс не сгенерился бы, в процессе генерации была бы какая-то ошибка.
Чем индекс отличается от остальных - смотрите в конфиг ваш.
Либо у сфинкса так же есть суппорт форум - думаю там посоветуют что-то конкретное по их софту.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 2:04 pm
by burn
Нашел причину ошибки.
Вот такой запрос:
mysql> SELECT * FROM 6domain_com_scj_index WHERE MATCH('porno');
возвращает:
ERROR 1064 (42000): sphinxql: syntax error, unexpected BAD_NUMERIC near '6domain_com_scj_index WHERE MATCH('porno')'
а такой:
mysql> SELECT * FROM `6domain_com_scj_index` WHERE MATCH('porno');
+-------+------------+----------+------------+-----------+--------------+---------+---------------+
| id | date | duration | sponsor_id | total_ctr | content_type | tag_ids | categories |
+-------+------------+----------+------------+-----------+--------------+---------+---------------+
| 42599 | 1488161145 | 437 | 6 | 0.000000 | 4 | | 4,26,44,74,86 |
+-------+------------+----------+------------+-----------+--------------+---------+---------------+
1 row in set (0.00 sec)
т.е. если имя индекса начинается с цифры, то его надо обязательно экранировать.
Добавьте в скрипт экранирование.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 2:15 pm
by admin
Да, в первом сообщении вы убрали название индекса и было сложно догадаться ...
Добавлено.
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 2:28 pm
by burn
Работает, спасибо !
Re: sphinxql: syntax error, unexpected BAD_NUMERIC
Posted: Mon Jun 12, 2017 2:28 pm
by admin
NP