Vorheriger Artikel Nächster Artikel

Eine Einführung in die Sucherweiterung für eZ Publish: Die eigene Suchmaschine mit eZ Find 2.0

Aus dem
t3n Magazin Nr. 16

06/2009 - 08/2009

Ein gutes Content Management System zeichnet sich durch eine leichte und flexible Verwaltung von Inhalten aus. Es muss aber auch das Wiederauffinden von eingepflegten Inhalten möglichst einfach gestalten. Für das Enterprise eZ Publish steht jetzt Version 2.0 der auf dem Apache-Solr-Projekt basierenden Sucherweiterung eZ Find zur Verfügung, die einige neue Features bietet.

Während Websites zu den Anfangszeiten des Internets noch einen überschaubaren Umfang hatten, erlauben moderne Content Management Systeme auch bei wesentlich umfassenderen Websites mit meist zahlreichen Redakteuren, den Überblick zu behalten und neue Inhalte in verhältnismäßig kurzer Zeit zu erstellen oder einzupflegen. Genauso rasant wie die Menge an Inhalten steigt auch die Bedeutung effizienter Suchmöglichkeiten immer weiter. Inhalte einer Website, die nicht gefunden werden können, existieren aus Nutzersicht nicht und führen nicht selten zu Frust auf Anwenderseite. Abhilfe schafft oftmals eine ausgereifte Suchmaschine für die eigene Webpräsenz.

Mit eZ Find 2.0 [1] wurde im März die aktuelle Version der Sucherweiterung für das Enterprise CMS eZ Publish 4 veröffentlicht. Zu den Highlights zählen

  • Individuelle Anpassungen von Relevanzkriterien
  • Facets (Drill-Down-Suche)
  • Unterstützung von Mehrsprachigkeit
  • Berücksichtigung von Zugriffsberechtigungen
  • Integration weiterer Systeme in den Suchindex
  • Suchvorschläge („Ähnliche Treffer“)

Unter der Haube

Anstatt das Rad neu zu erfinden, nutzt eZ Find als technische Basis die bewährte Technik des Apache-Solr-Projekts [2]. Solr wiederum baut auf der Lucene-Java-Suchtechnologie auf. Als Extension für eZ Publish ersetzt eZ Find bei Bedarf die Standardsuche komplett oder ergänzt sie. Im Gegensatz zur Standardsuche nutzt der Index von Solr nicht die Datenbank des CMS, sondern eine eigene, für den Suchindex optimierte Datei. eZ Find nutzt Solr, um den Index anzulegen und Suchanfragen abzuarbeiten. Anhand spezieller Konfigurationsdateien lassen sich die Indizierung und Gewichtung von Texten und Schlüsselwörtern beeinflussen. Startet ein Anwender eine Suche, so erzeugt eZ Find eine Anfrage an das Solr-Backend. Die Kommunikation mit Solr erfolgt in Form von Web Services (REST). Um eZ Find 2.0 einsetzen zu können, werden Java Runtime Environment in der Version 5 sowie eZ Publish 4.0 oder neuer benötigt.

eZ Find im Einsatz

verrichten ihre Arbeit im Hintergrund. Entscheidend für die Qualität einer Suche ist, dass sie schnell arbeitet, Suchkriterien einfach zugänglich macht und die gewünschten Ergebnisse präsentiert.

Dass eZ Find 2.0 schnell ist und auch große Datenbestände in kürzester Zeit durchsuchen kann, beweist es beispielsweise bei der Verlagsseite von Random House Mondadori aus Spanien [3]. Hier lassen sich tausende von Buchtiteln und Autoren durchsuchen, nach Preisspannen filtern und die Ergebnisse nach unterschiedlichen Kriterien sortieren.

Die Nutzung verschiedener Suchkriterien in eZ Find zeigt die Rezeptsuche bei Woman's Day [4] und dinmat.no. So lassen sich im Falle von Woman's Day komplexe Suchabfragen wie die folgende einfach zusammenstellen:

Finde alle Rezepte mit der Hauptzutat Beef, die sich für den Sommer eignen, mit einer Zubereitungszeit von bis zu 20 Minuten und maximal 400 Kalorien.

Bei Bedarf lassen sich sämtliche Attribute eines Objekts einfach und gleichzeitig durchsuchen.

Bei Bedarf lassen sich sämtliche Attribute eines Objekts einfach und gleichzeitig durchsuchen.

Die Darstellung der Suchergebnisse erfolgt üblicherweise anhand der Suchrelevanz. Unter dinmat.no wird bei Suchanfragen die Relevanz der Treffer sogar direkt mitangegeben. Bei Bedarf müssen sich Treffer aber auch anpassen lassen, um beispielsweise bezahlte Einträge weiter oben darzustellen oder bei einer seitenweiten Suche bestimmten Inhaltstypen eine höhere Gewichtung zu geben. Treffer in den Nachrichten können so vor Treffern in Community-Blogs dargestellt werden.

Eine Suche nach Pizza findet unterschiedlich relevante Ergebnisse.

Eine Suche nach Pizza findet unterschiedlich relevante Ergebnisse.

Suchfacetten, wie sie bei Ebay oder vielen Preissuchmaschinen genutzt werden, unterstützt eZ Find ebenso wie Vorschläge zu ähnlichen Treffern, was im Fall von Tippfehlern durchaus sinnvoll sein kann. Zu diesem Zweck können anhand unterschiedlicher Algorithmen Vergleiche mit Wörterbüchern vorgenommen werden, wodurch der Anwender Vorschläge in der Art „Meinten Sie Pizza?“ bei der Eingabe von „pizzza“ erhalten kann.

Boole'sche Operatoren und Wildcards werden ebenso unterstützt. Eine Suche nach Pizza ohne Schinken sähe dann in einem Freitextfeld so aus: „+pizza -schinken“

eZ Publish und eZ Systems
eZ Publish ist das Enterprise CMS der norwegischen Firma eZ Systems für mittlere bis große Installationen. Das in PHP 5 entwickelte System ist unter der GPL verfügbar. Besonders hervorzuheben sind der objektorientierte Ansatz zur einfachen Modellierung von Inhalten, die umfangreiche Unterstützung für mehrsprachige Webauftritte, die Versionierung von Content-Objekten und die einfache Erweiterbarkeit in Form von Extensions. Inhalte werden als Objekte einer bestimmten Klasse angelegt, zum Beispiel Nachrichten, Blogeinträge oder Bilder, die wiederum bestimmte Attribute haben (z. B. Überschrift, Text und Autor). Bei Extensions wie eZ Find handelt es sich um Plugins zur Erweiterung der Funktionalität oder des Designs. Die Flexibilität von eZ Publish zeigt sich auch in den Anbindungsmöglichkeiten an diverse Drittherstellersysteme wie Apple Final Cut Server, Adobe Indesign, SDL Trados, SugarCRM, diversen Payment-Gateways und weitere.

Such-Performance

Bei eZ Find wird der Suchindex getrennt vom eigentlichen CMS angelegt. Dadurch ergeben sich mehrere Vorteile: Eine Suchanfrage belastet das Backend des CMS nicht, bei Volltextsuchen müssen beispielsweise keine Full-Table-Scans vom Datenbankserver durchgeführt werden. Gerade bei hochfrequentierten Webseiten kann dies bereits zu einer spürbar schnelleren Performance gegenüber der CMS-eigenen Suche führen. Häufige Suchanfragen führen bei Solr ebenfalls dazu, dass der Index-Cache optimiert wird und eZ Find mit jeder Suche schneller wird.

eZ Find unterstützt den Einsatz im Cluster-Modus, um höhere Geschwindigkeiten oder Ausfallsicherheit zu gewährleisten. Pro Server werden jedoch bereits bis zu 100 Millionen Objekte unterstützt, sodass Cluster nur in sehr umfangreichen Installationen notwendig sind. Als Faustregel gilt, dass bei einem Index mit 10 Millionen Objekten 10 Suchanfragen pro Sekunde – inklusive Facets, Hervorhebungen, Rechtschreibkontrolle und ähnliche Artikelvorschläge – auf gängiger Hardware realistisch sind.

Relevancy Tuning

Im Rahmen der Indizierung lassen sich bestimmte Boost-Faktoren angeben, die sich auf die intern genutzte Relevanzpunktzahl auswirken. Bestimmten Inhaltsklassen kann in der Anzeige somit der Vorzug gegeben werden oder Treffer in bestimmten Attributen werden stärker gewertet: Taucht der Suchbegriff in einer Überschrift auf, ist die Relevanz höher, als wenn der Suchbegriff in einem ALT-Tag eines Bilds steht. Im Gegensatz zu Solr sorgt das Zusammentreffen mehrerer Boost-Faktoren nicht dafür, dass diese multipliziert werden. Sie werden lediglich addiert.

Auch unterschiedliche Sprachen können in Abhängigkeit des Suchkontexts besondere Gewichtung erhalten. Prinzipiell durchsucht eZ Find die aktuelle Sprache, insofern die Suche nicht explizit auch andere Sprachen miteinbeziehen soll. Ebenso, wie bestimmte Objektklassen oder Attribute eine höhere Relevanz bekommen können, lassen sich Klassen auch aus der Indizierung ausklammern.

Startet ein angemeldeter Besucher eine Suchabfrage, werden automatisch die entsprechenden Berechtigungen bei der Anzeige der Ergebnisse berücksichtigt. Gibt es einen für anonyme Besucher verborgenen Bereich, taucht dieser auch nicht in einer normalen Suche auf, identifiziert sich ein Nutzer hingegen als Partner oder Lieferant, so kann er natürlich auch die zugehörigen, für anonyme Anwender versteckten Bereiche durchsuchen.

Facets und ähnliche Treffer

Hat eine Suche einmal Ergebnisse gefunden, lassen sich diese mit eZ Find beliebig sortieren und weiter verfeinern. Diese Filtermöglichkeit wird auch als Drill-Down-Navigation oder Facetting bezeichnet [5]. Ein bekanntes Anwendungsgebiet sind Preissuchmaschinen. Die Facetten stellen in der Regel Kategorien dar. Sucht man in einem Portal nach „Pizza“, könnte es Ergebnisse in den Kategorien Nachrichten, Rezepte und Forumsbeiträge geben. Ohne eine neue Suche zu starten, erlauben die Facetten eine weitere Eingrenzung der Ergebnisse eben nur auf Rezepte.

Systemübergreifende Suchen

Die Konfiguration von eZ Find erfolgt anhand von INI-Dateien. In einer Standardinstallation wird bereits die Indizierung mehrerer Instanzen von eZ Find unterstützt. Um diese auch gleichzeitig zu durchsuchen, wird folgende Einstellung benötigt:

Anpassung von ezfind.ini.append.php

[SiteSettings]
SearchOtherInstallations=enabled

Listing 1

Ähnlich einfach lassen sich Gruppen von Seiten für die gemeinsame Indizierung definieren, sodass entweder eine eZ-Publish-Installation, definierte Gruppen oder der gesamte Index durchsucht werdenkönnen.Sollen andere Systeme wie externe Webseiten, CRM-Systeme oder XML-Feeds ebenfalls indiziert und durchsuchbar gemacht werden, müssen gegebenenfalls externe Plugins und XML-Importer entsprechend konfiguriert werden.

Fazit

eZ Find ist eine leistungsfähige Suchmaschine, die auf Lucene/Solr aufsetzt. In Verbindung mit eZ Publish erlaubt sie Besuchern ein schnelles und flexibles Auffinden von Inhalten. Eine Anbindung an andere Systeme und deren Aufnahme in den Suchindex ist generell möglich, ohne eZ Publish kann eZ Find 2.0 jedoch nicht genutzt werden.

Links und Literatur

Softlink 2336
  1. 1 http://ez.no/de/ezfind
    eZ Find 2.0
  2. 2 http://lucene.apache.org/solr/
    Apache Solr
  3. 3 http://www.randomhousemondadori.es
    Random House Mondadori Spanien
  4. 4 http://www.womansday.com
    Woman's-Day-Rezeptsuche
  5. 5 http://www.searchtools.com/info/faceted-metadata.html
    Facetting
Newsletter

Bleibe immer up-to-date. Sichere dir deinen Wissensvorsprung!

Vorheriger Artikel Zurück zur Startseite Nächster Artikel
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Aktuelles aus dem Bereich Apache
Hugo: Das kann der Go-basierte Website-Generator
Hugo: Das kann der Go-basierte Website-Generator

Hugo ist ein in Go geschriebener Seitengenerator. Der soll vor allem durch seine Einfachheit punkten und außerdem schneller als Jekyll sein. » weiterlesen

Krise bei Yahoo: Mehr als 1.000 Mitarbeiter sollen gehen – auch in Europa
Krise bei Yahoo: Mehr als 1.000 Mitarbeiter sollen gehen – auch in Europa

Yahoo hat offenbar noch kein wirksames Rezept gegen die anhaltende Krise gefunden. Jetzt drohen weitere Entlassungen. US-Medien zufolge will Yahoo mehr als 1.000 Mitarbeiter entlassen – auch in … » weiterlesen

Big Data in Echtzeit analysieren: Mesosphere Infinity soll die Lösung sein
Big Data in Echtzeit analysieren: Mesosphere Infinity soll die Lösung sein

Große Datenmengen bringen im Grunde überhaupt nichts, wenn sich daraus keine verwertbaren Informationen ziehen lassen. Mesosphere Infinity will Unternehmen jetzt genau dabei helfen, und setzt auf … » weiterlesen

Alle Hefte Jetzt abonnieren – für nur 35 €

Kennst Du schon unser t3n Magazin?