Christian Meder | inovex GmbH<br />Open Source SearchThe World of Apache Lucene<br />
Agenda<br /><ul><li>Motivation
Überblick
Lucene
Solr
The world</li></li></ul><li>Motivation<br />
Die Messlatte: Google<br /><ul><li>Relevante Ergebnisse
Relevante Auszüge in Trefferliste</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Schnelle Antwortzeiten
Hohe Verfügbarkeit
Autovervollständigung</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Spellchecker
„Meinten Sie“</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Umkreissuche</li></li></ul><li>Die Messlatte: Amazon<br...
Schnelle Antwortzeiten
Hohe Verfügbarkeit
Autovervollständigung</li></li></ul><li>Die Messlatte: Amazon<br /><ul><li>Facetten: Preis, Lieferanten, Verfügbarkeit</li...
Feldbasierte Suche</li></li></ul><li>Häufige Realität<br /><ul><li>Nur einfache exakte Substring Suche</li></li></ul><li>H...
Keine globale Suche über heterogene Datenquellen: Dokumente, Datenbanken, etc.
Wenig Sortierung und Einschränkungsmöglichkeiten (Facetten)</li></li></ul><li>Überblick<br />
Sucharchitektur<br />
Indizierungsarchitektur<br />
Komponenten<br /><ul><li>Crawler:
Nutch
grub
droids, ...
Extraktoren: tika
Kern: lucene
DB-Integrationen:
Compass
hibernate search, ...
Such-Server: solr</li></li></ul><li>Lucene<br />
Lucene Basics<br /><ul><li>Nur eine Bibliothek zum Nachschlagen von Informationen
Kern einer Sucharchitektur
Erfordert Grundverständnis und Einarbeitung
Skalierbar
Technisch ausgereift und mächtig
Upcoming SlideShare
Loading in …5
×

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

2,082 views
2,028 views

Published on

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.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,082
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Christian Meder | inovex GmbH<br />Open Source SearchThe World of Apache Lucene<br />
  2. 2. Agenda<br /><ul><li>Motivation
  3. 3. Überblick
  4. 4. Lucene
  5. 5. Solr
  6. 6. The world</li></li></ul><li>Motivation<br />
  7. 7. Die Messlatte: Google<br /><ul><li>Relevante Ergebnisse
  8. 8. Relevante Auszüge in Trefferliste</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Schnelle Antwortzeiten
  9. 9. Hohe Verfügbarkeit
  10. 10. Autovervollständigung</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Spellchecker
  11. 11. „Meinten Sie“</li></li></ul><li>Die Messlatte: Google<br /><ul><li>Umkreissuche</li></li></ul><li>Die Messlatte: Amazon<br /><ul><li>Relevante Ergebnisse
  12. 12. Schnelle Antwortzeiten
  13. 13. Hohe Verfügbarkeit
  14. 14. Autovervollständigung</li></li></ul><li>Die Messlatte: Amazon<br /><ul><li>Facetten: Preis, Lieferanten, Verfügbarkeit</li></li></ul><li>Häufige Realität<br /><ul><li>Wenig relevante Ergebnisse
  15. 15. Feldbasierte Suche</li></li></ul><li>Häufige Realität<br /><ul><li>Nur einfache exakte Substring Suche</li></li></ul><li>Häufige Realität<br /><ul><li>Langsame Antwortzeiten
  16. 16. Keine globale Suche über heterogene Datenquellen: Dokumente, Datenbanken, etc.
  17. 17. Wenig Sortierung und Einschränkungsmöglichkeiten (Facetten)</li></li></ul><li>Überblick<br />
  18. 18. Sucharchitektur<br />
  19. 19. Indizierungsarchitektur<br />
  20. 20. Komponenten<br /><ul><li>Crawler:
  21. 21. Nutch
  22. 22. grub
  23. 23. droids, ...
  24. 24. Extraktoren: tika
  25. 25. Kern: lucene
  26. 26. DB-Integrationen:
  27. 27. Compass
  28. 28. hibernate search, ...
  29. 29. Such-Server: solr</li></li></ul><li>Lucene<br />
  30. 30. Lucene Basics<br /><ul><li>Nur eine Bibliothek zum Nachschlagen von Informationen
  31. 31. Kern einer Sucharchitektur
  32. 32. Erfordert Grundverständnis und Einarbeitung
  33. 33. Skalierbar
  34. 34. Technisch ausgereift und mächtig
  35. 35. Viele Ports: .Net, C, Python, ...
  36. 36. AOL, Apple, Disney, Eclipse, JIRA, Liferay, E.ON, Monster, wikipedia, ...</li></li></ul><li>Lucene Geschichte<br /><ul><li>0.01 (2000) Doug Cutting auf Sourceforge
  37. 37. 1.2 (2002) Apache Jakarta Projekt
  38. 38. 2.0 (2006) Sortieren, Datums- und Zahlenfelder, Bereichsfilter, ...
  39. 39. 2.9 (25.9.2009) near realtime search, optimierte Behandlung von Zahlenfeldern, neue Analyzer (Persisch, Chinesisch), ...
  40. 40. 2.9.1 (6.11.2009) Bugfix</li></li></ul><li>Lucene: Core Indexing<br /><ul><li>IndexWriter
  41. 41. Analyzer, Tokenizer, TokenFilter
  42. 42. whitespace
  43. 43. lowercase
  44. 44. standard
  45. 45. stopwords
  46. 46. Porter stemming</li></li></ul><li>Lucene: Core Indexing<br /><ul><li>Directory
  47. 47. Filesystem, NIOFS, RAM, MMAP
  48. 48. Document
  49. 49. Field
  50. 50. Analyzed
  51. 51. Stored
  52. 52. NumericField</li></li></ul><li>Lucene: Core Searching<br /><ul><li>IndexSearcher
  53. 53. Term
  54. 54. Query
  55. 55. TermQuery
  56. 56. TopDocs</li></li></ul><li>Lucene: Query syntax<br /><ul><li>javalinux
  57. 57. +java +linux
  58. 58. title:java
  59. 59. „lucenein action“
  60. 60. java*
  61. 61. java~
  62. 62. date:[11/01/2009 TO 11/10/2009]
  63. 63. price:[20 TO 40]</li></li></ul><li>Solr<br />
  64. 64. Solr: Basics<br /><ul><li>Enterprise Suchserver
  65. 65. Schnittstelle: XML über HTTP
  66. 66. Skalierbar: sharding, Replikation
  67. 67. Administrationsoberfläche
  68. 68. Schema-basiert: numerische Typen, dynamische Felder, ...
  69. 69. Viele konfigurierbare Analyseklassen
  70. 70. Facetten
  71. 71. Dokumentation noch schwierig</li></li></ul><li>Solr: Features<br /><ul><li>Markierte Treffer (highlighting)
  72. 72. Vorschläge bei Tippfehlern (spellingsuggestions)
  73. 73. Ähnliche Dokumente („More likethis“)
  74. 74. Dismax Query
  75. 75. DataImportHandler: DB, XML, ...
  76. 76. Indexanalyse
  77. 77. Debugging
  78. 78. Explain</li></li></ul><li>Solr: Geschichte<br /><ul><li>2006 code donation von CNET
  79. 79. 1.1: 17.1.2007 aus incubator zu lucene Subprojekt
  80. 80. 1.2: 2.6.2007
  81. 81. 1.3: 15.9.2008
  82. 82. 1.4: 10.11.2009
  83. 83. AOL, CNET, MTV, flug.idealo.de, whitehouse.gov, ...</li></li></ul><li>Solr: Schema Beispiel<br /> &lt;fieldname=&quot;city&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;contactPhotoURL&quot; type=&quot;string&quot; indexed=&quot;false&quot; stored=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;priceperhour&quot; type=&quot;sfloat&quot; indexed=&quot;true&quot; stored=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;availabilitydate&quot; type=&quot;date&quot; indexed=&quot;true&quot; stored=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;skills&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;all_skills&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;true&quot; /&gt;<br /> &lt;fieldname=&quot;all_text&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;false&quot; /&gt;<br /> &lt;!-- locallucenefieldtypes --&gt;<br /> &lt;fieldname=&quot;lat&quot; type=&quot;sdouble&quot; indexed=&quot;true&quot; stored=&quot;true&quot;/&gt;<br /> &lt;dynamicFieldname=&quot;projectskills_*&quot; type=&quot;text&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;true&quot; /&gt;<br /> &lt;copyFieldsource=&quot;skills&quot; dest=&quot;all_text&quot; /&gt;<br />
  84. 84. Solr: 1.4 Features<br /><ul><li>TermsComponent für Auto-Suggest
  85. 85. DataImportHandler Erweiterungen
  86. 86. Solr Cell: Tika Integration
  87. 87. Mehrfachauswahl bei Facetten
  88. 88. Performance Verbesserungen
  89. 89. Indizierung
  90. 90. Suche
  91. 91. Facetten
  92. 92. Verbesserte Index Replication</li></li></ul><li>Solr: Projektbeispiel<br />
  93. 93. The world<br />
  94. 94. Nutch<br /><ul><li>Web crawler
  95. 95. Verteilt, parallel
  96. 96. erstellt gerichteten Graphen
  97. 97. Multi-Format (HTML, PDF, Office, ...)
  98. 98. MapReduce, Hadoop
  99. 99. Erweiterbar mit plugins
  100. 100. Baut auf lucene oder solr</li></li></ul><li>Compass<br /><ul><li>Abbildung von Datenmodellen auf Suche
  101. 101. Spring-Integration
  102. 102. Automatische Spiegelung von ORM in Suche für JPA, hibernate, OpenJPA, ...
  103. 103. Einfache Integration von Lucene-basierter Suche in ORM-basierte Projekte</li></li></ul><li>Vielen Dank.<br />

×