我有一个元素桶,里面有超过 30 000 件元素。我需要的是快速搜索将特定字段设置为特定值的项目,或者更好的是制作类似 SELECT WHERE fieldValue IN (1,2,3,4) 语句的内容。有现成的解决方案吗? 我在网上搜索,唯一找到的是“项目开发人员指南” Buckets and Search”,但没有代码示例。
最佳答案
你需要这样的东西。 Bucket 项是一个 IIndexable,因此可以使用 Sitecore 7 搜索 API 对其进行搜索。
下面的代码片段可以很容易地进行调整以满足您的需求,这只是修改 where 子句的问题。如果您需要有关 sitecore 7 语法的任何进一步帮助,只需在下面的 QuickStart 博客文章中写下评论,我'我会回复你的。
var bucketItem = Sitecore.Context.Database.GetItem(bucketPath);
if (bucketItem != null && BucketManager.IsBucket(bucketItem))
{
using (var searchContext = ContentSearchManager.GetIndex(bucketItem as IIndexable).CreateSearchContext())
{
var result = searchContext.GetQueryable<SearchResultItem().Where(x => x.Name == itemName).FirstOrDefault();
if(result != null)
Context.Item = result.GetItem();
}
}
进一步阅读我的博文:
http://coreblimey.azurewebsites.net/sitecore-7-search-quick-start-guide/
关于search - Sitecore HOWTO : Search item bucket for items with specific values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915740/