Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как организовать поисковик
 
 автор: zolfist   (27.05.2006 в 00:49)   письмо автору
 
 

Доброго время суток.
Есть вопрос...
Хоть программирую не один день, но с базами данных знаком не так давно.
Есть TABLE с полями 'title' и 'content' это вроде как страницы сайта и соответственно у каждой 'title' и 'content'.
Пишу поисковик, но вот одна проблема...
ПОМОГИТЕ ЕСЛИ НЕ ЗАТРУДНИТ
1. Нужно сделать запрос так чтоб
SELECT * FROM table WHERE title LIKE '%keyword%'
SELECT * FROM table WHERE content LIKE '%keyword%'
давали результат где не бы не повторялись поля и первыми вылезали поля где сначало будут найдены '%keyword%' в заголовке title.
ДУМАЮ ТУТ НЕ ОБОЙТИСЬ БЕЗ СЛОЖНОГО ЗАПРОСА В НЕСКОЛЬКО ЭТАЖЕЙ, пока нет таких навыков.
2. ПОСОВЕТУЙТЕ как правильно составить запрос/серию запросов чтоб результат поиска был сортирован по степени концентрации '%keyword%' если требуется схема вывода результата как во всех поисковиках. Использовать? :
--------------------------------------
(keyword1 AND keyword2 AND keyword3) OR
(keyword1 AND keyword2) OR
(keyword2 AND keyword3) OR
(keyword1 AND keyword3) OR
(keyword1 OR keyword2 OR keyword3)
---------------------------------------
думаю это не самый оптимальный вариант... Google бы захлебнулся так делая поиск. Пожалуйста поделитесь опытом

   
 
 автор: cheops   (27.05.2006 в 10:52)   письмо автору
 
   для: zolfist   (27.05.2006 в 00:49)
 

1) Можно поступить следующим образом
SELECT * FROM table WHERE title LIKE '%keyword%'
UNION
SELECT * FROM table WHERE content LIKE '%keyword%'

2) Можно воспользоваться полнотекстовым поиском, т.е. поиском реализованным в MySQL, который отбирает записи по реливантности запроса, он не только частоту ключевого слова учитывает, но и их разброс, если их несколько. Подробнее о полнотекстовом поиске можно почитать в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=514
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=807
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=6620
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5828
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=6439
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5311
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4699
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3696
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4797

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования