Поисковая система Drupal не индексирует мои пользовательские узлы!
-
05-07-2019 - |
Вопрос
Кто-то около часа назад опубликовал вопрос, который был о поисковой системе drupal и примерно так:
Я знаю, что drupal должен индексировать все, что возвращается
node_view ()
, но этого не происходит для моего пользовательского контента. Также: есть ли лучшие альтернативы встроенным функциям Drupal?
Поскольку вопрос был удален, когда я отвечал, и не хотел тратить 20 минут своей жизни даром;) Я подумал воссоздать вопрос во второй раз. Надеюсь, что это хорошо по правилам ТАК! :) Р>
Решение
Поисковая система Drupal, вероятно, не самая известная особенность Drupal, но она довольно солидная, сложная и надежная. Существует множество модулей, которые улучшают или заменяют его , но - на по крайней мере, из моего опыта - не существует общепринятого "лучшего способа" управлять поиском и индексацией.
Однако для очень больших и загруженных сайтов люди предпочитают использовать внешние инструменты, например, окно поиска Google или даже специальное программное или аппаратное обеспечение, такое как solr / lucene или Google Search Appliance (GSA).
Ссылка, которую я предоставил выше - однако - сортирует модули, связанные с поиском, по убыванию статистики использования, поэтому на первой странице вы найдете наиболее часто используемый. Один из тех, что мне лично нравятся для англоязычных сайтов, - это porter-stemmer , который индексирует слова по их основам (например, : высочайшее, наивысшее и высшее все будут возвращены как совпадения для слова «высокий»).
Это было для общей информации о поиске и Drupal. Что касается вашей проблемы, есть несколько вещей, которые вы можете проверить, чтобы отследить вашу проблему:
<Ол> Был ли ваш cron.php
выполнен в последнее время? Индексация выполняется как часть запуска cron, поэтому - если у вас нет набора crontab или если вы не выполнили его вручную, ваш узел, скорее всего, еще не будет проиндексирован.
Настройки правильные? Настройки для модуля поиска расположены по адресу http://example.com/admin/settings/search : достаточно ли минимальной длины слова для ваших нужд (по умолчанию 3 буквы)?
Индексируется ли 100% сайта? (Вы можете проверить это на странице настроек). Если это не так, и запуск cron.php
не решает проблему, посмотрите вниз.
Решает ли проблему переиндексация? Особенно, если вы вставляли данные с помощью SQL-запросов непосредственно в таблицы Drupal, скорее всего, Drupal не понял содержимого узла изменился и поэтому не обновляет индекс.
Является ли узел, который вы пытаетесь найти, видимым? Результаты поиска по неопубликованным узлам или узлам, для просмотра которых требуются права выше, не отображаются, AFAIK. р>
Что касается " застрявшей индексации " это случилось и со мной однажды. Оказалось, что это был некоторый код PHP внутри тела узла, который вызывал бы исключение PHP при индексации узла, и в результате процесс индексации остановился бы, и все последующие узлы также не будут проиндексированы.
Надеюсь, это поможет. Удачи!