You can configure the sort options for properties and dimensions returned by queries.
Specifying default sorting for results lists
You can specify default sorting for records in results lists through the
sortOption
property of the
resultsListDefaultConfig
bean in
assembler-context.xml
.
The
sortOption
property specifies a default sorting order
for records based on the values of a property common to all the records. The
sort order can be ascending or descending. The default sorting order applies
only to records to which no other type of sorting applies.
For example, the following
sortOption
property specifies that records with a
property named
product.analytics.total_sales
be sorted in ascending
order based on the value of this property in each record:
<property name="sortOption"> <bean class="com.endeca.infront.navigation.model.SortOption"> <property name="label" value="Most Sales" /> <property name="sorts"> <list> <bean class="com.endeca.infront.navigation.model.SortSpec"> <property name="key" value="product.analytics.total_sales" /> <property name="descending" value="false" /> </bean> </list> </property> </bean> </property>
where:
Enabling runtime selection of sort options
You can also configure sort options for customers to select through your web pages at run time.
For example, suppose that you want customers to be able to sort records
on their relevance, or on the value of their
product.price
properties in either ascending or
descending order.
To sort records in these way, your web page can provide a drop down list such as the following:
To enable your application to provide such choices through a drop down
list or other feature of the user interface, you configure
resultsListSortOptions
in
assembler-context.xml
as follows:
<util:list id="resultsListSortOptions" scope="prototype"> <bean class="com.endeca.infront.cartridge.model.SortOptionConfig"> <property name="label" value="Relevance"/> <property name="value" value=""/> </bean> <bean class="com.endeca.infront.cartridge.model.SortOptionConfig"> <property name="label" value="Price (Ascending)"/> <property name="value" value="product.price|0"/> </bean> <bean class="com.endeca.infront.cartridge.model.SortOptionConfig"> <property name="label" value="Price (Descending)"/> <property name="value" value="product.price|1"/> </bean> </util:list>
where:
the
label
property specifies the name of a choice that appears in the drop down listthe
value
property specifies the action taken when the user selects a particular choice. The value of this property consists of a key (the name of a property or dimension) followed by "|" and either 0 (= ascending order) or 1 (= descending order). An empty string signifies that no sorting is associated with the label.