标签: marklogic

如何获取Marklogic数据库中的文档总数?

我在Marklogic数据库中有大约20个lacs文档.我希望我的搜索应用程序中的文档总数用于分页.获得我正在使用的总数

xdmp:estimate(cts:search(doc(), $query))
Run Code Online (Sandbox Code Playgroud)

其中$ query是组合在一起的各种查询的组合cts:and-query.但我没有得到正确的总数.当$ query为空时,它显示的计数远远高于数据库中的文档总数.我用的时候

xdmp:estimate(doc())
Run Code Online (Sandbox Code Playgroud)

它显示了正确的总数,但它将是静态总数,它不会根据查询而改变.我想根据响应特定查询返回的结果来计算总数,这就是为什么我将$ query作为参数传递但是它没有显示正确的总数.fn:count()显示正确的总数但当文件数量大约为20 lacs时则fn:count()不起作用,因为fn:count()比较慢xdmp:estimate().

请帮助我获取为响应用户输入的搜索词而返回的正确文档总数.

marklogic

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

需要帮助重写XQuery以避免MarkLogic中扩展的树缓存完全错误

我是XQuery和MarkLogic的新手.我正在尝试更新MarkLogic中的文档并获取扩展树缓存完整错误.为了完成工作,我增加了扩展树缓存,但不建议这样做.我想调整此查询,以便它不需要同时缓存尽可能多的XML.

这是我的查询在此输入图像描述

我已将我的查询上传为图像,因为当我将其粘贴到编辑器上时它并不那么漂亮.如果有人知道更好的方法请建议.

提前致谢.

caching xquery marklogic

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

高效的XQuery查询,用于确定元素不存在的文档

假设我在这样的集合中有大约5000万条记录:

<record>
  <some_data>
    <some_data_id>112423425345235</some_data_id>
  </some_data>
</record>
Run Code Online (Sandbox Code Playgroud)

所以我可能有一百万条记录(坏数据),如下所示:

<record>
  <some_data>
  </some_data>
</record>
Run Code Online (Sandbox Code Playgroud)

some_data元素为空.所以如果我element-range-indexsome_data_id上有一个设置,那么什么是一个有效的XQuery查询,它会给我所有空的删除?

我认为我正在寻找的是一个不是FLWOR的查询,你检查每个元素的子记录的存在,因为我认为这是低效的(即拉回数据然后过滤)?

然而,如果我在cts:search查询中执行它,那么它会更有效,就像在将数据拉回之前过滤数据一样?

请编写一个可以有效执行此操作的查询,并确认我对FLWOR语句的假设是否正确.

xquery marklogic marklogic-8

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

如何将JSON文档集合作为JSON数组返回

我在MarklLogic中有一组JSON文档,我希望将其作为JSON数组返回到API调用.

fn.collection('my-users')
Run Code Online (Sandbox Code Playgroud)

返回一系列JSON文档,我需要一个有效的JSON对象,一个数组.我在服务器端java脚本中执行此操作,推送到新的空数组().

据我所知,没有真正的示例文档,仅在XQuery中有一些例子.Google 在这里一直提到这个非常高级的文档

var myArray = [];

for (d of fn.collection('my-users')){
  myArray.push(d);
}

myArray
Run Code Online (Sandbox Code Playgroud)

我是否需要遍历序列中的每个项目以推送到阵列或是否有更优雅/更快的解决方案?

雨果

json marklogic serverside-javascript

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

将MarkLogic EVAL REST服务输出返回为JSON

我正在使用MarkLogic进行演示,以便将从Outlook导出的电子邮件存储为XML,这样当我离开Outlook时,它们仍然可以搜索和访问.

我正在使用AngularJS前端调用使用Jersey在JAVA中编写的自己的REST服务的本机MarkLogic REST服务.

MarkLogic SEARCH REST服务可以很好地根据各种搜索条件获取文档引用列表,但我还想显示存储在找到的文档中的信息.

我想避免多次REST调用并只返回所需的信息,因此我尝试使用EVAL REST服务来运行xQuery.

它可以很好地恢复XML(在多部分/混合消息中),但我似乎无法获得JSON,这对于大多数其他MarkLogic REST服务来说会更方便并且非常容易.

我可以在我的xQuery中使用"json:transform-to-json()"或者在我的JAVA代码中将XML转换为JSON,但这对我来说看起来并不优雅.

有没有更有效的方法来到我想去的地方?

xml rest json eval marklogic

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

从目录中获取文档时按元素排序

我必须从目录中获取所有文档,并使用下面的查询来执行相同操作.现在我需要返回基于effectiveDate元素排序的结果.我们可以使用order by和this code

let $news :=xdmp:directory("/news/","1")
for $d in $news
return $d
-- Result -----

    <?xml  version="1.0" encoding="UTF-8"?>
    <NewsEntity xmlns="http://jnj.com/news">
        <uuid xmlns="">868e8a3a-058d-4b2d-8d69-0696f75ec97f</uuid>
        <headLine>HeadLine 4</headLine>
        <contributor>User 4</contributor>
        <effectiveDate>2016-08-31</effectiveDate>
    </NewsEntity>
    <?xml  version="1.0" encoding="UTF-8"?>
    <NewsEntity xmlns="http://jnj.com/news">
        <uuid xmlns="">311eeede-2560-4142-b882-b666ab08c9f8</uuid>
        <headLine>HeadLine 3</headLine>
        <contributor>User 3</contributor>
        <effectiveDate>2016-08-28</effectiveDate>
    </NewsEntity>
    <?xml  version="1.0" encoding="UTF-8"?>
    <NewsEntity xmlns="http://jnj.com/news">
        <uuid xmlns="">9bb67977-a217-425f-82e4-b4366e80d7c4</uuid>
        <headLine>HeadLine 2</headLine>
        <contributor>User 2</contributor>
        <effectiveDate>2016-08-30</effectiveDate>
    </NewsEntity>
Run Code Online (Sandbox Code Playgroud)

xquery marklogic

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

Marklogic如何保存多个工作区

我在Marklogic Qconsole中有多个工作区.如何一次导出所有工作区.而不是一次将一个工作空间导出到计算机.谢谢

marklogic

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

是否可以在单个SPARQL查询中插入三元组数量限制?

使用markLogic版本 8.0-6.3

我在使用MarkLogic插入和删除三元组

WITH <>
DELETE {}
INSERT {}
WHERE {}
Run Code Online (Sandbox Code Playgroud)

条款.

在insert子句中,有大约3000个三重模式,在运行查询时我遇到错误.

**2019年1月17日12:53:08.230说明:TaskServer:XDMP-意外:(ERR:XPST0003)意外的令牌存储器耗尽

当我将三重模式限制2043在INSERT子句中时,则没有错误.

似乎一次可以插入三元组的数量有一些限制,如果是这种情况,有任何方法可以增加限制.

这是我的示例代码.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xs: <http://www.w3.org/2001/XMLSchema>
PREFIX skos-mla: <http://www.mlacustom.com#>
PREFIX term: <http://www.mla.com/term/>
PREFIX name: <http://www.mla.com/name/>
PREFIX work: <http://www.mla.com/work/>
PREFIX text: <http://www.mla.com/text/>
PREFIX rindicator: <http://www.mla.com/roleindicator/>
PREFIX facet: <http://www.mla.com/facet/>
PREFIX subfacet: <http://www.mla.com/subfacet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
WITH <thesaurus-term>
DELETE {
    ?termiri skos-mla:hasSRsortCode ?predicate.
    ?termiri skos-mla:hasSSsortCode ?predicate.
    ?termiri skos-mla:hasVSsortCode ?predicate.
    ?termiri skos-mla:hasXSsortCode ?predicate.
    ?termiri skos-mla:hasZSsortCode ?predicate.   
} INSERT {
    term:1 skos-mla:hasZSsortCode 'aaa'. …
Run Code Online (Sandbox Code Playgroud)

sparql marklogic triples

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

Marklogic-9中的“错误日志”中未记录调试消息

即使将文件日志级别设置为finest(最低日志级别),调试消息也不会在MarkLogic 9.0-9.1的“错误日志”中记录。

在QConsole中,xdmp:log('xyz', 'debug')在 从管理UI的组配置中将文件日志级别设置为“最高级 ”(也尝试了其他日志级别)之后使用,但未记录调试消息。

marklogic marklogic-9

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

Marklogic 8:对每个集合和/或目录的文档计数

我的marklogic数据库中有5000万个文档。我想分析内容以便知道哪些是文档的主要类别。

我的每个文档都位于一个特定的文件夹(即:“ / books /”)中,并具有一个特定的集合(“ / type / books”)。

我想生成一个包含两列的CSV:name_of_the_collection; count_distinct_value

范例:

Collection;count
books;437438
cars;46565
cats;457373
Run Code Online (Sandbox Code Playgroud)

与目录相同:

directory;count
/animals/cats/;437438
/animals/dogs;46565
/animals/cow;457373
Run Code Online (Sandbox Code Playgroud)

我试图列出所有不同的类别/集合并计算文档的数量,但无法将两者结合起来。

请你帮助我好吗 ?

谢谢,罗曼。

marklogic marklogic-8

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