标签: marklogic

使用OR在MarkLogic上进行Xquery

这是一个新手MarkLogic问题.想象一下像这样的xml结构,这是我真正的业务问题的凝结:

<Person id="1">
  <Name>Bob</Name>
  <City>Oakland</City>
  <Phone>2122931022</Phone>
  <Phone>3123032902</Phone>
</Person>
Run Code Online (Sandbox Code Playgroud)

请注意,文档可以并且将具有多个Phone元素.

我要求从每个文档中返回信息,该文档的Phone元素与电话号码列表中的任何一个匹配.该列表中可能包含几十个电话号码.

我试过这个:

let $a := cts:word-query("3738494044")
let $b := cts:word-query("2373839383") 
let $c := cts:word-query("3933849383") 
let $or := cts:or-query( ($a, $b, $c) )
return cts:search(/Person/Phone, $or)
Run Code Online (Sandbox Code Playgroud)

它正确地执行查询,但它返回Results元素内的一系列Phone元素.我的目标是为每个匹配的文档返回所有NameCity元素以及Person元素的id属性.例:

<results>
  <match id="18" phone="2123339494" name="bob" city="oakland"/>
  <match id="22" phone="3940594844" name="mary" city="denver"/>
etc...
</results>
Run Code Online (Sandbox Code Playgroud)

所以我认为我需要某种形式cts:search允许这个布尔功能,但也允许我指定返回每个文档的哪个部分.那时我可以进一步处理结果XPATH.我需要有效地执行此操作,例如,我认为返回文档uri的列表然后在循环中查询每个文档是不高效的.谢谢!

xquery marklogic

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

dateTime范围查询

在我的ML8数据库中,有一些包含Dtm字段的JSON文档.您可以在下面的"数据:"中看到一个示例.我在这个字段上有一个标量类型dateTime的元素范围索引,并检查它是否有效我使用下面在'Test:'中看到的查询.结果如预期.

现在当我尝试查询这个时,我想要在某个日期之后使用Dtm字段获取所有文档,此查询不返回任何内容.您可以在"查询:"中查看下面的查询.

数据:

"Dtm": "2015-06-25T07:11:10.0Z"
Run Code Online (Sandbox Code Playgroud)

查询:

var date = xs.dateTime("2015-06-01T14:38:09.145231+02:00");
var b    = cts.elementRangeQuery("Dtm", ">", date);
var c    = cts.search(b);
c
Run Code Online (Sandbox Code Playgroud)

测试:

cts.elementValues([xs.QName("Dtm")], null, ['limit=3'], null, 1.0, null);
Run Code Online (Sandbox Code Playgroud)

测试结果:

2015-06-11T17:43:36
2015-06-11T17:43:37
2015-06-11T17:43:38
Run Code Online (Sandbox Code Playgroud)

javascript marklogic

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

如何在Marklogic中的同一数据库/林中将现有文档从一个集合移动到另一个集合

有人可以建议某些方法将现有文档从一个集合(或默认集合)移动到MarkLogic中同一数据库/林中的另一个集合.

marklogic

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

Marklogic XCC或JAVA/REST

我看到marklogic提供了各种与之通信的接口.考虑到Java作为客户端应用程序,哪个是XCC,JAVA/REST是最佳选择.

如果我选择XCC而不是JAVA/REST,我会得到任何好处.

谢谢

marklogic

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

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

如何在以下方面改进Marklogic 7的性能:/*[fn:name()="something"]

我有一个基本的查询:

/*[fn:name()="something"]
Run Code Online (Sandbox Code Playgroud)

(1)Marklogic 7需要多秒,是否有一个索引我可以添加以使此查询更快?

(2)应该增加哪些内存限制以提高性能?

(3)是否有其他方法可以通过不同的查询来提高性能但获得完全相同的结果?

performance marklogic marklogic-7

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

MarkLogic - 集合和索引之间的最佳解决方案

我有几个这样的JSON:

[{
    "type": "car",
    "field1": "test"
}, {
    "type": "bike",
    "field1": "test"
}]
Run Code Online (Sandbox Code Playgroud)

我将它们存储在MarkLogic 8.4中,我想对它们执行一些搜索查询以根据类型检索文档(例如:查找类型为"car"的所有文档).

我有两个可能的解决方案:

  • 将Marklogic集合设置为每个文档.示例:在示例文档中放置"car"和"bike"集合.在我的搜索查询中,我可以添加集合限制.
  • 在每个JSON的"type"字段上放置一个索引

在表现和/或最佳实践方面,一种方法是否优于另一种方法?

谢谢,罗曼.

collections json marklogic marklogic-8

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

Xquery从XSD架构获取属性名称和类型?

我正在关注marklogic的教程,

https://developer.marklogic.com/learn/2007-04-schema

在一个场景中,我有xsd文件

    <!-- tutorial.xsd -->
<xs:schema targetNamespace="http://marklogic.com/tutorial"
 attributeFormDefault="unqualified"
 elementFormDefault="unqualified"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="name" type="xs:token"
   abstract="false" nillable="false"/>
  <xs:element name="qualification" type="xs:token"
   abstract="false" nillable="false"/>
  <xs:element name="born" type="xs:date"
   abstract="false" nillable="false"/>
  <xs:element name="dead" type="xs:date"
   abstract="false" nillable="false"/>
  <xs:element name="isbn" type="xs:unsignedLong"
   abstract="false" nillable="false"/>
  <xs:attribute name="id" type="xs:ID"/>
  <xs:attribute name="available" type="xs:boolean"/>
  <xs:attribute name="lang" type="xs:language"/>
  <xs:element name="title" abstract="false" nillable="false">
    <xs:complexType mixed="false">
      <xs:simpleContent>
    <xs:extension base="xs:token">
      <xs:attribute ref="lang" use="optional"/>
    </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="library" abstract="false" nillable="false">
    <xs:complexType mixed="false">
      <xs:sequence minOccurs="1" maxOccurs="1">
    <xs:element ref="book" maxOccurs="unbounded" minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="author" abstract="false" …
Run Code Online (Sandbox Code Playgroud)

xml xsd xquery marklogic marklogic-8

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

XQuery由"&amp;"引起的无效实体引用错误 实体参考

我正在尝试运行此行,xdmp:unquote(concat('<info>', string( $paragraph) , '</info>'))但我遇到以下错误:xdmp:unquote("<info>LEARNING &amp; MEMORY</info>") -- Invalid entity reference " " at line 1.看起来这个实体引用&amp;导致了问题.我试图使用replace函数删除它但它仍然存在.我该怎么办?

xquery entityreference marklogic f#-unquote

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

如何在可搜索的XPath表达式中使用xdmp:estimate()?

始终建议使用xdmp:estimate而不是fn:count.我知道如何在cts中使用它:搜索但不确定可搜索的XPath表达式.例如,我试图search:facets在执行后返回返回的计数search:search,就像这样 -
xdmp:estimate($search-result/search:facet/search:facet-value)但是
XDMP-UNSEARCHABLE-- Expression is unsearchable在使用fn:count工作时我得到错误.
救命!

xpath xquery marklogic

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