我有一个
的列表IEnumerable<RSPCA.LIB.Models.Search.SearchItem> results =
newList<LIB.Models.Search.SearchItem>();
我的searchItem类有一个名为content的字符串字段。所以基本上我想根据特定字符串(术语)在内容字符串中出现的时间排序列表。 所以我要说我的术语是“abc”,所以如果列表的内容字段中的一个项目包含“abc”两次,而另一个项目包含“abc”3次,那么我希望这个项目包含两次。所以基本上基于Occurrence排序列表。我还在这里粘贴了我的搜索项目类:
public class SearchItem : SearchResultItem
{
public string PageTitle { get; set; }
public string PageDescription { get; set; }
public string content {get; set;} // That's the one which I want to use
}
非常感谢任何帮助
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以使用以下代码和NinjaNye.SearchExtensions nuget包
执行此操作var results = items.Search(x => s.content)
.Containing("abc")
.ToRanked()
.OrderByDescending(x => x.Hits)
.Select(x => x.Item);
这应该比正则表达式实现快得多,这在您的实现中非常重要