【发布时间】:2014-04-01 07:14:35
【问题描述】:
你好 StackOverflowers !
我得到了一个具有以下结构的 elasticSearch 文档,以便能够获取特定语言的标题翻译:
{
"contents": {
"title": {
"es": "hola",
"fr": "bonjour",
"de": "halo"
}
}
}
我的问题是这种结构不容易有效地转换为 scala 案例类 (我不希望语言的名称成为键的名称..)
case class Title(es:String, fr:String, de:String)
case class Contents(title:Title)
case class R00tJsonObject(contents:Contents)
我因此修改了我的文档结构:
"contents": {
"title": [
{
"lang": "es",
"value": "hola"
},
{
"lang": "fr",
"value": "bonjour"
},
{
"lang": "de",
"value": "Halo!"
}
]
}
所以我现在可以将每个翻译存储为元组列表,如下所示:
case class Title(lang:String, value:String)
case class Contents(title:List[Title])
case class R00tJsonObject(contents:Contents)
我通过执行这个弹性搜索查询来请求每种语言,例如法语:
"query": {
"bool": {
"must": [{
"term": {
"contents.title.lang": "fr"
}
}, {
"term": {
"contents.title.value": "bonjour"
}
}]
}
}
你觉得这个修改怎么样?鉴于此查询看起来必须浏览所有数组标题才能找到好的翻译,我是否应该担心潜在的性能问题?
需要你的建议:)
【问题讨论】:
标签: json scala elasticsearch