Loading...
Area: Episerver Search & Navigation
Applies to versions: 12 and higher
Other versions:

Sorting

Recommendations [hide]

This topic describes how sort order works in Episerver Search & Navigation (formerly Episerver Find), and how you can modify the default sort order behavior.

How it works

By default, search results are sorted by relevance. You can change the sort factor using OrderBy, ThenBy, OrderByDescending, or ThenByDescending.

Note: Relevance is calculated by the Lucene search engine. It is based on several factors, such as: the number of hits in the document, and the location of the search terms in the document. To customize how relevance is calculated, see Boosting with filters  and Boosting with weights.

Example:

client.Search<Article>()
    .OrderBy(x => x.PublicationDate)
    .ThenBy(x => x.Author.Name)

Sorting is supported for numerical types such as int, double, DateTime, and string.

Null values and SortMissing

By default, if a document has a null value in a field used to sort search results, it is sorted first when using the OrderBy and ThenBy methods, and last when using the OrderByDescending and ThenByDescending methods. You can change this behavior by supplying a second parameter of the SortMissing enum type.

client.Search<Article>()
    .OrderBy(x => x.PublicationDate, SortMissing.Last)
    .ThenByDescending(x => x.Author.Name, SortMissing.First)

Sorting by geographical distance

The OrderBy and OrderByDescending methods have an overload for ordering by geographical distance for fields of type GeoLocation. For more information, see Geo Search.

Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 31, 2016

Recommendations [hide]