© DrHitch/Shutterstock.com
Shortcuts
Elasticsearch

1 Elasticsearch und Java-Anwendungen

Elasticsearch bietet die gesamte Funktionalität zur Nutzung als Document Store oder Suchserver über HTTP und JSON und ist damit aus vielen Programmierumgebungen heraus nutzbar. Beim Zugriff aus einer Java-Anwendung hat man weitere Vorteile - und die Wahl zwischen unterschiedlichen Mechanismen und Clients. Dieses erste Kapitel stellt den Zugriff auf Elasticsearch über den Standardclient, über den REST-API-Client Jest und über Spring Data Elasticsearch vor.

Shortcut Autorenteam


Elasticsearch ist ein verteilter Document Store, mit dem über HTTP und JSON kommuniziert werden kann. Zahlreiche Funktionalitäten für die Volltextsuche auf Basis der bewährten Java-Bibliothek Apache Lucene stehen zur Verfügung. Ein neues Dokument, das im Beispiel einer Vortragsbeschreibung entspricht, kann wie in Listing 1.1 angegeben über den HTTP-Client curl hinzugefügt werden. curl -XPUT "http://localhost:9200/conference/talk/1" -d'{ "title" : "Anwendungsfälle für Elasticsearch", "speaker" : "Florian Hopf", "date" : "2014-07-17T15:35:00.000Z", "tags" : ["Java", "Lucene"], "conference" : { "name" : "Java Forum Stuttgart", "city" : "Stuttgart" } }' Listing 1.1 Wir geben über den URL an, dass das Dokument im Index conference gespeichert werden soll und vom Typ talk ist. Der Index fasst logisch zusammengehörige Dokumente zusammen, der Typ beschreibt, welcher Entität ein Dokument entspricht. Zur Konfiguration, wie auf einzelnen Feldern eines Dokuments gesucht werden kann, verwaltet Elasticsearch ein Mapping für jeden Typ. Dieses Mapping entspricht dem Schema der Daten und bestimmt, über welchen Analyzer der zugrunde liegende Text verarbeitet wird, also letztendlich, wie dieser durchsuchbar ist. Im Gegensatz zu vielen anderen Datenbanken kann bei der Arbeit mit Elasticsearch zu Beginn auf die explizite Angabe dieses Schemas verzichtet werden. Aus den Dokumenten, die in den Index geschrieben werden, wird automatisch die Struktur extrahiert, und die Speicherung erfolgt anhand sinnvoller Default-Werte. Meist ist es notwendig, diese Struktur später noch durch ein eigenes Mapping zu verfeinern. Es ermöglicht allerdings einen sehr einfachen Start mit Elasticsearch. Dasselbe Dokument kann dann über einen einfachen GET-Request auf den URL oder über eine Suchanfrage ausgelesen werden. Suchanfragen werden meist mittels der Query DSL formuliert, einer JSON-Struktur zur Abbildung der Abfragen. Bei modernen Suchanwendungen beliebte Features wie Facettierung und Autovervollständigung können dabei direkt mit angefordert werden. Listing 1.2 zeigt ein Beispiel für eine Suchanfrage nach dem Begriff Elasticsearch im Feld Titel. curl -XPOST "http://localhost:9200/conference/talk/_search" -d'{ "query": { "match": { "title": "Elasticsearch" } }}' Listing 1.2 Elasticsearch ist unter anderem deshalb populär geworden, weil auch große Datenmengen verwaltet werden können. Jeder Elasticsearch-I...

Shortcuts
Elasticsearch

1 Elasticsearch und Java-Anwendungen

Elasticsearch bietet die gesamte Funktionalität zur Nutzung als Document Store oder Suchserver über HTTP und JSON und ist damit aus vielen Programmierumgebungen heraus nutzbar. Beim Zugriff aus einer Java-Anwendung hat man weitere Vorteile - und die Wahl zwischen unterschiedlichen Mechanismen und Clients. Dieses erste Kapitel stellt den Zugriff auf Elasticsearch über den Standardclient, über den REST-API-Client Jest und über Spring Data Elasticsearch vor.

Shortcut Autorenteam


Elasticsearch ist ein verteilter Document Store, mit dem über HTTP und JSON kommuniziert werden kann. Zahlreiche Funktionalitäten für die Volltextsuche auf Basis der bewährten Java-Bibliothek Apache Lucene stehen zur Verfügung. Ein neues Dokument, das im Beispiel einer Vortragsbeschreibung entspricht, kann wie in Listing 1.1 angegeben über den HTTP-Client curl hinzugefügt werden. curl -XPUT "http://localhost:9200/conference/talk/1" -d'{ "title" : "Anwendungsfälle für Elasticsearch", "speaker" : "Florian Hopf", "date" : "2014-07-17T15:35:00.000Z", "tags" : ["Java", "Lucene"], "conference" : { "name" : "Java Forum Stuttgart", "city" : "Stuttgart" } }' Listing 1.1 Wir geben über den URL an, dass das Dokument im Index conference gespeichert werden soll und vom Typ talk ist. Der Index fasst logisch zusammengehörige Dokumente zusammen, der Typ beschreibt, welcher Entität ein Dokument entspricht. Zur Konfiguration, wie auf einzelnen Feldern eines Dokuments gesucht werden kann, verwaltet Elasticsearch ein Mapping für jeden Typ. Dieses Mapping entspricht dem Schema der Daten und bestimmt, über welchen Analyzer der zugrunde liegende Text verarbeitet wird, also letztendlich, wie dieser durchsuchbar ist. Im Gegensatz zu vielen anderen Datenbanken kann bei der Arbeit mit Elasticsearch zu Beginn auf die explizite Angabe dieses Schemas verzichtet werden. Aus den Dokumenten, die in den Index geschrieben werden, wird automatisch die Struktur extrahiert, und die Speicherung erfolgt anhand sinnvoller Default-Werte. Meist ist es notwendig, diese Struktur später noch durch ein eigenes Mapping zu verfeinern. Es ermöglicht allerdings einen sehr einfachen Start mit Elasticsearch. Dasselbe Dokument kann dann über einen einfachen GET-Request auf den URL oder über eine Suchanfrage ausgelesen werden. Suchanfragen werden meist mittels der Query DSL formuliert, einer JSON-Struktur zur Abbildung der Abfragen. Bei modernen Suchanwendungen beliebte Features wie Facettierung und Autovervollständigung können dabei direkt mit angefordert werden. Listing 1.2 zeigt ein Beispiel für eine Suchanfrage nach dem Begriff Elasticsearch im Feld Titel. curl -XPOST "http://localhost:9200/conference/talk/_search" -d'{ "query": { "match": { "title": "Elasticsearch" } }}' Listing 1.2 Elasticsearch ist unter anderem deshalb populär geworden, weil auch große Datenmengen verwaltet werden können. Jeder Elasticsearch-I...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang