在我的 MarkLogic 数据库中,我们有符合 URI 格式的文档,其方式如下:
/documents/12345.xml
/documents/12-abc.xml
/documents/abc-123-def.xml
/12345.xml
Run Code Online (Sandbox Code Playgroud)
我想在 cts:uri-match 中运行正则表达式来仅选择那些符合格式的 uri
> /documents/{integer-values}.xml
Run Code Online (Sandbox Code Playgroud)
请建议如何使这项工作有效。数据库中有数百万个文档,我只想选择符合上述格式的uri,将对这些文档运行CORB进程进行转换。我不想获取所有 URI,然后运行 fn:matches 查询来完成这项工作。
我正在尝试从多个文档中检索 XPath 的值。就我而言,大约有 80 万个文档。我收到异常消息
扩展树缓存已满。
当文档较少(即 400k 文档)时,相同的查询会产生预期的输出。
以下是用于从集合中检索 XPath 值的查询:collection1和collection2:
cts:search(doc(),
cts:and-query((
cts:collection-query("collection1"),
cts:collection-query("collection2")
))
)/xpath/text()
Run Code Online (Sandbox Code Playgroud) 我想编写一个简单的查询来使用RequestNumber IN ('ABC','CDC','L11')搜索文档。我如何在 Marklogic 查询中编写它?
我有以下xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<text>We are a doing nothing here you can say it time pass. what are you doing doing doing doing doing time?</text>
<text>We are a doing nothing here you can say it time pass. what are you doing doing doing doing doing time?</text>
</data>
Run Code Online (Sandbox Code Playgroud)
现在我执行以下查询:
let $hits :=
let $terms :=
let $node := xdmp:document-filter(doc("/content/C/Documents and Settings/vimleshm/Desktop/abc.xml"))
return
(cts:distinctive-terms($node,
<options xmlns="cts:distinctive-terms"
xmlns:db="http://marklogic.com/xdmp/database">
<use-db-config>false</use-db-config>
<score>logtf</score>
<max-terms>100</max-terms>
<db:word-searches>true</db:word-searches>
<db:stemmed-searches>off</db:stemmed-searches>
<db:fast-phrase-searches>false</db:fast-phrase-searches>
<db:fast-element-word-searches>false</db:fast-element-word-searches>
<db:fast-element-phrase-searches>false</db:fast-element-phrase-searches>
</options>)//cts:term)
for $wq in $terms
where …Run Code Online (Sandbox Code Playgroud) 我想知道如何NOT IN在我们对rdbms执行的方式中执行marklogic中的操作
select * from Employee where id not in (1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)
我试过,cts:not-in-query但它需要单个正面和负面查询的实例,如何传递多个值,如(1,2,3,4,5,6)
我已经尝试将它添加到与正在运行的查询相关联的数据库中,在qconsole本身的文件夹和Modules db中,但我仍然收到错误消息:"文件打开错误:打开'/to-html.xsl ': 没有相应的文件和目录"
这是我正在尝试运行的代码:
xdmp:xslt-invoke("to-html.xsl", fn:doc('/docs/before-1.xml'))
我有一个名为"监控"的角色,能够在MarkLogic中插入/查看文档.我想添加删除文档的权限,但我不知道是否需要赋予它"执行"权限.
我的角色如下:
<role>
<role-name>moderators-role</role-name>
<description>The role assigned to the zabbix user that monitor all server apps</description>
<permissions>
<permission>
<capability>read</capability>
<role-name>moderators-role</role-name>
</permission>
<permission>
<capability>update</capability>
<role-name>moderators-role</role-name>
</permission>
</permissions>
<privileges>
<privilege>
<privilege-name>rest-writer</privilege-name>
</privilege>
<privilege>
<privilege-name>rest-reader</privilege-name>
</privilege>
</privileges>
</role>
Run Code Online (Sandbox Code Playgroud) 我们可以使用java客户端api在marklogic中创建一个新集合吗?因为我希望我的应用程序在启动时创建集合.
我知道我可以使用Querymanager.newDeleteDefinition删除一个集合,然后传入定义选项.
我有一段代码,我想返回特定林中的文档总数.我想确定林文档计数是0还是更多.
declare function local:forest-doc-count($db-name,
$f-id as xs:unsignedLong) as xs:integer {
let $_ := xdmp:log(xdmp:describe(fn:concat("$db-name -->", $db-name), (),()))
let $query := 'xquery version "1.0-ml";
declare variable $f-id as xs:unsignedLong external;
xdmp:estimate(cts:search(fn:doc(), (), (), (), $f-id))'
let $count := xdmp:eval($query , (),
map:entry("f-id", $f-id),
map:entry("database", xdmp:database($db-name))
)
return $count
};
Run Code Online (Sandbox Code Playgroud)
其中$ f-id是林ID,$ db-name是数据库名称.现在我得到了
未定义的变量$ f-id
我看到一些有关在Docker容器中运行markogic集群的文档,但不确定是否有人在Production中运行marklogic docker容器。
有人在docker容器中使用marklogic进行生产服务吗?