Поисковая система Drupal не индексирует мои пользовательские узлы! - PullRequest
2 голосов
/ 26 ноября 2009

Кто-то опубликовал час назад или около того вопрос, который был о поисковой системе drupal и примерно так:

Я знаю, что drupal должен индексировать все, что возвращается node_view(), но этого не происходит для моего пользовательского контента. Также: есть ли лучшие альтернативы встроенному функционалу Drupal?

Поскольку вопрос был удален, когда я отвечал, и я не хотел тратить 20 минут своей жизни даром;) Я подумал воссоздать вопрос во второй раз. Надеюсь, что это хорошо по правилам ТАК! :)

1 Ответ

6 голосов
/ 26 ноября 2009

Поисковая система Drupal, вероятно, не самая известная особенность Drupal, но довольно солидная, сложная и надежная. Есть множество модулей, которые улучшают или заменяют его , но - по крайней мере, по моему опыту - не существует общепринятого "лучшего способа" для управления поиском и индексацией.

Однако для очень больших и загруженных сайтов люди предпочитают использовать внешние инструменты, например, окно поиска Google, или даже специальное программное обеспечение или оборудование, такое как solr / lucene или Google Search Appliance (GSA).

Ссылка, которую я предоставил выше - однако - сортирует модули, связанные с поиском, по убыванию статистики использования, поэтому на первой странице вы найдете наиболее часто используемый. Один из тех, что мне лично нравятся для англоязычных сайтов, - это porter-stemmer , который индексирует слова по их основам (например, высочайшее значение, наивысшее и высшее будут возвращаться как совпадения для слова "высокий").

Это было для общей информации о поиске и Drupal. Что касается вашей проблемы, есть несколько вещей, которые вы можете проверить, чтобы отследить вашу проблему:

  1. Был ли ваш cron.php выполнен в последнее время? Индексация выполняется как часть цикла cron, так что - если у вас нет набора crontab или вы его не выполняли стороны, ваш узел, скорее всего, еще не будет проиндексирован.

  2. Правильны ли настройки? Настройки для модуля поиска расположены по адресу http://example.com/admin/settings/search: достаточно ли минимальной длины слова для ваших нужд (по умолчанию 3 буквы)?

  3. Индексируется ли 100% сайта? (Вы можете проверить это на странице настроек). Если это не так, и запуск cron.php не решит проблему, посмотрите вниз.

  4. Решает ли проблему переиндексация? Особенно, если вы вставили данные с помощью SQL-запросов непосредственно в таблицы Drupal, скорее всего, Drupal не осознал, что содержимое узла имеет изменен и поэтому не обновляет индекс.

  5. Является ли узел, который вы пытаетесь найти, видимым? Результаты поиска по неопубликованным узлам или узлам, для просмотра которых требуются права доступа выше, не возвращаются, AFAIK.

Что касается "застрявшей индексации", которая случилась и со мной однажды. Оказалось, что это был некоторый код PHP внутри тела узла, который вызывал бы исключение PHP при индексации узла, и в результате процесс индексации остановился бы, и все последующие узлы также не будут проиндексированы.

Надеюсь, это поможет. Удачи!

...