Azure Search

Trilhões. Essa é a quantidade de buscas realizadas em 2014. Com a quantidade de informações disponibilizadas hoje em dia fica impossível acessarmos a informação sem uma busca. Até mesmo dentro dos nossos aplicativos necessitamos deste recurso.

Como podemos deixar uma aplicação sem interagir com os dados? A resposta é óbvia: Depende. Algumas vezes tudo que precisamos para expor algo, seja na internet ou numa aplicação é apenas clicar no caminho adequado. Por exemplo, uma navegação de menus. Entretanto isso pode ser frustrante se você não lembrar o caminho adequado.

Mais e mais vezes estamos interagindo com dados através da busca. As pessoas amam busca; é simples, poderoso e não requer treinamento algum para usar. Cada vez mais vemos, independentemente da interface de uso, que as pessoas estão usando buscas para acessar informação. Este é um ponto importante para você considerar na sua aplicação.

Entretanto, prover esta opção pode ser desafiador para os desenvolvedores. Não é esperado que cada time de desenvolvimento tenha seu próprio engenho de busca. Imagina ter que desenvolver para cada aplicação? Seria um grande trabalho… O que precisamos é de um serviço de busca gerenciável que possa ser usado em diferentes aplicações, seja rodando na nuvem ou localmente. E é examente isso que o Azure Search oferece.

O que é o Azure Search e o que ele oferece?

 

O Azure Search é um serviço de busca gerenciável rodando na nuvem pública. Um desenvolvedor pode criar uma instância do serviço e começar a usar na hora. Sem rodeios! O desenvolvedor não precisa instalar ou gerenciar a tecnologia do engenho de Busca.

Uma aplicação rodando o Azure Search pode interagir com Bancos de Dados relacionais e não relacionais, bem como serviços do Azure como SQL Database ou DocumentDB. Ele usa índices para efetuar suas buscas. E essa é uma das principais vantagens se você estiver usando SQL Azure, SQL Server ou DocumentDB.

Vejamos o seguinte cenário:

Common Query x Azure Search

Common Query x Azure Search

Ou seja, se usarmos o Azure Search, podemos eliminar ou reduzir a comunicação com o banco deixando o serviço controlar as informações. Você pode ver como criar uma conexão neste link.

É importante entender que o serviço é totalmente voltado a desenvolvedores. Como é baseado em RESTful, as aplicações ficam livres para implementar e adaptar-se a cada estilo de desenvolvedor.

A pergunta que fica é: Quais aplicações devem implementar o Azure Search? Por que devemos usar o serviço uma vez que temos o Bing ou mesmo o Google que efetuam buscas? A resposta é simples: Controle.

Para entendermos melhor, vejamos um cenário:

E-Commerce: A maioria dos usuários que entram num site de e-commerce acessa logo a busca para poder encontrar o que precisa. Quando achamos o produto vemos que ele vem atrelado a tags, feedbacks, descrições, etc.

 

Vamos exemplificar melhor: Imagine que o desenvolvedor queira colocar um autocomplete na sua interface de Busca e ele está desenvolvendo um site e-commerce de sapatos. Quando o usuário colocar a palavra “salto” no campo de busca, o autocomplete mostrará “salto alto”, “salto plataforma”, “salto agulha”, etc., restringindo o campo do autocomplete ao que faz sentido para sua aplicação. Isso é o que podemos chamar de busca semântica. Ou seja, dar um “sentido” à palavra.

Em resumo é o recurso perfeito para potencializar a interação do usuário com os dados de sua aplicação, seja ela web ou móvel.

 

Escalonamento

 

Existem duas possibilidades de escalonamento do recurso:

  1. BASIC: Onde os recursos de hardware são compartilhados, comprometendo a performance de sua busca, entretanto ele é FREE!
  2. STANDARD: Onde os recursos alocados para sua busca são exclusivos, suportando escalonamento de hardware.

Fluxo de Trabalho

 

Para o desenvolvedor que quiser usar o serviço irei dispor um fluxo de trabalho com boas práticas de como usá-lo. Para tal, basta seguir:

  1. Criar um Índice
  2. Adicionar documentos
  3. Elaborar a Query no Index
  4. Update ou Delete Index e documentos

Usando o Azure Search

 

Primeiro é necessário criar uma instância do serviço. Entre outras coisas, o desenvolvedor precisa configurar o Datacenter para a instância e qual sua capacidade.

Criando um Azure Search

Criando um Azure Search

 

Podemos ver na imagem acima os dois tipos de precificação e o suporte oferecido. Depois é só escolher o grupo e a localização do serviço e o serviço será criado.

Azure Search criado

Azure Search criado

 

Com esses pequenos passos já teremos nosso serviço rodando e já é possível utilizá-lo na sua aplicação.

 

Criando Índices (Indexes)

 

Com o serviço rodando o primeiro passo do nosso fluxo é criar um ou mais índices. Cada índice contém informações que a pesquisa irá acessar e é fundamental para o Azure Search.

Índices são construídos pelo código de sua aplicação ou podem ser inseridos no novo portal do Azure (Figura 4). Exemplos com várias formas de se incluir índices podem ser vistos neste link. Para um arquivo de exemplo e passo-a-passo de como aplicar veja este link. Ou ainda, se quiser saber como criar Índices através de REST API, basta ver este artigo do MSDN.

Criação de índices pelo portal do Azure

Criação de índices pelo portal do Azure

 

Passos seguintes

 

Uma vez que tenhamos criado nossos índices, podemos adicionar documentos através do formato JSON, POSTando-os no nosso serviço de armazenamento. Daí em diante poderemos editar, deletar, fazer updates e transformar nossa pesquisa bem mais elaborada para nossos clientes finais.

Quer saber mais?

 

Gostou do Azure Search e quer saber mais? Basta ler a documentação oficial e ver os exemplos com as sintaxes usadas pelo REST API para interagir com o Azure Search.

 

Espero que tenham gostado e até a próxima!


Autor: Microsoft Tech