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

Search-Driven Applications

exensio
April 03, 2014

Search-Driven Applications

Usage of Search Engines (Solr, Elasticsearch) in traditional applications. Presentation at the Berlin Expert Days 2014.

exensio

April 03, 2014
Tweet

More Decks by exensio

Other Decks in Technology

Transcript

  1. Search-Driven Applications
    Florian Hopf, freiberuflicher Softwareentwickler
    Tobias Kraft, exensio GmbH

    View Slide

  2. Agenda
    Anwendungsfälle
    Aufbau der Such-Datenstruktur
    Fallstricke
    Motivation

    View Slide

  3. Was ist Suche?

    View Slide

  4. • 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

  5. 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

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

    View Slide

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

    View Slide

  8. Search-Driven Applications
    Suche ist Kernbestandteil
    Suchserver als zentraler Lesespeicher

    View Slide

  9. Agenda
    Anwendungsfälle
    Aufbau der Such-Datenstruktur
    Fallstricke
    Motivation

    View Slide

  10. Vom Inhalt zum Index
    Document Analyzing Aufbau
    Struktur

    View Slide

  11. Input-Dokumente

    View Slide

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

    View Slide

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

    View Slide

  14. • Invertierter Index
    • Inputfeld kann auf unter-
    schiedliche Weise abgelegt
    werden
    • Suchterm zu Dokument zuordnen
    Der Indexaufbau

    View Slide

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

    View Slide

  16. Das Mapping

    View Slide

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

    View Slide

  18. • Inkrementell Indexieren
    • Änderungen auch im Cluster schnell verfügbar
    • Onlineabfragen für Facetting / Aggregationen
    Near Realtime
    http://www.morguefile.com/archive/display/196583

    View Slide

  19. Agenda
    Anwendungsfälle
    Aufbau der Such-Datenstruktur
    Fallstricke
    Motivation

    View Slide

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

    View Slide

  21. 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

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

    View Slide

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

    View Slide

  24. Facetten für den Drilldown von Events

    View Slide

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

    View Slide

  26. Facette mit Elasticsearch

    View Slide

  27. • Verschachtelungen / Hierarchien
    Personalisierung und Berechtigungen

    View Slide

  28. Anwendungsfälle für E-Commerce

    View Slide

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

    View Slide

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

    View Slide

  31. 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

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

    View Slide

  33. • Sharding / Verteilung
    Umgang mit großen Datenmengen

    View Slide

  34. Realtime Analysis am Beispiel ´Javaland´

    View Slide

  35. Agenda
    Anwendungsfälle
    Aufbau der Such-Datenstruktur
    Fallstricke
    Motivation

    View Slide

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

    View Slide

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

    View Slide

  38. • 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

  39. Betrieb
    • Security
    • Separate Installation
    • Verfügbarkeit
    • Verteilte Logfiles
    • Monitoring

    View Slide

  40. Transaktionen

    View Slide

  41. Was bringt die Umsetzung von
    Applikations-Logik mit Suchmaschinen?
    • Abfragen sind teilweise einfacher
    • Flexibler für Erweiterungen
    • Performance-Vorteile
    • Neue Anwendungsszenarien
    Fazit

    View Slide

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

    View Slide