【发布时间】:2013-01-05 01:37:48
【问题描述】:
我正在我的 Sitecore 6.4、.NET 2.0 项目中实施 Sitecore 项目存储桶。
我已经安装了所有东西,并且一切似乎都正常工作。我创建了一个项目存储桶和一个可存储的模板。搜索 UI 在内容编辑器查询中完美运行。我还可以在 Sitecore Index Viewer 和 Sitecore Rocks Index 实用程序中查询我的项目的索引。
但是,当我尝试在代码中实现 UI 时,无论尝试哪种方法,我都无法获得任何结果。对于我尝试运行的每种类型的查询,我都会不断返回 null。我试过 BucketManager、Search 扩展方法和 BucketQuery 都无济于事。
我还打开了调试日志记录,当我通过搜索选项卡在内容编辑器中搜索时,我看到了查询的日志记录,但是当我的代码执行时,不会生成任何日志条目。有谁知道为什么会发生这种情况。非常乐意提供更多信息来尝试追踪这一点。
Item root = MasterDatabase.GetItem(Constants.ARI_BUCKET_LOCATION_ID);
var items = root.Search(out hitCount,
text: "*",
indexName: "itembuckets_buckets",
location: root.ID.ToString(),
language: "en",
startDate: "01/01/2013",
endDate: "12/31/2013",
numberOfItemsToReturn: 100,
pageNumber: 1,
templates: tmpInventoryRate.ID.ToString());
var itemresults = root.Search(out hitCount, numberOfItemsToReturn: 100, language: "en");
var results = BucketManager.Search(root, out hitCount, templates: tmpInventoryRate.ID.ToString());
var textresults = BucketManager.Search(MasterDatabase.GetItem(Constants.ARI_BUCKET_LOCATION_PATH), out hitCount, text: "OEH", location: root.ID.ToString());
var pathresults = BucketManager.Search(MasterDatabase.GetItem(Constants.ARI_BUCKET_LOCATION_PATH), out hitCount, templates: tmpInventoryRate.ID.ToString());
var queryresults = new BucketQuery().WhereTemplateIs("*").Run(root, 100);
需要注意的一点是,我很好奇的是,上面的代码在 DAL 模块中执行,该模块无权访问 Sitecore.Context 但MasterDatabase.GetItem() 调用实际上确实从主数据库中检索了 Item,但我不知道 Bucket API 代码中的某处 Context 是否可能被引用?
【问题讨论】: