私は弾性検索で簡単な質問があります。私はHTMLファイルを持っているので、他のフィールドと一緒にインデックスに格納したいだけです。私は2つの異なる指標として以下作成した弾性検索インデックスのサイズ
、
オプション1:バイナリフィールドを有し、BASE64 にHTMLに変換
(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)I 2)ファイル "Html"を圧縮してbase64に変換し、ESインデックス(myindex1) にロードしました。3)同じ10kデータサンプルをmyindex2にロードしました。
理論的には、圧縮データのサイズは小さくする必要があります。私の前提は、myindex1のサイズはmyindex2より小さくなければならないということでした。
しかし、私はそれをverifedとき、
- myindex1 - > 228.3メガバイト
- myindex2 - 私たちは(圧縮なし)myindex2の大きさの上に見るように> 222.3メガバイト
小さくなる。
なぜmyindex2のサイズがmyindex1よりも小さいのですか?
ありがとうございます。私が圧縮に何を意味したかは次のとおりです:Html =(zlib.compress(Html.encode( 'utf-8')、9))。encode( 'base64')。私は実際にPythonでzlibを使って文字列を圧縮してからBase64に変換します – Backtrack
私の質問が更新されました。私はoption1で提出されたHTMLを圧縮するためにZlibを使用しています。 – Backtrack
zlibの部分は非常に重要な情報のビットでした;-) – Val