使用ml-gradle配置带命名空间的path-range-index失败求助
在ml-gradle 4.5.2中配置带命名空间的路径范围索引问题解决
你遇到的问题是ml-gradle未识别配置里的path-namespace字段,导致命名空间配置未被传递到MarkLogic。核心原因是字段名写错了——ml-gradle 4.x版本对应的正确字段是复数形式的path-namespaces,而非单数的path-namespace。
修正后的数据库配置JSON
"uri-lexicon": true, "path-namespaces" : [ { "prefix": "h", "namespace-uri": "http://www.w3.org/1999/xhtml" } ], "range-path-index": [ { "scalar-type": "string", "path-expression": "//h:a[@class = 'els-include']/@href", "collation": "http://marklogic.com/collation/codepoint", "range-value-positions": false, "invalid-values": "reject" } ]
原因说明
ml-gradle的数据库配置字段与MarkLogic Management API参数一一对应,API中定义命名空间的参数就是path-namespaces(复数)。你之前使用的单数path-namespace不在ml-gradle的字段映射范围内,会被直接忽略,所以不会出现在发送给MarkLogic的请求日志里。
修改后重新执行数据库部署任务,就能看到日志里包含了命名空间配置,路径范围索引也能正确识别h:前缀对应的命名空间了。
内容的提问来源于stack exchange,提问作者Marc Messéant
相关产品推荐
相关产品推荐

