标签: marklogic

Marklogic - 如何在 Xquery 中分配动态变量

我尝试过下面提到的 XQuery 。

declare variable $path  as xs:string :="D:\Mongo\";

    let $uri :="/MJ/1932/Vol1/Part1/387.xml"
    let $x := fn:normalize-space(fn:replace($uri,"/"," "))
    for $i in fn:tokenize($x, " ")
    let $j := fn:concat($path,$i)
    return($j)
Run Code Online (Sandbox Code Playgroud)

实际产量

    D:\Mongo\MJ
    D:\Mongo\1932
    D:\Mongo\Vol1
    D:\Mongo\Part1
    D:\Mongo\387.xml
Run Code Online (Sandbox Code Playgroud)

预期产出

D:\Mongo\MJ
D:\Mongo\MJ\1932
D:\Mongo\MJ\1932\Vol1
D:\Mongo\MJ\1932\Vol1\Part1
D:\Mongo\MJ\1932\Vol1\Part1\387.xml
Run Code Online (Sandbox Code Playgroud)

请建议我如何更改动态变量值。

xquery marklogic marklogic-8

1
推荐指数
1
解决办法
4004
查看次数

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

我们正在构建一个以 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 组合查询(结构化查询 + 选项查询)。我可以使用结构化查询/组合查询获取不同的实体吗?

marklogic marklogic-8

1
推荐指数
1
解决办法
352
查看次数

插入文档后无法立即读取

我试图在插入文档后立即阅读该文档。当我尝试阅读文档时,我认为文档的插入正在进行中。请让我知道如何使用下面的代码片段获得结果。执行下面的代码,出现错误 'Cannot read property 'xpath' of null' 。

declareUpdate();
xdmp.documentInsert("abc.xml",cts.doc("xyz.xml"));
return cts.doc("abc.xml").xpath("/root");
Run Code Online (Sandbox Code Playgroud)

marklogic

1
推荐指数
1
解决办法
100
查看次数

使用哪个 cts: 查询来消除包含特定元素的文档?

我正在根据时间戳从数据库中提取 uri 列表。这是代码 -

cts:uris( (),  (),  cts:and-query((
                cts:collection-query("meters") ,
                cts:element-value-query(xs:QName("mt:period"), "raw"),
                cts:element-range-query( xs:QName("mt:end-time"),  ">=", xs:dateTime("2018-02-17T05:37:00") ),
)
                 )
                              ))
Run Code Online (Sandbox Code Playgroud)

但它包括keystore-raw.xml这不是我想要的结果集中的文件?如何将其从结果集中删除。父元素是keystore-metrics并且还具有诸如 之类的元素keystore-metric。我不想要任何 for 循环。

marklogic

1
推荐指数
1
解决办法
174
查看次数

元素范围索引和搜索可用性

标记逻辑 9.0.8.2

我们的数据库中有大约 2000 万条 XML 格式的记录。

为了处理方面,我们在给定元素上创建了 element-rage-index。

它工作正常,所以没有问题。

真正的问题是,我们现在想要在系统测试(ST)、UAT、生产等不同环境中部署相同的代码。

在部署代码之前,我们必须确保给定的索引存在。所以我们提前1/2天执行。

我们注意到,在完成完整索引之前,我们无法部署我们的代码,否则它会开始显示这样的错误。

    <error:code>XDMP-ELEMRIDXNOTFOUND</error:code>
    <error:name/>
    <error:xquery-version>1.0-ml</error:xquery-version>
    <error:message>No element range index</error:message>
    <error:format-string>XDMP-ELEMRIDXNOTFOUND: cts:element-reference(fn:QName("","tc"), ("type=string", "collation=http://marklogic.com/collation/")) -- No string element range index for tc collation=http://marklogic.com/collation/ </error:format-string>
Run Code Online (Sandbox Code Playgroud)

一旦索引完成,相同的代码将按预期运行。

特别是在 ST/UAT 中,如果我们得到未完成索引的部分数据,我们就可以了。

有什么办法可以做到这一点吗?否则我们会浪费太多时间来等待索引完成。

在此处输入图片说明

每次我们提出依赖新索引的新功能时都会发生这种情况

indexing marklogic

1
推荐指数
1
解决办法
97
查看次数

Marklogic 中的 cts、fn 和 xdmp 函数之间有什么区别?

我是 Marklogic 学习的初学者。我尝试通过互联网检查差异,但我什么也没看到。对不起,如果这是一个愚蠢的问题。实际上有什么区别?

marklogic marklogic-10

1
推荐指数
1
解决办法
103
查看次数

如何使用curl RESTAPI将数据插入现有文件中的marklogic数据库中

我在互联网上搜索并没有发现任何关于这让我重新思考“可能我们无法将数据插入到 Marklogic 中已经存在的文件中”。但是,我想在这里验证我知道使用 curl PUT 命令我们可以更新或创建一个新文档我使用以下查询创建了一个 json

**curl -v -X PUT \
  --digest --user rest-writer:x \
  -d'{"recipe": {"name" :"Apple pie", "fromScratch":true, "ingredients":"The Universe"}}' \
  'http://localhost:8011/LATEST/documents?uri=/example/recipe.json'**
Run Code Online (Sandbox Code Playgroud)

创建此后,我想在同一文件 /example/recipe.json 中添加另一个配方,如下所示

"name" :"Chocolate Cake", "fromScratch":yes, "ingredients":"Coca"
Run Code Online (Sandbox Code Playgroud)

我如何在 Marklogic 中使用 curl 来实现这一点?

curl marklogic restapi

1
推荐指数
1
解决办法
57
查看次数

如何验证 MarkLogic 中的日期时间输入?

在用JavaScript编写的 MarkLogic REST 服务中,我需要验证格式为“2019-12-01T19:54:25.000265Z”或“2019-12-01T19:54:25”的日期时间值,以便能够xs.dateTime()在我用于处理数据的代码的另一部分。

输入像字符串一样输入,我需要验证它的格式是否正确并具有有效值。

javascript validation rest datetime marklogic

1
推荐指数
1
解决办法
34
查看次数

CORB 和 MLCP MarkLogic 的区别

CORB 和 MLCP MarkLogic 之间有什么区别吗?

我看到他们做同样的工作。你在什么情况下使用这个和那个?

marklogic marklogic-corb mlcp

1
推荐指数
1
解决办法
67
查看次数

什么是 MarkLogic 中的集合

“集合不需要成员文档符合任何 URI 模式”。我在 MarkLogic 文档上看到的声明。这实际上意味着什么?

marklogic

1
推荐指数
1
解决办法
23
查看次数