2011-06-20 21 views
5

Me gustaría aumentar mi consulta por el número de vistas del artículo; Me gustaría utilizar algo como view_count/max_view_count para este propósito, para poder medir cómo el recuento de vistas del artículo se relaciona con el recuento de vistas más grande en el índice. Sé how to boost the results with a function query, pero ¿cómo puedo obtener fácilmente el conteo máximo de visitas? Si alguien pudiera dar un ejemplo, sería muy útil ...Obteniendo el valor máximo del campo en solr.

Respuesta

9

No hay ninguna función de agregado en solr en la forma en que podría estar pensando en ellos desde SQL. La forma más sencilla de hacerlo es tener un proceso de dos pasos:

  • obtener el valor máximo a través de una consulta adecuada con una especie
  • lo uso con la función max()

Así , algo así como:

q=*:*&sort=view_count desc&rows=1&fl=view_count 

... para obtener un elemento con el view_count máximo, que se graba en algún lugar, y luego

q=whatever&bq=div(view_count, max(the_max_view_count, 1)) 

Tenga en cuenta que esa función max() no está haciendo un máximo agregado; simplemente obteniendo el máximo del recuento máximo de visitas que pasa o 1 (para evitar errores de división por cero).

Si tiene un campo con múltiples valores (que no puede ordenar) también puede usar el StatsComponent para obtener el máximo. De cualquier manera, es probable que desee hacer esto una vez, no para cada consulta (por ejemplo, todas las noches a la medianoche o lo que sea una vez que se establece el conjunto de datos).

+0

Bien, gracias por su respuesta ... Además: creo que es bastante difícil encontrar una buena documentación sobre esto, en apache solo aparece el enlace de arriba y un tema sobre consultas funcionales ... ¿Probablemente recomiende algo? ¿más? –

5

Se pueden añadir simplemente: & estadísticas = true & stats.field = view_count Usted verá una pequeña estadísticas sobre ese campo especificado. Más documentación here

+0

¿Podemos usar el valor máximo y mínimo que obtenemos de las estadísticas en la consulta de funciones? – Ankita

Cuestiones relacionadas