标签: marklogic-8

从查询控制台中的模块db导入模块

从查询控制台执行测试代码时,是否还要导入位于模块db中的XQuery模块?我假设QueryConsole被设置为仅从文件系统加载模块,这就是为什么当我尝试加载我的时,我得到的模块没有找到.

我正在寻找一种简单的方法来测试我编写的XQuery代码,而我现在正在做的是简单地将整个代码与多个模块中的所有函数粘贴到同一个查询选项卡中以便进行测试.

有没有人对他们如何为MarkLogic测试他们的xquery模块有任何建议?

更新

我尝试了下面的建议,指定内容db而不是模块db.但我仍然没有成功.

模块db中的内容

选择了内容数据库的查询控制台

而我得到的错误是:

XDMP-MODNOTFOUND: (err:XQST0059) Module /AbbVie/authorization/lib/authorization.xqy not found
Run Code Online (Sandbox Code Playgroud)

解决

在尝试遵循建议时,我将库文件加载到不正确的路径中.

marklogic marklogic-8

3
推荐指数
1
解决办法
375
查看次数

cts:uris和cts:搜索返回不同的结果

我有一个奇怪的问题,我正在做cts:uri和cts:search ..而且我的cts:uris给了我7个结果,其中cts:搜索只给出了3个结果..

不知道我做错了什么,希望有人可以指出我做错了什么.我尝试了所有我认识的可能性:) ..遵循我正在运行的代码

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";

    let $q := '(Dermatolog*) AND ((context:KN)) AND ((gene:"STAT3") AND (indication:"Carcinoma")) AND ((uploadDate:"today")) AND (sort:date_desc)' 


    let $options := 
        <options xmlns="http://marklogic.com/appservices/search">
        <additional-query>
            <cts:collection-query xmlns:cts="http://marklogic.com/cts">
                <cts:uri>http://abc/xyz/type/envelope</cts:uri>
            </cts:collection-query>
        </additional-query>
        <operator name="sort">
            <state name="date_desc">
                <sort-order type="xs:dateTime" direction="descending">
                    <field name="upload_date"/>
                </sort-order>
            </state>
            <state name="date_asc">
                <sort-order type="xs:dateTime" direction="ascending">
                    <field name="upload_date"/>
                </sort-order>
            </state>
        </operator>
        <constraint name="context">
            <range type="xs:string" facet="true">
                <element name="context" ns="http://abc/xyz/metadata"/>
                <facet-option>frequency-order</facet-option>
                <facet-option>descending</facet-option>
            </range>
        </constraint>
        <constraint name="type"> …
Run Code Online (Sandbox Code Playgroud)

marklogic marklogic-8

3
推荐指数
1
解决办法
416
查看次数

如何在JavaScript + Marklogic中声明xml名称空间

我有像-

<domain xmlns:c="http://example.com/ns/core" xmlns="http://example.com/ns/core">
  <c:id>http://example.com/xyz/no-data</c:id>
</domain>
Run Code Online (Sandbox Code Playgroud)

我在MarkLogic使用JavaScript,并且要运行的元素值的查询c:id。像这样-

cts.elementValueQuery(xs.QName("c:id"), "http://example.com/xyz/no-data")
Run Code Online (Sandbox Code Playgroud)

但是为此,我需要声明名称空间c。如果是xQuery,我们可以做这样的事情-

declare namespace c="http://example.com/ns/core";
Run Code Online (Sandbox Code Playgroud)

但是我无法获得如何在JavaScript中执行此操作。

javascript marklogic marklogic-8

3
推荐指数
1
解决办法
192
查看次数

如何从数据库中删除所有数据?

只是数据.状态选项卡中的数据库大小应为0 MB.
是否有任何API可以完成工作,如果我尝试使用unix命令清除所有目录,该怎么办?推荐吗?

marklogic marklogic-8

3
推荐指数
1
解决办法
292
查看次数

Marklogic中JSON文档的日期格式


我正在使用带有日期的JSON文档,我正在尝试创建范围索引.当我这样做ISO8601格式时

2015-11-02T00:00:00-0600
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

IndexerEnv::putRangeIndex: XDMP-RANGEINDEX: Range index error: date "2015-11-02T00:00:00-0600": XDMP-LEXVAL: Invalid lexical value "2015-11-02T00:00:00-0600"
Run Code Online (Sandbox Code Playgroud)

我认为它需要在UTC时间,并且最后还需要一个'Z'表示祖鲁时区,所以我强制测试时间如下

2015-11-02T00:00:00Z
Run Code Online (Sandbox Code Playgroud)

我仍然得到同样的错误..

IndexerEnv::putRangeIndex: XDMP-RANGEINDEX: Range index error: date "2015-11-02T00:00:00Z": XDMP-LEXVAL: Invalid lexical value "2015-11-02T00:00:00Z"
Run Code Online (Sandbox Code Playgroud)

这有什么不对?还有另一个问题,Marklogic是否只在我们在日期添加'Z'(祖鲁时区)时才了解日期?

谢谢

timezone json marklogic marklogic-8

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

面对XML标记值

我想在xml标签上进行分面,并在标签值上进行子分面,我有一个像下面这样的xml文档

<TermiteJServiceResponse>
  <EntityTypeHit type="DRUG">
    <HitCollection>
      <Hit type="DRUG" id="CHEMBL1201288">
        <Name>Dantrolene</Name>
      </Hit>
      <Hit type="DRUG" id="CHEMBL286398">
        <Name>Propylene Glycol</Name>
      </Hit>
      <Hit type="DRUG" id="GXC376D7F8C0E7A0C3787E8A2384DC56E80">
        <Name>PEG400</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="COMPOUNDS">
    <HitCollection>
      <Hit type="COMPOUNDS" id="A-409912.5">
        <Name>A-409912.5</Name>
      </Hit>
      <Hit type="COMPOUNDS" id="A-409912">
        <Name>A-409912</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="GENE">
    <HitCollection>
      <Hit type="GENE" id="TRH">
        <Name>thyrotropin-releasing hormone</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="BIOPROC">
    <HitCollection>
      <Hit type="BIOPROC" id="BP70302">
        <Name>infusion</Name>
      </Hit>
      <Hit type="BIOPROC" id="D009200">
        <Name>Myocardial Contraction</Name>
      </Hit>
      <Hit type="BIOPROC" id="BP70198">
        <Name>cmax values</Name>
      </Hit>
      <Hit type="BIOPROC" id="D001835">
        <Name>Body Weight</Name>
      </Hit>
      <Hit type="BIOPROC" id="D062186">
        <Name>Arterial Pressure</Name> …
Run Code Online (Sandbox Code Playgroud)

marklogic marklogic-8

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

仅从 cts:reverse-query 返回 URI

更新:见结束 - 一个例子表明 cts:uris 不是一种有效的方法,因为它不会在所有情况下都返回正确的结果。

我有一个用例,在 MarkLogic 中,有时在包含 cts:reverse-query 的搜索结果中会有数十万个匹配项。有了这个,我想要返回的是与结果匹配的文档的 URI,以便我可以缓存它们并稍后通过 Corb2 处理它们。

示例代码:

xquery version "1.0-ml";


let $_ := xdmp:invoke-function(function(){
  for $val in ("foo", "bar", "baz")
    let $query := <query>{cts:element-word-query(xs:QName("what"), ($val))}</query>
    return (
              xdmp:document-insert("/test/reverse-" || $val ||".xml", $query, (), ("test-reverse")),
              xdmp:commit()
           )

},<options xmlns="xdmp:eval">
        <transaction-mode>update</transaction-mode>
      </options>
)


return for $result in cts:search(collection("test-reverse"), cts:reverse-query(<what>baz</what>))
  return xdmp:node-uri($result)
Run Code Online (Sandbox Code Playgroud)

这将返回:

/test/reverse-baz.xml
Run Code Online (Sandbox Code Playgroud)

这是预期的。

但是,我觉得我在这里做了太多处理,因为我已经有了来自 cts:search() 的文档。但话又说回来,因为 ML 是懒惰的,也许即使是现在,我真的只有一个参考,因为我没有访问文档中的任何内容..?

我想要的是使用 cts:uris() 来获得与上述相同的结果。但是,您不能将 cts:reverse-query 与 cts:uris() 一起使用

是的,我知道反向查询不一定需要作为文档存在于数据库中才能使用它(cts:包含示例),因此在某些用例中,URI 甚至不存在。但对我来说,他们做到了。

另外,我很确定我可以使用xdmp:plan()通过拉出最终计划 …

marklogic marklogic-8

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

Marklogic - 使用java api在json的元素数组中更新

让我们说我们有json的样子

{ 
   "name":"abc", 
   "lastName":"xyz", 
   "description":"aaaaa aaaa", 
   "dob":11-10-1988,
   "workInformation":[
       {
          "address":"kolkata", 
          "workFor":"vvv Pvt Ltd",
          "reference" : [
              {
                 "refName" : "ttt",
                 "refId" : "12345"
              },
               {
                 "refName" : "sss",
                 "refId" : "23412"
              }
          ]
       },
        {
          "address":"bangalore", 
          "workFor":"www Pvt Ltd",
          "reference" : [
              {
                 "refName" : "rrr",
                 "refId" : "43434"
              },
               {
                 "refName" : "yyyy",
                 "refId" : "34213"
              }
          ]
       },
       {
          "address":"delhi", 
          "workFor":"sss Pvt Ltd",
          "reference" : [
              {
                 "refName" : "qqqq",
                 "refId" : "76767"
              },
               {
                 "refName" : "gggg", …
Run Code Online (Sandbox Code Playgroud)

json marklogic jackson marklogic-8

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

Marklogic - 我想在json文档的数组部分中使用带有键值的java api进行元素搜索

我想从文档的数组元素部分搜索具有键值的元素.让我说我有json看起来像 -

{ 
   "name":"abc", 
   "lastName":"xyz", 
   "description":"aaaaa aaaa", 
   "dob":11-10-1988,
   "workInformation":[
       {
          "address":"kolkata", 
          "workFor":"vvv Pvt Ltd"
       },
        {
          "address":"bangalore", 
          "workFor":"www Pvt Ltd"
       }
    ]
}
Run Code Online (Sandbox Code Playgroud)

假设我想在数组属性workInformation中使用java api搜索下面提到的键和值 -

key - workFor,value - vvv私人有限公司

请让我知道,怎么做.

谢谢阅读.

marklogic marklogic-8

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

增加 xquery 请求的 Marklogic 超时

我正在使用 Marklogic 8.0.6 和 xquery 请求。

我通过应用程序服务器执行那些 xquery 请求,但似乎巨大的请求已达到超时并返回以下错误:

eval XQuery on server: cannot process response with 504 status
Run Code Online (Sandbox Code Playgroud)

您能否给出要修改的设置以增加此超时?

谢谢,罗曼:)

xquery marklogic marklogic-8

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

标签 统计

marklogic ×10

marklogic-8 ×10

json ×2

jackson ×1

javascript ×1

timezone ×1

xquery ×1