Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#26 14-03-2006 17:50:13

TAndrew
аз
Зарегистрирован: 27-09-2005
Сообщений: 4

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Спасибо, заработало.
НО - добавление get_down() меняет результаты вывода для англ. текста: при несовпадении регистра выводится только ссылка, без куска подсвеченного текста. Т.е. так:
1) ищем «туберкулез» или «Туберкулёз» - находит независимо от регистра, с выводом подсвеченного текста.
2) ищем «Giedlin» - находит Giedlin с куском подсвеченного текста.
3) ищем «giedlin» или «GieDlin» - находит, но выводит только ссылку, без текста.

PS. т.е. добавление get_down() для прежнего варианта функции search_result_excerpt(), либо для нового варианта search_result_excerpt().
PPS. Странно, почему он вообще англ. текст трогает, вроде все замены должны происходить лишь с русскими буквами.

Отредактированно TAndrew (15-03-2006 11:43:58)

Неактивен

 

#27 24-03-2006 10:55:54

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

тоже возник вопрос по поиску.

Неожиданно столкнулся с тем, что поиск не ищет совпадения в excerpt
Вопрос, конечно, спорный в общем случае - должен ли текст из excerpt приниматься во внимание при поиске?
Но вот по моему замыслу - должен.

В связи с этим, вопрос - как это реализовать?

Неактивен

 

#28 24-03-2006 11:17:36

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Решение для принудительного участие excerpt-ов в поиске есть.

Nicck написал:

Дорабатываем решение:

1. Изменённая строка для publish.php

Код:

$search = " and (replace(upper(Title),'Ё','Е') rlike replace(upper('$q'),'Ё','Е') or replace(upper(Body),'Ё','Е') rlike replace(upper('$q'),'Ё','Е')) $s_filter";

Еще раз дорабатываем решение, предложенное Nicck-ом

Код:

$search = " and (replace(upper(Title),'Ё','Е') rlike replace(upper('$q'),'Ё','Е') or replace(upper(Body),'Ё','Е') rlike replace(upper('$q'),'Ё','Е') or replace(upper(Excerpt),'Ё','Е') rlike replace(upper('$q'),'Ё','Е')) $s_filter";

Спасибо, Nicck! :-))

P.S. В результатах поиска в случае, если искомое слово найдено в excerpt? выводится только ссылка на статью

Отредактированно Evgeny (24-03-2006 11:20:13)

Неактивен

 

#29 24-03-2006 13:45:12

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Пожалуйста. wink

Осталось дописать подсветку на случай "если искомое слово найдено в excerpt", для того чтоб выводились фрагменты из excerpt тоже, и собрать накопившиеся решения в один mod для txp 4.0.3.

Каминг сун

TAndrew написал:

...добавление get_down() меняет результаты вывода...
PS. т.е. добавление get_down() для прежнего варианта функции search_result_excerpt(), либо для нового варианта search_result_excerpt().

Функция get_down() не нужна более, причём давно. Внимательнее читаем всё обсуждение. Ну или дожидается обещанного мода для 4.0.3

Отредактированно Nicck (24-03-2006 14:11:08)

Неактивен

 

#30 24-03-2006 14:58:09

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Если дойдут руки (и ноги :-)) до обещанного мода, то надо, наверно и с Й и И что-то аналогичное с Ё и Е делать.

Неактивен

 

#31 02-04-2006 15:15:47

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Руки дошли. txp403search.zip

Изменения:

* textpattern 4.0.3
* отображение результатов поиска для латинского алфавита было регистрозависимо (сам поиск был регистронезависим)
* excerpt теперь тоже учавтсвует в поиске и отображается в результатах поиска перед результатами из body
* буквы 'ё' и 'й' теперь равны 'е' и 'и' (независимо от регистра опять же)

Появилась ещё мысль сделать это всё в виде плагина. Только естественно нужно будет использовать не родные тэги а аналогичные им, реализуемые в плагине. т.е. <txp:nck_if_search /> и <txp:nck_search_... />. С другой стороны установить плагин проще, да и с версиями txp проблем поубавится.

Вопрос простой: а оно надо, когда и так(с помощью мода) всё работает?

Неактивен

 

#32 02-04-2006 17:36:33

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Nicck написал:

Появилась ещё мысль сделать это всё в виде плагина.

Это было бы здОрово!
Плагин можно было бы расширять независимо от версий ТП, с учетом особенностей националього поиска.
Например, столкнулся с тем, что люди ищут слово с дефисом, а оно в тексте присутствует без дефиса, ищут с кавычками, знаками пунктуации и т.п.
особенности есть, и в виде отдельного плагина их было бы проще внедрять.

P.S. Из собственного опыта. С удивлением обнаружил, что люди ОЧЕНЬ интенсивно используют поиск по сайту, в случае контентного проекта. Пришло понимание, что к поиску на сайте надо относится очень серьезно.
P.P.S. В случае появления этого плагина - включим его предустановленным в русскую сборку следующей версии ТП.

Неактивен

 

#33 03-04-2006 05:47:16

Sergey
твёрдо
Зарегистрирован: 14-12-2005
Сообщений: 421
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Nicck, просим-просим wink

Неактивен

 

#34 26-06-2006 22:47:41

[CPR]-AL.exe
иже
Зарегистрирован: 24-12-2005
Сообщений: 127
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Ну как там с плагином?


>> http://textpattern.org/plugins - плагины для textpattern
>> http://textpattern.net/wiki/index.php?t … ag_Listing - список тегов textpattern

Неактивен

 

#35 29-06-2006 14:19:06

[CPR]-AL.exe
иже
Зарегистрирован: 24-12-2005
Сообщений: 127
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

А регистр-то не полностью игнорируется. В поиске по заголовку все ещ учитывается. В строке поиска приходится вводить все в нижнем регистре (иначе ничего не найдет).


>> http://textpattern.org/plugins - плагины для textpattern
>> http://textpattern.net/wiki/index.php?t … ag_Listing - список тегов textpattern

Неактивен

 

#36 29-06-2006 14:47:24

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Конечно, плагин - более чистое решение.


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#37 06-09-2006 14:29:31

Riff
есть
Откуда: Минск
Зарегистрирован: 29-04-2005
Сообщений: 64

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

вопрос, а можно каким-либо образом заставить учавствовать в поиске костум-поля???

Неактивен

 

#38 06-09-2006 18:14:44

Riff
есть
Откуда: Минск
Зарегистрирован: 29-04-2005
Сообщений: 64

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

хех... вопрос снят, так как методом логических и неочень рассуждений нашёл выход smile

Код:

replace(upper(custom_1),'Ё','Е') rlike replace(upper('$q'),'Ё','Е'))

Неактивен

 

#39 23-01-2007 17:04:32

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Evgeny написал:

любопытно эту версию проверить.
у меня на одном хостинге  эта библиотека от 2002 года, на другом - 2003,
у знакомых на мастерхосте - ппх обрезанный, phpinfo() не работает.
еще у одних знакомых  тоже 2003 года :-((

У кого-нибудь есть хостинг с более свежей библиотекой PCRE?

У меня в "денвере" аж от 2006 года. И все равно поиск регистрозависимый. Я просто изучаю сейчас варианты, можно ли что-то сделать, без хака. Выясняется, что все-таки в самом движке как-то не так реализовано, от хостинга не зависит. Что, кстати, и подтверждает поиск в phpMyAdmin, который выдаст на запрос Томск оба варианта: Томск и томский, идентично запросу томск. В отличие от поиска TxP, который на эти запросы выдаст всего один ответ.
Да и вообще непонятно, причем здесь может быть PCRE, ведь это аббревиатура от Perl Compatible Regular Expressions Support.
Покопаю еще... думаю, все-таки можно разобраться, наверняка тут какая-то не очень сложная проблема.

P.S. А вообще сейчас действительно внимательно прочитал, что предлагает Nicck, и понял, что с одной стороны, все наверно именно так и надо сделать, как он предлагает (а насчет й, и, ё, е так совершенно точно), но зато так и не понял...

Nicck написал:

1) При запросе к базе регистр учитывается.

... почему тогда английские слова выводятся независимо от регистра? Чем отличаются запросы с латинскими символами от русских?
Продолжаю думать :)

Отредактированно ТВЭЛ (23-01-2007 17:14:43)


Время не ждет.

Неактивен

 

#40 23-01-2007 17:25:42

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Вебмастер, в сорцах копаться хуле?
По сайту поиск свой делай в Гугле!

(сори за слово, но из песни не выкинешь)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#41 23-01-2007 17:52:58

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Да ну тебя 8( охота разобраться в причие, а не пасовать перед сложностями.


Время не ждет.

Неактивен

 

#42 24-01-2007 15:19:27

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

А ведь на форуме тоже регистрозависимый поиск. Полагаю, причины те же? Вот на Яндексе кое что нашел по запросу регистронезависимый && полнотекстовый && поиск && mysql && utf8.

P.S. Сайт punbb.ru просто реактивный! Как они этого добились, интересно? Может хостинг какой-то суперский?
P.P.S. Секрет прост - сайт хостится на площадке в моем городе :)

Отредактированно ТВЭЛ (24-01-2007 16:13:43)


Время не ждет.

Неактивен

 

#43 24-01-2007 16:06:03

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

ТВЭЛ написал:

P.S. Сайт punbb.ru просто реактивный! Как они этого добились, интересно? Может хостинг какой-то суперский?

Сделал tracert . Хостится он в г.Томске. Это сильно далеко от тебя? :-))

Неактивен

 

#44 24-01-2007 16:18:29

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Недалеко, написал уже smile в соседнем городе (10 км).


Время не ждет.

Неактивен

 

#45 25-01-2007 00:49:20

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Ну что-ж, дальше время тратить больше не могу. Придется сдаваться sad Очень жаль. На будущее, если вдруг кто-то тоже захочет поискать решение проблемы, ниже даю несколько ссылок на ресурсы, показавшиеся мне наиболее адекватными теме. Хотя сколько я их просмотрел, жуть...
Кстати, со сходными проблемами встречались пользователи punBB, WP и Drupal. Вордпрессовцы просто переделывают все на cp1251, а как решили проблему пунббэйщики и н друпаловцы, я что-то не разобрался. Тем более, что у "Друпала", вообще, похоже другая реализация поиска.
Эх, так жалко, что ничего не вышло sad У меня уже и MySQL сервер настроен на работу с UTF-8 и ставил библиотеку mb_string, и добавлял модификаторы (/u) к запросам preg_* в коде, ставил зачем-то XAMMP. Что я только не делал. Все без толку. Нам остается лишь надеяться, что когда-то у разработчиков дойдут руки до реализации нормального поиска не только для англоговорящих пользователей.

http://live.julik.nl/2005/03/unicode-php
http://www.pcre.ru/docs/php/text/stdsyntax/
http://www.pcre.ru/docs/php/text/stdmod/
http://xpoint.ru/forums/programming/PHP … 8160.xhtml
http://www.softtime.ru/forum/read.php?i … theme=1991 (вообще очень толковый форум, наряду с xpoint.ru)

Может кто-то примет эстафету? Ужасно жалко потраченного впустую времени.


Время не ждет.

Неактивен

 

#46 27-01-2007 12:45:24

Nicck
ферт
Откуда: Ижевск
Зарегистрирован: 11-05-2005
Сообщений: 536
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

А в чём проблема? wink

Неактивен

 

#47 27-01-2007 15:08:51

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Ну просто хотелось сделать "по уму"... Твое решение все-таки как бы надстройка над поиском, костыль. Впрочем, я не специалист, конечно... поправь меня, если я не прав. Но очевидно лучше так чем никак, в любом случае спасибо тебе. Естественно буду пользоваться. Вот ты бы еще плагином это оформил, так вообще было бы прекрасно smile Думаю, пользователей было бы порядочно, ведь TxP набирает обороты и в Рунете.


Время не ждет.

Неактивен

 

#48 24-02-2007 16:56:21

dizeee
аз
Зарегистрирован: 08-09-2006
Сообщений: 3

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

А как на счет 4.0.4? "Костыль прикрутить не получается. Я конечно не спец по php. Может есть возможность?

Неактивен

 

#49 24-02-2007 17:30:24

Pho-No
есть
Зарегистрирован: 07-06-2006
Сообщений: 61
Вебсайт

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

А как на счет 4.0.4?

_http://fludilka.net/files/rus_search_fix.v4.0.4.tar.gz

Отредактированно Pho-No (22-05-2007 13:31:52)

Неактивен

 

#50 24-02-2007 17:41:22

dizeee
аз
Зарегистрирован: 08-09-2006
Сообщений: 3

Re: Как "научить" поиск Textpattern игнорировать регистр букв в кирилице?

Pho-No написал:

А как на счет 4.0.4?

_http://las.kiev.ua/file_download/4

Примного благодарен

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru