Pesquisa de texto completo

Práticas recomendadas e dicas de indexação de pesquisa de texto completo - Parte 1

Pesquisa de texto completo - Dicas de indexação

Compreender as opções de indexação do Full-Text Search (FTS) é essencial para criar o índice direito para o trabalho em questão. Os índice direito aqui se refere a um índice invertido enxuto e suficientemente rico que pode atender a esses vários tipos de solicitações de pesquisa de clientes.

Alguns Práticas recomendadas de indexação a ter em mente ao criar um índice FTS incluem o seguinte.

 

  1.  Evitar padrão mapeamento de tipos na produção

Quando um usuário cria um índice FTS no console da Web do Couchbase, a opção de mapeamento de tipo predefinido escolhida para um índice é padrão. Esse é um tipo especial de aplicativo de mapeamentod para cada documento cujo tipo ou não corresponde a um mapeamento de tipo especificado pelo usuário ou não tem nenhum atributo de tipo reconhecido.

Portanto, se o mapeamento padrão for deixado ativado, todos os documentos com todos os campos serão incluídos no índice. Isso ocorrerá independentemente de o usuário especificar ativamente os mapeamentos de tipos ou não.

O padrão o mapeamento dinâmico produz índices maiores e é potencialmente inadequado para implantações de produção.

Desative o mapeamento de tipos padrão, conforme mostrado abaixo, para garantir que somente os mapeamentos de tipos especificados pelo usuário sejam incluídos no índice.

default type mapping disabled - Full Text Search Indexing Best Practices

 

  1.  Especifique o direito tipo mapeamentos

Identifique os campos nos quais você precisa tornar os documentos pesquisáveis e defina um mapeamento de tipo personalizado mencionando os campos a serem indexados. Você pode identificar e indexar apenas um subconjunto dos tipos de documentos especificando um único conjunto de mapeamentos de tipos nos quais está interessado.

user defined custom type mapping example - Full Text Search Indexing Best Practices

Leia mais: https://docs.couchbase.com/server/6.0/fts/fts-creating-indexes.html#specifying-type-identifiers

 

  1. Escolha o campo ideal opções de indexação

Ao especificar um campo para indexação, há algumas opções de indexação importantes a serem consideradas.

field indexing options screenshot - Full Text Search Indexing Best Practices

  • índice: Quando marcado, o campo é indexado; quando desmarcado, o campo não é indexado. Isso pode ser usado, portanto, para remover explicitamente um campo já definido do índice.

 

  • loja: Quando marcado, o conteúdo do campo é incluído no conjunto de valores retornados de uma pesquisa; quando desmarcado, o conteúdo do campo não é incluído. Observe que a inclusão do conteúdo do campo permite especificamente destaque dos resultados, de modo que as expressões correspondentes possam ser vistas facilmente. No entanto, isso também resulta em índices maiores e tempos de processamento mais longos. Portanto, desative essa opção se você não estiver interessado em recursos como destaque nos resultados da pesquisa.

 

  • incluir em _todos os campos: Quando marcado, o campo é incluído na definição de _all, que é o campo especificado por padrão no painel Advanced. Quando desmarcado, o campo não é incluído. A inclusão significa que quando _query strings são usados para especificar pesquisas, o texto no campo atual é pesquisável sem que o nome do campo exija um prefixo (portanto, uma pesquisa em descrição:moderno pode ser realizado simplesmente especificando moderno). A ativação dessa opção resulta em índices maiores, portanto, desative-a se quiser usar escopo de campo solicitações de pesquisa.

 

  • incluir vetores de termos: Quando marcada, os vetores de termos são incluídos. Quando desmarcada, os vetores de termos não são incluídos. Os vetores de termos são os locais dos termos em um determinado campo. Certos tipos de funcionalidade (como realce e pesquisa de frases) exigem vetores de termos. A inclusão de vetores de termos resulta em índices maiores e, consequentemente, em tempos de criação de índices mais lentos. Portanto, desative essa opção se você não estiver interessado em pesquisas de frases ou em destacar os resultados da pesquisa.

 

  1.  Cuidado com os campos numéricos.  

Geralmente, os documentos têm todos os tipos de campos de ID e os usuários tendem a indexá-los como número tipos. Mas a indexação como um número só é recomendado quando você tem um caso de uso numérico real, como pesquisas de intervalo,

Por exemplo: "pesquise todos os documentos de produtos que sejam sobre 'iphone' e cujo preço seja < 1000".

Muitos casos de uso geralmente não têm pesquisas de intervalo em tais campos de ID, mas fazem apenas pesquisas de igualdade de palavras-chave exatas em campos de ID. texto tipo e palavra-chave* em vez de número para esses tipos de situações de campo de identificação.

A partir de agora, o FTS armazena internamente os números em um formato com menor otimização de espaço, e a abordagem acima pode ajudá-lo a reduzir ainda mais o tamanho do índice.  E índices menores devem resultar em uma melhor ocupação da RAM.

Estamos adicionando mais capacidade de configuração ao criação de índices permitindo mais ajustes finos no nível do armazenamento.

                                                                                                                                           Parte 2...

analisador de palavras-chave* - Cria um único token que representa a entrada inteira e ignora qualquer stemização ou curadoria de texto posterior.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Author

Posted by Sreekanth Sivasankaran

Sreekanth Sivasankaran is a Principal Engineer/Senior Engineering manager at Couchbase R&D. He leads the design and development of distributed and highly performant Search functionality. And he has over 17 years of product development experience in various domains like telecom, handsets, enterprise software, big data technologies, and distributed systems.

2 Comentários

  1. > Cuidado com campos numéricos

    É possível usar o tipo de texto e o analisador de palavras-chave em campos numéricos ou é necessário converter o campo em string?

    1. Sreekanth Sivasankaran maio 21, 2019 em 1:28 am

      O campo precisa ser convertido em um tipo de cadeia de caracteres a partir de hoje para contornar esse problema. Mas também estamos avaliando outras soluções nativas.

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.