Amazon Kendra — это интеллектуальный поисковый сервис, основанный на машинном обучении (ML). Amazon Kendra помогает легко агрегировать контент из различных репозиториев контента в централизованный индекс, который позволяет быстро выполнять поиск по всем корпоративным данным и находить наиболее точный ответ. Друпал это программное обеспечение для управления контентом. Он используется для создания многих веб-сайтов и приложений, которые мы используем каждый день. Drupal имеет отличный набор функций, таких как простота создания контента, надежная производительность и безопасность. Многие организации используют Drupal для хранения своего контента. Одним из ключевых требований для многих клиентов, использующих Drupal, является возможность легко и безопасно находить точную информацию во всех документах в источнике данных.
С помощью коннектора Amazon Kendra Drupal вы можете индексировать контент Drupal, фильтровать типы пользовательского контента, который вы хотите индексировать, и легко выполнять поиск по контенту Drupal с помощью интеллектуального поиска Amazon Kendra.
В этом посте показано, как использовать коннектор Amazon Kendra Drupal для настройки коннектора в качестве источника данных для индекса Amazon Kendra и поиска в документах Drupal. В зависимости от конфигурации соединителя Drupal вы можете синхронизировать его для сканирования и индексирования различных типов контента Drupal, например блогов и вики. Соединитель также принимает информацию о списке управления доступом (ACL) для каждого файла. Информация ACL используется для фильтрации пользовательского контекста, когда результаты поиска по запросу фильтруются по тому, к чему пользователь имеет авторизованный доступ.
Предварительные условия
Чтобы опробовать коннектор Amazon Kendra для Drupal, используя этот пост в качестве справочного материала, вам понадобится следующее:
Настройте источник данных с помощью коннектора Amazon Kendra для Drupal.
Чтобы добавить источник данных в индекс Amazon Kendra с помощью соединителя Drupal, вы можете использовать существующий индекс или создать новый индекс. Затем выполните следующие шаги. Дополнительную информацию по этой теме можно найти в Руководстве разработчика Amazon Kendra.
- На консоли Amazon Kendra откройте свой индекс и выберите Источники данных в панели навигации.
- Выбирать Добавить источник данных.
- Под Друпалвыбирать Добавить соединитель.
- в Укажите сведения об источнике данных раздел, введите имя и описание и выберите Следующий.
- На Определите доступ и безопасность раздел, для URL-адрес хоста Drupalвведите URL-адрес сайта Drupal.
- Чтобы настроить сертификаты SSL, вы можете создать самозаверяющий сертификат для этой настройки, используя команду
openssl x509 -in mydrupalsite.pem -out drupal.crt
команду и сохраните сертификат в корзине Amazon Simple Storage Service (Amazon S3). Более подробную информацию о создании закрытого ключа и сертификата см. Генерация сертификатов. - Выбирать Просмотр S3 и выберите корзину S3 с сертификатом SSL.
- Под Аутентификацияу вас есть два варианта:
- Используйте Secrets Manager для создания новых учетных данных аутентификации Drupal. Вам понадобится имя пользователя и пароль администратора Drupal (кроме того, идентификатор клиента и секрет клиента для аутентификации OAuth 2.0).
- Используйте существующий секрет Secrets Manager, содержащий учетные данные проверки подлинности Drupal, к которым должен получить доступ соединитель (кроме того, идентификатор клиента и секрет клиента для проверки подлинности OAuth 2.0).
- Выбирать Сохранить и добавить секрет.
- Для Роль IAMвыбирать Создать новую роль или выберите существующую роль IAM, настроенную с использованием соответствующих политик IAM, для доступа к секрету Secrets Manager, индексу Amazon Kendra и источнику данных.
Дополнительные разрешения для роли IAM см. в разделе Роли IAM для источников данных.
- Выбирать Следующий.
- в Настройка параметров синхронизации раздел, выберите Статьи, Основные страницы, Базовые блоки, Пользовательские типы контентаи Пользовательские блоки а также возможности сканирования комментариев и вложений по мере необходимости.
- При необходимости введите шаблоны включения/исключения для заголовков объектов.
- Предоставьте информацию об области синхронизации (только полной или разностной) и укажите график запуска.
- Выбирать Следующий.
- в Установить сопоставления полей Добавьте пользовательские поля Drupal, которые вы хотите синхронизировать, и соответствующие им сопоставления полей Amazon Kendra. Обязательные поля предварительно сопоставлены Amazon Kendra.
- Выбирать Следующий.
- Просмотрите параметры конфигурации и сохраните источник данных.
- Выбирать Синхронизировать сейчас на созданном источнике данных, чтобы начать синхронизацию данных с индексом Amazon Kendra.
Время, необходимое для сканирования и синхронизации содержимого с Amazon Kendra, зависит от объема контента и пропускной способности.
Теперь вы можете искать проиндексированный контент Drupal с помощью консоли поиска или приложения поиска. При желании вы можете выполнить поиск с помощью ACL, выполнив следующие дополнительные действия.
- Перейдите на созданную индексную страницу и на Контроль доступа пользователейвкладка l, выбирай Изменить настройки.
- Под Настройки контроля доступавыбирать Дасохраните значения по умолчанию для Имя пользователя и Группывыбирать JSON для Тип токенаи сохраните расширение группы пользователей как Никто.
- На следующей странице сохраните значения по умолчанию (или измените их в зависимости от требований к емкости) и выберите Обновлять.
Выполняйте интеллектуальный поиск с помощью Amazon Kendra
Прежде чем пытаться выполнять поиск на консоли Amazon Kendra или использовать API, убедитесь, что синхронизация источника данных завершена. Чтобы проверить, просмотрите источники данных и убедитесь, что последняя синхронизация прошла успешно.
- Чтобы начать поиск, на консоли Amazon Kendra выберите Поиск индексированного контента в панели навигации.
Вы будете перенаправлены на консоль поиска Amazon Kendra. Теперь вы можете искать информацию в документах Drupal, которые вы проиндексировали с помощью Amazon Kendra.
- Для этого поста мы ищем документ, хранящийся в источнике данных Drupal.
- Расширять Тестовый запрос с токеном доступа и выбери Применить токен.
- Для Имя пользователявведите адрес электронной почты, связанный с вашей учетной записью Drupal.
- Выбирать Применять.
Теперь пользователь может видеть только тот контент, к которому у него есть доступ, на основе указанного имени пользователя или группы. В нашем примере пользователь 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.
Об авторах
Чанна Басавараджа — старший архитектор решений в AWS с более чем двухлетним опытом создания распределенных бизнес-решений. Его области специализации охватывают машинное обучение, разработку приложений и мобильных устройств, событийно-ориентированную архитектуру и Интернет вещей и периферийные вычисления.
Юаньхуа Ван — инженер-программист в AWS с более чем 15-летним опытом работы в технологической отрасли. Его интересы — архитектура программного обеспечения и создание инструментов для облачных вычислений.