1

让我们想象一下具有如下本地化的文档:

{  
    "Id":"product/1",  
    "CategoryId":"categories/1",  
    "Translations":[  
        { "Lang": "en", "Title:"en title"},  
        { "Lang": "hr", "Title:"hr title"}
    ]
} 

如果我查询索引CategoryId:"categories/1" AND Lang:"en",我想从 Raven 的投影/展平/过滤结果中获得如下所示的结果:

{  
    "Id":"product/1",
    "CategoryId":"categories/1",  
    "Lang":"en",  
    "Title":"en title"
}

所以基本上,文档包含数组中的本地化字符串,我只想获得一种语言。在客户端过滤不是问题,但是如何在 raven 服务器上使用 Transformer 进行过滤?

或者,您能否建议一些其他文档结构来存储本地化内容?目前,我有单独的文档 Product 和 ProductTranslation(适用于每种语言),但希望将它们全部放在一个文档下(看起来更 OO:/)

4

1 回答 1

1

如果产品之间的唯一区别是翻译,我会选择不同的模型。产品文档将包含 categoryId、价格和所有其他产品信息。

假设产品保存在 下products/1,然后您可以将其他文档保存在 ID 下,例如等products/1/enproducts/1/es并将翻译后的字符串存储在那里。然后,您可以使用 ResultTransformers 将翻译后的字符串注入到查询的最终结果中。

于 2013-08-10T21:19:55.857 回答