标签: marklogic

如何获得子元素,但没有孩子?

使用MarkLogic但这可能是一个通用的XQuery问题.

我有:

<library>
  <books>
    <book title="whatever">
      <publisher>Random</publisher>
      ....more children
    </book>
    <book title="another">
      <publisher>Simon</publisher>
      ....more children
    </book>
    ...
  </books>
</library>
Run Code Online (Sandbox Code Playgroud)

我想要返回所有[book]元素及其title属性,但我不想要任何书籍的孩子,例如[publisher].我如何以正统和高效的方式实现这一目标?

相关问题:有时我可能想要得到一些孩子,而不是其他孩子,例如获得所有书籍元素和他们的出版商子元素,但没有其他孩子.

谢谢.

xpath xquery marklogic

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

marklogic中的内存元素是什么?

我有几个文件,xdmp:node-replace()某些元素不起作用.还有一些其他的文档几乎与那些有问题的文档类似,但xdmp:node-replace对它们完全正常.尝试了所有可能出错但却徒劳无功的可能性.阅读一些xdmp:node-replace函数在" 内存元素 "中不起作用的地方.

因此,为了验证问题是否与" 内存元素 "有关,我想知道究竟是什么.

对它有任何启发都会有很大的帮助

marklogic

6
推荐指数
2
解决办法
833
查看次数

使用cts:query检查属性的存在

cts:element-query(xs:QName("elm"),cts:and-query(()))将给出元素榆树存在的所有片段.

同样地,如果我想要所有在elm下存在属性(例如atr)的文档,我还需要做什么?

cts:element-attribute-value-query()要求我传递一个值来匹配属性值.但我想只检查属性的存在,而不管它包含什么值.

marklogic

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

如何从数据库marklogic获取文档uri名称列表?

嘿我想从给定的MarkLogic数据库中获取所有文档名称/ uri的列表.

我在stackoverflow中找到了这一行: 如何获取Marklogic数据库中的文档总数?

...将获取数据库中的文档计数.我不知道如何修改它以列出所有文档URI.

还给出了一个文档URI,我想看看它是否存在于数据库中?

我试过以下,但无法实现同样的目标

for $x in xdmp:directory("/myDirectory/", "1")
return
fn:document-uri($x)
Run Code Online (Sandbox Code Playgroud)

我需要一个像这样的Xquery命令.我是marklogic的新手,有人可以帮我吗?

xml database xquery marklogic xquery-sql

6
推荐指数
2
解决办法
1612
查看次数

如何在MarkLogic中以编程方式在XQuery中创建JSON?

我需要在MarkLogic中的XQuery中构建一个JSON节点.我知道我可以使用xdmp:unquote()从字符串解析为node().但是,我想以编程方式构建JSON,而不需要丑陋的字符串连接.我可以使用计算元素构造函数在XQuery中构建XML节点.JSON节点有类似的东西吗?

json xquery marklogic

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

MarkLogic cts:元素查询误报?

鉴于此文件: -

<items>
  <item><type>T1</type><value>V1</value></item>
  <item><type>T2</type><value>V2</value></item>
</items>
Run Code Online (Sandbox Code Playgroud)

不出所料,我发现这将拉回页面cts:uris(): -

cts:and-query((
  cts:element-query(xs:QName('item'),
    cts:element-value-query(xs:QName('type'),'T1')
    ),
  cts:element-query(xs:QName('item'),
    cts:element-value-query(xs:QName('value'),'V2')
    )
  ))
Run Code Online (Sandbox Code Playgroud)

但有点令人惊讶(至少对我来说)我也发现这也是: -

cts:element-query(xs:QName('item'),
  cts:and-query((
    cts:element-value-query(xs:QName('type'),'T1'),
    cts:element-value-query(xs:QName('value'),'V2')
    ))
  )
Run Code Online (Sandbox Code Playgroud)

这似乎不对,因为没有type = T1value = V2的单个项目.对我来说,这似乎是一种误报.

我误解了cts:element-query有效吗?(我不得不说文档在这个领域并不是特别清楚).

或者这是MarkLogic努力向我提供我期望的结果的东西,并且如果我有更多或更好的索引,我将不太可能得到误报.

xquery false-positive marklogic

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

在MLCP中作为-query_filter传递时,无效的值运算符'<'(小于)符号

我正在使用MLCP(Marklogic内容泵)将内容从一个数据库复制到另一个数据库.在这个我使用-query_filter选项,它的值是一个cts:查询以XML序列化格式的一组cts:element-range-query包装在cts:and-query中:

<cts:and-query xmlns:cts="http://marklogic.com/cts">
  <cts:element-range-query operator=">">
    <cts:element xmlns:c="http://iddn.icis.com/ns/core">c:released-on</cts:element>
    <cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2000-12-21T00:00:00Z</cts:value>
  </cts:element-range-query>
  <cts:element-range-query operator="&lt;">
    <cts:element xmlns:c="http://iddn.icis.com/ns/core">c:released-on</cts:element>
    <cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2016-12-21T00:00:00Z</cts:value>
  </cts:element-range-query>
</cts:and-query>
Run Code Online (Sandbox Code Playgroud)

现在,上面的查询在ML Qconsole上执行时返回有效结果,但是当传入MLCP的-query_filter选项时,它会给出错误"无效属性值字符"<'.

Marklogic和MLCP的版本是8.0-5.

在进一步深入研究这个问题时,我发现只有当运算符值小于'<'时才会出现问题.

注意:我已在数据库中为"已启动"元素配置了有效的范围索引.

xml xquery marklogic marklogic-8 mlcp

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

如何修复MarkLogic"文件太大"林合并错误?

我正在运行MarkLogic版本8.0-6.1.

主机操作系统是红帽企业Linux服务器版本6.8(圣地亚哥).

数据存储在具有90%可用空间的本地磁盘上.

服务器运行得相当好,但偶尔会抛出以下错误.

SVC-FILWRT: File write error: write '/var/opt/MarkLogic/Forests/clickstream-1/0000008a/ListData': File too large
Run Code Online (Sandbox Code Playgroud)

有关根本原因和可能修复的任何想法?

marklogic marklogic-8

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

无法通过CentOs上的ODBC连接到MarkLogic

我们在CentOS上运行了MarkLogic服务器,并定义了ODBC端点.当我尝试通过Power BI与ODBC连接时,我收到以下错误.

ODBC错误

我有一个类似的MarkLogic服务器在本地运行,我没有任何问题通过ODBC连接.

笔记:

  • 使用ODBC数据源管理器测试连接是成功的
  • 运行在CentOS服务器上的MarkLogic是版本9ea

8052_ErrorLog.txt中没有任何内容,但是,在8052_AccessLog.txt中我看到了:

192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] init
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] password
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] query
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] query
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] query
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] query
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] query
192.168.21.34 - nickh [23/Mar/2017:09:43:36 -0400] terminate
Run Code Online (Sandbox Code Playgroud)

odbc marklogic powerbi

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

无法找到xdmp:plan结果文档

我很难找到有关输出xdmp:plan意味着什么的详细信息.

有这样一个简单的查询:

xdmp:plan(cts:search(doc(), cts:element-value-query(xs:QName("description"), "some text")))
Run Code Online (Sandbox Code Playgroud)

导致相当长的执行计划:

<qry:query-plan xmlns:qry="http://marklogic.com/cts/query">
<qry:expr-trace>...</qry:expr-trace>
...
<qry:partial-plan>
  <qry:term-query weight="1">
      <qry:key>16037778974159125508</qry:key>
      <qry:annotation>element(description,value("some","text"))</qry:annotation>
  </qry:term-query>
</qry:partial-plan>
...
<qry:ordering></qry:ordering>
<qry:final-plan>
  <qry:and-query>
    <qry:term-query weight="1">
      <qry:key>16037778974159125508</qry:key>
      <qry:annotation>element(description,value("some","text"))</qry:annotation>
    </qry:term-query>
  </qry:and-query>
</qry:final-plan>
<qry:info-trace>Selected 0 fragments to filter</qry:info-trace>
<qry:result estimate="0"></qry:result>
</qry:query-plan>
Run Code Online (Sandbox Code Playgroud)

提到文档的唯一部分xdmp:plan是其文档本身.除此之外,我找不到任何其他东西.我想了解一些关于例如qry:keyqry:annotation真正含义的细节.

有没有我缺少的文件描述可能的输出xdmp:plan.由于这是一个非常有价值的工具,以便了解查询性能,我希望它有很好的文档记录.


编辑:我发现的这个marklogic博客文章给出了一些如何解释查询计划的例子.

不过,我觉得自己像一个博客帖子应该不会唯一合理的文档,这个工具.

我仍在思考一些问题:

  • 什么是a partial-plan和a 之间的区别final-plan.是一个final-plan合并的所有partial-plans?什么时候partial-plan使用?部分计划似乎有助于制约.在索引解析阶段使用这些约束来查找候选片段ID吗?什么样的角色一final-plan玩吗?是否final-plan用于在索引解析后过滤掉误报?

有时我可以在查询计划中找到它:

<qry:elem-word-trace text="computer" elem-name="title" …
Run Code Online (Sandbox Code Playgroud)

marklogic marklogic-9

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