Ich habe eine kurze Frage in der elastischen Suche. Ich habe HTML-Datei und ich wollte es nur in meinem Index mit anderen Feldern speichern.Elasticsearch Index Größe
I wie unten zwei verschiedenen Index erstellt haben,
option1: das Feld als binäres haben und wandeln die HTML Base64 (myindex1 ist der Indexname wird HTML-Feld compresed und Base64-Wert)
HTML = (zlib.compress(Html.encode('utf-8'),9)).encode('base64')
mit dem obigen Code Ich komprimiere und Codierung zu base64 vor dem Laden in myindex1.
"Html": {
"type": "binary",
"index": "no",
"include_in_all": false,
doc_values : false,
store : true,
},
Oprion 2: haben die html, wie es in Zeichenketten-Feld ist (myindex2 ist der Indexname, HTML-Feld ist klar Zeichenfolge, wie sie ist)
"Html": {
"type": "string",
"index": "no",
"include_in_all": false,
doc_values : false,
store : true,
},
Experiment: 1) i haben 10K Datenproben gesammelt 2) compresed und konvertiert das Feld "Html" zu base64 und geladen in ES-Index (myindex1) 3) geladen gleichen 10k Datenproben, wie es in myindex2 ist.
Theoretisch sollte die Größe der komprimierten Daten klein sein. Also meine Annahme war, dass die Größe von myindex1 kleiner als myindex2 sein sollte. Aber
wenn ich verifed es,
- myindex1 -> 228.3mb
- myindex2 -> 222.3mb
Wie wir oben die Größe des myindex2 (ohne Kompression) sehen ist kleiner.
Warum ist die Größe von myindex2 kleiner als myindex1?
Vielen Dank für die Antwort. Was ich mit Komprimierung meinte, ist dies: Html = (zlib.compress (Html.encode ('utf-8'), 9)). Encode ('base64'). Ich bin tatsächlich komprimieren Sie die Zeichenfolge mit Zlib in Python dann konvertieren Sie es in Base64 – Backtrack
Meine Frage aktualisiert. Ich benutze Zlib, um HTML in Option1 zu komprimieren. – Backtrack
Der zlib Teil war eine ziemlich wichtige Information ;-) – Val