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 buscado en los campos indexados. Esta puntuación determina la relevancia de un documento para una consulta de búsqueda específica.

Para una 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 del documento, MongoDB multiplica el número de coincidencias por el peso y suma los resultados. Con esta suma, MongoDB calcula la puntuación del documento. Ver $meta operador para obtener detalles sobre cómo devolver y ordenar por puntuaciones de texto.

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

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 text índice con diferentes ponderaciones para content los keywords campos y, incluya la weights opción en el createIndex() método. Por ejemplo, el siguiente comando crea un índice en tres campos y asigna ponderaciones a dos de ellos:

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.

Estas ponderaciones indican la importancia relativa de los campos indexados entre sí. Por ejemplo, una coincidencia de término 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, Atlas Search ofrece una puntuación personalizada más robusta que text los índices. Para obtener más información, consulte la documentación de Puntuación de Atlas Search.

Volver

Especificar nombre para el índice de texto