Apache Solr als Enterprise    Search Plattform
Markus Klose - SHI• Projektmanagement• Requirements Engineering• Certified Solr Trainer• Enterprise Solution• Infrastruktu...
Agenda•   Enterprise Search•   Solr Basics•   Herausforderungen & Lösungen•   Ausblicke
Enterprise Search85% aller Firmen haben auf weniger als50% aller ihrer Daten Zugriff (Google)
Enterprise Search
Enterprise Search mit Solr• Open Source vs. Kommerziell• Solr  – Relevanz-Algorithmus (TF-IDF)  – Kein Vendor-Lock  – Zugr...
Solr Basics• Solr …  – … Framework für Such Applikationen  – … nutzt Lucene  – … Infrastruktur (Cache, Analyzer etc.)  – …...
Solr Basics      • Solr Architektur        –   Konfigurationen        –   RequestHandler        –   ResponseWriter        ...
Solr BasicsKonfiguration• solr.xml  – Konfiguration meherer Cores• solrconfig.xml  – Handler / SearchComponents etc.  – Ca...
Solr BasicsHTTP Requests• Indexierung  – http://host:8983/solr/update/csv?stream.file=data.csv&strea    m.contentType=text...
Solr BasicsSolr Ökosystem  – Hadoop: Verteiltes Dateisystem  – Mahout: Data-Mining  – Tika: Metadaten Indexierung  – Nutch...
Herausforderungen•   Anbindung versch. Datenquellen•   Verteilte / heterogene Systeme•   Berechtigungen•   Relevanz / Prec...
HerausforderungenAnbindung verschiedener Datenquellen•   Indexierung - Solr•   Indexierung - DataImportHandler•   Indexier...
Indexierung - Solr
Indexierung - DIH• Bestandteile  – DataSource  – EntityProcessor  – Transformator• Use Cases  – Datenbanken  – Feeds (RSS/...
Indexierung – Clients•   Java (SolrJ)   Apache Solr PHP Client•   JavaScript•   PHP•   Ruby•   C# (SolrNet)•   Python
Indexierung – externe Tools• Nutch• Heritrix• ManifoldCF  – … Sharepoint, Documentum …• Google Connector Framework
HerausforderungenVerteilte Systeme / Skalierbarkeit• Replikation• Sharding• Unique IDs
BasisarchitekturIndexierung              • Eine Instanz übernimmt    Solr                sowohl die Indexierung           ...
IndexierungReplication• Hohes Volumen an  Suchanfragen                          Master• 1 Master mit N Slaves             ...
Master-Slave-Konfiguration
Sharding Indexierung                    • Verteilung von großen                      DatenmengenShard 1   Shard 2         ...
Sharding & Replication                 Indexierung• Flexibles Szenario                                     Master 1       ...
Unique IDs• Update / Deletes / Verteilte Systeme• Solr FieldType solr.UUIDField• Basistypen nutzen• Typische Fehler  – ID ...
HerausforderungenHeterogene Systeme / Mehrsprachigkeit• Deduplikation• Solr - Konfiguration   – Dismax/eDismax• Schema - K...
Deduplikation• Doppelte Dokumente im Index• schema.xml• solrconfig.xml
Dismax / eDismax• DisMax – Disjunction Maximum• extrem variabel einsetzbar• versucht immer etwas zurückzuliefern
Analyse• Feldzentrische Verarbeitung des  Inhalts  – Tokenizer  – Tokenfilter  – CharFilter
Schema - Konfiguration• Dynamische Felder• Copy Field• Default Werte
HerausforderungenEinheitliche Suche / Berechtigung•   AutoSuggest•   Facetten•   DidYouMean•   Clustering / Field Collapsi...
AutoSuggest• Vorschlag des zu suchenden Begriffs
Facetten• Gruppierung der Ergebnismenge• Navigationselement
DidYouMean• Wortvorschlag, basierend auf dem  Index• „Meinten Sie“ - Fuktionalitäten
Clustering• Alternative Darstellung der Trefferliste
Search - Berechtigungen• Kein Standard• Beispiel: ActiveDirectory bei SHI  – Index: zusätzliche Information  – Suche: zusä...
HerausforderungenRelevanz / Precision & Recall•   TF-IDF•   Sortierung / Function Queries•   Boosting•   Syntax
TF-IDF• Scoring in 2 Phasen  – Boolsche Modell  – Vector Space Modell• Relevanzalgorithmus
Sortierung / Function Queries• Sortierung  – default ist Score  – Konstantes Scoring bei *:*, Range und fq  – Beispiel: so...
Syntax•   Query -> q•   FilterQuery ->fq•   Boolean Operatoren -> OR, AND, NOT, +, -•   Phrasen -> “Harrison Ford”~5•   Wi...
Ausblicke• Solr Cloud  – Verteilte Suche mit zentraler Konfiguration• Near Real Time Search  – Alternative Commit Strategi...
Weiterführende Informationen• Solr  – Wiki (http://wiki.apache.org/solr)  – Jira (https://issues.apache.org/jira/browse/SO...
Demo / Q & AVielen Dank für Ihr Interesse
Upcoming SlideShare
Loading in …5
×

Jax 2012 - Apache Solr as Enterprise Search Platform

1,517 views
1,444 views

Published on

http://www.shi-gmbh.com
Die Informationsmengen in Unternehmen vervielfachen sich mit rasantem Tempo. Zudem sind Unternehmensinformationen oft auf eine Vielzahl unterschiedlicher IT-Systeme verteilt. Auf der anderen Seite ist ein schneller, zuverlässiger Zugriff auf die Gesamtheit der relevanten Informationen von zunehmender strategischer Bedeutung. Enterprise Search umfasst alle Informationstechnologien, die einen schnellen Zugriff auf verteilte und heterogenen Informationsquellen unternehmensweit ermöglichen. In diesem Vortrag wird der bekannte Suchserver Apache Solr im Kontext von Enterprise Search beleuchtet. Die damit verbundenen Herausforderungen wie Berechtigungen, Indexierung und Relevanz werden genauer betrachtet. Darüber hinaus werden verschiedene im Apache-Solr-Umfeld relevante Technologien und Frameworks sowie Best Practices vorgestellt, mit denen eine Enterprise-Search-Lösung schnell zum Erfolg gebracht werden kann.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,517
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jax 2012 - Apache Solr as Enterprise Search Platform

  1. 1. Apache Solr als Enterprise Search Plattform
  2. 2. Markus Klose - SHI• Projektmanagement• Requirements Engineering• Certified Solr Trainer• Enterprise Solution• Infrastruktursoftware• Beratung / Implementierung
  3. 3. Agenda• Enterprise Search• Solr Basics• Herausforderungen & Lösungen• Ausblicke
  4. 4. Enterprise Search85% aller Firmen haben auf weniger als50% aller ihrer Daten Zugriff (Google)
  5. 5. Enterprise Search
  6. 6. Enterprise Search mit Solr• Open Source vs. Kommerziell• Solr – Relevanz-Algorithmus (TF-IDF) – Kein Vendor-Lock – Zugriff auf Source Code – Aktive Community – Keine Lizenzgebühren / Kosten – Performance
  7. 7. Solr Basics• Solr … – … Framework für Such Applikationen – … nutzt Lucene – … Infrastruktur (Cache, Analyzer etc.) – … konfigurierbar (customizing) – … läuft in allen gängigen Servlet Containern – … aktuelle Version 3.6
  8. 8. Solr Basics • Solr Architektur – Konfigurationen – RequestHandler – ResponseWriter – UpdateHandler – ReplicationHandler – ….
  9. 9. Solr BasicsKonfiguration• solr.xml – Konfiguration meherer Cores• solrconfig.xml – Handler / SearchComponents etc. – Caching / Index Settings• schema.xml – Felder / Typen / Analyze
  10. 10. Solr BasicsHTTP Requests• Indexierung – http://host:8983/solr/update/csv?stream.file=data.csv&strea m.contentType=text/plain;charset=utf-8• Suche – http://host:8983/solr/select?q=baseball&fq=type:pdf&sort=titl e asc• Administration (SWAP) – http://host:8983/solr/admin/cores?action=SWAP&core=live& other=test
  11. 11. Solr BasicsSolr Ökosystem – Hadoop: Verteiltes Dateisystem – Mahout: Data-Mining – Tika: Metadaten Indexierung – Nutch: Web Crawler – ManifoldCF: Repository Connector – Pypes – Verarbeitungs Pipeline (Python) – RabbitMQ - Messaging System
  12. 12. Herausforderungen• Anbindung versch. Datenquellen• Verteilte / heterogene Systeme• Berechtigungen• Relevanz / Precision & Recall• Mehrsprachigkeit• Einheitliche Suche• etc.
  13. 13. HerausforderungenAnbindung verschiedener Datenquellen• Indexierung - Solr• Indexierung - DataImportHandler• Indexierung - Clients• Indexierung - externe Tools
  14. 14. Indexierung - Solr
  15. 15. Indexierung - DIH• Bestandteile – DataSource – EntityProcessor – Transformator• Use Cases – Datenbanken – Feeds (RSS/ATOM) & XML Dateien – Rich Content – Mail Server
  16. 16. Indexierung – Clients• Java (SolrJ) Apache Solr PHP Client• JavaScript• PHP• Ruby• C# (SolrNet)• Python
  17. 17. Indexierung – externe Tools• Nutch• Heritrix• ManifoldCF – … Sharepoint, Documentum …• Google Connector Framework
  18. 18. HerausforderungenVerteilte Systeme / Skalierbarkeit• Replikation• Sharding• Unique IDs
  19. 19. BasisarchitekturIndexierung • Eine Instanz übernimmt Solr sowohl die Indexierung als auch die Suche Suche
  20. 20. IndexierungReplication• Hohes Volumen an Suchanfragen Master• 1 Master mit N Slaves Slave 1 Slave2• Delta Replikation möglich• Konfigurationsdateien können repliziert werden Suche
  21. 21. Master-Slave-Konfiguration
  22. 22. Sharding Indexierung • Verteilung von großen DatenmengenShard 1 Shard 2 • Solr sucht über alle Shards & fasst die Ergebnisse zusammen Searching • Kein globaler TF-IDF
  23. 23. Sharding & Replication Indexierung• Flexibles Szenario Master 1 Master 2• Große Datenmengen und hohes Aufkommen von Suchanfragen Slave 11 Slave 12 Slave 21 Slave 22 Suche
  24. 24. Unique IDs• Update / Deletes / Verteilte Systeme• Solr FieldType solr.UUIDField• Basistypen nutzen• Typische Fehler – ID nicht einzigartig -> weniger im Index – ID nicht reproduzierbar -> verschiedene Versionen im Index
  25. 25. HerausforderungenHeterogene Systeme / Mehrsprachigkeit• Deduplikation• Solr - Konfiguration – Dismax/eDismax• Schema - Konfiguration – Analyse (Tokenizer / Filter) – Dynamische Felder – Copy Fields
  26. 26. Deduplikation• Doppelte Dokumente im Index• schema.xml• solrconfig.xml
  27. 27. Dismax / eDismax• DisMax – Disjunction Maximum• extrem variabel einsetzbar• versucht immer etwas zurückzuliefern
  28. 28. Analyse• Feldzentrische Verarbeitung des Inhalts – Tokenizer – Tokenfilter – CharFilter
  29. 29. Schema - Konfiguration• Dynamische Felder• Copy Field• Default Werte
  30. 30. HerausforderungenEinheitliche Suche / Berechtigung• AutoSuggest• Facetten• DidYouMean• Clustering / Field Collapsing• Berechtigungen
  31. 31. AutoSuggest• Vorschlag des zu suchenden Begriffs
  32. 32. Facetten• Gruppierung der Ergebnismenge• Navigationselement
  33. 33. DidYouMean• Wortvorschlag, basierend auf dem Index• „Meinten Sie“ - Fuktionalitäten
  34. 34. Clustering• Alternative Darstellung der Trefferliste
  35. 35. Search - Berechtigungen• Kein Standard• Beispiel: ActiveDirectory bei SHI – Index: zusätzliche Information – Suche: zusätzliche FilterQuery Auth.jsp fq= q=jax&fq=… q=jax allow:“12-33-45-7“ Solr AND Response Response -deny:“12-33-45-7“
  36. 36. HerausforderungenRelevanz / Precision & Recall• TF-IDF• Sortierung / Function Queries• Boosting• Syntax
  37. 37. TF-IDF• Scoring in 2 Phasen – Boolsche Modell – Vector Space Modell• Relevanzalgorithmus
  38. 38. Sortierung / Function Queries• Sortierung – default ist Score – Konstantes Scoring bei *:*, Range und fq – Beispiel: sort=titel asc,author desc• Function Queries – Beeinflussung des Ranking (bf/boost Parameter oder sort) – Beispiel: recip(ms(NOW,mydatefield),3.16e-11,1,1)
  39. 39. Syntax• Query -> q• FilterQuery ->fq• Boolean Operatoren -> OR, AND, NOT, +, -• Phrasen -> “Harrison Ford”~5• Wildcard -> fi?m, film*• Fuzzy -> Hale*0.9• Boost -> q=star OR trek^4.0• Range -> preis:[1 TO 10] oder preis:{1 TO 10}
  40. 40. Ausblicke• Solr Cloud – Verteilte Suche mit zentraler Konfiguration• Near Real Time Search – Alternative Commit Strategie• JOIN – „Verknüpfung“ von Dokumenten
  41. 41. Weiterführende Informationen• Solr – Wiki (http://wiki.apache.org/solr) – Jira (https://issues.apache.org/jira/browse/SOLR) – Mailinglist (http://lucene.apache.org/solr/mailing_lists.html)• Websites – SHI (http://www.shi-gmbh.com/blog) – Lucid Imagination (http://www.lucidimagination.com)
  42. 42. Demo / Q & AVielen Dank für Ihr Interesse

×