Docs Menu
Docs Home
/ /

Cómo indexar valores numéricos para la búsqueda por facetas

Puedes utilizar la búsqueda de MongoDB numberFacet Escriba para indexar valores numéricos utilizando el representation especificado para facetar. Puede indexar números de TiposBSON, int32 int64 doubley.

MongoDB Search solo admite consultas con operadores de faceta en campos indexados numberFacet como. Para realizar una búsqueda normal en el mismo campo,number también debe indexarlo como.

Para aplicar facetas a campos de cadena en documentos incrustados, debe indexar los campos principales como tipo de documento. Al aplicar facetas a un campo de cadena dentro de documentos incrustados, MongoDB Search devuelve el recuento de facetas solo para el número de documentos principales coincidentes.

La búsqueda de MongoDB no indexa dinámicamente number los valores para la facetación. Debe usar asignaciones estáticas para indexar number los valores para la facetación. Puede usar el Editor visual o el Editor JSON de la interfaz de usuario de Atlas para indexar number los campos como number tipo.

Se aplican las siguientes limitaciones:

  • No se puede indexar decimal128 para facetar.

  • No se pueden indexar valores numéricos en matrices o en un documento contenido en una matriz para facetar.

  • No se pueden aplicar facetas a campos numéricos indexados como parte de un campo embeddedDocuments.

Para definir el índice del tipo numberFacet, elija su método de configuración preferido en la interfaz de usuario de Atlas y luego seleccione la base de datos y la colección.

  1. Haga clic Refine Your Index para configurar su índice.

  2. En la sección Field Mappings, haz clic en Add Field Mapping para abrir la ventana Add Field Mapping.

  3. Haga clic en Customized Configuration.

  4. Selecciona el campo para indicar desde el desplegable Field Name.

    Nota

    No puedes indexar campos que contengan el signo de dólar ($) al inicio del nombre del campo.

  5. Haz clic en el desplegable Data Type y selecciona NumberFacet.

  6. Configure las propiedades del campo para el tipo numberFacet. Para obtener más información, consulte Propiedades del campo.

  7. Haga clic en Add.

A continuación, se muestra la sintaxis JSON para el numberFacet tipo. Reemplace la definición del índice predeterminado por la siguiente. Para obtener más información sobre los campos, consulte Propiedades de campo.

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "numberFacet",
"representation": "int64|double",
"indexIntegers": true|false,
"indexDoubles": true|false
}
}
}
}

El tipo numberFacet de búsqueda de MongoDB toma los siguientes parámetros:

Opción
Tipo
Necesidad
Descripción
predeterminado

type

string

Requerido

El tipo de campo. El valor debe ser numberFacet.

representation

string

Opcional

El tipo de dato del campo que se va a indexar. Los valores pueden ser de uno de los siguientes tipos BSON:

  • int64 - Para indexar enteros grandes sin pérdida de precisión y para redondear valores dobles a enteros. No se puede usar este tipo para indexar valores dobles grandes.

  • double - para indexar valores dobles grandes sin redondeo.

Para obtener más información, consulte el ejemplo a continuación.

double

indexIntegers

booleano

Opcional

Indica si se indexan u omiten los valores de tipo int32 y int64. El valor puede ser true o false. Tanto este como indexDoubles deben ser true.

true

indexDoubles

booleano

Opcional

Indica si se indexan u omiten los valores de tipo double. El valor puede ser true o false. Tanto este como indexIntegers deben ser true.

true

El siguiente ejemplo de definición de índice utiliza la colección sample_mflix.movies. Si ya tiene los datos de muestra cargados en su clúster, puede usar el Editor visual o el Editor JSON de la interfaz de usuario de Atlas para configurar el índice. Después de seleccionar el método de configuración preferido, seleccione la base de datos y la colección, y refine el índice para agregar asignaciones de campos.

La siguiente definición de índice de ejemplo indexa el year campo como el tipo de búsqueda de MongoDB numberFacet para admitir consultas en ese campo mediante la faceta de búsqueda de MongoDB.

  1. En la ventana Add Field Mapping, selecciona year del menú desplegable Field Name.

  2. Haz clic en el desplegable Data Type y selecciona NumberFacet.

  3. Acepte los valores predeterminados para NumberFacet Properties.

  4. Haga clic en Add.

Reemplazar la definición predeterminada del índice con la siguiente definición del índice.

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

La siguiente definición de índice de ejemplo indexa el campo year como los tipos numberFacet y number para devolver los siguientes tipos de resultados para sus consultas:

  1. En la ventana Add Field Mapping, selecciona year del menú desplegable Field Name.

  2. Haz clic en el desplegable Data Type y selecciona NumberFacet.

  3. Acepte los valores predeterminados para NumberFacet Properties.

  4. Haga clic en Add.

  5. Repita 1 el paso y seleccione Number del Data Type menú desplegable.

  6. Acepte los valores predeterminados para Number Properties.

  7. Haga clic en Add.

Reemplazar la definición predeterminada del índice con la siguiente definición del índice.

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

Para obtener más información sobre el facet recopilador y ver consultas de ejemplo, consulte Ejemplos.

Para aprender a crear un índice con una definición de faceta y consultar ese índice utilizando el facet recopilador, consulte el tutorial Cómo usar facetas con la búsqueda de MongoDB.

Volver

Número

En esta página