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 -

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.

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 :
Essa foi uma ótima visão geral sobre como escolher métodos de pesquisa. Muito obrigado.
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.