Форум → Программирование → PHP для идиотов → поиск по сайту
поиск по сайту
Страницы: ← Следующая страница →
-
день добрый господа форумчане! есть у меня к вам просьба, хочу сделать поиск по сайту, но незнаю даже принципов… весь контент у меня в мускуле и мне нужно чтоб происходил поиск в конкретных полях конкретных таблиц, ну и выводился результат. буду очень благодарен если подскажете какие статьи почитать или дадите ссылки на готовые, подходящие скрипты
-
Март 20, 2008, 9:56 д.п., спустя 23 минуты 44 секунды
обычный поиск совпадений — WHERE `field` LIKE '%поисковой запрос%' (это самое простое)
полнотекстовый поиск — http://www.mysql.ru/docs/man/Fulltext_Search.htmlвсе умрут, а я изумруд -
Март 20, 2008, 9:59 д.п., спустя 2 минуты 30 секунд
ссылки на подходящие скрипты может дать гугль и яндекс
а если самому начинать писать, то надо определиться с реализацией
к примеру есть такой вариант результатов:
найдено в разделе новости: 7
- blablabla
- blablabla
….
найдено в разделе товары: 10
- erfgh adfh
- azfsdh fs
…
т.е. отдельно ищешь в каждой таблице
конфиг поисковика может быть такой:
$tables = array(
'news' => array('title', 'content'), //ищем в таблице новостей по полям Заголовок и содержание
'goods' => array('title', 'description') //ищем в таблице товаров по полям Заголовок и описание
);
или чуть сложнее :)
$tables = array(
'news' => array(
'fields' => ('title', 'content'), //ищем в таблице новостей по полям Заголовок и содержание
'link' => '/news.php', //куда ведет ссылка в результатах поиска
'where' => array() //дополнительные where-условия, например флаг active = '1' для товара или
//created > date_add(now(), interval -7 day) для новости
// и еще много чего можно придумать, если конечно надо
),
'goods' => array('title', 'description') //ищем в таблице товаров по полям Заголовок и описание
); -
Март 20, 2008, 3:27 п.п., спустя 5 часов 27 минут 48 секунд
обычный поиск совпадений — WHERE `field` LIKE '%поисковой запрос%' (это самое простое)
я так понял по этому принципу можно задавать в поиске только одно слово или слова расположенные подряд и только в одном поле?
и для каждого поля надо создавать отдельный запрос?
полнотекстовый поиск — http://www.mysql.ru/docs/man/Fulltext_Search.html
сделал как сказано здесь:
$query_search = "SELECT name_show, desc_show, other_show, extend_show FROM ge_show
WHERE MATCH (name_show,desc_show,other_show,extend_show) AGAINST ('database');";
выдает - Can't find FULLTEXT index matching the column list -
Март 20, 2008, 3:29 п.п., спустя 2 минуты 55 секунд
а если самому начинать писать, то надо определиться с реализацией
к примеру есть такой вариант результатов:
…
мне бы пока хоть из одной таблицы вывести результат да еше и правильный… -
Март 20, 2008, 3:38 п.п., спустя 8 минут 24 секунды
сделал как сказано здесь:
выдает - Can't find FULLTEXT index matching the column list
разобрался. надо было поставить индекс FULLTEXT на поля в которых происходит поиск -
Март 20, 2008, 3:39 п.п., спустя 41 секунду
для поиска по MATCH - AGAINST тебе еще нужно создать полнотекстовые (FULLTEXT) индексы на полях
ALTER TABLE `pages` ADD FULLTEXT `search` (
`name_show` ( 1024 ) ,
`desc_show` ( 1024 ) ,
`other_show` ( 1024 ) ,
`extend_show` ( 1024 )
)
я только не уверен в размерах индекса, тут надо гугл пошерстить -
Март 20, 2008, 4:12 п.п., спустя 33 минуты 48 секунд
я так понял по этому принципу можно задавать в поиске только одно слово или слова расположенные подряд и только в одном поле?
и для каждого поля надо создавать отдельный запрос?
нет, можно разбить по пробелу и в запросе будет `field` LIKE '%поисковой%' OR `field` LIKE '%запрос%'
но лучше используй полнотекстовый поиск, да, там индекс надо ставить на полявсе умрут, а я изумруд -
Март 20, 2008, 4:19 п.п., спустя 7 минут 1 секунду
спасибо большое разобрался
эта статья http://www.mysql.ru/docs/man/Fulltext_Search.html очень помогла.
пока вроде все получается -
Март 20, 2008, 4:23 п.п., спустя 3 минуты 57 секунд
это не статья, это мануалвсе умрут, а я изумруд -
Март 20, 2008, 5 п.п., спустя 36 минут 52 секунды
мне бы еше хорошую статью найти как это все дальше красиво и грамотно оформить, было бы вообще замечательно…. -
Март 20, 2008, 5:02 п.п., спустя 1 минуту 51 секунду
а что тебе оформить надо?
это уже зависит от структуры твоих страниц и материалов, где ты ищешьвсе умрут, а я изумруд -
Март 21, 2008, 10:44 д.п., спустя 17 часов 41 минуту 59 секунд
ну в принципе я думаю мне нужно лучше ознакомится со строковыми функциями и репу пару раз почесать и сам все доделаю.
хотя от советов не откажусь… -
-
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!