2013-04-26 2 views
1

Весьма легко написать запрос XPath или Sitecore Query/Fast для получения всех элементов в диапазоне дат:Как запросить элементы Sitecore по дате создания первой версии?

E.g.

/sitecore/content/*[@__created>='20130301T000000' and @__created<'20130427T000000'] 

Однако этот вид запроса выглядит только на последнюю версию элемента, так что кажется невозможным найти фактическую created даты элемента (не версии в created даты).

Я мог бы написать немного C# код, чтобы сделать обработку запросов, но это будет включать в себя первую ВОССТАНОВЛЕНИЕ версии 1 каждый пункт в моей базе данных прежде, чем я мог бы сделать мой фильтр на created дату. Это было бы невероятно медленным.

Можно ли использовать XPath/Query нотацию/Fast? Если нет, есть ли способ сделать это, что будет быстро?

+1

Зачем вам нужна дата, когда элемент (версия 1) был создан (возможно, есть какой-то другой способ)? Вы уверены, что будете работать в живых условиях? (Насколько мне известно, веб-база данных имеет только одну версию - последнюю) Кроме того, вы не можете рассчитывать на полное восстановление версии 1 - она ​​могла быть удалена в какой-то момент. Если вы найдете решение для этого, убедитесь, что вы выбрали самый низкий номер версии. – Trayek

+0

@Trayek Это будет для обслуживания нашей основной базы данных - это не обязательно для веб-сайта в прямом эфире. У нас есть разные сценарии, которые помогают нам поддерживать и анализировать наш контент. Хороший звонок по наименьшему номеру версии, а не ожиданию версии 1. Спасибо. – theyetiman

ответ

3

Я подумал о чем-то, что может сработать:
Создайте новое поле, в которое будут доставлены все ваши предметы. Затем в этом поле, при создании элемента (не версии), вы вводите там время.
Когда версии удаляются, это нормально, потому что все версии будут иметь это поле с точно таким же значением.

Единственное, что вам нужно, чтобы запустить сценарий один раз, чтобы перебрать существующие элементы, чтобы заполнить поле с правильным значением для каждого элемента.

Затем вы можете использовать свой запрос XPath так же, как и сейчас.

+0

Мышление из коробки! +1 –

+0

Ну, внутри поля SO _Your Answer_ по крайней мере :-p – jammykam

+0

@trayek Интересная идея, но, как вы говорите, для заполнения данных все равно потребуется какой-то скрипт C# (целью является поиск по историческим объектам). – theyetiman