2010-09-13 26 views
10

En Solr/Lucene, ¿es posible ordenar primero por relevancia y luego por un segundo atributo?Solr/Lucene ¿es posible ordenar primero por relevancia y luego por un segundo atributo?

Por lo que puedo decir si configuré un parámetro de ordenamiento, se anula por completo la relevancia y se ordena según el (los) parámetro (s) de orden.

¿Cómo puedo obtener resultados ordenados primero por relevancia, y luego en el caso de dos entradas con exactamente la misma relevancia, dando el visto bueno al elemento que, digamos, viene primero alfabéticamente.

Si hace alguna diferencia, estoy usando Solr a través de Sunspot en Ruby on Rails.

+0

Me pregunto si esto funcionaría bien, desde relevancia calificar variaría considerablemente. Me pregunto si Solr puede segmentar los resultados de relevancia en muchos niveles, y luego ordenarlos por la segunda columna. – lulalala

Respuesta

8

¡Resolvió mi propio problema!

Se puede pasar la palabra clave score para ordenar el resultado por relevancia.

Así que en términos rieles de manchas solares:

Article.search do 
    keywords params[:query] 
    order_by :score, :desc 
    order_by :name, :asc 
end 
+1

Esto puede ser un retraso, pero probé la misma solución y no funciona para mí. Cada vez que uso puntaje para clasificar, usa solo la segunda opción de clasificación. Si solo uso puntaje, funciona bien. Si combino otros dos criterios de clasificación, eso también funciona. ¿hay algo más que hacer? ¿Conoce los problemas de la versión de gemas? Apreciar ayuda –

Cuestiones relacionadas