【问题标题】:How to search an XML Tag or a JSON Key in Marklogic using Java API如何使用 Java API 在 Marklogic 中搜索 XML 标记或 JSON 键
【发布时间】:2015-06-13 01:37:51
【问题描述】:

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

【问题讨论】:

    标签: xml json marklogic java


    【解决方案1】:

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

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

    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!

    【讨论】:

    • 我真正想要的是搜索一个 JSON 键/XML 元素,并从 XML 或 JSON 文档中获取搜索到的 XML 元素/JSON 键的值。这可能与 JAVA 客户端 Api对于 Marklogic
    【解决方案2】:

    在 Java API 中,您可以使用 StructuredQueryBuilder 类的 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 类来使用搜索响应。

    希望对你有所帮助

    【讨论】:

    • 你能给我从数据库连接配置到在 JAVA Eclipse 控制台中显示结果的完整代码
    • 看看github.com/marklogic/java-client-api/blob/master/src/main/java/… 除了突出显示的行之外,其余大部分代码应该是相似的。
    • 感谢代码。它满足我的要求。但我只需要获取用于搜索的 JSON 密钥的值,而不是 sn-p 或整个文档。例如: - {"colour":"red","type":"good"} , {"colour":"blue","type":"bad"} 是 2 个 JSON 文档然后如果我搜索 "color" 键应该在这些文档中搜索那个特定的键,我应该只能在结果句柄中获得搜索键的值
    • 如果您只想要特定的搜索值,您可以发送带有指定 docs.marklogic.com/guide/rest-dev/appendixb#id_18313 的查询选项的组合查询(或者,在 MarkLogic 7.x 中,) 和 .
    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多