http://www.dkd.de
dkd design kommunikation development
Apache Solr - A deeper look Stefan Sprenger, Developer dkd Olivier Dobberkau, Geschäftsführer dkd
Agenda Einführung Boosting Empfehlungen Ausblick
Einführung Was ist Apache Solr?
Apache Lucene hoch-performante Such-Engine Open-Source 100% Java Ressourcen-sparend Ports für zahlreiche Programmiersprachen
Apache Solr basiert im Kern auf Apache Lucene REST-ähnliche HTTP-Schnittstelle verarbeitet XML, JSON, CSV und Binärdaten erweitert Lucene um diverse Features, z.b. Facetten Suchwort-Highlighting HTML-Admin-Interface Caching Stable-Versionen: 3.6.2 und 4.2
Apache Solr wird verwendet bei...
Workflow einer Suchanwendung Indexieren Abfragen Ergebnisse Analyse
Schemafreiheit Dokumente besitzen kein festes Schema hohe Flexibilität beliebige Attribute Beispiel: Visitenkarten
Datenmodell Solr-Index Dokument A title author content Dokument B title content Dokument C title author content created
Solr-Index Inverted Index Liste an Wörtern ( Terms ) jeder Term zeigt auf Dokumente, die ihn enthalten
Lucene Query Language (1) erlaubt das Durchsuchen von Dokumenten Keyword-Matching title: TYPO3 title: TYPO3 AND content: Solr title: TYPO3 OR content: Solr Wildcard-Matching title: TYPO* *: TYPO3
Lucene Query Language (2) Range-Queries created:[20120101 TO 20140131]
Facettierte Suche
Content-Elevation Bezahlte Ergebnisse bestimmte Dokumente erscheinen immer am Anfang der Suchergebnisse
Geo-Suche Suche im Umkreis einer Geo-Position z.b. Shops im Umkreis von 10km Funktionen zur Distanzberechnung
Dateiindexierung mit Apache Tika Tika ist in Solr integriert extrahiert Metadaten aus Dateien erkennt 1200+ Dateitypen liest davon 600+ z.b. Office-Formate, Audio, Bilder, Videos, E-Mails,...
Apache Nutch kann zur Indexierung von externen Webseiten verwendet werden EXT:solr bietet eine API an, die ein selbst entwickeltes Nutch-Plugin verwendet Integration in TYPO3
Weitere Features Rechtschreibüberprüfung Synonyme und Stoppwörter Sortierung Gruppierte Ausgabe von Ergebnissen Hervorhebung von Suchwörtern...
Literatur
Boosting
Ziel Relevanz der Suchergebnisse beeinflussen beschreibt die Qualität/Güte der Suchergebnisse Ergebnisse verbessern Standard-Sortierung: Relevanz Ergebnisse mit hoher Relevanz stehen am Anfang
Boosting von Attributen Relevanz einzelner Attribute beeinflussen (title:typo3)^5.0 (content:typo3)^2.0
Case-Insensitive Matches Wenn nach solr gesucht wird, sollen auch Dokumente, die Solr enthalten, gefunden werden Verwenden eines lowercase-filters
Boosting von exakten Matches exakte Matches sollen eine höhere Relevanz in den Suchergebnissen erhalten z.b. Case-sensitive Schreibweise eigenes Feld mittels copyfield erstellen, das das Wort in exakter Schreibweise enthält ohne lowercase-filter dieses Feld erhält eine höhere Priorität
Boosting von Dokumenten Bezahlte Ergebnisse Konfiguration der Dokumente per XML <elevate> <query text= Typo3 > <doc id= 1 /> </query> <query text= Solr > <doc id= 2 /> <doc id= 3 /> <doc id= 5 exclude= true /> </query> </elevate>
Empfehlungen
Einsatzgebiet Apache Solr zum Erstellen von Empfehlungen verwenden Navigation durch Suchergebnisse und Webseiteninhalte z.b. Shops
Attributsbasierte Empfehlungen (1) Verwenden von Eigenschaften, die man vom Benutzer kennt, um einen Solr-Index abzufragen Beispiel: man weiß, dass ein Benutzer sich für den Studiengang Informatik interessiert dann können Dokumente aus dem Fachbereich Informatik vorgeschlagen werden fachbereich:informatik http://de.slideshare.net/treygrainger/building-a-real-time-solrpowered-recommendation-engine
Attributsbasierte Empfehlungen (2) Spezielle Felder erstellen, auf deren Basis Empfehlungen ausgesprochen werden Bessere Steuerung von Empfehlungen
More Like This eigenes Solr-Modul arbeitet basierend auf Begriffen ( Terms ) in Attributen Solr berechnet die textliche Ähnlichkeit der Dokumente und schlägt die Top-Treffer vor
Ausblick
Apache Stanbol Content Enhancement annotiert Texte mit Metadaten z.b. Personen, Orte nutzt Apache Solr zur Speicherung unterstützt Mehrsprachigkeit
Hosted Solr
Links lucene.apache.org/solr/ www.typo3-solr.com forge.typo3.org/projects/extension-solr/ Wiki Issues
Fragen?
dkd design kommunikation development sagt danke.