问题标签 [marklogic-8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xquery - 用于确定元素不存在的文档的高效 XQuery 查询
假设我在这样的集合中有大约 5000 万条记录:
所以我可能有一百万条记录(坏数据),如下所示:
some_data 元素为空。因此,如果我在some_data_idelement-range-index
上进行了设置,那么什么是高效的 XQuery 查询,它可以让我删除所有空的查询?
我认为我正在寻找的是一个不是FLWOR的查询,您可以在其中检查每个元素的子记录是否存在,因为我认为这是低效的(即拉回数据然后过滤)?
而如果我在cts:search
查询中这样做,那么它会更有效,例如在将数据拉回之前过滤数据?
请编写一个可以有效执行此操作的查询,并确认我对FLWOR语句的假设是否正确。
node.js - Marklogic 8 Node.js API - 如何在根的属性子项上进行搜索?
[28/09 17:15 更新]
我正在处理以下类型的 json 数据:
包含在数据库中后,使用 node.js 进行搜索
将返回名为“Sun”的电影和具有 seeAlso/title 属性的电影(请原谅 xpath 语法)=“Sun”。
我需要找到 1/ 标题 = 'Sun' 的电影 2/ seeAlso/title = 'Sun' 的电影。
我尝试使用 q.scope() 进行容器查询,但没有成功;我没有找到如何确定根对象节点(第一种情况)的范围,而对于第二种情况,
作为第一个结果返回与根对象节点内的所有文本匹配的项目
这似乎很疯狂。
关于如何对非规范化的 json 数据进行此类搜索的任何想法?
node.js - Marklogic 8 Node.js API - 短语搜索
我正在尝试使用应用于 json 对象的结构化查询对电影标题进行搜索。
让我们想象一部名为“Marius et Jeannette”的电影。
或者
两者都给出结果。
但
才不是。
有没有办法使用 node.js API 配置“近查询”?我在文档中没有找到关于这个主题的任何内容。
marklogic - MarkLogic 8 JavaScript 数组
我正在尝试使用数组。这是一些解释我在做什么的工作代码。
现在,当我对查询结果使用相同的逻辑时,它不再起作用了。
我已经验证了两个查询的结果都是一个数组。数组由值组成,就像示例代码一样;1000、2000 等。此外,当我使用 notAndQuery 从第一个查询中排除第二个查询的结果时,这没有效果。
例如,当我查看 qDo[2] 时,会返回正确的值。
我的 andNotQuery:
sparql - MarkLogic 中的命名图支持
我不明白FROM NAMED
MarkLogic 是如何支持图形的。我正在尝试使用 SPARQL 查询来查找三元组来自哪个集合。结果真的很混乱。例如:
返回一组三元组。但是,如果我取消注释该行# GRAPH ?g
,则会返回以下错误:
[1.0-ml] XDMP-COLLXCNNOTFOUND: amped-qconsole:qconsole-sparql($query, (), (), (), ()) -- Collection lexicon not enabled
和亮点就WHERE {
行了。
此外,以下工作并返回一组三元组:
但不是这个:
它返回一个空集。添加该GRAPH ?g
行会导致返回与上述相同的错误。我真的很困惑。有人可以解释这种行为吗?
search - MarkLogic 变音符号不敏感片段
现在,我正在使用此代码生成片段,基于我从 MarkLogic 搜索中获得的 JSON 文档。
执行搜索时,我正在使用:
因此,搜索工作对变音符号不敏感并产生良好的结果,但在search:snippet
我无法diacritic-insensitive
像在cts.jsonPropertyValueQuery
.
在文档中,我可以在描述中看到这一点
用于定义搜索语法和控制搜索的选项。请参阅函数 search:search 的 $options 描述。请注意,您不能使用 search:snippet 在 transform-results 选项上指定 apply 属性;要使用不同的片段功能,请改用 search:search 或 search:resolve。
但在这里是:
那么这是否意味着我不能将其他选项传递给 search:snippet?或者有没有办法做到这一点?
我正在使用它进行测试chávez
并且它正在产生结果,但是仅针对包含完全匹配的文档正确生成片段,这意味着该文档
查韦斯做了什么
不会高调Chavez
和
查韦斯做了什么
将获得高光
提前致谢!
marklogic - xdmp http post options for token authentication
I have found the https://docs.marklogic.com/xdmp:http-post function.
I would like to use the token authentication method to send out a JSON document from MarkLogic to a middle tier node.js application. We use token authentication.
What http-options should I use to make this work?
Example:
Ofcourse posting this as-is gives me a 401 unauthorized response:
marklogic - mlcp 将 csv 文件转换为 OBI 源
我有以下挑战。我们有想要使用 mlcp 加载到 MarkLogic 数据库中的 csv 文件。我们还希望在加载过程中将加载的行转换为 OBI 源,因此我们为此构建了一个转换函数。
现在我正在为转型而苦苦挣扎。如果没有转换,数据将按预期作为每行的文档加载。
.csv 示例:
变换救护车.xqy:
mlcp 命令:
mlcp 输出:
我试过没有 xdmp:unquote() 但后来我遇到了强制 document-node() 错误......
请指教...
javascript - 空 JSON 数组的 MarkLogic Javascript 查询
我正在处理一个查询,该查询将过滤具有像这样的空 JSON 数组节点的文档(输出属性):
现在我正在使用这个查询:
它正在过滤所有带有空(空 GUID)Input
字段的文档,并且应该(但不是)过滤带有空(空数组)的文档Output
。
它正在处理文档:
我认为这是因为空数组是 MarkLogic 的一个值。有没有人有类似的问题?如何查询空 JSON 数组?
编辑:
非空消息(应该返回)如下所示:
triggers - 触发器不会运行(添加了更多信息)
我已经修补这个触发器几个小时了,我想我现在已经查明了这个问题。
我在ML8 文档中设置了一个示例触发器。
现在我已将其修改为更真实的动作。
问题似乎是我使用了一个库模块,它在 lib.xqy 中保存了我自己的函数。我已经在查询控制台中测试了库本身,所有功能都运行良好。
警报操作本身在 QC 中也运行良好。
simpleTrigger 工作正常。
如果我删除使用我自己的库的函数,则运行更复杂的。
似乎触发器是由用户运行或从找不到我的模块的地方(在模块数据库中)运行的。我已将 trigger-db 设置为指向 content-db。
触发器查看新文档的目录(文档创建)。
如果我想使用我自己的 lib 函数,抛出的错误是:
该模块位于 modules-db...
困扰我的另一件事是 ML doc 中的示例
在这种情况下,权限应用程序用户会做什么?
无论如何,主要问题:如果我在触发器操作中使用自定义模块,为什么触发器不会运行?
我看过这个问题并认为它是相关的,但我不明白那里的答案......
编辑开始,有关触发器创建语句的更多信息:
确实,触发器是从 QC 创建的,因此确实是管理员(我还必须弄清楚如何将代码添加到 app-specific.rb)。并且触发器操作也是从 QC 加载的,其中包含与文档中的触发器示例等效的 doc insert 语句。
为了完整起见,我根据 Geert 的建议将此添加到 app-specific.rb
为了进行测试,我还将它作为内容的一部分加载(使用 ./ml 本地部署内容来加载它,正如在操作之前所说的那样,它将运行,因此操作文档本身的权限似乎没有问题。我做什么不明白的是,一旦我尝试在操作中使用我自己的模块,它就找不到模块,或者(见评论大卫)对模块没有正确的权限。所以触发操作将无法运行......该模块在 /src/lib/lib.xqy 下加载了 roxy
第二次编辑
通过将以下内容添加到 app_specific.rb,我添加了所有触发 stuf 以包含在 roxy 中:
如您所见,根路径现在是“/”行
我还手动添加了权限,但是只要添加指向 sccs-lib.xqy 的行,我的触发器就会失败......