Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Cómo indexar campos de cadena para la búsqueda por facetas

Puede utilizar la búsqueda de MongoDB stringFacet tipo a indexar string campos para creación de facetas, lo que te permite ejecutar una consulta del operador de faceta sobre ese campo. MongoDB Search no aplica el analizador cuando indexa string campos para facetas.

MongoDB Search solo admite consultas del operador de faceta a campos indexados como el tipo stringFacet. Para realizar una búsqueda normal también en el mismo campo, debes indexar también el campo como tipo string.

Para realizar facetado en campos de string en documentos insertados, es necesario indexar los campos principales como tipo documento. Cuando se realiza un facetado en un campo de string dentro de documentos incrustados, MongoDB Search devuelve el recuento de facetas solo para el número de documentos principales que coinciden.

MongoDB Search no indexa dinámicamente los valores de string para la creación de facetas. Debes usar mapeos estáticos para indexar los valores string para las facetas. Puedes utilizar el Editor visual o el Editor JSON en la interfaz de usuario de Atlas para indexar string campos como el tipo number.

Para definir el índice para el tipo stringFacet, elige tu método de configuración preferido en la Interfaz de Usuario de Atlas y luego selecciona 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. Haga clic en el menú desplegable Data Type y seleccione StringFacet. Para obtener más información sobre este tipo, consulte Propiedades de campo.

  6. Haga clic en Add.

Lo siguiente es el JSON sintaxis para el tipo stringFacet. Sustituye la definición del índice por defecto por la siguiente. Para obtener más información sobre los campos, consulta Propiedades de campo.

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "stringFacet"
}
}
}
}

El tipo MongoDB Search stringFacet cuenta con los siguientes parámetros:

Nombre del campo de la interfaz de usuario
JSON Option
Tipo
Necesidad
Descripción

Data Type

type

string

Requerido

Etiqueta legible que identifica este tipo de campo. El valor debe stringFacet ser. MongoDB Search trunca string los valores BSON indexados como stringFacet tipo a aproximadamente 8000 unidades de código UTF-.16

El siguiente ejemplo de definición de índice utiliza la colección sample_mflix.movies. Si ya tienes los datos de muestras cargados en tu clúster, puedes usar el editor visual o el editor JSON en la Interfaz de Usuario de Atlas para configurar el índice. Después de seleccionar tu método de configuración preferido, selecciona la base de datos y la colección, y perfecciona tu índice para agregar mapeos de campos.

La siguiente definición de índice para la colección sample_mflix.movies en el conjunto de datos de ejemplo indexa el campo genres como stringFacet para la creación de facetas.

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

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

  3. Haga clic en Add.

{
"mappings": {
"dynamic": false,
"fields": {
"genres": {
"type": "stringFacet"
}
}
}
}

La siguiente definición de índice para la colección sample_mflix.movies en el conjunto de datos de muestra indexa el campo genres como tipos stringFacet y string para devolver los siguientes tipos de resultados para sus consultas:

  • Resultados de metadatos para consultas que utilizan MongoDB Search facet (Operador de búsqueda MongoDB).

  • Resultados de búsqueda para consultas que emplean operadores de búsqueda de MongoDB Search como texto, frase y otros operadores que realizan búsquedas de texto.

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

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

  3. Haga clic en Add.

  4. Repite el paso 1 y selecciona String del menú desplegable Data Type.

  5. Revisa la configuración por defecto para String Properties y haz clic en Add.

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

Para aprender más sobre el colector facet y ver queries 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.

Para ver un índice de ejemplo y una query que utiliza stringFacet para ejecutar una búsqueda facetada con resultados paginados, consulta Uso de faceta con resultados paginados.

Volver

string

En esta página