我將Sitecore項目桶實施到Sitecore 6.4,.NET 2.0的項目中。Sitecore項目桶查詢全部返回null
我已經安裝了所有東西,並且所有東西似乎都正常工作。我創建了一個物品桶和一個可拆卸的模板。搜索用戶界面在內容編輯器查詢中完美工作。我還可以在Sitecore Index Viewer以及Sitecore Rocks Index實用程序中查詢我的項目索引。
然而,當我嘗試執行代碼的用戶界面,我永遠不會得到任何結果,不管我用什麼方法。對於我嘗試運行的每種類型的查詢,我總是得到空值。我試過BucketManager,搜索擴展方法和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);
有一點要注意,我好奇的是,上面的代碼,不必Sitecore.Context訪問DAL模塊中執行,但MasterDatabase.GetItem()調用是否確實檢索主數據庫中的項目,但我不知道是否有潛在引用Bucket API代碼上下文中的某處?
這是一個很好的發現。我也曾嘗試使用Sitecore.Context.SetActiveSite()來設置上下文,但沒有在安全禁用器中運行它!我真的希望Sitecore會給我們一個bug更新項目桶的東西更新.... – geedubb