Pregunta

¿Cómo es el ConstantScoreRangeQuery mejor que el antiguo RangeQuery ?

¿En qué caso debe usar todavía usar RangeQuery?

¿Fue útil?

Solución

De acuerdo con la documentación de RangeQuery en su enlace, Un ConstantScoreRangeQuery:

  • es más rápido que RangeQuery.
  • no causa una excepción BooleanQuery.TooManyClauses si el rango de valores es grande.
  • no influye en la puntuación basada en la escasez de términos individuales que pueden coincidir.

Suponga que está interesado en que los términos más escasos se puntúen más alto (digamos que está buscando en un rango de horas, pero desea que las horas más escasas se puntúen más alto; tal vez esté buscando un & "; lento &" ; período del día para ejecutar un proceso de copia de seguridad). En ese caso, la RangeQuery anterior parece preferible.

La próxima generación será la TrieRangeQuery , actualmente en la sección contrib. Probablemente formará parte del núcleo Lucene 2.9. Proporciona consultas de rango más rápidas que los otros dos métodos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top