Собственный поисковик: Веб интерфейс

Собственный поисковик: Веб интерфейс – урок о том как написать собственный поисковик на PHP, который будет искать в базе данных MySQL.

как сделать собственный поисковик?
как организовать поиск по базам данных?

Сегодня мы с вами сделаем поисковик типа google, yandex, aport, rambler, yahoo.

Точнее у нас будет МетаПоисковик. Поисковик будет искать в интернете сайты, веб-страницы по мета тегам и заголовку, как в самые первые поисковики, но насколько он будет хорошим зависит только от вас. Вы можете добавить что-нибудь новое, супер алгоритм и т.д и т.п. Может у Вас получится конкурировать даже с Google и Яндекс, кто знает все бывает.

Перед тем как начать писать свой поисковик, разделим его на 3 части:
1) Веб-интерфейс поисковика, реализуем мы его на языке PHP.
2) Индекс (База данных MySQL), где будет хранится вся информация о страницах.
3) Поисковый робот, индексирует веб-страницы, заносит данные в индекс, сделаем на Delphi.

сразу скажу что я не буду делать паука, который должен был бы находить url адреса.


Итак, начнем:

Веб-интерфейс поисковика

Веб интерфейс такого рода сайт, который позволяет производить поиск по базам MySQL.

создайте файл index.php. Код:

объясняю по частям:

во первых надо разделить свою страницу на две части, проще всего для этого использовать таблицы.

поисковая форма
результаты поиска

в верхней части надо создать форму, который будет посылать информация файлу index.php методом GET. На нем будут расположены 3 элемента, одно текстовое поле и две кнопки, одна для отправки запроса поисковику, а другая для очистки поля (конечно, можно им пренебречь, ведь в поискавиках обычно такого нет).





даем текстовому полю имя “search”, а кнопке отправляющий поисковый запрос – “Искать”, самой же форму оставляем имя по умолчанию – “form1″.

Результаты будут выводится в нижней части таблицы с помощью php, поэтому открываем тег

для начала подключимся к базе данных, для этого нам надо подключить конфигурационный файл, так как именно он подключает к базе данных mysql. Конфигурационный файл вынесен специально для удобства.
include "config.php";

далее проверяем была ли нажата кнопка “Искать”
if (isset($_GET['button'])){ выполняемый код, если нажата кнопка } else { выполняемый код, если НЕ нажата кнопка }

Если нажата кнопка искать, то проверяем наличие поискового запроса
if (isset($_GET['search'])){$search=$_GET['search'];}

Если есть присваиваем переменной $search текст поискового запроса, для последующей обработки. Надо будет наш запрос подредактировать, удалить опасные символы и т.д.
$search=trim($search);
$search=stripslashes($search);
$search=htmlspecialchars($search);
$search_t=$search;
$search=str_replace("'",""",$search);
$search=ereg_replace(" +"," ",$search);
$search=strtolower($search);
$search=trim($search);

теперь проверяем наш запрос, он не должен быть пустым и короче 3 символов (чтоб сервер не сильно нагружался).
if ($search!='' && strlen($search)>2){ код поиска по базе данных } else {echo "

Задан пустой поисковый запрос или строка поиска содержит менее 3 символов.

";}

Если поисковый запрос удовлетворяет верхнему условию, то запускается непосредственно сам поисковый скрипт.
$result=mysql_query("SELECT * FROM base WHERE description LIKE '%$search%' OR title LIKE '%$search%' OR keywords LIKE '%$search%' OR url LIKE '%$search%' LIMIT $start, $num",$db);
if (!$result){exit(mysql_error());}
$i=1;
if (mysql_num_rows($result)>0){
echo "Найдено ".$posts." страниц";
$myrow=mysql_fetch_array($result);
do
{
printf ("

%s. %s


%s

Keywords: %s


%s",$myrow['url'],$i+$start,$myrow['title'], $myrow['description'],$myrow['keywords'],$myrow['url'],$myrow['url']);
$i++;
}
while ($myrow=mysql_fetch_array($result));

Поиск будет производится посредством LIKE без учета релевантности, поэтому наш поисковик будет выводить результаты по дате добавления. Если объяснить работу этого скрипта простыми словами, то будет так: Выбрать все записи из таблицы base где в полях description, title, keywords, url встречается запрос $search по $num количеству начиная с $start. Переменная $num – количество результатов на страницу, я поставил 10, так как в Google и Yandex 10 =) Далее запускаем цикл, который будет выводить результаты поиска через printf.

Конечно же вы можете заменить мой “алгоритм” поиска на свой более лучший с учетом релевантности, возможно вы сделаете типо тИЦ и PR.

]]>

Добавить в закладки

]]>

Теги: , , , ,

3 комментариев по “Собственный поисковик: Веб интерфейс”

  1. ]]> Собственный поисковик: Веб интерфейс (продолжение) ]]> сказал:
    июля 17, 2009 в 00:42

    [...] Веб интерфейс (продолжение) – вторая часть урока о том как написать собственный поисковик на PHP, который будет искать в базе данных [...]

  2. ]]> Собственный поисковик: База Данных ]]> сказал:
    июля 17, 2009 в 22:26

    [...] Урок создания поисковика – часть 3 «База данных». В этом уроке мы рассмотрим базу данных нашего поисковика («Урок создания собственного поисковика»). [...]

  3. ]]> Собственный поисковик: Поисковый робот ]]> сказал:
    июля 17, 2009 в 23:07

    [...] Поисковый робот» – 3 часть урока по созданию собственного поисковика, мы с вами создадим поисковый робот (crawler или spider), [...]

Оставьте комментарий: