Set Custom Order for Facets coming from Solr

2019-02-23 09:16发布

问题:

I'm using Solr for offering faceted navigation for e-commerce site. However I need to define the custom order for facets, but I didn't find how to do that in Solr.

Any idea how to do this? I'm using Solr Net and latest version of Solr.

Here is an example what I need to do.

Current Facets

Operating System

  • Android (32)
  • Blackberry OS (8)
  • Windows (6)
  • Apple iOS (6)
  • Bada (5)
  • Proprietary (2)

Price

  • 10001 - 20000 (42)
  • 20001 - 25000 (12)
  • 500 - 5000 (11)
  • 5001 - 10000 (8)

Note that it is just an example. And have many other facets. I want to display Price as the first facet, so need to order this facet field as well as facet options like this.

Price

  • 500 - 5000 (11)
  • 5001 - 10000 (8)
  • 10001 - 20000 (42)
  • 20001 - 25000 (12)

Operating System

  • Android (32)
  • Apple iOS (6)
  • Bada (5)
  • Blackberry OS (8)
  • Proprietary (2)
  • Windows (6)

So here is how I need to order it:

  1. Order Facet Field manually by some way so they are displayed on specific order
  2. Order Facets as per the defined order. For OS, I ordered it alphabetically. Or may be for those facets which doesn't have order defined can be order as default based on number of count in result?

Pls advise.

回答1:

You can use facet sort per field to order the different facets respectively.

e.g. f.<field_name>.facet.sort=count|index

Solr only provided two options Count and Index sort. Anything else needs to implemented through Custome solutions or workarounds.



回答2:

You can only sort by predefined criteria.

facet.sort is what you use and it can only be: - count - sort the constraints by count (highest count first) - index - to return the constraints sorted in their index order (lexicographic by indexed term). For terms in the ascii range, this will be alphabetically sorted.

Have a look at this: http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort