Suche verstehen
Wir helfen Ihnen dabei, die Such­anfragen Ihrer Kund*innen und Mit­ar­bei­­ter*innen zu ver­stehen und schnell re­le­vante Ergebnisse zu liefern.

Solr Consulting – Die 6 häufigsten Themen

Solr-Consulting spielt für Indoqa seit unserer Gründung im Jahr 2006 eine wichtige Rolle. In einem Großteil unserer Projekte haben wir Apache Solr oder Apache Lucene zum Einsatz gebracht. Unsere Kunden unterstützen wir außerdem mit Trainings- und Implementierungsleistung.

Da wir in diesen Projekten fachlich ein breites Spektrum abdecken, kamen wir mit vielen Features von Solr in Berührung. Aber auch aus nicht-funktionaler Sicht reicht das Spektrum von Suchindizes, die wenige tausend Dokumente beinhalten bis hin zu Installationen, in denen hunderte Millionen Dokumente zu durchsuchen sind.

Dies zeigt, dass Solr und Lucene äußerst vielseitige und gut skalierende Technologien sind. Wir haben dabei jedoch auch erkannt, dass der Einsatz gut geplant sein muss, um auch mittel- und langfristig erfolgreich zu sein.

Beratungsintensive Themen

Wir haben jene 6 Themen identifiziert, die in unseren Projekten am häufigsten zu Fragen unserer Kunden geführt haben:

  1. Einsatzszenarien von Solr und Lucene
  2. Strukturierung der Daten – Query-Optimierung
  3. Relevanz und Ranking
  4. Integration in die bestehende Architektur und Indexierungs-Workflow
  5. Near-Real-Time-Search (NRT)
  6. Performance und Dimensionierung

[call-to-action-consulting /]

Einsatzszenarien von Solr und Lucene

Historisch betrachtet hat die Geschichte von Solr und Lucene mit Volltextsuche begonnen. Heute wird ein Spektrum abgedeckt, das weit darüber hinaus geht:

  • Empfehlungen
  • Clustering von Daten
  • Datenanalyse (gemeinsame Analyse von strukturierten und unstrukturierten Daten)
  • Entscheidungsunterstüzung

und viele Themen mehr können mit Solr oder Lucene bearbeitet werden. Unsere Beratung unterstützt Sie dabei zu analyiseren, ob diese Technologien auch für Ihr Projekt sinnvoll sind.

Strukturierung der Daten – Query-Optimierung

Wie viele andere NoSQL-Alternativen gibt es auch in Solr die Möglichkeit, es in einem sogenannten “schemaless”-Mode zu betreiben. Unsere Erfahrung hat uns gezeigt, dass dieser Ansatz sehr oft problematisch ist. Insbesondere lässt man damit viele Optimierungsmöglichkeiten außen vor.

Wir empfehlen daher Solr auf Basis eines Schemas zu betreiben, um die Features wie

  • Facettierung,
  • Aggregierung,
  • Auto-Complete,
  • Multi-Linguale-Suche (Mehrsprachigkeit),
  • Highlighting

optimal zum Einsatz zu bringen. Zudem spielt das Schema der Daten eine zentrale Rolle für das Design und die Optimierung von Suchabfragen. Das Schema hat außerdem einen maßgeblichen Einfluss auf die zu durchsuchende bzw. schlussendlich gespeicherte Datenmenge.

Ein wohl-definiertes Schema ist vorallem deswegen wichtig, weil viele Änderungen im Nachhinein eine Re-Indexierung notwendig machen. Ist dies bei kleinen Indizes schnell erledigt, kann dies bei großen Indizes operativ recht aufwändig sein.

Relevanz und Ranking

Das Thema “Relevanz und Ranking” ist ein weiteres, oft beratungsintensives Thema. Aus technischer Sicht ist es eng mit dem ersten Thema “Strukturierung der Daten und Query-Optimierung” verbunden, wird es in den meisten Projekten jedoch von den fachlich verantwortlichen Projektmitarbeitern getrieben.

Unsere Erfahrung hat gezeigt, dass Relevanz kein Thema ist, das isoliert betrachtet werden kann, sondern immer für einen bestimmten Kontext zu beurteilen ist.

Dennoch soll es oft nur “eine” Suche für alle über alles geben.

Hat man diesen Schritt initial gemeistert, stellt man zumeist recht schnell fest, dass sich die Anforderungen an die Relevanz über die Zeit ändern. Nimmt man dann im Laufe der Zeit Änderungen an der Relevanzermittlung vor, so stellt sich die Frage, welche Auswirkung eine Änderung auf alle relevanten Anwendungsfälle hat.

Wir unterstützen Sie mit Consulting dabei, das Thema Relevanz strukturiert zu beareiten und auch langfristig im Griff zu haben.

Integration in die bestehende Architektur und Indexierungs-Workflow

Solr kann in drei Varianten betrieben werden:

  1. SolrCloud
  2. MultiCore-Solr
  3. Embedded-Solr

In den beiden ersten Varianten ist Solr ein Stand-alone-System, das über eine JSON oder XML über HTTP-Schnittstelle angesprochen wird. Solr läuft somit auf einer oder mehreren separaten Java Virtual Machines – im Fall einer SolrCloud sind diese über mehrere Systeme verteilt.

Die SolrCloud bietet das höchste Maß an Flexibilität sowohl hinsichtlich der Elastizität als auch hinsichtlich der Ausfallsicherheit des Systems. Diese Flexibilität kommt jedoch mit dem Preis, dass die Konfiguration und der spätere Betrieb weitaus aufwändiger ausfallen. Eine MultiCore-Installation oder Embedded-Solr sind im Vergleich dazu wesentlich einfacher handhabbar – sind jedoch bei weitem weniger flexibel.

Für welche der drei Alternativen man sich auch entscheidet, Solr ist Teil einer größeren IT-Landschaft. Dazu ist Solr in zwei Prozesse zu integrieren: Zum einen sind die zu durchsuchenden Daten zu indexieren (Daten werden in anderen Systeme gehalten bzw. erfasst) und zum anderen möchte man diese Daten abfragen können.

Die Indexierung ist ein Prozess in zwei Ausprägungen:

  1. neue oder sich änderne Daten werden laufend indexiert
  2. Verbesserungen in der Datenanalyse oder in manchen Setups im Falle der Datenwiederherstellung können eine Vollindexierung notwendig machen
    Mit Blick auf die Gesamtarchitektur ist dabei zu klären, ob und wie ein Solr-Index reproduziert werden kann.

Inhaltlich muss man sich beim Thema Indexierung zudem damit beschäftigen, dass man Daten aufbereiten oder anreichern muss. Solr bietet dazu eine Reihe von sogenannten Analyzern, die es gilt, richtig auszuwählen und in der richtigen Reihenfolge anzuwenden. Zudem kann es notwendig sein, externe Services oder Natural-Language-Processing-Werkzeuge (NLP) zu integrieren.

Der zweite zentrale Prozess umfasst Suchbfragen. Solr kommt mit einer Vielzahl an Möglichkeiten, um auf die indexierten Daten mit beeindruckenden Antwortzeiten zuzugreifen.

Near-Realtime-Search (NRT)

Der Idealfall für einen Solr-Index ist ein “Read-only-Index”, der einmal aufgebaut wird und in weiterer Folge nur mehr abgefragt wird. Am anderen Ende des Spektrums steht die Anforderung, einen sich permanent ändernden Suchindex zu verwenden. Ist die Auswirkung in kleinen Suchindizes vernachlässigbar, wächst die Herausforderung mit der Datenmenge. Unsere Beratung hilft dabei, dieser Thematik von Beginn an den richtigen Stellenwert zu geben.

Performance und Dimensionierung

Wenn es um Performance und Dimensionierung geht, stellt Near-Real-Time-Search den wahrscheinlich anspruchsvollsten Fall dar. Aber auch wenn die Anforderungen an die Aktualität der Daten geringer sind, ist das Thema Performance von herausragender Bedeutung, denn viele Entscheidungen, die man beim Einsatz von Solr trifft, haben direkt oder indirekt einen Einfluss darauf.

Wir haben dazu eine Analysemethode entwickelt, mit der man bereits im Planungsstadium Aussagen zur Dimensionierung und zur Performance bzw. in weiterer Folge zum Tuning von Solr treffen kann.

Wenngleich dieser Ansatz noch neu ist, hat er sich bereits mehrfach bewährt, um insbesondere in einer SolrCloud-Umgebung nachvollziehbare und vergleichbare Aussagen treffen zu können.

Consulting durch Indoqa

Indoqa hat sich mit den 6 Themengebieten im Detail auseinander gesetzt und wir sind damit in der Lage, umfangreiche, auf langjährige Erfahrung beruhende Beratung anzubieten. Gerne unterstützen wir auch Sie in Ihrem Projekt – zögern Sie nicht, uns zu kontaktieren.