Drupal .= Яндекс.Сервер; <ul><li>DrupalConf. Москва. 03.12.2011 </li></ul>
Кого не хватает?
Вот он FreeBSD  6.3, 7.0 (32/64) Linux  2.6.x (32/64) Windows  2000/XP/2003 (32/64) Файлы HTTP Базы данных (ODBC) Русский ...
Это и другое <ul><li>Как yandex.ru </li></ul><ul><li>Русский , английский, украинский (морфология, диакри́тика) </li></ul>...
Установка (Linux) $  sudo  dpkg -i Yandex_Server-2010.9.0-Linux-x86_64.deb $ cat /usr/local/etc/yandex/yandex.cfg $  sudo ...
Язык запросов http://help.yandex.ru/search/?id=1111313 http://api.yandex.ru/server/doc/concepts/query-zones-and-attributes...
Как обычно устроен поиск Модуль индексирования Индекс Модуль поиска Поиск
Есть такой модуль ...
... yserver Сейчас:  http://drupal.org/sandbox/Mir/1343080 Ожидается:  http://drupal.org/project/yserver <ul><li>Зависимос...
Выгрузка для индексирования http://your_drupal_site.ru / yserver-dump ? mode=force_new & type=strict http://your_drupal_si...
Выгрузилось для индексирования
Области индексирования function  your_module_init() { if (function_exists( 'yserver_remove_areas' )) { // Удалим все опред...
Задание области индексирования function  your_module_get_node_ilist() { $query  =  &quot; SELECT  nid, changed  FROM  {nod...
Задание области индексирования function  your_module_get_node_idata ( $nid ) { $node  = node_load( $nid ); $icontent  =  '...
“ Чистая” форма поиска function  your_module_form_search_block_form_alter(& $form , $form_state)  { $form [ '#submit' ] = ...
Вывод данных в SERP template.php: function  your_theme_preprocess_search_result(& $variables ) { dvm( $variables [ 'result...
Конец СПАСИБО!
Upcoming SlideShare
Loading in …5
×

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

6,288
-1

Published on

Алексей Миронов
Интеграция Яндекс Сервер

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
6,288
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Drupal .= Яндекс.Сервер; <ul><li>DrupalConf. Москва. 03.12.2011 </li></ul>
  2. 2. Кого не хватает?
  3. 3. Вот он FreeBSD 6.3, 7.0 (32/64) Linux 2.6.x (32/64) Windows 2000/XP/2003 (32/64) Файлы HTTP Базы данных (ODBC) Русский Быстрый Гибкий
  4. 4. Это и другое <ul><li>Как yandex.ru </li></ul><ul><li>Русский , английский, украинский (морфология, диакри́тика) </li></ul><ul><li>Язык запросов Операторы. Поиск в атрибутах </li></ul><ul><li>Индексирование без остановки </li></ul><ul><li>Управление по HTTP. Веб-интерфейс </li></ul><ul><li>Результаты в XML. C дополнительными данными </li></ul>
  5. 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. 6. Язык запросов http://help.yandex.ru/search/?id=1111313 http://api.yandex.ru/server/doc/concepts/query-zones-and-attributes-search.xml
  7. 7. Как обычно устроен поиск Модуль индексирования Индекс Модуль поиска Поиск
  8. 8. Есть такой модуль ...
  9. 9. ... yserver Сейчас: http://drupal.org/sandbox/Mir/1343080 Ожидается: http://drupal.org/project/yserver <ul><li>Зависимости (PHP): </li></ul><ul><li>PHP SimpleXML Extension </li></ul><ul><li>PHP cURL Extension </li></ul><ul><li>Drupal Search Module [Core] </li></ul>
  10. 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 1 http://your_drupal_.site.ru/yserver-dump?mode=update&type=queue && /path_to_yserver_script/yserver.sh reindex
  11. 11. Выгрузилось для индексирования
  12. 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. 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. 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. 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. 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 ;
  17. 17. Конец СПАСИБО!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×