Engenharia

Automatização por meio de análise de pesquisa com o Elastic App Search

A análise de pesquisa vale pela empolgação. Ela revela a intenção, oferecendo uma brecha para o modo como pensa o pesquisador. Este artigo explicará como obter essas valiosas visões de pesquisa analítica e aplicá-las dinamicamente para automatizar as melhorias nos aplicativos.

Seja viciado em aplicativos!

O Elastic App Search é uma caixa de ferramentas para criar experiências de pesquisa internacionais, respaldadas pelo Elastic Stack. A App Search Analytics API lhe oferece acesso via programação aos dados relativos às interações de pesquisa. Por meio deles, você pode descobrir o conteúdo que está sendo pesquisado e em quais resultados os pesquisadores estão clicando.

Imagine um exemplo de caso em que temos um aplicativo de comércio eletrônico que vende calçados. Uma pessoa pode explorar os itens de destaque na página principal, navegar pelas categorias de estoque ou pesquisar para encontrar os calçados preferidos. À medida que a pesquisa é feita, os dados aumentam de volume.

Uma simples loja de comércio eletrônico que vende calçados.

Pesquisas de sucesso, por consulta

O endpoint da API de análise pode ser usado para determinar as 3 consultas de pesquisa de maior sucesso:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Os dados recebidos são sofisticados — fica claro quais calçados as pessoas esperam encontrar:

{
  "results": [
    {
      "term": "black high tops",
      "clicks": 49,
      "queries": 431
    },
    {
      "term": "running shoes",
      "clicks": 31,
      "queries": 509
    },
    {
      "term": "skate shoes",
      "clicks": 14,
      "queries": 100
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Documentos de sucesso, por clique

Também temos outro modo de análise -- encontrar exatamente quais documentos geraram um clique depois que um usuário fez sua pesquisa.

Um documento é um objeto -- pode ser um calçado, um produto de comércio eletrônico, um artigo escrito ou uma personagem de um jogo. Se você quiser fazer pesquisa profissional, seus objetos serão indexados em um mecanismo de pesquisa como aquele fornecido pelo App Search.

Depois da indexação, o objeto se torna um documento formatado de acordo com o esquema do seu mecanismo de pesquisa. Então, um pesquisador faz uma pesquisa e o seu aplicativo retorna uma infinidade de resultados, que são os documentos.

E podemos determinar os documentos nos quais as pessoas são estimuladas a clicar:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Os documentos retornados são representados por seu id e ordenados por número de cliques:

{
  "results": [
    {
      "document_id": "4909",
      "clicks": 499
    },
    {
      "document_id": "1633",
      "clicks": 321
    },
    {
      "document_id": "9729",
      "clicks": 200
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

É essa consulta analítica de documentos específicos que aproveitaremos para otimizar dinamicamente o conteúdo em nosso aplicativo. E a nossa abordagem pode simplesmente mudar o seu conceito de pesquisa em seus próprios aplicativos.

Fora da caixa

Com frequência associamos a pesquisa à caixa de pesquisa e por um bom motivo. As caixas de pesquisa estão por toda parte! Mas quando começamos a aproveitar outros endpoints de API desenvolvidos em suporte à pesquisa, podemos romper os limites retangulares da caixa de pesquisa.

A pesquisa em si tem um ritmo refinado e cíclico:

1: Alguém fará uma consulta de pesquisa. 2: A consulta e os respectivos dados de clique associados são rastreados por meio de análise. 3: Os dados são analisados, e o modelo de relevância é ajustado usando Weights and Boosts, Curations e Synonyms.

Esse é o tipo de ritmo que vemos no exemplo de aplicativo de comércio eletrônico ilustrado anteriormente.

Mas agora vamos apresentar uma nova etapa…

4: Automatize o posicionamento de alto valor de documentos de destaque.

Por que isso é útil? Considere que um par de calçados em nossa loja de comércio eletrônico passe por uma explosão de popularidade. De repente, a criançada está tentando comprar aqueles tênis vermelhos de cano alto com luzes de LED, vulgo documento "id": "9797".

A API de análise retorna nossos 3 documentos de sucesso, e vemos o 9797 no topo:

{
  "results": [
    {
      "id": "9797",
      "clicks": 982
    },
    {
      "id": "1633",
      "clicks": 23
    },
    {
      "id": "4909",
      "clicks": 11
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Como os tais “red light-up high-top sneakers” (tênis vermelhos de cano alto com luzes de LED) estão entre os menos populares dos nossos calçados, eles também não estão em um posicionamento relevante em nossa página principal. Felizmente os usuários estão achando os tênis via pesquisa. Se não fosse pela pesquisa, eles teriam de acessar a categoria e procurar. Mas tempo é dinheiro! Temos de fazer nosso trabalho ainda melhor.

Usando o endpoint da API de documentos, podemos consultar documentos específicos:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '["9729"]'

Isso retornará os “red light-up high-top sneakers” ou então o objeto JSON que representa “red light-up high-top sneakers”.

Nossa página principal agora -- falando funcionalmente -- trabalha assim:

Nossa página principal da loja tem uma janela realçada, para produtos alocados dinamicamente.

Os red light-up high-top sneakers na caixa azul foram chamados por meio de uma função. O trabalho da função é obter o documento mais popular, classificado por cliques, e exibi-lo. Consequentemente, a página principal sempre estará pronta.

A barra de pesquisa é o combustível, o catalisador, para termos uma página inicial dinamicamente atualizada e sempre relevante. As pessoas associarão a loja à impressão de que ela sempre tem exatamente aquilo que elas procuram, como em um passe de mágica.

O App Search tem clientes para JavaScript, Node.js, Java, Ruby e Python. Crie objetos que armazenam seus próprios documentos populares e inclua esses objetos às consultas que informam a construção das visualizações principais. Essa é a dimensão secundária da pesquisa de qualidade.

Faça marcações! Agora é com você!

Uma última vantagem do recurso da automatização é o conceito analítico da marcação. Qualquer consulta de pesquisa pode ter uma “marca” como parâmetro de consulta adicional:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "query": "dancing shoes",
  "analytics": {
    "tags": [
      "mobile",
    ]
  }
}'

A marca pode ser usada como filtro ao executar consultas analíticas assim:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": { "tag": "mobile" }
}'

Os documentos de sucesso serão apresentados, ordenados por cliques e filtrados pela marca atribuída: “mobile”, nesse caso.

Talvez você pense em atribuir dinamicamente uma marca dependendo de como uma pessoa acessa sua página da Web. Elas estão pesquisando via dispositivo móvel? Se for esse o caso, marque suas consultas com "móvel". Talvez as pessoas em mobilidade pesquisem com frequência calçados diferentes. Sabendo disso, você pode criar uma função que faça o conteúdo de sua página inicial reagir de modo diferente dependendo de a pessoa estar em um dispositivo móvel ou em um computador desktop.

Resumo

A análise de pesquisa pode fornecer visões aprofundadas através dos dados. Você pode aproveitar esses dados para informar e automatizar atalhos para melhorar a experiência de uma pessoa. Quanto mais rápido as pessoas acessarem o que estão procurando, maior será a probabilidade de elas atingirem seus objetivos mútuos: a visualização, a venda ou a interação.

Você pode começar a usar o App Search hoje mesmo com uma avaliação gratuita por 14 dias da nossa versão hospedada ou fazer download da versão beta autogerenciada. Cada nova avaliação oferece uma amostra do conjunto de dados, por isso você pode experimentar antes de trazer seus próprios dados.