Интеллектуальная поисковая система для товаров, предназначенная для решений электронной коммерцииIntelligent product search engine for e-commerce

В этом примере сценария показано, как использование специализированной службы поиска может значительно повысить релевантность результатов поиска для клиентов электронной коммерции.This example scenario shows how using a dedicated search service can dramatically increase the relevance of search results for your e-commerce customers.

Поиск является основным механизмом, благодаря которому клиенты находят и в конечном итоге приобретают продукты. Поэтому важно, чтобы результаты поиска были релевантные намерению поискового запроса и чтобы сквозной поиск соответствовал поисковым гигантам, предоставляя почти мгновенные результаты, лингвистический анализ, сопоставление геолокации, фильтрацию, фасетизацию, автозаполнение, подсветку и т. д.Search is the primary mechanism through which customers find and ultimately purchase products, making it essential that search results are relevant to the intent of the search query, and that the end-to-end search experience matches that of search giants by providing near-instant results, linguistic analysis, geo-location matching, filtering, faceting, autocomplete, hit highlighting, etc.

Представьте себе типичное веб-приложение электронной коммерции с данными о продуктах, хранящимися в реляционной базе данных, например SQL Server или базе данных SQL Azure.Imagine a typical e-commerce web application with product data stored in a relational database like SQL Server or Azure SQL Database. Поисковые запросы часто обрабатываются внутри базы данных с помощью LIKE запросов или функций полнотекстового поиска.Search queries are often handled inside the database using LIKE queries or Full-Text Search features. С помощью Поиска Azure вы освобождаете свою оперативную базу данных от обработки запросов и можете легко начать использовать те трудно реализуемые функции, которые предоставляют вашим клиентам лучшие возможности поиска.By using Azure Search instead, you free up your operational database from the query processing and you can easily start taking advantage of those hard-to-implement features that provide your customers with the best possible search experience. Кроме того, поскольку Поиск Azure является компонентом платформы как услуги (PaaS), вам не нужно беспокоиться об управлении инфраструктурой или становиться экспертом по поиску.Also, because Azure Search is a platform as a service (PaaS) component, you don't have to worry about managing infrastructure or becoming a search expert.

Варианты соответствующего использованияRelevant use cases

Другие варианты использования:Other relevant use cases include:

  • Поиск объектов недвижимости или хранилищ вблизи физического расположения пользователя.Finding real estate listings or stores near the user's physical location.
  • Поиск статей на сайте новостей или поиск спортивных результатов с более высоким предпочтением недавней информации.Searching for articles in a news site or looking for sports results, with a higher preference for more recent information.
  • Поиск в больших репозиториях для организаций, ориентированных на работу с документами, например для разработчиков политик и нотариусов.Searching through large repositories for document-centric organizations like policy makers and notaries.

В конечном счете любое приложение с любыми функциями поиска может использовать преимущества специальной службы поиска.Ultimately, any application that has some form of search functionality can benefit from a dedicated search service.

ArchitectureArchitecture

Обзор архитектуры компонентов Azure в интеллектуальной поисковой системе для товаров, предназначенной для решений электронной коммерции

Этот сценарий рассматривает решение электронной коммерции, в котором клиенты могут выполнять поиск в каталоге продуктов.This scenario covers an e-commerce solution where customers can search through a product catalog.

  1. Клиенты переходят к веб-приложению электронной коммерции с любого устройства.Customers navigate to the e-commerce web application from any device.
  2. Каталог продуктов хранится в базе данных SQL Azure для обработки транзакций.The product catalog is maintained in an Azure SQL Database for transactional processing.
  3. Поиск Azure использует индексатор поиска, чтобы автоматически обновлять индекс поиска с помощью интегрированного отслеживания изменений.Azure Search uses a search indexer to automatically keep its search index up-to-date through integrated change tracking.
  4. Поисковые запросы клиентов переносятся в службу Поиск Azure, которая обрабатывает запрос и возвращает наиболее релевантные результаты.Customer's search queries are offloaded to the Azure Search service, which processes the query and returns the most relevant results.
  5. В качестве альтернативы веб-поисковому опыту клиенты также могут использовать виртуальный собеседник в социальных сетях или прямо с цифровых помощников для поиска продуктов и постепенного уточнения своего поискового запроса и результатов.As an alternative to a web-based search experience, customers can also use a conversational bot in social media or straight from digital assistants to search for products and incrementally refine their search query and results.
  6. При необходимости функция Когнитивный поиск может использоваться для применения искусственного интеллекта для более умной обработки.Optionally, the Cognitive Search feature can be used to apply artificial intelligence for even smarter processing.

КомпонентыComponents

  • Службы приложений — веб-приложения. Размещает веб-приложения, позволяющие выполнять автоматическое масштабирование и обеспечивать высокую доступность без необходимости управлять инфраструктурой.App Services - Web Apps hosts web applications allowing autoscale and high availability without having to manage infrastructure.
  • База данных SQL. Это реляционная база данных общего назначения (управляемая служба) в Microsoft Azure, которая поддерживает такие структуры, как реляционные данные, JSON, пространственные данные и XML.SQL Database is a general-purpose relational database-managed service in Microsoft Azure that supports structures such as relational data, JSON, spatial, and XML.
  • Azure Search — это облачное решение для поиска как службы, которое обеспечивает богатый опыт поиска по сравнению с частным, неоднородным контентом в веб-, мобильных и корпоративных приложениях.Azure Search is a search-as-a-service cloud solution that provides a rich search experience over private, heterogeneous content in web, mobile, and enterprise applications.
  • Служба программ-роботов предоставляет средства для создания, тестирования, развертывания и управления интеллектуальными ботами.Bot Service provides tools to build, test, deploy, and manage intelligent bots.
  • Cognitive Services позволяет использовать интеллектуальные алгоритмы для просмотра, прослушивания, говорить, понимать и интерпретировать потребности пользователя с помощью естественных методов общения.Cognitive Services lets you use intelligent algorithms to see, hear, speak, understand, and interpret your user needs through natural methods of communication.

Альтернативные вариантыAlternatives

  • Можно использовать возможности поиска в базе данных, например через полнотекстовый поиск по SQL Server, но затем ваше хранилище транзакций будет также обрабатывать запросы (увеличивая потребность в мощности обработки), а возможности поиска внутри базы данных будут более ограниченными.You could use in-database search capabilities, for example, through SQL Server full-text search, but then your transactional store also processes queries (increasing the need for processing power) and the search capabilities inside the database are more limited.
  • Вы можете разместить apache Lucene с открытым исходным кодом (на котором построен Azure Search) на виртуальных машинах Azure, но затем вы снова будете управлять инфраструктурой как-сервисом (IaaS) и не получаете выгоду от многих функций, которые Azure Search предоставляет поверх Lucene.You could host the open-source Apache Lucene (on which Azure Search is built) on Azure Virtual Machines, but then you are back to managing Infrastructure-as-a-Service (IaaS) and don't benefit from the many features that Azure Search provides on top of Lucene.
  • Можно также использовать развертывание Гибкого поиска с Azure Marketplace, который является альтернативным и успешным поисковым продуктом от стороннего поставщика, но в этом случае вы работаете с рабочей нагрузкой IaaS.You could also consider deploying Elastic Search from the Azure Marketplace, which is an alternative and capable search product from a third-party vendor, but also in this case you are running an IaaS workload.

Другие варианты для уровня данных:Other options for the data tier include:

  • Cosmos DB. Это глобально распределенная многомодельная база данных Майкрософт.Cosmos DB - Microsoft's globally distributed, multi-model database. База данных Cosmos DB обеспечивает платформу для запуска других моделей данных, таких как Mongo DB, Cassandra, хранилища данных графов или простой таблицы хранилища.Costmos DB provides a platform to run other data models such as Mongo DB, Cassandra, Graph data, or simple table storage. Поиск Azure также поддерживает прямое индексирование данных из базы данных Cosmos DB.Azure Search also supports indexing the data from Cosmos DB directly.

ОсобенностиConsiderations

МасштабируемостьScalability

Ценовая категория службы поиска Azure не определяет доступные функции, а используется в основном для планирования емкости, поскольку она определяет максимальный объем хранилища и количество секций и реплик, которые вы можете подготовить.The pricing tier of the Azure Search service doesn't determine the available features but is used mainly for capacity planning as it defines the maximum storage you get and how many partitions and replicas you can provision. Секции позволяют индексировать больше документов и получать более высокую пропускную способность записи, тогда как реплики предоставляют больше запросов в секунду (QPS) и высокую доступность.Partitions allow you to index more documents and get higher write throughputs, whereas replicas provide more Queries-Per-Second (QPS) and High Availability.

Можно динамически изменять число секций и реплик, но изменить ценовую категорию невозможно, поэтому вам следует внимательно рассмотреть подходящую категорию для целевой рабочей нагрузки.You can dynamically change the number of partitions and replicas but it's not possible to change the pricing tier, so you should carefully consider the right tier for your target workload. Если вам нужно изменить категорию в любом случае, вам потребуется подготовить новую службу параллельно и перезагрузить свои индексы, после чего вы сможете указать свои приложения в новой службе.If you need to change the tier anyway, you will need to provision a new service side by side and reload your indexes there, at which point you can point your applications at the new service.

ДоступностьAvailability

Поиск Azure обеспечивает Соглашение об уровне обслуживания, гарантирующее доступность 99,9 % для операций чтения (то есть запросов), если у вас есть как минимум две реплики, а для обновлений (то есть обновлений индексов поиска), если у вас есть как минимум три реплики.Azure Search provides a 99.9% availability SLA for reads (that is, querying) if you have at least two replicas, and for updates (that is, updating the search indexes) if you have at least three replicas. Таким образом, необходимо подготовить как минимум две реплики, если вы хотите, чтобы ваши клиенты могли выполнять поиск надежно, и три, если фактические изменения в индексе также должны рассматриваться как операции с высокой степенью готовности.Therefore you should provision at least two replicas if you want your customers to be able to search reliably, and 3 if actual changes to the index should also be considered high availability operations.

Если необходимо внести изменения в индекс без простоя (например, изменение типов данных, удаление или переименование полей), индекс требуется перестроить.If there is a need to make breaking changes to the index without downtime (for example, changing data types, deleting or renaming fields), the index will need to be rebuilt. Подобно изменению уровня служб, это означает создание нового индекса, его повторное заполнение данными, а затем обновление ваших приложений, чтобы они указывали на новый индекс.Similar to changing service tier, this means creating a new index, repopulating it with the data, and then updating your applications to point at the new index.

БезопасностьSecurity

Поиск Azure совместим со многими стандартами безопасности и конфиденциальности данных, что позволяет использовать их в большинстве отраслей.Azure Search is compliant with many security and data privacy standards, which makes it possible to be used in most industries.

Для обеспечения доступа к службе Поиск Azure использует два типа ключей: ключи администратора, которые позволяют выполнять любую задачу вопреки службе, и ключи запросов, которые могут использоваться для операций только для чтения, таких как запрос.For securing access to the service, Azure Search uses two types of keys: admin keys, which allow you to perform any task against the service, and query keys, which can only be used for read-only operations like querying. Как правило, приложение, выполняющее поиск, не обновляет индекс, поэтому его следует настраивать только с помощью ключа запроса, а не ключа администратора (особенно если поиск выполняется с устройства конечного пользователя, такого как сценарий, запущенный в веб-браузере).Typically, the application that performs the search does not update the index, so it should only be configured with a query key and not an admin key (especially if the search is performed from an end-user device like script running in a web browser).

Релевантность поискаSearch Relevance

Успешность вашего приложения электронной коммерции зависит главным образом от релевантности результатов поиска для ваших клиентов.How successful your e-commerce application is depends largely on the relevance of the search results to your customers. Тщательная настройка службы поиска для обеспечения оптимальных результатов на основе исследований пользователя или использование встроенных функций, таких как анализ трафика поиска, чтобы понять шаблоны поиска вашего клиента, позволяют принимать решения на основе данных.Carefully tuning your search service to provide optimal results based on user research, or relying on built-in features such as search traffic analysis to understand your customer's search patterns allows you to make decisions based on data.

Типичные способы настройки службы поиска включают в себя:Typical ways to tune your search service include:

  • использование Профилей оценки, чтобы повлиять на релевантность результатов поиска, например, на основе того, какое поле соответствует запросу, насколько последними являются данные, географического расстояния до пользователя, ...;Using scoring profiles to influence the relevance of search results, for example, based on which field matched the query, how recent the data is, the geographical distance to the user, ...
  • использование Анализаторов языка, предоставленных корпорацией Майкрософт, которые используют расширенный стек обработки естественного языка (NLP) для лучшей интерпретации запросов;Using Microsoft provided language analyzers that use an advanced Natural Language Processing (NLP) stack to better interpret queries
  • использование пользовательских анализаторов, чтобы убедиться, что ваша продукция найдена правильно, особенно если вы хотите выполнить поиск на неязыковой основе, такой как марка и модель продукта.Using custom analyzers to ensure your products are found correctly, especially if you want to search on non-language based information like a product's make and model.

Развертывание сценарияDeploy the scenario

Чтобы развернуть более полную версию электронной коммерции этого сценария, можно следовать этому пошаговому руководству, которое предоставляет приложение примера .NET, выполняющее простой запрос на покупку билетов.To deploy a more complete e-commerce version of this scenario, you can follow this step-by-step tutorial that provides a .NET sample application that runs a simple ticket purchasing application. Он также включает в себя Поиск Azure и использует многие из рассмотренных функций.It also includes Azure Search and uses many of the features discussed. Кроме того, доступен шаблон Resource Manager для автоматизации развертывания большей части ресурсов Azure.Additionally, there is a Resource Manager template to automate the deployment of most of the Azure resources.

ЦеныPricing

Чтобы изучить стоимость выполнения этого сценария, все упомянутые выше услуги были предварительно сконфигурированы в калькуляторе стоимости.To explore the cost of running this scenario, all the services mentioned above are pre-configured in the cost calculator. Чтобы узнать, как изменится цена для вашего конкретного варианта использования, измените соответствующие переменные в соответствии с ожидаемым использованием.To see how the pricing would change for your particular use case change the appropriate variables to match your expected usage.

Здесь предоставлено три примера профиля затрат в зависимости от объема трафика, который планируется принимать.We have provided three sample cost profiles based on amount of traffic you expect to get:

  • Малый. В этом профиле используется одно веб-приложение для размещения веб-сайта Standard S1, свободный уровень службы Azure Bot, одна единица службы "Поиск Azure" Basic и База данных SQL Standard S2.Small: In this profile, we're using a single Standard S1 Web App to host the website, the free tier of the Azure Bot service, a single Basic Azure Search service, and a Standard S2 SQL Database.
  • Средний. Здесь увеличивается веб-приложение до двух экземпляров уровня Standard S3, обновляя службу поиска до уровня Standard S1 и используя Базу данных SQL Standard S6.Medium: Here we are scaling up the Web App to two instances of the Standard S3 tier, upgrading the Search Service to a Standard S1 tier, and using a Standard S6 SQL Database.
  • Большой. В самом большом профиле используется четыре экземпляра веб-приложения Premium P2V2, обновление службы Azure Bot до уровня Standard S1 (с 1.000.000 сообщениями в каналах "премиум"), две единицы службы "Поиск Azure" Standard S3 и База данных SQL Premium P6.Large: In the largest profile, we use four instances of a Premium P2V2 Web App, upgrade the Azure Bot service to the Standard S1 tier (with 1.000.000 messages in Premium channels), use 2 units of the Standard S3 Azure Search service, and a Premium P6 SQL Database.

Дополнительные сведения о службе "Поиск Azure" см. в статье Что такое поиск Azure?, а также ознакомьтесь с Примерами кода Azure или посмотрите полноценный Демонстрационный сайт в действии.To learn more about Azure Search, visit the documentation center, check out the samples, or see a full fledged demo site in action.