如何在弹性搜索中存储星形​​模型数据库

时间:2019-04-04 13:08:16

标签: json database elasticsearch mapping

我是Elastic-Search的总NooB,我在互联网上研究了如何通过弹性搜索存储高度相关的表,但这很令人困惑,这是我的问题,

我有大约16个表(一个事实表,另一个是维度表),我可以执行SQL请求,将所有表连接到包含所有字段的长行数组中,并以Json方式映射它,但会有大量重复的字段,

例如,维度表A“包含3个人:p1,p2,p3”和事实表包含1000多个行(例如),并且所有这些行都具有对这3个人的外键/引用,

那么理想的存储方式是什么?

将每个表放在不同的索引或类别中,还是将所有内容嵌入到每行一个对象中?

预先感谢

1 个答案:

答案 0 :(得分:0)

facts可以在其dimension字段被非规范化的情况下形成索引。并为dimensions创建一个单独的索引。


PUT /dimension_1/1
{
  "name": "John Smith" 
}
PUT /dimension_2/1
{
  "name": "John Doe" 
}
...



PUT /facts/1
{
  "title":    "facts",
  "name":     "p1",
  "dimension_1":     {
    "id":       1,
    "name":     "John Smith" 
  },
  "dimension_2":     {
    "id":       1,
    "name":     "John Doe" 
  }
...
}

引用 https://www.elastic.co/guide/en/elasticsearch/guide/master/denormalization.html