Индексирование содержания страниц (содержание - из запроса)

Главные вкладки

Аватар пользователя AndreyL AndreyL 12 мая 2010 в 15:24

Возможна ли индексация (т.е. вывод при поиске) фраз/слов, если они располагаются на каждой странице запросом из базы данных?
Сейчас на сайте проиндексированы только "ручками" набранные слова.

Комментарии

Аватар пользователя AndreyL AndreyL 12 мая 2010 в 20:38

есть страницы, на которых содержание "выдергивается" из таблицы базы данных запросом. в поиске содержание этих страниц не участвует, а хотелось бы. или выход только один - создавать "ключевые слова"? но страниц - тысячи...

Аватар пользователя AndreyL AndreyL 12 мая 2010 в 22:53

в друпал.
хотя, и сам не знаю: в друпал - точно содержание не участвует в поиске. а в поисковых системах - не знаю, там еще, возможно, кэш не успел обновиться.

Аватар пользователя PVasili PVasili 15 мая 2010 в 12:43

Из всего сумбура сложно что либо понять...
Поисковику параллельно ваше внутреннее устройство, если текст доступен в HTML для анонимов - он будет проиндексирован и участвовать в его выдаче.
Для участия в поисковой выдаче Drupal (если это не Node или CCK (или выдача других модулей)) вам нужно попасть в его индексатор. Все зависит как хранится и обрабатывается этот контент. Смотрите [ru-api=hook_update_index]hook_update_index[/ru-api]().

Аватар пользователя Dan Dan 15 мая 2010 в 14:59

Читаем тут -- http://api.drupal.ru/api/group/search/6

Quote:
Для поиска конкретно в нодах реализуется nodeapi('update index') и nodeapi('search result'). Однако, необходимо учесть, что поисковая система уже индексирует весь видимый вывод ноды - все то, что отображается с помощью hook_view() и hook_nodeapi('view'). Обычно этого достаточно. Этот механизм стоит использовать лишь если необходима индексация дополнительных скрытых данных.

То есть, если отображение в ноде сделано корректно и отображается при hook_view() и hook_nodeapi('view'), то ничего делать не нужно. Если сделано криво, то ручками заносим в индекс - nodeapi('update index').

Аватар пользователя AndreyL AndreyL 16 мая 2010 в 9:58

содержание ноды берется через запрос, сохраненный в Content Templates (благодаря усилиям Dan - еще раз спасибо).

<?php
 
print $body;
  if(!(
$node menu_get_object()))
    return;
 
  
$result db_query("SELECT CAT, Firm, NUM FROM MEBEL where Name='%s' ORDER BY Firm"$node->title);
  
$rows = array();
  while(
$row db_fetch_object($result)){
  
$header = array('Название по прайсу''Мед. компания''Цена услуги');
    
$rows[] = array($row->CAT$row->Firm$row->NUM);
  }
  print 
theme('table'$header$rows, array());
?>

а вот содержание почему-то не индексируется, т.е., например, есть название аппарата (Olimpus CV-70). Так вот, через поиск я не могу найти ни "Olimpus", ни "CV-70", ни "Olimpus CV-70". При этом то, что я набрал в поле "Текст" создаваемого материала (т.е. не запросом в Content Templates, а html-кодом), прекрасно индексируется.

Вот, а сейчас увидел, что Яндекс прекрасно это название "видит" на моем сайте. Как Drupal показать это и все остальное?

Да, для этих страниц созданы специальные типы материалов. м.б. их где-то еще "прописать" надо?