Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Personalizar la puntuación de los documentos en los resultados

Puede personalizar la puntuación de los documentos en los resultados. Al ajustar cómo se calculan las puntuaciones, puede asegurarse de que los documentos más pertinentes se clasifiquen más alto en los resultados de la búsqueda. Para aprender más sobre las diferentes formas en que puede personalizar la puntuación, consulte Puntuar los documento en los resultados. Esta página demuestra cómo:

  • Modifique la puntuación de los documentos en los resultados para impulsar o enterrar los resultados.

  • Normalice la puntuación de query $search en el rango de 0 a 1 en las etapas posteriores de su pipeline de agregación.

Una query de búsqueda de MongoDB Search asigna a cada documento devuelto una puntuación basada en su relevancia. Los documentos incluidos en un conjunto de resultados se devuelven en orden desde la puntuación más alta hasta la más baja. Para aprender más, consulte Puntuación del documento en los resultados.

Puede utilizar las siguientes opciones con todos los operadores para modificar el comportamiento por defecto de puntuación. Para detalles y ejemplos, haga clic en cualquiera de las siguientes opciones:

Esta sección muestra cómo agregar pesos a los campos de búsqueda para aumentar o reducir la puntuación de los documentos en los resultados o en una categoría de resultados. En concreto, muestra cómo asignar uno o más valores a un campo para devolver resultados con una puntuación mayor o menor.

Puede configurar un índice con asignaciones dinámicas habilitadas para indexar todos los campos de la colección. Alternativamente, utilice asignaciones estáticas en los campos que desea consultar y ordene los resultados por. Para obtener más información sobre cómo crear índices de MongoDB Search, consulte Administrar índices de MongoDB Search.

Las consultas de ejemplo muestran cómo aumentar o enterrar los documentos en los resultados. Utilizan el operador compuesto para combinar dos o más operadores en una sola query.

Puedes normalizar tu puntuación de query $search en el rango de 0 a 1 en las etapas posteriores de tu pipeline de agregación. Puedes utilizar las siguientes etapas después de tu etapa $search en el siguiente orden para normalizar la puntuación:

  • $addFields

    {
    "$addFields": {
    "score": {
    "$meta": "searchScore"
    }
    }
    }
  • $setWindowFields

    {
    "$setWindowFields": {
    "output": {
    "maxScore": {
    "$max": "$score"
    }
    }
    }
    }
  • $addFields

    {
    "$addFields": {
    "normalizedScore": {
    "$divide": [
    "$score", "$maxScore"
    ]
    }
    }
    }
1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "query": "Helsinki",
5 "path": "plot"
6 }
7 }
8 },
9 {
10 "$limit": 5
11 },
12 {
13 "$project": {
14 "_id": 0,
15 "title": 1,
16 "score": 1,
17 "maxScore": 1,
18 "normalizedScore": 1
19 }
20 },
21 {
22 "$addFields": {
23 "score": {
24 "$meta": "searchScore"
25 }
26 }
27 },
28 {
29 "$setWindowFields": {
30 "output": {
31 "maxScore": {
32 "$max": "$score"
33 }
34 }
35 }
36 },
37 {
38 "$addFields": {
39 "normalizedScore": {
40 "$divide": [
41 "$score", "$maxScore"
42 ]
43 }
44 }
45}])
1[
2 {
3 title: 'Drifting Clouds',
4 score: 4.5660295486450195,
5 maxScore: 4.5660295486450195,
6 normalizedScore: 1
7 },
8 {
9 title: 'Sairaan kaunis maailma',
10 score: 4.041563034057617,
11 maxScore: 4.5660295486450195,
12 normalizedScore: 0.8851372929150143
13 },
14 {
15 title: 'Bad Luck Love',
16 score: 3.6251673698425293,
17 maxScore: 4.5660295486450195,
18 normalizedScore: 0.79394303764817
19 },
20 {
21 title: 'Bad Luck Love',
22 score: 3.6251673698425293,
23 maxScore: 4.5660295486450195,
24 normalizedScore: 0.79394303764817
25 },
26 {
27 title: 'Forbidden Fruit',
28 score: 3.6251673698425293,
29 maxScore: 4.5660295486450195,
30 normalizedScore: 0.79394303764817
31 }
32]

Los resultados de la búsqueda en MongoDB Search incluyen las siguientes puntuaciones:

  • La puntuación modificada para la query $search en el campo score de la $addFields etapa.

  • La puntuación máxima asignada a los documentos en los resultados en el campo maxScore de la etapa $setWindowFields.

  • La puntuación normalizada en el campo normalizedScore de la etapa $addFields. MongoDB calcula esta puntuación dividiendo la puntuación modificada en $score por la puntuación máxima en $maxScore usando $divide.

Para aprender más sobre las query compuestas con MongoDB Search, toma la unidad 9 del Intro To MongoDB Course on MongoDB University. La unidad de 1.5horas incluye una descripción general de MongoDB Search. La unidad también cubre la creación de índices de MongoDB Search, la ejecución de $search query mediante operadores compuestos y la agrupación de resultados mediante facet (MongoDB Search Operador).