• Like
  • Save

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shooting Stars

  • 1,249 views
Published

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 …

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!

Published in Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,249
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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.

Transcript

  • 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
  • 7. WARUM VERGLEICHEN?
  • 8. SOLR VS ELASTICSEARCH ÄPFEL VS BIRNEN?
  • 9. EINFÜHRUNG SOLR • NoSQL • Lucene 4.6.1 • Java • Aktuelle Version: 4.6.1 • Lizenz: Apache 2.0 • Apache Top Level Projekt • Ursprung: 2006 ELASTICSEARCH • NoSQL • Lucene 4.6.1 • Java • Aktuelle Version: 0.90.11 • Lizenz: Apache 2.0 • Gründung der Firma: 2012
  • 10. „EASE OF USE“ Herunterladen & entpacken Starten Indexieren Alternativ Suchen 1 2 3 4 java –jar start.jar java –jar post.jar *.xml curl 'http://localhost:8983/solr/update/json?commit=true' -H 'Content-type:application/json' –d '[{"id" : "1", "title" : "Solr vs. Elasticsearch"}]' curl –XGET 'http://localhost:8983/solr/select?q=solr'
  • 11. „EASE OF USE“ Herunterladen & entpacken Starten Indexieren Suchen 1 2 3 4 bin/elasticsearch curl –XPUT 'http://localhost:9200/webinar/comments/1' –d '{ "speaker" : "Daniel Wrigley", "comment" : "Elasticsearch is pretty easy! " }' curl -XGET 'http://localhost:9200/webinar/_search?q=speaker:wrigley'
  • 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
  • 14. „EASE OF USE“ HIMMEL ODER HÖLLE?
  • 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
  • 17. SUCHE & FEATURES SOLR • Grouping • Pivot Faceting • Solr Join • Spell Checking • IndexBasedSpellChecker • WordBreakSpellChecker • DirectSolrSpellChecker • FileBasedSpellChecker ELASTICSEARCH • Percolator • Histogram Facet • Nested Documents • Rescoring Einfache Termsuche, Boolesche Operatoren, Fuzzy Search, Range, Phrasen, Real Time, Sortierung, Filter, Highlighting, MoreLikeThis, Suggestions…
  • 18. INDEXIERUNG & DATENSTRUKT. SOLR • Indexierung • UpdateHandler • XML, CSV, JSON • DataImportHandler • JDBC, XPath, HTML, PDF,… • Solr Cell • PDF, HTML,… • Atomic Update • Manipulation der Indexierung • UpdateRequestProcessor ELASTICSEARCH • JSON • River • Twitter • Wikipedia • CouchDB • RabbitMQ • Index API • Partial Update via Update API
  • 19. INDEXIERUNG & DATENSTRUKT. SOLR • Kann schemafrei sein (Solr 4.4) • Mehr Analysemöglichkeiten • ICU Tokenizer und Filter • Document Routing beeinflussbar ELASTICSEARCH • Schemafrei • Manche Analysemöglichkeiten per Plugin "nachinstallierbar" • Document Routing beeinflussbar
  • 20. ADMINISTRATION Ausgereiftes Admin User Interface
  • 21. ADMINISTRATION Kein Admin User Interface vorhanden Per Plug-in nachrüstbar
  • 22. ELASTICSEARCH MARVEL Elasticsearch Installationen bequem und sicher administrieren
  • 23. KOORDINATION & VERWALTUNG SOLR • Läuft in einem beliebigen Servlet Container • ZooKeeper • Mehr Konfigurationsaufwand • Leichtgewichtig • Praxisbewährt • Keine Split Brain Situation ELASTICSEARCH • Läuft nur im mitgelieferten Netty • Interner Mechanismus "Zen Discovery" • Automatische Erkennung von Clusternodes • Kein zusätzliches Tool notwendig • Split Brain möglich • Cluster Stats API
  • 24. COMMUNITY & STATS. 150 100 50 0 Committer Apache Solr Elasticsearch 150 100 50 0 Issues Apache Solr Elasticsearch 300 200 100 0 Resolved Issues Apache Solr Elasticsearch 1300 1200 1100 1000 Mails Apache Solr Elasticsearch
  • 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
  • 29. Q & A
  • 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
  • 31. WEITERFÜHRENDE INFOS SHI Blog: www.shi-gmbh.com/blog/ LucidWorks Products: http://www.lucidworks.com/product-overview/ Split Brain in Elasticsearch: http://www.shi-gmbh.com/blog/split-brain-in-elastic-search/ Elasticsearch Plugins: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-plugins. html Monitoring Elasticsearch – Marvel: http://www.elasticsearch.com/marvel Download Elasticsearch/Logstash/Kibana: http://www.elasticsearch.org/overview/elkdownloads/ Heliosearch – Solr Evolved: http://heliosearch.com/ Elasticsearch: www.elasticsearch.org & www.elasticsearch.com Elasticsearch Resources: http://www.elasticsearch.org/resources/ LucidWorks: http://www.lucidworks.com/support-services/
  • 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