Explorando recursos de pesquisa com o Atlas Search
Aasawari Sahasrabuddhe9 min read • Published Jul 30, 2024 • Updated Aug 20, 2024
APLICATIVO COMPLETO
Avalie esse Tutorial
Bem-vindo à segunda parte de nossa série sobre como aproveitar o MongoDB Atlas Search com o Spring Boot. Na Parte 1, aprenderam como criar índices do Atlas Search usando vários métodos: o MongoDB CLI, a UI do Atlas e programaticamente dentro de um aplicativo Spring Boot. Exploramos as etapas fundamentais necessárias para configurar esses índices, fornecendo uma base sólida para implementar recursos avançados de pesquisa.
Nesta parte, vamos construir sobre essa base, mergulhando mais fundo na aplicação prática desses índices. Este artigo se concentrará na criação e execução de consultas de pesquisa usando o Spring Boot, ilustrando como aproveitar todo o potencial do Atlas Search em seus aplicativos.
Também explicaremos os principais conceitos e terminologias associados ao Atlas Search, garantindo que você tenha uma compreensão abrangente de como ele funciona.
Quer você seja um desenvolvedor habilidoso ou novo no MongoDB e no Spring Boot, esta série tem como objetivo fornecer-lhe o conhecimento e as ferramentas necessárias para implementar uma funcionalidade de pesquisa eficiente e eficaz em seus aplicativos.
- Versão Java 22
- Dados de amostra carregados no seu cluster do Atlas
Antes de escrevermos queries de pesquisa usando os índices que criamos, recomendamos que você se familiarize com os conceitos fundamentais do MongoDB Atlas Search. Um ótimo recurso para fazer isso é a parte 1 da série "Getting Started with MongoDB Atlas Search and Java".
Este tutorial fornecerá a você uma compreensão dos princípios chaves por trás do Atlas Search e demonstrará como criar diferentes tipos de índices personalizados para vários casos de uso. Ao obter esse conhecimento básico, você estará mais bem equipado para implementar e aproveitar com eficácia as funcionalidades de pesquisa em seus aplicativos Spring Boot.
Em cada uma das seções abaixo, abordaremos a terminologia e entenderemos exemplos da vida real em que os índices seriam úteis.
As queries de pesquisa mencionadas serão usadas na coleção defilmes do banco de dados sample_mflix
Se você tiver um aplicativo em que o esquema muda com frequência, a configuração da propriedade dinâmica como true criará automaticamente os índices nos campos de tipo de dados suportados . Por exemplo, o testIndex01 tem o mapeamento dinâmico para true, que indexa todos os campos com tipos de dados compatíveis .
A função abaixo usa testIndex01 para consultar todos os campos do índice de string.
Usando a função acima, você pode encontrar filmes que mencionam a palavra- chave mencionada na _query _on nos campos title , plot e fullplot definidos no caminho. _por exemplo...
...dará todos os filmes com a palavra-chave "cartoon ", conforme mostrado abaixo:
Nesse caso, utilizaremos o testIndex02 criado com o mapeamento de campo. Mapeamento de campo significa que o mapeamento estático foi usado e nem todos os campos são índices. Somente os campos mencionados são indexados.
Em nosso caso, o campo _genre _foi indexado e pode ser usado com o método abaixo:
Por exemplo, se você quiser listar todos os filmes cujo gênero é ação, pode fazer a chamada REST como:
Isso dará o resultado como:
A partir do exemplo acima, usaremos as facetas usadas pelo métodosearchMoviesAndCategorize para realizar uma pesquisa por gêneros e categorizar os dados com base nos gêneros. Mais tarde, o testIndex02 também tem numberFacet criado no campoano, que agrupará todos os filmes lançados a cada 10 anos e retornará a contagem de todos os filmes.
Por exemplo, quando você usa a chamada de API abaixo, ela categoriza primeiro os dados com base nos gêneros e depois categoriza o número de filmes lançados a cada 10 anos até o momento.
Isso dará o resultado como:
O recursode preenchimento automático ajuda você a pesquisar usando palavras-chave que estão escritas de forma incompleta. Esse recurso é útil quando um usuário deseja procurar um livro com um nome incompleto no site de comércio eletrônico. Neste caso, usaremos o testIndex03 e procuraremos filmes em que foram mencionadas palavras-chave incompletas para os camposfullplot.
A função de pesquisa pode ser escrita como:
Por exemplo, se o campofullplot mencionar Spa e Cow como palavras-chave incompletas para testar Espanha, Espaço, cowboys etc., você poderá pesquisar usando a seguinte API.
Ele dará uma resposta como:
Às vezes, pesquisamos itens/produtos em sites usando a grafia errada devido à correção automática ou ao desconhecimento da grafia correta, mas o aplicativo ainda nos fornece os resultados corretos. Isso é possível devido ao recurso de pesquisa difusa.
O Atlas Search do MongoDB também permite que você pesquise o texto com a ortografia incorreta.
Nesse caso, você pode pesquisar o filme com um título escrito incorretamente, e o nome correto do filme aparecerá nos resultados.
Por exemplo, se você pesquisar o filme com a chamada REST abaixo...
... quando a palavra Dinosour for escrita erroneamente como Dinosor, ela fornecerá os resultados como :
Semelhante ao caso mencionado acima, o MongoDB Atlas Search também permite a pesquisa com palavras-chave sinônimas, ou seja, palavras que têm o mesmo significado ou quase o mesmo significado.
Quando criamos o índice de pesquisa, especificamos a coleção como Coleção de origem dos sinônimos, de onde os sinônimos serão mapeados. O testIndex04 menciona o nome da collection como test_synonyms, que é a collection de origem.
A query de pesquisa é escrita como:
O $meta usado na query com searchScore determinará a proximidade do documento da palavra-chave pesquisada. Antes de fazermos o restante da chamada para testar a query, precisamos criar o mapeamento para os sinônimos em uma collection diferente.
Insira os dados abaixo na coleção test_synonyms.
Para testar a query acima, você pode usar a chamada REST como:
Isso fornecerá resultados com base no mapeamento criado, conforme mostrado abaixo.
O código completo para o aplicativo usando todos os casos mencionados acima está disponível no repositório do GitHub.
Depois de utilizar todos os índices criados, você pode usar o método abaixo para excluir todos os índices de pesquisa que foram criados por meio do aplicativo.
E chame a API com o comando abaixo
Nesta segunda parte de nossa série sobre como explorar o MongoDB Atlas Search com o Spring Boot, analisamos as aplicações práticas dos índices de pesquisa que criamos na Parte 1. Ao demonstrar vários cenários de pesquisa, destacamos a versatilidade e o poder do Atlas Search em lidar com diferentes tipos de consultas e estruturas de dados.
Nesta parte, abordamos alguns casos de uso como autocompletar, fuzzy, mapeamento de campo etc. Se quiser saber mais sobre outros casos, também temos outros artigos - MongoDB Atlas Search Using the Java Driver and Spring Data e How to Build a Search Service in Java - nos quais você pode explorar mais casos de uso.
Se você tiver dúvidas ou sugestões, fique à vontade para entrar em contato no MongoDB Community e também para explorar mais tutoriais interessantes por meio do nosso MongoDB Developer Center.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
{Parte de uma série