MarkLogic UDF能否传入属性路径范围索引?调用聚合函数遇空元组
MarkLogic UDF与属性路径范围索引问题解答
MarkLogic用户自定义函数(UDF)支持基于文档属性的路径范围索引,你遇到的元组为空问题并非UDF不支持属性索引导致,大概率是路径引用或索引配置问题,可从以下几点排查:
命名空间绑定问题
文档属性的prop:properties对应命名空间为http://marklogic.com/xdmp/property,需确保查询上下文正确绑定该命名空间:
要么在XQuery prolog中声明:declare namespace prop = "http://marklogic.com/xdmp/property";要么直接使用完整命名空间路径:
cts:path-reference('/http://marklogic.com/xdmp/property/properties/path-range-index-3')路径索引定义匹配问题
检查第三个路径范围索引的定义路径是否与查询中使用的/prop:properties/path-range-index-3(含正确命名空间)完全一致,路径的任何细微差异(比如命名空间缺失、路径层级错误)都会导致索引无法匹配。目标文档的索引覆盖率问题
确认cts:document-query指定的文档集中,每个文档都同时包含三个路径索引对应的有效值。如果某部分文档缺少其中任意一个索引的值,聚合时会被过滤,最终导致传递给map函数的元组为空。可以单独验证每个索引在目标文档集中的存在情况。
内容的提问来源于stack exchange,提问作者Nick A. Watts
相关产品推荐
相关产品推荐

