2012-03-28 45 views
8

Chúng tôi đang sử dụng solr để xây dựng một ứng dụng thương mại điện tử và chúng tôi có các sản phẩm được nhóm theo danh mục phụ trong danh mục gốc. Chúng tôi sử dụng thứ tự sắp xếp động để xác định nơi sản phẩm nằm trong danh mục con và cùng một sản phẩm có thể xuất hiện trong nhiều danh mục phụ. Chúng tôi đang theo dõi thứ tự sắp xếp bằng cách sử dụng trường động và mỗi sản phẩm có nhiều thứ tự sắp xếp tùy thuộc vào số lượng danh mục phụ của nó. Chúng tôi cần nhóm các sản phẩm này vào danh mục con và sắp xếp nó bằng cách sử dụng thứ tự sắp xếp thích hợp. Một ví dụ dưới đây, bất kỳ trợ giúp nào sẽ được đánh giá cao và chúng tôi đang cố gắng hoàn thành nó bằng cách sử dụng truy vấn đơn lẻ.Sắp xếp các nhóm khác nhau bằng cách sử dụng các thứ tự sắp xếp khác nhau trong solr

  • Jeans
    • Bootcut
      • Product1
      • PRODUCT2
    • Skinny
      • Product1
      • Product3

Sản phẩm đã sau thứ tự sắp xếp

  • Product1-bootcutSortOrder-10 skinnySortOrder-1
  • PRODUCT2-bootcutSortOrder-3
  • Product3-skinnySortOrder-5

Kết quả mong đợi xem xét thứ tự sắp xếp tăng dần theo từng nhóm

  • Bootcut
    • PRODUCT2
    • Product1
  • Skinny
    • Product1
    • Product3

Chúng tôi muốn Solr để sắp xếp từng nhóm riêng lẻ với thứ tự sắp xếp của nó - group.query = {tiểu thể loại: Bootcut} & group.sort = bootcutSortOrder asc & group.query = {tiểu thể loại: Skinny} & group.sort = skinnySortOrder asc

Điều gì làm là nó phân loại trên sự kết hợp của bootCutSortOrder asc, ascSortOrder asc.

Có thể trong solr để sắp xếp từng phần của nhóm với thứ tự sắp xếp của riêng nó không?

chúng tôi đang sử dụng phiên bản mới nhất của solr và cũng tốt với solr 4.

+2

Từ nhận xét này trong (hiện hành) nguồn Solr - https://github.com/apache/lucene- solr/blob/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java # L295 - và mã xung quanh, dường như thực tế một loại duy nhất áp dụng cho tất cả các nhóm là giới hạn được thừa nhận vẫn chưa được giải quyết. Nếu nhóm của bạn bao gồm tất cả kết quả (bạn không dựa vào các loại để trả về đầu trang bên phải), có thể bạn có thể nhận/tính các giá trị sắp xếp khác thông qua trường giả, sau đó sắp xếp lại trước khi hiển thị. Sau đó, ít nhất nó chỉ là một truy vấn, trả về tất cả dữ liệu bạn cần. – gojomo

Trả lời

Các vấn đề liên quan