我必须在Sitecore(或更确切地说,在内容中)中找到在“Tracking”属性中检查了某个OMS(营销套件)配置文件的所有项目。 Tracking属性似乎存储为XML,并具有原始值,如
<tracking>
<profile name="Widdly Scuds"><!-- some irrelevant keys... --></profile>
</tracking>
我需要使用“Widdly Scuds”个人资料获取所有项目。
我想到的第一个解决方案是快速查询Tracking属性。 Sitecore查询或XML必须每次都抓取整个内容,这可能可能慢得令人无法接受,但如果没有其他选择,我会尝试。
这是我尝试过的第一个快速查询:
fast://*[@Tracking = '%Widdly Scuds%']
但返回0结果。所以我尝试了这个:
fast://*[@Tracking = '<tra%']
和这(这将匹配许多配置文件的名称:
fast://*[@Tracking = '%A%']
那些也会返回0结果。我不确定跟踪是如何存储或查询的,但它似乎很不寻常,因为我无论如何也无法从中得到任何结果。
查询需要足够快才能在短页面渲染期间运行几十次(可能不超过20-30秒)。结果可以缓存一段时间,但不会很长。我正在处理的网站部分的首页需要显示我正在查询的每个配置文件的项目计数,并且可能会有50个配置文件。
那么,如何快速获取具有特定营销资料的所有项目?
编辑:我最终使用了Lucene。在未来的问题中出现的冒险细节,也许......
答案 0 :(得分:1)
呃,跟踪字段实际上存储为__Tracking。哎呦。所以查询最终成为
fast://*[@__Tracking = '%"Widdly Scuds"%']
这仍然存在问题,因为它仍然试图通过字符串操作来查询XML,如果配置文件和密钥具有相同的名称,我可能会在以后搞砸了,但现在它运行良好。
答案 1 :(得分:1)
如果您使用查询或迭代后代,请避免从/开始查询 - 如果可能的话 - 从/ sitecore / content / someitem的等效项开始。
另一种方法是使用Lucene或其他搜索索引。 See the Sitecore reference for more info