Первая причина счастья заключается в том, что мне удалось обнаружить существенную недоработку в описании MySQL. Сейчас я приведу тот кусок, который я имею в виду.
Boolean full-text searches have these characteristics:
<...>
They can work even without a FULLTEXT index, although a search executed in this fashion would be quite slow.
Имеется некий сайт, который мне выпало разрабатывать. Сайт на немецком, находится у какого-то немецкого провайдера. При выборе провайдера я специально ставил условие наличия MySQL 4.1 (нормальной пятой тогда ещё не было) и PHP 5, чтобы сайт нормально работал с юникодом. Наши немцы где-то нашли такого провайдера. Правда, какая именно версия MySQL 4.1 там стоит, я уже забыл, а это может иметь значение.
В общем, спроектировал я БД, сделал CMS и Front-end. На время заполнения базы я не стал формировать там полнотекстовые индексы, чтобы не замедлять процесс занесения данных, тем более что объёмы там были не очень существенные, и "логический" полнотекстовый поиск достаточно быстро работал и без индексов.
И вот некоторое время назад обнаружилось, что поисковые запросы, содержащие в себе символы с диакритическими знаками (или, говоря более строго, любые символы, кроме основной латиницы), обрабатываются сервером абсолютно некорректно: ищется только та часть слова, которая находится после последнего из "диакритических символов". Я долго пытался понять, в чём дело, пока не убедился, что моя программа на PHP в этом не виновата. Тогда у меня остался единственный вариант: создать соответствующие полнотекстовые индексы. И вот после этого всё заработало корректно.
В общем, я не знаю, глюк это MySQL вообще, только версии 4.1 или её достаточно ранних подверсий, но факт остаётся фактом: в данной версии MySQL полнотекстовый поиск без наличия соответствующих полнотекстовых индексов корректно работает только с символами основной латиницы (однобайтовыми символами кодировки UTF-8).
Вторая причина моего счастья заключается в том, что я сегодня проверил и убедился: клиентская библиотека версии MySQL 4.1 прекрасно (в рамках необходимого) работает с сервером MySQL 5.0. А это значит, что нет необходимости переписывать компоненты и перекомпилировать мои программы, чтобы они могли работать с современной версией MySQL.
Я жив
[Print]
kv75