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

Como indexar valores numéricos para pesquisa facetda

Nesta página

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

Você pode utilizar o tipo Atlas Search numberFacet para indexar valores numéricos utilizando a faceta especificada para representation. Você pode indexar números de tipos deBSON int32, int64 e double.

O Atlas Search suporta somente queries defacet em campos indexados como o tipo numberFacet . Para executar uma pesquisa normal também no mesmo campo, você também deve indexar o campo como tipo number .

Para facetar campos de string em documentos incorporados, você deve indexar os campos pai como o tipo de documento . Quando você faceta um campo de string dentro de documentos incorporados, o Atlas Search retorna a contagem de facetas apenas para o número de documentos pai correspondentes.

O Atlas Search não indexa dinamicamente valores number para facetmento. Você deve usar mapeamentos estáticos para indexar valores number para facet. Você pode utilizar o Editor Visual ou o Editor JSON na UI do Atlas para indexar campos number como o tipo numberFacet .

Aplicam-se as seguintes limitações:

  • Não é possível indexar decimal128 para faceta.

  • Não é possível indexar valores numéricos em arrays ou em um documento contido em uma array para facetmento.

  • Não é possível facetar campos numéricos indexados como parte de um campo embeddedDocuments .

Para definir o índice para o tipo numberFacet , 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 Mapping 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 NumberFacet.

  6. Configure as propriedades do campo para o tipo numberFacet . Para saber mais, consulte Propriedades do campo.

  7. Clique em Add.

A seguir está a sintaxe JSON para o tipo numberFacet . 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": "numberFacet",
"representation": "int64|double",
"indexIntegers": true|false,
"indexDoubles": true|false
}
}
}
}

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

Opção
Tipo
necessidade
Descrição
default
type
string
Obrigatório
O tipo de campo. O valor deve ser numberFacet.
representation
string
Opcional

O tipo de dados do campo a indexar. Os valores podem ser um dos seguintes tipos de BSON :

  • int64 - para indexar inteiros grandes sem perda de precisão e para arredondar valores double para inteiros. Não é possível usar esse tipo para indexar valores double grandes.

  • double - para indexar valores double grandes sem arredondamento.

Para saber mais, veja o exemplo abaixo.

double
indexIntegers
booleano
Opcional
Indica se deve indexar ou omitir a indexação de valores do tipo int32 e int64 . O valor pode ser true ou false. Ou isso ou indexDoubles deve ser true.
true
indexDoubles
booleano
Opcional
Indica se indexar ou omitir valores de tipo de indexação double . O valor pode ser true ou false. Isto ou indexIntegers deve ser true.
true

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.

O exemplo de definição de índice a seguir indexa o campo year como o tipo numberFacet do Atlas Search para oferecer suporte a queries nesse campo usando a faceta do Atlas Search.

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

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

  3. Aceite os valores padrão para o NumberFacet Properties.

  4. Clique em Add.

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

{
"mappings": {
"dynamic": false,
"fields": {
"year": {
"type": "numberFacet"
}
}
}
}

O seguinte exemplo de definição de índice indexa o campo year como os tipos numberFacet e number para retornar os seguintes tipos de resultados para suas queries:

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

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

  3. Aceite os valores padrão para o NumberFacet Properties.

  4. Clique em Add.

  5. Repita a etapa 1 e selecione Number no menu suspenso Data Type .

  6. Aceite os valores padrão para o Number Properties.

  7. Clique em Add.

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

{
"mappings": {
"dynamic": false,
"fields": {
"year": [
{
"type": "numberFacet"
},
{
"type": "number"
}
]
}
}
}

Dica

Consulte também: Exemplos adicionais de definição de índice

Consulte as páginas a seguir para obter exemplos adicionais de definição de índice:

Voltar

número