代码之家  ›  专栏  ›  技术社区  ›  Jesse Millikan

查找具有特定OMS配置文件的SiteCore项目?

  •  1
  • Jesse Millikan  · 技术社区  · 14 年前

    我必须在SiteCore(或者更确切地说,在内容中)中找到所有在“跟踪”属性中选中了特定OMS(营销套件)配置文件的项目。跟踪属性似乎存储为XML,并且具有如下原始值

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

    例如,我需要获取具有“widly scuds”配置文件的所有项目。

    我想到的第一个解决方案是快速查询跟踪属性。SiteCore查询或XML每次都必须对整个内容进行爬网,这将 可能 慢得让人无法接受,但如果没有别的选择,我会试试的。

    这是我尝试的第一个快速查询:

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

    但返回0个结果。所以我试了一下:

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

    以及这个(它将匹配许多配置文件的名称:

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

    它们也返回0个结果。我不太确定跟踪是如何存储或查询的,但看起来很不寻常,因为我无法通过任何方式从中获得任何结果。

    查询需要足够快,以便在短页面呈现期间运行几十次(可能不超过20-30秒)。结果可以缓存一段时间,但不会很长。我正在处理的站点的一个部分的首页需要为我查询的每个配置文件显示一个项目计数,可能会有50个ISH配置文件。

    那么,如何快速获得具有特定营销概况的所有项目?

    编辑: 最后我用了露西。在未来的问题中会出现冒险的细节,也许…

    2 回复  |  直到 11 年前
        1
  •  1
  •   Karl-Johan Sjögren    11 年前

    如果使用查询或迭代子体,请避免从/如果可能-从等效的/sitecore/content/someitem开始查询。

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

        2
  •  1
  •   Jesse Millikan    14 年前

    啊,跟踪场实际上存储为“跟踪”。哎哟。所以查询结果是

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

    这仍然存在问题,因为它仍然试图通过字符串操作查询XML,如果一个概要文件和键具有相同的名称,我可能会在稍后失败,但目前它已经足够好用了。