O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Elasticsearch

Book Description

  • Erstes deutsches Buch zu Elasticsearch+ Wichtiges Tool für Big Data+ Alternative zu noSQL-DBs

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Kapitel 1: Einführung
    1. 1.1 Motivation
    2. 1.2 Geschichte von Elasticsearch
    3. 1.3 Ein erstes Beispiel
    4. 1.4 Anwendungsfälle
    5. 1.5 Wann Elasticsearch?
    6. 1.6 Über dieses Buch
    7. 1.7 Danksagung
  5. Kapitel 2: Eine Suchanwendung entsteht
    1. 2.1 Die Beispielanwendung
      1. 2.1.1 Die Beispieldaten
    2. 2.2 Dokumente indizieren
      1. 2.2.1 Index und Typ
      2. 2.2.2 Indizierung
      3. 2.2.3 Die erste Suche
    3. 2.3 Der invertierte Index
      1. 2.3.1 Analyzing
      2. 2.3.2 Speicherung von Feldern
      3. 2.3.3 Auf Feldern suchen
    4. 2.4 Über die Query-DSL zugreifen
      1. 2.4.1 Match-Query
      2. 2.4.2 Ergebnisse filtern
    5. 2.5 Die Indizierung über das Mapping konfigurieren
      1. 2.5.1 Das Mapping einsehen
      2. 2.5.2 Das Mapping anpassen
      3. 2.5.3 Filterung nach Datum
      4. 2.5.4 Schemafreiheit
    6. 2.6 Suchergebnisse sortieren und paginieren
      1. 2.6.1 Paginierung
      2. 2.6.2 Sortierung
    7. 2.7 Facetten für Suchergebnisse
      1. 2.7.1 Facetten auf Begriffen mit der Terms-Aggregation
    8. 2.8 Die Anwendung vereinfachen
      1. 2.8.1 Die Rückgabe beeinflussen
      2. 2.8.2 Search-Templates
    9. 2.9 Zusammenfassung
  6. Kapitel 3: Textinhalte auffindbar machen
    1. 3.1 Analyzing und der invertierte Index
      1. 3.1.1 Den Analyzing-Prozess beobachten
    2. 3.2 Sprachspezifische Verarbeitung durch Stemming
    3. 3.3 Teilbegriffe finden
      1. 3.3.1 Wildcards
      2. 3.3.2 Prefix-Query
      3. 3.3.3 N-Gramme
      4. 3.3.4 Mehrere Analyzer für einen Inhalt konfigurieren
      5. 3.3.5 Fazit Wildcards und N-Gramme
    4. 3.4 Ähnliche Begriffe mit der Fuzzy-Query finden
    5. 3.5 Mit mehrsprachigen Inhalten arbeiten
    6. 3.6 Die Suche verbessern
      1. 3.6.1 Synonyme
      2. 3.6.2 Stoppwörter
      3. 3.6.3 Umgang mit Sonderzeichen
      4. 3.6.4 Noch mehr Sucherweiterungen
    7. 3.7 Hervorheben von Suchbegriffen im Auszug
    8. 3.8 Autovervollständigung
      1. 3.8.1 Suggester
      2. 3.8.2 Completion-Suggester
      3. 3.8.3 Context-Suggester
      4. 3.8.4 Alternative Implementierungen für Autovervollständigung
      5. 3.8.5 Weitere Suggester
    9. 3.9 Zusammenfassung
  7. Kapitel 4: Relevanz verstehen und beeinflussen
    1. 4.1 Relevanz für die Nutzer
      1. 4.1.1 Precision und Recall
    2. 4.2 Berechnung der Relevanz
    3. 4.3 Einfluss von Abfragen auf die Relevanz
      1. 4.3.1 Analyzing und Relevanz
      2. 4.3.2 Abfragen mit der Bool-Query kombinieren
      3. 4.3.3 Suche nach Termen mit der Match-Abfrage
      4. 4.3.4 Optionale oder zwingende Suchbegriffe
      5. 4.3.5 Mit Multi-Match auf mehreren Feldern suchen
      6. 4.3.6 Phrase-Query
      7. 4.3.7 Weitere Abfragen
    4. 4.4 Relevanz durch Boosting beeinflussen
      1. 4.4.1 Dokumente zur Indexzeit boosten
      2. 4.4.2 Dokumente zur Suchzeit boosten
    5. 4.5 Funktionen zur Ergebnissortierung
      1. 4.5.1 Nachsortieren der Ergebnisse
      2. 4.5.2 Eigenes Scoring über Function-Score
      3. 4.5.3 Scripting
    6. 4.6 Relevanz im verteilten System
    7. 4.7 Relevanz verstehen
    8. 4.8 Zusammenfassung
  8. Kapitel 5: Daten indizieren
    1. 5.1 Indizierungsstrategien
      1. 5.1.1 Den Index neu aufbauen
      2. 5.1.2 Den Index inkrementell aufbauen
    2. 5.2 Dokumente einzeln indizieren
      1. 5.2.1 Versionierung nutzen
      2. 5.2.2 Überschreiben von Dokumenten kontrollieren
    3. 5.3 Dokumente gesammelt indizieren
    4. 5.4 Externe Datenquellen anbinden
      1. 5.4.1 JDBC-Importer – Daten aus relationalen Datenbanken indizieren
      2. 5.4.2 Logstash
      3. 5.4.3 Attachment-Plugin
    5. 5.5 Partial Updates – Dokumente aktualisieren
    6. 5.6 Interna zur Indizierung
      1. 5.6.1 Segmente
      2. 5.6.2 Near Realtime Search
      3. 5.6.3 Index-Refresh
      4. 5.6.4 Translog
      5. 5.6.5 Segment-Merging
    7. 5.7 Zusammenfassung
  9. Kapitel 6: Elasticsearch als verteiltes System
    1. 6.1 Shards und Replicas
      1. 6.1.1 Shards
      2. 6.1.2 Sharding-Strategien
      3. 6.1.3 Replicas
      4. 6.1.4 Rebalancing von Shards und Replicas
      5. 6.1.5 Cluster-Health
      6. 6.1.6 Recovery
      7. 6.1.7 Shard-Allocation beeinflussen
    2. 6.2 Suche im verteilten System
      1. 6.2.1 Zuordnung von Dokumenten zu Shards
      2. 6.2.2 Über Shards nach Dokumenten suchen
      3. 6.2.3 Preference bei der Anfrage festlegen
      4. 6.2.4 Den Search-Type ändern
      5. 6.2.5 Routing
    3. 6.3 Kommunikation im Cluster
      1. 6.3.1 Discovery
      2. 6.3.2 Master-Wahl
      3. 6.3.3 Cluster-State
      4. 6.3.4 Split-Brain
      5. 6.3.5 Resiliency
      6. 6.3.6 Client-, Master- und Data-Nodes
    4. 6.4 Indizierung im verteilten System
    5. 6.5 Zusammenfassung
  10. Kapitel 7: Daten modellieren
    1. 7.1 Einsatzfelder für Elasticsearch
      1. 7.1.1 Dokumentenmodell
      2. 7.1.2 Datenduplizierung
    2. 7.2 Gestaltung der Indexstruktur
      1. 7.2.1 Mehrstufiger Zugriff
      2. 7.2.2 Index und Typ
      3. 7.2.3 Index-Aliase
      4. 7.2.4 Index-Templates
    3. 7.3 Mapping-Optionen
      1. 7.3.1 Texte
      2. 7.3.2 Zahlen
      3. 7.3.3 Date
      4. 7.3.4 Geodaten
      5. 7.3.5 Automatisches Mapping deaktivieren
      6. 7.3.6 Weitere Optionen des Mappings
    4. 7.4 Beziehungen zwischen Dokumenten
      1. 7.4.1 Dokumente als Object einbetten
      2. 7.4.2 Dokumente als Nested einbinden
      3. 7.4.3 Parent-Child-Beziehungen
      4. 7.4.4 Manuelle Verknüpfung
    5. 7.5 Zusammenfassung
  11. Kapitel 8: Daten aggregieren
    1. 8.1 Einführung
    2. 8.2 Aggregationen
      1. 8.2.1 Terms-Aggregation
      2. 8.2.2 Aggregationen kombinieren
      3. 8.2.3 Bucket- und Metric-Aggregationen
    3. 8.3 Bucket-Aggregationen
      1. 8.3.1 Aggregationen über Bereiche
      2. 8.3.2 Histogram-Aggregation
      3. 8.3.3 Significant-Terms-Aggregation
      4. 8.3.4 Weitere Bucket-Aggregationen
    4. 8.4 Metric-Aggregationen
      1. 8.4.1 Stats-Aggregation
      2. 8.4.2 Cardinality-Aggregation
      3. 8.4.3 Top-Hits-Aggregation
      4. 8.4.4 Weitere Metric-Aggregationen
    5. 8.5 Aggregationen im Praxiseinsatz
      1. 8.5.1 Ressourcenverbrauch der Aggregationen
      2. 8.5.2 Aggregationen und Genauigkeit
    6. 8.6 Zusammenfassung
  12. Kapitel 9: Zugriff auf Elasticsearch
    1. 9.1 Zwischenschicht zum Zugriff
    2. 9.2 Der Java-Client
      1. 9.2.1 Daten indizieren
      2. 9.2.2 Daten auslesen
      3. 9.2.3 Weiteres
    3. 9.3 Der JavaScript-Client
    4. 9.4 Client-Bibliotheken auswählen
    5. 9.5 Zusammenfassung
  13. Kapitel 10: Elasticsearch in Produktion
    1. 10.1 Installation
      1. 10.1.1 Das Elasticsearch-Archiv
      2. 10.1.2 Installation über Pakete
      3. 10.1.3 Elasticsearch als Service
      4. 10.1.4 Provisionierung von Elasticsearch
      5. 10.1.5 Upgrade einer Elasticsearch-Installation
    2. 10.2 Elasticsearch dimensionieren
      1. 10.2.1 Speicherbedarf
      2. 10.2.2 Festplattenbedarf
      3. 10.2.3 Den Cluster dimensionieren
    3. 10.3 Elasticsearch konifigurieren
      1. 10.3.1 Den Speicher konfigurieren
      2. 10.3.2 Swapping
      3. 10.3.3 Logging
    4. 10.4 Das Betriebssystem für Elasticsearch konfigurieren
      1. 10.4.1 Dateideskriptoren
    5. 10.5 Mapping-Optionen zur Kontrolle der gespeicherten Inhalte
      1. 10.5.1 _all-Feld
      2. 10.5.2 Positions und Offset
      3. 10.5.3 Norms
      4. 10.5.4 Gespeicherte Inhalte beeinflussen
    6. 10.6 Caches
      1. 10.6.1 Filter-Cache
      2. 10.6.2 Shard-Query-Cache
      3. 10.6.3 Field-Data-Cache
      4. 10.6.4 Doc-Values
    7. 10.7 Monitoring
      1. 10.7.1 Nodes-Info
      2. 10.7.2 Nodes-Stats
      3. 10.7.3 Hot-Threads
      4. 10.7.4 Die cat-API
      5. 10.7.5 Monitoring-Plugins
    8. 10.8 Datensicherung
      1. 10.8.1 Snapshot – Daten sichern
      2. 10.8.2 Restore – Daten wiederherstellen
    9. 10.9 Zusammenfassung
  14. Kapitel 11: Zentralisiertes Logging mit Elasticsearch
    1. 11.1 Warum zentralisiertes Logging?
    2. 11.2 Der ELK-Stack
    3. 11.3 Logstash
      1. 11.3.1 Input
      2. 11.3.2 Filter
      3. 11.3.3 Bedingte Ausführung
      4. 11.3.4 Output
      5. 11.3.5 Logstash ausführen
    4. 11.4 Kibana
      1. 11.4.1 Konzepte in Kibana
      2. 11.4.2 Discover
      3. 11.4.3 Visualize
      4. 11.4.4 Dashboard
    5. 11.5 Skalierbares Setup
      1. 11.5.1 Shipping der Logs an Redis
      2. 11.5.2 Log-Meldungen als JSON schreiben
      3. 11.5.3 Lognachrichten aus der Anwendung in den Broker schreiben
    6. 11.6 Curator zur Indexverwaltung
    7. 11.7 Alternative zur Loganalyse: Graylog
      1. 11.7.1 Lognachrichten nach Graylog schreiben
      2. 11.7.2 Lognachrichten suchen
      3. 11.7.3 Lognachrichten über Streams kategorisieren
      4. 11.7.4 Dashboards zur Visualisierung
      5. 11.7.5 Graylog oder der ELK-Stack?
    8. 11.8 Zusammenfassung
  15. Kapitel 12: Ausblick
  16. Anhänge
    1. A Daten neu indizieren
      1. A.1 Neuindizierung ohne Änderungen
      2. A.2 Neuindizierung mit Änderungen
      3. A.3 Ausblick
    2. B Der Twitter-River
  17. Literaturverzeichnis
  18. Index
  19. Fußnoten