Entwicklungsblog von ZEIT ONLINE
Kategorie:

API

ZEITMASCHINE – responsive Such-App fürs Archiv

Von 7. November 2013 um 09:21 Uhr

Mithilfe der ZEIT ONLINE Api entwickelte Mathias Kotowski für die Firma Neofonie die Anwendung ZEITMASCHINE.

Die Anwendung ermöglicht gezielte Suchabfragen auf den umfangreichen Textbestand des Archivs von ZEIT und ZEIT ONLINE. Die Treffervisualisierung erfolgt auf einem Zeitstrahl, dessen Skala individuell eingestellt werden kann. Die App ist responsiv und touchoptimiert, sie kann somit auf unterschiedlichsten Endgeräten genutzt werden. Suchergebnisse können lokal im Browser abgespeichert werden.

Screenshot App Zeitmaschine

Facts:

Kategorien: Anwendung, API

ZON-API ist quelloffen

Von 10. April 2013 um 10:56 Uhr

Seit dem Launch der Beta-Phase hat unsere API nun mehrere Millionen Requests beantwortet. Wir haben spannende Projekte gesehen und viel konstruktives Feedback erhalten. Ein öffentliches Bugtracking und der neue Twitterchannel @zeitonline_dev waren die ersten Schritte, dieses Potenzial zu nutzen. Nun möchten wir interessierten Entwicklern einen Einblick in unsere Schnittstelle geben. Alle Sourcen der API sind ab sofort auf Github verfügbar. Die Architektur erläutern wir hier kurz.

Vom CMS zur API zur App

Der Publikationsprozess unseres Content Management Systems stößt eine Reihe von Aktionen an, die den Artikel auf unterschiedlichen Kanälen verfügbar machen. Für die API werden die Rohdaten des Artikels mit XSL transformiert und via HTTP an den API-Suchserver gesendet. Dies realisieren wir mit Solr, einem Projekt der Apache Foundation. Solr basiert zum größten Teil auf Lucene Bibliotheken und bietet mächtige Features zur Volltextsuche über große Datenmengen. Auch in anderen Bereichen von ZEIT ONLINE wird mit Solr-Technologie gearbeitet, so dass die Wahl für das API-Projekt nahe lag. Die API benutzt für Suchanfragen den ExtendedDisMax Query Parser von Solr. Dieser ist bezüglich der Syntax sehr fehlertolerant und gut geeignet, Benutzereingaben direkt zu verarbeiten. Er unterstützt die volle Suchsyntax und kann spezifische Queries mit boolschen Verknüpfungen, Feldselektoren oder Zeitspannen verarbeiten.

Die sogenannte Facettierung ist ein weiteres Feature von Solr, das für Gruppierung und Quantifizierung von Inhalten nützlich ist. Eine Facette eines Feldes zeigt an, welcher Wertebereich innerhalb der Suchanfrage vorkommt und wie oft ein Wert vertreten ist. Eine Facette ist also eine Untermenge der eigentlichen Query.

Solr bildet keine Relationen zwischen Elementen ab. Deshalb haben wir uns für eine Hybrid-Lösung entschieden: Der Suchserver indexiert Artikeltexte und konstante IDs der zugehörigen Metadaten-Objekte. Die Metadaten-Objekte selbst werden in einer relationalen Datenbank unter der entsprechenden ID als Schlüssel gespeichert. Dies ist zum Beispiel die Kategorie und lexikalische Schreibweise eines Schlagworts. Durch diese Trennung können globale Änderungen an Metadaten durchgeführt werden, ohne dass alle betroffenen Artikel neu indexiert werden müssen.

Ein HTTP-Request an die API wird von einer Middleware auf Basis des Web Frameworks Flask beantwortet. Die Parameter und deren Werte werden auf Gültigkeit überprüft und der angegebene API-Key verifiziert. War die Anfrage valide, muss sie zunächst für den Solr übersetzt werden, da dessen REST-Interface leicht von dem unserer API abweicht.

Die Maskierung und Reduktion der umfangreichen Möglichkeiten von Solr soll die Bedienung der API vereinfachen und ist dem Datenschema angepasst. Als Ausgabeformat setzen wir auf JSON. Es ist schemafrei, wird von den meisten Sprachen und Plattformen unterstützt und ist auch in Rohform noch gut lesbar.

Happy Developing

Wir freuen uns über jeden Fork,  jeden Pull-Request und auf einen regen Austausch. Unser Code unterliegt der BSD-Lizenz, da diese Entwicklern alle Freiheiten gibt, Code zu verändern und zu redistribuieren. Über einen kurzen Hinweis, wo und wie unser API-Code zum Einsatz kommt, würden wir uns freuen.

Wir werden unsere API selbstverständlich weiter verbessern. Auch Bugreports und Featurerequests sind weiterhin willkommen.

Links zum Thema

Kategorien: API

zeitRemix – Facettierung durch Schlagworte

Von 11. Januar 2013 um 12:10 Uhr

Auf Basis der ZEIT ONLINE Api hat Ron Drongowski die Anwendung zeitRemix erstellt.
Die Anwendung erschließt den umfangreichen Textbestand über eine Facettierung der Schlagworte. Dabei können die Schlagworte der Artikel kombiniert werden, um die Anzahl der zutreffenden Artikel einzugrenzen. Über den abgefragten Zeitraum ist eine zweite Eingrenzungsebene gegeben.

Screenshot der zeitremix Anwendung mit den Schlagworten: Europäische Union Erderwärmung Klimawandel China

Facts:

Disclaimer: Ron Drongowski leitet das Technik-Backend Team von ZEIT ONLINE.

Kategorien: Anwendung, API