Red de conocimientos sobre prescripción popular - Remedios caseros - es(2)-Consulta compleja de múltiples condiciones (consulta bool y consulta de puntuación constante)

es(2)-Consulta compleja de múltiples condiciones (consulta bool y consulta de puntuación constante)

Se reciben los siguientes parámetros:

Entre los parámetros anteriores, la palabra clave bool aún se puede utilizar en la consulta.

Reglas de cálculo de la puntuación de relevancia:

Cada subconsulta calcula de forma independiente la puntuación de relevancia del documento. Una vez calculadas sus puntuaciones, la consulta bool combina las puntuaciones y devuelve una puntuación única que representa toda la operación bool.

Ver el caso de prueba:

Como se puede ver en la figura anterior, el filtro es solo una condición de filtrado y no calcula _score, mientras que solo debería calcular _score y no filtrar.

El filtro no necesita calcular la puntuación relevante ni ordenarlo por puntuación relevante. También almacena automáticamente en caché los datos de los filtros más utilizados. El rendimiento es bueno.

La operación de consulta es todo lo contrario: calculará la puntuación de relevancia y la ordenará según los resultados, por lo que los resultados no se pueden almacenar en caché y el rendimiento no es bueno.

Por lo tanto, en algunos escenarios de consulta que no requieren puntuaciones de correlación, intente utilizar FilterContext para optimizar el rendimiento de la consulta.

Constant_score: significado original (puntuación constante), que puede aplicar una constante sin cambios a todos los documentos coincidentes. Por lo general, se usa cuando solo es necesario ejecutar un filtro y no es necesario ejecutar otras consultas (como consultas de puntuación). Esta consulta $term se coloca en Constant_score y se convierte en un filtro sin puntuación. Este método se puede utilizar en consultas bool con solo filtros.

Preparación de datos:

La esencia es equivalente a:

Es solo que solo hay operaciones de filtro en bool, por lo que se usa constante_score en lugar de operaciones de filtro. y se establece una constante para cada subconsulta.

Las reglas de cálculo de _score también se pueden ver en los resultados anteriores: cada subconsulta calcula de forma independiente la puntuación de relevancia del doc. Una vez que se calculan sus puntuaciones, la consulta bool combina estas puntuaciones y devuelve una puntuación representativa de. toda la operación bool.

A diferencia de usar Constant_score, debería participar en el cálculo de la puntuación. El impulso que establecemos es solo la proporción de peso de la puntuación participante. No es un valor decimal específico. Por eso las fracciones calculadas de esta manera tienen decimales.