首页 > 解决方案 > MarkLogic - 基于 JSON 对象的路径搜索(不使用路径范围索引)

问题描述

标记逻辑:9.0-6.2

我们在客户实体中有如下 JSON 文档。

"CustomerInfo": {
  "IdInfo": {
     "CustomerId":"12345"
  }, 
  "PartyRltp": {
      "CustomerId":"45678"
  }
}

我的需要是根据 CustomerId 在特定路径 CustomerInfo.IdInfo.CustomerId 搜索文档

所以如果我搜索“12345”,应该会返回上面的文档。但如果我用“45678”搜索,则不应返回上述文档。

我创建了路径范围索引并使用了 cts.pathRangeQuery('/CustomerInfo/IdInfo/CustomerId','=', '12345')。但是,意识到路径范围索引非常昂贵,因此寻找一种方法来实现没有路径范围索引。

提前致谢!

标签: marklogicmarklogic-9marklogic-dhf

解决方案


我想你正在寻找cts.jsonPropertyScopeQuery

cts.jsonPropertyScopeQuery(
  'IdInfo',
  cts.jsonPropertyValueQuery(
    'CustomerId',
    '12345'
  )
)


推荐阅读