Externe Anwendungen für die Suchindizierung nutzen

26. Okt 2016

Zur Indexierung von PDF- und Office-Dateien werden externe Anwendungen benötigt, die Sie einfach in Weblication® CMS einbinden können.

Zur Indexierung von Office-Dokumenten (PDF, DOC, XLS, etc.) ist es zu den Systemvoraussetzungen (hier: Systembefehle über exec) erforderlich, dass der Inhalt dieser Binärdateien gelesen werden kann. Hierfür bedient sich Weblication® CMS externer Anwendungen, die das Auslesen der Dateien übernehmen. Beachten Sie hierzu die Hinweise am Artikelende! Andernfalls kann nur der Dateiname und die parallele Dokumentenerweiterung dieser Dateien indexiert werden.

Erfahren Sie nachfolgend, wie Sie diese externen Anwendungen für das Zusatzmodul Volltextsuche (PDF-Suche bzw. Office-Suche) einbinden und nutzen.

Herunterladen der externen Anwendungen

Die Downloadseiten für die empfohlenen externen Anwendungen finden Sie nachfolgend. Beachten Sie hinsichtlich des Einsatzes die Hinweise am Ende dieses Artikels.

Externe Anwendung Homepage / Download Dateiendungen

Xpdf

http://www.foolabs.com/xpdf/download.html
Im Bereich Download unter dem Abschnitt Precompiled binaries finden Sie die vorkompilierten Anwendungen. Ist Ihr OS nicht vorhanden, versuchen Sie den Abschnitt More binaries.

Nachfolgend stellen wir die auf einem Linux-Server bei Domainfactory getestete Version Xpdf 3.0.3 (32bit Version) zum Download als TGZ bereit. Beachten Sie bitte die Lizenzhinweise auf der Herstellerseite! Die Version 3.0.4 konnten wir leider nicht zum Laufen bringen...
Das gleiche gilt für Windows-Server (z.B. XAMPP für Windows). Verwenden Sie auch hier die Xpdf-Version 3.0.3 (nicht 3.0.4), da wir nur diese unter Windows zum Laufen bekommen haben.

Hinweis:
Bei Domainfactory steht "pdftotext" in vielen Tarifen bereits standardmässig zur Verfügung und muss daher nicht (mehr) abgelegt werden (siehe DF Forum). Stand Februar 2016 liegt pdftotext in Version 3.0.2 ab. Erfragen Sie daher beim Hosting-Support, ob die Anwendung in Ihrem Hosting genutzt werden kann und in welcher Version.

Vom Webserver bereitgestellte Xpdf-Software:
Je nach Provider steht bereits vorinstalliert eine Xpdf-Version zur Verfügung bzw. kann individuell auf dem Server installiert werden. Ist dies der Fall und es handelt sich um die Xpdf-Version 3.0.4, so darf dem Aufruf der externen Anwendung der Parameter -htmlmeta nicht angefügt werden.
Ab Weblication® CMS Version 010.002.244.000 können Sie hierzu manuell in der default.wConf.php über /wConf/wSearch/pdf/config/@outputFormat = "txt" erreichen, daß pdftotext ohne das -htmlmeta Attribut genutzt wird und direkt txt- anstatt html-Ausgabedateien vom PDF erstellt werden.
Wichtig:
Weblication® CMS berücksichtigt immer erst
"/weblication/grid5/appsExtern/pdftotext/pdftotext", und falls das nicht existiert, die vom Webserver bereitgestellte Xpdf-Software!

.pdf

Antiword

http://www.winfield.demon.nl/
Wählen Sie Ihr Betriebssystem aus und folgen sie den weiteren Links für den Download.

Nachfolgend stellen wir die auf einem Linux-Server bei Domainfactory getestete Version Antiword 0.3.7 (32bit Version) zum Download als TGZ bereit. Beachten Sie bitte die Lizenzhinweise auf der Herstellerseite!

.doc

xlhtml

http://chicago.sourceforge.net/xlhtml/
Unter dem Link Binarys können Sie die Windows Anwendungen herunterladen. Im Download der Version finden Sie die Linux Anwendungen.

Nachfolgend stellen wir die auf einem Linux-Server bei Domainfactory getestete Version xlHtml 0.4.9.4 (32bit Version) zum Download als TGZ bereit. Beachten Sie bitte die Lizenzhinweise auf der Herstellerseite!

.xls, .ppt

Zend-Framework

Das Zend-Framework kann über die 'Administration - Serverinformationen' für Weblication® nachinstalliert werden und wird im Softwareverzeichnis von Weblication® abgelegt (appsExtern).

Dies ist zum Auslesen von Office Dateien (2007 und höher) mit der Endung .docx und .xlsx erforderlich. Zend greift zum Öffnen der Dateien auf die PHP-Klasse ZipArchive zurück, die in der PHP-Umgebung eingebunden sein muss.
Zudem empfehlen wir für die Suchindexierung den Einsatz der ab CMS 10.x verfügbaren wNet-Klasse. Dies erfolgt dann, wenn in der Suche-Konfiguration das useSessionTan-Attribut aktiviert ist.

Hinweis:
Bei Domainfactory kann diese Klasse über den PHP.INI-Editor nachträglich eingebunden werden (Modul zip.so).

.docx, .xlsx

Entpacken und Ablegen der Archivinhalte

Entpacken Sie die Anwendungen in das Verzeichnis:

  • /weblication/grid5/appsExtern/
    • /pdftotext/
      Xpdf-Anwendung für PDF-Dateien
    • /wordtotext/[os]/
      Antiword-Anwendung für DOC-Dateien
      [os] steht für das jeweilige Betriebssystem (bei Linux: lin)
    • /excelppttotext/[os]/
      xlhtml-Anwendung für XLS-und PPT-Dateien
      [os] steht für das jeweilige Betriebssystem (bei Linux: lin)

Sofern Sie die Dateien via FTP/SSH übertragen, achten Sie darauf, dass Sie alle Dateien im Binär-Modus übertragen.

Setzen der Rechte

  • Beim Einsatz auf einem Linux-Server (z.B. bei Domainfactory):
    • Für PDF-Dateien (pdf):
      /weblication/grid5/appsExtern/pdftotext/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/pdftotext/pdftotext (Datei ohne Endung)
    • Für Word-Dateien (doc):
      /weblication/grid5/appsExtern/wordtotext/lin/antiword/
      /weblication/grid5/appsExtern/wordtotext/lin/bin/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/wordtotext/lin/antiword/antiword (Datei ohne Endung)
      • Schreibrechte sind erforderlich auf:
        /weblication/grid5/appsExtern/wordtotext/lin/bin/ (je nach Server chmod 777 erforderlich)
    • Für Excel/Powerpoint-Dateien (xls|ppt):
      /weblication/grid5/appsExtern/excelppttotext/lin/xlHtm/
      /weblication/grid5/appsExtern/excelppttotext/lin/bin/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/excelppttotext/lin/xlHtm/ppthtml (Datei ohne Endung)
        /weblication/grid5/appsExtern/excelppttotext/lin/xlHtm/xlhtml (Datei ohne Endung)
  • Beim Einsatz auf einem Windows-Server (mit Apache):
    • Für PDF-Dateien (pdf):
      /weblication/grid5/appsExtern/pdftotext/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/pdftotext/pdftotext.exe
    • Für Word-Dateien (doc):
      /weblication/grid5/appsExtern/wordtotext/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/wordtotext/win/antiword/antiword.exe
      • Schreibrechte sind erforderlich auf:
        /weblication/grid5/appsExtern/wordtotext/lin/bin/
    • Für Excel/Powerpoint-Dateien (xls|ppt):
      /weblication/grid5/appsExtern/excelppttotext/lin/xlHtm/
      /weblication/grid5/appsExtern/excelppttotext/lin/bin/
      • Ausführenrechte müssen haben:
        /weblication/grid5/appsExtern/excelppttotext/win/xlHtm/ppthtml.exe
        /weblication/grid5/appsExtern/excelppttotext/win/xlHtm/xlhtml.exe

Ob die externen Anwendungen korrekt abliegen und auch die erforderlichen Ausführenrechte besitzen, erfahren Sie über den Funktionstest zu Beginn jeder Indexierung. Ein grünes "ok" hinter der genannten Anwendung bedeutet, dass die externe Anwendung verwendet werden kann.

Suchindexierung - Funktionstest der externen Anwendungen
Suchindexierung - Funktionstest der externen Anwendungen

Funktionstest analysieren und debuggen

Sofern Sie beim Funktionstest ein "error" anstatt des "ok" zum jeweiligen Application Check erhalten, prüfen Sie bitte über das Register "Debuginformationen" die detaillierte Fehlermeldung hierzu. Bei der PDF-Applikation könnte dies z.B. wie folgt aussehen:

PDF Check: Outputfile /var/www/htdocs/weblication/grid5/tmp/tmp_pdf_891604.html doesn't exist... Probably can't execute command "/var/www/htdocs/weblication/grid5/appsExtern/pdftotext/pdftotext -htmlmeta /var/www/htdocs/weblication/grid5/tmp/tmp_pdf_891604.pdf" or PDF file is password protected. 

Prüfen Sie in solch einem Fall zuerst einmal, ob Sie auch wirklich die Ausführenrechte auf die entsprechende Datei (z.B. pdftotext) gesetzt haben. Wenn dies der Fall ist, setzen Sie den in der Meldung genannten Aufruf (command) direkt in der Shell ab. Vergewissern Sie sich zuvor, daß die angegebene PDF-Datei im tmp-Verzeichnis mit dem Namen auch abliegt (kann eine Test-Datei sein). Nach einem erfolgreichen Aufruf muß parallel zu dieser PDF-Datei eine .html-Datei mit gleichem Namen abliegen (im Beispiel also die in der Fehlermeldung genannte Datei: tmp_pdf_891604.html). Wird diese Datei nicht angelegt, wenden Sie sich bitte an Ihren Provider, der sich anhand des direkten Shellaufrufes auf die Fehlersuche machen kann.

Tipp:
Damit Sie beim Debuggen nicht immer auf den kompletten Suchindex-Durchlauf warten müssen, geben Sie in den Sucheinstellungen einfach eine falsche Start-URL an.

Weitere mögliche error-Ursachen:

  • aktivierter Safe Mode
    Lösung: Deaktivieren Sie beim Einsatz älterer PHP-Versionen den Safe-Mode.

Hinweise

  • Die Anwendungen sind unter der GNU General Public License (GPL) veröffentlicht und stehen somit kostenlos zum Download zur Verfügung.
    Sie können die Anwendungen mit Hilfe der Installationsanleitungen (siehe jeweilige Anwendung) auf Ihrem System installieren. Gegebenenfalls müssen Sie die Berechtigungen des Webservers für diese Anwendungen (Dateien, Verzeichnisse) setzen.
  • Beachten Sie, dass beim Einsatz der im Artikel genannten externen Anwendungen
    keine Gewährleistung auf Datenübernahme aus den Office- bzw. PDF-Dateien besteht!
    Speziell vom Einsatz älterer Office-Dokumente, die nicht im XML-Datenformat abliegen,
    raten wir dringend ab und empfehlen den Einsatz das XML-Datenformates (docx, xlsx).
    Das Auslesen erfolgt hier über das Zend-Framework.

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG