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

Regrese los detalles de la puntuación

Puedes utilizar el scoreDetails opción booleana en tu $search etapa para un desglose detallado de la puntuación de cada documento en los resultados de la query.

Cuando estableces scoreDetails: true en tu fase de $search, MongoDB Search devuelve información detallada de puntuación para cada documento coincidente. Esta información explica por qué un documento corresponde a la query y recibió su puntuación de relevancia en los resultados de búsqueda.

Por defecto, la puntuación se basa en bm25 fórmula:

  • Frecuencia del término: frecuencia con la que un término de búsqueda aparece en el documento

  • Frecuencia inversa de documentos: qué tan común es el término de búsqueda en todos los documentos

  • Longitud del campo: es la longitud del campo que coincide con la query

La opción scoreDetails desglosa estos factores para ayudarle a analizar por qué un documento coincidió con la consulta y recibió su puntuación.

Para ver los metadatos, debes usar la expresión $meta en la etapa $project.

{
"$search": {
"<operator>": {
<operator-specification>
},
"scoreDetails": true | false
}
},
{
"$project": {
"scoreDetails": {"$meta": "searchScoreDetails"}
}
}

En la etapa de búsqueda $search, la opción booleana scoreDetails toma uno de los siguientes valores:

  • true - para incluir detalles de la puntuación de los documentos en los resultados. Si se establece en true, MongoDB Search devuelve un desglose detallado de la puntuación de cada documento en el resultado. Esto proporciona información sobre por qué ciertos documentos coincidieron con una consulta de MongoDB Search. Para obtener más información, consulte Output.

  • false - para excluir detalles del desglose de la puntuación de los resultados. (Predeterminado)

Si se omite, la opción scoreDetails tendrá como valor predeterminado false.

En la etapa del $proyecto, el campo scoreDetails acepta la expresión $meta, que requiere el siguiente valor:

searchScoreDetails

Devuelve un desglose detallado de la puntuación para cada documento en los resultados.

La opción scoreDetails devuelve los siguientes campos en el arreglo details dentro del objeto scoreDetails para cada documento en el resultado:

Campo
Tipo
Descripción

value

float

Contribución a la puntuación de un subconjunto de la fórmula de puntuación. El valor superior value muestra la puntuación completa del documento de resultados y es igual al valor $searchScore.

La fórmula para calcular la puntuación varía en función del operador utilizado en la query. Por ejemplo, MongoDB Search utiliza una función de decaimiento de distancia para calcular la puntuación del operador cercano.

description

string

Subconjunto de la fórmula de puntuación, incluidos los detalles sobre cómo se puntuó el documento y los factores considerados al calcular la puntuación. El description principal muestra toda la fórmula de puntuación utilizada para calificar el documento.

Para obtener más información, consulte Factores que contribuyen a la puntuación.

details

Arreglo de objetos

Desglose del puntaje de cada coincidencia en el documento basado en el subconjunto de la fórmula de puntuación. El valor es un arreglo de objetos de detalles de puntuación, de estructura recursiva.

Los distintos operadores de consulta utilizan algoritmos diferentes para calcular el searchScore de cada documento en los resultados. Las siguientes secciones describen cómo los operadores de consulta comunes gestionan la puntuación:

De forma predeterminada, los operadores de texto,frase, cadena de consulta y autocompletar utilizan el bm25 algoritmo de similitud para puntuar los documentos.

Recomendamos usar los algoritmos stableTfl o boolean cuando se necesiten resultados coherentes en múltiples consultas, especialmente si se cumplen ambas condiciones:

  • Tu aplicación ordena los resultados por searchScore y paginar los resultados, lo que depende de una medición determinística para evitar duplicados o documentos omitidos

  • Su implementación utiliza nodos de búsqueda MongoDB dedicados o tiene la preferencia de lectura establecida en secondary nearesto, lo que aumenta la probabilidad de que las consultas iniciales y posteriores se dirijan a diferentes nodos de búsqueda MongoDB.

bm25 los puntajes pueden no ser coherentes entre queries subsiguientes. Cada nodo de MongoDB Search crea índices de MongoDB Search y realiza actualizaciones y eliminaciones de forma independiente, lo que da lugar a un corpus documental que puede variar entre los diferentes nodos de MongoDB Search. Dado que los cálculos de bm25 dependen del corpus documental, las consultas subsiguientes que se enruten a diferentes nodos de Búsqueda de MongoDB podrían calcular diferentes puntuaciones de bm25 para los mismos documentos.

Para usar un algoritmo de similitud diferente, especifique la propiedad similarity.type en la definición del índice de MongoDB Search para los campos que indexe como tipo de MongoDB Search string o autocomplete. Para aprender a configurar un índice MongoDB Search para estos tipos, consulta Cómo indexar campos de String o Cómo indexar campos para autocompletar.

Puedes elegir entre los siguientes algoritmos de similitud cuando especifiques la propiedad similarity.type en tu definición de índice de MongoDB Search:

bm25 es un algoritmo de clasificación popular que clasifica documentos basado en:

  • Frecuencia del término: frecuencia con la que un término de búsqueda aparece en el documento

  • Frecuencia inversa de documentos: qué tan común es el término de búsqueda en todos los documentos

  • Longitud del campo: es la longitud del campo que coincide con la query

bm25 calcula el puntaje como boost * idf * tf, donde cada factor se define de la siguiente manera:

Factor
Descripción

boost

Factor especificado en tiempo de query utilizando la opción score.boost del operador del query. Puedes establecer boost en un número positivo o en el valor de un campo numérico en los documentos. Para obtener más información, consulta boost.

idf

Frecuencia inversa de documentos de la query. MongoDB Search calcula la frecuencia utilizando la siguiente fórmula:

idf = log(1 + (N - n + 0.5) / (n + 0.5))

donde:

  • N es el número total de documentos con el campo de query.

  • n es el número de documentos que contienen el término de query.

tf

Frecuencia de término. MongoDB Search calcula la frecuencia utilizando la siguiente fórmula:

tf = freq / (freq + k1 * (1 - b + b * dl / avgdl))

donde:

  • freq es el número de apariciones del término dentro del documento.

  • k1 Es el parámetro de saturación del término especificado internamente. Afecta el aumento de la puntuación con cada recurrencia del término.

  • b es el parámetro de normalización de longitud especificado internamente. b se multiplica por la proporción de dl a avgdl. Si b aumenta, los efectos de la relación de dl a avgdl se amplifican.

  • dl es la longitud del campo en el documento.

  • avgdl es la longitud media del campo en todos los documentos.

boolean Es un algoritmo de puntuación que comprueba si cada término de consulta está presente en un documento y contabiliza cuántos se encuentran. Todos los términos coincidentes se tratan por igual, sin ajustes por importancia ni frecuencia.

Para boolean, la puntuación se calcula como la suma de todos los términos de la query presentes en el documento, donde cada término aporta un valor de 1 a la puntuación si está presente en el documento.

stableTfl es un algoritmo de clasificación personalizado de MongoDB Search que utiliza la longitud de los términos para determinar la rareza de los términos. Esto se basa en la ley de Zipf, que sostiene que las palabras más largas aparecen con menor frecuencia (son más raras).

stableTfl calcula el puntaje como boost * tr * tf, donde cada factor se define de la siguiente manera:

Factor
Descripción

boost

Factor especificado en tiempo de query utilizando la opción score.boost del operador del query. Puedes establecer boost en un número positivo o en el valor de un campo numérico en los documentos. Para obtener más información, consulta boost.

tf

Función decreciente. MongoDB Search calcula la función decreciente mediante la siguiente fórmula:

tf = freq / (freq + k1)

donde:

  • freq es la frecuencia del término de query en un documento.

  • k1 Es el parámetro de saturación del término especificado internamente. Afecta el aumento de la puntuación con cada recurrencia del término.

tr

Rareza del término. MongoDB Search calcula la rareza de los términos utilizando la siguiente fórmula:

tr = log(1 + (1 - p + 0.05)/(p + 0.05))

donde:

  • p es la probabilidad de que el término de query aparezca en el documento en función de la longitud del término. Esto se basa en la ley de Zipf, la cual indica que las palabras más largas aparecen con menor frecuencia. Para determinar la rareza de un término, MongoDB utiliza una función decreciente basada en la longitud del término.

p

Función de probabilidad basada en la ley de Zipf. MongoDB Search calcula la probabilidad de que el término de la query aparezca en el documento utilizando la siguiente fórmula:

p = 1 - (1 - m * 2 ^ (-c * tl)) ^ dl

donde:

  • m es la constante multiplicativa especificada internamente para la probabilidad del término.

  • c es la constante de descomposición especificada internamente. Controla la rapidez con la que p disminuye a medida que aumenta la duración del término.

  • tl es la longitud del término de consulta, medida en puntos de código Unicode.

  • dl es la longitud del documento d, medida en tokens.

El operador "near" utiliza una función de decaimiento por distancia para puntuar los documentos. Mide la proximidad de los resultados de MongoDB Search al número, la fecha o el punto geográfico que se establece como origin valor.

La función de decaimiento de distancia calcula la puntuación como pivot / (pivot + distance), donde cada factor se define de la siguiente manera:

Factor
Descripción

pivot

Valor especificado como un punto de referencia para igualar la puntuación a 0.5 si la distancia entre fieldValue y origin es igual a ese valor. Esto define cuán rápido disminuye la puntuación a medida que aumenta la distancia entre fieldValue y origin. Para una distancia determinada entre fieldValue y origin, si pivot disminuye, la puntuación también disminuye.

distance

Distancia absoluta entre fieldValue y origin. MongoDB Search calcula este valor utilizando la siguiente fórmula:

abs(fieldValue - origin)

donde:

  • fieldValue es el valor del campo que estás consultando en el documento.

  • origin es el número, fecha o punto geográfico para buscar cerca de.

Los siguientes ejemplos muestran cómo recuperar los detalles de las puntuaciones en los resultados de lo siguiente:

Tip

Para ver detalles de la puntuación recursivamente en los arreglos de objetos, configura los ajustes en mongosh ejecutando lo siguiente:

config.set('inspectDepth', Infinity)

Los siguientes ejemplos demuestran cómo recuperar un desglose de la puntuación utilizando la opción $search scoreDetails para los documentos en los resultados de las consultas de operadores text, near, compound y embeddedDocument.

El ejemplo siguiente utiliza el operador text para query el campo title en la colección sample_mflix.movies para el término autumn. La query especifica la opción scoreDetails en la etapa $search para recuperar un desglose detallado de la puntuación de cada documento en los resultados. La query utiliza la etapa $limit para limitar los resultados a tres documentos y la etapa $project para hacer lo siguiente:

  • Excluir el campo _id.

  • Incluye solo el campo title.

  • Añade el campo score a los resultados para devolver la puntuación del documento y el campo scoreDetails a los resultados para devolver un desglose detallado de la puntuación del documento.

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "autumn"
7 },
8 "scoreDetails": true
9 }
10 },
11 {
12 "$limit": 3
13 },
14 {
15 "$project": {
16 "_id": 0,
17 "title": 1,
18 "score": { "$meta": "searchScore" },
19 "scoreDetails": { "$meta": "searchScoreDetails" }
20 }
21 }
22])
1[
2 {
3 title: 'Autumn Leaves',
4 score: 3.834893226623535,
5 scoreDetails: {
6 value: 3.834893226623535,
7 description: '$type:string/title:autumn [BM25Similarity], result of:',
8 details: [
9 {
10 value: 3.834893226623535,
11 description: 'score(freq=1.0), computed as boost * idf * tf from:',
12 details: [
13 {
14 value: 7.39188289642334,
15 description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
16 details: [
17 {
18 value: 14,
19 description: 'n, number of documents containing term',
20 details: []
21 },
22 {
23 value: 23529,
24 description: 'N, total number of documents with field',
25 details: []
26 }
27 ]
28 },
29 {
30 value: 0.5187978744506836,
31 description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
32 details: [
33 {
34 value: 1,
35 description: 'freq, occurrences of term within document',
36 details: []
37 },
38 {
39 value: 1.2000000476837158,
40 description: 'k1, term saturation parameter',
41 details: []
42 },
43 {
44 value: 0.75,
45 description: 'b, length normalization parameter',
46 details: []
47 },
48 {
49 value: 2,
50 description: 'dl, length of field',
51 details: []
52 },
53 {
54 value: 2.868375301361084,
55 description: 'avgdl, average length of field',
56 details: []
57 }
58 ]
59 }
60 ]
61 }
62 ]
63 }
64 },
65 {
66 title: 'Late Autumn',
67 score: 3.834893226623535,
68 scoreDetails: {
69 value: 3.834893226623535,
70 description: '$type:string/title:autumn [BM25Similarity], result of:',
71 details: [
72 {
73 value: 3.834893226623535,
74 description: 'score(freq=1.0), computed as boost * idf * tf from:',
75 details: [
76 {
77 value: 7.39188289642334,
78 description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
79 details: [
80 {
81 value: 14,
82 description: 'n, number of documents containing term',
83 details: []
84 },
85 {
86 value: 23529,
87 description: 'N, total number of documents with field',
88 details: []
89 }
90 ]
91 },
92 {
93 value: 0.5187978744506836,
94 description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
95 details: [
96 {
97 value: 1,
98 description: 'freq, occurrences of term within document',
99 details: []
100 },
101 {
102 value: 1.2000000476837158,
103 description: 'k1, term saturation parameter',
104 details: []
105 },
106 {
107 value: 0.75,
108 description: 'b, length normalization parameter',
109 details: []
110 },
111 {
112 value: 2,
113 description: 'dl, length of field',
114 details: []
115 },
116 {
117 value: 2.868375301361084,
118 description: 'avgdl, average length of field',
119 details: []
120 }
121 ]
122 }
123 ]
124 }
125 ]
126 }
127 },
128 {
129 title: 'Cheyenne Autumn',
130 score: 3.834893226623535,
131 scoreDetails: {
132 value: 3.834893226623535,
133 description: '$type:string/title:autumn [BM25Similarity], result of:',
134 details: [
135 {
136 value: 3.834893226623535,
137 description: 'score(freq=1.0), computed as boost * idf * tf from:',
138 details: [
139 {
140 value: 7.39188289642334,
141 description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
142 details: [
143 {
144 value: 14,
145 description: 'n, number of documents containing term',
146 details: []
147 },
148 {
149 value: 23529,
150 description: 'N, total number of documents with field',
151 details: []
152 }
153 ]
154 },
155 {
156 value: 0.5187978744506836,
157 description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
158 details: [
159 {
160 value: 1,
161 description: 'freq, occurrences of term within document',
162 details: []
163 },
164 {
165 value: 1.2000000476837158,
166 description: 'k1, term saturation parameter',
167 details: []
168 },
169 {
170 value: 0.75,
171 description: 'b, length normalization parameter',
172 details: []
173 },
174 {
175 value: 2,
176 description: 'dl, length of field',
177 details: []
178 },
179 {
180 value: 2.868375301361084,
181 description: 'avgdl, average length of field',
182 details: []
183 }
184 ]
185 }
186 ]
187 }
188 ]
189 }
190 }
191]

MongoDB Search tiene en cuenta los siguientes BM25Similarity factores para calcular la puntuación:

Factor
Descripción

boost

Factor especificado en tiempo de query utilizando la opción score.boost del operador del query. Puedes establecer boost en un número positivo o en el valor de un campo numérico en los documentos. Para obtener más información, consulta boost.

idf

Frecuencia inversa de documentos de la query. MongoDB Search calcula la frecuencia utilizando la siguiente fórmula:

idf = log(1 + (N - n + 0.5) / (n + 0.5))

donde:

  • N es el número total de documentos con el campo de query.

  • n es el número de documentos que contienen el término de query.

tf

Frecuencia de término. MongoDB Search calcula la frecuencia utilizando la siguiente fórmula:

tf = freq / (freq + k1 * (1 - b + b * dl / avgdl))

donde:

  • freq es el número de apariciones del término dentro del documento.

  • k1 Es el parámetro de saturación del término especificado internamente. Afecta el aumento de la puntuación con cada recurrencia del término.

  • b es el parámetro de normalización de longitud especificado internamente. b se multiplica por la proporción de dl a avgdl. Si b aumenta, los efectos de la relación de dl a avgdl se amplifican.

  • dl es la longitud del campo en el documento.

  • avgdl es la longitud media del campo en todos los documentos.

El siguiente ejemplo utiliza el operador cerca para consultar el campo released en la colección sample_mflix.movies de películas lanzadas cerca de enero 01, 2010. La query especifica la opción scoreDetails en la etapa $search para recuperar un desglose detallado de la puntuación de cada documento en los resultados. La query utiliza la etapa $limit para limitar los resultados a tres documentos y la etapa $project para realizar lo siguiente:

  • Excluir el campo _id.

  • Incluya solo los campos title y released.

  • Añade el campo score a los resultados para devolver la puntuación del documento y el campo scoreDetails a los resultados para devolver un desglose detallado de la puntuación del documento.

1db.movies.aggregate([
2 {
3 "$search": {
4 "near": {
5 "path": "released",
6 "origin": ISODate("2010-01-01T00:00:00.000+00:00"),
7 "pivot": 7776000000
8 },
9 "scoreDetails": true
10 }
11 },
12 {
13 "$limit": 3
14 },
15 {
16 "$project": {
17 "_id": 0,
18 "title": 1,
19 "released": 1,
20 "score": { "$meta": "searchScore" },
21 "scoreDetails": { "$meta": "searchScoreDetails" }
22 }
23 }
24])
1[
2 {
3 title: 'Tony',
4 released: ISODate("2010-01-01T00:00:00.000Z"),
5 score: 1,
6 scoreDetails: {
7 value: 1,
8 description: 'Distance score, computed as weight * pivotDistance / (pivotDistance + abs(value - origin)) from:',
9 details: [
10 { value: 1, description: 'weight', details: [] },
11 {
12 value: 7776000000,
13 description: 'pivotDistance',
14 details: []
15 },
16 { value: 1262303969280, description: 'origin', details: [] },
17 {
18 value: 1262303969280,
19 description: 'current value',
20 details: []
21 }
22 ]
23 }
24 },
25 {
26 title: 'And Everything Is Going Fine',
27 released: ISODate("2010-01-01T00:00:00.000Z"),
28 score: 1,
29 scoreDetails: {
30 value: 1,
31 description: 'Distance score, computed as weight * pivotDistance / (pivotDistance + abs(value - origin)) from:',
32 details: [
33 { value: 1, description: 'weight', details: [] },
34 {
35 value: 7776000000,
36 description: 'pivotDistance',
37 details: []
38 },
39 { value: 1262303969280, description: 'origin', details: [] },
40 {
41 value: 1262303969280,
42 description: 'current value',
43 details: []
44 }
45 ]
46 }
47 },
48 {
49 title: 'A Film with Me in It',
50 released: ISODate("2010-01-01T00:00:00.000Z")
51 score: 1,
52 scoreDetails: {
53 value: 1,
54 description: 'Distance score, computed as weight * pivotDistance / (pivotDistance + abs(value - origin)) from:',
55 details: [
56 { value: 1, description: 'weight', details: [] },
57 {
58 value: 7776000000,
59 description: 'pivotDistance',
60 details: []
61 },
62 { value: 1262303969280, description: 'origin', details: [] },
63 {
64 value: 1262303969280,
65 description: 'current value',
66 details: []
67 }
68 ]
69 }
70 }
71]

Para la puntuación de distancia, MongoDB Search tiene en cuenta los siguientes factores para calcular la puntuación:

Factor
Descripción

pivot

Valor especificado como un punto de referencia para igualar la puntuación a 0.5 si la distancia entre fieldValue y origin es igual a ese valor. Esto define cuán rápido disminuye la puntuación a medida que aumenta la distancia entre fieldValue y origin. Para una distancia determinada entre fieldValue y origin, si pivot disminuye, la puntuación también disminuye.

distance

Distancia absoluta entre fieldValue y origin. MongoDB Search calcula este valor utilizando la siguiente fórmula:

abs(fieldValue - origin)

donde:

  • fieldValue es el valor del campo que estás consultando en el documento.

  • origin es el número, fecha o punto geográfico para buscar cerca de.

El siguiente ejemplo utiliza el operador compuesto para consultar la sample_mflix.movies colección en busca de películas utilizando las siguientes cláusulas:

  • filter cláusula para encontrar películas que contengan el término friend en el título.

  • must cláusula para encontrar películas estrenadas entre los años 2000 y 2015.

  • mustNot cláusula para buscar películas que no estén en los géneros Short, Western y Biography.

La consulta especifica la scoreDetails opción en la etapa para obtener un desglose detallado de la puntuación $search de cada documento en los resultados. La consulta utiliza la etapa para limitar los $limit $project resultados a tres documentos y la etapa para realizar lo siguiente:

  • Excluir el campo _id.

  • Incluye solo los campos title, released y genres.

  • Añade el campo score a los resultados para devolver la puntuación del documento y el campo scoreDetails a los resultados para devolver un desglose detallado de la puntuación del documento.

1db.movies.aggregate([
2 {
3 "$search": {
4 "compound": {
5 "filter": [{
6 "text": {
7 "query": "friend",
8 "path": "title"
9 }
10 }],
11 "must": [{
12 "range": {
13 "path": "year",
14 "gte": 2000,
15 "lte": 2015
16 }
17 }],
18 "mustNot": [{
19 "text": {
20 "query": ["Short, Western", "Biography"],
21 "path": "genres"
22 }
23 }]
24 },
25 "scoreDetails": true
26 }
27 },
28 {
29 "$limit": 3
30 },
31 {
32 "$project": {
33 "_id": 0,
34 "title": 1,
35 "released": 1,
36 "genres": 1,
37 "score": { "$meta": "searchScore" },
38 "scoreDetails": { "$meta": "searchScoreDetails" }
39 }
40 }
41])
1[
2 {
3 genres: [ 'Comedy', 'Drama', 'Mystery' ],
4 title: 'With a Friend Like Harry...',
5 released: ISODate("2001-06-15T00:00:00.000Z"),
6 score: 1,
7 scoreDetails: {
8 value: 1,
9 description: 'sum of:',
10 details: [
11 {
12 value: 0,
13 description: 'match on required clause, product of:',
14 details: [
15 { value: 0, description: '# clause', details: [] },
16 {
17 value: 1,
18 description: '$type:string/title:friend',
19 details: []
20 }
21 ]
22 },
23 {
24 value: 1,
25 description: 'sum of:',
26 details: [
27 {
28 value: 1,
29 description: 'sum of:',
30 details: [
31 {
32 value: 1,
33 description: '$type:double/year:[4656510908468559872 TO 4656576879166226432]',
34 details: []
35 }
36 ]
37 }
38 ]
39 }
40 ]
41 }
42 },
43 {
44 genres: [ 'Drama' ],
45 title: 'My Friend Henry',
46 released: ISODate("2004-08-20T00:00:00.000Z"),
47 score: 1,
48 scoreDetails: {
49 value: 1,
50 description: 'sum of:',
51 details: [
52 {
53 value: 0,
54 description: 'match on required clause, product of:',
55 details: [
56 { value: 0, description: '# clause', details: [] },
57 {
58 value: 1,
59 description: '$type:string/title:friend',
60 details: []
61 }
62 ]
63 },
64 {
65 value: 1,
66 description: 'sum of:',
67 details: [
68 {
69 value: 1,
70 description: 'sum of:',
71 details: [
72 {
73 value: 1,
74 description: '$type:double/year:[4656510908468559872 TO 4656576879166226432]',
75 details: []
76 }
77 ]
78 }
79 ]
80 }
81 ]
82 }
83 },
84 {
85 genres: [ 'Comedy', 'Drama' ],
86 title: 'A Friend of Mine',
87 released: ISODate("2006-10-26T00:00:00.000Z"),
88 score: 1,
89 scoreDetails: {
90 value: 1,
91 description: 'sum of:',
92 details: [
93 {
94 value: 0,
95 description: 'match on required clause, product of:',
96 details: [
97 { value: 0, description: '# clause', details: [] },
98 {
99 value: 1,
100 description: '$type:string/title:friend',
101 details: []
102 }
103 ]
104 },
105 {
106 value: 1,
107 description: 'sum of:',
108 details: [
109 {
110 value: 1,
111 description: 'sum of:',
112 details: [
113 {
114 value: 1,
115 description: '$type:double/year:[4656510908468559872 TO 4656576879166226432]',
116 details: []
117 }
118 ]
119 }
120 ]
121 }
122 ]
123 }
124 }
125]

Nota

El # clause en los resultados en las líneas 15, 56 y 97 representa la query de operador compuesto cláusula filter, que no contribuye al puntaje del documento.

El siguiente ejemplo usa el operador embeddedDocument para consultar el campo products.name en la colección sample_training.companies para productos que contienen el término Basic precedido de cualquier número de otros caracteres. La query especifica dentro del operador embeddedDocument que la puntuación devuelta debe ser una suma de todos los documentos incrustados coincidentes. La query también especifica la opción scoreDetails en la etapa $search para recuperar un desglose detallado de la puntuación de cada documento en los resultados. La query utiliza la etapa $limit para limitar los resultados a tres documentos y la etapa $project para realizar lo siguiente:

  • Excluir el campo _id.

  • Incluye solo el campo products.name.

  • Añade el campo score a los resultados para devolver la puntuación del documento y el campo scoreDetails a los resultados para devolver un desglose detallado de la puntuación del documento.

1db.companies.aggregate({
2 "$search": {
3 "embeddedDocument": {
4 "path": "products",
5 "operator": {
6 "wildcard": {
7 "path": "products.name",
8 "query": "*Basic",
9 "allowAnalyzedField": true
10 }
11 },
12 "score": {
13 "embedded": {
14 "aggregate": "sum"
15 }
16 }
17 },
18 "scoreDetails": true
19 }
20},
21{
22 "$limit": 3
23},
24{
25 "$project": {
26 "_id": 0,
27 "name": 1,
28 "products.name": 1,
29 "score": { "$meta": "searchScore" },
30 "scoreDetails": { "$meta": "searchScoreDetails" }
31 }
32})
1[
2 {
3 name: 'Plaxo',
4 products: [
5 { name: 'Plaxo Basic' },
6 { name: 'Plaxo Pulse' },
7 { name: 'Plaxo Personal Assistant' }
8 ],
9 score: 1,
10 scoreDetails: {
11 value: 1,
12 description: 'Score based on 1 child docs in range from 27 to 29, best match:',
13 details: [
14 {
15 value: 1,
16 description: '$embedded:8/products/$type:string/products.name:*Basic',
17 details: []
18 }
19 ]
20 }
21 },
22 {
23 name: 'The Game Creators',
24 products: [
25 { name: 'Dark Basic Professional' },
26 { name: 'FPS Creator' },
27 { name: 'FPS Creator X10' }
28 ],
29 score: 1,
30 scoreDetails: {
31 value: 1,
32 description: 'Score based on 1 child docs in range from 7474 to 7476, best match:',
33 details: [
34 {
35 value: 1,
36 description: '$embedded:8/products/$type:string/products.name:*basic',
37 details: []
38 }
39 ]
40 }
41 },
42 {
43 name: 'Load Impact',
44 products: [
45 { name: 'Load Impact LIGHT' },
46 { name: 'Load Impact BASIC' },
47 { name: 'Load Impact PROFESSIONAL' },
48 { name: 'Load Impact ADVANCED' }
49 ],
50 score: 1,
51 scoreDetails: {
52 value: 1,
53 description: 'Score based on 1 child docs in range from 11545 to 11548, best match:',
54 details: [
55 {
56 value: 1,
57 description: '$embedded:8/products/$type:string/products.name:*basic',
58 details: []
59 }
60 ]
61 }
62 }
63]

Nota

Para las puntuaciones basadas en documentos secundarios dentro del rango, los números dentro del rango representan los ID de los documentos principal y secundario indexados por Lucene internamente. El description en los documentos secundarios (en las líneas 16, 36 y 57) muestra una representación interna de una ruta.

Los siguientes ejemplos demuestran cómo recuperar un desglose de la puntuación usando la opción $search scoreDetails para los documentos en los resultados de las queries ejemplo de expresión funcional contra la colección sample_mflix.movies.

1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "path": "title",
5 "query": "men",
6 "score": {
7 "function":{
8 "multiply":[
9 {
10 "path": {
11 "value": "imdb.rating",
12 "undefined": 2
13 }
14 },
15 {
16 "score": "relevance"
17 }
18 ]
19 }
20 }
21 },
22 "scoreDetails": true
23 }
24},
25{
26 $limit: 5
27},
28{
29 $project: {
30 "_id": 0,
31 "title": 1,
32 "score": { "$meta": "searchScore" },
33 "scoreDetails": {"$meta": "searchScoreDetails"}
34 }
35}])
[
{
title: 'Men...',
score: 23.431293487548828,
scoreDetails: {
value: 23.431293487548828,
description: 'FunctionScoreQuery($type:string/title:men, scored by (imdb.rating * scores)) [BM25Similarity], result of:',
details: [
{
value: 23.431293487548828,
description: '(imdb.rating * scores)',
details: []
}
]
}
},
{
title: '12 Angry Men',
score: 22.080968856811523,
scoreDetails: {
value: 22.080968856811523,
description: 'FunctionScoreQuery($type:string/title:men, scored by (imdb.rating * scores)) [BM25Similarity], result of:',
details: [
{
value: 22.080968856811523,
description: '(imdb.rating * scores)',
details: []
}
]
}
},
{
title: 'X-Men',
score: 21.34803581237793,
scoreDetails: {
value: 21.34803581237793,
description: 'FunctionScoreQuery($type:string/title:men, scored by (imdb.rating * scores)) [BM25Similarity], result of:',
details: [
{
value: 21.34803581237793,
description: '(imdb.rating * scores)',
details: []
}
]
}
},
{
title: 'X-Men',
score: 21.34803581237793,
scoreDetails: {
value: 21.34803581237793,
description: 'FunctionScoreQuery($type:string/title:men, scored by (imdb.rating * scores)) [BM25Similarity], result of:',
details: [
{
value: 21.34803581237793,
description: '(imdb.rating * scores)',
details: []
}
]
}
},
{
title: 'Matchstick Men',
score: 21.05954933166504,
scoreDetails: {
value: 21.05954933166504,
description: 'FunctionScoreQuery($type:string/title:men, scored by (imdb.rating * scores)) [BM25Similarity], result of:',
details: [
{
value: 21.05954933166504,
description: '(imdb.rating * scores)',
details: []
}
]
}
}
]
1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "men",
7 "score": {
8 "function":{
9 "constant": 3
10 }
11 }
12 },
13 "scoreDetails": true
14 }
15 },
16 {
17 $limit: 5
18 },
19 {
20 $project: {
21 "_id": 0,
22 "title": 1,
23 "score": { "$meta": "searchScore" },
24 "scoreDetails": {"$meta": "searchScoreDetails"}
25 }
26 }
27])
[
{
title: 'Men Without Women',
score: 3,
scoreDetails: {
value: 3,
description: 'FunctionScoreQuery($type:string/title:men, scored by constant(3.0)) [BM25Similarity], result of:',
details: [ { value: 3, description: 'constant(3.0)', details: [] } ]
}
},
{
title: 'One Hundred Men and a Girl',
score: 3,
scoreDetails: {
value: 3,
description: 'FunctionScoreQuery($type:string/title:men, scored by constant(3.0)) [BM25Similarity], result of:',
details: [ { value: 3, description: 'constant(3.0)', details: [] } ]
}
},
{
title: 'Of Mice and Men',
score: 3,
scoreDetails: {
value: 3,
description: 'FunctionScoreQuery($type:string/title:men, scored by constant(3.0)) [BM25Similarity], result of:',
details: [ { value: 3, description: 'constant(3.0)', details: [] } ]
}
},
{
title: "All the King's Men",
score: 3,
scoreDetails: {
value: 3,
description: 'FunctionScoreQuery($type:string/title:men, scored by constant(3.0)) [BM25Similarity], result of:',
details: [ { value: 3, description: 'constant(3.0)', details: [] } ]
}
},
{
title: 'The Men',
score: 3,
scoreDetails: {
value: 3,
description: 'FunctionScoreQuery($type:string/title:men, scored by constant(3.0)) [BM25Similarity], result of:',
details: [ { value: 3, description: 'constant(3.0)', details: [] } ]
}
}
]
1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "shop",
7 "score": {
8 "function":{
9 "gauss": {
10 "path": {
11 "value": "imdb.rating",
12 "undefined": 4.6
13 },
14 "origin": 9.5,
15 "scale": 5,
16 "offset": 0,
17 "decay": 0.5
18 }
19 }
20 }
21 },
22 "scoreDetails": true
23 }
24 },
25 {
26 "$limit": 10
27 },
28 {
29 "$project": {
30 "_id": 0,
31 "title": 1,
32 "score": { "$meta": "searchScore" },
33 "scoreDetails": {"$meta": "searchScoreDetails"}
34 }
35 }
36])
[
{
title: 'The Shop Around the Corner',
score: 0.9471074342727661,
scoreDetails: {
value: 0.9471074342727661,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.9471074342727661,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'Exit Through the Gift Shop',
score: 0.9471074342727661,
scoreDetails: {
value: 0.9471074342727661,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.9471074342727661,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'The Shop on Main Street',
score: 0.9395227432250977,
scoreDetails: {
value: 0.9395227432250977,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.9395227432250977,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'Chop Shop',
score: 0.8849083781242371,
scoreDetails: {
value: 0.8849083781242371,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.8849083781242371,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'Little Shop of Horrors',
score: 0.8290896415710449,
scoreDetails: {
value: 0.8290896415710449,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.8290896415710449,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'The Suicide Shop',
score: 0.7257778644561768,
scoreDetails: {
value: 0.7257778644561768,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.7257778644561768,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'A Woman, a Gun and a Noodle Shop',
score: 0.6559237241744995,
scoreDetails: {
value: 0.6559237241744995,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.6559237241744995,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
},
{
title: 'Beauty Shop',
score: 0.6274620294570923,
scoreDetails: {
value: 0.6274620294570923,
description: 'FunctionScoreQuery($type:string/title:shop, scored by exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))) [BM25Similarity], result of:',
details: [
{
value: 0.6274620294570923,
description: 'exp((max(0, |imdb.rating - 9.5| - 0.0)^2) / 2 * (5.0^2 / 2 * ln(0.5)))',
details: []
}
]
}
}
]
1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "path": "title",
5 "query": "men",
6 "score": {
7 "function":{
8 "path": {
9 "value": "imdb.rating",
10 "undefined": 4.6
11 }
12 }
13 }
14 },
15 "scoreDetails": true
16 }
17},
18{
19 $limit: 5
20},
21{
22 $project: {
23 "_id": 0,
24 "title": 1,
25 "score": { "$meta": "searchScore" },
26 "scoreDetails": {"$meta": "searchScoreDetails"}
27 }
28}])
[
{
title: '12 Angry Men',
score: 8.899999618530273,
scoreDetails: {
value: 8.899999618530273,
description: 'FunctionScoreQuery($type:string/title:men, scored by imdb.rating) [BM25Similarity], result of:',
details: [
{
value: 8.899999618530273,
description: 'imdb.rating',
details: []
}
]
}
},
{
title: 'The Men Who Built America',
score: 8.600000381469727,
scoreDetails: {
value: 8.600000381469727,
description: 'FunctionScoreQuery($type:string/title:men, scored by imdb.rating) [BM25Similarity], result of:',
details: [
{
value: 8.600000381469727,
description: 'imdb.rating',
details: []
}
]
}
},
{
title: 'No Country for Old Men',
score: 8.100000381469727,
scoreDetails: {
value: 8.100000381469727,
description: 'FunctionScoreQuery($type:string/title:men, scored by imdb.rating) [BM25Similarity], result of:',
details: [
{
value: 8.100000381469727,
description: 'imdb.rating',
details: []
}
]
}
},
{
title: 'X-Men: Days of Future Past',
score: 8.100000381469727,
scoreDetails: {
value: 8.100000381469727,
description: 'FunctionScoreQuery($type:string/title:men, scored by imdb.rating) [BM25Similarity], result of:',
details: [
{
value: 8.100000381469727,
description: 'imdb.rating',
details: []
}
]
}
},
{
title: 'The Best of Men',
score: 8.100000381469727,
scoreDetails: {
value: 8.100000381469727,
description: 'FunctionScoreQuery($type:string/title:men, scored by imdb.rating) [BM25Similarity], result of:',
details: [
{
value: 8.100000381469727,
description: 'imdb.rating',
details: []
}
]
}
}
]
1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "path": "title",
5 "query": "men",
6 "score": {
7 "function":{
8 "score": "relevance"
9 }
10 }
11 },
12 "scoreDetails": true
13 }
14},
15{
16 $limit: 5
17},
18{
19 $project: {
20 "_id": 0,
21 "title": 1,
22 "score": { "$meta": "searchScore" },
23 "scoreDetails": {"$meta": "searchScoreDetails"}
24 }
25}])
[
{
title: 'Men...',
score: 3.4457783699035645,
scoreDetails: {
value: 3.4457783699035645,
description: 'FunctionScoreQuery($type:string/title:men, scored by scores) [BM25Similarity], result of:',
details: [
{
value: 3.4457783699035645,
description: 'weight($type:string/title:men in 4705) [BM25Similarity], result of:',
details: [
{
value: 3.4457783699035645,
description: 'score(freq=1.0), computed as boost * idf * tf from:',
details: [
{
value: 5.5606818199157715,
description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
details: [
{
value: 90,
description: 'n, number of documents containing term',
details: []
},
{
value: 23529,
description: 'N, total number of documents with field',
details: []
}
]
},
{
value: 0.6196683645248413,
description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
details: [
{
value: 1,
description: 'freq, occurrences of term within document',
details: []
},
{
value: 1.2000000476837158,
description: 'k1, term saturation parameter',
details: []
},
{
value: 0.75,
description: 'b, length normalization parameter',
details: []
},
{
value: 1,
description: 'dl, length of field',
details: []
},
{
value: 2.868375301361084,
description: 'avgdl, average length of field',
details: []
}
]
}
]
}
]
}
]
}
},
{
title: 'The Men',
score: 2.8848698139190674,
scoreDetails: {
value: 2.8848698139190674,
description: 'FunctionScoreQuery($type:string/title:men, scored by scores) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'weight($type:string/title:men in 870) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'score(freq=1.0), computed as boost * idf * tf from:',
details: [
{
value: 5.5606818199157715,
description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
details: [
{
value: 90,
description: 'n, number of documents containing term',
details: []
},
{
value: 23529,
description: 'N, total number of documents with field',
details: []
}
]
},
{
value: 0.5187978744506836,
description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
details: [
{
value: 1,
description: 'freq, occurrences of term within document',
details: []
},
{
value: 1.2000000476837158,
description: 'k1, term saturation parameter',
details: []
},
{
value: 0.75,
description: 'b, length normalization parameter',
details: []
},
{
value: 2,
description: 'dl, length of field',
details: []
},
{
value: 2.868375301361084,
description: 'avgdl, average length of field',
details: []
}
]
}
]
}
]
}
]
}
},
{
title: 'Simple Men',
score: 2.8848698139190674,
scoreDetails: {
value: 2.8848698139190674,
description: 'FunctionScoreQuery($type:string/title:men, scored by scores) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'weight($type:string/title:men in 6371) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'score(freq=1.0), computed as boost * idf * tf from:',
details: [
{
value: 5.5606818199157715,
description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
details: [
{
value: 90,
description: 'n, number of documents containing term',
details: []
},
{
value: 23529,
description: 'N, total number of documents with field',
details: []
}
]
},
{
value: 0.5187978744506836,
description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
details: [
{
value: 1,
description: 'freq, occurrences of term within document',
details: []
},
{
value: 1.2000000476837158,
description: 'k1, term saturation parameter',
details: []
},
{
value: 0.75,
description: 'b, length normalization parameter',
details: []
},
{
value: 2,
description: 'dl, length of field',
details: []
},
{
value: 2.868375301361084,
description: 'avgdl, average length of field',
details: []
}
]
}
]
}
]
}
]
}
},
{
title: 'X-Men',
score: 2.8848698139190674,
scoreDetails: {
value: 2.8848698139190674,
description: 'FunctionScoreQuery($type:string/title:men, scored by scores) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'weight($type:string/title:men in 8368) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'score(freq=1.0), computed as boost * idf * tf from:',
details: [
{
value: 5.5606818199157715,
description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
details: [
{
value: 90,
description: 'n, number of documents containing term',
details: []
},
{
value: 23529,
description: 'N, total number of documents with field',
details: []
}
]
},
{
value: 0.5187978744506836,
description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
details: [
{
value: 1,
description: 'freq, occurrences of term within document',
details: []
},
{
value: 1.2000000476837158,
description: 'k1, term saturation parameter',
details: []
},
{
value: 0.75,
description: 'b, length normalization parameter',
details: []
},
{
value: 2,
description: 'dl, length of field',
details: []
},
{
value: 2.868375301361084,
description: 'avgdl, average length of field',
details: []
}
]
}
]
}
]
}
]
}
},
{
title: 'Mystery Men',
score: 2.8848698139190674,
scoreDetails: {
value: 2.8848698139190674,
description: 'FunctionScoreQuery($type:string/title:men, scored by scores) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'weight($type:string/title:men in 8601) [BM25Similarity], result of:',
details: [
{
value: 2.8848698139190674,
description: 'score(freq=1.0), computed as boost * idf * tf from:',
details: [
{
value: 5.5606818199157715,
description: 'idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:',
details: [
{
value: 90,
description: 'n, number of documents containing term',
details: []
},
{
value: 23529,
description: 'N, total number of documents with field',
details: []
}
]
},
{
value: 0.5187978744506836,
description: 'tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:',
details: [
{
value: 1,
description: 'freq, occurrences of term within document',
details: []
},
{
value: 1.2000000476837158,
description: 'k1, term saturation parameter',
details: []
},
{
value: 0.75,
description: 'b, length normalization parameter',
details: []
},
{
value: 2,
description: 'dl, length of field',
details: []
},
{
value: 2.868375301361084,
description: 'avgdl, average length of field',
details: []
}
]
}
]
}
]
}
]
}
}
]
1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "path": "title",
5 "query": "men",
6 "score": {
7 "function": {
8 "log": {
9 "path": {
10 "value": "imdb.rating",
11 "undefined": 10
12 }
13 }
14 }
15 }
16 },
17 "scoreDetails": true
18 }
19},
20{
21 $limit: 5
22},
23{
24 $project: {
25 "_id": 0,
26 "title": 1,
27 "score": { "$meta": "searchScore" },
28 "scoreDetails": {"$meta": "searchScoreDetails"}
29 }
30}])
[
{
title: '12 Angry Men',
score: 0.9493899941444397,
scoreDetails: {
value: 0.9493899941444397,
description: 'FunctionScoreQuery($type:string/title:men, scored by log(imdb.rating)) [BM25Similarity], result of:',
details: [
{
value: 0.9493899941444397,
description: 'log(imdb.rating)',
details: []
}
]
}
},
{
title: 'The Men Who Built America',
score: 0.9344984292984009,
scoreDetails: {
value: 0.9344984292984009,
description: 'FunctionScoreQuery($type:string/title:men, scored by log(imdb.rating)) [BM25Similarity], result of:',
details: [
{
value: 0.9344984292984009,
description: 'log(imdb.rating)',
details: []
}
]
}
},
{
title: 'No Country for Old Men',
score: 0.9084849953651428,
scoreDetails: {
value: 0.9084849953651428,
description: 'FunctionScoreQuery($type:string/title:men, scored by log(imdb.rating)) [BM25Similarity], result of:',
details: [
{
value: 0.9084849953651428,
description: 'log(imdb.rating)',
details: []
}
]
}
},
{
title: 'X-Men: Days of Future Past',
score: 0.9084849953651428,
scoreDetails: {
value: 0.9084849953651428,
description: 'FunctionScoreQuery($type:string/title:men, scored by log(imdb.rating)) [BM25Similarity], result of:',
details: [
{
value: 0.9084849953651428,
description: 'log(imdb.rating)',
details: []
}
]
}
},
{
title: 'The Best of Men',
score: 0.9084849953651428,
scoreDetails: {
value: 0.9084849953651428,
description: 'FunctionScoreQuery($type:string/title:men, scored by log(imdb.rating)) [BM25Similarity], result of:',
details: [
{
value: 0.9084849953651428,
description: 'log(imdb.rating)',
details: []
}
]
}
}
]

Volver

Opciones de puntaje

En esta página