SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Drupal .= Яндекс.Сервер; ,[object Object]
Кого не хватает?
Вот он FreeBSD  6.3, 7.0 (32/64) Linux  2.6.x (32/64) Windows  2000/XP/2003 (32/64) Файлы HTTP Базы данных (ODBC) Русский  Быстрый  Гибкий
Это и другое ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Установка (Linux) $  sudo  dpkg -i Yandex_Server-2010.9.0-Linux-x86_64.deb $ cat /usr/local/etc/yandex/yandex.cfg $  sudo  /etc/init.d/yandex-server.sh  re start http://api.yandex.ru/server/doc/concepts/y-server-ee.xml#quickstart
Язык запросов http://help.yandex.ru/search/?id=1111313 http://api.yandex.ru/server/doc/concepts/query-zones-and-attributes-search.xml
Как обычно устроен поиск Модуль индексирования Индекс Модуль поиска Поиск
Есть такой модуль ...
... yserver Сейчас:  http://drupal.org/sandbox/Mir/1343080 Ожидается:  http://drupal.org/project/yserver ,[object Object],[object Object],[object Object],[object Object]
Выгрузка для индексирования http://your_drupal_site.ru / yserver-dump ? mode=force_new & type=strict http://your_drupal_site.ru/yserver-dump? mode=update & type=queue http://your_drupal_site.ru/yserver-dump? mode=force_new & type=queue Cron: */30 * * * * /usr/bin/wget -O - -q -t 1http://your_drupal_.site.ru/yserver-dump?mode=update&type=queue&& /path_to_yserver_script/yserver.sh reindex
Выгрузилось для индексирования
Области индексирования function  your_module_init() { if (function_exists( 'yserver_remove_areas' )) { // Удалим все определенные  // ранее области индексирования. yserver_remove_areas(); your_module_set_area( 'node' , array( 'your_module_get_node_ilist' ), array( 'yserver_get_node_idata' )); }} ...
Задание области индексирования function  your_module_get_node_ilist() { $query  =  " SELECT  nid, changed  FROM  {node} WHERE  status = 1 " ; $result  = db_query( $query ); $nids  = array(); foreach  ( $result   as   $record ) { $nids [ $record ->nid] =  $record ->changed; } return   $nids ; } Получить список (id => время изменения)
Задание области индексирования function  your_module_get_node_idata ( $nid ) { $node  = node_load( $nid ); $icontent  =  '<h1>'  .  $node ->title .  '</h1>' . render(node_view( $node ,  'full' )); $ialias  = drupal_get_path_alias(  'node/'  .  $nid ); return array( 'content'  =>  $icontent , 'attrs'  => array( 'ys_title'  =>  $node->title , 'ys_link'   =>  $ialias , )); } Получить для id контент и атрибуты
“ Чистая” форма поиска function  your_module_form_search_block_form_alter(& $form , $form_state)  { $form [ '#submit' ] = array( 'your_module_search_box_form_submit' ); } function  your_module_search_box_form_submit( $form , & $form_state )  { $form_id  =  $form [ 'form_id' ][ '#value' ]; // Текст из поисковой формы. $keys  =  $form_state [ 'values' ][ $form_id ]; $path  =  'search/yserver/' . trim( $keys  .  '@ysoutbox@ys_area:node_article' ); //$path .= ' ys_tag:football' ; $form_state [ 'redirect' ] =  $path ; } URL (строка браузера): http://your_drupal_site.ru/search/yserver/зенит чемпион @ysoutbox@ ys_area:node_article Поисковая форма: зенит чемпион
Вывод данных в SERP template.php: function  your_theme_preprocess_search_result(& $variables ) { dvm( $variables [ 'result' ][ 'ys_attrs' ]); } search-result.tpl.php: print  $ys_attrs [ 'type' ] .  ', ' .  $ys_attrs [ 'subtype' ] . ':::' .  $ys_attrs [ 'address' ]; print  $snippet ;
Конец СПАСИБО!

Weitere ähnliche Inhalte

Was ist angesagt?

Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с даннымиИнтуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Глеб Тарасов
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
Positive Hack Days
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
ygoltsev
 
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что новогоYiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
Alexander Makarov
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данных
Anastasia Lubennikova
 
Jquery selector optimization in drupal
Jquery selector optimization in drupalJquery selector optimization in drupal
Jquery selector optimization in drupal
Yury Glushkov
 
пабсаб презентейшн
пабсаб презентейшнпабсаб презентейшн
пабсаб презентейшн
Alexey Osipenko
 
лабораторная работа №9
лабораторная работа №9лабораторная работа №9
лабораторная работа №9
Zhanna Kazakova
 

Was ist angesagt? (20)

Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с даннымиИнтуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
 
09 - Hadoop. Pig
09 - Hadoop. Pig09 - Hadoop. Pig
09 - Hadoop. Pig
 
Entity возрождение легенды. Исай Руслан
Entity возрождение легенды. Исай РусланEntity возрождение легенды. Исай Руслан
Entity возрождение легенды. Исай Руслан
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
 
14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark14 - Hadoop. Фреймворк Spark
14 - Hadoop. Фреймворк Spark
 
Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2
 
Perl – жив?!
Perl – жив?!Perl – жив?!
Perl – жив?!
 
13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark13 - Hadoop. Парадигма Spark
13 - Hadoop. Парадигма Spark
 
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что новогоYiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
 
Yii 2. Что нового?
Yii 2. Что нового?Yii 2. Что нового?
Yii 2. Что нового?
 
Perl 5.10 и 5.12
Perl 5.10 и 5.12Perl 5.10 и 5.12
Perl 5.10 и 5.12
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данных
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasov
 
Jquery selector optimization in drupal
Jquery selector optimization in drupalJquery selector optimization in drupal
Jquery selector optimization in drupal
 
пабсаб презентейшн
пабсаб презентейшнпабсаб презентейшн
пабсаб презентейшн
 
Caching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoCaching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander Shumenko
 
Приручаем linux-консоль
Приручаем linux-консольПриручаем linux-консоль
Приручаем linux-консоль
 
лабораторная работа №9
лабораторная работа №9лабораторная работа №9
лабораторная работа №9
 
PHP basic
PHP basicPHP basic
PHP basic
 

Ähnlich wie Интеграция Яндекс Сервер

Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.
DrupalCampDN
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
Slach
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
Media Gorod
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
ZFConf Conference
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf Conference
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
drupalconf
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в Magento
Magecom Ukraine
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and Multilingual
ZFConf Conference
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3
phpclub
 

Ähnlich wie Интеграция Яндекс Сервер (20)

Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
Render API.
Render API.Render API.
Render API.
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
 
Семинар-практикум по Drupal
Семинар-практикум по DrupalСеминар-практикум по Drupal
Семинар-практикум по Drupal
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в Magento
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном коде
 
Ci
CiCi
Ci
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and Multilingual
 
LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)LDAP in infrastructure (RootConf 2009)
LDAP in infrastructure (RootConf 2009)
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3
 

Mehr von PVasili

Как зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют ИванКак зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют Иван
PVasili
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
PVasili
 
Business friendly Drupal, Павел Прищепа
Business friendly Drupal, Павел ПрищепаBusiness friendly Drupal, Павел Прищепа
Business friendly Drupal, Павел Прищепа
PVasili
 
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
PVasili
 
Drupal and the keys to successful communities. Martin Mayer
Drupal and the keys to successful communities. Martin MayerDrupal and the keys to successful communities. Martin Mayer
Drupal and the keys to successful communities. Martin Mayer
PVasili
 
инструкция по оптимизации сайтов на Drupal херени даниэл
инструкция по оптимизации сайтов на Drupal херени даниэлинструкция по оптимизации сайтов на Drupal херени даниэл
инструкция по оптимизации сайтов на Drupal херени даниэл
PVasili
 
фотосток на Drupal+maestro Житарёв Антон
фотосток на Drupal+maestro Житарёв Антонфотосток на Drupal+maestro Житарёв Антон
фотосток на Drupal+maestro Житарёв Антон
PVasili
 
Drush and drupal. администрирование. Волчек Михаил
Drush and drupal. администрирование. Волчек МихаилDrush and drupal. администрирование. Волчек Михаил
Drush and drupal. администрирование. Волчек Михаил
PVasili
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
 
Object oriented css. Graeme Blackwood
Object oriented css. Graeme BlackwoodObject oriented css. Graeme Blackwood
Object oriented css. Graeme Blackwood
PVasili
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
PVasili
 
Практическое использование модуля Panels. Богуцкий Виктор
Практическое использование модуля Panels. Богуцкий ВикторПрактическое использование модуля Panels. Богуцкий Виктор
Практическое использование модуля Panels. Богуцкий Виктор
PVasili
 
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
Кеширование на высоконагруженном Drupal сайте. Архаров РоманКеширование на высоконагруженном Drupal сайте. Архаров Роман
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
PVasili
 

Mehr von PVasili (20)

Как зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют ИванКак зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют Иван
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Business friendly Drupal, Павел Прищепа
Business friendly Drupal, Павел ПрищепаBusiness friendly Drupal, Павел Прищепа
Business friendly Drupal, Павел Прищепа
 
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
 
Drupal and the keys to successful communities. Martin Mayer
Drupal and the keys to successful communities. Martin MayerDrupal and the keys to successful communities. Martin Mayer
Drupal and the keys to successful communities. Martin Mayer
 
инструкция по оптимизации сайтов на Drupal херени даниэл
инструкция по оптимизации сайтов на Drupal херени даниэлинструкция по оптимизации сайтов на Drupal херени даниэл
инструкция по оптимизации сайтов на Drupal херени даниэл
 
фотосток на Drupal+maestro Житарёв Антон
фотосток на Drupal+maestro Житарёв Антонфотосток на Drupal+maestro Житарёв Антон
фотосток на Drupal+maestro Житарёв Антон
 
Drush and drupal. администрирование. Волчек Михаил
Drush and drupal. администрирование. Волчек МихаилDrush and drupal. администрирование. Волчек Михаил
Drush and drupal. администрирование. Волчек Михаил
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Object oriented css. Graeme Blackwood
Object oriented css. Graeme BlackwoodObject oriented css. Graeme Blackwood
Object oriented css. Graeme Blackwood
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
Практическое использование модуля Panels. Богуцкий Виктор
Практическое использование модуля Panels. Богуцкий ВикторПрактическое использование модуля Panels. Богуцкий Виктор
Практическое использование модуля Panels. Богуцкий Виктор
 
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
Кеширование на высоконагруженном Drupal сайте. Архаров РоманКеширование на высоконагруженном Drupal сайте. Архаров Роман
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
 
Опыт построения компании-разработчика Интернет проектов на Drupal
Опыт построения компании-разработчика Интернет проектов на DrupalОпыт построения компании-разработчика Интернет проектов на Drupal
Опыт построения компании-разработчика Интернет проектов на Drupal
 
Свой проект на drupal.org от идеи до первого релиза.
Свой проект на drupal.org от идеи до первого релиза.Свой проект на drupal.org от идеи до первого релиза.
Свой проект на drupal.org от идеи до первого релиза.
 
Microsoft , Azure и Drupal
Microsoft , Azure и DrupalMicrosoft , Azure и Drupal
Microsoft , Azure и Drupal
 
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeterНагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
 
Поисковая оптимизация интернет-магазины на базе Drupal Commerce
Поисковая оптимизация интернет-магазины на базе Drupal CommerceПоисковая оптимизация интернет-магазины на базе Drupal Commerce
Поисковая оптимизация интернет-магазины на базе Drupal Commerce
 
Инструментарий продвинутого командного разработчика
Инструментарий продвинутого командного разработчикаИнструментарий продвинутого командного разработчика
Инструментарий продвинутого командного разработчика
 
Приём платежей для CMS
Приём платежей для CMSПриём платежей для CMS
Приём платежей для CMS
 

Интеграция Яндекс Сервер

  • 1.
  • 3. Вот он FreeBSD 6.3, 7.0 (32/64) Linux 2.6.x (32/64) Windows 2000/XP/2003 (32/64) Файлы HTTP Базы данных (ODBC) Русский Быстрый Гибкий
  • 4.
  • 5. Установка (Linux) $ sudo dpkg -i Yandex_Server-2010.9.0-Linux-x86_64.deb $ cat /usr/local/etc/yandex/yandex.cfg $ sudo /etc/init.d/yandex-server.sh re start http://api.yandex.ru/server/doc/concepts/y-server-ee.xml#quickstart
  • 6. Язык запросов http://help.yandex.ru/search/?id=1111313 http://api.yandex.ru/server/doc/concepts/query-zones-and-attributes-search.xml
  • 7. Как обычно устроен поиск Модуль индексирования Индекс Модуль поиска Поиск
  • 9.
  • 10. Выгрузка для индексирования http://your_drupal_site.ru / yserver-dump ? mode=force_new & type=strict http://your_drupal_site.ru/yserver-dump? mode=update & type=queue http://your_drupal_site.ru/yserver-dump? mode=force_new & type=queue Cron: */30 * * * * /usr/bin/wget -O - -q -t 1http://your_drupal_.site.ru/yserver-dump?mode=update&type=queue&& /path_to_yserver_script/yserver.sh reindex
  • 12. Области индексирования function your_module_init() { if (function_exists( 'yserver_remove_areas' )) { // Удалим все определенные // ранее области индексирования. yserver_remove_areas(); your_module_set_area( 'node' , array( 'your_module_get_node_ilist' ), array( 'yserver_get_node_idata' )); }} ...
  • 13. Задание области индексирования function your_module_get_node_ilist() { $query = &quot; SELECT nid, changed FROM {node} WHERE status = 1 &quot; ; $result = db_query( $query ); $nids = array(); foreach ( $result as $record ) { $nids [ $record ->nid] = $record ->changed; } return $nids ; } Получить список (id => время изменения)
  • 14. Задание области индексирования function your_module_get_node_idata ( $nid ) { $node = node_load( $nid ); $icontent = '<h1>' . $node ->title . '</h1>' . render(node_view( $node , 'full' )); $ialias = drupal_get_path_alias( 'node/' . $nid ); return array( 'content' => $icontent , 'attrs' => array( 'ys_title' => $node->title , 'ys_link' => $ialias , )); } Получить для id контент и атрибуты
  • 15. “ Чистая” форма поиска function your_module_form_search_block_form_alter(& $form , $form_state) { $form [ '#submit' ] = array( 'your_module_search_box_form_submit' ); } function your_module_search_box_form_submit( $form , & $form_state ) { $form_id = $form [ 'form_id' ][ '#value' ]; // Текст из поисковой формы. $keys = $form_state [ 'values' ][ $form_id ]; $path = 'search/yserver/' . trim( $keys . '@ysoutbox@ys_area:node_article' ); //$path .= ' ys_tag:football' ; $form_state [ 'redirect' ] = $path ; } URL (строка браузера): http://your_drupal_site.ru/search/yserver/зенит чемпион @ysoutbox@ ys_area:node_article Поисковая форма: зенит чемпион
  • 16. Вывод данных в SERP template.php: function your_theme_preprocess_search_result(& $variables ) { dvm( $variables [ 'result' ][ 'ys_attrs' ]); } search-result.tpl.php: print $ys_attrs [ 'type' ] . ', ' . $ys_attrs [ 'subtype' ] . ':::' . $ys_attrs [ 'address' ]; print $snippet ;