你好StackOverflowers!scala和elasticsearch的潛在性能問題
我得到如下結構的elasticSearch文件,以便能夠獲取標題翻譯爲特定語言:
{
"contents": {
"title": {
"es": "hola",
"fr": "bonjour",
"de": "halo"
}
}
}
我的問題是,這種結構是不容易有效地轉換爲斯卡拉case類 (我不想語言的名稱是關鍵的名稱。)
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"
}
}]
}
}
您對此修改有何看法?我擔心潛在的性能問題,因爲這個查詢看起來必須瀏覽所有的數組標題才能找到好的翻譯?
需要你的意見:)
你是對的。 Thx爲你的幫助:) – ylos