我需要使用Java API在Marklogic数据库中搜索XML标记或JSON密钥,而不指定XML标记的任何元素值或JSON密钥的值
答案 0 :(得分:2)
在Java API中,您可以使用StructuredQueryBuilder类的containerQuery()方法来匹配JSON属性或XML元素。
为包含的查询提供空和()以匹配容器中的任何内容,如:
qb.containerQuery(qb.jsonProperty("name"), qb.and())
有关详细信息,请参阅:
如果您只想提取这些元素,可以使用指定查询选项来指定要从文档中提取的元素或属性:
http://docs.marklogic.com/guide/rest-dev/appendixb#id_18313
您可能希望使用JSON或XML句柄而不是使用SearchHandle类来使用搜索响应。
希望有帮助
答案 1 :(得分:0)
如果您不想区分no-namespace元素和具有相同名称的json-properties,则可以使用路径索引。否则使用字段。
如果要搜索元素或json属性的存在而不是特定值,则应使用元素查询搜索约束:
http://docs.marklogic.com/search:search#opt-constraint
<element-query>
指定将搜索限制为指定的约束 元件。您无法从元素查询约束创建构面。
<options xmlns="http://marklogic.com/appservices/search"> <constraint name="sample-element-constraint"> <element-query name="title" ns="http://my/namespace" /> </constraint> </options>
未针对JSON属性进行测试,但MarkLogic 8通常以相同的方式处理它们。
HTH!