Непонятно почему, но обычно вебмастера ленятся сделать нормальный поиск по своих сайтах. Даже на посещаемых сайтах иногда поиск отсутствует или работает не коректно. Чаще всего находят решение в поисковых скриптах от google, при етом умудряются еще и заработать на поисковой адс рекламе. Это все верно и хорошо но не для рунета. В рунете правит Яша. У него есть свой сервис для организации поиска на сайте, при чем он неплохо адаптирован под морфологию. Это Yandex.XML. Я хочу показать вам что организовать подобный поиск очень просто.
Шаг первый: регистрация ip на сайте
Идем на сайт сервиса http://xml.yandex.ru/ и регистрируем свой Ip. Ну а если вы не знаете свой ip - его можно узнать через http://formyip.com/
Шаг 2: читаем manuals
Здесь все что нужно знать по сервису http://help.yandex.ru/xml/?id=316625
Шаг 3: пишем поисковый сркипт
для начала нужно получить поисковый get запрос
$q = $_GET['q'];
дальше нужно послать поисковый запрос на сервис по адресу xmlsearch.yandex.ru/xmlsearch/
$query = "http://xmlsearch.yandex.ru/xmlsearch" . "/?page=" . $page . "&query=" . urlencode($q . " << host="\">
данные $page — номер страницы, $query - запрос
для отправки запроса используем
$xml = file_get_contents($query);
Итак мы получили ответ от Яшки и теперь нам нужно взять xml шаблон тут http://homelerss.ru/sp-content/uploads/doc/search.xsl и переписать его под себя. там все довольно просо и все расписано по строкам.
Далее загружаем переписаный шаблон
$handle = fopen($filename, "r");
$xsl_data = fread($handle, filesize($filename));
fclose($handle);
и выполняем следующий скрипт
$xh = new xsltprocessor();
$xml = new DOMDocument();
$xsl = new DOMDocument();
$xml->loadXML($xml_data);
$xsl->loadXML($xsl_data);
$xh->importStyleSheet($xsl);
$search_result = $xh->transformToXML($xml);
еще можно сменить кодировку:
$search_result = iconv("windows-1251", "utf-8", $search_result);
Вот что в итоге получилось:
print $search_result;
Вот и все.