Wie sollte ich meine Daten speichern? Ein Vergleich von Datenbank, Solr, …

Lucene, Elastic Search, Apache Solr

Lucene war zuerst da, Elastic Search und Apache Solr nutzen es beide als Grundsystem bieten aber darauf aufgesetzt unterschiedliche „Frontends“. Für die Betrachtung in diesem Artikel sind sie gleichwertige Volltext-Suchmaschinen mit folgenden Merkmalen:

  • Textanalyse konform zu natürlichen Sprachen
  • Effiziente Volltextsuche
  • Relevanzbewertung der Ergebnisse
  • Effiziente Platzhaltersuche („Ha* Welt“)

Genau wie eine Graphen-Datenbank löst eine Solr-Maschine ein spezielles Problem – in diesem Fall die Volltextsuche. Für die Datenhaltung per se, sind sie eher ungeeignet. In der Praxis wird also ein Solr von einer Datenbank gespeist und enthält nur für die Suche relevante Daten.

Insbesondere die gezielte Ausrichtung auf eine Sprache zeigt die volle Schlagkraft dieser Systeme. Stellen wir uns folgende URL vor: example.com/suche/nuernberg Wir werden wohl nach Nürnberg suchen sollen. Aber das zuverlässig herauszufinden wird schwer. Ein auf deutsch getrimmter Solr kann das von ganz allein.

Ebenfalls möglich wird hier die phonetische Suche („Meinten Sie xyz“) und die Möglichkeit zur automatischen Vervollständigung schon bei der Eingabe.

Auch hier entscheidet eine Frage: „Benötigen wir eine Volltextsuche?“

Weiter mit ein paar Beispielen und einem Fazit >>