Consider researching Solr functions. My experience has used a hard-coded field name with solr field extension. Perhaps you can figure out how to make this more dynamic. First you can start by adding a new field to your `CustomSearchResultItem` class. <!-- language:lang-csharp --> [IndexField("_val_")] public string _val_ { get; set; } Second you can write a query using the new field. <!-- language:lang-csharp --> var query = PredicateBuilder.True(); query = query.And(x => x._val_.Equals("recip(abs(ms(NOW/HOUR,startdate_tdt)),3.16e-11,4,.4)")); What this query _should_ do is rank the results higher when the date is close to today, and then rank lower the further away it is.