我可以用marklogic QuickStart统一和合并store-data.zip文件中的产品数据吗?

问题描述 投票:1回答:1

我想统一(或合并)store-data.zip文件中的产品内容,该文件位于 https:/marklogic.github.iomarklogic-data-hubdatastore-data.zip。 使用MarkLogic DHF QuickStart GUI。

MarkLogic版本:10.0.4 QuickStart版本:5.2.1。

我正试图将数据合并到 Products/games/board_games.csv 与数据在 Products/misc/apparel.csv, Products/misc/accessories.csv, Products/misc/extensions.csv 变成一个单一的产品实体。

我非常困惑,但是,让我解释一下我所执行的步骤。

  1. 使用 "摄取 "步骤,分两步摄取数据(一步是游戏,另一步是杂项)。
  2. one实体的形象
  3. 添加了服装、配件和扩展实体的映射步骤,并针对产品实体添加了额外的集合。ADDONS. 绘图的形象
  4. 增加了产品(游戏)的映射步骤,并以产品实体为目标(没有额外的集合)
  5. 匹配步骤是用 Source collection: ADDONSTarget Entity: ProductEntityMatch Options: GameId.
  6. 合并步骤是在 Source Collection: datahubMatchingSummaryTarget Entity: ProductEntity

结果是 如期而至。

问题&问题。

  1. 数据的映射没有正确完成。扩展数据被插入到服装URL中(即使我在映射时选择了正确的URL)。为什么会这样?如果在同一目标实体上进行映射,似乎最后一个映射步骤会覆盖其他步骤。映射结果出来后
  2. 在匹配步骤后,匹配结果集合显示有7个条目包含相似的匹配。为什么会这样呢?匹配步骤后的结果
  3. 合并结果很奇怪。有一个基于GameId的记录合并,但不完整。

请帮助我。我想合并这些文件。我无法想象gradle任务会有多难。

marklogic marklogic-dhf
1个回答
0
投票

如果 Match Options: GameIdTarget Entity: ProductEntity,你的MappingMatchingMerge模型就不能用了。

在这里,我想说的是,你的MappingMatchingMerge模型并不能满足你的要求。GameId 在你 Product 实体都是唯一值。而没有另一组board_game作为候选匹配。

你的映射逻辑只是投射了 一个(board_game)-to-noneMerge在这种情况下是行不通的。

请看下面的统一图片。 BoardGame 1000082有一个附件和一个扩展。

0
投票

BoardGame 1000098有三个扩展,但没有服装或配件。enter image description here

我想以上是你期望的结果。

enter image description here你的MatchingMerge逻辑是这样的。

Matching将id@extension = 62与id@accessories = 62进行合并。

1之后,它合并了扩展和配件,SKU@配件=483610118343,游戏ID@配件=1000156。

  1. 2后,它合并了BoardGame和配件,gameID@BoardGame=1000156,gameSKU@BoardGame=133652714825。
  2. 而它演绎的是虚假的结果。

© www.soinside.com 2019 - 2024. All rights reserved.