ERWEITERUNG CONTAO INDEXIERUNG - SUCHE AUF OFFICE- UND PDF-DATEIEN
Zu meiner Person
• 59 Jahre alt
• seit 40 Jahren Erfahrung in der IT-Branche
• Schwerpunkt Hosting, Betrieb und Entwicklung
• Contao-Erfahrung seit 2008
• Einsatz überwiegend im Enterprise-Umfeld
• Extension - Entwicklung überwiegend im Kundenauftrag
• Betreuung & Hosting von 100+ Instanzen in Europa mit~ 45.000 Usern
• Betreuung & Hosting von 10+ Websites für Unternehmen, Vereine, Organisationen, …
• Sogenannter „DEV-OP“
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 2
(Haupt)grund für diese Extension?
• Ein Kunde veröffentlich News überwiegend im PDF-Format* sowie meistens mit Anlagen in verschiedenen Officeformaten• Einheitliche Formatierung• Interner Workflow besser abbildbar• Optimales Druckergebnis beim Endanwender• Teilweise vertragsergänzende Bestandteile
• Zusätzliche Bereitstellung einer Dokumentenbibliothek sowie eines Archives
• Verwaltung von derzeit 50.000+ Dateien in 20.000+ News in den Produktionsinstanzen
• Viele Nachfragen von Agenturen, Unternehmen, etc.*Entwicklung eines Content-Elementes zur direkten PDF-Anzeige sowie Ausweitung der Berechtigungen auf einzelne Newsbeiträge
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 3
Anforderungen an die Erweiterung
• Indexierung sowohl von PDF-Dateien als auch verschiedener Officeformate (Excel, Word, …)
• Native Einbindung in die Contao Suche/Indexierung
• Optimierung des Ergebnisses (z.B. Zeilenumbrüche bei Silbentrennungen)
• Anpassung / Filterung bestimmter Begriffe bzw. Ersatz durch eigene Begriffe
• Betrieb möglichst unter allen aktuellen Server-betriebssystemen
• Einfaches Handling / Implementation
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 4
pdftotext, abiword, xls2csv, docx2txt, xlsx2txt, …
Vorteile:
• Meist einfache Handhabung
• Wurde z.B. in Typo3 genutzt
Nachteile:
• Für jedes Format eigenes Tool und Syntax
• Teilweise veraltet
• Teilweise ungenaue / unvollständige Ergebnisse
• Teilweise nur unter Linux lauffähig
• Erfordert oft die Nachinstallation weiterer Pakete
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 5
smalot pdf-parser
Vorteile:• Vollständig in PHP implementiert• Installation via Composer• Aktives Projekt• Website: http://www.pdfparser.org/Nachteile:• Nur für PDF-Dateien geeignet• Ergebnisse teilweise nicht zufriedenstellend*
* Bezieht sich immer auf die im Kundenumfeld veröffentlichten Dateien
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 6
Apache Tika – Server
Vorteile:
• Umfangreiches Toolkit zur Content-Analyse
• Unterstützt von der Apache Foundation
• Aktives Projekt, regelmäßige Updates
• Unterstützung nahezu aller Dateiformate(https://tika.apache.org/1.15/formats.html)
• Dient u.a. als Basis für Such- und Analysesysteme wie z.B.:• ElasticSearch (https://www.elastic.co/de/) • Apache Lucene / solR (http://lucene.apache.org/solr/)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 7
Apache Tika – Server (Forts.)
Vorteile:
• Sehr schnelle Content-Extrahierung (Server)
• In Java implementierter Server-Prozess
• Einfache Installation (eine jar-Datei starten)
• Auch als Client-Anwendung verfügbar (allerdings nicht so performant)
• Einfache API / erkennt Dateiformat automatisch
• Open Source
• Website: http://tika.apache.org/
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 8
Apache Tika – Server (Forts.)
Nachteile:
• Java – Runtime in aktueller Version erforderlich (sowohl für Client als auch Server)
• Nicht bei allen Hostern möglich / vorhanden
• Installation unter Windows-Server etwas aufwändig
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 9
Contao – Extension search_plus
• Basiert auf den Erfahrungen meiner Apache solR-Extension
• Teilweise Fork der search_plus – Extension von Heimrich & Hannot GmbH• heimrichhannot/contao-search_plus
https://github.com/heimrichhannot/contao-search_plus• LGPL (http://www.gnu.org/licences/lgpl-3.0.html)• Nur für PDF – Dateien, benutzt smalot/pdfparser
• Nutzt die Vaites PHP Tika-Bindings(https://github.com/vaites/php-apache-tika/)
• Und natürlich Apache Tika (https://tika.apache.org/)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 10
Funktionsweise
• Bei einem Upload von Dateien im Contao – Datei-Manager wird jede Datei:• geprüft ob sie den konfigurierten Dateiformaten entspricht
• Falls ja wird der Inhalt und die Metadaten der Datei(en) in die tl_files – Tabelle geschrieben oder diese werden aktualisiert
• Inhalte werden anhand der Konfiguration optimiert
• Tika-Prozess wird nur einmalig beim Dateiupload angestoßen
• Ergebnisse der Extrahierung werden im Contao Log protokolliert (wichtig falls bestimmte Dateien nicht von Tika verarbeitet werden können)
• Tika – Server muss laufen oder Client muss verfügbar sein
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 11
Funktionsweise (Forts.)
• Sofern Datei(en) auf einer Webseite verlinkt sind, werden diese zusätzlich gemäß dem Contao – Standard in den Such-Index mit aufgenommen.
• Dabei wird auf die Meta-/Inhaltsdaten aus der tl_fileszurückgegriffen
• Sollten diese (noch) nicht vorliegen, wird in diesem Falle trotzdem der Tika-Server/Client getriggert
• Für die Extrahierung bestehender Meta- und Inhaltsdaten für bereits existierende Files steht ein entsprechender Job zur Verfügung (anschließend ist ein Neuaufbau des Such-Indexes im Backend empfehlenswert)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 12
Funktionsweise (Forts.)
• Nach der Extrahierung stehen alle Contao Such-möglichkeiten auch für verlinkte Dateien zur Verfügung (siehe separater Vortrag zur Suche)
• Integration ausschließlich über Hooks, keine Änderung am Core-System (= Contao Standard)• postUpload – Hook
• indexPage – Hook
• Derzeit für Version 3.5.x freigegeben
• Verfügbar in Deutsch und Englisch
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 13
Backend - Einstellungen
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 14
Modul - Einstellungen
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 15
Systemwartung
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 16
Testupload verschiedener Dateien
• Lorem ipsum dolor sit amet.docx
• Lorem ipsum dolor sit amet.pdf
• Lorem ipsum dolor sit amet.zip
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 17
Dateiupload / Indexierung (Word-Dokument)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 18
Dateiname: Lorem ipsum dolor sit amet.docx
System Log
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 19
Datenbankbeispiel (tl_files)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 20
Suche nach z.B. „Lorem“
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 21
Ausblick auf zukünftige Erweiterungen
• Metadaten- und Contentextrahierung auch aus gescannten PDF-Dateien (OCR) mittels Tesseract(https://github.com/tesseract-ocr/tesseract)
• Bereitstellung eines Dienstes zur Metadaten- und Contentextrahierung für den Fall dass eine lokale Installation (oder beim Hoster) von Java/Tika nicht möglich ist
• Integration von ElasticSearch sowie Lucene/solR als performantere Suchmaschinen
• Suche über mehrere Contao-Instanzen (in Verbindung mit ElasticSearch / Lucene/solR)
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 23
Verfügbarkeit der Erweiterung
• Apache Tika-Server• http://tika.apache.org/
• http://tika.apache.org/download.html
• search_plusIn Kürze auf github. Vorabversionen gerne auf Anfrage an [email protected]
• vaites/php-apache-tikaIn der Erweiterung bereits enthalten
15.06.2017 Erweiterung Contao-Suche auf PDF- und Officedateien / Michael Pfeiffer 24
Vielen Dank
Top Related