Docs Menu
Docs Home
/ /

Devolver los detalles de la puntuación

Puedes utilizar el scoreDetails opción booleana en su $search Etapa para obtener un desglose detallado de la puntuación de cada documento en los resultados de la consulta.

Al configurar scoreDetails: true en la $search etapa, MongoDB Search devuelve información detallada de la puntuación de cada documento coincidente. Esta información explica por qué un documento coincidió con la consulta y recibió su puntuación de relevancia en los resultados de la búsqueda.

De forma predeterminada, la puntuación se basa en la 25 Fórmula bm:

  • Frecuencia del término: con qué frecuencia aparece un término de búsqueda 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: la longitud del campo que coincide con la consulta

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, debe utilizar la expresión $meta en la $project etapa.

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

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

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

  • 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 $project, el scoreDetails campo toma la expresión $meta, que requiere el siguiente valor:

searchScoreDetails

Devuelve un desglose detallado de la puntuación de 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 de puntuación varía según el operador utilizado en la consulta. Por ejemplo, MongoDB Search utiliza una función de decaimiento por distancia para calcular la puntuación del operador "cerca".

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

matriz de objetos

Desglose de la puntuación de cada coincidencia del documento según el subconjunto de la fórmula de puntuación. El valor es una matriz de objetos de detalles de puntuación, con 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 utilizar los algoritmos stableTfl o boolean cuando necesite resultados consistentes en múltiples consultas, especialmente si se cumplen ambas condiciones siguientes:

  • Su aplicación ordena los resultados por searchScore y los pagina, lo que se basa en una puntuación determinista 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.

Puede elegir entre los siguientes algoritmos de similitud cuando especifica la propiedad similarity.type en su definición de índice de búsqueda de MongoDB:

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

  • Frecuencia del término: con qué frecuencia aparece un término de búsqueda 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: la longitud del campo que coincide con la consulta

bm25 calcula la puntuación como boost * idf * tf, donde cada factor se define de la siguiente manera:

Factor
Descripción

boost

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

idf

Frecuencia inversa del documento de la consulta. MongoDB Search calcula la frecuencia mediante la siguiente fórmula:

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

dónde:

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

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

tf

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

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

dónde:

  • freq es el número de ocurrencias 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 razón de dl a avgdl. Si b aumenta, se amplifican los efectos de la razón de dl a avgdl.

  • dl es la longitud del campo en el documento.

  • avgdl es la longitud promedio 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 la puntuación como boost * tr * tf, donde cada factor se define de la siguiente manera:

Factor
Descripción

boost

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

tf

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

tf = freq / (freq + k1)

dónde:

  • freq es la frecuencia del término de consulta 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 del término mediante la siguiente fórmula:

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

dónde:

  • p Es la probabilidad de que el término de consulta aparezca en el documento según su longitud. Esto se basa en la ley de Zipf, que establece que las palabras más largas aparecen con menos frecuencia. Para determinar la rareza de un término, MongoDB utiliza una función decreciente basada en su longitud.

p

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

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

dónde:

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

  • c Es la constante de decrecimiento especificada internamente. Controla la velocidad con la que p disminuye a medida que aumenta la longitud 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 disminución de la 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 punto de referencia para que la puntuación sea igual a 0.5 si la distancia entre fieldValue y origin es igual a él. Esto define la velocidad con la que la puntuación disminuye a medida que aumenta la distancia entre fieldValue y origin. Para una distancia dada 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 mediante la siguiente fórmula:

abs(fieldValue - origin)

dónde:

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

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

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

Tip

Para ver los detalles de la puntuación de forma recursiva en las matrices de objetos, configure los ajustes en ejecutando lo mongosh siguiente:

config.set('inspectDepth', Infinity)

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

El siguiente ejemplo utiliza el operador de texto para consultar el title campo de la sample_mflix.movies colección en busca del autumn término. La consulta especifica la scoreDetails opción en la $search etapa para obtener un desglose detallado de la puntuación 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 el campo title.

  • Agregue 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 la consulta mediante la opción del operador de score.boost consulta. Puede establecer boost como un número positivo o el valor de un campo numérico en los documentos. Para obtener más información, consulte boost.

idf

Frecuencia inversa del documento de la consulta. MongoDB Search calcula la frecuencia mediante la siguiente fórmula:

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

dónde:

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

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

tf

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

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

dónde:

  • freq es el número de ocurrencias 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 razón de dl a avgdl. Si b aumenta, se amplifican los efectos de la razón de dl a avgdl.

  • dl es la longitud del campo en el documento.

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

El siguiente ejemplo utiliza el operador "near" para consultar el campo de la released colección en busca sample_mflix.movies de películas estrenadas cerca del de enero 01 2010de. 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.

  • Incluya sólo los campos title y released.

  • Agregue 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 punto de referencia para que la puntuación sea igual a 0.5 si la distancia entre fieldValue y origin es igual a él. Esto define la velocidad con la que la puntuación disminuye a medida que aumenta la distancia entre fieldValue y origin. Para una distancia dada 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 mediante la siguiente fórmula:

abs(fieldValue - origin)

dónde:

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

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

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 buscar 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.

  • Incluya solo los campos title, released y genres.

  • Agregue 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

Los # clause en los resultados de las 15 líneas, 56 y 97 representan la filter cláusula de consulta del operador compuesto, que no contribuye a la puntuación del documento.

El siguiente ejemplo utiliza el operador embeddedDocument para consultar el products.name campo de la colección en busca de sample_training.companies productos que contengan el término Basic precedido por cualquier otro carácter. La consulta especifica dentro del embeddedDocument operador que la puntuación devuelta debe ser la suma de todos los documentos incrustados coincidentes. La consulta también 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 el campo products.name.

  • Agregue 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 utilizando la $search scoreDetails opción para los documentos en los resultados de las consultas de ejemplo de expresión de función contra la sample_mflix.movies colección.

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