有人能给我推荐一些关于Xquery性能和设计模式的好读物吗。
我不是在寻找特定于webapp或DB的东西,只是关于Xquery和引擎
提前感谢您应该看一下您应该看一下除了用户457056的指针,您还可以阅读有关的内容。如果您正在查找性能数据,我也帮不上忙。除了用户457056的指针之外,您还可以阅读一些关于。如果您正在寻找性能数据,我也帮不上忙。非常特定于MarkLogic,但有很多关于MarkLogic快速性的好细节。非常特定于MarkLogic,但有很多关于MarkLogic快速性的好细节。
我得到了以下示例xml:
<meci>
<nodes>
<node id="x">
<mlfbs>
<region value="H">
<mlfblist>
<mlfb partno="1" masternode="false" />
<mlfb partno="2" masternode="fal
我不熟悉XML数据库,所以我需要一些关于marklogic和xquery的帮助
我确实在数据库中记录了一些文档,当我按下explore按钮时,它们的URI显示出来,看起来像(例如):
/firstDirectory/documentA.xml
/firstDirectory/documentB.xml
/secondDirectory/documentC.xml
现在我想获得位于“firstDirectory”中的所有文档的URI列表。
所以我需要这样的东西:
List unknownXQuer
我对XQuery有问题。我在这个问题上花了很多时间,但我无法让它工作:(这是我的XML图书节点:
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44
我有类似的东西
<a>
<b>
<c>1</c>
<d>2<e>3</e></d>
</b>
</a>
<a/>
<b/>
<c>1</c>
<d>2<e>3</e></d>
重新构造为完整元素(包含and),但如果删除元素构造函数
下面是我的数据的XML部分
<A>
<a><Type>Fruit</Type><Name>Banana</Name></a>
<a><Type>Fruit</Type><Name>Orange</Name></a>
<a><Type>Fruit</Type><Name>Apple</
我使用以下XQuery代码来选择集合中的所有.html文档
数据库的存在。脚本应该创建一个XML文档(序列化为JSON),其中包含文档URI和标题(存储为第一个H1元素)。
但是,元素仍然为空。为什么?
xquery version "3.0";
declare option exist:serialize "method=json media-type=text/javascript";
<result> {
let $data-collection := '/db/ou
我想获取具有特定元素属性值的文档
因此,我尝试了cts:element属性值查询,但没有得到任何结果。但是相同的元素属性值,我可以使用cts:element-attribute-range查询获得
这里是使用的示例代码段
let $s-query := cts:element-attribute-range-query(xs:QName("tit:title"),xs:QName("name"),"=",
"SampleTitle",
("collation=http://marklogic.c
如何查找特定元素中的属性是否可用?使用XPath返回目标属性并将结果转换为布尔值:
boolean(//target_element/@target_attribute)
或类似方法,但使用功能:
exists(//target_element/@target_attribute)
实际上,问题中没有明确说明上下文,例如,您案例中的上下文元素可能已经是目标元素,因此您不需要//target\u element/部分。此外,您可以返回目标元素的所有属性名称:
//target-element/
我有一个MarkLogic 8数据库,其中有两个日期时间字段的文档:
创建于
自
我正试图编写一个Xquery来搜索所有值处于活动状态的文档,因为小于上创建的值
目前我正在使用以下FLWOR表达式:
fn中$entity的:集合(“entities”)
let$id:=fn:data($entity//id)
让$created on:=fn:data($entity//created on)
让$active-since:=fn:data($entity//active-since)
其中$a
我正在使用MarkLogic查询控制台。我的XQuery文件工作不正常,我面临此错误
MarkLogic Xquery请求错误:
XDMP-UNEXPECTED:(错误:XPST0003)意外的令牌语法错误,意外的美元“
这是我正在执行的代码:
declare function fill:getA() as node()* {
for $projectId in /cf:Project/@Id/string()
$s := fill:getS($projectId)
我需要遍历10000000个文档,对每个文档执行一些操作,并将一些值存储在“/count.xml”中。当我迭代到第二个文档时,我用更新的值更新“/count.xml”
目前这就是我正在做的,这里的$totalrecords是10000000
let $total-records := xdmp:estimate(cts:search( //some code))
let $batch-size := 5000
let $pagination := 0
let $bs :=
for $re
在ExistDB4.4、XQuery3.1中,我将大量XML文件压缩到目录中的.zip文件中。压缩过程使用serialize()
XML文件中有一些大型的xincludes,它们在序列化过程中被自动处理。我已尝试在代码中的两个位置“关闭”xinclude序列化(prologue declare和map),但序列化程序仍在输出所有xinclude:
declare option exist:serialize "expand-xincludes=no";
declare function zip:
MarkLogic允许使用伪“目录”式结构在数据库中组织文档,该结构由加载任何给定文档时使用的URI定义。这些URI用于查找和查询文档(使用fn:doc()),并列出特定目录或子目录中的所有文档(使用xdmp:directory())
然而,似乎没有任何方法可以“查看”或列出数据库中附加到文档的所有目录或子目录,正如您在典型的目录结构文件系统中所期望的那样。有一些旧的在线解决方案和其他解决方案可以指示在db中列出根目录的方法,但是没有一个解决方案允许子目录,也没有一个解决方案可以像运行一段代码那
我有一些长时间运行(>1分钟)的任务,在REST中通过xQuery可以正常运行。然而,我们现在已经将这些服务器置于Amazon负载平衡器之后,并且由于Amazon负载平衡器的工作方式,没有任何一个查询的持续时间可以超过29秒。Amazon将暂停查询
注意:对此没有控制权
因此,我们提出的解决方案是让xQuery只触发一个运行正常的计划任务。我原以为这会管用,但有一个例外——使用类似这样的方法:
declare function jobs:create-job ($xquery-resource
我有一个for循环,希望过滤一些节点,这很好:
matches($doc/abc/@def, $filterA)
matches($doc/qwert/@xyz, $filterB)
当$filterA、$filterB或两者都为空时,也可以返回每个节点。但是,如果节点abc或qwert不存在,则返回节点是无效的。对于我当前使用的默认值(”(空字符串),是否有其他默认值或其他函数可用于使其工作?您可以测试函数中是否存在abc和qwert元素。如果您希望在这些元素中的任何一个不存在的情况下通过测
这是我的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<QQ:Envelope xmlns:QQ="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<RR:ABCInfo xmlns:RR="http
我有一系列的值。他们可以是平等的。。。或者不是。因此,对于XQuery,我希望获得序列中最频繁的项
let $counter := 0, $index1 := 0
for $value in $sequence
if (count(index-of($value, $sequence)))
then
{
$counter := count(index-of($value, $sequence)) $index1 := index-of($value)
} else {}
我做不到
我有一个客户机,其需求最好通过XQuery/XML解决方案来满足。我面临的问题是克服与这些技术缺乏市场技能相关的风险
这可能是一个销售问题,但其他人如何克服这一异议呢?我会让其他人从销售角度回答,或提出技术建议。这是我的项目管理观点。我认为你应该做两件事:
1.)拥有成本评估
画出两到三个架构,并尝试在小时、$$$或其他准想象的指标中摊销对客户的直接和持续影响。对于每个解决方案,构建起来有多困难?你需要多少不同的工程师?您需要多少不同的技术人员来熟悉项目以维护它,等等。不必有单独的中间层和专用关
在这个特殊的查询中,我试图:在“movies”文档中查找从所有来源提供的电影标题。我在where子句的行中得到一个错误。错误为:“/”的第一个操作数的必需项类型为node();提供的值具有项类型xs:anyAtomicType问题在于distinct-values()返回不同的字符串值,因此您试图对字符串使用xpath表达式$movie/title计算结果为(xs:string)/title,该值无效并引发异常
但就我理解您的目标的方式而言,我认为该查询不会返回您想要的结果。请尝试此解决方案以返
我有一个电影数据库,想用姓和/或名搜索演员。目标是列出演员的名字、片名以及演员在电影中扮演的角色的名字
XML电影数据库如下所示:
<movies>
<movie>
<title>A History of Violence</title>
<year>2005</year>
<country>USA</country>
<genre>Crime</
我正在尝试使用实体扩展管道进行文档转换。对于安装了内容处理的DB,我在查询控制台中有以下XQuery:
let $myxml := <node>George Washington never visited Norway. If he had a Social Security number, it might be 000-00-0001.
</node>
return cts:entity-highlight($myxml,
我试图通过运行以下xquery返回一组记录的所有作者:
for $a in /Record
return data($a/AuthorList/Author/Surname)
我有这个:
your query returned an empty sequence
我对xpath很确定,但我不知道它有什么问题。当您没有得到结果时,通常意味着您的查询是以与数据不匹配的方式进行的。我所做的是回到更一般的事情上,然后逐渐变得更具体
从这个开始:
for $a in /Record
return $a
根据撒克逊的说法
java net.sf.saxon.Query-qs:doc('a.xml')//p选择
当前目录中的文件a.xml
我正试图从bash脚本中实现这一点:
java net.sf.saxon.Query -qs:doc"('myFile.xml')"/rootElt/@myAtt
但是,我得到了以下错误:XTDE1162:传递给document()函数(myFile.xml)的相对URI;但没有可用的基本URI
根据文件,这不应该发生:
静态基本URI(在调用doc()函数时
在我的公司,我们使用Stylus Studio Enterprise维护许多xquery文件,目前是X16 64位构建“o”
出于某种原因,每当我们将处理器设置从DataDirect切换到Saxon时,无论大小,查询都会无限循环。我们必须终止struzzo.exe任务
因此,我们无法调试
从回答我的问题的意义上说,供应商一直反应迅速,但他们的诊断在我的环境中有些奇怪。但我在多个地方都有同事,他们似乎也有这个问题
所以我向这个社区提出的问题是“你曾经遇到过这个问题吗?如果是,你解决了吗?”
我运行
我们必须在marklogic中对年和月组合进行排序
例如
“2018年4月”,
“2018年12月”,
“2018年2月”,
“2018年11月”
它是根据字母顺序排序的,但我想根据月份和年份进行排序。您当然可以尝试将格式转换为xs:date,并使用顺序,例如
let $seq := ("2018 Apr", "2018 Dec", "2018 Feb", "2018 Nov"),
$month-order := ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'J
当前有两个XML文件,并希望将它们合并以创建一个XML文件
XML1(recipes.XML):
汉堡包
汉堡包是创造出来的。。。
1.
13
松饼
用。。。
2.
43
XML 2(components.XML):
汉堡包
182
$3.00
13
胡萝卜
182
2.50
1.
蓝莓
185
$5.00
一包200克
我想让它们结合起来,使食谱包含如下成分:
输出:
汉堡包
汉堡包是创造出来的。。。
1.
13
汉堡包
$3.00
13
胡萝卜
$2.50
1.
松饼
用。。。
2
我必须找到重复的值,而不会返回2倍于相同值的错误值(第一次是值上的“for”循环,第二次是集合中相同值上的“for”循环)
我运行了一个项目集合,其中的“name”属性应该是唯一的。
现在我有一个简单的For循环,当检测到重复项时,它会给我一些错误。
问题是,我知道有一种方法可以解析集合,而不考虑要测试的值的当前索引
因此,如果我有A、B、C、D和E项,属性名等于(按顺序):12、13、14、12和16,那么当前循环将返回错误2次。
第一次是因为它检测到项目A与项目D具有相同的值,第二次是因为它
我使用的是Basex版本8.6.6,我从GUI在数据库上创建全文索引,当数据库上发生任何更新操作时,所有创建的索引都将被删除
当我使用ft模块搜索任何内容时,就会出现错误,即数据库“test”没有全文索引
我希望如果索引已经创建,那么它不应该被删除
如何解决此问题?当您更新数据库时,索引显然不再有效(如果没有自动执行任何操作)。BaseX的默认行为是简单地删除索引。有几种可能性可以解决这个问题,BaseX docu在
鉴于您似乎使用了完整的文本索引,您基本上有两种选择:
在每次更新操作后,通过X
我主要针对使用SOAP交换的XML负载评估StylusStudio的xquery开发。
我继承了一个复杂的xquery(大约1800行),当我尝试使用Saxon作为引擎执行它时,我得到了以下错误:
XPST0003:Xquery sintax在路径表达式中的##:意外标记“”中出错
这个查询在AcquaLogic中运行良好,因此不能确定它是文件或Saxon中的bug。
有人能就此提出建议吗?至少要了解它在哪一行找到这个标记
提前感谢意味着Saxon遇到了一个文本“文件结尾”字节。也许您的路径表达
我在XQuery中尝试这一点,假设doc'input:instance'确实返回使用XSLT生成的有效XML文档
let $a:= <xsl:text>"<xsl:copy-of select="doc('input:instance')//A" />"</xsl:text>
let $p := <xsl:text>"<xsl:copy-of select="doc('input:instance')//P" />"</xsl:t
我不确定我在这里做错了什么,但我试图通过使用“where”设置两个条件,它们各自独立工作,但当我将它们组合在一起时,会得到每个文件的转储
如果我有:
for $i in collection("/db/people")
where $i//lastname="Smith"
return $i
我得到两个列表,因为有两种类型(a和b)
如果我有
for $i in collection("/db/people")
where $i//type="a"
return $i
我有538个房源,都是
我认识到(insert/delete)-xquerys在BaseX客户端执行时总是返回空字符串。我觉得这很令人困惑或不直观
有没有一种方法可以在不再次查询数据库的情况下确定查询是否“成功”(并使用可能存在错误的“可传递”逻辑,如“如果我删除了一个节点,XML中必须有'oldNodeCount-1'节点”)?
我想删除没有子节点的“node2”节点。
我该怎么做
<node1>
<node2>
<node3>4</node3>
</node2>
<node2></node2>
<node2></node2>
</node1>
4.
如何使用xquery>实现这一点如果要修改数据库,请使用xquery Update:
delete
我对XQuery有一个问题。逻辑是:
获取以“Manuel”开头的所有教师的姓名,消除重复,并指明每个教师班级的所有教室。按名称从最短到最长排序
我已经这样做了:
for $x in (doc("LMSGI06")//course[starts-with(teacher, "Manuel")])
order by string-length($x/teacher)
return
<teacher>
我的问题看似微不足道,但无法理解如何解析包含日期列表(以逗号分隔)的字符串。单个日期的解析部分不是问题,但空值是。问题是日期的顺序很重要,有些日期可以省略。日期的格式应为YYYY-mm-dd
因此,以下是有效输入和预期返回值:
,2000-12-12,2012-05-03, ➔ ( NULL, 2000-12-12, 2012-05-03, NULL )
2000-12-12,,2012-05-03 ➔ ( 2000-12-12, NULL, 2012-05-03 )
这是我的函
搜索整个数据库并显示具有给定元素名称的集合名称的XQuery是什么?您可以找到哪些集合包含与查询相匹配的文档,这些文档具有cts:collections()词典查找。您可以使用cts:element-query()和cts:true-query()来匹配名称上的元素,而不考虑内容
将这两个要素放在一起,查询将类似于:
cts:collections((), (),
cts:element-query(QName("namespace", "name"), cts:true-query()
如何在将xml从Marklogic DB下载到物理路径时使用编码
Sample Query:
xdmp:save("C:\test\sample.xml", doc(uri))
你检查过房间了吗?这里有一个实际的例子:
xdmp:save("C:\test\sample.xml", doc(uri),
<options xmlns="xdmp:save">
<output-encoding>utf-8</output-encoding>
我有以下xml,我需要在其中执行以下操作:
如果title和text元素的值相同,则根据score属性对这些列表元素进行排序
例如:
这里,第一个和第三个列表元素的标题和文本的值是相同的,因此这两个元素应该根据分数进行排序,并显示分数最高的列表,而放弃其他元素
我怎样才能做到这一点
期望输出:
<list>
<title>abcd</title>
<text>abcd</text>
<score>2&
使用:
It is throwing me an error. Could you please tell me how to do it.
根据是否存在元素,其计算结果为true()或false():
doc(“car.xml”)/car/model
其中包含字符串“BMW”我不知道xquery,但包含的内容似乎缺少一个结尾]此外,发布实际的错误消息将帮助知道xquery的人识别问题…尝试在BMW好的问题+1周围加上单引号或双引号。请参阅我的答案,了解完整、简短的一行解决方案。:)conta
我现在正在编写一个XQuery脚本,作为OxygenXML编辑器中的一个场景。它的工作原理是连接到XML数据库,并获取与用户输入匹配的文件:
脚本的主要部分是:
for $book in collection("/db/portfolio/product?select=*.xml;recurse=yes")
return
<myFile>{$book[contains(article/@product,$product_code) and contains(article/t
假设我有一个XML文件,其中包含具有以下结构的产品元素:
<product>
<name></name>
<price></price>
</product>
但我也想知道最贵产品的名称。
我不知道如何使用max()函数通过简单的flwor查询实现这一点。计算飞行前的最大值,并使用谓词返回与之匹配的产品:
let $products := collection('/Products')//product
let $
比如说,我收集了大约5000万张这样的唱片:
<record>
<some_data>
<some_data_id>112423425345235</some_data_id>
</some_data>
</record>
<record>
<some_data>
</some_data>
</record>
112423425345235
所以
我有一个BaseX数据库,它有大约500.000个事件节点,我使用以下选择:
for $b in //EventList/Event[Type = 'Measurement']
let $date as xs:dateTime := xs:dateTime($b/TimeStamp)
where $date ge xs:dateTime('"+startdate+"')
and $date le xs:dateTime('"+enddate+"')
return $b
奇怪的是,数据返回的
我需要根据BaseX命令行工具的-I选项提供的上下文转换一些XML文件:
$ basex --help
BaseX 8.4.2 [Standalone]
Usage: basex [-bcdiIoqrRstuvVwxXz] [input]
[input] XQuery or command file, or query string
-b<pars> Bind external query variables
-c<input> Execut
我得到以下错误:
元素构造函数:不允许更新表达式
尝试插入时,将节点测试作为第一个插入$c
我觉得我的代码就像我在网上看到的一样,尽管我显然出了什么问题
如何插入带有for循环的节点
declare namespace db="http://basex.org/modules/db";
declare namespace file="http://expath.org/ns/file";
declare variable $form13FFileNumber as xs:string exter
您好,我正在使用MarkLogic 9并尝试使用XQuery和FLWOR语句构建一个应用程序。我设置了http服务器。我在8031端口测试了一个带有静态文本的简单页面,效果很好。我还测试了一个
查询控制台中的FLWOR语句也可以正常工作。但当我把它结合起来时,它就不起作用了
我希望你能帮助我
曼尼,谢谢
埃里克
花卉声明ML9.0
for $i in /scope/item
let $sscc := $i/transaction/sscc/text()
return <tr><
我使用的是MarkLogic8
我有一个SPARQL语句
let $results :=
sem:sparql(
"
PREFIX skosxl: <http://www.w3.org/2008/05/skos-xl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/0
我正在研究Xforms和eXistDB,我一直在研究是否可以使用选择下拉列表并将选择用作变量,然后在eXist中运行xquery以返回结果。
我知道这可以通过像这样的html表单轻松完成,但我想使用XForms的高级功能。看看eXist db公共存储库中的和应用程序。您可以通过Dashboard>Package Manager查找并将其安装到本地eXist实例中。(我建议使用XSLTForms而不是betterForms,因为后者不再被维护。)一旦安装了文件和演示应用程序,打开它们,您就可以浏览
我最近开始研究MarkLogic10数据库
我需要做的是找到那些有身份证的文件
wew35r-ui856-iiu
当我这样问的时候
cts:element-value-match(xs:Qname("id"),".*\-.*")
我得到0个结果
但是
当我这样做的时候
fn:matches("wew35r-ui856-iiu",".*\-.*")
It return true
cts:element-value-
1 2 3 4 5 6 ...
下一页 最后一页 共 22 页