我有3个场景 -
xyz
和abc
的所有文档的总文档数。在这种情况下,我还需要元素名称的值。例如,文档的doc计数,其中元素名称xyz
值为lala
,元素名称abc
值为lili
,依此类推,所有可能的值/组合{ {1}}和xyz
。这两个元素都应该存在于doc。abc
且元素xyz
的所有文档的总文档数。在这种情况下,我需要对abc
值明智的所有可能值的文档计数。 获取不包含元素xyz
的文档的总文档数。
这三个加起来应该等于数据库的总doc数
注意:数据库大小很大。查询必须快速。我可以稍微妥协一下精度。我需要避免使用通配符搜索。救命。
xyz
。
当我总结从xdmp:estimate(cts:search(fn:doc(), cts:and-query(( cts:element-query(xs:QName("meta:xyz"), cts:true-query()),cts:element-query(xs:QName("meta:abc"), cts:true-query())
)) )
)
获得的所有可能值并将1乘1传递给 -
cts:value-tuples
答案 0 :(得分:1)
通常,通用索引可以通过将查询传递到服务器端JavaScript中的cts.estimate()
或XQuery中的xdmp.estimate()
来产生快速估算。
包含FIRST_ELEMENT和SECOND_ELEMENT的文件估算:
cts.estimate(
cts.andQuery([
cts.elementQuery('FIRST_ELEMENT', cts.trueQuery()),
cts.elementQuery('SECOND_ELEMENT', cts.trueQuery())
]))
包含FIRST_ELEMENT但不包含SECOND_ELEMENT的文件的估算值:
cts.estimate(
cts.andQuery([
cts.elementQuery('FIRST_ELEMENT', cts.trueQuery()),
cts.notQuery(
cts.elementQuery('SECOND_ELEMENT', cts.trueQuery())
)
]))
估算不包含FIRST_ELEMENT的文件:
cts.estimate(
cts.notQuery(
cts.elementQuery('FIRST_ELEMENT', cts.trueQuery())
)
)
估算数据库中的所有文件:
cts.estimate(
cts.trueQuery()
)
希望有帮助,