Реклама - здесь может быть Ваша реклама, которую увидят 4000+ человек в сутки. Хотите 1000 посетителей на свой сайт за 50 копеек?

Поиск по сайту



PHP Поиск



орган сертификации, консультирование по вопросам сертификации, звоните (495) 781-34-34.
-  Избавиться от трагических полседствий заклинания чёрная магия приворот на крови бешеной лисицы.
Нейрокод - лучшая наркологическая клиника с гарантией - Телесно-ориентированная психотерапия ТОП.

Поисковая система для Вашего сайта

Если Вы разрабатываете сайт сами или используете готовый движек для своего сайта, то Вы скоро сталкнетесь с необходимостью сделать качественный поиск по своему сайту. Простейшее решение это прикрутить готовый поиск от Google или от Yandex. Но! Наверняка оба этих "монстра" не все ваши страницы проиндексировали и включили в свой поисковый индекс, и как следствие при поиске они не будут находится.

В интернете встречается большое количество простеньких поисковых скриптов, но они все отличаются одной ососбенностью: Они работают с файлами на диске. Да, некоторые позволяют искать и в PHP файлах, но если у вас используются включения SSI или include на PHP, то такой поиск не даст вам ожидаемого результата.

Используя наш сканер для генерации карты сайта, Вы можете получить готовые базы и скрипты для поиска на своем сайте. Достоинство этого решения, что поиск будет осуществлен на полностью сформированной странице, т.е. ни одно слово не пропадет из поиска.

Если Вы отсканировали Ваш сайт в любом из платных режимов, то в течение 3х дней Вы можете проверить, как работает наша поисковая система по вашему сайту, перед установкой её себе на сайт:

Домен:
Поисковая фраза:

Поиск производится только среди отсканированных страниц на момент сканирования.
В списке выдаются первые 10 найденных страниц: заголовок страницы(title) и её адрес(URL).

Как это работает?

Структура таблиц для поиска

В процессе сканирования формируются следующие таблицы:

Таблица page содержащая список страниц на вашем сайте:

CREATE TABLE IF NOT EXISTS page (
		id INT UNSIGNED NOT NULL,
		PRIMARY KEY (id),
		url VARCHAR(255) NOT NULL, 
		size MEDIUMINT(7) UNSIGNED NOT NULL,
		title TINYTEXT NOT NULL, 
		time DATETIME
		) DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin';
url - адрес страницы
size - размер страницы
title - заголовок страницы
time - время последнего изменения страницы

Таблица, указывающая на какой странице и сколько раз это слово встречается

CREATE TABLE IF NOT EXISTS word (
		page INT UNSIGNED NOT NULL,
		word CHAR(30),
		count MEDIUMINT(7) UNSIGNED NOT NULL,
		UNIQUE (word,page)
		) DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin';

В таблицу попадают слова длинее 3х символов. Если на странице встречаются теги <index> .. </index>, То поисковые слова выбираются только из содержимого, заключенного в эти теги. Все слова преобразуются в нижний регистр.

Скрипт пока позволяет работать только с MySQL. Если будет потребность, в следующей версии сделаю работу и БЕЗ MySQL, с помощью текстовых файлов. В этом случае создается два файла соответствующей структуры. Поля в строке разделяются символом ';'.

Форма поискового запроса:

<form method=get action=\"/search/\">
Поисковая фраза: <input type=text name=\"q\">
<input type=submit value=\"Найти\">
</form>

Оформите поисковый запрос в стиле своего сайта.

Скрипт поиска

Упрощенный скрипт, использующий MySQL, который будет искать по полученным базам:


<?php
// открытие БД MySQL
include_once $_SERVER['DOCUMENT_ROOT'].'/config.php';

$q=$_GET['q']; // поисковый запрос
$root='http://'.$_SERVER['HTTP_HOST'].'/';

$ar_q=explode(" "trim($q));
$add_sql='';
for(
$i=0;$i<count($ar_q);$i++){
    
$add_sql.=' locate("'.strtolower(addslashes($ar_q[$i])).'",word)>0 and';
}   
$add_sql=' WHERE page.id=word.page and '.substr($add_sql,0,-4);

echo 
"<ol>\n";
$query=sql('SELECT page.url,page.title,word.word FROM word,page
        WHERE page.id=word.page and '
.substr($add_sql,0,-4).' GROUP by page.url LIMIT 1, 10');

while (
$row=mysql_fetch_assoc($query)){
    echo 
'<li><a href="'.$root.$row['url'].'">'.$row['title'].'<br>'.$root.$row['url']."</a><br>\n";
}
echo 
"</ol>\n";
?>
Скопировать в буфер

Реальный скрипт, который использует страничную навигацию, подсвечивает найденные блоки слов Вы можете бесплатно загрузить вместе с базой слов вашего сайта:

Домен:

Поместите его в папку /search/ и для использования с БД MySQL запустите /search/install.php.
Страница с запросом на поиск /search/index.php.

    Что не умеет эта версия:
  • Ajax - подсказка поискового запроса по мере набора букв
  • Ajax - поиск без перезагрузки окна
  • Вытаскивать кусочки страниц, где найдены поисковые слова и показывать их в предпросмотре
  • Поддерживать актуальность поиска по мере изменения и добавления страниц
  • Работать без MySQL
  • Искать без учета склонения и падежей

Все это будет реализованно по мере появления у меня свободного времени. Если эта система будет активно востребованна, или найдется меценат, готоый меня спонсировать, я с удовольствием заброшу все остальные проекты и сделаю много полезных возможностей.

Популярное:


Содержание:


Новое за неделю



Сейчас на сайте: 241