我已经为字段定义了路径范围索引,可能会发生字段值为null。存储在Marklogic中的对象如下:
{“the”:{“path”:{“to”:{“field”:null}}}}
我试过了这个问题
cts:path-range-query(“/ / / path / to / field”,“=”,json:null())
并且它不会返回任何结果。相反,如果我为字段为空时定义一个新值并为此情况创建索引,则搜索返回结果。
新文件:
{“the”:{“path”:{“to”:{“field”:null,“fieldIsNull”:true}}}}
新查询:
cts:path-range-query(“/ / / path / to / fieldIsNull”,“=”,“true”)
如何使用路径范围索引搜索空值而不诉诸新索引?
我正在使用Marklogic 9.0-4。
你可以在服务器端JavaScript中使用这样的东西:
cts.jsonPropertyValueQuery("field", null)
这是在XQuery中这样写的:
cts:json-property-value-query("Output", null-node {})
您是否尝试在路径范围查询中用json:null()
替换null-node{}
?
HTH!