BIW Wahlpflichtmodul - th-koeln.deixtrieve.fh-koeln.de/lehre/mp-wp-biw-17s/solr-intro-slides.pdf ·...

18
BIW Wahlpflichtmodul Einführung in Solr, Pipeline und REST Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany Version: 2018-05-29

Transcript of BIW Wahlpflichtmodul - th-koeln.deixtrieve.fh-koeln.de/lehre/mp-wp-biw-17s/solr-intro-slides.pdf ·...

BIW WahlpflichtmodulEinführung in Solr, Pipeline und REST

Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany

Version: 2018-05-29

2

Überblick über gängige Lösungen

Solr§ ist eine Suchmaschine (keine Datenbank!),§ stellt einen Index zur Verfügung,§ arbeitet über HTTP und nach dem REST-Prinzip,§ hat ein grafisches Benutzungsinterface,§ beherrscht Relevance-Ranking (Vektorraum),§ beherrscht Boolesche Anfragen,§ hat ein flexibles Datenschema,§ ist Open-Source (Apache-Lizenz),§ uvm. …

3

in a nutshell

Scalable§ Solr scales by distributing work to multiple servers in a cluster.

Ready to deploy§ Solr is open source, is easy to install and configure, and pro- vides a preconfigured

example to help you get started.

Optimized for search§ Solr is fast and can execute complex queries in subsecond speed.

Large volumes of documents§ Solr is designed to deal with indexes containing millions of documents.

Text-centric§ Solr is optimized for searching natural-language text, like emails, web pages,

resumes, PDF, and social messages such as tweets or blogs.

Results sorted by relevance§ Solr returns documents in ranked order based on how relevant each document is to

the user’s query.

Die Hauptmerkmale von Solr4

Solr in Action, Seite 4

Solr ist eine Suchmaschine, die sich auf Text fokussiert, d.h.§ Text-zentriert (kann gut mit unstrukturierten Texten umgehen,

entgegengesetzt zu einer Datenbank, die eher auf strukturierte Daten setzt)

§ Lese-zentriert (es wird mehr aus einer Suchmaschine heraus gelesen, als in sie hineingeschrieben)

§ Dokumenten-zentriert (die indexierten Elemente sind flache Informationseinheiten, meist Dokumente – kein Multimedia, keine Netzwerkdaten etc.)

§ Flexibles Schema (die zu indexierenden Daten müssen nicht alle dem gleichen Format und der gleichen Struktur folgen – Es dürfen auch unterschiedliche Verteilungen der Inhalte vorliegen)

Solr ist Text-zentriert5

Es gibt Dinge, für die Solr nicht gut geeignet ist, z.B.§ wenn mehr als die üblichen 10-100 Dokumente als Ergebnis

erwartet werden, z.B. 1 Million Ergebnisdokumente;§ wenn große Untermengen des Indexes analysiert werden sollen;§ wenn Beziehungen zwischen Dokumenten wichtig sind;§ wenn Zugriffsrechte und Security wichtig sind;

Nochmal in aller Deutlichkeit:§ Solr ist keine Websuchmaschine wie Google oder Bing!§ Solr hat nichts mit Search Engine Optimization (SEO) zu tun!

Was Solr nicht leisten kann...6

7

Solr in Action, Seite 10

8

Wie funktioniert eine Suchmaschine?

http://nlp.stanford.edu/IR-book/html/htmledition/putting-it-all-together-1.html

9

Die Indexierungspipeline10

Tokenizer

Tokens Friends Romans CountrymenLinguistische Module (z.B.

Spellchecker, Stemmer etc.)Modifizierte Tokens friend roman countryman

Indexer

Invertierter Index

friend

roman

countryman

Dokument Friends, Romans, countrymen.

11

Solr in Action, Seite 12

Solr ist Such-Server auf Basis von Lucene mit REST-like API§ Solr basiert auf der Lucene Search Library und erweitert diese!§ Solr arbeitet in Servlet Containern wie Apache Tomcat (oder Jetty)

Indexing: § „Dokumente“ zum Index hinzufügen§ in Form von XML oder JSON§ über HTTP POST

Suche: § Anfrage / Query an Solr§ in Form von XML, JSON, CSV, ...§ über HTTP GET

12

Solr als Such-Server auf REST-Basis

Seite 13

Solr in Action, Seite 120

Solr-Demo

analog zum kommenden Laborpraktikum

Seite 14

Quellen der heutigen Vorlesung

§ Kapitel 1 von Solr in Action (liegt im Moodle)

§ Apache Solr Reference Guide Covering Apache Solr 6.2:http://mirror.synyx.de/apache/lucene/solr/ref-guide/apache-solr-ref-guide-6.2.pdf

15

HTTP – Basiswissen

Hypertext Transfer Protocol (HTTP)Zentrales Übertragungsprotokoll im InternetRessourcen werden über URI adressiert:

Protokoll Host Ressource

http://www.server.de/index.html?werbung=jaGET-Parameter

HTTP GET-Parameter

Es gibt viele grundlegende HTTP Befehle: § GET: Abruf einer Ressource (z.B. Wikipedia-Seite)§ POST: Absenden einer Ressource (z.B. Formular)§ DELETE: Löschen einer Ressource§ ...

GET können Parameter in der URL übergeben werden: /wiki/Spezial:Search?search=Katzen&go=Artikel

Argument Wertsearch Katzen

go Artikel

Besondere Regeln

Beachte Einsatz von ? und & im Parameter!Manche Zeichen müssen kodiert werden:

Braucht man aber nicht händisch machen:http://www.w3schools.com/tags/ref_urlencode.asp

Leerzeichen

? & # …

+ oder %20 %3F %26 %23 …