diff --git a/de/15.9/admin/labeltype-guide.rst b/de/15.9/admin/labeltype-guide.rst index 0f7d3198..01a2c634 100644 --- a/de/15.9/admin/labeltype-guide.rst +++ b/de/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ Virtueller Host Geben Sie den Hostnamen des virtuellen Hosts an. Weitere Details finden Sie unter :doc:`Virtueller Host im Konfigurationshandbuch <../config/security-virtual-host>`. +Ein über einen virtuellen Host aufgerufener Suchbildschirm zeigt nur die Labels an, in deren Feld dieser virtuelle Host angegeben ist. +Ein Label mit leerem Feld wird nicht angezeigt, wenn der Suchbildschirm über einen virtuellen Host aufgerufen wird. +Bei einem Zugriff, der keinem virtuellen Host entspricht, werden unabhängig von diesem Feld alle Labels angezeigt. + +Pro Label kann nur ein virtueller Host angegeben werden. +Um dasselbe Label auf mehreren virtuellen Hosts anzuzeigen, erstellen Sie für jeden virtuellen Host ein Label mit demselben Namen und Wert und tragen im Feld „Virtueller Host" jeweils dessen Namen ein. +Da der Wert gleich ist, grenzt jedes dieser Labels auf dieselben Dokumente ein. + Anzeigereihenfolge :::::::::::::::::: diff --git a/de/15.9/admin/plugin-guide.rst b/de/15.9/admin/plugin-guide.rst index c2830089..4c2e8c5c 100644 --- a/de/15.9/admin/plugin-guide.rst +++ b/de/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ Um ein neues Plug-in zu installieren, klicken Sie auf die Schaltfläche „Insta |image1| -Wählen Sie im Dropdown-Menü das zu installierende Plug-in aus und klicken Sie auf die Schaltfläche „Installieren", um die Installation zu starten. +Wählen Sie im Dropdown-Menü auf der Registerkarte „Remote" das zu installierende Plug-in aus und klicken Sie auf die Schaltfläche „Installieren", um die Installation zu starten. +Das Dropdown-Menü listet die Plug-ins aus den Plug-in-Repositorys (``plugin.repositories``) auf. Sind diese nicht erreichbar, wird „Keine verfügbaren Plugins gefunden." angezeigt. + +Um eine vorhandene JAR-Datei zu installieren, wählen Sie sie auf der Registerkarte „Lokal" unter „Jar-Datei" aus und klicken Sie auf die Schaltfläche „Installieren". Es werden nur Dateien mit der Endung ``.jar`` akzeptiert. +Lassen Sie dabei das Dropdown-Menü auf der Registerkarte „Remote" auf dem ersten Eintrag (``-``); ist dort ein anderes Plug-in ausgewählt, wird stattdessen dieses installiert. +Wie Sie Plug-ins ohne Internetzugang installieren, lesen Sie unter :ref:`fess-setup-offline`. + +Starten Sie |Fess| nach der Installation eines Plug-ins neu. Installation über die Befehlszeile ================================== diff --git a/de/15.9/api/api-overview.rst b/de/15.9/api/api-overview.rst index 9a74d481..3763f2bd 100644 --- a/de/15.9/api/api-overview.rst +++ b/de/15.9/api/api-overview.rst @@ -135,7 +135,7 @@ Abhängig von ``error.code`` wird ein standardmäßiger HTTP-Statuscode zurückg - Nicht unterstützter ``Content-Type`` (die meisten Endpunkte erfordern ``application/json``). * - ``rate_limited`` - 429 - - Rate-Limit überschritten. Der ``Retry-After``-Header gibt die Wartezeit in Sekunden an. + - Das Versuchslimit eines Endpunkts, etwa für Anmeldung, Passwortänderung oder Chat, wurde überschritten. Der ``Retry-After``-Header gibt die Wartezeit in Sekunden an. * - ``internal_error`` - 500 - Interner Serverfehler aufgetreten. @@ -150,6 +150,25 @@ Tabelle: Liste der Fehlercodes Bei einer ``method_not_allowed``-Antwort wird ein ``Allow``-Header beigefügt, der die unterstützten HTTP-Methoden auflistet. +.. note:: + + Das serverweite Rate-Limit für HTTP-Anfragen (``rate.limit.enabled=true``, siehe :doc:`../config/rate-limiting`) + greift vor der v2-API; seine Antworten verwenden daher nicht das obige Envelope-Format. + Eine Anfrage über dem Limit erhält HTTP 429 mit einem ``Retry-After``-Header (``rate.limit.retry.after.seconds``, + Standard ``60``) und diesem Body: + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + Eine IP-Adresse über dem Limit wird für ``rate.limit.block.duration.ms`` blockiert. Anfragen in dieser Zeit + (ebenso Anfragen von IP-Adressen in ``rate.limit.blocked.ips``) erhalten HTTP 403 mit diesem Body. + Diese Antwort hat keinen ``Retry-After``-Header. + + :: + + {"error":"ip_blocked","message":"Access denied."} + Authentifizierung und Sitzung ============================== diff --git a/de/15.9/config/crawler-advanced.rst b/de/15.9/config/crawler-advanced.rst index 0c5f89f8..7805e53f 100644 --- a/de/15.9/config/crawler-advanced.rst +++ b/de/15.9/config/crawler-advanced.rst @@ -427,6 +427,26 @@ Beispiele für benutzerdefinierte XPath # Auch Meta-Keywords in Digest einbeziehen crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +Dies sind systemweite Einstellungen, die für alle Web-Crawl-Konfigurationen gelten. + +.. note:: + + Eine Änderung wirkt sich auf Dokumente aus, sobald sie das nächste Mal gecrawlt und indexiert werden. + Ist in den allgemeinen Einstellungen „Letzte Änderung prüfen" (inkrementelles Crawling) aktiviert, wird + ein Dokument, das sich seit dem letzten Crawl nicht geändert hat (sein ``Last-Modified`` ist nicht neuer + als der Zeitpunkt der letzten Änderung im Index), beim erneuten Crawlen nicht wieder abgerufen und behält + den mit dem alten XPath extrahierten Inhalt. Um die Änderung auf bereits gecrawlte Dokumente anzuwenden, + bauen Sie den Index neu auf, zum Beispiel indem Sie diese Dokumente aus dem Index löschen und erneut crawlen. + +Um für eine einzelne Crawl-Konfiguration einen anderen XPath zu verwenden, geben Sie ihn in den +„Konfigurationsparametern" der Web-Crawl-Konfiguration wie folgt an. Für diese Crawl-Konfiguration hat er +Vorrang vor ``crawler.document.html.*.xpath``. Sprache und Digest lassen sich ebenso mit +``field.xpath.default.lang`` und ``field.xpath.default.digest`` festlegen. + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + HTML-Tag-Verarbeitung --------------------- diff --git a/de/15.9/config/rate-limiting.rst b/de/15.9/config/rate-limiting.rst index 55fe43a9..0f10c69a 100644 --- a/de/15.9/config/rate-limiting.rst +++ b/de/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ Verhalten --------- - Anfragen, die das Rate-Limit überschreiten, geben HTTP 429 (Too Many Requests) zurück -- Anfragen von IPs auf der Blockliste geben HTTP 403 (Forbidden) zurück +- Anfragen von IPs, die wegen Überschreitung des Limits blockiert sind, sowie von IPs auf der Blockliste geben HTTP 403 (Forbidden) zurück +- Der Antwort-Body ist JSON (``{"error":"rate_limit_exceeded",...,"retry_after":60}`` bei 429, ``{"error":"ip_blocked",...}`` bei 403). Eine 429-Antwort hat einen ``Retry-After``-Header - Limits werden pro IP-Adresse angewendet - Pro IP-Adresse beginnt das Fenster mit der ersten Anfrage; nach Ablauf der Fensterperiode wird der Zähler zurückgesetzt (Festes-Fenster-Verfahren) - Bei Überschreitung wird die IP für die Dauer von ``rate.limit.block.duration.ms`` blockiert diff --git a/de/15.9/config/search-scroll.rst b/de/15.9/config/search-scroll.rst index 0fb7d8ed..3179dcd4 100644 --- a/de/15.9/config/search-scroll.rst +++ b/de/15.9/config/search-scroll.rst @@ -106,8 +106,10 @@ Request-Parameter Für die Scroll-Suche können folgende Parameter verwendet werden: .. note:: - Die Scroll-Suche unterstützt nur die GET-Methode. Bei Verwendung einer anderen HTTP-Methode - wird ``405 Method Not Allowed`` zurückgegeben. + Die Scroll-Suche unterstützt nur die GET-Methode. Bei zustandsändernden Methoden wie ``POST`` + wird zuerst das CSRF-Token geprüft; eine Anfrage ohne gültigen ``X-Fess-CSRF-Token``-Header + erhält daher ``403 Forbidden`` (``forbidden``), siehe :doc:`../api/api-overview`. + Mit einem gültigen Token wird ``405 Method Not Allowed`` (``method_not_allowed``) zurückgegeben. .. list-table:: :header-rows: 1 diff --git a/de/15.9/install/fess-setup.rst b/de/15.9/install/fess-setup.rst index 816fcd8c..9eea44e2 100644 --- a/de/15.9/install/fess-setup.rst +++ b/de/15.9/install/fess-setup.rst @@ -201,6 +201,27 @@ remove plugin Löscht die installierten JARs der angegebenen Plugins. Ein Name, der nicht installiert ist, wird gemeldet und ändert den Exit-Code nicht. +.. _fess-setup-offline: + +Umgebungen ohne Internetzugang +------------------------------ + +``install plugin``, ``list plugins`` und ``upgrade plugins`` beziehen Plugins aus Repositorys im +Internet. Auch die Installationsseite unter **System > Plugin** in der Administrationsoberfläche +bezieht die Liste der installierbaren Plugins aus den Repositorys (``plugin.repositories``) und kann +sie daher ohne Zugang nach außen nicht anzeigen. + +Bringen Sie in einer solchen Umgebung die JARs der Plugins selbst mit: + +1. Laden Sie in einer Umgebung mit Internetzugang das |Fess|-ZIP-Paket und die JARs der benötigten + Plugins herunter. Ein JAR erhalten Sie unter + ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar``. + Wählen Sie die Version für dieses |Fess| (15.9.x für |Fess| 15.9). +2. Entpacken Sie in der Zielumgebung das ZIP und legen Sie die JARs in ``app/WEB-INF/plugin/`` ab. + Nach dem Start von |Fess| können Sie sie auch auf der Registerkarte „Lokal" der + Plugin-Installationsseite in der Administrationsoberfläche hochladen; siehe :doc:`../admin/plugin-guide`. +3. Starten Sie |Fess|. Wenn Sie die JARs während des Betriebs abgelegt haben, starten Sie es neu. + Themes verwalten ================ diff --git a/en/15.9/admin/labeltype-guide.rst b/en/15.9/admin/labeltype-guide.rst index a8159c9b..02a7074a 100644 --- a/en/15.9/admin/labeltype-guide.rst +++ b/en/15.9/admin/labeltype-guide.rst @@ -71,6 +71,14 @@ Virtual Host Specifies the virtual host hostname. For details, refer to :doc:`Virtual Host in the Configuration Guide <../config/security-virtual-host>`. +A search screen accessed through a virtual host shows only the labels whose field names that virtual host. +A label with this field empty is not shown when the search screen is accessed through a virtual host. +An access that matches no virtual host shows all labels, whatever this field holds. + +A label can name only one virtual host. +To show the same label on several virtual hosts, create a label with the same name and value for each virtual host, and put that virtual host name in its Virtual Host field. +Because the value is the same, each of those labels narrows the results to the same documents. + Display Order ::::::::::::: diff --git a/en/15.9/admin/plugin-guide.rst b/en/15.9/admin/plugin-guide.rst index 77368656..2a10f51f 100644 --- a/en/15.9/admin/plugin-guide.rst +++ b/en/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ To install a new plugin, click the Install button. |image1| -Select the plugin you want to install from the pull-down menu and click the Install button to start the installation. +Select the plugin you want to install from the pull-down menu on the "Remote" tab and click the Install button to start the installation. +The pull-down menu lists the plugins in the plugin repositories (``plugin.repositories``). If they cannot be reached, "Could not find available plugins." is shown. + +To install a jar file you have, choose it in "Jar File" on the "Local" tab and click the Install button. Only files with the ``.jar`` extension are accepted. +Leave the pull-down menu on the "Remote" tab at its first entry (``-``); if another plugin is selected there, that plugin is installed instead. +To install plugins where there is no Internet access, see :ref:`fess-setup-offline`. + +Restart |Fess| after installing a plugin. Installing from the Command Line ================================ diff --git a/en/15.9/api/api-overview.rst b/en/15.9/api/api-overview.rst index acf27ac7..08a4d1d4 100644 --- a/en/15.9/api/api-overview.rst +++ b/en/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ The default HTTP status code is determined by ``error.code``. - The ``Content-Type`` is not supported (most endpoints require ``application/json``). * - ``rate_limited`` - 429 - - The rate limit has been exceeded. The ``Retry-After`` header indicates the number of seconds to wait. + - A per-endpoint attempt limit, such as for login, password change or chat, has been exceeded. The ``Retry-After`` header indicates the number of seconds to wait. * - ``internal_error`` - 500 - An internal server error occurred. @@ -149,6 +149,25 @@ Table: Error Code List Responses with ``method_not_allowed`` include an ``Allow`` header listing the supported HTTP methods. +.. note:: + + The server-wide HTTP request rate limit (``rate.limit.enabled=true``; see :doc:`../config/rate-limiting`) + is applied before the v2 API, so its responses do not use the envelope above. + A request over the limit gets HTTP 429 with a ``Retry-After`` header (``rate.limit.retry.after.seconds``, + default ``60``) and this body: + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + An IP address over the limit is blocked for ``rate.limit.block.duration.ms``. Requests during that time + (and requests from IP addresses in ``rate.limit.blocked.ips``) get HTTP 403 with this body. + This response has no ``Retry-After`` header. + + :: + + {"error":"ip_blocked","message":"Access denied."} + Authentication and Sessions =========================== diff --git a/en/15.9/config/crawler-advanced.rst b/en/15.9/config/crawler-advanced.rst index 7208635d..55250244 100644 --- a/en/15.9/config/crawler-advanced.rst +++ b/en/15.9/config/crawler-advanced.rst @@ -429,6 +429,26 @@ Custom XPath Examples # Include meta keywords in digest crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +These are system-wide settings and apply to every web crawl configuration. + +.. note:: + + A change applies to documents from the next time they are crawled and indexed. + When "Check Last Modified" (incremental crawling) is enabled in the General settings, a document + that has not changed since the last crawl (its ``Last-Modified`` is not newer than the last-modified + time in the index) is not fetched again on a recrawl, and keeps the content extracted with the old + XPath. To apply the change to documents already crawled, rebuild the index, for example by deleting + those documents from the index and crawling again. + +To use a different XPath for one crawl configuration, set it in "Configuration Parameters" of the web +crawl configuration as follows. For that crawl configuration, it takes precedence over +``crawler.document.html.*.xpath``. The language and digest can be set the same way with +``field.xpath.default.lang`` and ``field.xpath.default.digest``. + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + HTML Tag Processing ------------------- diff --git a/en/15.9/config/rate-limiting.rst b/en/15.9/config/rate-limiting.rst index 03b05de9..0328ebc4 100644 --- a/en/15.9/config/rate-limiting.rst +++ b/en/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ Behavior -------- - Requests exceeding the rate limit return HTTP 429 (Too Many Requests) -- Requests from IPs on the blocked IP list return HTTP 403 (Forbidden) +- Requests from IPs blocked for exceeding the limit, and from IPs on the blocked IP list, return HTTP 403 (Forbidden) +- The response body is JSON (``{"error":"rate_limit_exceeded",...,"retry_after":60}`` for 429, ``{"error":"ip_blocked",...}`` for 403). A 429 response has a ``Retry-After`` header - Limits are applied per IP address - For each IP, the counting window starts from the first request and resets after the window period expires (fixed window algorithm) - When the limit is exceeded, the IP is blocked for the duration specified by ``rate.limit.block.duration.ms`` diff --git a/en/15.9/config/search-scroll.rst b/en/15.9/config/search-scroll.rst index f1112516..2f32579f 100644 --- a/en/15.9/config/search-scroll.rst +++ b/en/15.9/config/search-scroll.rst @@ -100,8 +100,10 @@ Request Parameters The following parameters can be used with scroll search: .. note:: - Scroll search only supports the GET method. Accessing with any method other than GET returns - ``405 Method Not Allowed``. + Scroll search only supports the GET method. For a state-changing method such as ``POST``, + the CSRF token is checked first, so a request without a valid ``X-Fess-CSRF-Token`` header + gets ``403 Forbidden`` (``forbidden``); see :doc:`../api/api-overview`. + With a valid token, it gets ``405 Method Not Allowed`` (``method_not_allowed``). .. list-table:: :header-rows: 1 diff --git a/en/15.9/install/fess-setup.rst b/en/15.9/install/fess-setup.rst index 1154300f..f677b711 100644 --- a/en/15.9/install/fess-setup.rst +++ b/en/15.9/install/fess-setup.rst @@ -189,6 +189,27 @@ remove plugin Deletes the installed jars of the named plugins. A name that is not installed is reported, and does not change the exit code. +.. _fess-setup-offline: + +Without Internet Access +----------------------- + +``install plugin``, ``list plugins`` and ``upgrade plugins`` get plugins from repositories on the +Internet. The install page under System > Plugin in the administration screen also gets the list of +installable plugins from the repositories (``plugin.repositories``), so it cannot show the list where +there is no outside access. + +In such an environment, bring in the plugin jars: + +1. Where there is Internet access, download the |Fess| ZIP package and the jars of the plugins you need. + A jar can be downloaded from + ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar``. + Choose the version for this |Fess| (15.9.x for |Fess| 15.9). +2. In the target environment, extract the ZIP and put the jars in ``app/WEB-INF/plugin/``. After |Fess| + starts, you can also upload them on the "Local" tab of the plugin install page in the administration + screen; see :doc:`../admin/plugin-guide`. +3. Start |Fess|. If you put the jars there while it was running, restart it. + Managing Themes =============== diff --git a/es/15.9/admin/labeltype-guide.rst b/es/15.9/admin/labeltype-guide.rst index 3fbb9275..f0cf62cb 100644 --- a/es/15.9/admin/labeltype-guide.rst +++ b/es/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ Host virtual Especifique el nombre de host del host virtual. Para más detalles, consulte :doc:`Host virtual en la guía de configuración <../config/security-virtual-host>`. +En una pantalla de búsqueda a la que se accede mediante un host virtual solo se muestran las etiquetas cuyo campo especifica el nombre de ese host virtual. +Las etiquetas con este campo vacío no se muestran cuando se accede mediante un host virtual. +En los accesos que no coinciden con ningún host virtual se muestran todas las etiquetas, independientemente de este campo. + +Cada etiqueta admite un solo host virtual. +Para mostrar la misma etiqueta en varios hosts virtuales, cree una etiqueta con el mismo nombre y valor para cada host virtual e indique en el campo de host virtual de cada una el nombre de ese host virtual. +Como el valor es el mismo, cualquiera de las etiquetas filtra los mismos documentos. + Orden de clasificación :::::::::::::::::::::: diff --git a/es/15.9/admin/plugin-guide.rst b/es/15.9/admin/plugin-guide.rst index 1e721189..c3ab1f7d 100644 --- a/es/15.9/admin/plugin-guide.rst +++ b/es/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ Para instalar un nuevo complemento, haga clic en el botón de instalación. |image1| -Seleccione el complemento que desea instalar en el menú desplegable y haga clic en el botón de instalación para comenzar la instalación. +Seleccione el complemento que desea instalar en el menú desplegable de la pestaña «Remoto» y haga clic en el botón de instalación para comenzar la instalación. +La lista del menú desplegable se obtiene de los repositorios de plugins (``plugin.repositories``). Si no se puede conectar con los repositorios, se muestra «No se encontraron plugins disponibles.». + +Para instalar un archivo jar local, selecciónelo en «Archivo Jar» de la pestaña «Local» y haga clic en el botón de instalación. Solo se pueden indicar archivos con la extensión ``.jar``. +Deje el menú desplegable de la pestaña «Remoto» en su primera opción (``-``). Si hay otro complemento seleccionado, se instala ese en su lugar. +Para instalar en un entorno sin conexión a Internet, consulte :ref:`fess-setup-offline`. + +Reinicie |Fess| después de instalar un complemento. Instalación desde la línea de comandos ====================================== diff --git a/es/15.9/api/api-overview.rst b/es/15.9/api/api-overview.rst index a195aa8b..68987e82 100644 --- a/es/15.9/api/api-overview.rst +++ b/es/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ El código de estado HTTP predeterminado se determina según ``error.code``. - ``Content-Type`` no admitido (la mayoría de los endpoints requieren ``application/json``). * - ``rate_limited`` - 429 - - Se superó el límite de velocidad. La cabecera ``Retry-After`` indica los segundos que se deben esperar. + - Se superó el límite de intentos propio de un endpoint, como el inicio de sesión, el cambio de contraseña o el chat. La cabecera ``Retry-After`` indica los segundos que se deben esperar. * - ``internal_error`` - 500 - Se produjo un error interno en el servidor. @@ -149,6 +149,25 @@ Tabla: Lista de códigos de error La respuesta ``method_not_allowed`` incluye una cabecera ``Allow`` que enumera los métodos HTTP admitidos. +.. note:: + + El límite de velocidad de solicitudes HTTP de todo el servidor (``rate.limit.enabled=true``, consulte + :doc:`../config/rate-limiting`) se aplica antes que la API v2, por lo que su respuesta no usa el + formato de sobre anterior. Una solicitud que supera el límite recibe HTTP 429 con la cabecera + ``Retry-After`` (``rate.limit.retry.after.seconds``, por defecto ``60``) y este cuerpo: + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + La dirección IP que supera el límite queda bloqueada durante ``rate.limit.block.duration.ms``, y las + solicitudes durante ese tiempo (igual que las de las direcciones IP incluidas en ``rate.limit.blocked.ips``) + reciben HTTP 403 con el cuerpo siguiente. Esta respuesta no incluye la cabecera ``Retry-After``. + + :: + + {"error":"ip_blocked","message":"Access denied."} + Autenticación y sesión ====================== diff --git a/es/15.9/config/crawler-advanced.rst b/es/15.9/config/crawler-advanced.rst index 7f6bb1c7..da1d9882 100644 --- a/es/15.9/config/crawler-advanced.rst +++ b/es/15.9/config/crawler-advanced.rst @@ -429,6 +429,26 @@ Ejemplos de XPath Personalizados # Incluir también meta keywords en el resumen crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +Estas son opciones de todo el sistema y se aplican a todas las configuraciones de rastreo web. + +.. note:: + + Los cambios se aplican a los documentos a medida que se vuelven a rastrear y registrar en el índice. + Si «Comprobar fecha de última modificación» (rastreo incremental) está habilitado en la configuración general, + los documentos que no han cambiado desde el rastreo anterior (cuyo ``Last-Modified`` no es posterior a la + fecha de última modificación del índice) no se vuelven a obtener y conservan el contenido extraído con el + XPath anterior. Para aplicar el cambio a los documentos ya rastreados, reconstruya el índice, por ejemplo + eliminando esos documentos del índice y volviendo a rastrear. + +Para usar un XPath distinto en una configuración de rastreo, indíquelo en los «Parámetros de configuración» +de la configuración de rastreo web como se muestra a continuación. +En esa configuración de rastreo tiene prioridad sobre el valor de ``crawler.document.html.*.xpath``. +El idioma y el resumen también se pueden indicar con ``field.xpath.default.lang`` y ``field.xpath.default.digest``. + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + Procesamiento de Etiquetas HTML -------------------------------- diff --git a/es/15.9/config/rate-limiting.rst b/es/15.9/config/rate-limiting.rst index 5e6f2df8..080e3866 100644 --- a/es/15.9/config/rate-limiting.rst +++ b/es/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ Comportamiento -------------- - Las solicitudes que excedan el límite de tasa devuelven HTTP 429 (Too Many Requests) -- Las solicitudes de IPs incluidas en la lista de bloqueo devuelven HTTP 403 (Forbidden) +- Las solicitudes de IPs bloqueadas por superar el límite y de IPs incluidas en la lista de bloqueo devuelven HTTP 403 (Forbidden) +- El cuerpo de la respuesta es JSON (429: ``{"error":"rate_limit_exceeded",...,"retry_after":60}``; 403: ``{"error":"ip_blocked",...}``). La respuesta 429 incluye la cabecera ``Retry-After`` - El límite se aplica por dirección IP - La ventana se inicia con la primera solicitud de cada IP y el contador se reinicia después de que expire el período de ventana (método de ventana fija) - Cuando se excede el límite, la IP se bloquea durante el período definido en ``rate.limit.block.duration.ms`` diff --git a/es/15.9/config/search-scroll.rst b/es/15.9/config/search-scroll.rst index 1cd34100..51789434 100644 --- a/es/15.9/config/search-scroll.rst +++ b/es/15.9/config/search-scroll.rst @@ -96,8 +96,10 @@ Parámetros de Solicitud En la búsqueda scroll, puede utilizar los siguientes parámetros. .. note:: - La búsqueda scroll solo admite el método GET. Si se accede con un método distinto a GET, - se devuelve ``405 Method Not Allowed``. + La búsqueda scroll solo admite el método GET. Con los métodos que modifican el estado, como ``POST``, + la validación del token CSRF se realiza primero, por lo que una solicitud sin una cabecera + ``X-Fess-CSRF-Token`` válida recibe ``403 Forbidden`` (``forbidden``) (consulte :doc:`../api/api-overview`). + Con un token válido se devuelve ``405 Method Not Allowed`` (``method_not_allowed``). .. list-table:: :header-rows: 1 diff --git a/es/15.9/install/fess-setup.rst b/es/15.9/install/fess-setup.rst index 62a027bc..bc0cf2e9 100644 --- a/es/15.9/install/fess-setup.rst +++ b/es/15.9/install/fess-setup.rst @@ -196,6 +196,27 @@ remove plugin Elimina los jar instalados de los plugins indicados. Un nombre que no está instalado se notifica y no cambia el código de salida. +.. _fess-setup-offline: + +Entornos sin conexión a Internet +-------------------------------- + +``install plugin``, ``list plugins`` y ``upgrade plugins`` obtienen los plugins de repositorios en +Internet. La pantalla de instalación de la página Sistema > Plugin de la pantalla de administración +también obtiene de los repositorios (``plugin.repositories``) la lista de plugins que se pueden +instalar, por lo que no puede mostrar la lista en un entorno sin conexión al exterior. + +En un entorno así, lleve los jar de los plugins e instálelos de esta forma: + +1. En un entorno con conexión a Internet, descargue el paquete ZIP de |Fess| y los jar de los plugins + necesarios. Los jar se pueden obtener de + ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar``. + Elija la versión que corresponde a este |Fess| (15.9.x para |Fess| 15.9). +2. En el entorno de destino, descomprima el ZIP y coloque los jar en ``app/WEB-INF/plugin/``. + También puede subirlos, después de iniciar |Fess|, desde la pestaña «Local» de la pantalla de + instalación de plugins de la pantalla de administración (consulte :doc:`../admin/plugin-guide`). +3. Inicie |Fess|. Si colocó los jar con |Fess| en ejecución, reinícielo. + Gestión de Temas ================ diff --git a/fr/15.9/admin/labeltype-guide.rst b/fr/15.9/admin/labeltype-guide.rst index d59443d4..b56d48d4 100644 --- a/fr/15.9/admin/labeltype-guide.rst +++ b/fr/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ Hôte virtuel Spécifie le nom d'hôte de l'hôte virtuel. Pour plus de détails, consultez :doc:`Configuration de l'hôte virtuel dans le guide de configuration <../config/security-virtual-host>`. +Sur un écran de recherche consulté via un hôte virtuel, seules les étiquettes dont ce champ indique le nom de cet hôte virtuel sont affichées. +Les étiquettes dont ce champ est vide ne sont pas affichées lors d'un accès via un hôte virtuel. +Lors d'un accès qui ne correspond à aucun hôte virtuel, toutes les étiquettes sont affichées, quel que soit ce champ. + +Une étiquette n'accepte qu'un seul hôte virtuel. +Pour afficher la même étiquette sur plusieurs hôtes virtuels, créez pour chaque hôte virtuel une étiquette ayant le même nom et la même valeur, et indiquez dans le champ d'hôte virtuel de chacune le nom de cet hôte virtuel. +La valeur étant identique, chacune de ces étiquettes filtre les mêmes documents. + Ordre de tri :::::::::::: diff --git a/fr/15.9/admin/plugin-guide.rst b/fr/15.9/admin/plugin-guide.rst index d48109f3..c56e8362 100644 --- a/fr/15.9/admin/plugin-guide.rst +++ b/fr/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ Pour installer un nouveau plugin, cliquez sur le bouton Installer. |image1| -Sélectionnez le plugin que vous souhaitez installer dans le menu déroulant et cliquez sur le bouton Installer pour démarrer l'installation. +Sélectionnez le plugin que vous souhaitez installer dans le menu déroulant de l'onglet « Distant » et cliquez sur le bouton Installer pour démarrer l'installation. +La liste du menu déroulant est obtenue depuis les dépôts de plugins (``plugin.repositories``). Si les dépôts sont inaccessibles, « Impossible de trouver les plugins disponibles. » s'affiche. + +Pour installer un fichier jar local, sélectionnez-le dans « Fichier Jar » de l'onglet « Local » et cliquez sur le bouton Installer. Seuls les fichiers portant l'extension ``.jar`` sont acceptés. +Laissez alors le menu déroulant de l'onglet « Distant » sur sa première entrée (``-``). Si un autre plugin y est sélectionné, c'est ce plugin qui est installé. +Pour l'installation dans un environnement sans accès à Internet, consultez :ref:`fess-setup-offline`. + +Redémarrez |Fess| après avoir installé un plugin. Installation en ligne de commande ================================= diff --git a/fr/15.9/api/api-overview.rst b/fr/15.9/api/api-overview.rst index d1911521..5761a1d3 100644 --- a/fr/15.9/api/api-overview.rst +++ b/fr/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ Le code de statut HTTP par défaut est déterminé en fonction de ``error.code`` - ``Content-Type`` non pris en charge (la plupart des points de terminaison requièrent ``application/json``). * - ``rate_limited`` - 429 - - Limite de débit dépassée. L'en-tête ``Retry-After`` indique le nombre de secondes d'attente. + - Limite de tentatives propre à un endpoint (connexion, changement de mot de passe, chat, etc.) dépassée. L'en-tête ``Retry-After`` indique le nombre de secondes d'attente. * - ``internal_error`` - 500 - Une erreur interne s'est produite sur le serveur. @@ -149,6 +149,25 @@ Tableau : Liste des codes d'erreur La réponse ``method_not_allowed`` est accompagnée d'un en-tête ``Allow`` listant les méthodes HTTP acceptées. +.. note:: + + La limitation de débit des requêtes HTTP de l'ensemble du serveur (``rate.limit.enabled=true``, voir + :doc:`../config/rate-limiting`) s'applique avant l'API v2 ; sa réponse n'utilise donc pas le format + d'enveloppe ci-dessus. Une requête qui dépasse la limite reçoit HTTP 429 avec l'en-tête + ``Retry-After`` (``rate.limit.retry.after.seconds``, ``60`` par défaut) et ce corps : + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + L'adresse IP qui a dépassé la limite est bloquée pendant ``rate.limit.block.duration.ms`` ; les + requêtes reçues pendant ce temps (comme celles des adresses IP listées dans ``rate.limit.blocked.ips``) + reçoivent HTTP 403 avec le corps suivant. Cette réponse ne comporte pas d'en-tête ``Retry-After``. + + :: + + {"error":"ip_blocked","message":"Access denied."} + Authentification et session =========================== diff --git a/fr/15.9/config/crawler-advanced.rst b/fr/15.9/config/crawler-advanced.rst index 83e15cb0..21cca024 100644 --- a/fr/15.9/config/crawler-advanced.rst +++ b/fr/15.9/config/crawler-advanced.rst @@ -429,6 +429,26 @@ Exemples de XPath personnalisés # Inclure également les mots-clés meta dans le résumé crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +Ces paramètres valent pour tout le système et s'appliquent à toutes les configurations de crawl web. + +.. note:: + + Les modifications s'appliquent aux documents au fur et à mesure qu'ils sont de nouveau crawlés et indexés. + Si « Vérifier la dernière modification » (crawl incrémental) est activé dans les paramètres généraux, + les documents qui n'ont pas changé depuis le crawl précédent (dont le ``Last-Modified`` n'est pas plus + récent que la date de dernière modification de l'index) ne sont pas récupérés à nouveau et conservent le + contenu extrait avec l'ancien XPath. Pour appliquer la modification aux documents déjà crawlés, + reconstruisez l'index, par exemple en supprimant ces documents de l'index puis en relançant le crawl. + +Pour utiliser un XPath différent dans une configuration de crawl, indiquez-le dans les « Paramètres de +configuration » de la configuration de crawl web comme ci-dessous. +Pour cette configuration de crawl, il est prioritaire sur la valeur de ``crawler.document.html.*.xpath``. +La langue et le résumé peuvent aussi être indiqués avec ``field.xpath.default.lang`` et ``field.xpath.default.digest``. + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + Traitement des balises HTML --------------------------- diff --git a/fr/15.9/config/rate-limiting.rst b/fr/15.9/config/rate-limiting.rst index cc8856b1..762e5745 100644 --- a/fr/15.9/config/rate-limiting.rst +++ b/fr/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ Comportement ---- - Les requêtes dépassant la limite de débit retournent HTTP 429 (Too Many Requests) -- Les requêtes provenant d'IP figurant dans la liste de blocage retournent HTTP 403 (Forbidden) +- Les requêtes provenant d'IP bloquées pour dépassement de la limite ou figurant dans la liste de blocage retournent HTTP 403 (Forbidden) +- Le corps de la réponse est du JSON (429 : ``{"error":"rate_limit_exceeded",...,"retry_after":60}`` ; 403 : ``{"error":"ip_blocked",...}``). La réponse 429 comporte l'en-tête ``Retry-After`` - Les limites sont appliquées par adresse IP - Pour chaque IP, la fenêtre commence au premier requête et le compteur est réinitialisé après l'expiration de la période de la fenêtre (méthode de fenêtre fixe) - Le dépassement de la limite entraîne le blocage de l'IP pendant la durée ``rate.limit.block.duration.ms`` diff --git a/fr/15.9/config/search-scroll.rst b/fr/15.9/config/search-scroll.rst index 7133e62b..334a7d08 100644 --- a/fr/15.9/config/search-scroll.rst +++ b/fr/15.9/config/search-scroll.rst @@ -100,8 +100,10 @@ Paramètres de requête Les paramètres suivants peuvent être utilisés pour la recherche par défilement. .. note:: - La recherche par défilement ne prend en charge que la méthode GET. Si vous accédez avec - une méthode autre que GET, ``405 Method Not Allowed`` est renvoyé. + La recherche par défilement ne prend en charge que la méthode GET. Pour les méthodes qui modifient + l'état, comme ``POST``, la vérification du jeton CSRF a lieu en premier : une requête sans en-tête + ``X-Fess-CSRF-Token`` valide reçoit ``403 Forbidden`` (``forbidden``) (voir :doc:`../api/api-overview`). + Avec un jeton valide, ``405 Method Not Allowed`` (``method_not_allowed``) est renvoyé. .. list-table:: :header-rows: 1 diff --git a/fr/15.9/install/fess-setup.rst b/fr/15.9/install/fess-setup.rst index 91bbb9bf..d50faafc 100644 --- a/fr/15.9/install/fess-setup.rst +++ b/fr/15.9/install/fess-setup.rst @@ -197,6 +197,28 @@ remove plugin Supprime les jars installés des plugins indiqués. Un nom qui n'est pas installé est signalé, sans modifier le code de sortie. +.. _fess-setup-offline: + +Environnements sans accès à Internet +------------------------------------ + +``install plugin``, ``list plugins`` et ``upgrade plugins`` récupèrent les plugins depuis des dépôts +sur Internet. L'écran d'installation de la page Système > Plugin de l'écran d'administration obtient +lui aussi la liste des plugins installables depuis les dépôts (``plugin.repositories``) ; il ne peut +donc pas afficher cette liste dans un environnement sans accès à l'extérieur. + +Dans un tel environnement, apportez les jars des plugins et installez-les ainsi : + +1. Dans un environnement ayant accès à Internet, téléchargez le paquet ZIP de |Fess| et les jars des + plugins nécessaires. Les jars sont disponibles à l'adresse + ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar``. + Choisissez la version correspondant à ce |Fess| (15.9.x pour |Fess| 15.9). +2. Dans l'environnement cible, décompressez le ZIP et placez les jars dans ``app/WEB-INF/plugin/``. + Vous pouvez aussi les téléverser, une fois |Fess| démarré, depuis l'onglet « Local » de l'écran + d'installation des plugins de l'écran d'administration (voir :doc:`../admin/plugin-guide`). +3. Démarrez |Fess|. Si vous avez placé les jars pendant que |Fess| était en cours d'exécution, + redémarrez-le. + Gestion des thèmes ================== diff --git a/ja/15.9/admin/labeltype-guide.rst b/ja/15.9/admin/labeltype-guide.rst index 2a559354..cbaf0317 100644 --- a/ja/15.9/admin/labeltype-guide.rst +++ b/ja/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ 仮想ホストのホスト名を指定します。 詳しくは :doc:`設定ガイドの仮想ホスト <../config/security-virtual-host>` を参照してください。 +仮想ホストでアクセスされた検索画面には、この欄にその仮想ホスト名を指定したラベルだけが表示されます。 +この欄が空のラベルは、仮想ホストでアクセスされたときには表示されません。 +どの仮想ホストにも一致しないアクセスでは、この欄に関係なくすべてのラベルが表示されます。 + +1つのラベルに指定できる仮想ホストは1つです。 +複数の仮想ホストで同じラベルを表示するには、名前と値が同じラベルを仮想ホストごとに作成し、それぞれの仮想ホスト欄にその仮想ホスト名を指定します。 +値が同じであれば、どのラベルを選択しても同じドキュメントに絞り込まれます。 + 表示順序 :::::: diff --git a/ja/15.9/admin/plugin-guide.rst b/ja/15.9/admin/plugin-guide.rst index 280f0780..45a9cb35 100644 --- a/ja/15.9/admin/plugin-guide.rst +++ b/ja/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ |image1| -プルダウンメニューでインストールしたいプラグインを選択してインストールボタンをクリックすると、インストールが開始されます。 +「リモート」タブのプルダウンメニューでインストールしたいプラグインを選択してインストールボタンをクリックすると、インストールが開始されます。 +プルダウンメニューの一覧は、プラグインのリポジトリ( ``plugin.repositories`` )から取得します。リポジトリに接続できない場合は「利用可能なプラグインが見つかりませんでした。」と表示されます。 + +手元の jar ファイルをインストールするには、「ローカル」タブの「Jarファイル」でファイルを選択してインストールボタンをクリックします。拡張子が ``.jar`` のファイルだけを指定できます。 +このとき「リモート」タブのプルダウンメニューは先頭の項目( ``-`` )のままにしてください。ほかのプラグインを選択していると、そちらがインストールされます。 +インターネットに接続できない環境での導入方法は :ref:`fess-setup-offline` を参照してください。 + +プラグインをインストールした後は |Fess| を再起動してください。 コマンドラインからのインストール ================================ diff --git a/ja/15.9/api/api-overview.rst b/ja/15.9/api/api-overview.rst index 5ffde6fa..02f1219a 100644 --- a/ja/15.9/api/api-overview.rst +++ b/ja/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ v2 のすべての JSON レスポンスは、共通のエンベロープ構造 - サポートされていない ``Content-Type`` です(多くのエンドポイントは ``application/json`` を要求します)。 * - ``rate_limited`` - 429 - - レート制限を超えました。 ``Retry-After`` ヘッダーに待機すべき秒数が示されます。 + - ログイン、パスワード変更、チャットなどのエンドポイントごとの試行回数の上限を超えました。 ``Retry-After`` ヘッダーに待機すべき秒数が示されます。 * - ``internal_error`` - 500 - サーバー内部でエラーが発生しました。 @@ -149,6 +149,25 @@ v2 のすべての JSON レスポンスは、共通のエンベロープ構造 ``method_not_allowed`` のレスポンスには、対応する HTTP メソッドを列挙した ``Allow`` ヘッダーが付与されます。 +.. note:: + + サーバー全体の HTTP リクエストのレート制限( ``rate.limit.enabled=true`` 、 :doc:`../config/rate-limiting` を参照) + は v2 API より前の段階で適用されるため、その応答は上記のエンベロープ形式ではありません。 + 制限を超えたリクエストには HTTP 429 と ``Retry-After`` ヘッダー( ``rate.limit.retry.after.seconds`` 、既定 ``60`` )が付き、 + 本文は次のとおりです。 + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + 制限を超えた IP アドレスは ``rate.limit.block.duration.ms`` の間ブロックされ、その間のリクエスト + ( ``rate.limit.blocked.ips`` に含まれる IP アドレスからのリクエストも同様)には HTTP 403 と次の本文が返されます。 + この応答には ``Retry-After`` ヘッダーは付きません。 + + :: + + {"error":"ip_blocked","message":"Access denied."} + 認証とセッション ============== diff --git a/ja/15.9/config/crawler-advanced.rst b/ja/15.9/config/crawler-advanced.rst index 3d9772dc..9df12724 100644 --- a/ja/15.9/config/crawler-advanced.rst +++ b/ja/15.9/config/crawler-advanced.rst @@ -429,6 +429,24 @@ HTML要素を抽出するためのXPath設定です。 # meta keywordsもダイジェストに含める crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +これらはシステム全体の設定で、すべてのウェブクロール設定に適用されます。 + +.. note:: + + 変更は、次にクロールされて索引に登録されるドキュメントから反映されます。 + システム設定の「最終更新日時の確認」(差分クロール)が有効な場合、前回のクロールから更新されていない + ( ``Last-Modified`` が索引の最終更新日時より新しくない)ドキュメントは再クロールでも取得し直されないため、 + 以前の XPath で抽出した内容のまま残ります。すでにクロール済みのドキュメントに反映するには、 + 対象のドキュメントを索引から削除してからクロールし直すなど、索引を作り直してください。 + +クロール設定ごとに XPath を変えるには、ウェブクロール設定の「設定パラメーター」に次のように指定します。 +指定したクロール設定では、 ``crawler.document.html.*.xpath`` の値より優先されます。 +言語とダイジェストも、それぞれ ``field.xpath.default.lang`` 、 ``field.xpath.default.digest`` で指定できます。 + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + HTML タグ処理 ------------- diff --git a/ja/15.9/config/rate-limiting.rst b/ja/15.9/config/rate-limiting.rst index 61bf4c87..55b6702b 100644 --- a/ja/15.9/config/rate-limiting.rst +++ b/ja/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ HTTPリクエストのレート制限 ---- - レート制限を超えたリクエストは HTTP 429 (Too Many Requests) を返します -- ブロックIPリストに含まれるIPからのリクエストは HTTP 403 (Forbidden) を返します +- 制限超過によってブロックされているIP、およびブロックIPリストに含まれるIPからのリクエストは HTTP 403 (Forbidden) を返します +- 応答の本文は JSON です(429 は ``{"error":"rate_limit_exceeded",...,"retry_after":60}`` 、403 は ``{"error":"ip_blocked",...}`` )。429 には ``Retry-After`` ヘッダーが付きます - 制限はIPアドレス単位で適用されます - IPごとに最初のリクエストからウィンドウが開始し、ウィンドウ期間経過後にカウントがリセットされます(固定ウィンドウ方式) - 制限超過時はIPが ``rate.limit.block.duration.ms`` の期間ブロックされます diff --git a/ja/15.9/config/search-scroll.rst b/ja/15.9/config/search-scroll.rst index d6cef836..2a60d84f 100644 --- a/ja/15.9/config/search-scroll.rst +++ b/ja/15.9/config/search-scroll.rst @@ -100,8 +100,10 @@ スクロール検索では、以下のパラメータを使用できます。 .. note:: - スクロール検索は GET メソッドのみ対応しています。GET 以外のメソッドでアクセスした場合は - ``405 Method Not Allowed`` が返されます。 + スクロール検索は GET メソッドのみ対応しています。 ``POST`` などの状態を変更するメソッドでは + CSRF トークンの検証が先に行われるため、有効な ``X-Fess-CSRF-Token`` ヘッダーが無いリクエストには + ``403 Forbidden`` ( ``forbidden`` )が返されます( :doc:`../api/api-overview` を参照)。 + 有効なトークンを付けた場合は ``405 Method Not Allowed`` ( ``method_not_allowed`` )が返されます。 .. list-table:: :header-rows: 1 diff --git a/ja/15.9/install/fess-setup.rst b/ja/15.9/install/fess-setup.rst index 5703c1d7..2f5eee6a 100644 --- a/ja/15.9/install/fess-setup.rst +++ b/ja/15.9/install/fess-setup.rst @@ -143,6 +143,19 @@ remove plugin 指定したプラグインの jar を削除します。導入されていない名前はその旨を表示するだけで、終了コードには影響しません。 +.. _fess-setup-offline: + +インターネットに接続できない環境 +-------------------------------- + +``install plugin`` 、 ``list plugins`` 、 ``upgrade plugins`` は、プラグインをインターネット上のリポジトリから取得します。管理画面の「システム > プラグイン」のインストール画面も、インストールできるプラグインの一覧をリポジトリ( ``plugin.repositories`` )から取得するため、外部に接続できない環境では一覧を表示できません。 + +このような環境では、プラグインの jar を持ち込んで導入します。 + +1. インターネットに接続できる環境で、 |Fess| の ZIP パッケージと、必要なプラグインの jar をダウンロードします。jar は ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar`` から取得できます。この |Fess| に対応するバージョン( |Fess| 15.9 なら 15.9.x)を選んでください。 +2. 対象の環境で ZIP を展開し、jar を ``app/WEB-INF/plugin/`` に置きます。 |Fess| の起動後に、管理画面のプラグインのインストール画面の「ローカル」タブからアップロードすることもできます( :doc:`../admin/plugin-guide` を参照)。 +3. |Fess| を起動します。起動中に jar を置いた場合は再起動してください。 + テーマの管理 ============ diff --git a/ko/15.9/admin/labeltype-guide.rst b/ko/15.9/admin/labeltype-guide.rst index fa76fea3..8ab0a8cc 100644 --- a/ko/15.9/admin/labeltype-guide.rst +++ b/ko/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ 가상 호스트의 호스트명을 지정합니다. 자세한 내용은 :doc:`설정 가이드의 가상 호스트 <../config/security-virtual-host>` 를 참조하십시오. +가상 호스트로 접근한 검색 화면에는 이 항목에 그 가상 호스트 이름을 지정한 라벨만 표시됩니다. +이 항목이 비어 있는 라벨은 가상 호스트로 접근했을 때 표시되지 않습니다. +어느 가상 호스트에도 일치하지 않는 접근에서는 이 항목과 관계없이 모든 라벨이 표시됩니다. + +하나의 라벨에 지정할 수 있는 가상 호스트는 하나입니다. +여러 가상 호스트에서 같은 라벨을 표시하려면 이름과 값이 같은 라벨을 가상 호스트별로 작성하고, 각각의 가상 호스트 항목에 그 가상 호스트 이름을 지정합니다. +값이 같으면 어느 라벨을 선택해도 같은 문서로 좁혀집니다. + 표시 순서 :::::: diff --git a/ko/15.9/admin/plugin-guide.rst b/ko/15.9/admin/plugin-guide.rst index bc306412..4fca2178 100644 --- a/ko/15.9/admin/plugin-guide.rst +++ b/ko/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ |image1| -풀다운 메뉴에서 설치할 플러그인을 선택하고 설치 버튼을 클릭하면 설치가 시작됩니다. +「원격」 탭의 풀다운 메뉴에서 설치할 플러그인을 선택하고 설치 버튼을 클릭하면 설치가 시작됩니다. +풀다운 메뉴의 목록은 플러그인 저장소( ``plugin.repositories`` )에서 가져옵니다. 저장소에 연결할 수 없는 경우에는 「사용 가능한 플러그인을 찾을 수 없습니다.」라고 표시됩니다. + +로컬에 있는 jar 파일을 설치하려면 「로컬」 탭의 「Jar 파일」에서 파일을 선택하고 설치 버튼을 클릭합니다. 확장자가 ``.jar`` 인 파일만 지정할 수 있습니다. +이때 「원격」 탭의 풀다운 메뉴는 첫 번째 항목( ``-`` )인 채로 두십시오. 다른 플러그인을 선택하고 있으면 그 플러그인이 설치됩니다. +인터넷에 연결할 수 없는 환경에서의 도입 방법은 :ref:`fess-setup-offline` 을 참조하십시오. + +플러그인을 설치한 후에는 |Fess| 를 재시작하십시오. 명령줄에서 설치 =============== diff --git a/ko/15.9/api/api-overview.rst b/ko/15.9/api/api-overview.rst index 1d8ff54c..d6a6f186 100644 --- a/ko/15.9/api/api-overview.rst +++ b/ko/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ v2 의 모든 JSON 응답은 공통 엔벨로프 구조로 반환됩니다. - 지원되지 않는 ``Content-Type`` 입니다 (대부분의 엔드포인트는 ``application/json`` 을 요구합니다). * - ``rate_limited`` - 429 - - 속도 제한을 초과했습니다. ``Retry-After`` 헤더에 대기해야 할 초 단위 시간이 표시됩니다. + - 로그인, 비밀번호 변경, 채팅 등 엔드포인트별 시도 횟수 상한을 초과했습니다. ``Retry-After`` 헤더에 대기해야 할 초 단위 시간이 표시됩니다. * - ``internal_error`` - 500 - 서버 내부에서 오류가 발생했습니다. @@ -149,6 +149,25 @@ v2 의 모든 JSON 응답은 공통 엔벨로프 구조로 반환됩니다. ``method_not_allowed`` 응답에는 대응하는 HTTP 메서드를 나열한 ``Allow`` 헤더가 부여됩니다. +.. note:: + + 서버 전체의 HTTP 요청 속도 제한( ``rate.limit.enabled=true`` , :doc:`../config/rate-limiting` 참조)은 + v2 API 보다 앞 단계에서 적용되므로, 그 응답은 위의 엔벨로프 형식이 아닙니다. + 제한을 초과한 요청에는 HTTP 429 와 ``Retry-After`` 헤더( ``rate.limit.retry.after.seconds`` , 기본값 ``60`` )가 붙으며, + 본문은 다음과 같습니다. + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + 제한을 초과한 IP 주소는 ``rate.limit.block.duration.ms`` 동안 블록되며, 그동안의 요청 + ( ``rate.limit.blocked.ips`` 에 포함된 IP 주소의 요청도 마찬가지)에는 HTTP 403 과 다음 본문이 반환됩니다. + 이 응답에는 ``Retry-After`` 헤더가 붙지 않습니다. + + :: + + {"error":"ip_blocked","message":"Access denied."} + 인증과 세션 =========== diff --git a/ko/15.9/config/crawler-advanced.rst b/ko/15.9/config/crawler-advanced.rst index 2d9574dd..a5b1ed82 100644 --- a/ko/15.9/config/crawler-advanced.rst +++ b/ko/15.9/config/crawler-advanced.rst @@ -429,6 +429,24 @@ HTML 요소를 추출하기 위한 XPath 설정입니다. # meta keywords도 다이제스트에 포함 crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +이들은 시스템 전체 설정이며, 모든 웹 크롤 설정에 적용됩니다. + +.. note:: + + 변경 사항은 다음에 크롤되어 인덱스에 등록되는 문서부터 반영됩니다. + 시스템 설정의 「최종 갱신 일시 확인」(차분 크롤)이 활성화된 경우, 이전 크롤 이후 갱신되지 않은 + ( ``Last-Modified`` 가 인덱스의 최종 갱신 일시보다 새롭지 않은) 문서는 재크롤에서도 다시 가져오지 않으므로, + 이전 XPath 로 추출한 내용 그대로 남습니다. 이미 크롤된 문서에 반영하려면 + 대상 문서를 인덱스에서 삭제한 후 다시 크롤하는 등 인덱스를 다시 작성하십시오. + +크롤 설정별로 XPath 를 바꾸려면 웹 크롤 설정의 「설정 파라미터」에 다음과 같이 지정합니다. +지정한 크롤 설정에서는 ``crawler.document.html.*.xpath`` 값보다 우선합니다. +언어와 다이제스트도 각각 ``field.xpath.default.lang`` , ``field.xpath.default.digest`` 로 지정할 수 있습니다. + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + HTML 태그 처리 -------------- diff --git a/ko/15.9/config/rate-limiting.rst b/ko/15.9/config/rate-limiting.rst index 97124a5e..e330575e 100644 --- a/ko/15.9/config/rate-limiting.rst +++ b/ko/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ HTTP 요청 속도 제한 ---- - 속도 제한을 초과한 요청은 HTTP 429 (Too Many Requests)를 반환합니다 -- 블록 IP 목록에 포함된 IP의 요청은 HTTP 403 (Forbidden)을 반환합니다 +- 제한 초과로 블록된 IP, 그리고 블록 IP 목록에 포함된 IP의 요청은 HTTP 403 (Forbidden)을 반환합니다 +- 응답 본문은 JSON 입니다(429 는 ``{"error":"rate_limit_exceeded",...,"retry_after":60}`` , 403 은 ``{"error":"ip_blocked",...}`` ). 429 에는 ``Retry-After`` 헤더가 붙습니다 - 제한은 IP 주소 단위로 적용됩니다 - IP별로 최초 요청부터 윈도우가 시작되며, 윈도우 기간 경과 후 카운트가 리셋됩니다(고정 윈도우 방식) - 제한 초과 시 IP가 ``rate.limit.block.duration.ms`` 기간 동안 블록됩니다 diff --git a/ko/15.9/config/search-scroll.rst b/ko/15.9/config/search-scroll.rst index 6dcc174f..fbe4f004 100644 --- a/ko/15.9/config/search-scroll.rst +++ b/ko/15.9/config/search-scroll.rst @@ -100,8 +100,10 @@ 스크롤 검색에서는 다음 파라미터를 사용할 수 있습니다. .. note:: - 스크롤 검색은 GET 메서드만 지원합니다. GET 이외의 메서드로 접근하면 - ``405 Method Not Allowed`` 가 반환됩니다. + 스크롤 검색은 GET 메서드만 지원합니다. ``POST`` 등 상태를 변경하는 메서드에서는 + CSRF 토큰 검증이 먼저 수행되므로, 유효한 ``X-Fess-CSRF-Token`` 헤더가 없는 요청에는 + ``403 Forbidden`` ( ``forbidden`` )이 반환됩니다( :doc:`../api/api-overview` 참조). + 유효한 토큰을 붙인 경우에는 ``405 Method Not Allowed`` ( ``method_not_allowed`` )가 반환됩니다. .. list-table:: :header-rows: 1 diff --git a/ko/15.9/install/fess-setup.rst b/ko/15.9/install/fess-setup.rst index 982d9946..492ebac2 100644 --- a/ko/15.9/install/fess-setup.rst +++ b/ko/15.9/install/fess-setup.rst @@ -143,6 +143,19 @@ remove plugin 지정한 플러그인의 설치된 jar 를 삭제합니다. 설치되지 않은 이름은 그 사실을 표시할 뿐이며, 종료 코드에는 영향을 주지 않습니다. +.. _fess-setup-offline: + +인터넷에 연결할 수 없는 환경 +---------------------------- + +``install plugin`` , ``list plugins`` , ``upgrade plugins`` 는 플러그인을 인터넷상의 저장소에서 가져옵니다. 관리 화면의 「시스템 > 플러그인」 설치 화면도 설치할 수 있는 플러그인 목록을 저장소( ``plugin.repositories`` )에서 가져오므로, 외부에 연결할 수 없는 환경에서는 목록을 표시할 수 없습니다. + +이러한 환경에서는 플러그인 jar 를 반입하여 설치합니다. + +1. 인터넷에 연결할 수 있는 환경에서 |Fess| ZIP 패키지와 필요한 플러그인 jar 를 다운로드합니다. jar 는 ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar`` 에서 가져올 수 있습니다. 이 |Fess| 에 대응하는 버전( |Fess| 15.9 라면 15.9.x)을 선택하십시오. +2. 대상 환경에서 ZIP 을 압축 해제하고, jar 를 ``app/WEB-INF/plugin/`` 에 둡니다. |Fess| 시작 후에 관리 화면 플러그인 설치 화면의 「로컬」 탭에서 업로드할 수도 있습니다( :doc:`../admin/plugin-guide` 참조). +3. |Fess| 를 시작합니다. 실행 중에 jar 를 둔 경우에는 재시작하십시오. + 테마 관리 ========= diff --git a/zh-cn/15.9/admin/labeltype-guide.rst b/zh-cn/15.9/admin/labeltype-guide.rst index dd79be35..b3665933 100644 --- a/zh-cn/15.9/admin/labeltype-guide.rst +++ b/zh-cn/15.9/admin/labeltype-guide.rst @@ -72,6 +72,14 @@ 指定虚拟主机的主机名。 详细信息请参阅 :doc:`配置指南的虚拟主机 <../config/security-virtual-host>`。 +通过虚拟主机访问的检索界面中,只显示在此项中指定了该虚拟主机名的标签。 +此项为空的标签,在通过虚拟主机访问时不会显示。 +在不匹配任何虚拟主机的访问中,无论此项如何,都会显示所有标签。 + +一个标签只能指定一个虚拟主机。 +要在多个虚拟主机中显示相同的标签,请为每个虚拟主机创建名称和值都相同的标签,并在各自的虚拟主机项中指定该虚拟主机名。 +只要值相同,无论选择哪个标签,都会筛选出相同的文档。 + 排序顺序 :::::: diff --git a/zh-cn/15.9/admin/plugin-guide.rst b/zh-cn/15.9/admin/plugin-guide.rst index 93a094b9..7184aec5 100644 --- a/zh-cn/15.9/admin/plugin-guide.rst +++ b/zh-cn/15.9/admin/plugin-guide.rst @@ -26,7 +26,14 @@ |image1| -在下拉菜单中选择要安装的插件,然后单击"安装"按钮,即可开始安装。 +在"远程"选项卡的下拉菜单中选择要安装的插件,然后单击"安装"按钮,即可开始安装。 +下拉菜单的列表从插件仓库( ``plugin.repositories`` )获取。无法连接到仓库时,会显示"未找到可用插件。"。 + +要安装本地的 jar 文件,请在"本地"选项卡的"Jar文件"中选择文件,然后单击"安装"按钮。只能指定扩展名为 ``.jar`` 的文件。 +此时请将"远程"选项卡的下拉菜单保持为第一项( ``-`` )。如果选择了其他插件,将安装该插件。 +关于在无法连接互联网的环境中的安装方法,请参阅 :ref:`fess-setup-offline` 。 + +安装插件后,请重启 |Fess| 。 从命令行安装 ============ diff --git a/zh-cn/15.9/api/api-overview.rst b/zh-cn/15.9/api/api-overview.rst index 4c036fa2..86a14086 100644 --- a/zh-cn/15.9/api/api-overview.rst +++ b/zh-cn/15.9/api/api-overview.rst @@ -134,7 +134,7 @@ v2 的所有 JSON 响应均以公共信封结构返回。 - 不支持的 ``Content-Type``\ (大多数端点要求 ``application/json``\ )。 * - ``rate_limited`` - 429 - - 超过速率限制。\ ``Retry-After`` 头中会指示需要等待的秒数。 + - 超过了登录、密码更改、聊天等各端点的尝试次数上限。\ ``Retry-After`` 头中会指示需要等待的秒数。 * - ``internal_error`` - 500 - 服务器内部发生了错误。 @@ -149,6 +149,25 @@ v2 的所有 JSON 响应均以公共信封结构返回。 ``method_not_allowed`` 的响应中,会附带列举了支持 HTTP 方法的 ``Allow`` 头。 +.. note:: + + 服务器整体的 HTTP 请求速率限制( ``rate.limit.enabled=true`` ,参见 :doc:`../config/rate-limiting` ) + 在 v2 API 之前的阶段应用,因此其响应不是上述的信封格式。 + 超过限制的请求会返回 HTTP 429 并附带 ``Retry-After`` 头( ``rate.limit.retry.after.seconds`` ,默认 ``60`` ), + 响应体如下。 + + :: + + {"error":"rate_limit_exceeded","message":"Too many requests. Please retry after 60 seconds.","retry_after":60} + + 超过限制的 IP 地址会在 ``rate.limit.block.duration.ms`` 期间被阻止,在此期间的请求 + (来自 ``rate.limit.blocked.ips`` 中所列 IP 地址的请求也一样)会返回 HTTP 403 和以下响应体。 + 该响应不附带 ``Retry-After`` 头。 + + :: + + {"error":"ip_blocked","message":"Access denied."} + 认证与会话 ========== diff --git a/zh-cn/15.9/config/crawler-advanced.rst b/zh-cn/15.9/config/crawler-advanced.rst index 97d61940..8bf534f0 100644 --- a/zh-cn/15.9/config/crawler-advanced.rst +++ b/zh-cn/15.9/config/crawler-advanced.rst @@ -429,6 +429,24 @@ XPath 配置 # 摘要中也包含 meta keywords crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content +这些是系统整体的设置,会应用于所有 Web 爬取配置。 + +.. note:: + + 更改会从下次被爬取并注册到索引的文档开始生效。 + 当系统设置的「检查上次修改时间」(差分爬取)启用时,自上次爬取以来未更新 + ( ``Last-Modified`` 不比索引中的最后修改时间新)的文档即使重新爬取也不会被重新获取, + 因此仍保留用以前的 XPath 提取的内容。要使更改应用于已爬取的文档, + 请从索引中删除目标文档后重新爬取等,重建索引。 + +要按爬取配置更改 XPath,请在 Web 爬取配置的「配置参数」中按如下方式指定。 +在指定的爬取配置中,其优先于 ``crawler.document.html.*.xpath`` 的值。 +语言和摘要也可以分别通过 ``field.xpath.default.lang`` 、 ``field.xpath.default.digest`` 指定。 + +:: + + field.xpath.default.content=//DIV[@id='main-content'] + HTML 标签处理 ------------- diff --git a/zh-cn/15.9/config/rate-limiting.rst b/zh-cn/15.9/config/rate-limiting.rst index ab5c603c..bc55307b 100644 --- a/zh-cn/15.9/config/rate-limiting.rst +++ b/zh-cn/15.9/config/rate-limiting.rst @@ -39,7 +39,8 @@ HTTP请求的速率限制 ---- - 超过速率限制的请求返回HTTP 429 (Too Many Requests) -- 被阻止的IP地址的请求返回HTTP 403 (Forbidden) +- 因超过限制而被阻止的IP地址,以及阻止IP列表中的IP地址的请求返回HTTP 403 (Forbidden) +- 响应体为JSON(429 为 ``{"error":"rate_limit_exceeded",...,"retry_after":60}`` ,403 为 ``{"error":"ip_blocked",...}`` )。429 附带 ``Retry-After`` 头 - 限制按IP地址单位应用 - 每个IP从首次请求开始计算窗口,窗口期间过后计数重置(固定窗口方式) - 超过限制时,IP会被阻止 ``rate.limit.block.duration.ms`` 的期间 diff --git a/zh-cn/15.9/config/search-scroll.rst b/zh-cn/15.9/config/search-scroll.rst index 48b10035..4fee6d47 100644 --- a/zh-cn/15.9/config/search-scroll.rst +++ b/zh-cn/15.9/config/search-scroll.rst @@ -99,8 +99,10 @@ 滚动搜索可使用以下参数。 .. note:: - 滚动搜索仅支持 GET 方法。使用 GET 以外的方法访问时,将返回 - ``405 Method Not Allowed``\ 。 + 滚动搜索仅支持 GET 方法。对于 ``POST`` 等会改变状态的方法,会先进行 CSRF 令牌的验证, + 因此没有有效 ``X-Fess-CSRF-Token`` 头的请求将返回 ``403 Forbidden`` ( ``forbidden`` ) + (参见 :doc:`../api/api-overview` )。附带有效令牌时,将返回 + ``405 Method Not Allowed`` ( ``method_not_allowed`` )。 .. list-table:: :header-rows: 1 diff --git a/zh-cn/15.9/install/fess-setup.rst b/zh-cn/15.9/install/fess-setup.rst index af625503..410c3f9b 100644 --- a/zh-cn/15.9/install/fess-setup.rst +++ b/zh-cn/15.9/install/fess-setup.rst @@ -143,6 +143,19 @@ remove plugin 删除指定插件已安装的 jar。未安装的名称只会给出提示,不影响退出码。 +.. _fess-setup-offline: + +无法连接互联网的环境 +-------------------- + +``install plugin`` 、 ``list plugins`` 、 ``upgrade plugins`` 从互联网上的仓库获取插件。管理界面「系统 > 插件」的安装页面也从仓库( ``plugin.repositories`` )获取可安装插件的列表,因此在无法连接外部的环境中无法显示该列表。 + +在这种环境中,请带入插件的 jar 进行安装。 + +1. 在可以连接互联网的环境中,下载 |Fess| 的 ZIP 包和所需插件的 jar。jar 可以从 ``https://maven.codelibs.org/release/org/codelibs/fess///-.jar`` 获取。请选择与此 |Fess| 对应的版本( |Fess| 15.9 则为 15.9.x)。 +2. 在目标环境中解压 ZIP,并将 jar 放入 ``app/WEB-INF/plugin/``\ 。也可以在 |Fess| 启动后,从管理界面插件安装页面的「本地」选项卡上传(参见 :doc:`../admin/plugin-guide` )。 +3. 启动 |Fess|\ 。如果在运行中放入了 jar,请重启。 + 管理主题 ========