2010-10-07 64 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和我最终可能后来拧,如果配置文件和密钥具有相同的名称,但它工作得很好目前。

相关问题