Sitecore搜索多个单词
如何使用Sitecore 7搜索多个单词?Sitecore搜索多个单词,sitecore,sitecore7,Sitecore,Sitecore7,如何使用Sitecore 7搜索多个单词? 我尝试了每个单词都使用Contains,但效果不好,我认为性能不是很好。您可以使用PredicateBuilder解决此问题: 代码将类似于: Queryable<SearchItem> SearchText(List<string> keywords, IQueryable<SearchItem> itemList) { var predicate = PredicateBuilder.T
我尝试了每个单词都使用Contains,但效果不好,我认为性能不是很好。您可以使用PredicateBuilder解决此问题: 代码将类似于:
Queryable<SearchItem> SearchText(List<string> keywords, IQueryable<SearchItem> itemList)
{
var predicate = PredicateBuilder.True<SearchItem>();
foreach (string keyword in keywords)
{
predicate = predicate.And(i => i.FieldOne.Contains(keyword) || i.FieldTwo.Contains(keyword) || i.FieldThree.Contains(keyword) || i.Fieldyyy.Contains(keyword));
}
return itemList.Where(predicate);
}
Queryable SearchText(列表关键字,IQueryable itemList)
{
var predicate=PredicateBuilder.True();
foreach(关键字中的字符串关键字)
{
谓词=谓词。和(i=>i.FieldOne.Contains(关键字)| | i.FieldTwo.Contains(关键字)| | i.FieldThree.Contains(关键字)| | i.fieldyyyy.Contains(关键字));
}
返回itemList.Where(谓词);
}
关于predicateBuilder,您可以在此处找到:
如果使用ToList(),性能会更好;仅当您已从IQueryable中筛选出所需的所有项(使用LINQ语句)时,才在IQueryable上。当您调用.ToList()时;查询将被执行。这正是我需要的。谢谢