2015-10-13 3 views
2

Я хочу форматировать dateTime с в cts: сами значения элемента. Может ли кто-нибудь помочь мне в этом?Формат даты времени в cts: значения элемента

У меня есть формат DATETIME строку -

let $date-format := "[Y0001]-[M01]-[D01]T[h01]:[m01]:[s01].[f1]" 

, и я хочу использовать его в запросе, как это -

cts:element-values(
    xs:QName($field), 
(), 
    ($direction), 
    cts:and-query((cts:collection-query("urn:iddn:collections:searchable"), cts:query($cts-query))) 
) 

Предоставлено $ поле типа DateTime.

+0

Вы хотите, чтобы вы хорошо напечатали вывод cts: element-values? Или вы хотите настроить контент на чтение в интересах индекса? – grtjn

+1

Данные приведены в форме даты, и я хочу получить только месячные и годовые значения для отдыха Мне нужно 0. Пример - если у меня есть датаTime = 2015-10-12T22: 32: 11, Я хочу получить либо 2015-10 или 2015-10-01T00: 00: 00 –

+2

cts: element-values ​​(...)! fn: format-dateTime (., "[Y0001] - [M01]") – DALDEI

ответ

2

Вы можете выполнить это, написав пользовательскую функцию. UDF запускаются как map/reduce, поэтому они очень быстры даже при большом наборе данных. Я написал example UDF to create a day-of-the-week facet на основе данных dateTime. Этот пример основан на MarkLogic 6, но он все равно должен работать в MarkLogic 8.

Хорошо, что UDF очень быстрые. Трудная часть заключается в том, что вам придется писать ее на C++. Полная документация в документации User-Defined Functions section документации MarkLogic.