Lucene's Welt: Ordnen, Finden, Klassifizierenalt.java-forum-stuttgart.de/jfs/2011/folien/B2.pdf ·...

Post on 27-Jun-2020

0 views 0 download

Transcript of Lucene's Welt: Ordnen, Finden, Klassifizierenalt.java-forum-stuttgart.de/jfs/2011/folien/B2.pdf ·...

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

christian.meder@inovex.de

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!