Um índice do MongoDB Search é uma estrutura de dados que mapeia documentos do seu cluster para os termos extraídos desses documentos. Os índices de pesquisa do MongoDB permitem pesquisas eficientes de texto completo em seu banco de dados.
Ao definir um índice do MongoDB Search, você pode usar mapeamentos estáticos ou dinâmicos para especificar quais campos ou tipos de campo deseja indexar em sua collection. Você também pode usar analisadores para definir como o MongoDB Search extrai tokens pesquisáveis de string campos ou strings de query. Por fim, você pode aplicar opções de configuração adicionais em sua definição de índice para melhorar o desempenho e a precisão de sua consulta do MongoDB Search, incluindo opções para armazenar campos de origem em seu índice ou definir mapeamentos de sinônimos.
Para saber como definir um índice do MongoDB Search de acordo com seus requisitos de query, consulte Gerenciar índices de pesquisa do MongoDB . Depois de definir o índice do MongoDB Search, você pode adicionar o índice ao cluster com o tutorial Criar um índice de pesquisa do MongoDB . Para saber como visualizar, editar, atualizar ou excluir seu índice do MongoDB Search, consulte Clientes compatíveis.
Esta página descreve a sintaxe e as opções de definiçãoJSON para um índice do MongoDB Search.
Sintaxe
Opções
Campo | Tipo | necessidade | Descrição |
|---|---|---|---|
| String | Opcional | Especifica o analyzer para aplicar aos campos da string ao indexar. Se você definir isso apenas na parte superior e não especificar um analisador para os campos na definição do índice, o MongoDB Search aplicará esse analisador a todos os campos. Para usar um analisador diferente para cada campo, você deve especificar um analisador diferente para o campo. Se omitido, o padrão será Analisador padrão. |
| Array de analisadores customizados | Opcional | Especifica os Analyzers customizados a serem usados neste índice. |
| Objeto | Obrigatório | Especifica como indexar campos em caminhos diferentes para este índice. |
mappings.dynamic | Booleano ou Objeto | Opcional | Habilita o mapeamento dinâmico de tipos de campo ou configura campos individualmente para este índice. O valor deve ser um dos seguintes:
Se omitido, o padrão é Você também pode configurar campos individualmente para substituir as configurações padrão usando IMPORTANTE: o MongoDB Search indexa automaticamente todos os tipos de campo indexáveis dinamicamente em Para saber mais sobre os tipos de campo que você pode habilitar para mapeamentos dinâmicos, consulte Tipos de campo de pesquisa do MongoDB . Para obter exemplo de configurações de índice, consulte Exemplos |
mappings.dynamic.typeSet | String | Opcional | Faz referência ao nome do objeto Mutualmente exclusivo com a bandeira booleana ImportanteOs mapeamentos dinâmicos configuráveis estão em versão prévia. O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para saber mais, consulte Recursos de visualização do. |
mappings.fields | Objeto | Condicional | Especifica os campos que você deseja indexar. Necessário somente se o mapeamento dinâmico for Você não pode indexar campos que contêm o sinal de dólar ( Para saber mais, consulte Definir mapeamentos de campo. |
| String | Opcional | Especifica o analisador a ser aplicado ao texto de query antes de usá-lo para fazer uma pesquisa. Se omitido, é padronizado para o analisador que você especifica para a opção |
| Inteiro | Opcional | Especifica o número de subíndices a serem criados se a contagem de documentos ultrapassar dois bilhões. Os seguintes valores são válidos: Para usar partições de índice, você deve ter nós de pesquisa distribuídos em seu cluster. |
| Boolean ou Definição de origem armazenada | Opcional | Especifica os campos nos documentos a serem armazenados para pesquisas de tempo de query usando a opção returnedStoredSource. Você pode armazenar campos de todos os tipos de campo do MongoDB Search no MongoDB Search. O valor pode ser um dos seguintes:
Se omitido, o padrão é Para saber mais, consulte Definir campos de origem armazenados no índice de pesquisa do MongoDB. |
| Definiçãode mapeamento de array de sinônimos | Opcional | Especifica os mapeamentos de sinônimos a serem usados em seu índice. Uma definição de índice pode ter somente um mapeamento de sinônimo. Para saber mais, consulte Definir mapeamentos de sinônimos em seu índice de pesquisa do MongoDB. |
| Array de objetos | Opcional | Especifica os typeSets a serem usados neste índice para mapeamentos dinâmicos. |
typeSets.[n].name | String | Obrigatório | Especifica o nome da configuração do |
typeSets.[n].types | Array de objetos | Obrigatório | Especifica os tipos de campo , um por objeto, para indexar automaticamente utilizando mapeamentos dinâmicos. |
typeSets.[n].types.[n].type | String | Obrigatório | Especifica o tipo de campo para indexar automaticamente. Para saber mais sobre os tipos de campo que você pode configurar para mapeamento dinâmico, consulte Configurar |
Solução de Problemas de Índices
mongot Processo não instalado ou em execução
O erro a seguir é retornado se você executar queries $search quando o processo MongoDB Search mongot não estiver instalado ou em execução:
MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.
O processo mongot é instalado somente quando o primeiro índice do MongoDB Search é definido. Se você não tiver nenhum índice do MongoDB Search em seu cluster, crie pelo menos um índice do MongoDB Search para resolver esse erro.
Saiba mais
Para saber como definir um índice do MongoDB Search para atender às suas necessidades de query do MongoDB Search, consulte Gerenciar índices de pesquisa do MongoDB .
Para saber como adicionar um índice ao seu cluster, consulte Criar um índice de pesquisa MongoDB .
Para saber mais sobre as opções de configuração de índice disponíveis, consulte as seguintes páginas de referência: