在xquery中查找非词典值的频率
有没有办法找到没有范围索引的元素的频率?在xquery中查找非词典值的频率,xquery,marklogic,marklogic-8,Xquery,Marklogic,Marklogic 8,有没有办法找到没有范围索引的元素的频率? 我使用的cts:frequency()不支持任何非词典的元素您需要某种类型的索引才能获取计数。除了范围索引之外,还有一种使用词汇库的方法: for $word in cts:element-words(xs:QName("city")) return $word || " " || xdmp:estimate( cts:search( fn:doc(), cts:element-word-query(xs:
我使用的
cts:frequency()
不支持任何非词典的元素您需要某种类型的索引才能获取计数。除了范围索引之外,还有一种使用词汇库的方法:
for $word in cts:element-words(xs:QName("city"))
return
$word || " " ||
xdmp:estimate(
cts:search(
fn:doc(),
cts:element-word-query(xs:QName("city"), $word)))
请理解,如果您有多个单词的值,这种方法可能不会提供您期望的值。例如,如果你有旧金山和圣地亚哥,你会得到这些数量:
- 桑:2
- 弗朗西斯科:1
- 迭戈:1
为了获得准确的基于值的计数,范围索引是您的最佳选择 您需要某种类型的索引才能获得计数。除了范围索引之外,还有一种使用词汇库的方法:
for $word in cts:element-words(xs:QName("city"))
return
$word || " " ||
xdmp:estimate(
cts:search(
fn:doc(),
cts:element-word-query(xs:QName("city"), $word)))
请理解,如果您有多个单词的值,这种方法可能不会提供您期望的值。例如,如果你有旧金山和圣地亚哥,你会得到这些数量:
- 桑:2
- 弗朗西斯科:1
- 迭戈:1