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
/ /
Text Indexes
/ / / /

Asignar pesos a los resultados de búsqueda de texto en implementaciones autogestionadas

La búsqueda de texto asigna una puntuación a cada documento que contiene el término de búsqueda en los campos indexados. La puntuación determina la relevancia de un documento para una consulta de búsqueda determinada.

Para un text índice, el peso de un campo indexado denota la importancia del campo en relación con los otros campos indexados en términos de la puntuación de búsqueda de texto.

Para cada campo indexado en el documento, MongoDB multiplica el número de coincidencias por el peso y suma los resultados. Usando esta suma, MongoDB luego calcula el puntaje para el documento. Ver $meta operador para obtener detalles sobre cómo devolver y ordenar por puntuaciones de texto.

El peso por defecto es 1 para los campos indexados. Para ajustar los pesos de los campos indexados, incluye la opción weights en el método db.collection.createIndex().

Advertencia

Elige cuidadosamente los pesos para evitar la necesidad de reindexar.

Una colección blog tiene los siguientes documentos:

{
_id: 1,
content: "This morning I had a cup of coffee.",
about: "beverage",
keywords: [ "coffee" ]
}
{
_id: 2,
content: "Who doesn't like cake?",
about: "food",
keywords: [ "cake", "food", "dessert" ]
}

Para crear un índice text con diferentes ponderaciones de campos para el campo content y el campo keywords, incluye la opción weights en el método createIndex(). Por ejemplo, el siguiente comando crea un índice en tres campos y asigna pesos a dos de los campos:

db.blog.createIndex(
{
content: "text",
keywords: "text",
about: "text"
},
{
weights: {
content: 10,
keywords: 5
},
name: "TextIndex"
}
)

El índice text tiene los siguientes campos y pesos:

  • content tiene un peso de 10,

  • keywords tiene un peso de 5, y

  • about tiene un peso por defecto de 1.

Ces pondérations indiquent la signification relative des champs indexés les uns par rapport aux autres. Por ejemplo, un término correspondiente en el campo content tiene:

  • 2 veces (es decir, 10:5) el impacto como coincidencia de término en el campo keywords y

  • 10 veces (es decir, 10:1) el impacto como coincidencia de término en el campo about.

Nota

Para los datos alojados en MongoDB Atlas, Búsqueda Atlas proporciona una puntuación personalizada más robusta que los índices text. Para obtener más información, consulta la documentación de Atlas Search Puntaje.

Volver

Especificar nombre para el índice de texto