问题标签 [marklogic-dhf]

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.

0 投票
2 回答
143 浏览

marklogic - MarkLogic - 使用 MLCP 的增量加载

MarkLogic 版本:9.0-6.2

我们正在尝试使用 mlcp 将客户数据的日常更改加载到 data-hub-STAGING 中,然后使用协调流将更改带入 data-hub-FINAL。

据我了解,“collector.sjs”用于返回需要协调的 uri。在第 1 天满载后,收集器是否有办法识别前一天的变化并仅协调这些行?

我有几个设计

  1. 每次运行都保存批处理运行时间,并在收集器中有逻辑返回具有较高批处理运行时间的 uri(每个文档都与批处理运行时间一起保存)

  2. 将每个文档保存到两个集合(customer 和 customer_currentDate),然后让收集器从 customer_currentDate 集合中返回文档。但是,如果摄取和协调在不同的日期运行,这将有问题

  3. 将每个文档保存到两个集合(customer 和 customer_batchDateTime),然后创建一个标记(类似于 PROCESS 集合中的一行,PROCESS_IND 为“N”)。然后收集器将扫描 PROCESS 集合并查找 PROCESS_IND 为“N”的文档并从 customer_batchDateTime 集合中返回文档。最后,writer.sjs 会将 PROCESS_IND 变为 'Y'

在继续进行上述任何选项之前,我只想检查是否有任何内置功能在摄取或协调流程中以轻松识别增量/更改记录,以免我过度设计流程。

0 投票
1 回答
161 浏览

marklogic-9 - MarkLogic - JSON 文档的 mlcp 导出

MarkLogic 版本:9.0-6.2 MLCP - 版本 - 9.0.6

我正在尝试使用以下代码通过 mlcp 导出导出 JSON 文档的集合(客户)。执行脚本后,我没有从 mlcp 得到任何响应,并且没有创建输出文件。

我验证了 data-hub-STAGING(8010 端口)有一个名为 customer 的集合,其中包含 100 个 JSON 文档。linux用户对脚本有执行权限,对输出路径有写权限。用户名和密码正确。

有趣的是,当我使用相同的 linux 用户从同一目录运行 mlcp 代码时,我能够将文档导入 data-hub-STAGING

我的导出代码有什么问题吗?

0 投票
2 回答
77 浏览

marklogic - Integrating Smart Mastering to DHF project

I am newbie to Smart Mastering, but already stuck in the basic procedure. I have the latest ML9 and DHF already installed on my laptop, already created my DHF project via Quickstart UI.

  1. To call Smart Mastering APIs from my existing project's writer plugin, what should I do in advance?

  2. When loading match/merge option files, should I better create as independent input flow?

0 投票
1 回答
53 浏览

marklogic - MarkLogic - setting PATH variable for Gradle tasks

MarkLogic version - 9.0-6.2 Gradle version - 4.5.1

We have a linux batch server where data hub, mlcp, gradle are deployed.

Location of datahub folder is /path1/data-hub. This is where I have data hub components (plugins, user-config etc. along with gradle files like gradlew, gradle.bat etc)

Location of my bash scripts is /path1/scripts/data-hub

Location where gradle is unpacked is /path2/gradle/gradle-4.5.1. This is where the bin directory is located that has gradle and gradle.bat files (gradlew does not exist under bin)

I have a PATH variable created at '/path2/gradle/gradle-4.5.1/bin' and also at /path1/data-hub (where data hub is setup and gradlew file exists)

When I execute below code from a bash script placed at /path1/data-hub, the harmonization flow is running fine.

However, when I place the exact same script at /data/scripts/data-hub, the flow is not running.

I tried running the code by removing ./ before gradlew but still getting error 'gradlew command not found'

Any help is highly appreciated.

0 投票
1 回答
31 浏览

marklogic-9 - 如何从另一个数据库中使用 MarkLogic DataHub importFlow

我有一个用例需要查询一个数据库中的一些数据,然后将此数据用作 MarkLogic DataHub 管道的新输入。

我创建了一个有效的导入和协调流程。

现在我想从另一个数据库运行导入流程,将数据插入到 dhf 中的暂存数据库中。

显然,您需要在 datahub 内有一个工作导入流来运行此代码,但问题是关于一般用例如何运行导入流,而不是从 gradle 而是从 marklogic 数据库内部。

所有 dhf 代码都是 sjs。

0 投票
2 回答
62 浏览

marklogic - MarkLogic - 使用 Javascript 将变量传递给 XML

我正在使用 javascript 读取 XML,并在存储到数据库之前创建一个信封。在创建标题时,我需要用当前用户的值填充“创建者”元素。

我尝试了类似下面的方法,但它没有用值替换变量。

如何使用 Javascript 将变量传递给 XML?

0 投票
1 回答
224 浏览

marklogic - MarkLogic - 摄取和协调性能调整

我有一个 500 MB 的聚合 XML 文件,mlcp 摄取需要 30 秒(大约 80,000 个文档),协调需要大约 6 分钟(在加载到最终数据库之前将每个 XML 文档转换为 JSON)。

协调工作遵循常规数据中心模式(收集器、内容、作者等)

我有 50 个这样的文件要处理并寻找优化运行时间的方法。

1) 有没有一种方法可以启动 mlcp 加载并为多个文件并行协调(在同一个工作中)?

2)在协调工作中,我尝试使用 -PbatchSize 和 -PthreadCount 参数,但它们对批量大小和 6 个线程计数没有超过 500 的影响。如何通过增加这两个值来提高性能?需要任何服务器级别的设置吗?是否有任何其他参数可以帮助提高性能?

3)任何其他替代方案来提高协调步骤的性能?

提前致谢!

0 投票
3 回答
157 浏览

php - 如何在 Marklogic 的光学 API 查询中使用用户在 Web 应用程序中设置的参数值?

块引用

我有一个 Web 应用程序(用 js 编写),用户可以在其中输入名称(以及其他条件)并执行对 ML 数据库的搜索,并以表格表示与该名称(或其他搜索条件)关联的一些数据) 被退回。在开发的第一阶段,我编写了 optic api 查询,并将 name 的值硬编码在查询的 where 语句中。我这样做是为了测试 REST api 是否正确调用了查询等。一切正常,我可以看到在 Web 应用程序中返回的硬编码名称的正确结果。现在我想将用户提供的 name 值传递给 Optic api 查询 (EntityInformation_Optic_API_Query.json) 以替换 where 语句中的硬编码值。我该怎么做呢?提前致谢。


所有者编辑

该应用程序是用 PHP 编写的,我在下面复制了代码。在此您可以看到调用 optic api 查询的位置以及构建参数的位置。

0 投票
1 回答
55 浏览

marklogic - MarkLogic:协调流程以跳过编写器

MarkLogic 版本:9.0-6.2

我们有一个协调流程,我们准备将 content.sjs 中的“源”变量传递给 writer.sjs。我有一个应该跳过编写器的场景(例如,如果文档已经存在于最终数据库中并且暂存文档的时间戳小于最终文档中的时间戳,那么我不想写入最终文档)

这是 content.sjs 中的代码片段

我们注意到,当源为空时,有时这会跳过编写器。但是,在某些情况下,使用空源调用 writer,因此信封是使用标头创建的,但实例是空的。

我们尝试了以下逻辑,但仍然没有看到一致的行为。

当我们不想在协调流程期间从暂存中编写文档时,跳过编写器的最佳方法是什么。

0 投票
1 回答
153 浏览

marklogic - MarkLogic:DHF 协调流程,用于为 STAGING DB 中的每个文档将多个文档写入 FINAL db

MarkLogic 版本:9.0-6.2

我正在使用 MLCP 将文档摄取到 STAGING DB 中。对于 STAGING DB 中的每个文档,我需要更新 FINAL DB 中的多个文档。

例如,暂存数据库文档包含带有退回指示符的电子邮件。我需要在 FINAL 中具有相同电子邮件 ID 的集合中的所有文档中更新反弹指示器。

我可以使用 Harmonize flow 来执行此操作吗?如何在 content.sjs 中编码以多次调用 writer.sjs?

我尝试在 writer.sjs 中使用循环来返回 FINAL 中的每个文档并应用 documentInsert(基本上是 writer.sjs 中的 FOR 循环),但行为并不一致。另外,我不确定这是否是 Harmonize flow 的正确用法。

我尝试编写自定义代码并通过 REST API 调用进行调用。这按预期工作。

请建议处理我的要求的最佳方法(Harmonize Vs Custom REST)。