Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Красивый алгоритм поиска
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Красивый алгоритм поиска

Страниц (1): [1]
 

1. Botkin - 15 Ноября, 2013 - 18:11:50 - перейти к сообщению
Вот задался вопросом, как же правильно написать поиск по сайту? Предположим есть N таблиц с разными сущностям. Все они должны использовать в поисковой выдаче. Как получить ключевое слово поиска понятно. Далее юзаем LIKE
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM `table_name` WHERE `name` LIKE $query OR `text` LIKE $query
  3.  

Такой вариант прокатит например если у нас 5 таблиц. А как быть в случае, когда таблиц к примеру 80? Подскажите правильный и корректный алгоритм написания поиска )
2. teddy - 15 Ноября, 2013 - 18:25:19 - перейти к сообщению
Ну вообще для нормального поиска используется FULLTEXT
погуглите "Полнотекстовый индекс MySQL"
Botkin пишет:
когда таблиц к примеру 80?

если вы ищите по 80 таблицам то догадываюсь что то делаете не так... по группам инфу разделите и сделайте так чтоб использовалось как можно меньше таблиц, ну и по каждой таблице свой поиск, если инфа огромная и по логике она должна лежать в разных таблицах. Я на своем пути хоть и небольшом более 1 таблицы для поиска не встречал... Если их все же 80, то думаю надо пересмотреть логику
3. Botkin - 15 Ноября, 2013 - 18:38:28 - перейти к сообщению
teddy, число 80 я привел с потолка, просто для того чтобы было понятна вся абсурдность применения описываемого мной подхода. ) А за ответ большое спасибо - это именно то, что я искал ) Плюсануть пока не могу, постов мало ((
4. Ch_chov - 15 Ноября, 2013 - 18:40:22 - перейти к сообщению
Botkin пишет:
А как быть в случае, когда таблиц к примеру 80?
Сделать поисковый индекс в отдельной таблице. И периодически его обновлять. А еще лучше использовать готовые решения: sphinx, apache solr и т.д.

 

Powered by ExBB FM 1.0 RC1