当元素不存在有效值时,搜索 api 给出错误结果

search api gives wrong result when element do not have valid value present

我在搜索中使用范围索引 api。当我的文档包含范围索引中使用的元素的空白或无效条目时,我得到了错误的结果。下面是示例代码。请告诉我如何在执行搜索时排除此 blank/invalid 值以获得正确的结果。

{cts:and-query((cts:directory-query((' + searchDir + ')),cts:element-attribute-value-query(xs:QName("document"), xs:QName("document-status"), "active"),cts:element-query(xs:QName("version"),cts:and-query((cts:element-attribute-value-query(fn:QName("","version"), fn:QName("","version-status"), "active", ("lang=en"), 1),cts:element-range-query(fn:QName("","expiration-date"), ">=", xs:date("' +expDtStart + '"), (), 1),cts:element-range-query(fn:QName("","expiration-date"), "<=", xs:date("' +expDtEnd + '"), (), 1)))) ))}

有效期是我的要素。

无效值很难排除,但空元素可以排除:

cts:not-query(cts:element-value-query(xs:QName('expiration-date'), ""))

虽然将范围索引的 invalid-values 设置切换为 reject 而不是 ignore 可能更容易。

HTH!