首页 > 解决方案 > XPath 的 MarkLogic 查询

问题描述

我正在评估 MarkLogic 以在我们正在构建的用于存储复杂 xml 文档的新 java 应用程序中使用。其中一项要求是允许用户通过在 gui 中输入 xpath 查询来搜索文档。我无法在 MarkLogic 中找到一种方法来查找 /a/b/c = 'A' 和 /a/d/e = 'B' 的所有文档。我可以看到说查找名称 x 的元素具有值 y 但不适用于完整 xpath 的文档的方式。任何帮助,将不胜感激。

谢谢

布鲁斯

标签: marklogic

解决方案


关于使用 Java API 提交 XPath 进行搜索的狭隘问题......

QueryManager 使用 MarkLogic Search API 执行搜索请求。

您可以使用两个查询选项创建组合查询 XML 结构,并使用 RawCombinedQueryDefinition 将其包装以将其传递给 QueryManager.search():

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/RawCombinedQueryDefinition.html

查询选项可以使用 search:searchable-expression 元素指定受约束的 XPath:

http://docs.marklogic.com/guide/search-dev/appendixa#id_60011

综上所述,正如 Geert 所指出的,最好将每个交易拆分为一个单独的文档,这样文档就可以被独立索引和检索——这样用户就不必了解文档层次结构。


推荐阅读