из разряда если почесать правую ногу, то какой глаз будет дергаться при лунном свете.
Так а я о чём?
Спасибо за рекомендации!
В общем, ответ найден. Префикс таблицы в запросе нужно оставлять, как указано в мануале, даже если в базе префикс таблицы другой. Инстант сам потом всё меняет. Вот так вот. Столько времени из-за незадокументированной в мануале особенности.
Как я заметил, во всех файлах psearch.php от разработчиков инстанта используются join'ы в запросах к БД. Может быть, дело в какой-то мистике, и если запрос без join'а (так как это попросту не нужно), то система волшебно перестаёт работать? Смех смехом, но я уже столько времени безуспешно потратил на поиск решения, что начинаю верить в чудеса.
Очень надеюсь на помощь. Может, свежим взглядом получится найти причину.
В компоненте поиска в админке напротив нужного мне компонента стоит галочка. Также на странице поиска sitename.ru/search галочка стоит. Результатов возвращает 0. Хотя на самом деле этот же запрос, проведённый к базе напрямую, возвращает результаты.
Запрос
SELECT `id`, `title`, `phone1`, `phone2`, `created_at`, `description`, `region_title`, `city_title`, `is_sell`
FROM `icms_instruments_units`
WHERE MATCH(`title`, `phone1`, `phone2`, `description`, `region_title`, `city_title`) AGAINST ('$query' IN BOOLEAN MODE)"
прекрасно работает сам по себе, если, например, запустить его в phpmyadmin. Вводишь вместо $query искомое слово, и если оно встречается в хотя бы одном поле из индекса, то запрос возвращает соответствующие записи.
Однако, при использовании на сайте через компонент поиска (поиск по нужному компоненту конечно активирован), результатов поиска нет. Моя ошибка явно в файле psearch.php. Но я уже все варианты перебрал, и никак не могу понять, в чём дело. Знатоки наверняка сразу увидят ошибку. Надеюсь.
Помогите, пожалуйста, разобраться, почему не работает поиск, что не так.