2012-03-28 21 views
8

Estamos usando solr para construir una aplicación de comercio electrónico, y tenemos productos que se agrupan por subcategoría dentro de una categoría principal. Utilizamos un orden dinámico para determinar dónde pertenece el producto dentro de una subcategoría y el mismo producto puede aparecer en más de una subcategoría. Estamos rastreando el orden de clasificación usando el campo dinámico y cada producto tiene múltiples órdenes de clasificación según la subcategoría a la que pertenezca. Necesitamos agrupar estos productos en subcategoría y ordenarlos usando un orden de clasificación apropiado. Un ejemplo a continuación, cualquier ayuda sería muy apreciada y estamos tratando de lograrlo mediante una sola consulta.Ordene diferentes grupos utilizando diferentes órdenes de clasificación en solr

  • Jeans
    • Bootcut
      • producto1
      • Producto2
    • flaco
      • producto1
      • Product3

Productos han siguiente orden de clasificación

  • producto1-bootcutSortOrder-10 skinnySortOrder-1
  • Producto2-bootcutSortOrder-3
  • Product3-skinnySortOrder-5

Resultado esperado teniendo en cuenta el orden de clasificación ascendente en cada grupo

  • Bootcut
    • Producto2
    • producto1
  • flaco
    • producto1
    • Product3

Queremos Solr para ordenar cada grupo individual con su orden de clasificación - group.query = {subcategoría: Bootcut} & group.sort = bootcutSortOrder asc & group.query = {subcategoría: flaco} & group.sort = skinnySortOrder asc

Lo que hace solr es que ordena en la combinación de bootCutSortOrder asc, skinnySortOrder asc.

¿Es posible en solr ordenar cada sección del grupo con su propio orden de clasificación?

estamos utilizando la última versión de solr y también estamos bien con solr 4.

+2

De este comentario en la fuente SOLR (actual) - https://github.com/apache/lucene- solr/blob/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java # L295 - y el código que lo rodea, parece que el hecho de que una sola clasificación se aplica a todos los grupos es una limitación reconocida eso aún no ha sido abordado. Si tus grupos incluyen todos los resultados (no dependes de los géneros para devolver el N superior correcto), tal vez podrías obtener/calcular los otros valores de clasificación a través de un pseudo-campo, luego volver a ordenarlos antes de mostrarlos. Entonces al menos solo sería una consulta, devolviendo todos los datos que necesita. – gojomo

Respuesta

Cuestiones relacionadas