让我们想象一下这样的本地化文档:
{
"Id":"product/1",
"CategoryId":"categories/1",
"Translations":[
{ "Lang": "en", "Title:"en title"},
{ "Lang": "hr", "Title:"hr title"}
]
}
如果我查询索引 CategoryId:“categories / 1”AND Lang:“en”:
{
"Id":"product/1",
"CategoryId":"categories/1",
"Lang":"en",
"Title":"en title"
}
所以基本上,文档包含数组中的本地化字符串,我想只获得一种语言。在客户端上过滤不是问题,但如何在raven服务器上使用Transformer进行过滤?
或者,您能否建议一些其他文档结构来存储本地化内容?目前,我有单独的文件Product和ProductTranslation(适用于所有语言),但希望将其全部放在一个doc下(看起来更多OO:/)
答案 0 :(得分:1)
如果产品之间的唯一区别是翻译,我会选择不同的型号。产品文档将具有categoryId,price和产品信息的所有其余部分。
假设产品保存在products/1
下,您可以将其他文档保存在products/1/en
,products/1/es
等ID下,并将翻译过的字符串存储在那里。然后,您可以使用ResultTransformers将已翻译的字符串注入查询的最终结果。