如何使用 Java API 在 Marklogic 中搜索 XML 标签或 JSON 键

How to search an XML Tag or a JSON Key in Marklogic using Java API

我需要使用 Java API 在 Marklogic 数据库中搜索 XML 标签或 JSON 键,而不需要为 XML 标签指定任何元素值或 JSON 键值

如果您不想区分无命名空间元素和具有相同名称的 json-属性,您可以使用路径索引。否则使用字段。

如果您只想搜索元素的存在或 json-属性而不是特定值,您应该使用元素查询搜索约束:

http://docs.marklogic.com/search:search#opt-constraint

<element-query>

Specifies a constraint that restricts the search to the specified element. You cannot create facets from an element-query constraint.

<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!

在JavaAPI中,可以使用StructuredQueryBuilderclass的containerQuery()方法来匹配JSON属性或XML元素.

为包含的查询提供空的 and() 以匹配容器内的任何内容,如:

qb.containerQuery(qb.jsonProperty("name"), qb.and())

有关详细信息,请参阅:

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/StructuredQueryBuilder.html#containerQuery%28com.marklogic.client.query.StructuredQueryBuilder.ContainerIndex,%20com.marklogic.client.query.StructuredQueryDefinition%29

如果您只想提取那些元素,您可以使用指定要从文档中提取哪些元素或属性的持久化查询选项:

http://docs.marklogic.com/guide/rest-dev/appendixb#id_18313

您可能希望使用 JSON 或 XML 句柄来使用搜索响应,而不是使用 SearchHandle class。

希望对您有所帮助