在 xquery 中查找非词典值的频率

Find the frequency of non-lexicon values in xquery

有什么方法可以找到没有范围索引的元素的频率吗?

我使用的

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)))

请注意,如果您有多个单词的值,此方法可能无法为您提供预期的值。例如,如果您有 San FranciscoSan Diego,您将获得这些计数:

  • 桑: 2
  • 弗朗西斯科:1
  • 迭戈:1

要获得准确的、基于价值的计数,范围索引是您的最佳选择。