From a839db22da8a1c47a2229177b7fbe7f26248a883 Mon Sep 17 00:00:00 2001 From: Shinsuke Sugaya Date: Tue, 20 Oct 2026 22:51:08 +0900 Subject: [PATCH] docs(15.10): describe the upgrade to Apache Tika 4.1.0 Update the 15.10 documentation tree in all seven languages for the Tika 4 upgrade (codelibs/fess#3666, codelibs/fess-crawler#225). - install/upgrade: add "Upgrading from 15.9 to 15.10" covering the retired tika.xml, metadata name changes, the removal of tk:/X-TIKA:/zip: metadata, Tesseract and PDF properties files, charset names and changes for plugin developers. - config/crawler-ocr: tesseract and ImageMagick must be on the PATH of the crawler process; the Tesseract timeout property is timeoutMillis. - config/crawler-advanced, config/admin-index-backup: drop tika.xml and describe the new behavior. - config/properties: update the default of crawler.metadata.content.excludes. --- de/15.10/config/admin-index-backup.rst | 2 +- de/15.10/config/crawler-advanced.rst | 4 +- de/15.10/config/crawler-ocr.rst | 30 ++++++------ de/15.10/config/properties.rst | 2 +- de/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ en/15.10/config/admin-index-backup.rst | 2 +- en/15.10/config/crawler-advanced.rst | 4 +- en/15.10/config/crawler-ocr.rst | 30 ++++++------ en/15.10/config/properties.rst | 2 +- en/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ es/15.10/config/admin-index-backup.rst | 2 +- es/15.10/config/crawler-advanced.rst | 4 +- es/15.10/config/crawler-ocr.rst | 30 ++++++------ es/15.10/config/properties.rst | 2 +- es/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ fr/15.10/config/admin-index-backup.rst | 2 +- fr/15.10/config/crawler-advanced.rst | 4 +- fr/15.10/config/crawler-ocr.rst | 30 ++++++------ fr/15.10/config/properties.rst | 2 +- fr/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ ja/15.10/config/admin-index-backup.rst | 2 +- ja/15.10/config/crawler-advanced.rst | 4 +- ja/15.10/config/crawler-ocr.rst | 30 ++++++------ ja/15.10/config/properties.rst | 2 +- ja/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ ko/15.10/config/admin-index-backup.rst | 2 +- ko/15.10/config/crawler-advanced.rst | 4 +- ko/15.10/config/crawler-ocr.rst | 30 ++++++------ ko/15.10/config/properties.rst | 2 +- ko/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ zh-cn/15.10/config/admin-index-backup.rst | 2 +- zh-cn/15.10/config/crawler-advanced.rst | 4 +- zh-cn/15.10/config/crawler-ocr.rst | 30 ++++++------ zh-cn/15.10/config/properties.rst | 2 +- zh-cn/15.10/install/upgrade.rst | 57 +++++++++++++++++++++++ 35 files changed, 525 insertions(+), 140 deletions(-) diff --git a/de/15.10/config/admin-index-backup.rst b/de/15.10/config/admin-index-backup.rst index 9d4d5d83d..f33786455 100644 --- a/de/15.10/config/admin-index-backup.rst +++ b/de/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ Zu sichernde Dateien - Vorschaubilder (bei Bedarf) .. note:: - Bei der RPM/DEB-Paketversion befinden sich im Verzeichnis ``/etc/fess/`` neben ``fess_config.properties`` auch Konfigurationsdateien wie ``fess_env_crawler.properties`` und weitere ``fess_env_*.properties``-Dateien sowie ``tika.xml``. Es wird empfohlen, das gesamte Verzeichnis ``/etc/fess/`` zu sichern. Die Datei ``system.properties`` wird als ``/etc/fess/system.properties`` erstellt bzw. aktualisiert, wenn Einstellungen unter "System > Allgemein" in der Verwaltungsoberfläche gespeichert werden. + Bei der RPM/DEB-Paketversion befinden sich im Verzeichnis ``/etc/fess/`` neben ``fess_config.properties`` auch Konfigurationsdateien wie ``fess_env_crawler.properties`` und weitere ``fess_env_*.properties``-Dateien. Es wird empfohlen, das gesamte Verzeichnis ``/etc/fess/`` zu sichern. Die Datei ``system.properties`` wird als ``/etc/fess/system.properties`` erstellt bzw. aktualisiert, wenn Einstellungen unter "System > Allgemein" in der Verwaltungsoberfläche gespeichert werden. Beispiel für das Backup von Konfigurationsdateien --------------------------------------------------- diff --git a/de/15.10/config/crawler-advanced.rst b/de/15.10/config/crawler-advanced.rst index 806546ee4..b6af503f8 100644 --- a/de/15.10/config/crawler-advanced.rst +++ b/de/15.10/config/crawler-advanced.rst @@ -369,7 +369,7 @@ Konfigurationsbeispiel :: # Auszuschließende Metadaten - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # Metadaten-Namen-Mapping crawler.metadata.name.mapping=\ @@ -377,6 +377,8 @@ Konfigurationsbeispiel Title=title:string\n\ dc:title=title:string +Metadatennamen, die mit ``tk:``, ``X-TIKA:`` oder ``zip:`` beginnen, entfernt |Fess|, bevor sie das Dokument erreichen, unabhängig davon, ob sie in ``crawler.metadata.content.excludes`` stehen. Sie lassen sich daher weder in ``crawler.metadata.name.mapping`` noch in Skripten verwenden. Tika 4 hat außerdem viele weitere Metadatennamen umbenannt; zur Auswirkung auf ``crawler.metadata.name.mapping`` siehe :ref:`upgrade-1510-tika-metadata`. + HTML-Crawler-Konfiguration ========================== diff --git a/de/15.10/config/crawler-ocr.rst b/de/15.10/config/crawler-ocr.rst index af1823fa8..2c3051856 100644 --- a/de/15.10/config/crawler-ocr.rst +++ b/de/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Tesseract installieren Installieren Sie Tesseract auf dem Host, auf dem |Fess| läuft. Um japanischen Text zu erkennen, benötigen Sie außerdem die japanischen Trainingsdaten (traineddata). +Der Befehl ``tesseract`` (und ImageMagick, falls Sie es verwenden) muss im ``PATH`` des |Fess|-Crawler-Prozesses gefunden werden. Den Pfad von ``tesseract`` können Sie nicht mehr in ``tika.xml`` festlegen, da |Fess| 15.10 diese Datei nicht liest. + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Legen Sie die Datei im Konfigurationsverzeichnis von |Fess| ab, das im Klassenpf - RPM/DEB-Paket: ``/etc/fess/`` In ``tesseract.properties`` schreiben Sie Eigenschaften der Tika-Klasse ``TesseractOCRConfig``. -Zuverlässig angewendet werden nur einfache Schlüssel wie ``language`` und ``timeoutSeconds``. +Zuverlässig angewendet werden nur einfache Schlüssel wie ``language`` und ``timeoutMillis``. :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` ist in Millisekunden angegeben (die globale Einstellung ``crawler.document.ocr.timeout`` ist in Sekunden angegeben). +Den Schlüssel ``timeoutSeconds`` von Tika 3 wandelt |Fess| in ``timeoutMillis`` um (Wert mal 1000) und schreibt eine Warnung in ``fess-crawler.log``. +Ein Schlüssel, den ``TesseractOCRConfig`` nicht setzen kann, wird ignoriert; |Fess| schreibt dafür eine Warnung in dieselbe Logdatei. +``tesseractPath``, ``tessdataPath`` und ``imageMagickPath`` haben in dieser Datei keine Wirkung. Für diese Crawl-Konfiguration hat dies Vorrang vor den oben beschriebenen globalen Einstellungen. @@ -172,21 +179,11 @@ Betriebshinweise Hinweise zum Upgrade ==================== -Bis 15.8 schloss die mitgelieferte ``tika.xml`` ``org.apache.tika.parser.ocr.TesseractOCRParser`` aus. -Ab 15.10 schließt die mitgelieferte ``tika.xml`` diesen Parser nicht mehr aus. - -Wenn Sie eine angepasste ``tika.xml`` weiterverwenden, entfernen Sie die folgende Zeile: - -:: - - - -Bleibt diese Zeile bestehen, bleibt OCR auch mit ``crawler.document.ocr.enabled=true`` ausgeschaltet. - -Der Speicherort von ``tika.xml`` ist wie folgt: +Bis 15.8 schloss die mitgelieferte ``tika.xml`` ``org.apache.tika.parser.ocr.TesseractOCRParser`` aus, sodass OCR auch mit ``crawler.document.ocr.enabled=true`` ausgeschaltet blieb. +Die ``tika.xml`` von 15.9 schloss diesen Parser nicht mehr aus. +15.10 verwendet Apache Tika 4, das keine XML-Konfigurationsdatei hat. |Fess| liefert ``tika.xml`` nicht mehr mit und liest sie nicht. OCR wird über ``crawler.document.ocr.enabled`` eingeschaltet. Ausgeschaltet bleibt OCR außerdem, wenn die Tesseract-Properties-Datei der Crawl-Konfiguration ``skipOcr=true`` setzt, wenn der Befehl ``tesseract`` fehlt oder wenn die OCR-Einstellungen ungültig sind. -- ZIP-Paket: ``app/WEB-INF/conf/tika.xml`` -- RPM/DEB-Paket: ``/etc/fess/tika.xml`` +Zu einer ``tika.xml``, die von einer früheren Version übrig ist, und zu den Properties-Dateien einer Crawl-Konfiguration siehe :ref:`upgrade-1510-tika`. OCR überprüfen ============== @@ -199,5 +196,4 @@ Erscheint das Bild nicht, prüfen Sie Folgendes: - ``tesseract --list-langs`` listet die verwendete Sprache auf - ``crawler.document.ocr.enabled`` ist ``true`` -- ``tika.xml`` schließt ``TesseractOCRParser`` nicht mehr aus - ``fess-crawler.log`` des Crawls zeigt ``OCR is enabled`` (die Warnung ``Tesseract OCR is not available`` bedeutet, dass |Fess| Tesseract nicht verwenden kann) diff --git a/de/15.10/config/properties.rst b/de/15.10/config/properties.rst index 493c1eefe..ba1a1d6ba 100644 --- a/de/15.10/config/properties.rst +++ b/de/15.10/config/properties.rst @@ -507,7 +507,7 @@ Index - ``cpu`` * - crawler.metadata.content.excludes - Metadatenfelder, die vom Dokumentinhalt ausgeschlossen werden. - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - Zuordnung für Dokument-Metadatennamen. - | ``title=title:string`` diff --git a/de/15.10/install/upgrade.rst b/de/15.10/install/upgrade.rst index b090210a7..ab457dd26 100644 --- a/de/15.10/install/upgrade.rst +++ b/de/15.10/install/upgrade.rst @@ -571,6 +571,63 @@ Bei Major-Version-Upgrades wird die Neuerstellung des Index empfohlen. Da bei der Neuindizierung der Index mit dem neuen Mapping neu erstellt wird, schlägt dieser Vorgang bei OpenSearch ohne k-NN-Plugin fehl. Beachten Sie die Hinweise in Schritt 4. +Upgrade von 15.9 auf 15.10 +========================== + +Die Änderungen in diesem Abschnitt betreffen jedes Upgrade auf 15.10. Wenn Sie von 15.8 oder früher aktualisieren, lesen Sie im Anschluss auch den Abschnitt „Upgrade von 15.8 auf 15.10“. + +.. _upgrade-1510-tika: + +Apache Tika 4 und ``tika.xml`` +------------------------------ + +15.9.0 verwendete Apache Tika 3.3.2, 15.10 verwendet Apache Tika 4.1.0. +Tika 4 hat keine XML-Konfigurationsdatei. |Fess| 15.10 baut den Tika-Parser deshalb im Code auf und liest ``tika.xml`` nicht mehr. +Die ZIP- und RPM/DEB-Pakete sowie die Docker-Images von 15.10 enthalten die Datei nicht. + +Einstellungen, die Sie in ``tika.xml`` vorgenommen haben, etwa ``parser-exclude``, werden nicht mehr angewendet: Ein dort ausgeschlossener Parser läuft wieder. +Liegt im Konfigurationsverzeichnis noch eine ``tika.xml`` aus einer früheren Version, ignoriert |Fess| sie und schreibt beim Start eine Warnung in ``fess.log``. Löschen Sie die Datei. + +- ZIP-Paket: ``app/WEB-INF/conf/tika.xml`` +- RPM/DEB-Paket: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +Metadatennamen +-------------- + +Tika 4 hat viele Metadatennamen umbenannt. So heißt ``pdf:charsPerPage`` jetzt ``pdf:chars-per-page``, ``access_permission:*`` jetzt ``access-permission:*`` und ``Message:*`` jetzt ``message:*``. +Namen, die der ``LegacyKeyMigrationFilter`` von Tika kennt, setzt |Fess| auf die Namen von Tika 3 zurück. Ein Eintrag in ``crawler.metadata.name.mapping``, der einen dieser Namen verwendet, funktioniert daher weiter. +Einen Namen, den der Filter nicht umsetzt, gibt |Fess| mit dem Namen von Tika 4 weiter. So heißt ``protected`` einer Excel-Datei jetzt ``msoffice:excel:protected-worksheet``. Verwendet ein Eintrag in ``crawler.metadata.name.mapping`` einen solchen Namen, ändern Sie ihn auf den Namen von Tika 4. + +Metadaten, die Tika 4 neu hinzufügt, werden wie alle anderen Metadaten behandelt: Sie werden zum Inhalt hinzugefügt, sofern ``crawler.metadata.content.excludes`` ihren Namen nicht erfasst. + +Die Ausnahme sind Namen, die mit ``tk:``, ``X-TIKA:`` oder ``zip:`` beginnen und die Tika für die interne Verwaltung nutzt (``X-TIKA:Parsed-By`` von Tika 3 heißt jetzt ``tk:parsed-by``). |Fess| entfernt sie, bevor sie das Dokument erreichen. Sie werden nicht auf die Namen von Tika 3 zurückgesetzt und auch nicht zum Inhalt hinzugefügt, unabhängig davon, ob ``crawler.metadata.content.excludes`` sie aufführt. Wenn Sie Namen wie ``X-TIKA:*`` oder ``tk:*`` in ``crawler.metadata.name.mapping`` zuordnen oder in einem Skript verwenden, erhalten Sie diese Werte nicht mehr. + +Tesseract- und PDF-Properties-Dateien einer Crawl-Konfiguration +--------------------------------------------------------------- + +Wenn eine Crawl-Konfiguration ``config.tika.tesseract.config`` oder ``config.tika.pdf.config`` setzt, prüfen Sie die Properties-Dateien, da Tika 4 einige Eigenschaften umbenannt oder entfernt hat. +Für jeden Schlüssel, den |Fess| nicht anwenden kann, schreibt es eine Warnung in ``fess-crawler.log`` und ignoriert den Schlüssel. + +- ``timeoutSeconds`` der Tesseract-Datei heißt jetzt ``timeoutMillis``. |Fess| wandelt ``timeoutSeconds`` in ``timeoutMillis`` um (Wert mal 1000); schreiben Sie künftig aber ``timeoutMillis`` in Millisekunden. ``crawler.document.ocr.timeout`` bleibt in Sekunden. +- Eigenschaften der PDF-Datei wie ``ocrStrategy``, ``ocrDPI``, ``ocrImageType``, ``ocrImageFormatName``, ``ocrImageQuality``, ``ocrRenderingStrategy``, ``accessChecker`` und ``renderer`` wurden aus ``PDFParserConfig`` von Tika 4 entfernt. |Fess| ignoriert sie und schreibt eine Warnung in ``fess-crawler.log``. OCR bei PDFs folgt dann dem Standard von Tika 4: automatisch, das heißt, Seiten mit wenig Text werden per OCR verarbeitet, wenn ``tesseract`` verfügbar und OCR in |Fess| aktiviert ist. +- Den Ort von ``tesseract`` können Sie nicht mehr in ``tika.xml`` festlegen, und ``tesseractPath``, ``tessdataPath`` und ``imageMagickPath`` in der Tesseract-Datei haben keine Wirkung. ``tesseract`` (und ImageMagick, falls Sie es verwenden) muss im ``PATH`` des Crawler-Prozesses gefunden werden. + +Erkennung der Zeichenkodierung +------------------------------ + +Die Namen der Zeichenkodierung, die Tika 4 für Textdateien meldet, können von 15.9 abweichen. So meldet Tika 4 Shift_JIS als ``windows-31j``, ISO-8859-1 als ``windows-1252`` und EUC-JP als ``x-eucJP-Open``. + +Änderungen für Plugin-Entwickler +-------------------------------- + +Die folgenden Änderungen betreffen Plugins, die Klassen von ``fess-crawler`` verwenden. Erstellen Sie ein solches Plugin für 15.10 neu (siehe :ref:`upgrade-plugin-versions`). + +- ``ExtractData`` implementiert die Tika-Schnittstellen (``TikaCoreProperties``, ``HttpHeaders`` usw.) nicht mehr. Die String-Konstanten ``CONTENT_TYPE`` und ``CONTENT_ENCODING`` deklariert ``ExtractData`` selbst. ``RESOURCE_NAME_KEY`` ist weiterhin ``"resourceName"``. +- ``TikaExtractor.setTikaConfig`` und die Komponente ``tikaConfig`` in ``fess.xml`` wurden entfernt. +- Bei der Log-Stufe ``debug`` übergibt ``CrawlJob`` dem Crawler nicht mehr ``-Dorg.apache.tika.service.error.warn=true``, weil Tika 4 diese Eigenschaft nicht liest. + Upgrade von 15.8 auf 15.10 ========================= diff --git a/en/15.10/config/admin-index-backup.rst b/en/15.10/config/admin-index-backup.rst index af22f808b..4d68332ab 100644 --- a/en/15.10/config/admin-index-backup.rst +++ b/en/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ Files to Back Up - Thumbnail images (as needed) .. note:: - In the RPM/DEB package installation, the ``/etc/fess/`` directory contains not only ``fess_config.properties`` but also other configuration files such as ``fess_env_crawler.properties`` and other ``fess_env_*.properties`` files, as well as ``tika.xml``. It is recommended to back up the entire ``/etc/fess/`` directory. The ``system.properties`` file is created and updated as ``/etc/fess/system.properties`` when settings are saved in the administration screen under "System > General". + In the RPM/DEB package installation, the ``/etc/fess/`` directory contains not only ``fess_config.properties`` but also other configuration files such as ``fess_env_crawler.properties`` and other ``fess_env_*.properties`` files. It is recommended to back up the entire ``/etc/fess/`` directory. The ``system.properties`` file is created and updated as ``/etc/fess/system.properties`` when settings are saved in the administration screen under "System > General". Configuration File Backup Example ---------------------------------- diff --git a/en/15.10/config/crawler-advanced.rst b/en/15.10/config/crawler-advanced.rst index cf02daa0c..c93797ee4 100644 --- a/en/15.10/config/crawler-advanced.rst +++ b/en/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ Configuration Example :: # Metadata to exclude - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # Metadata name mapping crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ Configuration Example Title=title:string\n\ dc:title=title:string +Metadata names that start with ``tk:``, ``X-TIKA:`` or ``zip:`` are removed by |Fess| before they reach the document, whether or not they are listed in ``crawler.metadata.content.excludes``. They therefore cannot be used in ``crawler.metadata.name.mapping`` or in scripts. Tika 4 also renamed many other metadata names; for the effect on ``crawler.metadata.name.mapping``, see :ref:`upgrade-1510-tika-metadata`. + HTML Crawler Settings ===================== diff --git a/en/15.10/config/crawler-ocr.rst b/en/15.10/config/crawler-ocr.rst index 082f82488..009c72e0a 100644 --- a/en/15.10/config/crawler-ocr.rst +++ b/en/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Installing Tesseract Install Tesseract on the host where |Fess| runs. To recognize Japanese text, you also need the Japanese trained data (traineddata). +The ``tesseract`` command (and ImageMagick, if you use it) must be found on the ``PATH`` of the |Fess| crawler process. The path of ``tesseract`` can no longer be set in ``tika.xml``, which |Fess| 15.10 does not read. + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Place the file in the |Fess| configuration directory, which is on the crawler's - RPM/DEB package: ``/etc/fess/`` In ``tesseract.properties``, write Tika ``TesseractOCRConfig`` properties. -Only simple keys such as ``language`` and ``timeoutSeconds`` are reliably applied. +Only simple keys such as ``language`` and ``timeoutMillis`` are reliably applied. :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` is in milliseconds (the global ``crawler.document.ocr.timeout`` is in seconds). +|Fess| converts the ``timeoutSeconds`` key of Tika 3 into ``timeoutMillis`` (the value multiplied by 1000) and writes a warning to ``fess-crawler.log``. +A key that ``TesseractOCRConfig`` cannot set is ignored, with a warning in the same log. +``tesseractPath``, ``tessdataPath`` and ``imageMagickPath`` have no effect in this file. For that crawl configuration, this takes precedence over the global settings above. @@ -172,21 +179,11 @@ Operational Notes Upgrade Notes ============= -Up to 15.8, the bundled ``tika.xml`` excluded ``org.apache.tika.parser.ocr.TesseractOCRParser``. -From 15.10, the bundled ``tika.xml`` no longer excludes this parser. - -If you kept a customized ``tika.xml``, remove the following line: - -:: - - - -If this line remains, OCR stays off even with ``crawler.document.ocr.enabled=true``. - -The location of ``tika.xml`` is as follows: +Up to 15.8, the bundled ``tika.xml`` excluded ``org.apache.tika.parser.ocr.TesseractOCRParser``, so OCR stayed off even with ``crawler.document.ocr.enabled=true``. +The ``tika.xml`` of 15.9 no longer excluded it. +15.10 uses Apache Tika 4, which has no XML configuration file. |Fess| no longer ships ``tika.xml`` and does not read it. OCR is enabled by ``crawler.document.ocr.enabled``. It also stays off if the Tesseract properties file of the crawl configuration sets ``skipOcr=true``, if there is no ``tesseract`` command, or if the OCR settings are invalid. -- ZIP package: ``app/WEB-INF/conf/tika.xml`` -- RPM/DEB package: ``/etc/fess/tika.xml`` +For a ``tika.xml`` left from an earlier version and for the properties file of a crawl configuration, see :ref:`upgrade-1510-tika`. Verifying OCR ============= @@ -199,5 +196,4 @@ If the image does not appear, check the following: - ``tesseract --list-langs`` lists the language you use - ``crawler.document.ocr.enabled`` is ``true`` -- ``tika.xml`` does not still exclude ``TesseractOCRParser`` - ``fess-crawler.log`` of the crawl shows ``OCR is enabled`` (a ``Tesseract OCR is not available`` warning means that |Fess| cannot use Tesseract) diff --git a/en/15.10/config/properties.rst b/en/15.10/config/properties.rst index 2a262fdff..96808776a 100644 --- a/en/15.10/config/properties.rst +++ b/en/15.10/config/properties.rst @@ -507,7 +507,7 @@ Index - ``cpu`` * - crawler.metadata.content.excludes - Metadata fields to exclude from document content. - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - Mapping for document metadata names. - | ``title=title:string`` diff --git a/en/15.10/install/upgrade.rst b/en/15.10/install/upgrade.rst index 039fef57a..e943768fb 100644 --- a/en/15.10/install/upgrade.rst +++ b/en/15.10/install/upgrade.rst @@ -557,6 +557,63 @@ For major version upgrades, it is recommended to recreate the index. Re-indexing rebuilds the index with the new mapping, so it fails on an OpenSearch without the k-NN plugin. Review the notes in Step 4. +Upgrading from 15.9 to 15.10 +============================ + +The changes in this section apply to every upgrade to 15.10. If you are upgrading from 15.8 or earlier, also read the section "Upgrading from 15.8 to 15.10" that follows. + +.. _upgrade-1510-tika: + +Apache Tika 4 and ``tika.xml`` +------------------------------ + +15.9.0 used Apache Tika 3.3.2; 15.10 uses Apache Tika 4.1.0. +Tika 4 has no XML configuration file, so |Fess| 15.10 builds the Tika parser in code and no longer reads ``tika.xml``. +The ZIP and RPM/DEB packages and the Docker images of 15.10 do not contain the file. + +Settings you made in ``tika.xml``, such as ``parser-exclude``, are no longer applied: a parser you excluded there runs again. +If a ``tika.xml`` from an earlier version is in the configuration directory, |Fess| ignores it and writes a warning to ``fess.log`` at startup. Delete the file. + +- ZIP package: ``app/WEB-INF/conf/tika.xml`` +- RPM/DEB package: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +Metadata Names +-------------- + +Tika 4 renamed many metadata names. For example, ``pdf:charsPerPage`` is now ``pdf:chars-per-page``, ``access_permission:*`` is now ``access-permission:*``, and ``Message:*`` is now ``message:*``. +|Fess| converts the names that Tika's ``LegacyKeyMigrationFilter`` knows back to the Tika 3 names, so an entry of ``crawler.metadata.name.mapping`` that uses one of those names keeps working. +A name that the filter does not convert is passed on with its Tika 4 name. For example, ``protected`` of an Excel file is now ``msoffice:excel:protected-worksheet``. If an entry of ``crawler.metadata.name.mapping`` uses such a name, change it to the Tika 4 name. + +Metadata that Tika 4 newly adds is handled like any other metadata: it is added to the content unless ``crawler.metadata.content.excludes`` matches its name. + +The exception is the names that start with ``tk:``, ``X-TIKA:`` or ``zip:``, which Tika uses for its own bookkeeping (``X-TIKA:Parsed-By`` of Tika 3 is now ``tk:parsed-by``). |Fess| removes them before they reach the document. They are not restored to the Tika 3 names, and they are not added to the content, whether or not ``crawler.metadata.content.excludes`` lists them. If you map ``X-TIKA:*`` or ``tk:*`` names in ``crawler.metadata.name.mapping`` or use them in a script, you no longer get these values. + +Tesseract and PDF Properties Files of a Crawl Configuration +----------------------------------------------------------- + +If a crawl configuration sets ``config.tika.tesseract.config`` or ``config.tika.pdf.config``, check the properties files, because Tika 4 renamed or removed some properties. +For each key that it cannot apply, |Fess| writes a warning to ``fess-crawler.log`` and ignores the key. + +- ``timeoutSeconds`` of the Tesseract file is now ``timeoutMillis``. |Fess| converts ``timeoutSeconds`` into ``timeoutMillis`` (the value multiplied by 1000), but write ``timeoutMillis`` in milliseconds from now on. ``crawler.document.ocr.timeout`` is still in seconds. +- Properties of the PDF file such as ``ocrStrategy``, ``ocrDPI``, ``ocrImageType``, ``ocrImageFormatName``, ``ocrImageQuality``, ``ocrRenderingStrategy``, ``accessChecker`` and ``renderer`` were removed from the ``PDFParserConfig`` of Tika 4. |Fess| ignores them and writes a warning to ``fess-crawler.log``. OCR of PDFs then follows the default of Tika 4: automatic, that is, pages with little text are OCR'd when ``tesseract`` is available and OCR is enabled in |Fess|. +- The location of ``tesseract`` can no longer be set in ``tika.xml``, and ``tesseractPath``, ``tessdataPath`` and ``imageMagickPath`` in the Tesseract file have no effect. ``tesseract`` (and ImageMagick, if you use it) must be found on the ``PATH`` of the crawler process. + +Character Encoding Detection +---------------------------- + +The character set names that Tika 4 reports for text files can differ from 15.9. For example, Shift_JIS is reported as ``windows-31j``, ISO-8859-1 as ``windows-1252``, and EUC-JP as ``x-eucJP-Open``. + +Changes for Plugin Developers +----------------------------- + +The following changes affect plugins that use classes of ``fess-crawler``. Rebuild such a plugin against 15.10 (see :ref:`upgrade-plugin-versions`). + +- ``ExtractData`` no longer implements the Tika interfaces (``TikaCoreProperties``, ``HttpHeaders`` and so on). ``ExtractData`` itself declares the string constants ``CONTENT_TYPE`` and ``CONTENT_ENCODING``. ``RESOURCE_NAME_KEY`` is still ``"resourceName"``. +- ``TikaExtractor.setTikaConfig`` and the ``tikaConfig`` component of ``fess.xml`` were removed. +- At the ``debug`` log level, ``CrawlJob`` no longer passes ``-Dorg.apache.tika.service.error.warn=true`` to the crawler, because Tika 4 does not read it. + Upgrading from 15.8 to 15.10 =========================== diff --git a/es/15.10/config/admin-index-backup.rst b/es/15.10/config/admin-index-backup.rst index e842fbe78..17508a0c3 100644 --- a/es/15.10/config/admin-index-backup.rst +++ b/es/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ Archivos a Respaldar - Imágenes de miniaturas (según sea necesario) .. note:: - En la versión de paquete RPM/DEB, el directorio ``/etc/fess/`` contiene, además de ``fess_config.properties``, otros archivos de configuración como ``fess_env_crawler.properties`` y otros archivos ``fess_env_*.properties``, así como ``tika.xml``. Se recomienda respaldar el directorio ``/etc/fess/`` completo. El archivo ``system.properties`` se crea y actualiza como ``/etc/fess/system.properties`` cuando se guarda la configuración en "Sistema > General" de la pantalla de administración. + En la versión de paquete RPM/DEB, el directorio ``/etc/fess/`` contiene, además de ``fess_config.properties``, otros archivos de configuración como ``fess_env_crawler.properties`` y otros archivos ``fess_env_*.properties``. Se recomienda respaldar el directorio ``/etc/fess/`` completo. El archivo ``system.properties`` se crea y actualiza como ``/etc/fess/system.properties`` cuando se guarda la configuración en "Sistema > General" de la pantalla de administración. Ejemplo de Respaldo de Archivos de Configuración -------------------------------------------------- diff --git a/es/15.10/config/crawler-advanced.rst b/es/15.10/config/crawler-advanced.rst index 740b29bc1..89dc8ccf3 100644 --- a/es/15.10/config/crawler-advanced.rst +++ b/es/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ Ejemplo de Configuración :: # Metadatos a excluir - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # Mapeo de nombres de metadatos crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ Ejemplo de Configuración Title=title:string\n\ dc:title=title:string +Los nombres de metadatos que empiezan por ``tk:``, ``X-TIKA:`` o ``zip:`` los elimina |Fess| antes de que lleguen al documento, figuren o no en ``crawler.metadata.content.excludes``. Por tanto, no se pueden usar en ``crawler.metadata.name.mapping`` ni en scripts. Tika 4 también cambió el nombre de muchos otros metadatos; para su efecto en ``crawler.metadata.name.mapping``, consulte :ref:`upgrade-1510-tika-metadata`. + Configuración del Rastreador HTML ================================== diff --git a/es/15.10/config/crawler-ocr.rst b/es/15.10/config/crawler-ocr.rst index 1c7ade460..ebdc19e52 100644 --- a/es/15.10/config/crawler-ocr.rst +++ b/es/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Instalación de Tesseract Instale Tesseract en el host donde se ejecuta |Fess|. Para reconocer texto en japonés, también necesita los datos de entrenamiento en japonés (traineddata). +El comando ``tesseract`` (e ImageMagick, si lo usa) debe encontrarse en el ``PATH`` del proceso del rastreador de |Fess|. La ruta de ``tesseract`` ya no se puede definir en ``tika.xml``, porque |Fess| 15.10 no lee ese archivo. + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Coloque el archivo en el directorio de configuración de |Fess|, que está en el - Paquete RPM/DEB: ``/etc/fess/`` En ``tesseract.properties``, escriba propiedades de ``TesseractOCRConfig`` de Tika. -Solo se aplican de forma fiable las claves simples, como ``language`` y ``timeoutSeconds``. +Solo se aplican de forma fiable las claves simples, como ``language`` y ``timeoutMillis``. :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` se expresa en milisegundos (el ajuste global ``crawler.document.ocr.timeout`` se expresa en segundos). +|Fess| convierte la clave ``timeoutSeconds`` de Tika 3 en ``timeoutMillis`` (el valor multiplicado por 1000) y escribe una advertencia en ``fess-crawler.log``. +Una clave que ``TesseractOCRConfig`` no puede establecer se ignora, con una advertencia en el mismo registro. +``tesseractPath``, ``tessdataPath`` y ``imageMagickPath`` no tienen efecto en este archivo. Para esa configuración de rastreo, esto tiene prioridad sobre los ajustes globales descritos arriba. @@ -172,21 +179,11 @@ Notas operativas Notas de actualización ====================== -Hasta la versión 15.8, el ``tika.xml`` incluido excluía ``org.apache.tika.parser.ocr.TesseractOCRParser``. -Desde la versión 15.10, el ``tika.xml`` incluido ya no excluye este analizador. - -Si conservó un ``tika.xml`` personalizado, elimine la siguiente línea: - -:: - - - -Si esta línea permanece, el OCR sigue desactivado aunque establezca ``crawler.document.ocr.enabled=true``. - -La ubicación de ``tika.xml`` es la siguiente: +Hasta la versión 15.8, el ``tika.xml`` incluido excluía ``org.apache.tika.parser.ocr.TesseractOCRParser``, por lo que el OCR seguía desactivado incluso con ``crawler.document.ocr.enabled=true``. +El ``tika.xml`` de la versión 15.9 ya no excluía este analizador. +La versión 15.10 usa Apache Tika 4, que no tiene archivo de configuración XML. |Fess| ya no incluye ``tika.xml`` ni lo lee. El OCR se activa con ``crawler.document.ocr.enabled``. También permanece desactivado si el archivo de propiedades de Tesseract de la configuración de rastreo define ``skipOcr=true``, si no existe el comando ``tesseract`` o si los ajustes de OCR no son válidos. -- Paquete ZIP: ``app/WEB-INF/conf/tika.xml`` -- Paquete RPM/DEB: ``/etc/fess/tika.xml`` +Para un ``tika.xml`` que quedó de una versión anterior y para el archivo de propiedades de una configuración de rastreo, consulte :ref:`upgrade-1510-tika`. Verificación del OCR ==================== @@ -199,5 +196,4 @@ Si la imagen no aparece, compruebe lo siguiente: - ``tesseract --list-langs`` muestra el idioma que usa - ``crawler.document.ocr.enabled`` es ``true`` -- ``tika.xml`` ya no excluye ``TesseractOCRParser`` - El ``fess-crawler.log`` del rastreo muestra ``OCR is enabled`` (la advertencia ``Tesseract OCR is not available`` indica que |Fess| no puede usar Tesseract) diff --git a/es/15.10/config/properties.rst b/es/15.10/config/properties.rst index d7fd0e5e1..76c75c665 100644 --- a/es/15.10/config/properties.rst +++ b/es/15.10/config/properties.rst @@ -507,7 +507,7 @@ Límite de tasa - ``cpu`` * - crawler.metadata.content.excludes - Campos de metadatos que se excluyen del contenido del documento. - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - Mapeo de los nombres de metadatos del documento. - | ``title=title:string`` diff --git a/es/15.10/install/upgrade.rst b/es/15.10/install/upgrade.rst index cac3fde6c..e467c5f3e 100644 --- a/es/15.10/install/upgrade.rst +++ b/es/15.10/install/upgrade.rst @@ -568,6 +568,63 @@ Para actualizaciones de versión principal, se recomienda recrear el índice. Dado que la reindexación reconstruye el índice con el nuevo mapeo, fallará en un OpenSearch sin el plugin k-NN. Consulte las notas del Paso 4. +Actualización de 15.9 a 15.10 +============================= + +Los cambios de esta sección afectan a toda actualización a la versión 15.10. Si actualiza desde la versión 15.8 o anterior, lea también a continuación la sección "Actualización de 15.8 a 15.10". + +.. _upgrade-1510-tika: + +Apache Tika 4 y ``tika.xml`` +---------------------------- + +La versión 15.9.0 usaba Apache Tika 3.3.2; la versión 15.10 usa Apache Tika 4.1.0. +Tika 4 no tiene archivo de configuración XML, por lo que |Fess| 15.10 construye el analizador de Tika en el código y ya no lee ``tika.xml``. +Los paquetes ZIP y RPM/DEB y las imágenes de Docker de la versión 15.10 no contienen este archivo. + +Los ajustes que hizo en ``tika.xml``, como ``parser-exclude``, ya no se aplican: un analizador que excluyó allí vuelve a ejecutarse. +Si en el directorio de configuración queda un ``tika.xml`` de una versión anterior, |Fess| lo ignora y escribe una advertencia en ``fess.log`` al iniciarse. Elimine el archivo. + +- Paquete ZIP: ``app/WEB-INF/conf/tika.xml`` +- Paquete RPM/DEB: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +Nombres de metadatos +-------------------- + +Tika 4 cambió el nombre de muchos metadatos. Por ejemplo, ``pdf:charsPerPage`` es ahora ``pdf:chars-per-page``, ``access_permission:*`` es ahora ``access-permission:*`` y ``Message:*`` es ahora ``message:*``. +|Fess| devuelve a los nombres de Tika 3 los nombres que conoce el ``LegacyKeyMigrationFilter`` de Tika, de modo que una entrada de ``crawler.metadata.name.mapping`` que use uno de esos nombres sigue funcionando. +Un nombre que el filtro no convierte se transmite con su nombre de Tika 4. Por ejemplo, ``protected`` de un archivo Excel es ahora ``msoffice:excel:protected-worksheet``. Si una entrada de ``crawler.metadata.name.mapping`` usa un nombre así, cámbielo por el nombre de Tika 4. + +Los metadatos que Tika 4 añade se tratan como los demás: se añaden al contenido salvo que ``crawler.metadata.content.excludes`` coincida con su nombre. + +La excepción son los nombres que empiezan por ``tk:``, ``X-TIKA:`` o ``zip:``, que Tika usa para su gestión interna (``X-TIKA:Parsed-By`` de Tika 3 es ahora ``tk:parsed-by``). |Fess| los elimina antes de que lleguen al documento. No se restablecen a los nombres de Tika 3 y no se añaden al contenido, figuren o no en ``crawler.metadata.content.excludes``. Si asigna nombres ``X-TIKA:*`` o ``tk:*`` en ``crawler.metadata.name.mapping`` o los usa en un script, ya no obtendrá esos valores. + +Archivos de propiedades de Tesseract y PDF de una configuración de rastreo +-------------------------------------------------------------------------- + +Si una configuración de rastreo define ``config.tika.tesseract.config`` o ``config.tika.pdf.config``, revise los archivos de propiedades, porque Tika 4 cambió el nombre de algunas propiedades o las eliminó. +Por cada clave que no puede aplicar, |Fess| escribe una advertencia en ``fess-crawler.log`` e ignora la clave. + +- ``timeoutSeconds`` del archivo de Tesseract pasó a ser ``timeoutMillis``. |Fess| convierte ``timeoutSeconds`` en ``timeoutMillis`` (el valor multiplicado por 1000), pero a partir de ahora escriba ``timeoutMillis`` en milisegundos. ``crawler.document.ocr.timeout`` sigue expresándose en segundos. +- Propiedades del archivo PDF como ``ocrStrategy``, ``ocrDPI``, ``ocrImageType``, ``ocrImageFormatName``, ``ocrImageQuality``, ``ocrRenderingStrategy``, ``accessChecker`` y ``renderer`` se eliminaron de ``PDFParserConfig`` de Tika 4. |Fess| las ignora y escribe una advertencia en ``fess-crawler.log``. El OCR de los PDF sigue entonces el comportamiento predeterminado de Tika 4: automático, es decir, las páginas con poco texto pasan por el OCR cuando ``tesseract`` está disponible y el OCR está activado en |Fess|. +- La ubicación de ``tesseract`` ya no se puede definir en ``tika.xml``, y ``tesseractPath``, ``tessdataPath`` y ``imageMagickPath`` no tienen efecto en el archivo de Tesseract. El comando ``tesseract`` (e ImageMagick, si lo usa) debe encontrarse en el ``PATH`` del proceso del rastreador. + +Detección de la codificación de caracteres +------------------------------------------ + +Los nombres de codificación de caracteres que Tika 4 informa para los archivos de texto pueden diferir de los de la versión 15.9. Por ejemplo, Shift_JIS se informa como ``windows-31j``, ISO-8859-1 como ``windows-1252`` y EUC-JP como ``x-eucJP-Open``. + +Cambios para desarrolladores de plugins +--------------------------------------- + +Los cambios siguientes afectan a los plugins que usan clases de ``fess-crawler``. Recompile un plugin así para la versión 15.10 (consulte :ref:`upgrade-plugin-versions`). + +- ``ExtractData`` ya no implementa las interfaces de Tika (``TikaCoreProperties``, ``HttpHeaders``, etc.). Las constantes de tipo cadena ``CONTENT_TYPE`` y ``CONTENT_ENCODING`` las declara ahora ``ExtractData``. ``RESOURCE_NAME_KEY`` sigue siendo ``"resourceName"``. +- Se eliminaron ``TikaExtractor.setTikaConfig`` y el componente ``tikaConfig`` de ``fess.xml``. +- Con el nivel de registro ``debug``, ``CrawlJob`` ya no pasa ``-Dorg.apache.tika.service.error.warn=true`` al rastreador, porque Tika 4 no lee esa propiedad. + Actualización de 15.8 a 15.10 ============================ diff --git a/fr/15.10/config/admin-index-backup.rst b/fr/15.10/config/admin-index-backup.rst index 0ebfed5d9..8d8a3c4cb 100644 --- a/fr/15.10/config/admin-index-backup.rst +++ b/fr/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ Fichiers à sauvegarder - Images miniatures (si nécessaire) .. note:: - Pour la version paquet RPM/DEB, le répertoire ``/etc/fess/`` contient, en plus de ``fess_config.properties``, des fichiers de configuration tels que ``fess_env_crawler.properties`` et d'autres fichiers ``fess_env_*.properties``, ainsi que ``tika.xml``. Il est recommandé de sauvegarder l'intégralité du répertoire ``/etc/fess/``. Le fichier ``system.properties`` est créé ou mis à jour sous ``/etc/fess/system.properties`` lorsque vous enregistrez les paramètres depuis la section « Système > Général » de l'interface d'administration. + Pour la version paquet RPM/DEB, le répertoire ``/etc/fess/`` contient, en plus de ``fess_config.properties``, des fichiers de configuration tels que ``fess_env_crawler.properties`` et d'autres fichiers ``fess_env_*.properties``. Il est recommandé de sauvegarder l'intégralité du répertoire ``/etc/fess/``. Le fichier ``system.properties`` est créé ou mis à jour sous ``/etc/fess/system.properties`` lorsque vous enregistrez les paramètres depuis la section « Système > Général » de l'interface d'administration. Exemple de sauvegarde des fichiers de configuration ----------------------------------------------------- diff --git a/fr/15.10/config/crawler-advanced.rst b/fr/15.10/config/crawler-advanced.rst index 5adfd68ae..5129cf4ef 100644 --- a/fr/15.10/config/crawler-advanced.rst +++ b/fr/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ Exemple de configuration :: # Métadonnées à exclure - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # Mappage des noms de métadonnées crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ Exemple de configuration Title=title:string\n\ dc:title=title:string +Les noms de métadonnées qui commencent par ``tk:``, ``X-TIKA:`` ou ``zip:`` sont supprimés par |Fess| avant d'atteindre le document, qu'ils figurent ou non dans ``crawler.metadata.content.excludes``. Ils ne peuvent donc pas être utilisés dans ``crawler.metadata.name.mapping`` ni dans des scripts. Tika 4 a aussi renommé de nombreux autres noms de métadonnées ; pour l'effet sur ``crawler.metadata.name.mapping``, consultez :ref:`upgrade-1510-tika-metadata`. + Configuration du robot d'indexation HTML ======================================== diff --git a/fr/15.10/config/crawler-ocr.rst b/fr/15.10/config/crawler-ocr.rst index f0deaf1aa..c04fc92ba 100644 --- a/fr/15.10/config/crawler-ocr.rst +++ b/fr/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Installation de Tesseract Installez Tesseract sur l'hôte où s'exécute |Fess|. Pour reconnaître le texte japonais, vous avez aussi besoin des données d'entraînement japonaises (traineddata). +La commande ``tesseract`` (et ImageMagick, si vous l'utilisez) doit être trouvée dans le ``PATH`` du processus du crawler de |Fess|. Le chemin de ``tesseract`` ne peut plus être défini dans ``tika.xml``, car |Fess| 15.10 ne lit pas ce fichier. + Debian / Ubuntu :: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Placez le fichier dans le répertoire de configuration de |Fess|, qui se trouve - Paquet RPM/DEB : ``/etc/fess/`` Dans ``tesseract.properties``, écrivez des propriétés de ``TesseractOCRConfig`` de Tika. -Seules les clés simples, telles que ``language`` et ``timeoutSeconds``, sont appliquées de manière fiable. +Seules les clés simples, telles que ``language`` et ``timeoutMillis``, sont appliquées de manière fiable. :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` est exprimé en millisecondes (le paramètre global ``crawler.document.ocr.timeout`` est exprimé en secondes). +|Fess| convertit la clé ``timeoutSeconds`` de Tika 3 en ``timeoutMillis`` (valeur multipliée par 1000) et écrit un avertissement dans ``fess-crawler.log``. +Une clé que ``TesseractOCRConfig`` ne peut pas définir est ignorée, avec un avertissement dans le même journal. +``tesseractPath``, ``tessdataPath`` et ``imageMagickPath`` n'ont aucun effet dans ce fichier. Pour cette configuration de crawl, ces valeurs ont priorité sur les paramètres globaux décrits ci-dessus. @@ -172,21 +179,11 @@ Remarques d'exploitation Remarques sur la mise à niveau ============================== -Jusqu'à la version 15.8, le fichier ``tika.xml`` fourni excluait ``org.apache.tika.parser.ocr.TesseractOCRParser``. -Depuis la version 15.10, le fichier ``tika.xml`` fourni n'exclut plus cet analyseur. - -Si vous avez conservé un fichier ``tika.xml`` personnalisé, supprimez la ligne suivante : - -:: - - - -Si cette ligne reste en place, l'OCR reste désactivé même avec ``crawler.document.ocr.enabled=true``. - -L'emplacement de ``tika.xml`` est le suivant : +Jusqu'à la version 15.8, le fichier ``tika.xml`` fourni excluait ``org.apache.tika.parser.ocr.TesseractOCRParser``, si bien que l'OCR restait désactivé même avec ``crawler.document.ocr.enabled=true``. +Le fichier ``tika.xml`` de la version 15.9 n'excluait plus cet analyseur. +La version 15.10 utilise Apache Tika 4, qui n'a pas de fichier de configuration XML. |Fess| ne fournit plus ``tika.xml`` et ne le lit pas. L'OCR est activé par ``crawler.document.ocr.enabled``. Il reste aussi désactivé si le fichier de propriétés Tesseract de la configuration de crawl définit ``skipOcr=true``, si la commande ``tesseract`` est absente ou si les paramètres OCR sont invalides. -- Paquet ZIP : ``app/WEB-INF/conf/tika.xml`` -- Paquet RPM/DEB : ``/etc/fess/tika.xml`` +Pour un fichier ``tika.xml`` resté d'une version antérieure et pour le fichier de propriétés d'une configuration de crawl, consultez :ref:`upgrade-1510-tika`. Vérification de l'OCR ===================== @@ -199,5 +196,4 @@ Si l'image n'apparaît pas, vérifiez les points suivants : - ``tesseract --list-langs`` affiche la langue utilisée - ``crawler.document.ocr.enabled`` vaut ``true`` -- ``tika.xml`` n'exclut plus ``TesseractOCRParser`` - Le ``fess-crawler.log`` du crawl affiche ``OCR is enabled`` (l'avertissement ``Tesseract OCR is not available`` signifie que |Fess| ne peut pas utiliser Tesseract) diff --git a/fr/15.10/config/properties.rst b/fr/15.10/config/properties.rst index 3997496a4..e3b37d514 100644 --- a/fr/15.10/config/properties.rst +++ b/fr/15.10/config/properties.rst @@ -507,7 +507,7 @@ Index - ``cpu`` * - crawler.metadata.content.excludes - Champs de métadonnées à exclure du contenu du document. - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - Mappage des noms de métadonnées du document. - | ``title=title:string`` diff --git a/fr/15.10/install/upgrade.rst b/fr/15.10/install/upgrade.rst index 4d1856fb8..29a4fcd30 100644 --- a/fr/15.10/install/upgrade.rst +++ b/fr/15.10/install/upgrade.rst @@ -574,6 +574,63 @@ En cas de mise à niveau majeure, il est recommandé de recréer l'index. La réindexation recrée l'index avec le nouveau mapping ; elle échoue donc sur un OpenSearch dépourvu du plugin k-NN. Consultez les remarques de l'étape 4. +Mise à niveau de 15.9 vers 15.10 +================================ + +Les modifications de cette section concernent toute mise à niveau vers 15.10. Si vous venez de la version 15.8 ou d'une version antérieure, lisez aussi la section « Mise à niveau de 15.8 vers 15.10 » qui suit. + +.. _upgrade-1510-tika: + +Apache Tika 4 et ``tika.xml`` +----------------------------- + +La version 15.9.0 utilisait Apache Tika 3.3.2 ; la version 15.10 utilise Apache Tika 4.1.0. +Tika 4 n'a pas de fichier de configuration XML : |Fess| 15.10 construit donc l'analyseur Tika dans le code et ne lit plus ``tika.xml``. +Les paquets ZIP et RPM/DEB ainsi que les images Docker de la version 15.10 ne contiennent pas ce fichier. + +Les paramètres que vous aviez saisis dans ``tika.xml``, tels que ``parser-exclude``, ne sont plus appliqués : un analyseur que vous y aviez exclu s'exécute de nouveau. +Si un fichier ``tika.xml`` d'une version antérieure se trouve dans le répertoire de configuration, |Fess| l'ignore et écrit un avertissement dans ``fess.log`` au démarrage. Supprimez ce fichier. + +- Paquet ZIP : ``app/WEB-INF/conf/tika.xml`` +- Paquet RPM/DEB : ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +Noms de métadonnées +------------------- + +Tika 4 a renommé de nombreux noms de métadonnées. Par exemple, ``pdf:charsPerPage`` devient ``pdf:chars-per-page``, ``access_permission:*`` devient ``access-permission:*`` et ``Message:*`` devient ``message:*``. +|Fess| rétablit les noms de Tika 3 pour les noms que le ``LegacyKeyMigrationFilter`` de Tika connaît ; une entrée de ``crawler.metadata.name.mapping`` qui utilise l'un de ces noms continue donc de fonctionner. +Un nom que le filtre ne convertit pas est transmis sous son nom Tika 4. Par exemple, ``protected`` d'un fichier Excel devient ``msoffice:excel:protected-worksheet``. Si une entrée de ``crawler.metadata.name.mapping`` utilise un tel nom, remplacez-le par le nom de Tika 4. + +Les métadonnées que Tika 4 ajoute sont traitées comme les autres : elles sont ajoutées au contenu, sauf si ``crawler.metadata.content.excludes`` correspond à leur nom. + +L'exception concerne les noms qui commencent par ``tk:``, ``X-TIKA:`` ou ``zip:``, que Tika utilise pour sa gestion interne (``X-TIKA:Parsed-By`` de Tika 3 devient ``tk:parsed-by``). |Fess| les supprime avant qu'ils n'atteignent le document. Ils ne sont pas rétablis sous les noms de Tika 3 et ne sont pas ajoutés au contenu, qu'ils figurent ou non dans ``crawler.metadata.content.excludes``. Si vous associez des noms ``X-TIKA:*`` ou ``tk:*`` dans ``crawler.metadata.name.mapping`` ou les utilisez dans un script, vous n'obtenez plus ces valeurs. + +Fichiers de propriétés Tesseract et PDF d'une configuration de crawl +-------------------------------------------------------------------- + +Si une configuration de crawl définit ``config.tika.tesseract.config`` ou ``config.tika.pdf.config``, vérifiez les fichiers de propriétés, car Tika 4 a renommé ou supprimé certaines propriétés. +Pour chaque clé qu'il ne peut pas appliquer, |Fess| écrit un avertissement dans ``fess-crawler.log`` et ignore la clé. + +- ``timeoutSeconds`` du fichier Tesseract devient ``timeoutMillis``. |Fess| convertit ``timeoutSeconds`` en ``timeoutMillis`` (valeur multipliée par 1000), mais écrivez désormais ``timeoutMillis`` en millisecondes. ``crawler.document.ocr.timeout`` reste exprimé en secondes. +- Des propriétés du fichier PDF, telles que ``ocrStrategy``, ``ocrDPI``, ``ocrImageType``, ``ocrImageFormatName``, ``ocrImageQuality``, ``ocrRenderingStrategy``, ``accessChecker`` et ``renderer``, ont été supprimées de ``PDFParserConfig`` de Tika 4. |Fess| les ignore et écrit un avertissement dans ``fess-crawler.log``. L'OCR des PDF suit alors le comportement par défaut de Tika 4 : automatique, c'est-à-dire que les pages contenant peu de texte passent par l'OCR lorsque ``tesseract`` est disponible et que l'OCR est activé dans |Fess|. +- L'emplacement de ``tesseract`` ne peut plus être défini dans ``tika.xml``, et ``tesseractPath``, ``tessdataPath`` et ``imageMagickPath`` n'ont aucun effet dans le fichier Tesseract. La commande ``tesseract`` (et ImageMagick, si vous l'utilisez) doit être trouvée dans le ``PATH`` du processus du crawler. + +Détection de l'encodage des caractères +-------------------------------------- + +Les noms d'encodage des caractères que Tika 4 indique pour les fichiers texte peuvent différer de ceux de la version 15.9. Par exemple, Shift_JIS est indiqué comme ``windows-31j``, ISO-8859-1 comme ``windows-1252`` et EUC-JP comme ``x-eucJP-Open``. + +Modifications pour les développeurs de plugins +---------------------------------------------- + +Les modifications suivantes concernent les plugins qui utilisent des classes de ``fess-crawler``. Recompilez un tel plugin pour la version 15.10 (voir :ref:`upgrade-plugin-versions`). + +- ``ExtractData`` n'implémente plus les interfaces de Tika (``TikaCoreProperties``, ``HttpHeaders``, etc.). Les constantes de type chaîne ``CONTENT_TYPE`` et ``CONTENT_ENCODING`` sont déclarées par ``ExtractData`` lui-même. ``RESOURCE_NAME_KEY`` vaut toujours ``"resourceName"``. +- ``TikaExtractor.setTikaConfig`` et le composant ``tikaConfig`` de ``fess.xml`` ont été supprimés. +- Au niveau de journalisation ``debug``, ``CrawlJob`` ne transmet plus ``-Dorg.apache.tika.service.error.warn=true`` au crawler, car Tika 4 ne lit plus cette propriété. + Mise à niveau de 15.8 vers 15.10 =============================== diff --git a/ja/15.10/config/admin-index-backup.rst b/ja/15.10/config/admin-index-backup.rst index 0541538f5..3bee0c0fb 100644 --- a/ja/15.10/config/admin-index-backup.rst +++ b/ja/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ OpenSearch のインデックスとは別に、以下の設定ファイルもバ - サムネイル画像(必要に応じて) .. note:: - RPM/DEB パッケージ版では、 ``/etc/fess/`` ディレクトリに ``fess_config.properties`` のほか、 ``fess_env_crawler.properties`` などの ``fess_env_*.properties`` や ``tika.xml`` といった設定ファイルも格納されています。\ ``/etc/fess/`` ディレクトリ全体をバックアップすることを推奨します。\ ``system.properties`` は、管理画面の「システム > 全般」で設定を保存した際に ``/etc/fess/system.properties`` として作成・更新されます。 + RPM/DEB パッケージ版では、 ``/etc/fess/`` ディレクトリに ``fess_config.properties`` のほか、 ``fess_env_crawler.properties`` などの ``fess_env_*.properties`` といった設定ファイルも格納されています。\ ``/etc/fess/`` ディレクトリ全体をバックアップすることを推奨します。\ ``system.properties`` は、管理画面の「システム > 全般」で設定を保存した際に ``/etc/fess/system.properties`` として作成・更新されます。 設定ファイルのバックアップ例 ---------------------------- diff --git a/ja/15.10/config/crawler-advanced.rst b/ja/15.10/config/crawler-advanced.rst index 74dd7c8fe..21e0a84d1 100644 --- a/ja/15.10/config/crawler-advanced.rst +++ b/ja/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ robots.txt 設定 :: # 除外するメタデータ - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # メタデータ名のマッピング crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ robots.txt 設定 Title=title:string\n\ dc:title=title:string +``tk:``、``X-TIKA:``、``zip:`` で始まるメタデータ名は、``crawler.metadata.content.excludes`` に指定があるかどうかにかかわらず、ドキュメントに渡される前に |Fess| によって削除されます。そのため、``crawler.metadata.name.mapping`` やスクリプトでは使用できません。Tika 4 ではほかにも多くのメタデータ名が変更されました。``crawler.metadata.name.mapping`` への影響については :ref:`upgrade-1510-tika-metadata` を参照してください。 + HTML クローラー設定 =================== diff --git a/ja/15.10/config/crawler-ocr.rst b/ja/15.10/config/crawler-ocr.rst index b8c0663cb..b60b43f99 100644 --- a/ja/15.10/config/crawler-ocr.rst +++ b/ja/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Tesseract のインストール |Fess| を実行するホストに Tesseract をインストールします。 日本語の文字を認識するには、日本語の学習データ(traineddata)も必要です。 +``tesseract`` コマンド(および使用する場合は ImageMagick)は、|Fess| のクローラープロセスの ``PATH`` から見つかる必要があります。``tesseract`` のパスは ``tika.xml`` では設定できなくなりました(|Fess| 15.10 は ``tika.xml`` を読み込みません)。 + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Docker 環境で OCR を使うには、|Fess| のイメージに Tesseract を - RPM/DEB 版: ``/etc/fess/`` ``tesseract.properties`` には、Tika の ``TesseractOCRConfig`` のプロパティを記述します。 -確実に反映されるのは ``language`` や ``timeoutSeconds`` などの単純なキーです。 +確実に反映されるのは ``language`` や ``timeoutMillis`` などの単純なキーです。 :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` の単位はミリ秒です(グローバル設定の ``crawler.document.ocr.timeout`` は秒単位です)。 +Tika 3 の ``timeoutSeconds`` キーは、|Fess| が ``timeoutMillis``\ (値を 1000 倍)に変換し、``fess-crawler.log`` に警告を出力します。 +``TesseractOCRConfig`` に設定できないキーは、同じログに警告を出力したうえで無視されます。 +``tesseractPath``、``tessdataPath``、``imageMagickPath`` は、このファイルでは効果がありません。 この指定は、このクロール設定について、上記のグローバル設定より優先されます。 @@ -172,21 +179,11 @@ Docker 環境で OCR を使うには、|Fess| のイメージに Tesseract を アップグレード時の注意 ====================== -15.8 以前の同梱の ``tika.xml`` は、``org.apache.tika.parser.ocr.TesseractOCRParser`` を除外していました。 -15.10 からは、同梱の ``tika.xml`` はこのパーサーを除外しません。 - -``tika.xml`` をカスタマイズして使い続けている場合は、次の行を削除してください。 - -:: - - - -この行が残っていると、``crawler.document.ocr.enabled=true`` を指定しても OCR は無効のままです。 - -``tika.xml`` の場所は次のとおりです。 +15.8 以前の同梱の ``tika.xml`` は ``org.apache.tika.parser.ocr.TesseractOCRParser`` を除外していたため、``crawler.document.ocr.enabled=true`` を指定しても OCR は無効のままでした。 +15.9 の ``tika.xml`` は、このパーサーを除外していません。 +15.10 は XML 形式の設定ファイルを持たない Apache Tika 4 を使用します。|Fess| は ``tika.xml`` を同梱せず、読み込みもしません。OCR は ``crawler.document.ocr.enabled`` で有効になります。クロール設定の Tesseract プロパティファイルで ``skipOcr=true`` を指定した場合、``tesseract`` コマンドがない場合、OCR の設定が不正な場合も、OCR は無効のままです。 -- ZIP 版: ``app/WEB-INF/conf/tika.xml`` -- RPM/DEB 版: ``/etc/fess/tika.xml`` +以前のバージョンから残った ``tika.xml`` や、クロール設定のプロパティファイルについては、:ref:`upgrade-1510-tika` を参照してください。 動作確認 ======== @@ -199,5 +196,4 @@ Docker 環境で OCR を使うには、|Fess| のイメージに Tesseract を - ``tesseract --list-langs`` で、使用する言語が表示される - ``crawler.document.ocr.enabled`` が ``true`` になっている -- ``tika.xml`` に ``TesseractOCRParser`` の除外が残っていない - クロール時の ``fess-crawler.log`` に ``OCR is enabled`` が出力されている(``Tesseract OCR is not available`` の警告が出る場合は、|Fess| から Tesseract を利用できていません) diff --git a/ja/15.10/config/properties.rst b/ja/15.10/config/properties.rst index 62c2f8d4c..6ed8eb1a2 100644 --- a/ja/15.10/config/properties.rst +++ b/ja/15.10/config/properties.rst @@ -507,7 +507,7 @@ one, fill in ``properties.po`` beside this file. - ``cpu`` * - crawler.metadata.content.excludes - ドキュメントのコンテンツから除外するメタデータフィールド。 - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - ドキュメントのメタデータ名のマッピング。 - | ``title=title:string`` diff --git a/ja/15.10/install/upgrade.rst b/ja/15.10/install/upgrade.rst index b974c9d1b..1b8cac799 100644 --- a/ja/15.10/install/upgrade.rst +++ b/ja/15.10/install/upgrade.rst @@ -549,6 +549,63 @@ Docker 版:: 再インデクシングでは新しいマッピングでインデックスが作り直されるため、k-NN プラグインの ない OpenSearch では失敗します。ステップ 4 の注意事項を確認してください。 +15.9 から 15.10 へのアップグレード +================================== + +このセクションの変更は、15.10 へのすべてのアップグレードに関係します。15.8 以前からアップグレードする場合は、続く「15.8 から 15.10 へのアップグレード」も読んでください。 + +.. _upgrade-1510-tika: + +Apache Tika 4 と ``tika.xml`` +----------------------------- + +15.9.0 は Apache Tika 3.3.2 を使用していましたが、15.10 は Apache Tika 4.1.0 を使用します。 +Tika 4 には XML 形式の設定ファイルがないため、|Fess| 15.10 は Tika のパーサーをコード内で構築し、``tika.xml`` を読み込みません。 +15.10 の ZIP 版、RPM/DEB 版、Docker イメージには、このファイルは含まれません。 + +``tika.xml`` に記述した ``parser-exclude`` などの設定は適用されなくなり、除外していたパーサーは再び動作します。 +以前のバージョンの ``tika.xml`` が設定ディレクトリに残っている場合、|Fess| はそのファイルを無視し、起動時に ``fess.log`` へ警告を出力します。ファイルを削除してください。 + +- ZIP 版: ``app/WEB-INF/conf/tika.xml`` +- RPM/DEB 版: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +メタデータ名 +------------ + +Tika 4 では、多くのメタデータ名が変更されました。たとえば、``pdf:charsPerPage`` は ``pdf:chars-per-page`` に、``access_permission:*`` は ``access-permission:*`` に、``Message:*`` は ``message:*`` になりました。 +Tika の ``LegacyKeyMigrationFilter`` が対応しているメタデータ名は、|Fess| が Tika 3 の名前に戻します。そのため、それらの名前を使った ``crawler.metadata.name.mapping`` の設定はそのまま動作します。 +このフィルターが変換しないメタデータ名は、Tika 4 の名前のまま渡されます。たとえば、Excel ファイルの ``protected`` は ``msoffice:excel:protected-worksheet`` になりました。このような名前を ``crawler.metadata.name.mapping`` で使っている場合は、Tika 4 の名前に変更してください。 + +Tika 4 で新たに加わったメタデータは、ほかのメタデータと同じように扱われ、``crawler.metadata.content.excludes`` に名前が一致しない限りコンテンツに追加されます。 + +例外は、Tika が内部の管理用に使う ``tk:``、``X-TIKA:``、``zip:`` で始まる名前です(Tika 3 の ``X-TIKA:Parsed-By`` は ``tk:parsed-by`` になりました)。|Fess| はこれらの名前をドキュメントに渡す前に削除します。Tika 3 の名前には戻されず、``crawler.metadata.content.excludes`` に指定があるかどうかにかかわらずコンテンツにも追加されません。``crawler.metadata.name.mapping`` で ``X-TIKA:*`` や ``tk:*`` の名前をマッピングしている場合や、スクリプトで使っている場合、これらの値は取得できなくなります。 + +クロール設定の Tesseract と PDF のプロパティファイル +---------------------------------------------------- + +クロール設定で ``config.tika.tesseract.config`` または ``config.tika.pdf.config`` を指定している場合は、Tika 4 でプロパティの名前変更や削除があったため、そのプロパティファイルを確認してください。 +適用できないキーがあると、|Fess| はキーごとに ``fess-crawler.log`` へ警告を出力し、そのキーを無視します。 + +- Tesseract のファイルの ``timeoutSeconds`` は ``timeoutMillis`` になりました。|Fess| は ``timeoutSeconds`` を ``timeoutMillis``\ (値を 1000 倍)に変換しますが、今後は ``timeoutMillis`` にミリ秒で記述してください。``crawler.document.ocr.timeout`` は引き続き秒単位です。 +- PDF のファイルの ``ocrStrategy``、``ocrDPI``、``ocrImageType``、``ocrImageFormatName``、``ocrImageQuality``、``ocrRenderingStrategy``、``accessChecker``、``renderer`` などのプロパティは、Tika 4 の ``PDFParserConfig`` から削除されました。|Fess| はこれらを無視し、``fess-crawler.log`` に警告を出力します。この場合、PDF の OCR は Tika 4 の既定の動作(自動)に従います。つまり、``tesseract`` が使用でき、|Fess| で OCR が有効なときに、テキストの少ないページに対して OCR が実行されます。 +- ``tesseract`` の場所は ``tika.xml`` では設定できなくなり、Tesseract のファイルの ``tesseractPath``、``tessdataPath``、``imageMagickPath`` も効果がありません。``tesseract``(および使用する場合は ImageMagick)は、クローラープロセスの ``PATH`` から見つかる必要があります。 + +文字エンコーディングの判定 +-------------------------- + +Tika 4 がテキストファイルについて報告する文字エンコーディング名は、15.9 と異なる場合があります。たとえば、Shift_JIS は ``windows-31j``、ISO-8859-1 は ``windows-1252``、EUC-JP は ``x-eucJP-Open`` と報告されます。 + +プラグイン開発者向けの変更 +-------------------------- + +次の変更は、``fess-crawler`` のクラスを使うプラグインに影響します。そのようなプラグインは 15.10 向けに再ビルドしてください(:ref:`upgrade-plugin-versions` を参照)。 + +- ``ExtractData`` は Tika のインターフェース(``TikaCoreProperties``、``HttpHeaders`` など)を実装しなくなりました。文字列定数 ``CONTENT_TYPE`` と ``CONTENT_ENCODING`` は ``ExtractData`` 自身が定義します。``RESOURCE_NAME_KEY`` は従来どおり ``"resourceName"`` です。 +- ``TikaExtractor.setTikaConfig`` と、``fess.xml`` の ``tikaConfig`` コンポーネントを削除しました。 +- ログレベルが ``debug`` のとき、``CrawlJob`` はクローラーに ``-Dorg.apache.tika.service.error.warn=true`` を渡さなくなりました。Tika 4 がこの値を読まないためです。 + 15.8 から 15.10 へのアップグレード ================================= diff --git a/ko/15.10/config/admin-index-backup.rst b/ko/15.10/config/admin-index-backup.rst index 20f758173..e2ea613e9 100644 --- a/ko/15.10/config/admin-index-backup.rst +++ b/ko/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ OpenSearch의 인덱스와는 별도로 다음 설정 파일도 백업하십시 - 썸네일 이미지(필요시) .. note:: - RPM/DEB 패키지 버전에서는 ``/etc/fess/`` 디렉터리에 ``fess_config.properties`` 외에도 ``fess_env_crawler.properties`` 등의 ``fess_env_*.properties`` 나 ``tika.xml`` 과 같은 설정 파일도 저장되어 있습니다. ``/etc/fess/`` 디렉터리 전체를 백업하는 것을 권장합니다. ``system.properties`` 는 관리 화면의 「시스템 > 일반」에서 설정을 저장할 때 ``/etc/fess/system.properties`` 로 생성·업데이트됩니다. + RPM/DEB 패키지 버전에서는 ``/etc/fess/`` 디렉터리에 ``fess_config.properties`` 외에도 ``fess_env_crawler.properties`` 등의 ``fess_env_*.properties`` 와 같은 설정 파일도 저장되어 있습니다. ``/etc/fess/`` 디렉터리 전체를 백업하는 것을 권장합니다. ``system.properties`` 는 관리 화면의 「시스템 > 일반」에서 설정을 저장할 때 ``/etc/fess/system.properties`` 로 생성·업데이트됩니다. 설정 파일 백업 예시 ---------------------------- diff --git a/ko/15.10/config/crawler-advanced.rst b/ko/15.10/config/crawler-advanced.rst index fda282cf3..c3f6277c3 100644 --- a/ko/15.10/config/crawler-advanced.rst +++ b/ko/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ robots.txt 설정 :: # 제외할 메타데이터 - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # 메타데이터 이름 매핑 crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ robots.txt 설정 Title=title:string\n\ dc:title=title:string +``tk:``, ``X-TIKA:``, ``zip:`` 중 하나로 시작하는 메타데이터 이름은 ``crawler.metadata.content.excludes``\ 에 지정되어 있는지와 관계없이 문서에 전달되기 전에 |Fess|\ 가 제거합니다. 따라서 ``crawler.metadata.name.mapping``\ 이나 스크립트에서 사용할 수 없습니다. Tika 4에서는 이 밖에도 많은 메타데이터 이름이 변경되었습니다. ``crawler.metadata.name.mapping``\ 에 미치는 영향은 다음을 참조하십시오: :ref:`upgrade-1510-tika-metadata` + HTML 크롤러 설정 =================== diff --git a/ko/15.10/config/crawler-ocr.rst b/ko/15.10/config/crawler-ocr.rst index 57b9b5803..0af054612 100644 --- a/ko/15.10/config/crawler-ocr.rst +++ b/ko/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ Tesseract 설치 |Fess|\ 를 실행하는 호스트에 Tesseract를 설치합니다. 일본어 문자를 인식하려면 일본어 학습 데이터(traineddata)도 필요합니다. +``tesseract`` 명령(ImageMagick을 사용하는 경우에는 ImageMagick도)은 |Fess| 크롤러 프로세스의 ``PATH``\ 에서 찾을 수 있어야 합니다. |Fess| 15.10은 ``tika.xml``\ 을 읽지 않으므로 ``tesseract``\ 의 경로를 더 이상 ``tika.xml``\ 에서 설정할 수 없습니다. + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ Docker 환경에서 OCR을 사용하려면 |Fess| 이미지에 Tesseract를 추 - RPM/DEB 버전: ``/etc/fess/`` ``tesseract.properties``\ 에는 Tika의 ``TesseractOCRConfig`` 프로퍼티를 작성합니다. -확실하게 반영되는 것은 ``language``\ 나 ``timeoutSeconds`` 같은 단순한 키입니다. +확실하게 반영되는 것은 ``language``, ``timeoutMillis`` 등의 단순한 키입니다. :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` 값의 단위는 밀리초입니다(전역 설정 ``crawler.document.ocr.timeout`` 값의 단위는 초입니다). +Tika 3의 ``timeoutSeconds`` 키는 |Fess|\ 가 ``timeoutMillis`` 키로 변환하고(값을 1000배), ``fess-crawler.log``\ 에 경고를 출력합니다. +``TesseractOCRConfig``\ 에서 설정할 수 없는 키는 같은 로그에 경고를 출력한 뒤 무시됩니다. +``tesseractPath``, ``tessdataPath``, ``imageMagickPath`` 키는 이 파일에서는 효과가 없습니다. 이 크롤링 설정에 대해서는 위의 전역 설정보다 이 지정이 우선합니다. @@ -172,21 +179,11 @@ Docker 환경에서 OCR을 사용하려면 |Fess| 이미지에 Tesseract를 추 업그레이드 시 주의 ================== -15.8 이전에 포함된 ``tika.xml``\ 은 ``org.apache.tika.parser.ocr.TesseractOCRParser``\ 를 제외하고 있었습니다. -15.10부터는 포함된 ``tika.xml``\ 이 이 파서를 제외하지 않습니다. - -``tika.xml``\ 을 커스터마이즈하여 계속 사용하고 있는 경우, 다음 행을 삭제하십시오. - -:: - - - -이 행이 남아 있으면 ``crawler.document.ocr.enabled=true``\ 를 지정해도 OCR은 비활성화된 상태로 유지됩니다. - -``tika.xml``\ 의 위치는 다음과 같습니다. +15.8 이전에 포함된 ``tika.xml``\ 은 ``org.apache.tika.parser.ocr.TesseractOCRParser``\ 를 제외하고 있었으므로, ``crawler.document.ocr.enabled=true``\ 를 지정해도 OCR은 비활성 상태였습니다. +15.9의 ``tika.xml``\ 은 이 파서를 제외하지 않았습니다. +15.10은 XML 설정 파일이 없는 Apache Tika 4를 사용합니다. |Fess|\ 는 ``tika.xml``\ 을 포함하지 않으며 읽지도 않습니다. OCR은 ``crawler.document.ocr.enabled``\ 로 활성화됩니다. 크롤링 설정의 Tesseract 프로퍼티 파일에서 ``skipOcr=true``\ 를 지정한 경우, ``tesseract`` 명령이 없는 경우, OCR 설정이 올바르지 않은 경우에도 OCR은 비활성 상태로 남습니다. -- ZIP 버전: ``app/WEB-INF/conf/tika.xml`` -- RPM/DEB 버전: ``/etc/fess/tika.xml`` +이전 버전에서 남은 ``tika.xml`` 파일과 크롤링 설정의 프로퍼티 파일에 대해서는 다음을 참조하십시오: :ref:`upgrade-1510-tika` 동작 확인 ========= @@ -199,5 +196,4 @@ Docker 환경에서 OCR을 사용하려면 |Fess| 이미지에 Tesseract를 추 - ``tesseract --list-langs``\ 에 사용하는 언어가 표시됨 - ``crawler.document.ocr.enabled``\ 가 ``true``\ 로 되어 있음 -- ``tika.xml``\ 에 ``TesseractOCRParser`` 제외가 남아 있지 않음 - 크롤링 시 ``fess-crawler.log``\ 에 ``OCR is enabled``\ 가 출력됨(``Tesseract OCR is not available`` 경고가 출력되면 |Fess|\ 에서 Tesseract를 사용할 수 없는 상태입니다) diff --git a/ko/15.10/config/properties.rst b/ko/15.10/config/properties.rst index 15d8631c2..5d595f15a 100644 --- a/ko/15.10/config/properties.rst +++ b/ko/15.10/config/properties.rst @@ -507,7 +507,7 @@ one, fill in ``properties.po`` beside this file. - ``cpu`` * - crawler.metadata.content.excludes - 문서 콘텐츠에서 제외할 메타데이터 필드. - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - 문서 메타데이터 이름의 매핑. - | ``title=title:string`` diff --git a/ko/15.10/install/upgrade.rst b/ko/15.10/install/upgrade.rst index 33e5a4199..287f0e111 100644 --- a/ko/15.10/install/upgrade.rst +++ b/ko/15.10/install/upgrade.rst @@ -547,6 +547,63 @@ Docker 버전:: 재인덱싱에서는 새로운 매핑으로 인덱스가 다시 생성되므로, k-NN 플러그인이 없는 OpenSearch에서는 실패합니다. 단계 4의 주의사항을 확인하십시오. +15.9에서 15.10으로 업그레이드 +============================= + +이 절의 변경 사항은 15.10으로의 모든 업그레이드에 해당합니다. 15.8 이전 버전에서 업그레이드하는 경우에는 이어지는 「15.8에서 15.10로 업그레이드」도 읽으십시오. + +.. _upgrade-1510-tika: + +Apache Tika 4와 ``tika.xml`` +---------------------------- + +15.9.0은 Apache Tika 3.3.2를, 15.10은 Apache Tika 4.1.0을 사용합니다. +Tika 4에는 XML 설정 파일이 없으므로 |Fess| 15.10은 Tika 파서를 코드에서 구성하며 ``tika.xml``\ 을 읽지 않습니다. +15.10의 ZIP 버전, RPM/DEB 버전, Docker 이미지에는 이 파일이 포함되어 있지 않습니다. + +``tika.xml``\ 에 작성한 ``parser-exclude`` 등의 설정은 더 이상 적용되지 않으며, 그곳에서 제외했던 파서도 다시 동작합니다. +이전 버전의 ``tika.xml``\ 이 설정 디렉터리에 남아 있으면 |Fess|\ 는 이 파일을 무시하고 시작할 때 ``fess.log``\ 에 경고를 출력합니다. 파일을 삭제하십시오. + +- ZIP 버전: ``app/WEB-INF/conf/tika.xml`` +- RPM/DEB 버전: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +메타데이터 이름 +--------------- + +Tika 4에서 많은 메타데이터 이름이 변경되었습니다. 예를 들면 다음과 같습니다: ``pdf:charsPerPage`` → ``pdf:chars-per-page``, ``access_permission:*`` → ``access-permission:*``, ``Message:*`` → ``message:*``. +Tika의 ``LegacyKeyMigrationFilter`` 가 인식하는 이름은 |Fess|\ 가 Tika 3의 이름으로 되돌리므로, 해당 이름을 사용하는 ``crawler.metadata.name.mapping`` 항목은 그대로 동작합니다. +이 필터가 변환하지 않는 이름은 Tika 4의 이름 그대로 전달됩니다. 예를 들어 Excel 파일의 ``protected`` 이름은 이제 ``msoffice:excel:protected-worksheet`` 입니다. ``crawler.metadata.name.mapping``\ 에서 이러한 이름을 사용하고 있다면 Tika 4의 이름으로 변경하십시오. + +Tika 4에서 새로 추가된 메타데이터는 다른 메타데이터와 똑같이 처리되어, 이름이 ``crawler.metadata.content.excludes``\ 와 일치하지 않는 한 콘텐츠에 추가됩니다. + +예외는 Tika가 내부 관리용으로 사용하는 이름, 즉 ``tk:``, ``X-TIKA:``, ``zip:`` 중 하나로 시작하는 이름입니다(Tika 3의 ``X-TIKA:Parsed-By``\ 는 이제 ``tk:parsed-by``\ 입니다). |Fess|\ 는 이러한 이름을 문서에 전달하기 전에 제거합니다. 이 이름들은 Tika 3의 이름으로 복원되지 않으며, ``crawler.metadata.content.excludes``\ 에 지정되어 있는지와 관계없이 콘텐츠에도 추가되지 않습니다. ``crawler.metadata.name.mapping``\ 에서 ``X-TIKA:*`` 또는 ``tk:*`` 이름을 매핑하고 있거나 스크립트에서 사용하고 있다면 더 이상 해당 값을 얻을 수 없습니다. + +크롤링 설정의 Tesseract 및 PDF 프로퍼티 파일 +-------------------------------------------- + +크롤링 설정에서 ``config.tika.tesseract.config`` 또는 ``config.tika.pdf.config``\ 를 지정한 경우, Tika 4에서 일부 프로퍼티의 이름이 바뀌거나 삭제되었으므로 프로퍼티 파일을 확인하십시오. +적용할 수 없는 키마다 |Fess|\ 는 ``fess-crawler.log``\ 에 경고를 출력하고 해당 키를 무시합니다. + +- Tesseract 파일: ``timeoutSeconds`` → ``timeoutMillis``. |Fess|\ 는 ``timeoutSeconds`` 키를 ``timeoutMillis`` 키로 변환하지만(값을 1000배), 앞으로는 ``timeoutMillis`` 키에 밀리초 단위로 작성하십시오. ``crawler.document.ocr.timeout`` 값은 계속 초 단위입니다. +- PDF 파일: ``ocrStrategy``, ``ocrDPI``, ``ocrImageType``, ``ocrImageFormatName``, ``ocrImageQuality``, ``ocrRenderingStrategy``, ``accessChecker``, ``renderer`` 등의 프로퍼티가 Tika 4의 ``PDFParserConfig``\ 에서 삭제되었습니다. |Fess|\ 는 이러한 키를 무시하고 ``fess-crawler.log``\ 에 경고를 출력합니다. 이때 PDF의 OCR은 Tika 4의 기본 동작(자동)을 따릅니다. 즉 ``tesseract``\ 를 사용할 수 있고 |Fess|\ 에서 OCR이 활성화되어 있으면 텍스트가 적은 페이지에 대해 OCR이 실행됩니다. +- ``tesseract``\ 의 위치는 더 이상 ``tika.xml``\ 에서 설정할 수 없으며, Tesseract 파일의 ``tesseractPath``, ``tessdataPath``, ``imageMagickPath`` 키도 효과가 없습니다. ``tesseract`` 명령(ImageMagick을 사용하는 경우에는 ImageMagick도)은 크롤러 프로세스의 ``PATH``\ 에서 찾을 수 있어야 합니다. + +문자 인코딩 감지 +---------------- + +Tika 4가 텍스트 파일에 대해 보고하는 문자 인코딩 이름은 15.9와 다를 수 있습니다. 예를 들어 Shift_JIS는 ``windows-31j``\ 로, ISO-8859-1은 ``windows-1252``\ 로, EUC-JP는 ``x-eucJP-Open``\ 으로 보고됩니다. + +플러그인 개발자를 위한 변경 사항 +-------------------------------- + +다음 변경 사항은 ``fess-crawler``\ 의 클래스를 사용하는 플러그인에 영향을 줍니다. 이러한 플러그인은 15.10용으로 다시 빌드하십시오(참조: :ref:`upgrade-plugin-versions`). + +- ``ExtractData`` 는 더 이상 Tika의 인터페이스(``TikaCoreProperties``, ``HttpHeaders`` 등)를 구현하지 않습니다. 문자열 상수 ``CONTENT_TYPE`` 과 ``CONTENT_ENCODING`` 은 ``ExtractData`` 가 직접 선언합니다. ``RESOURCE_NAME_KEY`` 는 이전과 같이 ``"resourceName"`` 입니다. +- ``TikaExtractor.setTikaConfig`` 와 ``fess.xml`` 의 ``tikaConfig`` 컴포넌트가 삭제되었습니다. +- 로그 레벨이 ``debug`` 일 때 ``CrawlJob`` 은 크롤러에 ``-Dorg.apache.tika.service.error.warn=true`` 를 전달하지 않습니다. Tika 4가 이 값을 읽지 않기 때문입니다. + 15.8에서 15.10로 업그레이드 ========================== diff --git a/zh-cn/15.10/config/admin-index-backup.rst b/zh-cn/15.10/config/admin-index-backup.rst index d9d959ea2..bba54b7de 100644 --- a/zh-cn/15.10/config/admin-index-backup.rst +++ b/zh-cn/15.10/config/admin-index-backup.rst @@ -307,7 +307,7 @@ - 缩略图(按需备份) .. note:: - RPM/DEB 软件包版中,``/etc/fess/`` 目录除 ``fess_config.properties`` 外,还存放有 ``fess_env_crawler.properties`` 等 ``fess_env_*.properties`` 文件以及 ``tika.xml`` 等配置文件。建议备份整个 ``/etc/fess/`` 目录。\ ``system.properties`` 在管理界面的"系统 > 通用"中保存设置时,将以 ``/etc/fess/system.properties`` 的形式创建或更新。 + RPM/DEB 软件包版中,``/etc/fess/`` 目录除 ``fess_config.properties`` 外,还存放有 ``fess_env_crawler.properties`` 等 ``fess_env_*.properties`` 配置文件。建议备份整个 ``/etc/fess/`` 目录。\ ``system.properties`` 在管理界面的"系统 > 通用"中保存设置时,将以 ``/etc/fess/system.properties`` 的形式创建或更新。 配置文件备份示例 ---------------------------- diff --git a/zh-cn/15.10/config/crawler-advanced.rst b/zh-cn/15.10/config/crawler-advanced.rst index 952bcd272..e9f22bb76 100644 --- a/zh-cn/15.10/config/crawler-advanced.rst +++ b/zh-cn/15.10/config/crawler-advanced.rst @@ -371,7 +371,7 @@ robots.txt 配置 :: # 排除的元数据 - crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.* + crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.* # 元数据名称映射 crawler.metadata.name.mapping=\ @@ -379,6 +379,8 @@ robots.txt 配置 Title=title:string\n\ dc:title=title:string +以 ``tk:``、``X-TIKA:`` 或 ``zip:`` 开头的元数据名称,无论是否列在 ``crawler.metadata.content.excludes`` 中,都会在到达文档之前被 |Fess| 删除,因此无法在 ``crawler.metadata.name.mapping`` 或脚本中使用。Tika 4 还更改了许多其他元数据名称,对 ``crawler.metadata.name.mapping`` 的影响请参阅 :ref:`upgrade-1510-tika-metadata`。 + HTML 爬虫配置 =================== diff --git a/zh-cn/15.10/config/crawler-ocr.rst b/zh-cn/15.10/config/crawler-ocr.rst index a8eef57ed..4c6642983 100644 --- a/zh-cn/15.10/config/crawler-ocr.rst +++ b/zh-cn/15.10/config/crawler-ocr.rst @@ -42,6 +42,8 @@ OCR 的对象 在运行 |Fess| 的主机上安装 Tesseract。 要识别日文文字,还需要日文的训练数据(traineddata)。 +``tesseract`` 命令(以及使用时的 ImageMagick)必须能在 |Fess| 爬虫进程的 ``PATH`` 中找到。``tesseract`` 的路径不能再在 ``tika.xml`` 中设置,因为 |Fess| 15.10 不会读取该文件。 + Debian / Ubuntu:: $ sudo apt-get install tesseract-ocr tesseract-ocr-jpn @@ -151,12 +153,17 @@ RHEL / Rocky Linux / AlmaLinux(请先启用 EPEL):: - RPM/DEB 版: ``/etc/fess/`` 在 ``tesseract.properties`` 中编写 Tika 的 ``TesseractOCRConfig`` 属性。 -能够可靠生效的只有 ``language`` 和 ``timeoutSeconds`` 等简单的键。 +能够可靠生效的只有 ``language`` 和 ``timeoutMillis`` 等简单的键。 :: language=jpn - timeoutSeconds=300 + timeoutMillis=300000 + +``timeoutMillis`` 的单位是毫秒(全局设置 ``crawler.document.ocr.timeout`` 的单位是秒)。 +Tika 3 的 ``timeoutSeconds`` 键会由 |Fess| 转换为 ``timeoutMillis``\ (数值乘以 1000),并在 ``fess-crawler.log`` 中输出警告。 +``TesseractOCRConfig`` 无法设置的键会被忽略,并在同一日志中输出警告。 +``tesseractPath``、``tessdataPath`` 和 ``imageMagickPath`` 在此文件中不起作用。 对于该爬取配置,此设置优先于上述全局设置。 @@ -172,21 +179,11 @@ RHEL / Rocky Linux / AlmaLinux(请先启用 EPEL):: 升级注意事项 ============ -15.8 及更早版本中自带的 ``tika.xml`` 排除了 ``org.apache.tika.parser.ocr.TesseractOCRParser``。 -从 15.10 起,自带的 ``tika.xml`` 不再排除该解析器。 - -如果您一直在使用自定义的 ``tika.xml``,请删除以下行。 - -:: - - - -如果保留此行,即使指定了 ``crawler.document.ocr.enabled=true``,OCR 仍然保持禁用。 - -``tika.xml`` 的位置如下。 +15.8 及更早版本中自带的 ``tika.xml`` 排除了 ``org.apache.tika.parser.ocr.TesseractOCRParser``,因此即使指定了 ``crawler.document.ocr.enabled=true``,OCR 仍然保持禁用。 +15.9 的 ``tika.xml`` 不再排除该解析器。 +15.10 使用没有 XML 配置文件的 Apache Tika 4。|Fess| 不再自带 ``tika.xml``,也不会读取它。OCR 通过 ``crawler.document.ocr.enabled`` 启用。如果爬取配置的 Tesseract 属性文件中指定了 ``skipOcr=true``、不存在 ``tesseract`` 命令,或者 OCR 设置无效,OCR 也会保持禁用。 -- ZIP 版: ``app/WEB-INF/conf/tika.xml`` -- RPM/DEB 版: ``/etc/fess/tika.xml`` +对于以前版本遗留的 ``tika.xml`` 以及爬取配置中的属性文件,请参阅 :ref:`upgrade-1510-tika`。 确认运行 ======== @@ -199,5 +196,4 @@ RHEL / Rocky Linux / AlmaLinux(请先启用 EPEL):: - ``tesseract --list-langs`` 中显示所使用的语言 - ``crawler.document.ocr.enabled`` 为 ``true`` -- ``tika.xml`` 中没有残留对 ``TesseractOCRParser`` 的排除 - 爬取时的 ``fess-crawler.log`` 中输出了 ``OCR is enabled`` (如果输出 ``Tesseract OCR is not available`` 警告,则表示 |Fess| 无法使用 Tesseract) diff --git a/zh-cn/15.10/config/properties.rst b/zh-cn/15.10/config/properties.rst index 9065243c5..3632ef6cd 100644 --- a/zh-cn/15.10/config/properties.rst +++ b/zh-cn/15.10/config/properties.rst @@ -507,7 +507,7 @@ one, fill in ``properties.po`` beside this file. - ``cpu`` * - crawler.metadata.content.excludes - 要从文档内容中排除的元数据字段。 - - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,tk:.*,X-FESS.*`` * - crawler.metadata.name.mapping - 文档元数据名称的映射。 - | ``title=title:string`` diff --git a/zh-cn/15.10/install/upgrade.rst b/zh-cn/15.10/install/upgrade.rst index 1b2f9a573..6a5bc1ad2 100644 --- a/zh-cn/15.10/install/upgrade.rst +++ b/zh-cn/15.10/install/upgrade.rst @@ -537,6 +537,63 @@ Docker 版:: 由于重新索引会以新的映射重建索引,在没有 k-NN 插件的 OpenSearch 中会失败。 请确认步骤 4 中的注意事项。 +从 15.9 升级到 15.10 +==================== + +本节的变更适用于升级到 15.10 的所有情况。如果从 15.8 或更早版本升级,请在阅读本节之后,继续阅读下一节“从 15.8 升级到 15.10”。 + +.. _upgrade-1510-tika: + +Apache Tika 4 和 ``tika.xml`` +----------------------------- + +15.9.0 使用 Apache Tika 3.3.2,15.10 使用 Apache Tika 4.1.0。 +Tika 4 没有 XML 配置文件,因此 |Fess| 15.10 在代码中构建 Tika 解析器,不再读取 ``tika.xml``。 +15.10 的 ZIP 版、RPM/DEB 版和 Docker 镜像中不包含该文件。 + +在 ``tika.xml`` 中编写的 ``parser-exclude`` 等设置将不再生效,被排除的解析器会重新运行。 +如果配置目录中残留有以前版本的 ``tika.xml``,|Fess| 会忽略该文件,并在启动时向 ``fess.log`` 输出警告。请删除该文件。 + +- ZIP 版: ``app/WEB-INF/conf/tika.xml`` +- RPM/DEB 版: ``/etc/fess/tika.xml`` + +.. _upgrade-1510-tika-metadata: + +元数据名称 +---------- + +Tika 4 更改了许多元数据名称。例如,``pdf:charsPerPage`` 变为 ``pdf:chars-per-page``,``access_permission:*`` 变为 ``access-permission:*``,``Message:*`` 变为 ``message:*``。 +对于 Tika 的 ``LegacyKeyMigrationFilter`` 能够识别的名称,|Fess| 会将其还原为 Tika 3 的名称,因此使用这些名称的 ``crawler.metadata.name.mapping`` 设置可以继续使用。 +该过滤器不会转换的名称将以 Tika 4 的名称传递。例如,Excel 文件的 ``protected`` 现在是 ``msoffice:excel:protected-worksheet``。如果 ``crawler.metadata.name.mapping`` 中使用了这样的名称,请改为 Tika 4 的名称。 + +Tika 4 新增的元数据与其他元数据一样处理,只要名称不匹配 ``crawler.metadata.content.excludes``,就会添加到内容中。 + +例外是以 ``tk:``、``X-TIKA:`` 或 ``zip:`` 开头的名称,Tika 将它们用于内部管理(Tika 3 的 ``X-TIKA:Parsed-By`` 现在是 ``tk:parsed-by``)。|Fess| 会在这些名称到达文档之前将其删除。它们不会被还原为 Tika 3 的名称,无论是否列在 ``crawler.metadata.content.excludes`` 中,也都不会添加到内容中。如果在 ``crawler.metadata.name.mapping`` 中映射了 ``X-TIKA:*`` 或 ``tk:*`` 名称,或者在脚本中使用了它们,将无法再获得这些值。 + +爬取配置的 Tesseract 和 PDF 属性文件 +------------------------------------ + +如果爬取配置中指定了 ``config.tika.tesseract.config`` 或 ``config.tika.pdf.config``,请检查对应的属性文件,因为 Tika 4 重命名或删除了部分属性。 +对于无法应用的每个键,|Fess| 会在 ``fess-crawler.log`` 中输出警告并忽略该键。 + +- Tesseract 文件中的 ``timeoutSeconds`` 变为 ``timeoutMillis``。|Fess| 会将 ``timeoutSeconds`` 转换为 ``timeoutMillis``\ (数值乘以 1000),但今后请在 ``timeoutMillis`` 中以毫秒为单位编写。``crawler.document.ocr.timeout`` 仍以秒为单位。 +- PDF 文件中的 ``ocrStrategy``、``ocrDPI``、``ocrImageType``、``ocrImageFormatName``、``ocrImageQuality``、``ocrRenderingStrategy``、``accessChecker`` 和 ``renderer`` 等属性已从 Tika 4 的 ``PDFParserConfig`` 中删除。|Fess| 会忽略这些属性,并在 ``fess-crawler.log`` 中输出警告。此时 PDF 的 OCR 遵循 Tika 4 的默认行为(自动):在 ``tesseract`` 可用且 |Fess| 中启用了 OCR 时,对文字很少的页面执行 OCR。 +- ``tesseract`` 的位置不能再在 ``tika.xml`` 中设置,Tesseract 文件中的 ``tesseractPath``、``tessdataPath`` 和 ``imageMagickPath`` 也不起作用。``tesseract``(以及使用时的 ImageMagick)必须能在爬虫进程的 ``PATH`` 中找到。 + +字符编码检测 +------------ + +Tika 4 为文本文件报告的字符编码名称可能与 15.9 不同。例如,Shift_JIS 会被报告为 ``windows-31j``,ISO-8859-1 会被报告为 ``windows-1252``,EUC-JP 会被报告为 ``x-eucJP-Open``。 + +面向插件开发者的变更 +-------------------- + +以下变更会影响使用 ``fess-crawler`` 类的插件。请针对 15.10 重新构建此类插件(参阅 :ref:`upgrade-plugin-versions`)。 + +- ``ExtractData`` 不再实现 Tika 的接口(``TikaCoreProperties``、``HttpHeaders`` 等)。字符串常量 ``CONTENT_TYPE`` 和 ``CONTENT_ENCODING`` 由 ``ExtractData`` 自身定义。``RESOURCE_NAME_KEY`` 仍为 ``"resourceName"``。 +- 已删除 ``TikaExtractor.setTikaConfig`` 和 ``fess.xml`` 中的 ``tikaConfig`` 组件。 +- 日志级别为 ``debug`` 时,``CrawlJob`` 不再向爬虫传递 ``-Dorg.apache.tika.service.error.warn=true``,因为 Tika 4 不再读取该属性。 + 从 15.8 升级到 15.10 ===================