Запретить индексирование элементов, чтобы они не появлялись при поиске


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

 3
Author: enchance, 2011-08-05

2 answers

Вы можете использовать модуль API поиска в Drupal 7, чтобы предоставить вам этот детальный контроль над индексацией и результатами поиска.

Для использования API поиска вам понадобится по крайней мере еще один модуль, а именно тот, который определяет класс обслуживания (например, search_api_db ("Поиск по базе данных"), поставляемый с этим модулем).

  • Создание сервера (Конфигурация > API поиска > Добавить сервер)

Самое основное, что вам нужно создать, - это поисковый сервер для индексирования содержание. Перейдите в раздел Конфигурация > Поиск API на страницах администрирования и выберите "Добавить сервер". Имя и описание обычно отображаются только администраторам и могут использоваться для различения нескольких серверов или для объяснения использования сервера другим администраторам (для больших сайтов). Отключение сервера делает его непригодным для индексирования и поиска и может, например, использоваться, если базовая поисковая система временно недоступна. "Класс обслуживания" здесь является наиболее важным параметром, так как он позволяет выбрать , какую серверную часть будет использовать поисковый сервер. Это нельзя изменить после создания сервера. В зависимости от выбранного класса обслуживания будут доступны дополнительные настройки для конкретных услуг . Для получения подробной информации об этих настройках обратитесь к документации соответствующей службы.

  • Создание индекса (Конфигурация > API поиска > Добавить индекс)

Для добавления индекса поиска выберите "Добавить индекс" на странице администрирования API поиска . Имя, описание и "включено" статус служит той же цели, что и для серверов. Наиболее важным параметром в этой форме является тип индексированной сущности. Каждый индекс содержит данные только об одном типе сущностей, например, узлах, пользователях или терминах таксономии. Поэтому это единственный вариант, который впоследствии нельзя изменить. Сервер, на котором находится индекс, определяет, где данные будут фактически индексироваться. Это не влияет ни на какие другие настройки индекса и впоследствии может быть изменено с единственным недостатком, заключающимся в том, что индекс' контент придется снова индексировать. Вы также можете выбрать сервер, который в данный момент отключен, или выбрать, чтобы индекс на данный момент вообще не находился ни на одном сервере. Однако обратите внимание, что вы можете создавать включенные индексы только на включенном сервере. Кроме того, отключение сервера приведет к отключению всех индексов, которые лежат на нем. Опция "Индексировать элементы немедленно" указывает, что вы хотите, чтобы элементы были непосредственно проиндексированы после изменения, а не ждали следующего запуска cron. Используйте это, если это так важно, чтобы пользователи не видели устаревших данных при поиске, и только тогда, когда ваша настройка позволяет относительно быструю индексацию. Наконец, опция "Размер пакета Cron" позволяет вам установить, будут ли элементы индексироваться при запуске cron (при условии, что индекс включен), и сколько элементов будет индексироваться в одном пакете. Наилучшее значение для этого параметра зависит от того, насколько трудоемкой является индексация для вашей настройки, которая, в свою очередь, в основном зависит от используемого сервера и включенных изменений данных. Вы должны установить его на количество элементов, которые можно легко проиндексировать за 10 секунд. Элементы также могут индексироваться вручную или непосредственно при их изменении, поэтому, даже если значение равно 0, индекс все равно можно использовать.

  • Индексированные поля (Конфигурация > API поиска> [Имя индекса] > Поля)

Здесь вы можете выбрать, какие поля сущностей будут индексироваться и как. Поля, добавленные (включенными) изменениями данных, также будут доступны здесь. Без выбора полей для индексирования индекс будет бесполезно, а также не будет доступно для поиска. Выберите тип данных "Полнотекстовый" для полей, в которых вы хотите искать ключевые слова, и другие типы данных, если вы хотите использовать поле для фильтрации (например, в качестве фасетов). Поле "Язык элемента" всегда будет индексироваться, поскольку оно содержит важную информацию для процессоров и крючков. Вы также можете добавить поля связанных объектов здесь, с помощью формы "Добавить связанные поля" в нижней части страницы. Например, вы можете захотеть проиндексировать имя пользователя автора к индексированным данным узла, и вам нужно добавить объект "Тело" в узел, когда вы хотите проиндексировать фактический текст, который он содержит.

  • Рабочий процесс индексирования (Конфигурация > API поиска> [Имя индекса] > Рабочий процесс)

На этой странице вы можете настроить, как работает созданный индекс и какие метаданные будут доступны, выбрав изменения данных и процессоры ( дополнительные пояснения см. в глоссарии). Изменения данных обычно добавляют только одно или несколько полей к сущности и их порядок в основном не имеет значения. Однако порядок процессоров часто имеет важное значение. Прочитайте описания процессоров или обратитесь к их документации, чтобы определить, как их использовать наиболее эффективно.

 4
Author: , 2011-08-05 22:56:10

Это собственная функция https://drupal.org/project/apachesolr модуль.

Используя apachesolr + модуль apachesolr, вы можете настроить типы контента, которые вы хотите проиндексировать, с помощью флажков. Здесь не требуется кодирование.

Плюс вы получаете дополнительный бонус в виде гораздо более продвинутой поисковой системы с гранями и т. Д.

 0
Author: wiifm, 2011-08-07 09:33:46