2011-01-18 15 views
6

¿Lucene proporciona un medio para impulsar documentos nuevos?Impulsar documentos nuevos con Lucene

Por ejemplo, supongamos que el documento Lucene incluye un campo de fecha. ¿Es posible, sin que el usuario altere su consulta de todos modos, presentar los documentos más recientes con una puntuación más alta?

No quiero recurrir a una solución aproximada de "ordenar por fecha" ya que cancelará por completo el algoritmo de puntuación.

Respuesta

3

Utilice Document.setBoost (valor flotante) al colocar documentos en el índice.

Puede reajustar constantemente el valor en documentos existentes, O tener un valor flotante que se incrementa con la fecha, de modo que solo necesita aplicarlo al momento en que se insertan los documentos.

Por ejemplo, comience con un valor de refuerzo de 0 para documentos del día 1. Cada día, incremente el impulso en 1. Es un valor flotante, que se incrementa por 365 cada año durará mucho tiempo.

Puede que tenga que experimentar con la fuerza del impulso para obtener el efecto que desea.

+0

Gracias por su respuesta. Es muy inteligente en teoría, pero tendré que probarlo a fondo para ver si realmente funciona. De todos modos, es muy inteligente, lo que plantea la pregunta de por qué no está documentado. Uno esperaría encontrarlo en un libro de cocina o algo así ... – yannisf

6

Puede ver a Lucene en acción. En la segunda edición, pg. 187 dan una manera de hacerlo. Básicamente, querrá escribir su propia consulta, que se extiende a CustomScoreQuery, y agrega un impulso.

+0

¡Una buena respuesta también! ¡Gracias por la pista! – yannisf