Search-Driven Applications

7de95d7db80b3f52975ec0a245eaad14?s=47 exensio
April 03, 2014

Search-Driven Applications

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

7de95d7db80b3f52975ec0a245eaad14?s=128

exensio

April 03, 2014
Tweet

Transcript

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

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

  3. Was ist Suche?

  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
  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
  6. • Daten-Silos  Konsolidierung Daten • Daten-Menge steigt immer weiter

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

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

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

  10. Vom Inhalt zum Index Document Analyzing Aufbau Struktur

  11. Input-Dokumente

  12. • Verarbeitung der Inputdokumente • Preprocessing vor der Ablage •

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

    Source Standard Tokenizer Lowercase Filter German-Light- Stem-Filter
  14. • Invertierter Index • Inputfeld kann auf unter- schiedliche Weise

    abgelegt werden • Suchterm zu Dokument zuordnen Der Indexaufbau
  15. Die Indexstruktur suchgetrieb applikation Doc 1 Doc 2 enterpris Doc

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

  17. • Dokumentenmodell • Datenablage anhand geplanter Abfragen • Duplizierte Datenablage

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

    • Onlineabfragen für Facetting / Aggregationen Near Realtime http://www.morguefile.com/archive/display/196583
  19. Agenda Anwendungsfälle Aufbau der Such-Datenstruktur Fallstricke Motivation

  20. Suche ist zentraler Bestandteil der Applikation Anwendung DB CMS Weitere

    Systeme Suchserver Indexierungen Abfragen Pflege Verwaltung Dateisystem
  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 ?
  22. Listen für CRUD-Dialoge Geschäft Vertrieb

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

  24. Facetten für den Drilldown von Events

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

  26. Facette mit Elasticsearch

  27. • Verschachtelungen / Hierarchien Personalisierung und Berechtigungen

  28. Anwendungsfälle für E-Commerce

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

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

  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

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

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

  34. Realtime Analysis am Beispiel ´Javaland´

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

  36. • Synchronisierung Systeme • Fehlersuche • Mehrere `Verursacher` • Nachstellen

    Produktionsprobleme • Entwicklungssetup Komplexität der Architektur steigt http://www.morguefile.com/archive/display/591261
  37. • Analyzing ist verlustbehaftet • Update einzelner Felder schwierig •

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

    Logfiles • Monitoring
  40. Transaktionen

  41. Was bringt die Umsetzung von Applikations-Logik mit Suchmaschinen? • Abfragen

    sind teilweise einfacher • Flexibler für Erweiterungen • Performance-Vorteile • Neue Anwendungsszenarien Fazit
  42. Vielen Dank! Florian Hopf, @fhopf Tobias Kraft, @tokraft