- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在 MarkLogic 中,我尝试了以下代码。但是,我希望有一个程序可以按年、月、日排序,然后限制结果。下面的代码限制了结果,然后按 YY、MM、DD 排序,返回了错误的结果。
xquery version "1.0-ml";
declare variable $query :=
cts:and-query
((
cts:element-word-query(xs:QName("journal-title"),"MyJournal"),
cts:element-word-query(xs:QName("subject"),"MyNews")));
declare function local:do-query(){
element xml {
for $i in cts:uris( (), ("limit=50"), $query)
let $item := doc($i)
order by ($item//pub-date/year) descending, ($item//pub-date/month) descending, ($item//pub-date/day) descending
return
element article {
element journal-title { $item//journal-title },
element sub {$item//article-meta//article-categories//subj-group[@subj-group-type="content-type"]//subject},
element title { $item//article-title },
element byline { $item//contrib/string-name },
element body { $item//body },
element images {
for $graphic in $item//body//graphic
return element image { ($graphic//@*[name()="xlink:href"]/data()) }},
element year {$item//pub-date/year/string()},
element month {$item//pub-date/month/string()},
element day {$item//pub-date/day/string()},
element doi { $item//article-id[@pub-id-type="doi"]/text() },
element doitrim {substring-after($item//article-id[@pub-id-type="doi"]/text(),"/")}
}
}
};
local:do-query()
提前致谢。
最佳答案
您的代码正在选择前 50 个与查询条件匹配的 URI,加载这些文档并对它们进行排序。
听起来好像您想搜索符合查询条件的文档,结果按年、月、日值排序,然后从排序后的集合中选择前 50 个。
您可以使用 cts:search()
搜索符合查询条件的文档并使用 cts:index-order()
序列使用 cts:element-reference()
返回按年、月、日排序的结果,然后使用谓词来限制这些排序文档的前 50 个。
xquery version "1.0-ml";
declare variable $query :=
cts:and-query((
cts:element-word-query(xs:QName("journal-title"),"MyJournal"),
cts:element-word-query(xs:QName("subject"),"MyNews")
));
declare function local:do-query() {
element xml {
for $item in cts:search(fn:doc(), $query,
("unfiltered",
(
cts:index-order(cts:element-reference(xs:QName("year")), "descending"),
cts:index-order(cts:element-reference(xs:QName("month")), "descending"),
cts:index-order(cts:element-reference(xs:QName("day")), "descending")
)
)
)[1 to 50]
return
element article {
base-uri(),
element journal-title { $item//journal-title },
element sub {$item//article-meta//article-categories//subj-group[@subj-group-type="content-type"]//subject},
element title { $item//article-title },
element byline { $item//contrib/string-name },
element body { $item//body },
element images {
for $graphic in $item//body//graphic
return element image { ($graphic//@*[name()="xlink:href"]/data()) }},
element year {$item//pub-date/year/string()},
element month {$item//pub-date/month/string()},
element day {$item//pub-date/day/string()},
element doi { $item//article-id[@pub-id-type="doi"]/text() },
element doitrim {substring-after($item//article-id[@pub-id-type="doi"]/text(),"/")}
}
}
};
local:do-query()
关于xml - Marklogic/XQuery - 要排序的结果然后限制为最近的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673055/
今天我从 MarkLogic 查询控制台得到一个奇怪的输出。当我尝试获取 MarkLogic 数据库中已存在的文档的文档属性时,ML 查询控制台返回一个空的查询序列。 这返回了一个文档: fn:do
根据文档: 如果内容定期更新,理想情况下,每个林每个林应该有两个 CPU(或内核)。 例如,双处理器/双核机器应该能够托管两个 256GB 的林,而四处理器/双核系统应该能够托管四个 256GB 的林
在使用 ml-gradle 进行部署期间,我必须使用 marklogic API 在集群中创建多个引导主机。 我知道我可以通过管理控制台(8001 端口)配置它,但我不知道如何使用 MarkLogic
是否有任何参数可以控制森林的最大尺寸?或任何最佳实践,运行中的脚本? 最佳答案 森林大小没有硬性限制,但有一些一般准则。文档的大小和类型、索引、硬件规范和使用模式等因素都会影响性能。 来自 MarkL
将队列大小从默认的 100000 增加到 500000 会产生什么影响? 是否有经验法则来计算合理的最大数量使用可用资源(如 RAM、CPU 核心和其他需要考虑的资源)的队列大小。 如有任何建议,我们
我正在使用 获取给定搜索字符串的方面 search:search($q, $options) 其中$q是搜索文本和 $options 是 frequency-order
什么是 MarkLogic 中的注册查询,用例是什么? http://docs.marklogic.com/cts:registered-query 最佳答案 MarkLogic 在 Search D
CAP 定理对我来说似乎合乎逻辑。我的理解是: 如果我在分布式系统上有一致性,我必须等待所有交易。 ACID 的成本是复制所有数据的时间网络。 但 Marklogic 怎么能两者兼得呢。 ACID和分
如何在 MarkLogic 中找到文档的创建日期? 我希望找到类似 xdmp:document-creation-date() 的东西。 谢谢。 最佳答案 MarkLogic 将 maintain a
ML 8是否已支持按路径索引进行排序?我想要实现类似于以下内容: attritbutes//name 如果没有,有没有办法做到这一点?我有几个名称相同的元素,它们来自不同的父节
我有一个多 TB 的生产数据库(MarkLogic 9.0-8,RedHat),我需要向其添加 2 个新的元素范围索引。在我可以执行更改之前,我需要估计将受重新索引影响的文档数量,以确保我的维护窗口足
我在 Marklogic 数据库中有大约 20 个 lacs 文档。我希望我的搜索应用程序中的文档总数用于分页。为了获得我正在使用的总数 xdmp:estimate(cts:search(doc(),
var marklogic=require('marklogic'); var ins=marklogic.createDatabaseClient({'host':'localhost','port
我在 MarkLogic 7 中有一个 3 节点集群。我创建了一个数据库“sample-db”,其中包含以下林: sample-db-01 托管在 node-1 上 sample-db-02 托管在
您能否提供启用集合词典的查询。 我已经使用了这个编码,但我遇到了同样的问题。 xquery 版本“1.0-ml”; import module namespace admin = "http://
我有一个主集群和一个外部集群耦合在一起。此外,我还为几个数据库启用了数据库复制,并将按名称设置为 false 的林连接。我想将这两个集群分离,并在几天后以最少的停机时间重新耦合它们。我们的主要事件是从
有没有办法使用关系运算符来使用 MarkLogic 自定义约束进行搜索? 对于正常范围查询,我可以搜索完全匹配(“thing:123”)或使用关系运算符(“thing LT 123”)。但是,当我编写
我尝试了以下 xquery 示例,但它似乎只返回一个配置脚本,而不是在服务器上实际创建 NewDB。实际创建数据库和林的步骤是什么? xquery version "1.0-ml"; import
在将文件存储库加载到 MarkLogic 中时,我意识到它包含大量重复文档。例如,相同产品目录文档(“catalog.pdf”)的多个副本可能存在于几个不同的目录中,例如:/products/publ
除了之外,还有什么方法可以搜索PPT、PDF等二进制文件的内容吗? 使用 xdmp:document-filter() 函数将其转换为 X HTML 格式并在其上搜索? 最佳答案 基本上没有。您必须从
我是一名优秀的程序员,十分优秀!