Sort
Describes how sort order works in Optimizely Search & Navigation, and how you can modify the default sort order behavior.
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)
Optimizely Search & Navigation supports sorting for numerical types such as int
, double
, DateTime
, and string
.
Important
OrderBy
must contain less than 50 characters.
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)
Sort by geographical distance
The OrderBy
and OrderByDescending
methods have an overload for ordering by geographical distance for fields of type GeoLocation
. See Geo Search.
Updated 7 months ago