Запрос для поиска по базе

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

poikl

Профессор
Регистрация
7 Ноя 2006
Сообщения
164
Реакции
38
Проблема в том что делаю поиск по названиям
name like ('%$str%') так , если ввожу название например
"поиск" то выводит все названия с этим словом а если ввожу "новый поиск" то не выводит названия по прошлому запросу хотя слово поиск присуцтвует .
Подскажите как быть ? хочу чтобы искало и по целому запросу и по словам в запросе
 
Подскажите как быть ? хочу чтобы искало и по целому запросу и по словам в запросе

Можно так сделать

PHP:
name like '%новый%' or name LIKE  '%поиск%'

Только в этом случаи надо проверять длену слова, например что бы она была не меньше 4 символом, и не было повторений, и брать не более 3-4 слов для поиска.
Но этот вариан поиска будет довать большую нагрузку на базу.

Другого варианта пока нет.
 
DIAgen

Неверно. Тогда он получит все строки со словом новый и без слова "поиск", а ему это не надо.
PHP:
name LIKE  '%новый поиск%' OR name LIKE  '%поиск%'
 
Это нагрузку создаст неебовую. Лучше уж locate использовать наскока помню он меньшще чем like грузит...
 
разбивай строку поиска на слова и составляй запрос поиска по словам name like '%слово1%' or name like '%слово2%' и т.д.
 
Это нагрузку создаст неебовую. Лучше уж locate использовать наскока помню он меньшще чем like грузит...

Для таких случаев используют индексатор. Но автор его не просил. Может ему пару раз найти и забыть.
 
Для таких случаев используют индексатор. Но автор его не просил. Может ему пару раз найти и забыть.

ну дык я ето считаю как само собой разумеющееся.... еси не индексировать это песец базам.
 
Для таких случаев используют индексатор. Но автор его не просил. Может ему пару раз найти и забыть.
А можно по подробней про индексатор , я без него делаю видемо .
 
Вот неплохой и довольно простой индексатор.
Принцип в том, что он сканирует весь сайт и создаёт поисковый индекс. Поиск производится по всему тексту.
Там его версии. Последняя переименованная.

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