Apache Solr Einleitung Features Implementation Verwaltung Benutzung Universität zu Köln Sprachliche Informationsverarbeitung Hauptseminar: Angewandte linguistische Datenverarbeitung Dozent: Prof. Dr. Jürgen Rolshoven Referent: Patrick Pelinski ALD:HS – WiSe 2011/2012 Apache Solr 1 Gliederung • Apache Solr – Beschreibung, Hintergrund, Motivation • Features • Funktionsweise und Implementation Verwaltung • Verwaltung durch Admin User-Interface Benutzung • Benutzung und eigene Implementation Einleitung Features Implementation ALD:HS – WiSe 2011/2012 Apache Solr 2 Apache Solr - Beschreibung • Einleitung Features Ursprünglich (2004) eigenständige Suchplattform für CNET Networks-Intranet • Seit 2006/2007: Open-Source Suchplattform • Integriert Apache Lucene Core und Apache Tika (seit 3.4) • Verschmelzung von Lucene und Solr seit 2011 zu Implementation Verwaltung Benutzung einheitlicher Versionisierung (seitdem 3.1) • Suchmaschine, gleichzeitig aber auch Suchframework • Geschrieben in Java • 27.11.2011: Apache Solr 3.5.0 veröffentlicht ALD:HS – WiSe 2011/2012 Apache Solr 3 Apache Solr - Motivation • Isolierte Suchmaschine für gezielte Einsatzzwecke (eigene Einleitung Projekte, Datenbankobjekte auswerten, Features Informationsextraktion etc.) Implementation • Verwaltung Benutzung Keine ausschließliche Verwendung von Nur-Text Informationen, sondern auch strukturierten Dokumenten • Dedizierter Einsatzzweck, aber auch Implizierter möglich • Auswertung von individuellen Informationen (Named Entities) • Idealerweise als Suchanwendung für Webseite mit hohem Traffic ALD:HS – WiSe 2011/2012 Apache Solr 4 Apache Solr - Features Einleitung • Volltext-Suchmaschine • Web-Schnittstelle Features • Indizierung mittels HTTP-Request • Suchanfragen per HTTP-GET Implementation Verwaltung • Resultate in XML oder JSON • Clustering • Datenbankintegration • Vielzahl von Dokumententypen werden Benutzung unterstützt (durch Apache Tika) • Hohe Skalierung durch verteilte Suchund Indizierungsreplikation • Mehrdimensionale Suche ALD:HS – WiSe 2011/2012 Apache Solr 5 Apache Solr - Implementation • Definition des Schemas in der Schema.xml • Integration in einen Webserver und Servlet- Einleitung Features Implementation Verwaltung Benutzung Container (z.B. Apache Tomcat) • An Apache Solr Dokumente schicken, die durchsucht werden sollen • Integration in die eigene Anwendung, um Suchergebnisse auszuwerten (nicht unbedingt), ansonsten Auswertung über Admin Userinterface ALD:HS – WiSe 2011/2012 Apache Solr 6 Apache Solr - Implementation • (nur wenn Commit!) Einleitung Features • Grundlage der Indizierung bilden sogenannte Felder, in denen Dokumente abstrahiert werden Implementation Verwaltung Erhält Solr ein neues Dokument, indiziert es im Anschluss den Index • Solr kennt verschiedene Feldtypen, die ähnlich wie bei Programmiersprachen typisiert werden Benutzung • Felder können definiert und kopiert und zusätzlich dynamisch (wenn es keine gibt) oder als einzigartig gekennzeichnet werden ALD:HS – WiSe 2011/2012 Apache Solr 7 Apache Solr - Implementation • umgegangen wird (solrconfig.xml) Einleitung Features Implementation Verwaltung Benutzung Über Field Analyzer definiert Solr, wie mit einzelnen Datentypen • Dabei verwendet Solr folgende Mittel • Analyzer (übernimmt Felder) • Tokenizer (generiert Tokenstream) • Filter (entscheidet, ob Tokens akzeptiert oder verworfen werden) ALD:HS – WiSe 2011/2012 Apache Solr 8 Apache Solr - Implementation • Tokenizer und Filter können auch Sprachgebunden arbeiten Einleitung Features Implementation Verwaltung Benutzung ALD:HS – WiSe 2011/2012 Apache Solr 9 Apache Solr - Verwaltung • Solr kann durch das Admin Userinterface verwaltet werden Einleitung Features Implementation Verwaltung Benutzung ALD:HS – WiSe 2011/2012 Apache Solr 10 Apache Solr - Benutzung • Einleitung Solr kann auf unterschiedliche Art und Weise benutzt werden: • übergeben (curl, wget, etc.) Features Implementation • Solr Cell (ExtractingRequestHandler): Übergabe von strukturierten und binären Dokumenten Verwaltung Benutzung HTTP-POST: Dokumente werden als JSON, XML oder CSV • HTTP-GET: Resultate können als XML, JSON oder sogar als Code (Ruby, Python, PHP …) angefordert werden • Kann durch Plug-ins erweitert werden (z.B. als Webservice in Java) • Implementation in eigener Java-Anwendung auf Basis von SolrJ (Solr Java Client API) • Direktimport aus Datenbanken mittels Data Import-Handler ALD:HS – WiSe 2011/2012 Apache Solr 11 Apache Solr Vielen Dank Einleitung Features fürs Zuhören! Implementation Verwaltung Benutzung Literatur: - http://de.wikipedia.org/wiki/Lucene - http://en.wikipedia.org/wiki/Apache_Solr - http://lucene.apache.org/solr/ - http://wiki.apache.org/solr/ - http://lucidworks.lucidimagination.com ALD:HS – WiSe 2011/2012 Apache Solr 12