open source search: die welt von apache lucene - wjax 2009

34
Open Source Search The World of Apache Lucene Christian Meder | inovex GmbH

Upload: inovex-gmbh

Post on 23-Jun-2015

1.969 views

Category:

Technology


1 download

DESCRIPTION

Der Qualitätsanspruch von Endbenutzern an Relevanz, Einfachheit, Performanz und Verfügbarkeit von Suchfunktionalität wird maßgeblich von Google geprägt. Kann sich Open-Source-Software dieser Herausforderung stellen? Dieser Vortrag gibt einen Überblick über die aktuellen Möglichkeiten von Lucene 2.9, Solr 1.4 und weiteren Produkten im Umfeld von Apache Lucene.

TRANSCRIPT

Page 1: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Open Source SearchThe World of Apache Lucene

Christian Meder | inovex GmbH

Page 2: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Agenda Motivation Überblick Lucene Solr The world

Page 3: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Motivation

Page 4: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Google

Relevante Ergebnisse Relevante Auszüge in Trefferliste

Page 5: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Google Schnelle Antwortzeiten Hohe Verfügbarkeit Autovervollständigung

Page 6: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Google Spellchecker „Meinten Sie“

Page 7: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Google

Umkreissuche

Page 8: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Amazon Relevante Ergebnisse Schnelle Antwortzeiten Hohe Verfügbarkeit Autovervollständigung

Page 9: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Die Messlatte: Amazon Facetten: Preis, Lieferanten, Verfügbarkeit

Page 10: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Häufige Realität Wenig relevante Ergebnisse Feldbasierte Suche

Page 11: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Häufige Realität Nur einfache exakte Substring Suche

Page 12: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Häufige Realität Langsame Antwortzeiten Keine globale Suche über heterogene

Datenquellen: Dokumente, Datenbanken, etc.

Wenig Sortierung und Einschränkungsmöglichkeiten (Facetten)

Page 13: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Überblick

Page 14: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Sucharchitektur

Page 15: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Indizierungsarchitektur

Page 16: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Komponenten Crawler:

– Nutch– grub– droids, ...

Extraktoren: tika Kern: lucene DB-Integrationen:

– Compass– hibernate search, ...

Such-Server: solr

Page 17: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene

Page 18: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene Basics Nur eine Bibliothek zum Nachschlagen von

Informationen Kern einer Sucharchitektur Erfordert Grundverständnis und

Einarbeitung Skalierbar Technisch ausgereift und mächtig Viele Ports: .Net, C, Python, ... AOL, Apple, Disney, Eclipse, JIRA, Liferay,

E.ON, Monster, wikipedia, ...

Page 19: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene Geschichte 0.01 (2000) Doug Cutting auf Sourceforge 1.2 (2002) Apache Jakarta Projekt 2.0 (2006) Sortieren, Datums- und

Zahlenfelder, Bereichsfilter, ... 2.9 (25.9.2009) near realtime search,

optimierte Behandlung von Zahlenfeldern, neue Analyzer (Persisch, Chinesisch), ...

2.9.1 (6.11.2009) Bugfix

Page 20: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene: Core Indexing IndexWriter Analyzer, Tokenizer, TokenFilter

– whitespace– lowercase– standard– stopwords– Porter stemming

Page 21: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene: Core Indexing Directory

– Filesystem, NIOFS, RAM, MMAP Document Field

– Analyzed– Stored– NumericField

Page 22: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene: Core Searching IndexSearcher Term Query TermQuery TopDocs

Page 23: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Lucene: Query syntax java linux +java +linux title:java „lucene in action“ java* java~ date:[11/01/2009 TO 11/10/2009] price:[20 TO 40]

Page 24: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr

Page 25: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: Basics Enterprise Suchserver Schnittstelle: XML über HTTP Skalierbar: sharding, Replikation Administrationsoberfläche Schema-basiert: numerische Typen,

dynamische Felder, ... Viele konfigurierbare Analyseklassen Facetten Dokumentation noch schwierig

Page 26: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: Features Markierte Treffer (highlighting) Vorschläge bei Tippfehlern (spelling

suggestions) Ähnliche Dokumente („More like this“) Dismax Query DataImportHandler: DB, XML, ... Indexanalyse

– Debugging– Explain

Page 27: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: Geschichte 2006 code donation von CNET 1.1: 17.1.2007 aus incubator zu lucene

Subprojekt 1.2: 2.6.2007 1.3: 15.9.2008 1.4: 10.11.2009 AOL, CNET, MTV, flug.idealo.de,

whitehouse.gov, ...

Page 28: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: Schema Beispiel <field name="city" 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="availabilitydate" type="date" indexed="true" stored="true" />

<field name="skills" type="text" indexed="true" stored="true" multiValued="true" />

<field name="all_skills" type="text" indexed="true" stored="true" />

<field name="all_text" type="text" indexed="true" stored="false" />

<!-- local lucene field types -->

<field name="lat" type="sdouble" indexed="true" stored="true"/>

<dynamicField name="projectskills_*" type="text" indexed="true" stored="true" multiValued="true" />

<copyField source="skills" dest="all_text" />

Page 29: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: 1.4 Features TermsComponent für Auto-Suggest DataImportHandler Erweiterungen Solr Cell: Tika Integration Mehrfachauswahl bei Facetten Performance Verbesserungen

– Indizierung– Suche– Facetten

Verbesserte Index Replication

Page 30: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Solr: Projektbeispiel

Page 31: Open Source Search: Die Welt von Apache Lucene - WJax 2009

The world

Page 32: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Nutch Web crawler Verteilt, parallel erstellt gerichteten Graphen Multi-Format (HTML, PDF, Office, ...) MapReduce, Hadoop Erweiterbar mit plugins Baut auf lucene oder solr

Page 33: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Compass Abbildung von Datenmodellen auf Suche Spring-Integration Automatische Spiegelung von ORM in

Suche für JPA, hibernate, OpenJPA, ... Einfache Integration von Lucene-basierter

Suche in ORM-basierte Projekte

Page 34: Open Source Search: Die Welt von Apache Lucene - WJax 2009

Vielen Dank.