Escolher a solução de pesquisa certa
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Explicar quando se deve criar uma solução de pesquisa personalizada.
- Descrever a diferença entre SOSL e SOQL.
- Identificar quais protocolos API estão disponíveis para pesquisa.
Pesquisa no estilo Salesforce
Sabe qual é o recurso mais usado do Salesforce? Se você respondeu pesquisa, acertou. Pesquisa é como os usuários esperam encontrar aquele registro que estão buscando no meio de milhares de outros dados.
Neste módulo do Trailhead, você vai aprender um pouco sobre como funciona a pesquisa do Salesforce e como determinar se uma solução de pesquisa personalizada é certa para você. Você também vai aprender a pôr em uso (ou recriar) uma solução personalizada utilizando a API do Salesforce para alguns casos de uso comuns. Finalmente, você vai aprender como otimizar consultas de pesquisa para obter resultados mais relevantes e objetivos. Em resumo, ao terminar o módulo, você terá um ótimo entendimento do recurso de pesquisa e de como ele pode ajudar os usuários a serem mais produtivos.
Para começar, vamos discutir como funciona de fato toda essa coisa de pesquisa.
Todos os registros são armazenados como campos de dados no banco de dados da organização. Quando você atualiza ou cria um registro, o mecanismo de pesquisa vem, faz uma cópia dos dados e divide o conteúdo em partes menores, chamadas tokens. Nós armazenamos esses tokens no índice de pesquisa, juntamente com um link de acesso ao registro original.
Da perspectiva do usuário, o processo de pesquisa é similar à criação de um registro. Quando os usuários inserem um termo no campo de pesquisa (1), o mecanismo de pesquisa divide o termo de pesquisa em tokens (2). Ele faz a correspondência desses tokens com as informações de registro armazenadas no índice de pesquisa (3), classifica os registros associados por ordem de relevância (4) e retorna os resultados aos quais os usuários têm acesso (5).
Vamos parar um momento para considerar o índice de pesquisa. Por que se dar o trabalho de fazer tokens quando poderíamos simplesmente pesquisar o banco de dados da organização? Bem, a razão é que o índice de pesquisa é super inteligente sobre quais resultados retornar ao usuário.
O índice de pesquisa e os tokens permitem que o mecanismo de pesquisa aplique recursos avançados como correção ortográfica, apelidos, lematização e grupos de sinônimos. Tudo isso significa que podemos apresentar registros que incluem variações do termo de pesquisa do usuário para ampliar a rede de resultados. (Além disso, caso você esteja se perguntando, lematização não tem nada a ver com lemingues felpudos. Tem mais a ver com identificar e retornar variantes do termo de pesquisa, como adicionar, adicionando e adicionado, nos resultados da pesquisa.)
O índice de pesquisa também permite introduzir uma classificação de relevância na mistura. É assim que a pesquisa encontra e classifica os registros que os usuários estão procurando. O que isso envolve? Coisas como frequência, ordem e exclusividade do termo de pesquisa; atividade do registro; permissões de acesso e um punhado de outros fatores.
Vamos fazer uma comparação. Uma pesquisa por pantufas de coelhinho no banco de dados só retorna registros com a correspondência exata para pantufas de coelhinho. Mas com o índice de pesquisa, você obtém registros contendo pantufas de coelhinho, é claro. Mas você também verá registros com termos similares, como pantufas de coelho ou pantufa de coelhinho (singular). Além disso, digamos que você tenha inserido coelhinho pantufas ou escrito coelhinho errado (acontece). Com a correspondência fora de ordem e o corretor ortográfico, você ainda vê resultados relevantes. E todos os resultados são ordenados de acordo com a relevância para o usuário específico que realizou a pesquisa.
Talvez você esteja pensando: a pesquisa pronta para usar do Salesforce parece ótima (e é) e funciona para a maioria dos casos de uso. Então, quando você precisaria de uma solução personalizada?
De modo geral, você precisa de uma solução de pesquisa personalizada quando sua organização utiliza uma IU personalizada em vez da IU padrão do Salesforce. Exemplos de IUs “caseiras” são uma base de conhecimentos voltada para os clientes ou um site interno de dados de produtos para seus funcionários. Só um aviso: Criar uma interface de usuário personalizada não é para todo mundo e requer trabalho extra. A boa notícia é que uma pesquisa personalizada ainda permite que você aproveite alguns dos recursos avançados da pesquisa do Salesforce. Então, se sua empresa decidiu criar uma IU personalizada e precisa de uma pesquisa personalizada, este é o módulo certo para você.
Agora que cobrimos os fundamentos da pesquisa no Salesforce, vamos falar sobre as APIs que permitem que você encontre registros em sua solução de pesquisa personalizada.
Conectar-se para pesquisar com APIs
Tenha em mente duas APIs principais. (Falamos sobre duas APIs adicionais um pouco mais tarde.)
- Salesforce Object Query Language (SOQL)
- Salesforce Object Search Language (SOSL)
Tanto SOQL quanto SOSL formatam consultas de texto em uma determinada API. Mas as semelhanças ficam por aí. Uma consulta SOQL é o equivalente a uma instrução SELECT do SQL e pesquisa o banco de dados da organização. SOSL, por outro lado, é uma maneira programática de executar uma pesquisa baseada em texto no índice de pesquisa. SOSL utiliza todos os ótimos recursos do índice de pesquisa previamente mencionados.
SOQL e SOSL também têm sintaxes diferentes. Incluímos links para documentos de desenvolvedores na seção de recursos para sua referência. Mas aqui estão algumas diretrizes sobre quando usar SOQL ou SOSL.
Utilize SOQL quando souber em quais objetos ou campos os dados residem e quiser:
- Recuperar dados de um único objeto ou de vários objetos relacionados entre si.
- Contar o número de registros que atendem a critérios específicos.
- Classificar resultados como parte da consulta.
- Recuperar dados de campos de caixa de seleção, data ou número.
Utilize SOSL quando não souber em qual objeto ou campo os dados residem e quiser:
- Recuperar dados para um termo específico que você sabe que existe em um campo. Como o SOSL pode criar tokens de vários termos em um campo e criar um índice de pesquisa a partir disso, as pesquisas SOSL são mais rápidas e podem retornar resultados mais relevantes.
- Recuperar vários objetos e campos de maneira eficiente, e os objetos podem ou não estar relacionados entre si.
- Recuperar dados para uma divisão específica em uma organização usando o recurso divisões de modo a poder encontrá-los da maneira mais eficiente possível.
Agora vamos dar uma olhada em dois tipos adicionais de API.
Primeiro, a API registros sugeridos. Talvez você já conheça registros sugeridos por algum de seus alias: sugestão automática, resultados instantâneos ou preenchimento automático. Você provavelmente também já está familiarizado com o comportamento. Digamos que você está usando um site que vende os melhores tênis de corrida disponíveis no mercado. Ele utiliza uma solução de pesquisa Salesforce personalizada para sua base de conhecimentos por forma a incentivar uma comunidade de corredores. Você quer saber quais tênis comprar para trail running. Você começa a digitar “trail running” (corrida em trilha) na barra de pesquisa e ela apresenta opções de artigos que incluem os termos de pesquisa no título.
A caixa de pesquisa sabia exatamente o que você queria ler!
Os métodos REST para Pesquisar registros sugeridos e Pesquisar artigos sugeridos estão disponíveis para que você ofereça a seus próprios usuários a mesma satisfação imediata. Mostramos mais sobre como usar esses métodos mais tarde.
Temos falado muito sobre como encontrar registros no Salesforce. Mas e se você tiver registros armazenados fora do Salesforce que os usuários acessam para seus trabalhos? Bem, temos uma solução para isso também: Pesquisa federada do Salesforce. É a nova maneira pela qual os usuários podem pesquisar itens armazenados fora do Salesforce, mas sem precisar sair do Salesforce Classic, do Console do Salesforce ou do Lightning Experience.
A Pesquisa federada do Salesforce permite que você faça da caixa de pesquisa global um mecanismo de pesquisa externo. Quando a Pesquisa federada é configurada, transferimos a consulta do usuário para o mecanismo externo, que pesquisa as fontes externas. Os resultados são mostrados bem nos resultados da pesquisa do Salesforce. Fazemos isso por meio do conector de Pesquisa federada do Salesforce. O conector é criado usando a especificação OpenSearch, então você pode conectar qualquer mecanismo de pesquisa que siga esse padrão da indústria.
É importante saber que a Pesquisa federada do Salesforce não passa pelo índice de pesquisa do Salesforce, o que significa que todos aqueles recursos avançados super legais do Salesforce não são aplicados. Em vez disso, os resultados são retornados de acordo com o provedor de pesquisa externo, o que também é legal.
Em seguida, vamos ver como usar protocolos para enviar consultas SOSL e SOQL.
Enviar consultas com protocolos
Você pode escrever todas as belas consultas de pesquisa que quiser. Mas elas não servirão de nada a menos que você utilize um protocolo API como REST, SOAP ou Apex para enviá-las de fato.
Tenha em mente que alguns protocolos se dão melhor com certas APIs do que com outras. Em geral, falamos de consultas com SOQL e pesquisas com SOSL.
- Query (REST) e query() (SOAP) – Executa uma consulta SOQL do objeto específico e retorna dados que correspondem aos critérios especificados.
- Search (REST) e search() (SOAP) – Executa uma pesquisa SOSL de string de texto nos dados de sua organização.
Mais recursos para executar outras tarefas de pesquisa comuns, como sugestão automática de registros, artigos e consultas, também estão disponíveis. E se você preferir não usar SOSL ou SOQL, considere a opção de Pesquisa parametrizada no REST. Em vez de uma string de pesquisa na URL, você usa parâmetros (daí o nome) na URL.
Quanto ao Apex, você pode usar SOQL ou SOSL rapidamente, colocando a instrução entre colchetes. Você também pode usar uma Classe de pesquisa para executar consultas SOSL dinâmicas e um Namespace de pesquisa para obter resultados de pesquisa e resultados de sugestão.
Incluímos uma lista útil na seção de recursos desta unidade. E na próxima unidade, vamos dar uma introdução sobre como usar os protocolos para que você possa começar. Não deixe de ler os documentos de desenvolvedores para obter todas as informações e todos os exemplos.
Recursos
- SOQL and SOSL Reference
- REST API Developer Guide
- SOAP API Developer Guide
- Apex Developer Guide
- Ajuda do Salesforce
- Federated Search Developer Guide