Marklogic: уникалните думи се броят

Имам следната xml структура: -

<Root>
<text>
 Marklogic is a good big data tool. Right now I am exploring Marklogic.
</text>
</Root>

Сега искам да преброя появата на уникални думи (напр. Marklogic- 2 пъти, big- 1 път, data-1 път и т.н.). Постигнах това с помощта на fn:count(), но fn:count() е твърде бавен в случай на голяма база данни.

Има ли друг оптимизиран начин да се постигне това? (нещо свързано с индекси)


person Puneet Pant    schedule 16.10.2012    source източник
comment
stackoverflow.com/questions/25403223/   -  person Mads Hansen    schedule 20.01.2016


Отговори (1)


Според http://docs.marklogic.com/guide/search-dev/lexicon#chapter можете да активирате думата-лексикон и да използвате cts:words.

person mblakele    schedule 16.10.2012
comment
Проверихме тази документация, но не намерихме начин да получим индивидуален брой думи. Ние можем да получим всички уникални думи, като активираме лексикона на думите, но нашата цел е да получим броя на думите за тези лексикони на думи. Опитахме също xdmp:estimate, но той връща брой фрагменти. Така че в горния примерен XML файл получаваме брой 1 за дума на Marklogic, която трябва да бъде 2, защото се среща два пъти във фрагмент. Все още сме блокирани, моля, помогнете. - person Puneet Pant; 17.10.2012
comment
@PuneetPant Можете да използвате опцията item-frequency, за да получите броя на елементите, вместо да използвате fragment-frequency, което е по подразбиране. - person wst; 20.01.2016