I have the following code to return a List of Items in a Lucene index:

```cs
public List<Item> GetSearchResults(ISearchIndex index, string searchTerm = "")
{
    var results = new List<Item>();

    using (var searchContext = index.CreateSearchContext())
    {
        if (string.IsNullOrWhiteSpace(searchTerm))
        {
            results = searchContext.GetQueryable<SearchResultItem>().Select(n => n.GetItem()).ToList();
        }
        else
        {
            searchTerm = searchTerm.Trim().ToLower();
            results = searchContext.GetQueryable<SearchResultItem>()
                .Where(n => n.Content.ToLower().Contains(searchTerm) 
                    || n.Url.ToLower().Contains(searchTerm) 
                    || n.Name.ToLower().Contains(searchTerm) 
                    || n.Fields["tags"].ToString().ToLower().Contains(searchTerm))
                .Select(n => n.GetItem())
                .ToList();
        }
    }

    return results;
}

```

If *searchTerm* is not null or empty I would like to sort by a weighting based on the number of occurrences of the search term. Is this at all possible?