Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Suchgetriebene Anwendungen mit Elasticsearch und Solr

exensio
September 30, 2015

Suchgetriebene Anwendungen mit Elasticsearch und Solr

Talk at the data2day conference 2015 in Karlsruhe by Florian Hopf (@fhopf) and Tobias Kraft (@tokraft).

exensio

September 30, 2015
Tweet

More Decks by exensio

Other Decks in Technology

Transcript

  1. Suchgetriebene Anwendungen mit
    Elasticsearch und Solr
    Florian Hopf, freiberuflicher Softwareentwickler
    Tobias Kraft, exensio GmbH

    View Slide

  2. Agenda
    Anwendungsfälle
    Datenstruktur und Verteilung
    Fallstricke
    Motivation

    View Slide

  3. Was ist Suche?

    View Slide

  4. Funktionen einer Enterprise-Suche
    Blätterung Sortierung
    Facettierung
    Unstrukturierte Suche
    Strukturierte Suche
    Highlighting
    Autocomplete
    Did you mean Synonyme

    View Slide

  5. Für Suchmaschinen gibt es viele Einsatzszenarien
    Volltextsuche
    Speicher
    Cache
    Geo-Suche
    Log-Analyse
    Analytics

    View Slide

  6.  Suche ist mehr als
    Volltextsuche
     Suche funktioniert im Kleinen
    wie im Großen
     Suche kann auch bei
    klassischen
    Anwendungsfällen
    unterstützen
    Was wollen wir in diesem Vortrag zeigen
    http://www.morguefile.com/archive/display/861760

    View Slide

  7. Strukturiert
    Strukturierte vs. unstrukturierte Daten
    • Datenbanken
    • LDAP
    • Spreadsheets
    • (teilweise)
    Applikations- /
    API-Daten
    • Web Seiten
    • Email
    • Text- und Office-
    Dokumente
    • PDF-Dokumente
    • Log-Files
    Unstrukturiert
    Quelle: Search-Based Applications: At the Confluence of Search and Database Technologies

    View Slide

  8.  Daten-Silos
     Konsolidierung Daten-Menge
     Daten-Menge steigt immer weiter
     Skalierbarkeit
     Häufige Änderungen
     Flexibles Schema und Abfragen
    Probleme klassischer Applikationen

    View Slide

  9. Suchserver vs. Datenbank
    Eigenschaft Suchserver Datenbank
    Semantisches Modell Dokumenten-Modell Relationales Modell
    Speicherstruktur Index Tabelle
    Ablage der Daten Denormalisiert Normalisiert

    View Slide

  10. Search Driven Applications
    Suche ist Kernbestandteil
    Suchserver als zentraler Lesespeicher

    View Slide

  11. Agenda
    Anwendungsfälle
    Datenstruktur und Verteilung
    Fallstricke
    Motivation

    View Slide

  12. Vom Inhalt zum Index
    Document Analyzing Aufbau
    Struktur

    View Slide

  13. Input-Dokumente

    View Slide

  14.  Verarbeitung der
    Inputdokumente
     Preprocessing vor der Ablage
     Entfernen, modifizieren,
    hinzufügen von Termen
    Text-Analyzing

    View Slide

  15. Beispiel Text-Analyzing
    Suchgetriebene
    Suchgetriebene Applikationen
    Applikationen
    suchgetriebene applikationen
    suchgetrieb applikation
    Source
    Standard
    Tokenizer
    Lowercase
    Filter
    German-Light-
    Stem-Filter

    View Slide

  16.  Invertierter Index
     Inputfeld kann auf unterschiedliche
    Weise abgelegt werden
     Suchterm zu Dokument zuordnen
    Der Indexaufbau

    View Slide

  17. Die Indexstruktur
    suchgetrieb
    applikation
    Doc 1
    Doc 2
    enterpris
    Doc 1 Doc 2
    Kraft
    Doc 1
    Hopf
    Doc 1 Doc 2

    View Slide

  18. Das Mapping

    View Slide

  19.  Dokumentenmodell
     Datenablage anhand geplanter Abfragen
     Duplizierte Datenablage
    Modellierung des Index
    http://www.morguefile.com/archive/display/12788

    View Slide

  20.  Inkrementell Indexieren
     Änderungen auch im Cluster schnell verfügbar
    Near Realtime
    http://www.morguefile.com/archive/display/196583

    View Slide

  21.  Höhere Leselast
     Leichter Skalierbar
     Größere Datenmengen
    Verteilung der Daten
    http://mrg.bz/EFmkFQ

    View Slide

  22. Master / Slave Infrastruktur mit Solr
    Master
    Load-Balancer
    Slave
    Slave
    Lesen Lesen
    Schreiben Lesen
    Slave
    Replikation

    View Slide

  23.  Master – Slave
     Vorteile
     Einfach aufzusetzen
     Neue Knoten können einfach hinzugefügt werden
     Nachteile
     Daten stehen erst verzögert auf Slaves zur Verfügung
     Keine Lösung für Index-Splitting
     Ausfallsicherheit für schreibende Zugriffe
    Replizierung

    View Slide

  24. Datenverteilung in Elasticsearch mit Knoten und
    Shards
    Node 1
    otcdrug
    document
    1
    1 2
    3 4
    Replica: 0
    Replica: 0

    View Slide

  25. Node 2
    otcdrug
    document
    Node 1
    otcdrug
    document
    1
    1 2
    Replica: 1
    Replica: 0
    1'
    3 4
    Neuer Knoten im Cluster
    Datenverteilung in Elasticsearch mit Knoten und
    Shards

    View Slide

  26. Node 3
    otcdrug
    document
    Node 2
    otcdrug
    document
    Node 1
    otcdrug
    document
    Datenverteilung in Elasticsearch mit Knoten und
    Shards
    1
    1 2
    Replica: 1
    Replica: 1
    1'
    3 4'
    3' 4
    1' 2'
    Neuer Knoten im Cluster

    View Slide

  27.  Kein dedizierter Master
     Split-Brain Problem
     Consensus-Algorithmus
    Cluster-Verbund

    View Slide

  28. Datenverteilung mit SolrCloud
    Apache
    Solr 1 mit
    Index
    Solr 2 mit
    Index
    Zookeeper 1 Zookeeper 2
    Zookeeper 3
    SolrJ Client
    Server 3
    Server 1 Server 2
    Client
    Loadbalancer

    View Slide

  29. Agenda
    Anwendungsfälle
    Datenstruktur und Verteilung
    Fallstricke
    Motivation

    View Slide

  30. Suche ist zentraler Bestandteil der Applikation
    Indexierungen
    Abfragen
    Pflege
    Verwaltung
    Anwendung
    Suchserver
    DB
    Weitere Systeme
    Dateisystem
    CMS

    View Slide

  31. Vereinheitlichung von verschiedenen Quellen
    News
     title
     message
     created
    Document
     filename
     created
    Payload
     binary
    Report
     title
     abstract
     published
    Suchengine
    • Vereinheitlichung über Index
    • Entsprechendes Mapping
    Index-Prozess
    Relationale DB
    • Vereinheitlichung in einer
    Ansicht/Liste ist schwierig

    View Slide

  32. Listen für CRUD-Dialoge
    Geschäft Vertrieb

    View Slide

  33. Listen für CRUD-Dialoge
    Geschäft Vertrieb Aussendienst

    View Slide

  34. Facetten für den Drilldown von Events

    View Slide

  35. 7 SQL-Abfragen für den Aufbau der Facetten …

    View Slide

  36. Facette mit Elasticsearch

    View Slide

  37.  Verschachtelungen / Hierarchien
    Personalisierung und Berechtigungen

    View Slide

  38. Anwendungsfälle für E-Commerce

    View Slide

  39. Der Suchserver rückt in den Mittelpunkt
    Abfragen
    Anwendung
    DB
    Suchserver

    View Slide

  40. Suchserver
    Der Suchserver rückt in den Mittelpunkt
    Abfragen
    Anwendung
    DB

    View Slide

  41. Kategorien-Navigation
    Bücher
    /Bücher
    Bücher/Fachbücher
    /Bücher/Fachbücher
    /Bücher
    /select?q=*:*&facet=on&facet.field=category&rows=0

    View Slide

  42. Produktlisting
    /select?q=*:*&fq=category:/Bücher/Fachbücher/Informatik
    &sort=inStock desc, price asc

    View Slide

  43. Realtime Analysis am Beispiel von Twitter

    View Slide

  44. Umsätze Pharmabranche für SellIn auf BU-und
    Linien-Ebene

    View Slide

  45. Agenda
    Anwendungsfälle
    Datenstruktur und Verteilung
    Fallstricke
    Motivation

    View Slide

  46.  Synchronisierung Systeme
     Fehlersuche
     Mehrere `Verursacher`
     Nachstellen
    Produktionsprobleme
     Entwicklungssetup
    Komplexität der Architektur steigt
    http://www.morguefile.com/archive/display/591261

    View Slide

  47. Transaktionen

    View Slide

  48.  Analyzing ist
    verlustbehaftet
     Update einzelner Felder
    schwierig
     Originalinhalt für
    Anpassungen weiter
    zugreifbar
    Daten
    http://www.morguefile.com/archive/display/183870

    View Slide

  49.  Testunterstützung ist
    vorhanden
     SolrtestCaseJ4
     Elasticsearch Test
    Framework
     Relevanz ist subjektiv
     Analyzing-Prozess kann
    komplexer werden
     Rollback in Tests
    Testbarkeit
    http://www.morguefile.com/archive/display/87396

    View Slide

  50. Betrieb
     Security
     Separate Installation
     Verfügbarkeit
     Verteilte Logfiles
     Monitoring

    View Slide

  51. Was bringt die Umsetzung von
    Applikations-Logik auf Basis
    einer Suchmaschine?
     Abfragen sind teilweise einfacher
     Flexibler für Erweiterungen
     Performance-Vorteile
     Neue Anwendungsszenarien
    Fazit

    View Slide

  52. Vielen Dank!
    Florian Hopf, @fhopf
    Tobias Kraft, @tokraft

    View Slide