Docs Menu
Docs Home
/ /

Puntúe los documentos en los resultados

A cada documento devuelto por una consulta de búsqueda MongoDB o búsqueda vectorial MongoDB se le asigna una puntuación basada en su relevancia, y los documentos incluidos en un conjunto de resultados se devuelven en orden desde la puntuación más alta a la más baja.

Para incluir la puntuación de cada documento en los resultados de búsqueda, utilice el $project etapa en su canal de agregación.

  • Para el $search En la etapa, el score campo utiliza la expresión $meta, que requiere el searchScore valor. También puede especificar el searchScoreDetails valor para la scoreDetails expresión $meta del campo para obtener un desglose detallado de la puntuación.

  • Para la etapa,$vectorSearch el score campo toma la expresión $meta, que requiere el vectorSearchScore valor para devolver la puntuación de cada documento en los resultados de búsqueda vectorial.

Nota

Puedes utilizar:

Si utiliza searchScore y vectorSearchScore en cualquier otra consulta, MongoDB registra una advertencia a partir de MongoDB v8.2.

Ejemplo

La siguiente consulta utiliza una etapa para agregar un campo $project llamado score a los documentos devueltos:

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 <operator-specification>
6 }
7 }
8 },
9 {
10 "$project": {
11 "<field-to-include>": 1,
12 "<field-to-exclude>": 0,
13 "score": { "$meta": "searchScore" }
14 }
15 }
16])
1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 <operator-specification>
6 },
7 "scoreDetails": true
8 }
9 },
10 {
11 "$project": {
12 "<field-to-include>": 1,
13 "<field-to-exclude>": 0,
14 "scoreDetails": { "$meta": "searchScoreDetails" }
15 }
16 }
17])

Para obtener más información, consulte los detalles de la puntuación de búsqueda.

1db.movies.aggregate([
2 {
3 "$vectorSearch": {
4 <query-syntax>
5 }
6 },
7 {
8 "$project": {
9 "<field-to-include>": 1,
10 "<field-to-exclude>": 0,
11 "score": { "$meta": "vectorSearchScore" }
12 }
13 }
14])

Para obtener más información, consulta Puntuación de búsqueda vectorial de MongoDB.

La puntuación asignada a un documento devuelto forma parte de sus metadatos. Puede usar una $project etapa en su canal de agregación para incluir la puntuación de cada documento devuelto junto con el conjunto de resultados. Los documentos se devuelven de mayor a menor puntuación. Muchos factores pueden influir en la puntuación de un documento, entre ellos:

  • Posición del término de búsqueda en el documento.

  • Frecuencia de aparición del término de búsqueda en el documento.

  • Tipo de operador o analizador que utiliza una consulta de búsqueda de MongoDB.

Para obtener más información sobre el algoritmo de puntuación de Lucene, consulte la documentación de Lucene.

Además del comportamiento de puntuación predeterminado, MongoDB Search admite las siguientes opciones:

Si varios documentos en los resultados tienen puntuaciones idénticas, su ordenación no es determinista. Si desea que los resultados de búsqueda de MongoDB tengan un orden determinado, incluya la opción de ordenación en $search la etapa para ordenar los resultados por un campo único. También puede usar la opción de ordenación para obtener un orden ascendente de los resultados por puntuación. Para obtener más información, consulte Ordenar resultados de búsqueda de MongoDB y Ejemplos de ordenación por puntuación.

En nodos de búsqueda independientes, cada nodo asigna a los documentos diferentes ID internos de Lucene, que se utilizan para ordenar cuando las puntuaciones son idénticas. Al ordenar y paginar los resultados, el mongot proceso del nodo que procesa la consulta podría incluir documentos de otros nodos si sus ID internos tienen un orden de paginación mayor que el del token. Para evitar esto, utilice después $match $search de _idpara excluir los documentos por su.

Al consultar valores de una matriz, MongoDB Search asigna puntuaciones más altas si más valores en la matriz coinciden con la consulta.

Para obtener ejemplos sobre cómo utilizar opciones score adicionales en sus consultas de búsqueda de MongoDB, consulte las siguientes páginas:

Para obtener ejemplos sobre cómo utilizar el campo score en algunas consultas de búsqueda comunes de MongoDB, consulte las siguientes páginas:

Volver

opciones de búsqueda

En esta página