Как заказать грани?

Мне нужно организовать facets как (fc=Type, Topic, Year, Editor)

Но порядок граней основан на концепции именования как Editor, Topic, Type, Year (упорядочен по имени в порядке возрастания)

Каким способом я должен использовать, чтобы заказать его?


person Sofia    schedule 10.04.2013    source источник
comment
Вы спрашиваете, как заказать их с помощью Application Builder? Какое-то другое приложение, использующее виджеты визуализации MarkLogic?   -  person Dave Cassel    schedule 10.04.2013
comment
да, мне нужен конструктор приложений.   -  person Sofia    schedule 11.04.2013


Ответы (1)


Я нашел решение для заказа граней:

declare variable $par as element() :=  <params xmlns="http://www.marklogic.com/apa/params">
<fc>Type,Topic,Year,Editor</fc>
<start>0</start>
<rows>10</rows>
<debug>false</debug>
<results>true</results>
<facet>true</facet> 
</params>;

let $data := "xml data in search:search format"
let $spans := xs:string($params/p:fc)              
let $value := fn:tokenize($spans,",")
let $fc := for $x in $value
           return $val
let $facet := $data/search:facet
let $facets := for $facetValue in $facet
               let $label := fn:string($facetValue/@name)
               let $value := fn:tokenize($label,"L")
               order by fn:index-of($fc, $value)
               return $facetValue
return $facets

Теперь в $spans мы получаем значения фасетов, заданные пользователем, а с помощью $data мы получаем значения фасетов в данных. Затем с помощью переменной $facets упорядочиваем их в указанном порядке.

person Sofia    schedule 25.04.2013