Google, Amazon und Co. setzen den Standard für performante Such-, Klassifikations- und Vorschlagsfunktionen. Wie können die Apache-Projekte aus dem Lucene-Umfeld hier mithalten? Welche Projekte helfen bei welchen Fragestellungen? Diese Session möchte einen aktuellen Ein- und Überblick über das Apache-Lucene-Ökosystem und seine Anwendungen in den Bereichen Suche, Data Mining und BI geben.
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Lucenes Welt - Ordnen, finden, klassifizieren
1. Christian Meder & Andrew Kenworthy | inovex
Lucenes Welt –
Ordnen, finden, klassifizieren
2. Lucene's Welt:
Ordnen,
Finden,
Klassifizieren
JAX, 2012
Andrew Kenworthy
Christian Meder
inovex GmbH
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 1
3. Speaker
Andrew Kenworthy
Schwerpunkte
Business Intelligence
Java
Solr
Hadoop
andrew.kenworthy@inovex.de
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 2
4. Speaker
Christian Meder
Schwerpunkte
open source (free
software)
Linux
Web
Java
Android
CTO@inovex
Christian Meder
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 3
5. Agenda
Motivation
Beispiele
Projektübersicht
Projekte
Möglichkeiten
Bewertung
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 4
6. Motivation
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 5
7. Motivation
Google klassisch (2010)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 6
8. Motivation
Google klassisch (2010)
Relevanz
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 7
9. Motivation
Google klassisch (2010)
Snippets
Autovervollstaendigung
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 8
10. Motivation
Google klassisch (2010)
Antwortzeiten
Spellchecker
Aehnliche Seiten (More like this)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 9
11. Motivation
Google Evolution (2011)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 10
12. Motivation
Google Evolution (2011)
Facetten
Instant Search Vorschau
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 11
13. Motivation
Google Evolution (2011)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 12
14. Motivation
Google Evolution (2011)
Facetten
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 13
15. Motivation
Google Evolution (2012)
SPYW
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 14
16. Motivation
Google Evolution (2012)
SPYW
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 15
17. Motivation
Amazon
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 16
18. Motivation
usability.de
„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)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 17
20. Beispiele
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19
21. Beispiele
Ebay Kleinanzeigen
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 20
22. Beispiele
Ebay Kleinanzeigen (aus Olaf Zschiedrich solr@ebay Kleinanzeigen)
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 second
Avg. response time
• 20 ms (search) and 3 ms for auto-suggest
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 21
23. Beispiele
Ebay Kleinanzeigen (aus Olaf Zschiedrich solr@ebay Kleinanzeigen)
• 2 datacenters
• 1 Master + 6 Slaves per datacenter
Slaves show very low resource consumption. Could go down
to 4
slaves 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
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 22
24. Beispiele
ElasticSearch
IGN's search
10 nodes / 2 clusters
56 M documents
Scala over TCP
PHP/JS over HTTP
~5k rpm
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 23
25. Beispiele
ElasticSearch
Sonian Inc.
Cloud electronic document search
20+ cluster
5 billion documents
Index into 100s TB
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 24
27. Projektübersicht
Lucene
Lucene: Suchbibliothek
Solr: Suchserver
Nutch: Crawler
Tika: Inhaltsanalyse
ElasticSearch (Compass): Suchserver
Mahout: Machine Learning
ManifoldCF: Repository Connectors
(incubation)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 26
28. Projekte
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 27
29. Architektur
Indizierung
Inhalte
Solr
Bereitstellung
Aufbereitung
Lucene
Analyse
Indizierung
Index
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 28
30. Projekte
Lucene
Information Retrieval
Bibliothek
Kern einer Sucharchitektur
effizient
skalierbar
Viele Ports: .Net, C, Python
Vielfach integriert in
Produkte
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 29
31. Historie
Lucene
0.01 (2000) Doug Cutting
1.2 (2002) Apache Jakarta Projekt
- 2.9 (2009) Sortieren, Datums- und
Zahlenfelder, Bereichsfelder, near realtime
search, neue Analyzer, ...
3.0 (2009) cleanup release, deprecations
3.1 - 3.6 (2011/2012) performance,
grouping, autocomplete Verbesserungen,
facet, join, ...
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 30
32. Projekte
Solr
Enterprise Suchserver
XML über HTTP
skalierbar
Adminoberfläche
schema-basiert
viele Analyse-Klassen
Handler, Filter, Facetten
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 31
33. Projekte
Solr: Schema
enthält Felder / Feldtypen
Feldtypen mit
unterschiedlichen Analysern
dynamische Felder
CopyField
Konfigurierbare Textanalyse
Listen von Synonymen, Stopp-
Wörtern, etc.
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 32
35. Projekte
Solr: Features
Markierte Treffer
Spellchecker
MoreLikeThis
Dismax Query
DataImportHandler: DB,
XML, ...
Indexanalyse
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 34
36. 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.6 (2011/2012) geospatial support,
grouping/collapsing, ...
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 35
37. 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)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 36
38. 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 *]
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 37
39. 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
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 38
40. Projekte
Nutch
Web Crawler
verteilt, parallel
Erstellt gerichteten
Graphen
Multi-Format (HTML, PDF,
Office, Tika, ...)
MapReduce, Hadoop
Lucene oder Solr
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 39
41. Projekte
Tika
Inhaltsanalyse
Extrahiert Metadaten und
strukturierte Inhalte
nutzt existierende Parser
große und wachsende
Anzahl an Formaten
weitere Parser einfach
ergänzbar
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 40
42. Projekte
ElasticSearch
nutzt Lucene
Facetten, Typen, ...
elastic: sharding/replicas
automatisch
schemalos
Vorgänger: Compass
Framework
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 41
43. Projekte
Mahout
Machine Learning
Empfehlungen
Clustering
Classification
Hadoop
Zahlreiche Algorithmen
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 42
44. Moeglichkeiten
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 43
45. Möglichkeiten
Beispiel 2009
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 44
46. API
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 45
47. Commit Options
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 46
48. Concurrency
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 47
49. Config
org.apache.solr.common.SolrException: Error opening new searcher.
exceeded limit of maxWarmingSearchers=2, try again later.
request: http://localhost:8983/solr/update?
commit=true&waitFlush=true&waitSearcher=true&...
at ...
In standard solr configuration:
<maxWarmingSearchers>2</maxWarmingSearchers>
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 48
50. Solr Wiki:
"...every time a new index searcher is opened,
some autowarming of the cache occurs before
Solr hands queries over to that version of the
collection. It is crucial to individual query latency
that queries have warmed caches."
→ Near-Real-Time (Lucene since 2.9,
Solr/trunk, ElasticSearch)
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 49
56. Lucene & Hadoop
- Hadoop: parallel processing power
- Lucene: dynamic, rapid search
But...
- HDFS: no random read/writes
- Solr: distributed indexes
So...
- Index built in HDFS, export to local
- HBase
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 55
57. 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
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 56
58. Vielen Dank !
19.04.2012 Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 57