Was sind die Nachteile von ElasticSearch Doc-Werten?

8

Die Dokumentation behauptet:

%Vor%

und

%Vor%

Abgesehen von dieser leichten Geschwindigkeitsreduzierung, welche Nachteile hat die Verwendung von Doc-Werten in allen Eigenschaften?

Danke!

    
Michael 01.09.2015, 13:05
quelle

2 Antworten

10

Der Trend ist, doc_values wann immer möglich zu verwenden, da sie immer leistungsfähiger werden als Felddaten (besonders seit ES 1.4). Einer der Nachteile ist, dass Sie sie nicht mit analysierten String-Feldern und booleschen Feldern verwenden können. Ein weiterer Nachteil ist, wenn Sie immer noch Facetten verwenden. Kibana 3, da beide nicht Doc-Werte nutzen, sondern Sie entweder zu Aggregationen migrieren können. Upgrade auf Kibana 4, es ist also kein Problem.

Sehen Sie sich diesen exzellenten Blogbeitrag von Chris Earle, der die Details von doc values ​​vs fielddata erklärt.

    
Val 01.09.2015, 13:14
quelle
2

Aus Elasticsearch Der endgültige Leitfaden [1.x]

  

Doc-Werte sind jetzt nur etwa 10-25% langsamer als In-Memory-Felddaten,   und kommen mit zwei großen Vorteilen:

     

Sie leben auf Festplatte statt im Heapspeicher. Dadurch können Sie mit Felddatenmengen arbeiten, die normalerweise zu groß wären   in die Erinnerung passen. Tatsächlich kann Ihr Heap-Space ($ ES_HEAP_SIZE) jetzt sein   auf eine kleinere Größe gesetzt, was die Geschwindigkeit der Speicherbereinigung verbessert   und folglich Knotenstabilität.       Doc-Werte werden zur Indexzeit und nicht zur Suchzeit erstellt. In-Memory-Felddaten müssen während der Suchzeit on-the-fly erstellt werden   Um den invertierten Index nicht zu invertieren, sind doc-Werte bereits vorgefertigt und viel   schneller zu initialisieren.

     

Der Kompromiss besteht in einer größeren Indexgröße und etwas langsameren Felddaten   Zugriff. Doc-Werte sind bemerkenswert effizient, also für viele Anfragen   könnte die etwas langsamere Geschwindigkeit nicht einmal bemerken. Kombiniere das mit   schnellere Garbage Collections und verbesserte Initialisierungszeiten und Sie   kann einen Nettogewinn bemerken.

     

Je mehr Dateisystem-Cache-Speicher zur Verfügung steht, desto besser   Doc-Werte werden ausgeführt. Wenn die Dateien, die die Doc-Werte enthalten, sind   resident im Dateisystem-Cache, dann ist fast der Zugriff auf die Dateien   entspricht dem Lesen aus dem RAM. Und der Dateisystemcache wird von verwaltet   der Kernel anstelle der JVM.

     

Doc-Werte können für numerisch, Datum, Boolesch, binär und aktiviert werden   Geo-Point-Felder und für nicht analysierte String-Felder. Sie nicht   arbeiten derzeit mit analysierten Stringfeldern. Doc-Werte werden per aktiviert   Feld im Feld Mapping, was bedeutet, dass Sie In-Memory kombinieren können   Felddaten mit Doc-Werten:

%Vor%

Wir verwenden doc_values ​​mit booleschen Werten, aber Sie können sie nicht mit analysierten Feldern verwenden. Sie sprechen darüber, wissen aber nicht, wie die richtige Datenstruktur aussehen sollte. Siehe Support für Doc-Werte für analysierte Felder hinzufügen .

    
James Drinkard 08.07.2016 17:50
quelle

Tags und Links