[Solved] Search (Поиск) и tagcloud - облако только из слов на латин&

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
ilia3d

[Solved] Search (Поиск) и tagcloud - облако только из слов на латин&

Post by ilia3d »

Всем доброго дня )

tagcloud почему-то игнорирует кириллицу, таким образом, в облако тэгов попадают только слова на латинице...
Это как-то борется, или он вообще кириллицу не умеет?

Еще вопрос по поиску: {search} принципиально не умеет wildcards а также не до конца введенные слова? У меня ищет только точные вхождения, т.е. если к примеру ввести в поиске "бухгалтер", то такие вхождения как "бухгалтерия",  "бухгалтеры" и т.п. не будут найдены.  ::)
Last edited by ilia3d on Sat May 23, 2009 4:37 pm, edited 1 time in total.
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Search (Поиск) и tagcloud - облако только из слов на латини

Post by ZYV »

Надо в action.dosearch.php

                        $ary[] = "word = " . $db->qstr($word);

заменить на

                        $ary[] = "word LIKE '%" . $db->qstr($word) . "%'";

(сам не пробовал)

Для английского работает stemmer, а для русского чтобы куски слов искать надо LIKE использовать.

Про облако тегов ничего не могу сказать - не пользовался.
unsigned double ZYV;
ilia3d

Re: Search (Поиск) и tagcloud - облако только из слов на латини

Post by ilia3d »

ZYV wrote: Надо в action.dosearch.php

                        $ary[] = "word = " . $db->qstr($word);

заменить на

                        $ary[] = "word LIKE '%" . $db->qstr($word) . "%'";

(сам не пробовал)

Для английского работает stemmer, а для русского чтобы куски слов искать надо LIKE использовать.

Про облако тегов ничего не могу сказать - не пользовался.
Попробовал, к сожалению ничего не изменилось.  :-\
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: Search (Поиск) и tagcloud - облако только из слов на латини

Post by ZYV »

Хммм, ну надо разбираться, мне некогда. Смотри в phpMyAdmin какие слова в индексе, и возьми запрос из дебаг-режима, который с LIKE получился, проверяй как работает. Идею я подсказал.
unsigned double ZYV;
ilia3d

Re: Search (Поиск) и tagcloud - облако только из слов на латини

Post by ilia3d »

ZYV wrote: Хммм, ну надо разбираться, мне некогда. Смотри в phpMyAdmin какие слова в индексе, и возьми запрос из дебаг-режима, который с LIKE получился, проверяй как работает. Идею я подсказал.
все оказалось намного проще... все глюки с поиском были из-за кодировки 1251.
Переконвертировал базу в UTF8, раскомментил строчку в action.dosearch.php

Code: Select all

	$ary[] = "word = " . $db->qstr(htmlentities($word, ENT_COMPAT, 'UTF-8'));
все заработало, спасибо )
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: [Solved] Search (Поиск) и tagcloud - облако только из слов на лати

Post by ZYV »

Совершенно не ясно, как это могло решить проблему для частей слов, если qstr() не использует LIKE (нет времени проверять), т.к. mySQL сравнивает при = всё слово целиком, чтобы смотреть вхождение части надо использовать запрос типа LIKE '%вод%' (для воды, проводов и водителя), но факт в том, что однобайтные кодировки должны гореть в аду...

А те, кто ими до сих пор пользуется крупно рискует :)
unsigned double ZYV;
ilia3d

Re: [Solved] Search (Поиск) и tagcloud - облако только из слов на лати

Post by ilia3d »

ZYV wrote: Совершенно не ясно, как это могло решить проблему для частей слов, если qstr() не использует LIKE (нет времени проверять), т.к. mySQL сравнивает при = всё слово целиком, чтобы смотреть вхождение части надо использовать запрос типа LIKE '%вод%' (для воды, проводов и водителя), но факт в том, что однобайтные кодировки должны гореть в аду...

А те, кто ими до сих пор пользуется крупно рискует :)
мне тоже совершенно неясно, но работает и по частям слов, я проверял.
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

Re: [Solved] Search (Поиск) и tagcloud - облако только из слов на лати

Post by ZYV »

Я тебе верю, просто удивительно. Эх, пройдут наконец когда-нибудь эти авралы или нет... интересно в исходниках посмотреть почему-так.
unsigned double ZYV;
Post Reply

Return to “Russian - русский”