Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Поиск не смотря на регистр

Поиск не смотря на регистр


     31.05.2014    php, search    Все вопросы » Общие вопросы по PHP    2848

вопрос
Привет!

Подскажите как сделать чтобы поиск искал (сходства в тексте не смотря на регистр и всякие символы).

Примеры:

Transformers: Fall of Cybertron
Transformers Fall of Cybertron
transformers: fall of cybertron
transformers fall of cybertron


Буду благодарен за помощь.

Ответил: D0Gmatist


В дле поиск изначально идёт без учёта регистра, и вырезаются символы.

14 комментариев

FastFud
Юзер

FastFud - 31 мая 2014 02:40 -

Это мне нужно для другого модуля.

D0Gmatist
Юзер

D0Gmatist - 31 мая 2014 02:42 -

$query = $db->safesql( htmlspecialchars ( trim(  strip_tags (convert_unicode( $_POST['query'], $config['charset'] ) ) ), ENT_QUOTES, $config['charset']) );

FastFud
Юзер

FastFud - 31 мая 2014 02:46 -

я что-то не так понял.

вот часть кода, из BlockPro


if($bp_cfg['search']) {
$bp_cfg['search'] = $db->safesql(trim( str_replace( $not_allow_symbol, '', strip_tags( stripslashes( $bp_cfg['search']) ) ) ) );
            
$mode_one = explode("%", $bp_cfg['search']);

if(count($mode_one) >= 1) $wheres[] = "(p.short_story LIKE '%".$bp_cfg['search']."%' OR p.full_story LIKE '%".$bp_cfg['search']."%' OR p.xfields LIKE '%".$bp_cfg['search']."%' OR p.title LIKE '%".$bp_cfg['search']."%')";    
else $wheres[] = "MATCH(title,short_story,full_story,p.xfields) AGAINST ('".$bp_cfg['search']."')";    
}

dj-avtosh
PHP-developer

dj-avtosh - 31 мая 2014 05:30 -

Если поиск не полнотекстовый то учёт регистра не ведётся. Это известно пофункции Like в mySQL.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

FastFud
Юзер

FastFud - 31 мая 2014 13:08 -

как раз, он то полнотекстовой )

dj-avtosh
PHP-developer

dj-avtosh - 31 мая 2014 13:53 -

и что дает? насколько я знаю в DLE индексы поисковые не реализованы? Только ограничение на 4 символа в слове дает. три уже не найдет...

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 31 мая 2014 13:54 -

Посмотрим в мануал:

Функция MATCH() выполняет поиск в естественном языке, сравнивая строку с содержимым текста (совокупность одного или более столбцов, включенных в индекс FULLTEXT). Строка поиска задается как аргумент в выражении AGAINST(). Поиск выполняется без учета регистра символов. Для каждой строки столбца в заданной таблице команда MATCH() возвращает величину релевантности, т.е. степень сходства между строкой поиска и текстом, содержащимся в данной строке указанного в списке оператора MATCH() столбца.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

FastFud
Юзер

FastFud - 31 мая 2014 14:44 -

Сложно это все...

dj-avtosh
PHP-developer

dj-avtosh - 31 мая 2014 15:06 -

регистр не учитывается, в чем ваша проблема? Давайте в icq обсудим.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

FastFud
Юзер

FastFud - 31 мая 2014 15:25 -

Проблема в том что когда пользователь просматривает новость:

Transformers: Fall of Cybertron

то blockpro (поиск не находит)

Transformers Fall of Cybertron

И также если сделать на оборот

Когда просматриваешь новость Transformers Fall of Cybertron

Поиск в bp не находит Transformers: Fall of Cybertron а находит лишь если в точьности будет совпадение, без :

FastFud
Юзер

FastFud - 31 мая 2014 15:30 -

Нужно чтобы поиск не обращал внимание на всякие символы типа : [] в названии .

FastFud
Юзер

FastFud - 31 мая 2014 17:25 -

Выходит что нельзя сделать?

FastFud
Юзер

FastFud - 31 мая 2014 17:47 -

Разобрался.

DaivZ
Юзер

DaivZ - 31 мая 2014 20:43 -

И нам подскажи )

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх