Pesquisa de texto completo

Índices secundários ou índices de texto completo?

Os aplicativos obtêm dados do Couchbase Server de diferentes maneiras - eles podem usar operações básicas de valor-chave, índices secundários (visualizações) ou pesquisa de texto completo. Como desenvolvedor, como você decide se deve usar índices secundários ou pesquisa de texto completo para o novo recurso do seu aplicativo? Este blog explica as diferenças entre os índices secundários e os índices de texto completo para que você saiba o que deve usar para acessar os dados no Couchbase com base no cenário que tem em mãos.

As visualizações no servidor couchbase são definidas em javascript usando um mapa que extrai dados de seus documentos e uma função opcional reduzir que agrega os dados emitidos pela função map. Na função map, você pode especificar em quais atributos construir o índice. As visualizações são eventualmente indexadas e as consultas são eventualmente consistentes com relação aos documentos armazenados. 

Visualmente, esta é a aparência de uma estrutura de dados para um índice secundário - 

SecondaryIndex

O uso de uma estrutura de dados B-tree para índices secundários otimiza pesquisas rápidas baseadas em chaves (neste caso, "Nome do item") e consultas de intervalo. Por exemplo, imagine que você esteja criando um aplicativo de catálogo de produtos e queira listar todos os nomes de produtos que começam com "A" até "F". Usando um índice secundário no Couchbase sobre "nome do item", somente partes dos nós de dados da árvore B precisariam ser acessadas.  

Então, por que usar o recurso de pesquisa de texto completo do Couchbase?

Imagine que você queira listar todos os produtos da sua loja com a palavra-chave "vermelho" - isso inclui itens como "suéteres vermelhos", "calças vermelhas" ou até mesmo itens com o atributo de cor "vermelho". A índice de texto completo mapeia termos de documentos para a lista de IDs de documentos, o que significa que você pode recuperar rapidamente a lista de IDs de documentos que contêm um termo específico. 

O servidor Couchbase se integra ao Elasticsearch, um mecanismo de pesquisa de texto completo. Usando o adaptador do Couchbase para o Elasticsearch, os documentos são replicados em tempo real para o Elasticsearch. O Elasticsearch analisa cada documento e cria um índice de texto completo para que você possa pesquisar todos os seus documentos no aplicativo.

 InvertedIndex

A figura acima mostra como um índice de texto completo mapeia termos de documentos encontrados nos documentos para IDs de documentos. Essa estrutura de dados é elegante para consultas de pesquisa ad-hoc. Assim, por exemplo, se você estiver procurando por "suéteres", obterá os IDs de documentos relevantes para suéteres vermelhos e azuis.

Agora que você já sabe o que são índices secundários e índices de texto completo, vamos dar uma olhada em quando você deve usar a pesquisa de texto completo e quando deve considerar o uso de um índice secundário em seu aplicativo. 

Você deve usar pesquisa de texto completo quando :

–  Você deseja pesquisar grandes quantidades de dados textuais, como conteúdo de páginas da Web, publicações em blogs, artigos digitais e metadados de conteúdo. Os índices de pesquisa de texto completo permitirão que você pesquise em todo o conjunto de dados, em qualquer atributo, além de alguma forma relevante de classificação dos resultados.

 - seu aplicativo precisa de uma pesquisa baseada em termos.

Você deve usar secundário pesquisa quando :

 –  você tem consultas em seu aplicativo que são executadas repetidamente.
 –  você sabe exatamente quais atributos consultar com base no seu aplicativo. Suas consultas têm correspondências exatas ou consultas de intervalo. Por exemplo, você deseja obter o número de item "1000" ou deseja uma lista de todos os documentos do tipo "calças" e tamanhos entre 5 e 10. 
Portanto, quando estiver criando seu próximo recurso de aplicativo no Couchbase e decidindo se usará um índice secundário ou um índice de pesquisa de texto completo, tente aplicar algumas das diretrizes acima ao selecionar o melhor índice a ser usado para seu caso de uso específico. Se você estiver interessado em saber mais sobre o uso de índices e a pesquisa de texto completo do Couchbase em comparação com o Elasticsearch, registre-se agora e não perca o próximo webinar.
Boa codificação!
Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Don Pinto, gerente principal de produtos da Couchbase

Don Pinto é gerente de produto principal da Couchbase e atualmente está concentrado no avanço dos recursos do Couchbase Server. Ele é extremamente apaixonado por tecnologia de dados e, no passado, foi autor de vários artigos sobre o Couchbase Server, incluindo blogs técnicos e white papers. Antes de ingressar no Couchbase, Don passou vários anos na IBM, onde ocupou a função de desenvolvedor de software no grupo de gerenciamento de informações DB2 e, mais recentemente, como gerente de programa na equipe do SQL Server na Microsoft. Don tem mestrado em ciência da computação e é bacharel em engenharia da computação pela Universidade de Toronto, no Canadá.

2 Comentários

  1. Essa foi uma ótima visão geral sobre como escolher métodos de pesquisa. Muito obrigado.

  2. Gostaria de acrescentar que outra diferenciação importante é:
    - Os resultados da pesquisa de texto completo são geralmente destinados ao consumo humano.
    - Os resultados do Índice Secundário destinam-se ao consumo de máquinas/programas.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.