View
1.222
Download
4
Category
Tags:
Preview:
DESCRIPTION
http://www.shi-gmbh.comDie 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.
Citation preview
Apache Solr als Enterprise Search Plattform
Markus Klose - SHI
• Projektmanagement
• Requirements Engineering
• Certified Solr Trainer
• Enterprise Solution
• Infrastruktursoftware
• Beratung / Implementierung
Agenda
• Enterprise Search
• Solr Basics
• Herausforderungen & Lösungen
• Ausblicke
Enterprise Search
85% aller Firmen haben auf weniger als 50% aller ihrer Daten Zugriff (Google)
Enterprise Search
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
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
Solr Basics
• Solr Architektur– Konfigurationen
– RequestHandler
– ResponseWriter
– UpdateHandler
– ReplicationHandler
– ….
Solr Basics
Konfiguration
• solr.xml– Konfiguration meherer Cores
• solrconfig.xml– Handler / SearchComponents etc.
– Caching / Index Settings
• schema.xml– Felder / Typen / Analyze
Solr Basics
HTTP 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
Solr Basics
Solr Ökosystem– Hadoop: Verteiltes Dateisystem
– Mahout: Data-Mining
– Tika: Metadaten Indexierung
– Nutch: Web Crawler
– ManifoldCF: Repository Connector
– Pypes – Verarbeitungs Pipeline (Python)
– RabbitMQ - Messaging System
Herausforderungen
• Anbindung versch. Datenquellen
• Verteilte / heterogene Systeme
• Berechtigungen
• Relevanz / Precision & Recall
• Mehrsprachigkeit
• Einheitliche Suche
• etc.
Anbindung verschiedener Datenquellen
• Indexierung - Solr
• Indexierung - DataImportHandler
• Indexierung - Clients
• Indexierung - externe Tools
Herausforderungen
Indexierung - Solr
Indexierung - DIH
• Bestandteile– DataSource
– EntityProcessor
– Transformator
• Use Cases– Datenbanken
– Feeds (RSS/ATOM) & XML Dateien
– Rich Content
– Mail Server
Indexierung – Clients
• Java (SolrJ)
• JavaScript
• PHP
• Ruby
• C# (SolrNet)
• Python
Apache Solr PHP Client
Indexierung – externe Tools
• Nutch
• Heritrix
• ManifoldCF– … Sharepoint, Documentum …
• Google Connector Framework
Verteilte Systeme / Skalierbarkeit
• Replikation
• Sharding
• Unique IDs
Herausforderungen
Basisarchitektur
• Eine Instanz übernimmt sowohl die Indexierung als auch die Suche
SolrSolr
Indexierung
Suche
Replication
• Hohes Volumen an Suchanfragen
• 1 Master mit N Slaves
• Delta Replikation möglich
• Konfigurationsdateien können repliziert werden
MasterMaster
Slave 1Slave 1 Slave2Slave2
Suche
Indexierung
Master-Slave-Konfiguration
Sharding
• Verteilung von großen Datenmengen
• Solr sucht über alle Shards & fasst die Ergebnisse zusammen
• Kein globaler TF-IDF
Shard 1Shard 1 Shard 2Shard 2
Indexierung
Searching
Sharding & Replication
• Flexibles Szenario
• Große Datenmengen und hohes Aufkommen von Suchanfragen
Master 1Master 1 Master 2Master 2
Indexierung
Slave 11Slave 11 Slave 12Slave 12 Slave 21Slave 21 Slave 22Slave 22
Suche
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
Heterogene Systeme / Mehrsprachigkeit
• Deduplikation
• Solr - Konfiguration– Dismax/eDismax
• Schema - Konfiguration – Analyse (Tokenizer / Filter)
– Dynamische Felder
– Copy Fields
Herausforderungen
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
Einheitliche Suche / Berechtigung
• AutoSuggest
• Facetten
• DidYouMean
• Clustering / Field Collapsing
• Berechtigungen
Herausforderungen
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ätzliche FilterQuery
SolrSolr
Auth.jsp
fq=
allow:“12-33-45-7“ AND
-deny:“12-33-45-7“
q=jax&fq=…
Response
q=jax
Response
Relevanz / Precision & Recall
• TF-IDF
• Sortierung / Function Queries
• Boosting
• Syntax
Herausforderungen
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: 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)
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}
Ausblicke
• Solr Cloud– Verteilte Suche mit zentraler Konfiguration
• Near Real Time Search– Alternative Commit Strategie
• JOIN– „Verknüpfung“ von Dokumenten
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)
Demo / Q & A
Vielen Dank für Ihr Interesse
Recommended