Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / / /

Como indexar campos de string para filtragem e classificação eficientes

Nesta página

  • Revise o comportamento do tipo token
  • Revisar token Limitações de Tipo
  • Defina o índice para o tipo token
  • Configurar propriedades do campo token
  • Experimente um exemplo para o tipo de token

Você pode usar o tipo token do Atlas Search para indexar campos dastring para classificar os resultados do Atlas Search. Você pode então usar a opção $search sort em sua query para classificar os resultados pelo campo indexado. Para mais informações, consulte Classificar Resultados do Atlas Search. Você também pode usar o tipo token do Atlas Search para indexar campos da string para pré-filtrar os dados que as queries $vectorSearch analisam. Para saber mais, consulte Visão geral do Atlas Vector Search.

Para executar queries nos campos de string usando os seguintes operadores, você deve indexar o campo como o tipo token do Atlas Search:

Para saber mais, consulte a documentação de cada operador.

Quando você indexa um campo como tipo token , o Atlas Search indexa os termos na string como um único token (termo pesquisável) e os armazena em um armazenamento em colunas para filtragem eficiente ou operações de classificação. Você pode utilizar um normalizador para transformar o token. Por padrão, o normalizador é configurado para none e então o Atlas Search indexa as strings em sua forma original.

A principal diferença entre os tipos string e token do Atlas Search é que o Atlas Search cria um ou mais tokens para campos indexados como tipo string , enquanto o Atlas Search cria apenas um único token para campos indexados como tipo token .

Se uma string indexada como um tipo de campo token exceder 8181 caracteres, o Atlas Search a truncará para 8181 caracteres antes de indexar.

Ao indexar um campo como o tipo token , você também deve indexar esse campo como o tipo string para fazer uma query do valor do texto usando operadores como texto, frase, etc. Para os seguintes operadores, você não precisa indexar o campo como tipo string também para fazer a query do valor de texto no campo:

Você não pode indexar filhos de campos indexados como o tipo embeddedDocuments como o tipo token .

Para definir o índice para o tipo token , escolha seu método de configuração preferido na UI do Atlas e então selecione o banco de dados e collection.

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Field Mappings, clique em Add Field para abrir a janela Add Field Mapping.

  3. Selecione o campo a ser indexado no menu suspenso Field Name.

    Observação

    Você não pode indexar campos que contêm o sinal de dólar ($) no início do nome do campo.

  4. Clique no menu suspenso Data Type e selecione Token.

  5. (Opcional) Expanda e configure o Token Properties para o campo. Para saber mais, consulte Como configurar propriedades de campo token .

  6. Clique em Add.

A seguir está a sintaxe JSON para o tipo token . Substitua a definição de índice padrão pelo seguinte. Para saber mais sobre os campos, consulte Propriedades do Campo.

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "token",
"normalizer": "lowercase | none"
}
}
}
}

O tipo token do Atlas Search usa os seguintes parâmetros:

Opção
Tipo
necessidade
Descrição
default
type
string
Obrigatório
Etiqueta legível por humanos que identifica este tipo de campo. O valor deve ser token.
normalizer
string
Opcional

Tipo de transformação para executar no valor do campo. O valor pode ser um dos seguintes:

  • lowercase - para transformar valores de texto em campos de string em minúsculas.

  • none - para não realizar nenhuma transformação.

Se você não definir esta opção explicitamente, o padrão será none.

none

O exemplo de definição de índice abaixo usa a coleção sample_mflix.movies. Se você já tiver os dados de amostra carregados em seu cluster, poderá usar o Visual Editor ou o Editor JSON na UI do Atlas para configurar o índice. Após selecionar seu método de configuração preferido, selecione o banco de dados e a coleção e filtre seu índice para adicionar mapeamentos de campo.

A seguinte definição de índice indexa valores de string no campo title como tipo Atlas Search token e converte o valor de campo para lowercase, que permite a você fazer o seguinte:

  • Executa a classificação sem diferenciação de maiúsculas e minúsculas, conforme especificado por normalizer, no campo title .

  • Execute query de correspondência exata no campo title utilizando os seguintes operadores:

  1. Na janela Add Field Mapping, selecione title no menu suspenso Field Name.

  2. Clique no menu suspenso Data Type e selecione Token.

  3. Expanda Token Properties e selecione lowercase no menu suspenso Normalizer .

  4. Clique em Add.

Substitua a definição de índice padrão pela seguinte definição de índice.

{
"mappings": {
"dynamic": false,
"fields": {
"title": {
"type": "token",
"normalizer": "lowercase"
}
}
}
}

A seguinte definição de índice indexa o campo genres como string e token tipos para retornar o seguinte:

  • Resultados da pesquisa para queries utilizando operadores do Atlas Search , como texto, frase e outros operadores que executam pesquisa de texto no campo genres .

  • Resultados ordenados para queries utilizando a $search opção de classificação no genres campo .

  • Correspondências exatas para queries usando operadores do Atlas Search, como igual, em e faixa.

  1. Na janela Add Field Mapping, selecione genres no menu suspenso Field Name.

  2. Clique no menu suspenso Data Type e selecione Token.

  3. Clique em Add.

  4. Repita a etapa 1 e selecione String no menu suspenso Data Type .

  5. Revise a configuração padrão para String Properties e clique em Add.

Substitua a definição de índice padrão pela seguinte definição de índice.

{
"mappings": {
"dynamic": false,
"fields": {
"genres": [{
"type": "string"
},
{
"type": "token"
}]
}
}
}

Voltar

stringFacet

Próximo

uuid