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

Como indexar campos de strings

Nesta página

  • Verificar as limitações do tipo string
  • Defina o índice para o tipo string
  • Configurar propriedades do campo string
  • Experimente um exemplo para o tipo de string

Você pode usar o tipo do Atlas Search string para indexar campos da string. Você pode usar os operadores frase, queryString, span, texto, coringa, regex e moreLikeThis do Atlas Search para consultar campos indexados como o string tipo.

Se você habilitar mapeamentos dinâmicos, o Atlas Search indexará automaticamente campos do tipo string. Você pode utilizar o Editor Visual ou o Editor JSON na UI do Atlas para indexar campos como o tipo string.

Não é possível usar o tipo string do Atlas Search para indexar campos para queries de facet ou preenchimento automático. Você não pode usar o tipo string para indexar campos para classificar os resultados do Atlas Search. Em vez disso, use mapeamentos estáticos para indexar os campos de string como os seguintes tipos:

Importante

O Atlas Search não indexará campos de string em que os tokens do analisador excedam 32766 bytes de tamanho. Se estiver usando o analisador de palavras-chave, os campos de string que excederem 32766 bytes não serão indexados.

Para definir o índice para o tipo string , 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. Clique em Customized Configuration.

  4. 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.

  5. Clique no menu suspenso Data Type e selecione String.

  6. (Opcional) Expanda e configure o String Properties para o campo. Para saber mais, consulte Como configurar propriedades de campo string .

  7. (Opcional) Clique em Add Multi Field para definir as seguintes configurações alternativas do analisador para esse campo:

    1. Insira um nome para o analisador alternativo no campo Multi Field Name.

    2. Configure as propriedades do campo de string para o analisador alternativo em Multi Field Properties. Para saber mais, consulte Como configurar propriedades de campo string .

    3. (Opcional) Clique em Add Another Mult Field e repita as etapas 1 e b para configurar mais analisadores para o campo.

  8. Clique em Add.

A seguir está a sintaxeJSON para o tipo string. 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": "string",
"analyzer": "<atlas-search-analyzer>",
"searchAnalyzer": "<atlas-search-analyzer>",
"indexOptions": "docs|freqs|positions|offsets",
"store": true|false,
"ignoreAbove": <integer>,
"multi": {<string-field-definition>},
"norms": "include|omit"
}
}
}
}

O tipo string 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 string.
analyzer
string
Opcional

Nome de um analyzer integrado ou customizado para utilizar na indexação do campo. Se você não especificar um valor, herda um analyzer por padrão na seguinte ordem:

  1. A opção analyzer para o índice se especificado.

  2. O analisador lucene.standard.

searchAnalyzer
string
Opcional

Use este analisador para fazer quereis de campos. Se você não especificar um valor, ele herda um analisador por padrão na seguinte ordem:

  1. A opção analyzer para este campo, se especificado.

  2. A opção searchAnalyzer para o índice se especificado.

  3. A opção analyzer para o índice se especificado.

  4. O analisador lucene.standard.

indexOptions
string
Opcional

Quantidade de informações a armazenar no campo indexado. O valor pode ser um dos seguintes:

  • docs - Apenas indexa documentos. A frequência e a posição do termo indexado são ignoradas. Apenas uma única ocorrência do termo é refletida na pontuação.

  • freqs - Apenas indexa documentos e a frequência do termo. A posição do termo indexado é ignorada.

  • positions - Indexa documentos, frequência de termo e posições de termo.

  • offsets - (Padrão) Indexa documentos e a frequência, as posições e as compensações do termo. Essa opção é necessária para realçar.

offsets
store
booleano
Opcional

Sinalizador que indica se é para armazenar o texto exato do documento, bem como os valores analisados no índice. O valor pode ser true ou false. O valor desta opção deve ser true para realçar.

Para reduzir o tamanho do índice e melhorar o desempenho, recomendamos configurar store como false. Para saber mais, consulte Desempenho de indexação do Atlas Search.

true
ignoreAbove
int
Opcional
Número máximo de caracteres no valor do campo a indexar. O Atlas Search não indexa se o valor do campo for maior que o número especificado de caracteres.
multi
Definição de campo de string
Opcional
Campo de string para indexar com o nome do analisador alternativo especificado no objeto multi. Para saber mais sobre como especificar o objeto do multi, consulte Multi Analyzer e exemplo abaixo.
norms
string
Opcional

String que especifica se o comprimento do campo deve ser incluído ou omitido no resultado da pontuação. O comprimento do campo é determinado pelo número de tokens produzidos pelo analisador para o campo. O valor pode ser um dos seguintes:

  • include - para incluir o comprimento do campo ao pontuar.

  • omit - para omitir o comprimento do campo ao pontuar.

Se o valor for include, o Atlas Search utilizará o comprimento do campo para determinar a pontuação mais alta ao classificar. Por exemplo, se dois documentos corresponderem a uma query do Atlas Search, o documento com o comprimento de campo mais curto terá uma pontuação mais alta do que o documento com o comprimento de campo mais longo.

Se o valor for omit, o Atlas Search ignorará o comprimento do campo ao pontuar.

include

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 definição de índice abaixo indexa valores de string no campo title como tipo string do Atlas Search:

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

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

  3. Revise as configurações padrão do String Properties.

  4. Clique em Add.

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

{
"mappings": {
"dynamic": false,
"fields": {
"title": {
"type": "string"
}
}
}
}

A definição de índice a seguir indexa valores de string no campo fullplot com os analisadores lucene.english e lucene.french, além do analisador lucene.standard padrão:

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

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

  3. Revise as configurações padrão do String Properties.

  4. Clique em Add Multi Field, insira english no campo Multi Field Name e configure o seguinte Multi Field Properties:

    Analisador de índice
    Selecione lucene.english em lucene.language.
    Analisador de pesquisa
    Selecione lucene.english em lucene.language.
  5. Clique em Add Another Multi Field, insira french no campo Multi Field Name e configure o seguinte Multi Field Properties:

    Analisador de índice
    Selecione lucene.french em lucene.language.
    Analisador de pesquisa
    Selecione lucene.french em lucene. language.
  6. Clique em Add.

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

{
"mappings": {
"dynamic": false,
"fields": {
"fullplot": {
"type": "string",
"multi": {
"english": {
"type": "string",
"analyzer": "lucene.english"
},
"french": {
"type": "string",
"analyzer": "lucene.french"
}
}
}
}
}
}

Voltar

ObjectId