0

我有以下原型的文件:

{
   title: "HD8200 DLP Projector",
   normal_price: 4999.99,
   specifications: [
       {
           ov: "HD (1920 x 1080)",
           fn: "Resolution (Native / Max)",
           o: 7,
           f: 211
       },
       {
           ov: "20000",
           fn: "Contrast Ratio",
           o: 15,
           f: 225
       }
   ]
}

我正在寻找根据规范为此产品数据库创建过滤器列表。

o对于每个字段 ( ),如何获取映射到其产品计数器的选项 ID ( ) 列表f

假设我需要为特定的字段 ID 列表(例如 211 和 225)实现此目的。

4

1 回答 1

0

编写一个映射器,为每个 map() 调用获取一个文档,并为每个选项写出一条记录。记录键是字段 ID,值是标志“1”、产品标题和选项 ID 的串联。

编写另一个映射器来读取 id 列表并写出具有相同格式的记录:键是字段 ID,值是标志“0”和两个空字符串的串联。

写一个Reducer来读入两个mapper写入的记录。对 reducer() 的每次调用都会传入为给定字段编写的所有记录。如果其中一条记录带有“0”标志,那么该字段就是您感兴趣的字段之一。只有这样,您才会为每个带有“1”标志的记录写出一条记录。键是产品标题,值是选项 ID。

定义您的第一个作业驱动程序类以使用两个映射器和一个减速器。此步骤将为您指定的字段 id 提供成对的产品选项。您需要第二份工作来按产品收集选项,反之亦然。

于 2013-03-22T18:15:09.860 回答