Marklogic-跨文档检索 XML 元素的不同值

noc*_*der 1 marklogic marklogic-8

我们正在构建一个以 ML 作为后端数据库的企业应用程序。要求之一是在不同文档中查找 XML 中特定元素的不同值。

我可以使用结构化查询/组合查询获取不同的entity_type吗

以下所有文档都是实体集合的一部分:

文件1

<xml>
    <entities>
        <entity_name>Imprezza</entity_name>
        <entity_type>Car</entity_type>
        <entity_color>Red</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件2

<xml>
    <entities>
        <entity_name>Ducati</entity_name>
        <entity_type>Bike</entity_type>
        <entity_color>White</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件3

<xml>
    <entities>
        <entity_name>Lancia</entity_name>
        <entity_type>Car</entity_type>
        <entity_color>Red</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件4

<xml>
    <entities>
        <entity_name>Scania</entity_name>
        <entity_type>Truck</entity_type>
        <entity_color>Black</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

要求:给我集合中所有不同的entity_type

结果:汽车、自行车、卡车

PS:需要在Java层获取结果。我们目前有一个 API,可以根据输入生成 MarkLogic 组合查询(结构化查询 + 选项查询)。我可以使用结构化查询/组合查询获取不同的实体吗?

Dav*_*nis 5

您可以使用词典来完成此操作(基于上面没有空格) https://docs.marklogic.com/guide/search-dev/lexicon

或者

您可以通过每个值的范围索引来完成此操作。 https://docs.marklogic.com/guide/admin/range_index

无论哪种情况,您都可以通过值 REST 端点检索值。 https://docs.marklogic.com/REST/GET/v1/values/[名称]

我相信,一旦你有了你的词典或范围索引,就会有 Java API 解决方案。

  • 是的,Java 和 Node.js 客户端 API 都公开了与 GET /v1/values/{name} 等效的功能。在 Java 中,它是 QueryManager.values (http://docs.marklogic.com/guide/java/searches#id_65191),在 Node.js 中,它是 databaseClient.values (http://docs.marklogic.com/guide/节点开发/搜索#id_56768)。 (2认同)