Como indexar valores numéricos para pesquisa facetda
Nesta página
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
.
numberFacet
Revise as limitações
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
.
Definir o índice para o numberFacet
tipo
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.
Clique em Refine Your Index para configurar seu índice.
Na seção Field Mappings, clique em Add Field Mapping para abrir a janela Add Field Mapping.
Clique em Customized Configuration.
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.Clique no menu suspenso Data Type e selecione NumberFacet.
Configure as propriedades do campo para o tipo
numberFacet
. Para saber mais, consulte Propriedades do campo.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 } } } }
Configurar numberFacet
propriedades de campo do
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 :
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 |
Experimente um exemplo para o numberFacet
tipo de
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.
Na janela Add Field Mapping, selecione year no menu suspenso Field Name.
Clique no menu suspenso Data Type e selecione NumberFacet.
Aceite os valores padrão para o NumberFacet Properties.
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:
Resultados de metadados para queries usando a faceta Atlas Search.
pesquisar resultados para query usando operadores do Atlas Search, como near, equals e range.
Na janela Add Field Mapping, selecione year no menu suspenso Field Name.
Clique no menu suspenso Data Type e selecione NumberFacet.
Aceite os valores padrão para o NumberFacet Properties.
Clique em Add.
Repita a etapa 1 e selecione Number no menu suspenso Data Type .
Aceite os valores padrão para o Number Properties.
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: