Täglich 4.5 Milliarden „Likes“, über eine Milliarde Logins, 1.65 Milliarden aktive Nutzer - das sind Zahlen, die für das Unternehmen Facebook stehen und die man auch bei Facebooks Omnipräsenz erahnen kann. Aber wer weiß schon, dass täglich ca. 13.000 Facebook Mitarbeiter mehr als 60 Millionen Suchanfragen für ihre interne Arbeit absetzen? Dies erfordert eine Umgebung, die extrem kurze Antwortzeiten bei Suchanfragen in großen Datenmengen sicherstellt.
Um genau diese technische Hürde zu nehmen, setzt Facebook seit drei Jahren auf die Software Elasticsearch für viele interne Tools und die Enterprise Search. Doch nicht nur Facebook vertraut auf Elasticsearch, die Liste der namhaften Kunden ist lang: Audi, Otto, SwissLife, Cern, Netflix und viele mehr nutzen das Open Source Tool.
Doch wieso gerade Elasticsearch? Was macht das Hauptprodukt dieses sehr jungen Unternehmens so attraktiv und warum sollte mich das interessieren?
Das Unternehmen Elastic (bis Anfang 2015 Elasticsearch) gibt es erst seit 2012. Mit inzwischen mehr als 250 Mitarbeitern und einer bisherigen Finanzierung von ca. 104 Millionen US Dollar bietet Elastic inzwischen zehn verschiedene Produkte an. Alle diese Produkte erweitern kontinuierlich den Kosmos rund um Elasticsearch.
Elasticsearch ist eine vielfältig einsetzbare Indizierungs- und Suchsoftware. Das einfache Aufsetzen, die inzwischen große Community und eine frei zugängliche Open-Source-Version hat Elasticsearch so beliebt gemacht. Vielfältig einsetzbar ist Elasticsearch aufgrund der Verwendung von Standard-Technologien, dem Plugin Kosmos und den relativ einfachen Schnittstellen.
Inzwischen gibt es unendlich viele Tutorials, Foreneinträge und Beschreibungen für die Konfiguration und den Einsatz von Elasticsearch. Leider sind viele aufgrund der schnellen und kontinuierlichen Weiterentwicklung mit einhergehenden Inkompatibilitäten inzwischen veraltet und damit überwiegend unbrauchbar geworden. Deshalb wollen wir in unserem neuen Tech-Blog in einer Serie Schritt für Schritt mit Beispielen und Sourcecode beschreiben, wie man mit Elasticsearch und relativ wenig Aufwand eine eigene maßgeschneiderte Enterprise Search aufbauen kann.
Es gibt eine ganze Blog-Reihe zum Thema Elasticsearch, deren einzelne Themen zum Teil aufeinander aufbauen. Bereits beschriebene Themen, die auch eine Voraussetzung für die Umsetzung der nachfolgenden Beispiele sind, sind über die Links erreichbar.
Folgende Themen sind in der Serie behandelt oder geplant:
Das Einrichten einer Elasticsearch-Instanz gestaltet sich inzwischen relativ einfach. Details zur Installation sind auch der Dokumentation (https://www.elastic.co/guide/index.html) zu entnehmen. Man kann diese auf einen physikalischen Rechner oder eine virtuelle Maschine installieren. Wichtig ist, dass man ca. 2GB freien Arbeitsspeicher zur Verfügung hat. Elasticsearch ist dafür kompiliert und konfiguriert in einer Windows- oder Linux-Umgebung betrieben zu werden. Für beide Versionen sind Skripte zum Service-Betrieb mittlerweile Bestandteil des Installationsarchivs.
bin\elasticsearch.bat
INFO
# ------------------- Cluster -----------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: myCluster
#
# ------------------- Node --------------------------
#
# Use a descriptive name for the node:
#
node.name: myNode
#
…
{
"name" : "RANDOM_NAME",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.3.3",
"build_hash" : "218bdf10790eef486ff2c41a3df5cfa32dadcfde",
"build_timestamp" : "2016-05-17T15:40:04Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}
Mit diesen wenigen einfachen Schritten haben wir nun eine laufende Elasticsearch-Instanz. Im folgenden Blogeintrag beschreiben wir, wie man Kibana einrichtet und einen ersten Index aufsetzt.