我在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().
请帮助我获取为响应用户输入的搜索词而返回的正确文档总数.
我是XQuery和MarkLogic的新手.我正在尝试更新MarkLogic中的文档并获取扩展树缓存完整错误.为了完成工作,我增加了扩展树缓存,但不建议这样做.我想调整此查询,以便它不需要同时缓存尽可能多的XML.
这是我的查询
我已将我的查询上传为图像,因为当我将其粘贴到编辑器上时它并不那么漂亮.如果有人知道更好的方法请建议.
提前致谢.
假设我在这样的集合中有大约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-index在some_data_id上有一个设置,那么什么是一个有效的XQuery查询,它会给我所有空的删除?
我认为我正在寻找的是一个不是FLWOR的查询,你检查每个元素的子记录的存在,因为我认为这是低效的(即拉回数据然后过滤)?
然而,如果我在cts:search查询中执行它,那么它会更有效,就像在将数据拉回之前过滤数据一样?
请编写一个可以有效执行此操作的查询,并确认我对FLWOR语句的假设是否正确.
我在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)
我是否需要遍历序列中的每个项目以推送到阵列或是否有更优雅/更快的解决方案?
雨果
我正在使用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,但这对我来说看起来并不优雅.
有没有更有效的方法来到我想去的地方?
我必须从目录中获取所有文档,并使用下面的查询来执行相同操作.现在我需要返回基于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) 我在Marklogic Qconsole中有多个工作区.如何一次导出所有工作区.而不是一次将一个工作空间导出到计算机.谢谢
使用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) 即使将文件日志级别设置为finest(最低日志级别),调试消息也不会在MarkLogic 9.0-9.1的“错误日志”中记录。
在QConsole中,xdmp:log('xyz', 'debug')在
从管理UI的组配置中将文件日志级别设置为“最高级 ”(也尝试了其他日志级别)之后使用,但未记录调试消息。
我的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)
我试图列出所有不同的类别/集合并计算文档的数量,但无法将两者结合起来。
请你帮助我好吗 ?
谢谢,罗曼。