Elasticsearch索引大小

时间:2016-11-02 14:39:46

标签: elasticsearch indexing size

我在弹性搜索方面有一个简单的问题。我有HTML文件,我只想将它存储在我的索引与其他字段。

我创建了两个不同的索引,如下所示,

option1:将字段设为二进制并将html转换为base64 (myindex1是索引名称,Html字段是compresed和base64值)

HTML = (zlib.compress(Html.encode('utf-8'),9)).encode('base64') 

使用上面的代码我在加载到myindex1之前压缩和编码为base64。

"Html": {
      "type": "binary",
      "index": "no",
      "include_in_all": false,
      doc_values : false,
      store : true,
},

Oprion 2:在字符串字段中有html(myindex2是索引名称,Html字段是普通字符串)

   "Html": {
          "type": "string",
          "index": "no",
          "include_in_all": false,
          doc_values : false,
          store : true,
    },

实验: 1)我收集了10K数据样本 2)compressed并转换了#34; Html"到base64并加载到ES索引(myindex1) 3)加载与myindex2相同的10k数据样本。

理论上,压缩数据的大小应该很小。所以我的假设是myindex1的大小应该小于myindex2。

但是当我验证它时,

  • myindex1 - > 228.3mb
  • myindex2 - > 222.3mb

如上所述,myindex2(无压缩)的大小更小。

为什么myindex2的尺寸小于myindex1?

1 个答案:

答案 0 :(得分:0)

Base64不是压缩算法,而是编码算法。

Base64编码数据的大小约为未编码数据的1.37倍,因此您所观察到的数据完全正常。

Base64的主要目标是将二进制数据编码为ASCII格式。如果您正在寻找压缩算法,则会有few choices,例如ZIP,LZF等