Thanks Erik for your quick feedback

When Products are assigned to a category or Sub-Category then they can be
in any order and price type can be regular or markdown.
So, reg and markdown products are intermingled  as per their assignment but
I want to sort them in such a way that we
ensure that all the products which are on markdown are at the bottom of the
list.

I can use these multiple sorts but I realize that they are costly in terms
of heap used, as they are using FieldCache.

I have an index with 2M docs and docs are pretty big. So, I don't want to
use them unless there is no other option.

I am wondering if I can define a custom function query which can be like
this:


   - check if product is on the markdown
   - if yes then change its sort order field to be the max value in the
   given sub-category, say 999999
   - else, use the sort order of the product in the sub-category

I have been looking at existing function queries but do not have a good
handle on how to make one of my own.

- Another option could be use a custom sort comparator but I am not sure
about the way it works

Any thoughts?


-Saroj




On Sun, Jun 10, 2012 at 5:02 AM, Erick Erickson <erickerick...@gmail.com>wrote:

> Skimming this, I two options come to mind:
>
> 1> Simply apply primary, secondary, etc sorts. Something like
>   &sort=subcategory asc,markdown_or_regular desc,sort_order asc
>
> 2> You could also use grouping to arrange things in groups and sort within
>      those groups. This has the advantage of returning some members
>      of each of the top N groups in the result set, which makes it easier
> to
>      get some of each group rather than having to analyze the whole
> list....
>
> But your example is somewhat contradictory. You say
> "products which are on markdown, are at
> the bottom of the documents list"
>
> But in your examples, products on "markdown" are intermingled....
>
> Best
> Erick
>
> On Sun, Jun 10, 2012 at 3:36 AM, roz dev <rozde...@gmail.com> wrote:
> > Hi All
> >
> >>
> >> I have an index which contains a Catalog of Products and Categories,
> with
> >> Solr 4.0 from trunk
> >>
> >> Data is organized like this:
> >>
> >> Category: Books
> >>
> >> Sub Category: Programming
> >>
> >> Products:
> >>
> >> Product # 1,  Price: Regular Sort Order:1
> >> Product # 2,  Price: Markdown, Sort Order:2
> >> Product # 3   Price: Regular, Sort Order:3
> >> Product # 4   Price: Regular, Sort Order:4
> >> ....
> >> .....
> >> ...
> >> Product # 100   Price: Regular, Sort Order:100
> >>
> >> Sub Category: Fiction
> >>
> >> Products:
> >>
> >> Product # 1,  Price: Markdown, Sort Order:1
> >> Product # 2,  Price: Regular, Sort Order:2
> >> Product # 3   Price: Regular, Sort Order:3
> >> Product # 4   Price: Markdown, Sort Order:4
> >> ....
> >> .....
> >> ...
> >> Product # 70   Price: Regular, Sort Order:70
> >>
> >>
> >> I want to query Solr and sort these products within each of the
> >> sub-category in a such a way that products which are on markdown, are at
> >> the bottom of the documents list and other products
> >> which are on regular price, are sorted as per their sort order in their
> >> sub-category.
> >>
> >> Expected Results are
> >>
> >> Category: Books
> >>
> >> Sub Category: Programming
> >>
> >> Products:
> >>
> >> Product # 1,  Price: Regular Sort Order:1
> >> Product # 2,  Price: Markdown, Sort Order:101
> >> Product # 3   Price: Regular, Sort Order:3
> >> Product # 4   Price: Regular, Sort Order:4
> >> ....
> >> .....
> >> ...
> >> Product # 100   Price: Regular, Sort Order:100
> >>
> >> Sub Category: Fiction
> >>
> >> Products:
> >>
> >> Product # 1,  Price: Markdown, Sort Order:71
> >> Product # 2,  Price: Regular, Sort Order:2
> >> Product # 3   Price: Regular, Sort Order:3
> >> Product # 4   Price: Markdown, Sort Order:71
> >> ....
> >> .....
> >> ...
> >> Product # 70   Price: Regular, Sort Order:70
> >>
> >>
> >> My query is like this:
> >>
> >> q=*:*&fq=category:Books
> >>
> >> What are the options to implement custom sorting and how do I do it?
> >>
> >>
> >>    - Define a Custom Function query?
> >>    - Define a Custom Comparator? Or,
> >>    - Define a Custom Collector?
> >>
> >>
> >> Please let me know the best way to go about it and any pointers to
> >> customize Solr 4.
> >>
> >
> > Thanks
> > Saroj
>

Reply via email to