Wenn Sie Solr vs. Elasticsearch in Google eingeben, bekommen Sie eine ganze Reihe von Blogs, Artikeln, Vergleichen, Meinungen und Gedanken, die sich diesem Thema widmen. Warum sollten Sie sich dieses Webinar also anhören und ansehen? Weil keiner der Links, die Sie über Google finden, tatsächlich die aktuellen Versionen der beiden Technologien aus dem Bereich Open Source Suchmaschinen abdeckt, sondern auf teilweise sehr betagte Artikel führen. Gerade im Open Source Bereich ist Aktualität jedoch entscheidend, denn hier werden Entwicklungen in teilweise rasantem Tempo vorangetrieben.
Aber nicht nur die Tatsache, dass es sich hierbei um ein tagesaktuelles Webinar handelt, sondern auch die Tatsache, dass es zwei führende Open Source Suchserver gibt, macht die Notwendigkeit, diese beiden Projekte zu vergleichen, offensichtlich. Ist Elasticsearch ein momentaner Trend, dem man folgen sollte? In welchen Gebieten ist Apache Solr die wegweisende Technologie? Gibt es Branchen, in denen sich der Einsatz einer Technologie verbietet oder besonders anbietet? Ist Elasticsearch im Gegensatz zu Solr wirklich schemafrei und warum bringt mir das einen Vorteil? Diesen und noch mehr Fragen werden wir auf den Grund gehen, um Sie letztendlich bei der Beantwortung der Frage zu unterstützen, auf welches Pferd Sie in Ihrem Unternehmen setzen sollten.
Als neutraler Technologieberater, der Partnerschaften zu LucidWorks und Elasticsearch pflegt, sind wir in der Lage, diesen Vergleich technisch, strategisch und konzeptionell zu ziehen. Verpassen Sie diese einmalige Gelegenheit also nicht!
Überblick über die Suchplattform LucidWorks Search 2.1
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shooting Stars
1. Technology
Drives
Business
APACHE SOLR VS ELASTICSEARCH
AND THE WINNER IS…!
EIN VERGLEICH DER SHOOTING STARS
Webinar am 6. Februar 2014
Apache Solr, Solr, Apache Lucene, Lucene and their logos are trademarks of the Apache Software Foundation.
Elasticsearch, Kibana, Marvel, Logstash are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.
2. UP-COMING EVENTS
13.02.2014: Setting-up Elasticsearch, Logstash, Kibana
24.02.-27.02.2014: Apache Solr Trainings
(zwei Module je zwei Tage)
27.02.2014: Suche und Navigation in Online-Shops. Mit Solr und
Elasticsearch
06.03.2014: Elasticsearch Monitoring mit Elasticsearch Marvel
In Planung: Sentiment Analysis von Twitter Streams
In Planung: Benutzerverhalten in Echtzeit analysieren
In Planung: Analyse von Datenströmen & Fraud Detection
In Planung: Scalable architectures for massive data acquisition & analysis
1
2
3
4
5
6
7
8
3. DANIEL WRIGLEY
Consultant für Search & Big Data Technologies
Computerlinguist
Durch LucidWorks zertifizierter Apache Solr Trainer
Autor zahlreicher Blogs und
Coautor des Buchs „Einführung in Apache Solr“
@wrigley_dan
4. AGENDA
Up-coming Events
Vorstellung
Einführung
“Ease of Use”
Skalierbarkeit & Architektur
Suche & Features
Indexierung & Datenstruktur
Administration
Koordination & Verwaltung
Community
Kommerzieller Support
Ausblick
And the winner is …!
5. UNSERE MISSION
Seit 1994 hersteller-unabhängiges Unternehmen für IT Consulting und Software
Engineering.
Wir bieten Lösungen rund um Semantic Search, Big Data und Explorative
Datenanalyse auf der Basis etablierter Open-Source Software.
Wir stellen Werkzeuge bereit, die durch optimale Nutzung der Technologie und Daten
unsere Kunden beim Erreichen ihrer Geschäftsziele unterstützen.
6. WAS WIR TUN
MIT SERVICES
DURCH
ANWENDUNG
DES KNOW-HOWS
REALISIEREN
LÖSUNGEN
ZUR
OPTIMALEN
NUTZUNG
VON DATEN
• Strategy Consulting
• Technical Consulting
• Architecture Review
• Development Support
• Team Enablement
Through Workshops and
Trainings
• Technology Comparison
• Tuning & Troubleshooting
• Migration Services
• Experts to Hire
• Service Level Agreements
• Software Architecture
• Coding Services for Java,
C++/C, .NET, PHP for
multiple OSs.
• Continuous Integration
and Test Driven
Development
• Managing Software
Project Lifecycle
• Explorative Data Analytics
• Commerce Search
• Identity Search
• Call Center Search
• Cyber Security
• Website Search
• Fraud Detection
• Governance and
Compliance
UND
ETABLIERTEN
PRODUKTEN
UND
PARTNERN
• Apache Solr/Lucene
• Apache Mahout
• Apache Hadoop, Pig, Hive
• LucidWorks Search
• LucidWorks Search Big Data
12. „EASE OF USE“ & CLUSTER SET-UP
Jeder Clusternode muss mit dem "Wissen"
der Administrationseinheiten (ZooKeeper)
gestartet werden
java -Djetty.port=7500 -DzkHost=localhost:9983,localhost:8574,localhost:9900
-jar start.jar
Administrationseinheiten erledigen den Rest
13. „EASE OF USE“ & CLUSTER SET-UP
Starten weiterer Nodes durch erneute
Ausführung von
bin/elasticsearch
Clusternodes finden sich automatisch
15. ANFORDERUNGSPROFIL
Hohe Verfügbarkeit
Skalierbarkeit
Features für umfangreiche Volltextsuche
Fehlertoleranz
Unstrukturierte Daten, unterschiedlichste
Datenquellen
Real Time Search
16. SKALIERBARKEIT & ARCHITEKTUR
SOLR
• Master/Slave Architektur
• SolrCloud (ab Solr 4.0)
• Collections API
• Collection erstellen
• Collection löschen
• Collection umbenennen
• Collection Aliasing
• Shard Splitting
ELASTICSEARCH
• Cluster bestehend aus Nodes
• Index API
• Erstellung
• Löschen
• Öffnen/Schließen
• Refresh
25. COMMUNITY & DOCS &PLUG-INS
SOLR
• Zahlreiche Patches
• Unmengen Dokumentation
vorhanden
• Wiki
• Reference Guide
• Mailing Listen
• Blogs
• HowTos
• Konferenzvideos
ELASTICSEARCH
• River Plugins
• CSV, JDBC, Neo4j, …
• Site Plugins
• HQ, Paramedic, Head
• Clustering (carrot2)
• Terms Component
• Dokumentation in
Kinderschuhen
• Aktiv bei Webinaren/Blogs
26. KOMMERZIELLER SUPPORT
SOLR
• LucidWorks
• 24/7 SLAs
• LucidWorks Search
• SHI & Co.
• Entwicklung
• Trainings
• Development Support
ELASTICSEARCH
• Elasticsearch
• 24/7 SLAs
• Trainings
• Logstash und Kibana
eingeschlossen
• SHI & Co.
• Entwicklung
• Development Support
27. BACK TO THE FUTURE
SOLR
• Solr 5.0
• Distributed IDF
• Saved Searches ≈ Percolator
• Indexierung via Hadoop
MapReduce
• ScriptSearchComponent
• Distributionen
• Heliosearch
• LucidWorks Search/Big Data
• Logstash4Solr
• Kibana4Solr
ELASTICSEARCH
• Elasticsearch 1.0.0
• cat API
• Snapshot/Restore
• Aggregations Framework
• ELK:
Elasticsearch, Logstash &
Kibana
• Marvel
28. AND THE WINNER IS…!
Viele Gemeinsamkeiten
Kleine, aber bedeutende Unterschiede
Keine einfache Entscheidung
Kleinigkeiten können den Ausschlag geben
Gleichwertiger Einsatz beider Technologien
möglich
30. KONTAKT
SHI GmbH & Co. KG
Curt-Frenzel-Str. 12
D - 86167 Augsburg
info@shi-gmbh.com
+49.821.74 82 633 - 0
@SHIEngineers
Michael Marheineke Markus Klose Daniel Wrigley
32. BILDERNACHWEIS
Fire - http://www.flickr.com/photos/mikeporesky/5106441340/
fresh & fruity - http://www.flickr.com/photos/dtron/4029692821
Heaven or Hell - http://pixabay.com/en/sky-hell-road-sign-direction-right-115393/
Do You Remember … The Future? - http://www.flickr.com/photos/jdhancock/9544541664
Lizenz: http://creativecommons.org/licenses/by/2.0/
Weitere Bilder wurden über iStockphoto.com bezogen
Notes de l'éditeur
TODO: Reihenfolge vor Fertigstellung der Folien nochmals überprüfen!!!
Deutsche Folien?
Erfundenes Szenario: Wir machen jetzt Elasticsearch! Easy-to-Use, Testsystem ruck-zuck aufgesetzt in Produktion gegangen, Peng! Die Firma hatte keine Ahnung, warum das System zusammengebrochen ist. Ebenfalls hatte man keinen Ansatzpunkt, wo man mit der Suche beginnen sollte.
Also musste man ein paar Tage (also ein paar Tausend €) in die Fehlersuche stecken mit dem Ergebnis, dass Elasticsearch nicht die richtige Wahl für die Suchapplikation war. Der komplette Aufwand, der in dieses System gesteckt wurde, war umsonst. Das hätte man vermeiden können, wenn man vorher mehr Aufwand in das Projekt gesteckt hätte, um zu evaluieren, ob ES die richtige Technologie ist. Eine Technologie zu wählen, weil sie im Moment "IN" oder cool ist, steht auf wackligen Beinen.
Solr war von seinem Beginn ab nicht auf höchste Skalierbarkeit ausgelegt, ES schon. Zu Solr's Anfängen war dies auch kein Ziel, 2006 hat sich noch niemand Gedanken um derartige Probleme gemacht. In der Hinsicht hat ES eine Zeit lang die Nase vorn gehabt. Solr schließt aber auf bzw. hat aufgeschlossen. Seit der Einführung der verteilten Architekturmöglichkeit SolrCloud sind 8 Releases veröffentlicht worden. Spätestens jetzt ist eine stabile Architektur erreicht, der man mit ebenso wenig Bedenken begegnen kann wie ES.
Möglichkeiten zur Volltextsuche bei beiden weit ausgereift, siehe Box mit den unterschiedlichen Möglichkeiten zu suchen.
Grouping: Anhand von Merkmalen Treffer gruppieren; ES 1.0.0 kommt mit Aggregate Framework
Pivot Faceting: Hierarchische Facette; zur Suchzeit ausgewertet Performance!
Histogram Facet: Nett für Statistiken
Percolator: Suchen speichern. Neue Dokumente, die die Query matchen, werden gefunden.
Solr Join: Können MultiCore sein, werden zur Queryzeit ausgeführt Performance! Use Case: Berechtigungen
Nested Documents: Werden als separate Dokumente indexiert und im selben Teil des Index abgelegt wie das Root Dokument.
Rescoring: Zweite Query, die die Top N Treffer neu sortieren kann. Wird auf jedem Shard ausgeführt bevor die Ergebnisse zu dem Knoten zurückgegeben werden, der für das Rescoring verantwortlich ist.
Spell Checking: Vier Möglichkeiten: Direkt auf dem Index basierend (keine Vorschläge, die keine Dokumente liefern; schlecht kontrollierbar), auf einem Index basierend (Subindex, keine Vorschläge, die keine Dokumente liefern, keine Vorschläge, die nicht in diesem Index sind; schlecht kontrollierbar), auf einer Datei basierend (Vorschläge, die zu keinem Treffer führen, möglich; gute Kontrolle), mit Fähigkeit Wörter zu kombinieren/trennen, ebenfalls direkt auf dem Index basierend???
Einschränkung bei Elasticsearch: JSON in/JSON out Daten müssen in der Regel angefasst werden
Solr flexibler mit den Möglichkeiten, Text aus PDFs zu extrahieren, CSV zu importieren, Datenbanken anzubinden nur mit Konfiguration
Über Index API werden Indexe automatisch angelegt, Einschränkungen können getroffen werden (keinen Index, der mit xxx beginnt: action.auto_create_index –xxx*) TTL kann aktiviert werden.
Beide können nur Teile von Dokumenten aktualisieren, was schonender/sparsamer ist. Mit ES per Script, Solr direkt bei der Update Anweisung auf Feldebene
Manipulation auf Dokumentenebene bei Solr: UpdateRequestProcessor
Manipulation der Indexstruktur bei Solr: Shard Splitting
Beide haben Versionierung als Feature
Schemafrei:
Manche Features benötigen ein Mapping: Facettierung, Sortierung, Highlighting Dynamisches Mapping macht mir das kaputt
Keine Kontrolle, keine Vorhersage möglich
Datum kommt in einem nicht erkennbaren Format
Nach ein paar Millionen Dokumenten fällt mir ein: Das hätte eigentlich als String indexiert werden müssen. Pech gehabt! Mapping definieren, neu indexieren.
ZooKeeper wird auch in anderen Apache Projekten verwendet: z.B. Hadoop, Kafka
ZooKeeper wird auch in anderen Projekten verwendet: z.B. Neo4j
Automatische Erkennung von Clusternodes: Schlecht bei mehreren Clustern/großen Clustern. Es kann auf einmal massiv Traffic aufkommen.
Cluster Stats: Nicht nur Zustand des Clusters (green), Anzahl der Indexe etc. sondern auch tiefer greifende Informationen (Memory Usage, Anzahl Threads)
Split Brain: Problem besteht, Clusterteil fällt aus, Problem nicht durch In-House Kompetenz lösbar, Informationen nicht lieferbar, Kunde unzufrieden, Umsatzeinbußen Reviews durchführen, Architektur im Vorfeld überlegen, Sicherheit und Ruhe, dass Skalierbarkeit gewährleistet ist.
Eine derartige Situation mit zwei Open Source Technologien, die sich in leistungsstarke, moderne, skalierbare, innovative Applikationen einbinden lassen, hat es bislang nicht gegeben. Beide motivieren sich gegenseitig zu Höchstleistungen bzw. setzen sich gegenseitig unter Druck, um sich von der jeweils anderen nicht abhängen zu lassen.
Eine Entscheidung zwischen den beiden zu fällen, ist dennoch nicht einfach wie unser Webinar hoffentlich gezeigt hat. Es gibt Unterschiede, die teils größer, teils kleiner ausfallen und unterschiedlich gravierende Auswirkungen haben. Es ist bei weitem nicht egal, welche Technologie man einsetzt. Diese Überlegung sollte wohl durchdacht sein. Diese Überlegung auf einem derart hohen Level anzustreben, wie es in diesem Webinar der Fall war, ist ebenfalls nicht sehr ratsam.
Wenn Interesse an Fortsetzungen bzw. bestimmten verwandten Themen besteht, können Sie uns gerne schreiben. Es ist durchaus möglich, dass es ein weiteres Webinar aus dieser Reihe gibt. Wir verfolgen Ideen von Zuhörern natürlich gerne weiter, denn dort wissen wir schon sicher von Interessenten.
Wenn es Themen gibt, die eher technischer Natur sind und arg in die Tiefe gehen, kann es sein, dass "nur" ein Blog-Beitrag veröffentlicht wird.