Kurze Roadmap zur Beschleunigung der Elastic Search Queries

Post date: May 26, 2013 10:08:12 AM

Ein wichtiger Bestandteil der Elastic Search - Funktionalität sind die unterschiedlichen Abfragen die ausgeführt werden sollen und die Art und Weise die für die Darstellung und die Manipulation der Daten verwendet wird. Um die Effizienz der Abfragen zu gewähren, Elastic Search bietet verschiedene Werkzeuge an mit dem Ziel, Datenabruf zu optimieren:

Der "_explain" REST Endpoint erlaubt mehr Information über die interne Analyse einer Abfrage in Elastic Search zu erlangen.Diese Funktionalität ist analog zu der die von RDBMS Systemen angeboten wird.

Der "filtering" Ansatz erlaubt Entwicklern die Beschleunigung der Elastic Search Abfragen durch das Caching von diesen Filters und deren Results.

"Scrolling" erlaubt das temporäre Caching von Daten das für große Datenmengen hoch empfehlenswert ist. Der Ansatz ist besonders effektiv wenn man die Dauer der Anfragen kennt oder kontrollieren kann z.B. in Datentransfer-Szenarien.

Der "routing" Query String Parameter der als Parameter zum "_search" REST Endpoint übergeben wird erlaubt die explizite Angabe der Routine-Anweisungen zu ausgewählten Shards in dem Cluster. Durch diesen Ansatz werden die Daten schneller geliefert weil die Suche zielorientiert ausgeführt wird.

Warming up Queries die für besonders teuere Anfragen gedacht wurde ist eine andere wichtige Hilfe die durch den "_warmer" Index von Elastic Search angeboten wird. Der Ansatz lohnt sich für Optimierungszwecke weil in diesem Fall OS-Level Caching aktiviert wird, die Abfragen werden auf den unterschiedlichen Lucene -Segmenten die nach der internen Commit-Methode erzeugt wurden ausgeführt und demzufolge werden die Antwortzeiten der Abfragen sinken.