Интеллектуальный поиск контента Drupal с помощью Amazon Kendra

Расширенный поиск контента в Drupal с помощью Amazon Kendra

Amazon Kendra – интеллектуальный сервис поиска, основанный на машинном обучении (ML). Amazon Kendra помогает вам легко объединить контент из различных хранилищ контента в централизованный индекс, который позволяет быстро искать все ваши корпоративные данные и находить самые точные ответы. Drupal – это программное обеспечение для управления контентом. Оно используется для создания многих веб-сайтов и приложений, которыми мы пользуемся каждый день. Drupal имеет отличный функционал, такой как простое создание контента, надежная производительность и безопасность. Многие организации используют Drupal для хранения своего контента. Одно из ключевых требований для многих клиентов, использующих Drupal, – это возможность легко и безопасно находить точную информацию во всех документах в источнике данных.

С помощью коннектора Amazon Kendra для Drupal вы можете проиндексировать контент Drupal, фильтровать типы пользовательского контента, которые вы хотите индексировать, и легко искать контент Drupal с использованием интеллектуального поиска Amazon Kendra.

В этой статье показано, как использовать коннектор Amazon Kendra для Drupal для настройки коннектора в качестве источника данных для вашего индекса Amazon Kendra и поиска ваших документов Drupal. В зависимости от конфигурации коннектора Drupal, вы можете синхронизировать коннектор для проверки и индексации различных типов контента Drupal, таких как блоги и вики. Коннектор также встраивает информацию о списке контроля доступа (ACL) для каждого файла. Информация о ACL используется для фильтрации контекста пользователя, где результаты поиска для запроса фильтруются в соответствии с авторизованным доступом пользователя.

Предварительные требования

Для попробовать Amazon Kendra коннектор для Drupal, используя эту статью в качестве справочного материала, вам понадобятся следующие:

  • Учетная запись AWS с привилегиями для создания ролей и политик управления доступом к AWS Identity and Access Management (IAM). Дополнительные сведения см. в обзоре управления доступом: разрешения и политики и IAM-роли для источников данных Drupal.
  • Основные знания AWS и рабочие знания по управлению Drupal.
  • Настроенный Drupal с пользователем, который имеет роль Administrator. Мы будем хранить имя пользователя и пароль администратора в AWS Secrets Manager.

Настройка источника данных с использованием коннектора Amazon Kendra для Drupal

Чтобы добавить источник данных в индекс Amazon Kendra с помощью коннектора Drupal, вы можете использовать существующий индекс или создать новый индекс. Затем выполните следующие шаги. Дополнительные сведения по этой теме см. в Руководстве разработчика Amazon Kendra.

  1. На консоли Amazon Kendra откройте свой индекс и выберите Источники данных в панели навигации.
  2. Выберите Добавить источник данных.
  3. В разделе Drupal выберите Добавить коннектор.
  4. В разделе Укажите данные о источнике данных введите имя и описание, и выберите Далее.
  5. В разделе Настраиваемый доступ и безопасность для URL хоста Drupal введите URL сайта Drupal.
  6. Для настройки SSL-сертификатов вы можете создать самоподписанный сертификат для этой установки с помощью команды openssl x509 -in mydrupalsite.pem -out drupal.crt и сохранить сертификат в хранилище Amazon Simple Storage Service (Amazon S3). Подробнее о генерации закрытого ключа и сертификата см. в разделе Генерация сертификатов.
  7. Выберите Обзор S3 и выберите S3-бакет с SSL-сертификатом.
  8. В разделе Аутентификация у вас есть два варианта:
    • Использовать Secrets Manager для создания новых учетных данных аутентификации Drupal. Вам понадобятся имя пользователя и пароль администратора Drupal (а также идентификатор клиента и секрет клиента для аутентификации OAuth 2.0).
    • Используйте существующие секреты Secrets Manager, в которых хранятся учетные данные аутентификации Drupal, к которым вы хотите, чтобы коннектор получал доступ (а также идентификатор клиента и секрет клиента для аутентификации OAuth 2.0).
  9. Выберите Сохранить и добавить секрет.
  10. Для Роль IAM выберите Создать новую роль или выберите существующую роль IAM, настроенную с соответствующими политиками IAM для доступа к секрету Secrets Manager, индексу Amazon Kendra и источнику данных.

Перейдите по ссылке IAM roles for data sources для получения необходимых разрешений для IAM-роли.

  1. Выберите Next.
  2. В разделе Настройка параметров синхронизации выберите Статьи, Основные страницы, Основные блоки, Пользовательские типы контента и Пользовательские блоки, а также выберите опции для обхода комментариев и вложений, если это необходимо.
  3. При желании введите шаблоны для включения/исключения заголовков.
  4. Укажите информацию о сфере синхронизации (полная или только дельта) и установите расписание запусков.
  5. Выберите Next.
  6. В разделе Настройка сопоставления полей добавьте пользовательские поля Drupal, которые вы хотите синхронизировать, и их соответствующие сопоставления полей в Amazon Kendra. Обязательные поля уже сопоставлены Amazon Kendra.
  7. Выберите Next.
  8. Проверьте настройки конфигурации и сохраните источник данных.
  9. Выберите Sync now в созданном источнике данных, чтобы начать синхронизацию данных с индексом Amazon Kendra.

Время, необходимое для обхода и синхронизации содержимого в Amazon Kendra, может варьироваться в зависимости от объема содержимого и пропускной способности.

Теперь вы можете искать проиндексированное содержимое Drupal, используя консоль поиска или поисковое приложение. Дополнительно вы можете выполнять поиск с использованием ACL с помощью следующих дополнительных шагов.

  1. Перейдите на страницу индекса, который вы создали, и на вкладке Управление доступом пользователя выберите Изменить параметры.
  2. В разделе Настройки контроля доступа выберите Да, сохраните значения по умолчанию для Имя пользователя и Группы, выберите JSON для Типа токена и оставьте раскрытие пользователей-групп как Нет.
  3. На следующей странице оставьте значения по умолчанию (или измените их в соответствии с требованиями производительности) и выберите Обновить.

Осуществление интеллектуального поиска с помощью Amazon Kendra

Прежде чем вы попытаетесь выполнить поиск в консоли Amazon Kendra или использовать API, убедитесь, что синхронизация исходных данных завершена. Чтобы проверить, просмотрите источники данных и убедитесь, что последняя синхронизация прошла успешно.

  1. Для начала поиска в консоли Amazon Kendra выберите вкладку Поиск проиндексированного содержимого в панели навигации.

Вы будете перенаправлены на консоль поиска Amazon Kendra. Теперь вы можете искать информацию из документов Drupal, проиндексированных с использованием Amazon Kendra.

  1. В этом посте мы ищем документ, хранящийся в источнике данных Drupal.
  2. Разверните вкладку Тестовый запрос с помощью токена доступа и выберите Применить токен.
  3. Для поля Имя пользователя введите адрес электронной почты, связанный с вашей учетной записью Drupal.
  4. Выберите Применить.

Теперь пользователь может видеть только контент, к которому он имеет доступ на основе имени пользователя или указанных групп. В нашем примере, пользователь Drupal с электронной почтой test@amazon.com не имеет доступа к документам на Drupal, поэтому ни один из них не отображается.

Ограничения

Обратите внимание на следующие ограничения при использовании этого решения:

  • Типы контента (такие как статья или основная страница), не связанные ни с одним видом, не могут быть проиндексированы.
  • Если администратор не имеет доступа к блоку, то вы не сможете проиндексировать данные из этого блока.
  • Тело документа для статьи, основной страницы, основного блока, типа контента, определенного пользователем, и типа блока, определенного пользователем, отображается в формате HTML. Если HTML-контент не является корректным, то связанные с HTML теги будут отображаться в теле документа и, следовательно, будут видны в результатах поиска Amazon Kendra. Это также относится к комментариям статьи, основной страницы, основного блока, типа контента, определенного пользователем, и типа блока, определенного пользователем.
  • Тип контента или тип блока без описания или содержимого не будут внедрены в индекс Amazon Kendra из-за проверки на стороне Amazon Kendra SDK. Однако Drupal позволяет создавать тип контента без описания или содержимого. В индекс Amazon Kendra будут внедрены только комментарии и вложения соответствующих типов контента или типов блоков (если они существуют).

Очистка

Чтобы избежать дальнейших расходов, удалите ресурсы, созданные в рамках этого решения. Если вы создали новый индекс Amazon Kendra в процессе тестирования этого решения, удалите его. Если вы только добавили новый источник данных, используя коннектор Amazon Kendra для Drupal, удалите этот источник данных. Удалите созданных IAM-пользователей.

Заключение

С помощью коннектора Amazon Kendra для Drupal ваша организация может безопасно искать содержимое, хранящееся на сайте Drupal, с помощью интеллектуального поиска на базе Amazon Kendra. В этом посте мы познакомили вас с интеграцией, но есть еще много дополнительных функций, о которых мы не упомянули, таких как:

  • Вы можете отображать прочие поля в атрибутах индекса Amazon Kendra и включать их в фасетный поиск и отображение в результатах поиска.
  • Вы можете интегрировать источник данных Drupal с возможностью настраиваемого обогащения документов (CDE) в Amazon Kendra, чтобы выполнять дополнительную логику сопоставления атрибутов и даже настраивать преобразование контента при индексации.

Чтобы узнать больше о возможностях Drupal, обратитесь к Руководству разработчика Amazon Kendra.

Для получения дополнительной информации о других встроенных коннекторах Amazon Kendra для популярных источников данных обратитесь к странице Amazon Kendra Connectors.