Solr Search: Funktionen, Integration und die Einsatzbeispiele

Die Solr Search und ihre Funktionen

Solr Search - die Volltextsuch-Applikation unserer Wahl. Wir stellen sie in unserem Blogpost vor.

Solr search

Was ist Solr Search? 

Solr Search ist eine vorgefertigte Suchplattform mit verschiedenen Ausstattungen, welche auf Apache Lucene™ basiert. Wir haben diese Open-Source-Applikation in unserem Stack eingebunden und verwenden diese für verschiedenen Anwendungszwecke. 

Solr ist eine eigenständige Applikation, welche bei uns über eine eigene Docker-Instanz läuft und bei uns intern auf dem eigenen Server gehostet wird. Es werden also keine Daten aus unseren Datenbanken an externe Drittanbieter geschickt, sondern es bleibt alles bei uns intern. So können wir auch den Datenschutz von Personendaten sichern.

Sobald die Instanz aufgesetzt ist, können die Datenbanken von verschiedenen Projekten damit verknüpft werden. Diese Datenbanken bilden die Grundlage für die Suche, da die Daten daraus stammen. Innerhalb der Datenbanken kann man verschiedenste Objekte (z. B.  Personen, Verträge, Dokumente, etc.) definieren. Die Flexibilität der Applikation in diesem Bereich ist bemerkenswert, sodass man praktisch alle Daten, die man suchbar machen möchte, auch als Suchergebnisse anzeigen kann. Zudem können die Informationen, welche auf einem Suchresultat angezeigt werden, direkt pro Objekt definiert werden. Zum Beispiel werden auf einer Website beim Objekt “Vertrag” andere Informationen hervorgehoben als das Objekt “Person”. So kann das Layout für jeden Objekttyp definiert werden.

Welche Funktionen bietet Solr? 

Solr funktioniert wie eine erweiterte Volltextsuche, welche die verknüpften Daten nach den gesuchten Wörtern durchsucht. Folgende Funktionen kommen bei Solr out-of-the-box mit und können beliebig verwendet werden.

Out-of-the-box 

  • Priorisierung der Suchresultate aufgrund der Häufigkeit und Genauigkeit des gesuchten Wortes 
  • Singular & Mehrzahl-Erkennung (zum Beispiel, dass beim Wort “Wörter” auch Vorschläge für “Wort” angezeigt werden) 
  • Umlaute-Erkennung (also dass zum Beispiel nach “Aenderung” gesucht werden kann und dann trotzdem auch Resultate mit dem Wort “Änderung” angezeigt werden) 
  • Unvollständige oder fehlerhafte Sucheinträge 
  • Stopwords sind ebenfalls abgedeckt - damit werden nur die relevanten Wörter herausgefiltert. Man kann also nach “wie kann ich ein Thema finden” suchen und das System merkt selber, dass die Wörter “wie kann ich” nicht relevant sind, schliesst diese aus den Suchergebnissen aus. 
  • Schnelle Indexierung von Daten, damit man die Inhalte in der Suche auch schnell sehen kann 
  • Solr bietet eine optimierte Suchfunktion an, welche auch extrem schnell funktioniert - auch bei gleichzeitigen Suchanfragen (Traffic)

Eigenentwicklung 

  • Priorisierung der Suchresultate aufgrund des Titels (also wenn das Wort im Titel des Objekts vorkommt) 
  • Sprachunterteilung (man kann die Suche nach Sprache unterteilen, sodass auch nur Resultate in der entsprechenden Sprache angezeigt werden) 
  • Anzeige von Suchresultaten je nach Berechtigungsrolle 

Diese Liste ist nicht abschliessend, da wir für jede Individualentwicklung weitere Funktionen einbauen können.

Integration von Tika PDF-Parser 

Wir benutzen auch noch einen zusätzlichen Dienst. Mit dem Tika PDF-Parser können auch Dokumente umgewandelt werden, sodass die Texte innerhalb der Dokumente durchsuchbar werden. 
Diese Funktion ist gerade dann spannend, wenn man Formulare und Dokumente einfügen möchte und die Benutzer die Informationen über die Suche finden sollen. 

Der Tika PDF-Parser kann Dokumente mit verschiedenen Formaten durchsuchen - zum Beispiel Word, Excel, PDF etc.

Wie setzen wir Solr Search ein?

Wir haben verschiedene Projekte mit verschiedenen Anforderungen, bei denen wir die Solr Suche einsetzen.

Schweizer Wanderwege 

Auf der Schweizer Wanderwege Seite wird die Suchfunktion für die gesamte Website eingesetzt. 

Zwei Dinge sind hier sehr praktisch. Das erste ist, dass die Suchergebnisse, welche noch nicht angezeigt werden sollen, nicht in die Suche aufgenommen werden. Zum Beispiel werden Dokumente, welche nirgends veröffentlicht sind, weil zum Beispiel die Seite noch nicht öffentlich sein soll, nicht angezeigt und auch nicht durchsucht. Zweitens ist es möglich, je nach Berechtigungsrolle (also ob man als Mitglied eingeloggt ist oder nicht), Suchergebnisse anzuzeigen und je nachdem nicht. So können Daten-Lecks vermieden werden.

Solr Search wander
Volltextsuche

Verwaltungs-Software 

In der Verwaltungs-Software eines Netzwerks von Service-Clubs mit internationaler Präsenz verwenden wir die Suche ebenfalls. Hier kommt die Berechtigungsthematik ebenfalls zum Tragen, da die Mitglieder nach verschiedenen Klubs aufgeteilt sind und dementsprechend nur die ihrem Klub zugehörigen Informationen sehen sollen.

Intranet Projekte 

In unserem eigenentwickelten Luna-Intranet ist die Suche ebenfalls eingebaut und wird out-of-the-box mitgeliefert.

Welche Schwierigkeiten bringt die Solr Search mit sich? 

Die Berechtigungen waren ein Thema, das nicht ganz so einfach lösbar war, weil es sehr viele verschiedene Fälle gibt, die man abdecken muss. 
Wir speichern die Berechtigungsrollen in Solr und haben eine dynamische Logik eingebaut. Das heisst, wenn man nach etwas sucht, dann prüft das System direkt, ob das Objekt für den User angezeigt werden darf oder nicht. Zum Beispiel darf ein User, der auf einer Art Intranet eingeloggt ist, nicht alle Verträge sehen. Eigen erstellte Verträge jedoch schon - solche Fälle sind eher schwierig abzudecken.

Welche Vorteile bietet die Solr Search? 

  • Die Suche und das Verhalten der Suche können in hohem Grad konfiguriert und eigenständig angepasst werden, sodass sie perfekt auf die Bedürfnisse der entsprechenden Suche eingestellt ist. 
  • Das System ist extrem performant. Andere Datenbanken bieten noch weitere Funktionen, welche Solr ganz klar ausschliesst. Solr begrenzt sich auf eine optimierte Suche und ist daher einiges schneller bei der Indexierung der Daten für die Suche, wo andere Suchfunktionen viel länger hätten. 
  • Die Funktionen, welche weiter oben im Kapitel “Welche Funktionen bietet Solr?” beschrieben werden, würden viel Aufwand kosten, wenn man diese selber entwickeln würde. Diese Entwicklungs-Heavy Features sind bei Solr direkt out-of-the-box mit dabei. 
  • Es entstehen keine zusätzlichen Hosting- oder Wartungs-Kosten für den Kunden, da Solr ein open-source System ist und auf unseren eigenen Servern gehostet wird.

Interessiert? 

Haben Sie ein Projekt, bei welchem Sie gerne eine erweiterte Suchfunktion einsetzen möchten, wissen aber nicht genau, wie vorgehen? Melden Sie sich bei uns.