Drupal node_seach - PullRequest
       7

Drupal node_seach

0 голосов
/ 08 июня 2009

Я работаю над каналом RSS, где должен быть предложен полнотекстовый поиск - вы выполняете поиск в каком-то поле и получаете результат в виде RSS Я пытался заставить работать node_search и do_search, но мне чего-то не хватает ... но что?

Насколько я могу судить, что-то вроде $ find = node_search ('search', 'type: article'); должен дать мне результат, содержащий все совпадающие узлы, где type = 'article'. Но как мне указать ключевое слово / поисковый запрос?

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 08 июня 2009

Это должен быть ключ: значение, которое вы можете использовать - и "" также.

hook_search

Phil

0 голосов
/ 08 июня 2009

Модуль OpenSearch предоставляет результаты поиска в виде RSS, нет необходимости кодировать его самостоятельно.

Если вам нужна специализированная форма, вы можете просто перенаправить результат OpenSearch после обработки вашей формы.

Приложение: Если вы действительно хотите сделать свое дело, вы можете использовать search_data следующим образом:

<?php
$data = search_data('your searchterms here');

Это ищет узлы (как второй параметр по умолчанию для search_data), но может также использоваться для поиска пользователей и других вещей, которые реализовали hook_search.

Кроме того, search_data, опровергая имя, фактически возвращает отформатированные результаты поиска. Если вы хотите получить необработанные результаты поиска, вы можете вызвать hook_search напрямую или использовать do_search. Примеры:

<?php
$results = module_invoke('node', 'search', 'your searchterms here');
$data = do_search($query, 'node');

Разница в том, что при вызове ловушки вы получаете гораздо больше данных, связанных с узлами (поскольку он проходит через код поиска, специфичный для узла, в дополнение к универсальной do_search (реализация hook_search для node.module вызывает do_search чтобы получить реальную работу)) и, возможно, более точный поиск, так как поиск узла учитывает веса, которые вы могли установить в настройках поиска. Компромисс - более медленный поисковый запрос.

...