Мне нужно найти все элементы в Sitecore (или, скорее, в содержимом), которые имеют определенный профиль 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. Подробности этого приключения появятся в будущих вопросах, может быть ...