Pesquisa de texto completo de MongoDB

Pesquisa de texto completo de MongoDB
Devido à sua rápida capacidade de resposta, versão avançada, sustentabilidade e fortes recursos de indexação, o MongoDB é um dos bancos de dados NOSQL mais renomados. Em muitos casos, as consultas do MongoDB que classificam os dados procurando correspondências precisas, utilizando significativamente maiores e menores que comparações ou empregar expressões regulares serão suficientes. Quando se trata de triagem contra campos com dados textuais ricos, no entanto, essas estratégias ficam aquém. Este guia nos ajudará a criar um índice de texto do MongoDB e usá-lo para pesquisar documentos que empregam consultas e critérios de pesquisa de texto completo comum.

Quando vemos material empregando frases ou palavras -chave, o melhor exemplo é uma pesquisa no Google. Com a pesquisa de texto completo do MongoDB, podemos estabelecer um índice de texto em qualquer coluna em um documento usando uma string ou matrizes de strings.

Sintaxe da pesquisa de texto completo em MongoDB no Ubuntu 20.04 ?

A sintaxe mencionada é a seguinte:

dB.Coleção_name.encontre ($ text: $ Search: “String”)

A função find () é usada com os seguintes parâmetros na sintaxe acima:

  • Coleção_name: refere -se ao nome da coleção existente.
  • Encontrar: executado para pesquisar usando o encontro.
  • $ texto: Usado para fazer uma pesquisa de coleção que satisfaz nossos objetivos.
  • $ pesquisa: usado para executar a pesquisa.
  • Corda: refere -se a uma certa string que queremos procurar na coleção, e podemos usar a função de pesquisa para encontrar palavras exatas.

Trabalhando no operador de texto $ em MongoDB no Ubuntu 20.04:

As listas de texto são fornecidas pelo MongoDB para ajudar as pesquisas de texto no conteúdo da string. Qualquer campo com um valor de string ou uma variedade de componentes de string pode ser incluído nos registros de texto. Você deve ter um registro de texto em sua coleção para fazer perguntas de pesquisa de texto. Mesmo uma coleção tem apenas um registro de pesquisa de tópicos. Uma lista pode abranger vários campos.

Como a pesquisa de texto completo se apresenta no MongoDB no Ubuntu 20.04

Agora, veja certos exemplos para compreender melhor as coisas. Primeiro, criamos um banco de dados com o nome "MyDemo". Dentro deste banco de dados, definimos uma coleção como "frutas". Em seguida, a consulta InsertMany é usada para inserir o documento de coleta, pois a captura de tela está exibindo os campos e valores em relação a esses campos para a coleção “Fruits” documento abaixo.

A consulta “db.frutas.encontre () ”resulta nos atributos e nas entidades da coleção“ frutas ”da seguinte forma. Temos três documentos gravados para a coleção de "frutas".

Agora, vamos examinar como podemos realizar uma pesquisa de texto completo.

Exemplo # 1: Criando índice de texto em MongoDB no Ubuntu 20.04:

Temos que estabelecer um índice de texto em um conjunto de dados antes de poder usar os recursos de pesquisa de texto completo do MongoDB. Índices são estruturas de dados exclusivas que isolam uma parte limitada de dados de cada texto em uma coleção dos próprios documentos. Vamos dar uma olhada em como realizar uma pesquisa de texto completo.

Um índice de texto é construído da mesma maneira que um índice convencional, em vez de definir uma ordem ascendente/descendente, define a palavra -chave de texto.

Acima, temos uma consulta para uma pesquisa de texto completo. Usamos o método createIndex () para criar um índice de texto. Definimos os dois campos "sujeito" e "conteúdo" para o texto do tipo índice.

Ao executar a consulta CreateIndex no shell do MongoDB, a saída a seguir confirma a criação do índice:

Exemplo # 2: Pesquisa por uma palavra ou frase de texto completo em MongoDB no Ubuntu 20.04:

Procurar documentos que compreendem uma ou mais palavras únicas é talvez o desafio de pesquisa mais difundido. Os usuários provavelmente esperam que o navegador da web seja adaptável à escolha de onde as frases de pesquisa específicas devem exibir. Ao empregar índices de texto, o MongoDB aborda consultas de pesquisa comuns da mesma maneira. Com alguns exemplos, esta etapa explica como o MongoDB processa solicitações de pesquisa.

Aqui, temos uma consulta “dB.frutas.encontrar()". A consulta emprega o operador de texto $, que informa o MongoDB aqui que a consulta fará uso do índice de texto que definimos anteriormente. Além disso, apenas um índice de texto é permitido em cada coleção. Em seguida, dentro do operador $ text, temos outro operador chamado $ pesquisa, que é usado para pesquisar o valor "Sweet" dos documentos fornecidos.

Como você pode ver, temos apenas um documento com o conteúdo de texto "doce". Ao executar a consulta acima, todos os detalhes do documento com o conteúdo de texto "Sweet" são exibidos da seguinte forma:

Agora, estamos procurando duas palavras usando a seguinte consulta:

Demos a "vitamina C" de duas palavras ao operador de pesquisa $ chamado dentro do operador de texto $. Quando a consulta é executada, ela mostra o registro de documentos com a vitamina C listada no texto da seguinte forma:

Exemplo # 3: pontuando e classificando os resultados de pesquisa de texto completo em MongoDB no Ubuntu 20.04:

Cada documento recebe uma pontuação da pesquisa de texto que indica o quão relevante é para a consulta de pesquisa. Essa pontuação é usada para categorizar todos os registros em um resultado de pesquisa. Uma pontuação mais alta significa que o concurso é mais significativo.

Temos um operador de texto $ que pesquisa as duas palavras "mangas" e "laranja" com a ajuda de um operador de pesquisa $. Em seguida, temos uma projeção Score: $ meta: “textscore” que utiliza o $ meta operador, que retorna metadados especificados de documentos recuperados. Os metadados textscore, que é um componente interno do mecanismo de pesquisa de texto completo do MongoDB e mantém a pontuação de relevância da pesquisa, é retornada neste caso.

Conforme mencionado no documento do filtro, os documentos resultantes adicionarão um novo campo chamado Score após a execução da consulta:

Agora, usamos a função de classificação para a projeção Score: $ meta: "textscore". O documento de classificação usa a mesma sintaxe que o documento de projeção.

A manga de texto tem a maior pontuação de relevância, por isso vem primeiro na tela de saída.

Conclusão:

Adquirimos como usar as funcionalidades de pesquisa de texto completo do MongoDB, seguindo este tutorial. Você construiu um índice de texto e compôs consultas de pesquisa de texto que incluíam uma e muitas palavras, frases inteiras e exclusões. Você também classificou a relevância dos papéis devolvidos e ordenou que os resultados da pesquisa exibam os itens mais relevantes primeiro.