Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 1
Lucene's Welt: Ordnen, Finden, Klassifizieren
Java Forum Stuttgart, 2011
Christian Mederinovex GmbHChief Technology Officer
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 2
Agenda
Motivation Beispiele Projektübersicht Projekte Möglichkeiten Bewertung
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 3
Speaker
Christian Meder
Schwerpunkte open source (free software) Linux Web Java
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 4
Motivation
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 5
Motivation Google then (Mitte 2010)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 6
Motivation Google then (Mitte 2010)
Relevanz
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 7
Motivation Google then (Mitte 2010)
Autovervollstaendigung
Snippets
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 8
Motivation Google then (Mitte 2010)
Spellchecker
Antwortzeiten
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 9
Motivation Google then (Mitte 2010)
Aehnliche Seiten (More like this)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 10
Motivation Google then (Ende 2010)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 11
Motivation Google then (Ende 2010)
Instant Search
Facetten
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 12
Motivation Google then (Ende 2010)
Vorschau
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 13
Motivation Google now
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 14
Motivation Google now
Facetten
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 15
Motivation Amazon
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 16
Motivation
„Die Aussage eines Probanden bei einem Usability-Test einer Faceted Search Lösung im Rahmen dieser Studie ist damit richtungsweisend:
„Mit dem Filter hier habe ich das Gefühl, dass selbst eine schnöde Suche richtig Spaß machen kann.””
Quelle: Faceted Search: Die neue Suche im Usability-Test (zum kostenlosen Download unter http://usability.de)
usability.de
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 17
Motivation osscensus.org
Rank Package Installs1 firefox 3761 82%2 zlib 3118 67%3 wget 3000 65%4 xerces 2494 54%5 prototype 2450 53%6 eclipse 2428 52%7 c.-logging 2423 52%8 docbook-xml 1692 52%9 lucene 2394 52%10 xalan 2363 51%11 commons-lang 2349 51%12 wsdl4j 2242 48%13 tk 1557 48%14 samba 1554 48%15 activation 2175 47%
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 18
Beispiele
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 19
Beispiele Ebay Kleinanzeigen
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 20
Beispiele
Site metrics:• ~ 3.2 M active ads• 16 – 24 M PVs per day• Peak hours = 1.8 M PVs (~ 500 PVs per second)Solr request metrics:• ~ 60 M requests per day• Peak hours = ~ 1500 request per secondAvg. response time• 20 ms (search) and 3 ms for auto-suggest
Ebay Kleinanzeigen (aus Olaf Zschiedrich solr@ebay Kleinanzeigen)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 21
Beispiele
• 2 datacenters• 1 Master + 6 Slaves per datacenterSlaves show very low resource consumption. Could go down to 4slaves per datacenter while still having 50% overcapacity
• Master only used for indexing• Load balancer in front of slaves• Varnish in front of slaves (for dedicated use cases)• Working closely with SITE-OPS Team• DEV-OPS are part of development process
Ebay Kleinanzeigen (aus Olaf Zschiedrich solr@ebay Kleinanzeigen)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 22
Beispiele weitere
polyvore Mozilla Wikipedia Twitter ...
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 23
Projektuebersicht
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 24
Projektübersicht Lucene
Lucene: Suchbibliothek Solr: Suchserver Nutch: Crawler Tika: Inhaltsanalyse ElasticSearch (Compass): Suchserver Mahout: Machine Learning HibernateSearch: Lucene-Integration für Hibernate
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 25
Projekte
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 26
Architektur Indizierung
Inhalte
Bereitstellung
Aufbereitung
Analyse
Indizierung
Index
Lucene
Solr
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 27
Projekte Lucene
Information Retrieval
Bibliothek
Kern einer Sucharchitektur
effizient
skalierbar
Viele Ports: .Net, C, Python
Vielfach integriert in
Produkte
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 28
Historie Lucene
0.01 (2000) Doug Cutting 1.2 (2002) Apache Jakarta Projekt 2.0 (2006) Sortieren, Datums- und Zahlenfelder, Bereichsfelder, ... 2.9 (2009) near realtime search, neue Analyzer, ... 3.0 (2009) cleanup release, deprecations 3.1/3.2/3.3 (2011) performance, grouping, autocomplete Verbesserungen, ...
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 29
Projekte Solr
Enterprise Suchserver
XML über HTTP
skalierbar
Adminoberfläche
schema-basiert
viele Analyse-Klassen
Handler, Filter, Facetten
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 30
Projekte Solr: Schema
enthält Felder / Feldtypen
Feldtypen mit
unterschiedlichen Analysern
dynamische Felder
CopyField
Konfigurierbare Textanalyse
Listen von Synonymen, Stopp-
Wörtern, etc.
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 31
Projekte Solr: Schema, Beispiele Felder
<field name="subject" type="string" indexed="true" stored="true" />
<field name="contactPhotoURL" type="string" indexed="false" stored="true" />
<field name="priceperhour" type="sfloat" indexed="true" stored="true" />
<field name="created" type="date" indexed="true" stored="true" />
<field name="subject" type="string" indexed="true" stored="true" multiValued="true" />
<field name="all_text" type="text" indexed="true" stored="false" />
<dynamicField name="skills_*" type="text" indexed="true" stored="true" multiValued="true" />
<copyField source="subject" dest="all_text" />
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 32
Projekte Solr: Features
Markierte Treffer
Spellchecker
MoreLikeThis
Dismax Query
DataImportHandler: DB,
XML, ...
Indexanalyse
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 33
Historie Solr
2006 code donation von CNET 1.1: 17.1.2007 aus incubator zu lucene Subprojekt 1.2: 2.6.2007 spellcheck, sounds-like, ... 1.3: 15.9.2008 verteiltes Suchen, ... 1.4: 10.11.2009 db dataimporthandler, ... 3.1/3.2/3.3 (2011) geospatial support, grouping/collapsing, ...
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 34
Projekte Solr: Queries
HTTP Interface mit verschiedenen Formaten (XML, JSON...)
Mehrfachsortierung
Auto Suggest
Dismax query
Snippets
Spelling suggestions
More Like This
einfache Datumsberechnungen
Function Query
einfache Statistik (min, max, ...)
Facetten Suche (Filtern nach mehreren Facetten)
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 35
Projekte Solr: Einfache Beispiele für q
+goethe +schiller
+goethe -schiller
title:faust
title:faust AND -all_text:goethe
“romeo and juliet”
water*
water~
created:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
price:[20 TO 50]
price:[100 TO *]
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 36
Projekte Solr: Beispiele für Parameter
sort=score asc
sort=created asc
sort=created asc, title asc
start=10
rows=20
fl=*
fl=id, title
fl=*, score
created:[NOW/DAY-1MONTH TO NOW/DAY]
fq=created:[NOW/DAY-2YEARS TO
NOW/DAY]&fq=all_text:poetry
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 37
Projekte Nutch
Web Crawler
verteilt, parallel
Erstellt gerichteten
Graphen
Multi-Format (HTML, PDF,
Office, Tika, ...)
MapReduce, Hadoop
Lucene oder Solr
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 38
Projekte Tika
Inhaltsanalyse
Extrahiert Metadaten und
strukturierte Inhalte
nutzt existierende Parser
große und wachsende
Anzahl an Formaten
weitere Parser einfach
ergänzbar
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 39
Projekte ElasticSearch
nutzt Lucene
Facetten, Typen, ...
elastic: sharding/replicas
automatisch
schemalos
Vorgänger: Compass
Framework
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 40
Projekte Mahout
Machine Learning
Empfehlungen
Clustering
Classification
Hadoop
Zahlreiche Algorithmen
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 41
Moeglichkeiten
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 42
Möglichkeiten Beispiel 2009
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 43
Möglichkeiten Solr browse
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 44
Möglichkeiten Solr browse
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 45
Bewertung The road ahead
Solr: einfach, konfigurierbar,
skalierbar, endnutzerfreundlich
Lucene: lowlevel,
komplexer, volle Flexibilität
ElasticSearch: relativ neu,
aber automatische Skalierung
Mahout: komplex, mächtig,
skalierbar
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 07.07.2011 46
inovex GmbH
PforzheimKarlsruher Straße 71D-75179 Pforzheim
MünchenKonrad-Zuse-Platz 1D-81829 München
KölnKaiser-Wilhelm-Ring 27-29D-50672 Köln
Vielen Dank für Ihre Aufmerksamkeit!