Schnelle Integration einer Suchmaschine mit einer Cloud-Lösung

von

Wer kennt die Problemstellung nicht? Man entwickelt eine Web-Applikation und im Laufe der Zeit kommen immer mehr Inhalte dazu, so dass in vielen Fällen die Integration einer Suche erforderlich wird. Basiert die Applikation auf einem gängigen Content-Management-System (CMS), ist darin oft schon von Haus aus eine mehr oder weniger gute Suchfunktion enthalten, die sich einbinden lässt. Ist dies nicht der Fall, stellt sich schnell die Frage nach dem Aufbau eines eigenen Such-Stacks mit Open Source Produkten wie elasticsearch oder Solr.


Dieses Vorhaben kann in die folgenden Teilaufgaben unterteilt werden:

  1. Suchserver aufsetzen und konfigurieren (selbst gehostet oder als Cloud-Service)
  2. Pro Webseite (Domäne) einen Index definieren und erstellen
  3. Indexierung der Daten
  4. Erstellen der Suchabfragen
  5. Entwicklung eines Benutzeroberfläche mit Sucheingabe und Suchergebnis-Seite

 

Für die einzelnen Teilaufgaben sind entsprechende Konzeptionen und Implementierungen notwendig. Beispielsweise müssen die Daten für die Indexierung zunächst über ein Application Programming Interface, kurz API, oder direkt aus der Datenbank zur Verfügung gestellt werden. Alternativ können die HTML-Inhalte aus dem Livesystem über sogenanntes Webscraping abgezogen werden. Für das Webscraping ist wiederum entsprechender Code zu erstellen.

Hier ist schnell ersichtlich, dass dies einen entsprechenden Zeit- und damit auch Kostenaufwand mit sich bringt, der nicht immer angemessen ist.

Alternativen

Nachfolgend wird Elastic Site Search als eine mögliche Alternative beleuchtet.

Bei Elastic Site Search handelt es sich um einen Ansatz, der auf dem SAAS-Prinzip basiert. Dadurch entfallen die gesamten Aufgaben im Infrastrukturbereich wie Installation, Upgrades, Sicherheitsaspekte oder Basis-Konfigurationen. Elastic Site Search nutzt die Suchmaschine von elastic. Mit der Oberfläche der Suchmaschine und deren originären Konfiguration kommt man gar nicht erst in Berührung - sie wirkt im Hintergrund. Stattdessen erfolgen alle vorzunehmenden Einstellungen bequem über eine individuelle Administrationsoberfläche.

Indexierung

Die abzudeckenden Inhaltsseiten der Suche werden über Webscraping erfasst und indexiert. Hier können, wie im unten gezeigten Beispiel zu sehen, eine oder mehrere Domainen konfiguriert werden. Die Inhalte werden in regelmäßigen Abständen überprüft, um Änderungen in die Suche zu übernehmen.

Dies bedeutet, dass die Webseiten in der Suche fast ohne Aufwände verfügbar gemacht werden können. Ein ausschließendes Kriterium für den Einsatz ist gegebenenfalls, dass sich zugriffsgeschützte Seiten aktuell nicht integrieren lassen.
Um alle Seiten zu erfassen ist es sehr hilfreich, wenn eine Seitenübersicht über die Datei sitemap.xml zur Verfügung steht, die beim Indexieren von Elastic Site Search genutzt werden kann. Nach Erfahrungen von exensio hat das Fehlen einer sitemap.xml auch schon dazu geführt, dass eine Domäne überhaupt nicht indexiert werden konnte.

Suchabfragen

Elastic Site Search unterstützt eine Volltextsuche, deren Abfragen automatisch generiert werden. Eingreifen kann der Benutzer bei den Basisfunktionen wie dem Pflegen von Synonymen oder bei der Definition von Gewichtungen. Dies erfolgt komfortabel über die Administrationsoberfläche.

Oberfläche

Nicht zu unterschätzen sind Aufwände für die Umsetzung einer ansprechenden Oberfläche. Funktionen wie Autovervollständigung, Highlighting von Ergebnissen, Blätterung usw. sind zeitintensiv, wenn diese von Grund auf implementiert werden. Elastic Site Search bringt eine Benutzer-Oberfläche mit, die mit der Einbindung eines HTML-Tags sowie eines Javascript Snippets in bestehende Systeme einfach integriert werden kann.

Der nachfolgende Screenshot zeigt die Integration der Suchbox auf einer leeren HTML-Seite. Sobald die ersten Buchstaben eingegeben werden, wird die Autovervollständigung mit möglichen Treffern angezeigt.

Das Suchergebnis selbst wird, wie nachfolgend zu sehen, in einem Popup angezeigt. Damit ist es völlig unabhängig von der bestehenden Applikation. In der Administrationsoberfläche können Cascading Style Sheet (CSS) Anweisungen hinterlegt werden, um das Layout an den für das gesamte Unternehmen bindenden CI-Style-Guide anzupassen.

Der Individualisierung sind hier natürlich Grenzen gesetzt. Alternativ steht eine Java-Skript-Schnittstelle für die Kommunikation mit dem Such-Service zur Verfügung. Diese Nutzung ermöglicht detaillierte Individualiserungen für den Preis von entsprechenden Mehraufwänden.

Fazit

Mit Elastic Site Search lässt sich eine einfache Suche schnell und kostengünstig für eine bestehende Webapplikation umsetzen. Die monatlichen Nutzungskosten für die SAAS-Lösung sind verglichen zur Eigenentwicklung überschaubar.

Das Scraping der Webseiten stößt im Vergleich zu spezifischen API's oder Datenbankzugriffen an seine Grenzen. Rollen und Rechte lassen sich damit beispielsweise nicht abbilden. Auf die zu indizierenden Daten wie auch den Index kann nur bedingt Einfluß genommen werden.

Vor der Nutzung von Elastic Site Search ist es also empfehlenswert, die Anforderungen zu detaillieren um abwägen zu können, ob sich diese erfüllen lassen, oder man besser auf eine individualisierbare Lösung setzt.

Kategorien: Apache SolrElasticsearchSuche

Zurück