MZ 28 ноября 2012 в 1:16 У меня индексируются все ноды сайта. Как сделать, чтобы unpublished ноды НЕ индексировались? Drupal7 Есть вопрос Решение проблем Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
MZ 28 ноября 2012 в 14:37 Geldora wrote: правильно настроить права на просмотр анпаблишед нод. вопрос не в том, чтобы просматривать или нет, а чтобы unpublished ноды НЕ попадали в индекс вообще. Их просто очень много и незачем их обрабатывать и показывать в результатах поиска.
MZ 28 ноября 2012 в 14:45 а кстати вот чно обнаружил function hook_search_execute($keys = NULL, $conditions = NULL) { // Build matching conditions $query = db_select('search_index', 'i', array('target' => 'slave'))->extend('SearchQuery')->extend('PagerDefault'); $query->join('node', 'n', 'n.nid = i.sid'); $query ->condition('n.status', 1) т.е. поиск должен вестить только по опубликованным нодам: ->condition('n.status', 1) но в результатах появляются вообще ВСЕ ноды в чем дело???
MZ 28 ноября 2012 в 15:28 NaZg wrote: Поиск ядерный или внешний? Был использован Database service при создании сервера поиска.
MZ 28 ноября 2012 в 15:26 у меня в качестве модуля поиска выбран модуль Node там то же самое function node_search_execute($keys = NULL, $conditions = NULL) { // Build matching conditions //$query = db_select('search_index', 'i', array('target' => 'slave'))->extend('SearchQuery')->extend('PagerDefault'); $query->join('node', 'n', 'n.nid = i.sid'); $query ->condition('n.status', 1) ->addTag('node_access') ->searchExpression($keys, 'node'); но в результатах появляются вообще ВСЕ ноды, в т.ч. и неопубликованные в чем дело???
NaZg 28 ноября 2012 в 16:00 "MZ" wrote: Database service Не знаком. Но вероятно это и есть причина попадания в индекс неопубликованных нод.
MZ 28 ноября 2012 в 22:31 у меня установлен модуль Search API поэтому вопрос решился применением патча http://drupal.org/node/1507882
Комментарии
правильно настроить права на просмотр анпаблишед нод.
вопрос не в том, чтобы просматривать или нет, а чтобы unpublished ноды НЕ попадали в индекс вообще. Их просто очень много и незачем их обрабатывать и показывать в результатах поиска.
а кстати вот чно обнаружил
function hook_search_execute($keys = NULL, $conditions = NULL) {
// Build matching conditions
$query = db_select('search_index', 'i', array('target' => 'slave'))->extend('SearchQuery')->extend('PagerDefault');
$query->join('node', 'n', 'n.nid = i.sid');
$query
->condition('n.status', 1)
т.е. поиск должен вестить только по опубликованным нодам: ->condition('n.status', 1)
но в результатах появляются вообще ВСЕ ноды
в чем дело???
Поиск ядерный или внешний?
Был использован Database service при создании сервера поиска.
у меня в качестве модуля поиска выбран модуль Node
там то же самое
function node_search_execute($keys = NULL, $conditions = NULL) {
// Build matching conditions
//$query = db_select('search_index', 'i', array('target' => 'slave'))->extend('SearchQuery')->extend('PagerDefault');
$query->join('node', 'n', 'n.nid = i.sid');
$query
->condition('n.status', 1)
->addTag('node_access')
->searchExpression($keys, 'node');
но в результатах появляются вообще ВСЕ ноды, в т.ч. и неопубликованные
в чем дело???
Не знаком. Но вероятно это и есть причина попадания в индекс неопубликованных нод.
у меня установлен модуль Search API
поэтому вопрос решился применением патча http://drupal.org/node/1507882