sphinxql: syntax error, unexpected BAD_NUMERIC

Post Reply
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

sphinxql: syntax error, unexpected BAD_NUMERIC

Post 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

При прямом запросе у сфинкса в консоле ошибка аналогичная.
Переиндексация сфинкса проходит без ошибок, в базе и в логах ошибок тоже нет.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by admin »

И в гугле чтото ничего по поводу такой ошибки
На этом же серваке на других сайтах этот запрос проходит ?
Don't forget to run script update
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by burn »

Да, проблема только с одним сайтом.
Остальные все аналогичные и проблемы нет.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by admin »

Если это один и тот же сервак
и вы напрямую в сфинкс даете один и тот же запрос на разных индексах
и не работает только на одном то мне кажетс логичным выводы

1. скрипт тут никаким боком, запрос то прямо в сфинкс
2. один и тот же сфинкс - ошибка только на одном = надо проверить чем этот индекс отличается от остальных
Don't forget to run script update
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by burn »

Индекс генерируется из данных базы скрипта, может в базе что не так.
Скрипт только засетапили и залили в него дамп с галерами (через sets).

Как можно проверить чем этот индекс отличается от остальных ?
На любой запрос получаем эту ошибку.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by admin »

Если бы ошибка была в базе то индекс не сгенерился бы, в процессе генерации была бы какая-то ошибка.

Чем индекс отличается от остальных - смотрите в конфиг ваш.
Либо у сфинкса так же есть суппорт форум - думаю там посоветуют что-то конкретное по их софту.
Don't forget to run script update
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post 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)

т.е. если имя индекса начинается с цифры, то его надо обязательно экранировать.

Добавьте в скрипт экранирование.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by admin »

Да, в первом сообщении вы убрали название индекса и было сложно догадаться ...

Добавлено.
Don't forget to run script update
burn
Posts: 262
Joined: Wed Feb 01, 2017 11:27 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by burn »

Работает, спасибо !
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: sphinxql: syntax error, unexpected BAD_NUMERIC

Post by admin »

NP
Don't forget to run script update
Post Reply