2010-10-07 29 views
1

我必須在Sitecore(或更確切地說,在內容中)找到所有在「Tracking」屬性中選中的具有特定OMS(營銷套件)配置文件的項目。跟蹤屬性似乎被存儲爲XML,並具備使用特定的OMS配置文件查找sitecore項目?

<tracking> 
    <profile name="Widdly Scuds"><!-- some irrelevant keys... --></profile> 
</tracking> 

原始價值,我需要獲取,例如,用「Widdly飛毛腿」配置文件的所有項目。

我想到的第一個解決方案是對Tracking屬性的快速查詢。 Sitecore查詢或XML將不得不每次抓取整個內容,這可能是可能是慢得讓人無法接受,但如果沒有其他選擇,我會嘗試。

這是第一個快速查詢我想:

fast://*[@Tracking = '%Widdly Scuds%'] 

但返回0的結果。所以,我想這一點:

fast://*[@Tracking = '<tra%'] 

,這(這將匹配許多型材的名字:

fast://*[@Tracking = '%A%'] 

而這些也返回0,結果我真的不特定的跟蹤是如何存儲或查詢,但它似乎是不尋常的,因爲我不能通過任何方式得到任何結果

查詢需要足夠快,以在短頁面呈現期間運行幾十次(可能不超過20-30秒),結果可以緩存一段時間,但不會很長我正在處理的網站的一部分的首頁需要顯示我查詢的每個配置文件的項目數,並且可能會有50個ish配置文件。

那麼,如何快速獲得具有特定營銷資料的所有項目?

編輯:我結束了使用Lucene。冒險的詳細信息出現在未來的問題,也許...

回答

1

如果使用查詢或迭代子代,避免從/開始查詢 - 如果可能的話 - 從/ sitecore/content/someitem的等價物開始。

另一種方法是使用Lucene或其他搜索索引。 See the Sitecore reference for more info

+0

即使它是一個快速查詢?出於某種原因,我的印象是,使用具有快速查詢的路徑使得查詢速度較慢,僅使用// *。另外,我已經在使用Lucene重建它的過程中,所以你稱它爲... – 2010-10-13 17:33:45

1

呃,跟蹤字段實際上存儲爲__跟蹤。哎呦。因此,該查詢最終被

fast://*[@__Tracking = '%"Widdly Scuds"%'] 

這仍然有問題,因爲它仍然試圖通過字符串操作來查詢XML和我最終可能後來擰,如果配置文件和密鑰具有相同的名稱,但它工作得很好目前。

相關問題