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

Suchgetriebene Anwendungen mit Elasticsearch und Solr

7de95d7db80b3f52975ec0a245eaad14?s=47 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).

7de95d7db80b3f52975ec0a245eaad14?s=128

exensio

September 30, 2015
Tweet

Transcript

  1. Suchgetriebene Anwendungen mit Elasticsearch und Solr Florian Hopf, freiberuflicher Softwareentwickler

    Tobias Kraft, exensio GmbH
  2. Agenda Anwendungsfälle Datenstruktur und Verteilung Fallstricke Motivation

  3. Was ist Suche?

  4. Funktionen einer Enterprise-Suche Blätterung Sortierung Facettierung Unstrukturierte Suche Strukturierte Suche

    Highlighting Autocomplete Did you mean Synonyme
  5. Für Suchmaschinen gibt es viele Einsatzszenarien Volltextsuche Speicher Cache Geo-Suche

    Log-Analyse Analytics
  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
  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
  8.  Daten-Silos  Konsolidierung Daten-Menge  Daten-Menge steigt immer weiter

     Skalierbarkeit  Häufige Änderungen  Flexibles Schema und Abfragen Probleme klassischer Applikationen
  9. Suchserver vs. Datenbank Eigenschaft Suchserver Datenbank Semantisches Modell Dokumenten-Modell Relationales

    Modell Speicherstruktur Index Tabelle Ablage der Daten Denormalisiert Normalisiert
  10. Search Driven Applications Suche ist Kernbestandteil Suchserver als zentraler Lesespeicher

  11. Agenda Anwendungsfälle Datenstruktur und Verteilung Fallstricke Motivation

  12. Vom Inhalt zum Index Document Analyzing Aufbau Struktur

  13. Input-Dokumente

  14.  Verarbeitung der Inputdokumente  Preprocessing vor der Ablage 

    Entfernen, modifizieren, hinzufügen von Termen Text-Analyzing
  15. Beispiel Text-Analyzing Suchgetriebene Suchgetriebene Applikationen Applikationen suchgetriebene applikationen suchgetrieb applikation

    Source Standard Tokenizer Lowercase Filter German-Light- Stem-Filter
  16.  Invertierter Index  Inputfeld kann auf unterschiedliche Weise abgelegt

    werden  Suchterm zu Dokument zuordnen Der Indexaufbau
  17. Die Indexstruktur suchgetrieb applikation Doc 1 Doc 2 enterpris Doc

    1 Doc 2 Kraft Doc 1 Hopf Doc 1 Doc 2
  18. Das Mapping

  19.  Dokumentenmodell  Datenablage anhand geplanter Abfragen  Duplizierte Datenablage

    Modellierung des Index http://www.morguefile.com/archive/display/12788
  20.  Inkrementell Indexieren  Änderungen auch im Cluster schnell verfügbar

    Near Realtime http://www.morguefile.com/archive/display/196583
  21.  Höhere Leselast  Leichter Skalierbar  Größere Datenmengen Verteilung

    der Daten http://mrg.bz/EFmkFQ
  22. Master / Slave Infrastruktur mit Solr Master Load-Balancer Slave Slave

    Lesen Lesen Schreiben Lesen Slave Replikation
  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
  24. Datenverteilung in Elasticsearch mit Knoten und Shards Node 1 otcdrug

    document 1 1 2 3 4 Replica: 0 Replica: 0
  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
  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
  27.  Kein dedizierter Master  Split-Brain Problem  Consensus-Algorithmus Cluster-Verbund

  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
  29. Agenda Anwendungsfälle Datenstruktur und Verteilung Fallstricke Motivation

  30. Suche ist zentraler Bestandteil der Applikation Indexierungen Abfragen Pflege Verwaltung

    Anwendung Suchserver DB Weitere Systeme Dateisystem CMS
  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
  32. Listen für CRUD-Dialoge Geschäft Vertrieb

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

  34. Facetten für den Drilldown von Events

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

  36. Facette mit Elasticsearch

  37.  Verschachtelungen / Hierarchien Personalisierung und Berechtigungen

  38. Anwendungsfälle für E-Commerce

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

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

  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

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

  43. Realtime Analysis am Beispiel von Twitter

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

  45. Agenda Anwendungsfälle Datenstruktur und Verteilung Fallstricke Motivation

  46.  Synchronisierung Systeme  Fehlersuche  Mehrere `Verursacher`  Nachstellen

    Produktionsprobleme  Entwicklungssetup Komplexität der Architektur steigt http://www.morguefile.com/archive/display/591261
  47. Transaktionen

  48.  Analyzing ist verlustbehaftet  Update einzelner Felder schwierig 

    Originalinhalt für Anpassungen weiter zugreifbar Daten http://www.morguefile.com/archive/display/183870
  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
  50. Betrieb  Security  Separate Installation  Verfügbarkeit  Verteilte

    Logfiles  Monitoring
  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
  52. Vielen Dank! Florian Hopf, @fhopf Tobias Kraft, @tokraft