Сервис Amazon CloudSearch был создан для обеспечения высокой пропускной способности с минимальными задержками. Он поддерживает богатый набор функций, включая специализированную обработку текста для каждого из 34 языков, поиск произвольного текста, фасетный и геопространственный поиск, настраиваемое ранжирование по релевантности, подсветку совпадений и пользовательскую конфигурацию параметров масштабирования и доступности.

Для использования Amazon CloudSearch необходимо выполнить следующие простые шаги:

  1. создать поисковый домен;
  2. настроить параметры индексации данных;
  3. загрузить данные для индексации;
  4. направить поисковые запросы с веб-сайта или из приложения.

В разделе ниже приведены дополнительные сведения о принципах работы сервиса CloudSearch.

Попробуйте Amazon CloudSearch бесплатно

Попробуйте бесплатную пробную версию CloudSearch
Подробнее

Получите 750 бесплатных часов работы с полнофункциональным поисковым инстансом в течение 30 дней. Для начала работы выполните следующие шаги.

Войдите в свой аккаунт AWS и запустите консоль сервиса CloudSearch.

С помощью нескольких щелчков создайте и настройте поисковый домен.


Поисковый домен Amazon CloudSearch создается для каждого набора данных, в котором необходимо реализовать функцию поиска. Поисковый домен заключает в себе данные, а также аппаратные и программные ресурсы, необходимые для работы поискового движка. Каждый поисковый домен работает на одном или нескольких поисковых инстансах. Поисковый инстанс – это серверный инстанс, имеющий ограниченное количество ресурсов оперативной памяти и ЦПУ, предназначенных для индексирования данных и обработки запросов. Количество поисковых инстансов в домене зависит от конкретного набора документов, а также объема и сложности поисковых запросов.

Так как Amazon CloudSearch является управляемым поисковым сервисом, он определяет размер и количество поисковых инстансов, необходимых для выполнения поиска с низкими задержками и высокой пропускной способностью. При создании поискового домена сервис Amazon CloudSearch по умолчанию использует поисковые инстансы типа Small (search.m1.small). Можно выбрать более крупный тип поисковых инстансов для увеличения объема ресурсов, задействованных для обновления домена, и снижения количества времени, затрачиваемого на выгрузку и индексацию больших наборов данных. (Если вам требуется объем ресурсов, превышающий возможности самого крупного типа инстансов, можно увеличить количество инстансов и разделить между ними ваш индекс.)

По мере роста объема данных в поисковом индексе сервис Amazon CloudSearch выполняет автоматическое масштабирование поискового домена. Когда индексу становится недостаточно ресурсов, доступных в текущем типе инстанса, домен масштабируется до следующего, более крупного типа инстанса. Если поисковому индексу становится недостаточно ресурсов, доступных в самом крупном типе инстансов, Amazon CloudSearch разделит индекс между несколькими инстансами. И наоборот, если индекс становится меньше, CloudSearch уменьшает количество разделов домена или масштабирует его до меньшего типа поискового инстанса.

Сервис Amazon CloudSearch также выполняет автоматическое масштабирование для того, чтобы справиться с увеличением объемов поискового трафика. Когда поисковый инстанс приближается к максимальной отметке загрузки, CloudSearch развертывает его копию. И наоборот, когда поисковый трафик спадает, Amazon CloudSearch удаляет ненужные копии инстансов для снижения затрат.

Например, поисковый индекс, распределенный между тремя разделами, использует три поисковых инстанса (один для каждого раздела). По мере выхода объемов поискового трафика за рабочие пределы отдельных поисковых инстансов создаются копии разделов, чтобы обеспечить дополнительные ресурсы для обработки запросов. После создания копий инстансов домен получит всего шесть поисковых инстансов – по два в каждом разделе. Если объем трафика продолжит расти, Amazon CloudSearch создаст дополнительные копии по мере необходимости.

Если вы ожидаете большие объемы трафика запросов или значительный всплеск трафика, можно самостоятельно добавить копии поисковых инстансов в свой домен.

CloudSearchScaling

Просмотреть ресурсы, используемые доменами Amazon CloudSearch, можно на странице «История аккаунта» веб-сайта AWS, в Консоли управления AWS или с помощью запросов API CloudSearch, отправленных через интерфейс командной строки или SDK AWS.

Объем данных, поддерживаемых каждым типом поисковых инстансов, в основном зависит от размера индексируемых документов и параметров индексации, заданных для домена.

Чтобы продемонстрировать объем ресурсов для каждого из типов поисковых инстансов, давайте рассмотрим пример документа и конфигурацию набора данных о кинофильмах с веб-сайта IMDb. В приведенном примере показан документ о кинофильме с веб-сайта IMDb примерным размером 1 КБ.

{
   "fields" : {
      "directors" : [
         "Francis Lawrence"
      ],
      "release_date" : "2013-11-11T00:00:00Z",
      "genres" : [
         "Action",
         "Adventure",
        "Sci-Fi",
        "Thriller"
      ],
      "image_url" : "http://ia.media-imdb.com/images/M/MV5xMzNeMzAx._V1_SX400_.jpg",
      "plot" : "Katniss Everdeen and Peeta Mellark become targets of the Capitol after their victory in the 74th Hunger Games sparks a rebellion in the Districts of Panem.",

      "title" : "The Hunger Games: Catching Fire",
      "rank" : 4,
      "running_time_secs" : 8760,
       "actors" : [
         "Jennifer Lawrence",
         "Josh Hutcherson",
         "Liam Hemsworth"
      ],
      "year" : 2013
   },
   "id" : "tt1951264",
   "type" : "add"
}   

Для индексации подобных документов о кинофильмах и поиска по ним необходимо сконфигурировать поисковый домен с индексным полем для каждого поля документа. Можно указать несколько параметров индексации для каждого поля, например тип поля и возможность участия этого поля в поиске, возможность фасетизации, возможность возврата значения, активацию сортировки и подсветки совпадений. Эти параметры индексации непосредственно влияют на количество документов, способное уместиться в одном поисковом инстансе. В следующей таблице показан пример конфигурации индексных полей для рассматриваемых документов о кинофильмах с веб-сайта IMDb.

Название
Тип
Поиск
Фасетизация
Возврат
Сортировка Подсветка совпадений
actors
text-array
directors
text-array
genres
literal-array

image_url
text
plot
text
rank int
rating
double
release_date
date
running_time_secs
int
title
text
year
int

В зависимости от размера документа (1 КБ) и конфигурации индекса каждый из типов поисковых инстансов обладает ресурсами для обработки документов, показанными в следующей таблице.

Поиск типа инстанса Ресурсы для обработки данных
Поисковый инстанс Small (search.m1.small)
2 миллиона документов
Поисковый инстанс Large (search.m1.large) 8 миллионов документов
Поисковый инстанс Extra Large (search.m2.xlarge)
16 миллионов документов
Поисковый инстанс Double Extra Large (search.m2.2xlarge) 32 миллиона документов

Конечно, это всего лишь пример. Различные документы и конфигурации могут значительно повлиять на количество документов, способных разместиться в одном инстансе. Если вы превысите объем ресурсов, доступных в одном поисковом инстансе Double Extra Large, сервис Amazon CloudSearch автоматически разделит поисковый индекс между дополнительными поисковыми инстансами Double Extra Large. Индекс может разделяться между 10 поисковыми инстансами Double Extra Large с поддержкой десятков и сотен миллионов документов. Свяжитесь с нами, если вам нужно дополнительное масштабирование.

Взаимодействие с Amazon CloudSearch осуществляется с помощью трех следующих сервисов.

  • Сервис конфигурирования – создание и конфигурирование поисковых доменов.
  • Сервис документов – выгрузка пакетов документов.
  • Сервис поиска – отправка поисковых запросов и вариантов подстановки.

Можно использовать политики AWS Identity and Access Management (IAM) для управления доступом к сервису конфигурирования CloudSearch, а также сервисам документов и поиска для каждого из доменов.

 

Сервис конфигурирования позволяет создавать и конфигурировать поисковые домены. Чтобы настроить поисковый домен, необходимо присвоить ему уникальное имя и сконфигурировать параметры индексации, схемы текстового анализа, параметры доступности, параметры масштабирования, генераторы подсказок и выражения.

  • Параметры индексации отвечают за поля, которые необходимо включить в индекс. Для сканирования данных и автоматического конфигурирования параметров индексации по умолчанию можно воспользоваться Консолью управления AWS или инструментами командной строки Amazon CloudSearch.
  • Схемы текстового анализа позволяют задать параметры языковой обработки полей с типами text и text-array. Схемы анализа отвечают за стоп-слова, которые должны игнорироваться в процессе индексации, позволяют определить общие синонимы для терминов и задать то, каким образом термины связаны с основами. 
  • Параметры доступности позволяют развертывать домен в двух зонах для обеспечения высокой доступности в случае возникновения сбоев в работе сервиса.
  • Параметры масштабирования позволяют предварительно масштабировать домен, указав необходимый тип инстанса, количество копий и количество разделов. Это бывает полезно, когда необходимо выгрузить большой объем документов или ожидается значительный рост трафика запросов.
  • Генераторы подсказок позволяют извлекать возможные совпадения для незавершенных поисковых запросов, чтобы результаты поиска отображались по мере набора текста пользователем.
  • Выражения – числовые выражения, оценка которых выполняется в ходе обработки запроса. Выражения можно использовать для управления ранжированием результатов поиска. По умолчанию ранжирование документов выполняется по показателю релевантности, который учитывает частоту появления поисковых терминов в документе. Используйте выражения, чтобы добавить другие факторы в ранжирование. Например, если документ содержит числовое поле с названием «Популярность», можно задать выражение, сочетающее «Популярность» с показателем релевантности, заданным по умолчанию, чтобы релевантные популярные документы отображались выше в результатах поиска.

Сервис документов можно использовать для внесения изменений в доступные для поиска данные домена. Каждый домен имеет уникальный HTTP-адрес сервиса документов.

Данные для отправки в домен должны быть представлены в формате JSON или XML. Каждый элемент, который может быть возвращен в качестве результата поиска, нужно представить в виде отдельного документа. Каждый документ имеет уникальный ID, а также одно или несколько полей, содержащих данные для поиска и возврата в виде результатов. Поля документов могут содержать любые строковые данные в формате UTF-8. Параметры индексации домена отвечают за процесс индексации и использования данных.

Сервис поиска отвечает за отправку поисковых запросов и вариантов подстановки для домена. Каждый домен имеет уникальный HTTP-адрес сервиса поиска. При отправке поискового запроса или варианта подстановки сервис поиска возвращает список совпадающих документов. Результаты возвращаются в формате JSON или XML.

Сервис Amazon CloudSearch предоставляет многофункциональный язык запросов, позволяющий выполнять поиск в рамках отдельных полей, комплексный поиск с использованием логических выражений, извлекать фасетную информацию и указывать данные для включения в результаты поиска. Также можно задать параметры обработки поисковых терминов и использовать другие парсеры запросов, например Lucene или DisMax.

Для тестирования примерных запросов можно использовать инструмент проверки поиска, доступный в консоли Amazon CloudSearch.

cloudsearcharchitecture

Использование данного сервиса регламентируется пользовательским соглашением об использовании Amazon Web Services.