Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ......

58
Christian Meder & Andrew Kenworthy | inovex Lucenes Welt – Ordnen, finden, klassifizieren

Transcript of Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ......

Page 1: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Christian Meder & Andrew Kenworthy | inovex

Lucenes Welt – Ordnen, finden, klassifizieren

Page 2: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 1

Lucene's Welt: Ordnen, Finden, Klassifizieren

JAX, 2012

Andrew KenworthyChristian Mederinovex GmbH

Page 3: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 2

Speaker

Andrew KenworthySchwerpunkte Business Intelligence Java Solr [email protected]

Page 4: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 3

Speaker

Christian MederSchwerpunkte open source (free software) Linux Web Java Android CTO@inovex Christian Meder

Page 5: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 4

Agenda

Motivation Beispiele Projektübersicht Projekte Möglichkeiten Bewertung

Page 6: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 5

Motivation

Page 7: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 6

Motivation Google klassisch (2010)

Page 8: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 7

Motivation Google klassisch (2010)

Relevanz

Page 9: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 8

Motivation Google klassisch (2010)

Autovervollstaendigung

Snippets

Page 10: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 9

Motivation Google klassisch (2010)

Spellchecker

Antwortzeiten

Aehnliche Seiten (More like this)

Page 11: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 10

Motivation Google Evolution (2011)

Page 12: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 11

Motivation Google Evolution (2011)

VorschauFacetten

Instant Search

Page 13: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 12

Motivation Google Evolution (2011)

Page 14: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 13

Motivation Google Evolution (2011)

Facetten

Page 15: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 14

Motivation Google Evolution (2012)

SPYW

Page 16: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 15

Motivation Google Evolution (2012)

SPYW

Page 17: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 16

Motivation Amazon

Page 18: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 17

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

Page 19: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 18

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%

Page 20: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 19

Beispiele

Page 21: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 20

Beispiele Ebay Kleinanzeigen

Page 22: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 21

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)

Page 23: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 22

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)

Page 24: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 23

Beispiele ElasticSearch

IGN's search 10 nodes / 2 clusters 56 M documents Scala over TCP PHP/JS over HTTP ~5k rpm

Page 25: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 24

Beispiele ElasticSearch

Sonian Inc. Cloud electronic document search 20+ cluster 5 billion documents Index into 100s TB

Page 26: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 25

Projektuebersicht

Page 27: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 26

Projektübersicht Lucene

Lucene: Suchbibliothek Solr: Suchserver Nutch: Crawler Tika: Inhaltsanalyse ElasticSearch (Compass): Suchserver Mahout: Machine Learning ManifoldCF: Repository Connectors (incubation)

Page 28: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 27

Projekte

Page 29: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 28

Architektur Indizierung

Inhalte

Bereitstellung

Aufbereitung

Analyse

Indizierung

Index

Lucene

Solr

Page 30: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 29

Projekte Lucene

Information Retrieval

Bibliothek

Kern einer Sucharchitektur

effizient

skalierbar

Viele Ports: .Net, C, Python

Vielfach integriert in

Produkte

Page 31: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 30

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, ...

Page 32: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 31

Projekte Solr

Enterprise Suchserver

XML über HTTP

skalierbar

Adminoberfläche

schema-basiert

viele Analyse-Klassen

Handler, Filter, Facetten

Page 33: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 32

Projekte Solr: Schema

enthält Felder / Feldtypen

Feldtypen mit

unterschiedlichen Analysern

dynamische Felder

CopyField

Konfigurierbare Textanalyse

Listen von Synonymen, Stopp-

Wörtern, etc.

Page 34: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 33

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" />

Page 35: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 34

Projekte Solr: Features

Markierte Treffer

Spellchecker

MoreLikeThis

Dismax Query

DataImportHandler: DB,

XML, ...

Indexanalyse

Page 36: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 35

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, ...

Page 37: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 36

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)

Page 38: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 37

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 *]

Page 39: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 38

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

Page 40: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 39

Projekte Nutch

Web Crawler

verteilt, parallel

Erstellt gerichteten

Graphen

Multi-Format (HTML, PDF,

Office, Tika, ...)

MapReduce, Hadoop

Lucene oder Solr

Page 41: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 40

Projekte Tika

Inhaltsanalyse

Extrahiert Metadaten und

strukturierte Inhalte

nutzt existierende Parser

große und wachsende

Anzahl an Formaten

weitere Parser einfach

ergänzbar

Page 42: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 41

Projekte ElasticSearch

nutzt Lucene

Facetten, Typen, ...

elastic: sharding/replicas

automatisch

schemalos

Vorgänger: Compass

Framework

Page 43: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 42

Projekte Mahout

Machine Learning

Empfehlungen

Clustering

Classification

Hadoop

Zahlreiche Algorithmen

Page 44: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 43

Moeglichkeiten

Page 45: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 44

Möglichkeiten Beispiel 2009

Page 46: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 45

API

Page 47: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 46

Commit Options

Page 48: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 47

Concurrency

Page 49: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 48

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>

Config

Page 50: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 49

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)

Page 51: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 50

INDEX

Belkin

→ belkin

QUERY

Belkin

→ belkin

But...

belk*

→ belk

Page 52: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 51

<solr persistent="false">

<cores adminPath="/admin/cores" defaultCoreName="core0">

<core name="originalcore" instanceDir="core0">

<property name="dataDir" value="/data/core0" />

</core>

<core name="newcore" instanceDir="core1" >

<property name="dataDir" value="/data/core1" />

</core>

</cores>

</solr>

MultiCore

Page 53: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 52

Schema-less

Page 54: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 53

Distributed, Autosharding

Page 55: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 54

Multitenancy (cf Multicore)

Page 56: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 55

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

Page 57: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 56

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

Page 58: Lucenes Welt - ordnen, finden, klassifizieren - inovex GmbH · PDF fileEbay Kleinanzeigen ... Scala over TCP ... Lucene & Hadoop - Hadoop: parallel processing power - Lucene: dynamic,

Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. 19.04.2012 57

Vielen Dank !