Регистронезависимый поиск в MySQL

Статус
В этой теме нельзя размещать новые ответы.

whitelex

Постоялец
Регистрация
5 Апр 2008
Сообщения
59
Реакции
3
Обычно не прошу помощи в делах программерских на форумах, пытаюсь до всего дойти сам юзая поиск и читая литературу, но тут ситуация уже просто безвыходная!

Срочно нужна ваша помощь, уже вторые сутки сижу и никак не могу решить проблему :bc:

Ситуация заключается в следующем:
Поставил движок поисковой машины sphider, настроил его так, чтобы сайты с различной кодировкой индексировал и перекодировал полученную информацию в одну кодировку cp1251. На локалке все записывается без проблем, поиск работает независимо от регистра. Но! Когда загружаю все файлы на сервер, переношу таблицы с теми же значениями, происходит следующее: в мускул данные не заносятся не так как на локалке, в phpmyadmin крякозябры, но поиск все-равно работает, только уже реагирует на регистр.

PHP:
    @mysql_query("SET NAMES cp1251");
    @mysql_query("SET collation_connection = cp1251_general_ci"); 
    @mysql_query("SET collation_server = cp1251_general_ci");
    @mysql_query("SET collation_database = cp1251_general_ci");
    @mysql_query("SET character_set_client = cp1251");
    @mysql_query("SET character_set_connection = cp1251");
    @mysql_query("SET character_set_results = cp1251");
    @mysql_query("SET character_set_server = cp1251");

PHP:
setlocale(LC_ALL, 'ru_RU.CP1251');

PHP:
.htaccess
AddDefaultCharset cp1251

Все варианты перебрал и НИЧЕГО.....

Пробовал всё в UTF8, тоже не помогло...

Добавлено через 5 минут
Данные сервера:
PHP:
Variable_name 	Value
character_set_client 	utf8
character_set_connection 	utf8
character_set_database 	cp1251
character_set_filesystem 	binary
character_set_results 	utf8
character_set_server 	latin1
character_set_system 	utf8
character_sets_dir 	/usr/share/mysql/charsets/

Данные моего сервера:
PHP:
 	character_set_client 	cp1251
 	character_set_connection 	utf8
	character_set_database 	cp1251
	character_set_filesystem 	binary
	character_set_results 	cp1251
	character_set_server 	cp1251
	character_set_system 	utf8
	character_sets_dir 	\usr\local\mysql5\share\charsets\

Но это всё должно быть до лампы, если SETs прописаны...
 
Ну в "так называемой Вами" Крокозябре большая буква и маленькая имеют совершенно разные значения по написанию.
Рекомендую Вам задать вопрос тут:
 
а помоему лучше взять все результаты и через strrpos отстригать потихоньку;)
 
Задача старая как мир, переводим все значения в uppercase или lowercase и получаем результат
 
Когда экспортируешь данные на сервер (если ты это делаешь из консоли), то добавляй опцию --default-character-set=cp1251 (или любая другая кодировка, в которой у тебя дамп)
 
2 whitelex

Ситуация такая - поиск нормально работал, но после вчерашнего восстановления сайта поиск Sphider (v1.3.5) стал регистрозависимым, хотя по сути ничего не менялось, базы не трогались, файлы сайта просто "откатились" на два дня назад. Совершенно непонятно что делать :bc: Уже и Index и Re-index многократно делал и Sphider удалил и заново поставил - не хочет искать регистронезависимо, но ведь до этого прекрасно работал! Могли бы что-нибудь посоветовать?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху