You can extend IndexSearchContext to have methods that accept a Lucene.Net.Search.Sort object. One of my team members figured this out, and it's pretty clean.
public class SortableIndexSearchContext : IndexSearchContext { public SortableIndexSearchContext(ILuceneIndex index) { Initialize(index, true); } public SearchHits Search(Query query, Sort sort) { return Search(query, SearchContext.Empty, sort); } public SearchHits Search(PreparedQuery query, Sort sort) { return new SearchHits(Searcher.Search(query.Query, sort)); } public SearchHits Search(QueryBase query, Sort sort) { return Search(query, SearchContext.Empty, sort); } public SearchHits Search(string query, Sort sort) { return Search(query, SearchContext.Empty, sort); } public SearchHits Search(Query query, ISearchContext context, Sort sort) { return Search(Prepare(query, context), sort); } public SearchHits Search(QueryBase query, ISearchContext context, Sort sort) { return this.Search(Prepare(Translate(query), context), sort); } public SearchHits Search(string query, ISearchContext context, Sort sort) { return this.Search(Parse(query, context), sort); } }
source share