标签: marklogic

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 8 - 按路径索引排序

是否已在ML 8中支持路径索引的排序顺序?我想实现类似下面的:

<options xmlns="http://marklogic.com/appservices/search">
  <sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending">
    <path-index>attritbutes//name</path-index>
  </sort-order>
</options>
Run Code Online (Sandbox Code Playgroud)

如果没有,有没有办法实现这一目标?我有几个具有相同名称的元素来自不同的父节点或根元素,所以我不能只使用

<options xmlns="http://marklogic.com/appservices/search">
  <sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending">
    <element ns="" name="name"/>
  </sort-order>
</options>
Run Code Online (Sandbox Code Playgroud)

marklogic

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

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
查看次数

如何修复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
查看次数

没有锁时会收到XDMP-LOCKED错误

我有一个函数,我写了一个序列号的生成.功能如下:

declare function generate-instrument-Id( $cnt as xs:int? )
as xs:int {
    let $count := if( $cnt and  $cnt > 0 ) then $cnt else 1
    let $url := '/private/instrumentId-Sequence.xml'
    (: this redirection is needed to write id in another 
       transaction context :)
    return xdmp:invoke-function( function() {
               let $id := fn:doc( $url )/instrument/@nextId
               let $_ := xdmp:node-replace( $id
                            , attribute nextId {  $id + $count } )
                return $id
            }
          )
};
Run Code Online (Sandbox Code Playgroud)

使用以下测试代码,qconsole窗口中的函数可以正常工作:

let res := util:generate-instrument-Id( 1 )
return fn:error( …
Run Code Online (Sandbox Code Playgroud)

xquery marklogic marklogic-9

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

无法找到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
查看次数

如何让xdmp:tidy()整理HTML5?

使用属于HTML5的新doctype和元素,您如何xdmp:tidy()识别HTML5中的那些?

如果我有一个包含以下内容的html页面:

<!DOCTYPE html>
<html>
    <header>blah</header>
    <section>blah</section>
Run Code Online (Sandbox Code Playgroud)

然后尝试类似的东西: xdmp:tidy(xdmp:document-get("home.html"))

我得到的错误如下:

<section> is not recognized! discarding unexpected <section>
<header> is not recognized! discarding unexpected <header>
Run Code Online (Sandbox Code Playgroud)

我可以发送一些选项xdmp:tidy()让它来处理它吗?

tidy marklogic

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

MarkLogic Search API - 如何在与searchable-expression相同的元素上进行排序

我正在尝试搜索特定元素,因此我在我的选项中有一个可搜索表达式.我还想按这个元素的值排序,所以我在value元素上创建了一个元素范围索引.以下是我的搜索选项,希望能让事情变得清晰:

 <options xmlns="http://marklogic.com/appservices/search">
        <term>
            <term-option>case-insensitive</term-option>
        </term>
        <debug>true</debug>
        <searchable-expression>/summary/name/value</searchable-expression>
        <sort-order type="xs:string" direction="ascending">
          <element ns="" name="value"/>
          <annotation>options for search institutions by name</annotation>
        </sort-order>
</options>
Run Code Online (Sandbox Code Playgroud)

问题是当它进行排序时它会添加另一个值节点(取自搜索:report id ="SEARCH-FLWOR")

...order by xs:string(($result//value)[1]) ascending return $result)[1 to 50]
Run Code Online (Sandbox Code Playgroud)

代替:

...order by xs:string(($result)[1]) ascending return $result)[1 to 50]
Run Code Online (Sandbox Code Playgroud)

我如何阻止它这样做?我无法更改可搜索的表达式,因为"name"元素具有另一个我不想搜索的子元素.我也不能将sort-order元素名称留空或将其设置为当前节点.看起来这很简单,但我还没有找到任何工作.

非常感谢帮助.

xquery marklogic

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

MarkLogic的"xdmp:collection-delete"如何工作?

我有一个场景,我想要删除的大多数文件都在一个名为"过期"的集合中.我不希望通过运行一个长时间运行的进程来重载我的服务器,这个进程将遍历文档并逐个删除它们,我宁愿使用document-delete以批量大小来执行它们.

所以我的问题是xdmp:collection-delete是如何工作的?

它是否迭代文档并删除它们?

要么

它是否像SQL中的DROP Table和它的"瞬时"一样?

我想知道xdmp:collection-delete的后台进程是什么.我想知道是否有人可以绘制该函数如何处理文档以进行删除的流程,因为我想要更深入地理解该过程,而不仅仅是概述它的作用.

xquery marklogic nosql marklogic-7

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