Motor de busca de produtos inteligente para comércio eletrónicoIntelligent product search engine for e-commerce

Neste cenário de exemplo mostra como um serviço de pesquisa dedicada pode aumentar substancialmente a relevância dos resultados da pesquisa para os seus clientes de comércio eletrônico.This example scenario shows how using a dedicated search service can dramatically increase the relevance of search results for your e-commerce customers.

A pesquisa é o principal mecanismo através do qual os clientes encontrar e adquirir, por fim, produtos, tornando-o essencial que os resultados da pesquisa sejam relevantes para o intenção da consulta de pesquisa e que o ponto-a-ponto experiência de pesquisa correspondências que dos gigantes de pesquisa ao fornecer resultados quase imediata, análise linguística, a correspondência de localização geográfica, filtragem, facetamento, preenchimento automático, detetor, etc.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.

Imagine um aplicativo da web de comércio eletrônico típico com dados de produto armazenados na base de dados relacional como o SQL Server ou base de dados do Azure SQL.Imagine a typical e-commerce web application with product data stored in a relational database like SQL Server or Azure SQL Database. Consultas de pesquisa, muitas vezes, são tratadas dentro do banco de dados usando LIKE consultas ou [Full-Text Search] docs-sql-fts funcionalidades.Search queries are often handled inside the database using LIKE queries or Full-Text Search features. Usando [Azure Search] docs-search em vez disso, liberta a sua base de dados operacional do processamento de consultas e facilmente pode começar a aproveitar esses recursos de disco rígido de implementar que fornecem a os clientes com a melhor pesquisa possível sofrer.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. Além disso, como o Azure Search é uma plataforma como um componente de serviço (PaaS), não precisa se preocupar sobre como gerir a infraestrutura ou se tornar uma especialista de pesquisa.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.

Casos de utilização relevantesRelevant use cases

Outros casos de utilização relevantes incluem:Other relevant use cases include:

  • Localizar as listagens de imóveis ou arquivos de perto o local físico do usuário.Finding real estate listings or stores near the user's physical location.
  • Procurar artigos de um site de notícias ou à procura de resultados de esportes, com maior preferência para obter mais informações recente informações.Searching for articles in a news site or looking for sports results, with a higher preference for more recent information.
  • Procurar nos repositórios grandes para centrados em documentos organizações, como os criadores de diretiva e notários.Searching through large repositories for document-centric organizations like policy makers and notaries.

Em última análise, qualquer aplicação que têm alguma forma de funcionalidade de pesquisa pode beneficiar de um serviço de pesquisa dedicada.Ultimately, any application that has some form of search functionality can benefit from a dedicated search service.

ArquiteturaArchitecture

Descrição geral da arquitetura dos componentes do Azure envolvidos num mecanismo de pesquisa inteligente de produtos para comércio eletrônico

Este cenário aborda uma solução de comércio eletrônico em que os clientes podem pesquisar um catálogo de produtos.This scenario covers an e-commerce solution where customers can search through a product catalog.

  1. Os clientes, navegue para o aplicação web de comércio eletrônico partir de qualquer dispositivo.Customers navigate to the e-commerce web application from any device.
  2. O catálogo de produtos é mantido num base de dados do Azure SQL para processamento transacional.The product catalog is maintained in an Azure SQL Database for transactional processing.
  3. O Azure Search utiliza um indexador de pesquisas para manter o seu índice de pesquisa automaticamente atualizados através do registo de alterações integrado.Azure Search uses a search indexer to automatically keep its search index up-to-date through integrated change tracking.
  4. Consultas de pesquisa do cliente são descarregadas para o Azure Search serviço, que processa a consulta e retorna os resultados mais relevantes.Customer's search queries are offloaded to the Azure Search service, which processes the query and returns the most relevant results.
  5. Como alternativa para uma experiência de pesquisa na web, os clientes também podem utilizar um bot conversacionais no suporte de redes sociais ou diretamente a partir de digital assistentes para pesquisar para produtos e incrementalmente refinar a sua consulta de pesquisa e os resultados.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. Opcionalmente, o pesquisa cognitiva funcionalidade pode ser utilizada para aplicar a inteligência artificial para processamento ainda mais inteligente.Optionally, the Cognitive Search feature can be used to apply artificial intelligence for even smarter processing.

ComponentesComponents

  • [Serviços de aplicações - aplicações Web] docs-webapps que permite o dimensionamento automático e elevada disponibilidade sem ter de gerir a infraestrutura de aplicativos da web de anfitriões.App Services - Web Apps hosts web applications allowing autoscale and high availability without having to manage infrastructure.
  • [Base de dados SQL] docs-sql-database é um serviço gerido da base de dados para fins gerais relacional no Microsoft Azure que suporta estruturas como dados relacionais, JSON, espaciais e 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.
  • [O Azure Search] docs-search é uma solução de pesquisa-como-serviço cloud que fornece uma experiência de pesquisa avançadas sobre o conteúdo privado e heterogéneo em aplicativos web, móveis e empresariais.Azure Search is a search-as-a-service cloud solution that provides a rich search experience over private, heterogenous content in web, mobile, and enterprise applications.
  • [Serviço de bot] docs-botservice fornece ferramentas para criar, testar, implementar e gerir bots inteligentes.Bot Service provides tools to build, test, deploy, and manage intelligent bots.
  • [Os serviços cognitivos] docs-cognitive permitem-lhe utilizar algoritmos inteligentes para ver, ouvir, falar, compreender e interpretar as suas necessidades de usuário por meio de métodos naturais de comunicação.Cognitive Services lets you use intelligent algorithms to see, hear, speak, understand, and interpret your user needs through natural methods of communication.

AlternativasAlternatives

  • Poderia usar pesquisa na base de dados capacidades, por exemplo, através de pesquisa de texto completo do SQL Server, mas, em seguida, seu arquivo transacional também processa consultas (aumentando a necessidade do poder de processamento) e os recursos de pesquisa no banco de dados estão mais limitados.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.
  • Pode alojar o código-fonte aberto [Apache Lucene] apache-lucene (no qual Azure Search é construído) em máquinas de virtuais do Azure, mas, em seguida, volta a gerir a infraestrutura-como-serviço (IaaS) e não se beneficiam a partir de muitos recursos do Azure Search fornece por cima do Lucene.You could host the open-source Apache Lucene (on which Azure Search is built upon) 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.
  • Precisa também considerar implementar [pesquisa elástica] elastic-marketplace no Azure Marketplace, que é um produto de pesquisa alternativo e com capacidade de um fornecedor de terceiros, mas também nesse caso está a executar uma IaaS carga de trabalho.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.

Outras opções para a camada de dados incluem:Other options for the data tier include:

  • O cosmos DB -com múltiplos modelo distribuída globalmente, base de dados da Microsoft do.Cosmos DB - Microsoft's globally distributed, multi-model database. DB de Costmos fornece uma plataforma para executar outros modelos de dados, como o Mongo DB, Cassandra, dados do gráfico ou armazenamento de tabelas simples.Costmos DB provides a platform to run other data models such as Mongo DB, Cassandra, Graph data, or simple table storage. O Azure Search também oferece suporte diretamente a indexação de dados do Cosmos DB.Azure Search also supports indexing the data from Cosmos DB directly.

ConsideraçõesConsiderations

EscalabilidadeScalability

O [escalão de preço] search-tier da pesquisa do Azure de serviço não determinar as funcionalidades disponíveis, mas é utilizado principalmente para [planeamento de capacidade] search-capacityà medida que define o armazenamento máximo obterá e o número de partições e réplicas pode aprovisionar.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. Partições permitem-lhe indexar documentos mais e obter taxas de transferência de escrita mais elevadas, enquanto réplicas fornecer mais consultas por segundo (QPS) e elevada disponibilidade.Partitions allow you to index more documents and get higher write throughputs, whereas replicas provide more Queries-Per-Second (QPS) and High Availability.

Pode alterar dinamicamente o número de réplicas e partições, mas não é possível alterar o escalão de preço, portanto, deve considerar o escalão certo para a sua carga de trabalho de destino.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. Se precisar de alterar a camada de qualquer forma, terá de aprovisionar um novo serviço lado a lado e recarregar os índices lá, altura em que pode apontar seus aplicativos no novo serviço.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.

DisponibilidadeAvailability

O Azure Search fornece um [SLA de 99,9% de disponibilidade] search-sla para (ou seja, consulta) se tiver, pelo menos, duas réplicas e para atualizações(ou seja, a atualizar os índices de pesquisa) se tiver, pelo menos, três réplicas.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. Por conseguinte, deve aprovisionar, pelo menos, duas réplicas se pretender que os seus clientes possam pesquisa fiável e 3 se real muda para o índice também devem ser consideradas operações de elevada disponibilidade .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.

Se houver uma necessidade de fazer alterações de última hora para o índice sem tempo de inatividade (por exemplo, alterar os tipos de dados, eliminar ou mudar o nome de campos), o índice será precisam ser reconstruídos.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. Semelhante à alteração da camada de serviço, isso significa criar um novo índice, preenchê-la novamente com os dados e, em seguida, atualizar seus aplicativos para apontar para o novo índice.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.

SegurançaSecurity

O Azure Search está em conformidade com muitas normas de privacidade de dados e de segurança, que possibilita a ser usado na maioria dos setores.Azure Search is compliant with many security and data privacy standards, which makes it possible to be used in most industries.

Para proteger o acesso ao serviço, o Azure Search utiliza dois tipos de chaves: chaves de administração, que permitem que execute qualquer tarefas contra o serviço, e chaves de consulta, que pode apenas ser utilizada para operações só de leitura, como a consulta.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. Normalmente, a aplicação que executa a pesquisa não atualiza o índice, para que ele só deve ser configurado com uma chave de consulta e não uma chave de administração (especialmente se a pesquisa é executada a partir de um dispositivo do utilizador final, como o script em execução num navegador da web).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).

Relevância de pesquisaSearch Relevance

É com o êxito de seu aplicativo de comércio eletrônico depende em grande parte a relevância dos resultados da pesquisa aos seus clientes.How successful your e-commerce application is depends largely on the relevance of the search results to your customers. Ajuste cuidadosamente o seu serviço de pesquisa para fornecer os melhores resultados com base na pesquisa de usuários ou contando com funcionalidades incorporadas, tal como [pesquisar a análise de tráfego] search-analysis para compreender os padrões de pesquisa do seu cliente pode tomar decisões com base nos dados.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.

Formas comuns de otimizar o seu serviço de pesquisa incluem:Typical ways to tune your search service include:

  • Usando [perfis de classificação] search-scoring para influenciar a relevância dos resultados da pesquisa, por exemplo, com base em que campo correspondido a consulta, como recentes os dados são, a distância geográfica ao usuário,...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, ...
  • Usando [analisadores de idiomas a Microsoft forneceu] search-languages que utilize uma pilha de processamento de linguagem Natural (NLP) avançada para melhor interpretar consultasUsing Microsoft provided language analyzers that use an advanced Natural Language Processing (NLP) stack to better interpret queries
  • Usando [analisadores personalizados] search-analyzers garantir que seus produtos encontram-se corretamente, especialmente se deseja pesquisar na linguagem de não com base em informações como forma de um produto e modelo.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.

Implementar o cenárioDeploy the scenario

Para implementar uma versão de comércio eletrônico mais completa deste cenário, pode seguir esta [tutorial passo a passo] end-to-end-walkthrough que fornece um aplicativo de exemplo .NET que executa um simples aplicativo de compra de bilhetes.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. Ele também inclui o Azure Search e utiliza muitos dos recursos discutidos.It also includes Azure Search and uses many of the features discussed. Além disso, existe um modelo do Resource Manager para automatizar a implantação da maioria dos recursos do Azure.Additionally, there is a Resource Manager template to automate the deployment of most of the Azure resources.

PreçosPricing

Para explorar o custo de executar este cenário, todos os serviços mencionados acima são previamente configurados na Calculadora de custos.To explore the cost of running this scenario, all the services mentioned above are pre-configured in the cost calculator. Para ver como os preços alteraria para a sua alteração de casos de uso específico as variáveis apropriadas de acordo com a utilização esperada.To see how the pricing would change for your particular use case change the appropriate variables to match your expected usage.

Nós fornecemos três perfis de exemplo de custos com base na quantidade de tráfego que pode esperar:We have provided three sample cost profiles based on amount of traffic you expect to get:

  • Pequenas: Neste perfil, estamos a utilizar uma única Standard S1 aplicação Web para alojar o Web site, o escalão gratuito do serviço do Azure Bot, um único Basic serviço de Azure Search e um Standard S2 base de dados SQL.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.
  • Médio: Aqui estamos são aumentar verticalmente a aplicação Web para duas instâncias do Standard S3 escalão, atualizar o serviço de pesquisa para um Standard S1 escalão e uso de um Standard S6 base de dados SQL.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.
  • Grande: No perfil de maior, podemos usar quatro instâncias de um Premium P2V2 aplicação Web, atualizar o serviço de Bot do Azure para o Standard S1 escalão (com 1.000.000 mensagens nos canais Premium), utilize 2 unidades da Standard S3 serviço de Azure Search e um Premium P6 SQL Base de dados.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.

Para saber mais sobre o Azure Search, visite o Centro de documentação, confira o exemplos, ou consulte um completaapta[site de demonstração] search-demo em ação.To learn more about Azure Search, visit the documentation center, check out the samples, or see a full fledged demo site in action.