elasticsearch,memory,Performance,elasticsearch,Memory" /> elasticsearch,memory,Performance,elasticsearch,Memory" />

Performance 弹性搜索性能对索引映射结构选择的影响

Performance 弹性搜索性能对索引映射结构选择的影响,performance,elasticsearch,memory,Performance,elasticsearch,Memory,我接收的数据格式如下: { name:"index_name", status: "good", datapoints: [{ paramType: "ABC", batch: [{ time:"timestamp1<epoch in sec>", value: "123"

我接收的数据格式如下:

   {
     name:"index_name",
     status: "good",
     datapoints: [{
       paramType: "ABC",
       batch: [{
         time:"timestamp1<epoch in sec>",
         value: "123"
       },{
         time:"timestamp2<epoch in sec>",
         value: "123"
       }]
     },
     {
       paramType: "XYZ",
       batch: [{
         time:"timestamp1<epoch in sec>",
         value: "123"
       },{
         time:"timestamp2<epoch in sec>",
         value: "124"
       }]
     }]

   }
哪种方法最有效

如果我选择第二种方式,我知道在
批处理
数组和10-15
参数类型
数组中可能有约1000个元素,这意味着将生成约15k个文档,索引中将重复15k*5个字段(=75K)键值对


这解释了使用嵌套但未提供与性能相关的统计信息的优缺点。在我的例子中,内部对象中不会有任何更新。所以不确定哪一个更好。另外,我有两个嵌套对象,因此我想知道如何查询是否使用嵌套来获取时间范围之间的数据?

平面结构将比嵌套结构性能更好。嵌套查询比术语查询慢;此外,在索引时-在内部,单个嵌套文档表示为一组文档;只是它们在同一块中被索引

只要您的要求得到满足,第二种选择效果更好

{
name : "index_name",
status: "good",
paramType:"ABC",
time:"timestamp<epoch in sec>",
value: "123"
}