diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 550e93f33..7387f5d52 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -34,6 +34,12 @@ jobs: - name: Every eol.rst matches versions.json run: python tools/update_eol.py --check + # fess_config.properties is not vendored here, so this cannot compare a page + # against fess. It checks the seven pages against each other and against their + # translation catalogues, which is what catches a page edited by hand. + - name: Every properties.rst agrees with its catalogue + run: python tools/gen_properties_doc.py --check + headings: name: section titles runs-on: ubuntu-latest diff --git a/conf/conf.py b/conf/conf.py index 0bc49c183..559ac1663 100644 --- a/conf/conf.py +++ b/conf/conf.py @@ -100,7 +100,9 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +# The .po files beside a generated properties.rst are translation catalogues, not +# documents; Sphinx must not try to read them as source. +exclude_patterns = ['_build', '**/*.po'] # The reST default role (used for this markup: `text`) to use for all # documents. diff --git a/de/15.9/config/index.rst b/de/15.9/config/index.rst index b35f54e2e..e878beabb 100644 --- a/de/15.9/config/index.rst +++ b/de/15.9/config/index.rst @@ -8,6 +8,7 @@ Ein umfassender Leitfaden zur Konfiguration von |Fess|. Jeder Abschnitt ist nach :caption: Erste Schritte intro + properties .. toctree:: :maxdepth: 2 diff --git a/de/15.9/config/properties.po b/de/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/de/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/de/15.9/config/properties.rst b/de/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/de/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/de/15.9/config/rag-chat.rst b/de/15.9/config/rag-chat.rst index fd63b91aa..b61c33e2c 100644 --- a/de/15.9/config/rag-chat.rst +++ b/de/15.9/config/rag-chat.rst @@ -157,7 +157,7 @@ Liste der Kerneinstellungen, die in ``fess_config.properties`` konfiguriert werd - Aus Dokumenten abzurufende Felder - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - Maximale Zeichenzahl von Benutzernachrichten. Dieser Wert wird als System Property gelesen; der Eintrag in ``fess_config.properties`` wird nicht verwendet. Legen Sie ihn über System Properties oder ``-Dfess.system.rag.chat.message.max.length`` fest. + - Maximale Zeichenzahl von Benutzernachrichten. Dieser Wert wird als System Property gelesen. Legen Sie ihn über System Properties oder ``-Dfess.system.rag.chat.message.max.length`` fest. - ``4000`` * - ``rag.chat.highlight.fragment.size`` - Fragmentgröße für Such-Hervorhebungen diff --git a/en/15.9/config/index.rst b/en/15.9/config/index.rst index 7b66dcd89..9a256e556 100644 --- a/en/15.9/config/index.rst +++ b/en/15.9/config/index.rst @@ -8,6 +8,7 @@ This is a comprehensive guide for configuring |Fess|. Each section is organized :caption: Introduction intro + properties .. toctree:: :maxdepth: 2 diff --git a/en/15.9/config/properties.rst b/en/15.9/config/properties.rst index 8f3b87f2f..89f83201c 100644 --- a/en/15.9/config/properties.rst +++ b/en/15.9/config/properties.rst @@ -2,548 +2,627 @@ Fess Configuration Properties ============================= -This document describes the configuration properties of Fess. -The default values can be found in ``fess_config.properties`` +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. -See table bellow for the list of configuration -properties and their descriptions: +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. Core ---- -.. list-table:: Search Engine Configuration +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine :header-rows: 1 * - Name - Description - Default - * - domain.tile - - The domain name of the tile server. - - Fess * - search_engine.type - - The type of search engine. - - default + - The type of search engine backend (e.g., default, opensearch). + - ``default`` * - search_engine.http.url - - The URL of the search engine. - - http://localhost:9200 + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` * - search_engine.http.ssl.certificate_authorities - - The path to the certificate authorities file. + - Path to SSL certificate authorities for secure HTTP connections. - (empty) * - search_engine.username - - The username for the search engine. + - Username for authenticating to the search engine. - (empty) * - search_engine.password - - The password for the search engine. + - Password for authenticating to the search engine. - (empty) * - search_engine.heartbeat_interval - - The interval of the heartbeat. (in milliseconds) - - 10000 - -.. list-table:: Cryptographer - :header-rows: 1 - - * - Name - - Description - - Default - * - app.cipher.algorism - - The algorithm for the cipher. - - aes + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` * - app.cipher.key - - The key for the cipher. - - (empty) - * - app.digest.algorism - - The initialization vector for the cipher. - - sha256 - * - app.encrypt.key - - The key for the encryption. - - (empty) - * - app.encrypt.property.patterns - - The patterns for the encryption. + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` * - app.extension.names - - The names of the extensions. + - Extension names for application customization. - (empty) * - app.audit.log.format - - The format of the audit log. + - Audit log format. - (empty) - -.. list-table:: Custom JVM Options - :header-rows: 1 - - * - Name - - Description - - Default + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` * - jvm.crawler.options - - The options for the Fess crawler. - - | -Djava.awt.headless=true\n\ - | -Dfile.encoding=UTF-8\n\ - | -Djna.nosys=true\n\ - | -Djdk.io.permissionsUseCanonicalPath=true\n\ - | -Dhttp.maxConnections=20\n\ - | -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager\n\ - | -server\n\ - | -Xms128m\n\ - | -Xmx512m\n\ - | -XX:MaxMetaspaceSize=128m\n\ - | -XX:CompressedClassSpaceSize=32m\n\ - | -XX:-UseGCOverheadLimit\n\ - | -XX:+UseTLAB\n\ - | -XX:+DisableExplicitGC\n\ - | -XX:-HeapDumpOnOutOfMemoryError\n\ - | -XX:-OmitStackTraceInFastThrow\n\ - | -XX:+UnlockExperimentalVMOptions\n\ - | -XX:+UseG1GC\n\ - | -XX:InitiatingHeapOccupancyPercent=45\n\ - | -XX:G1HeapRegionSize=1m\n\ - | -XX:MaxGCPauseMillis=60000\n\ - | -XX:G1NewSizePercent=5\n\ - | -XX:G1MaxNewSizePercent=5\n\ - | -Djcifs.client.responseTimeout=30000\n\ - | -Djcifs.client.soTimeout=35000\n\ - | -Djcifs.client.connTimeout=60000\n\ - | -Djcifs.client.sessionTimeout=60000\n\ - | -Dio.netty.noUnsafe=true\n\ - | -Dio.netty.noKeySetOptimization=true\n\ - | -Dio.netty.recycler.maxCapacityPerThread=0\n\ - | -Dlog4j.shutdownHookEnabled=false\n\ - | -Dlog4j2.formatMsgNoLookups=true\n\ - | -Dlog4j2.disable.jmx=true\n\ - | -Dlog4j.skipJansi=true\n\ - | -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n\ - | -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n\ + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` * - jvm.suggest.options - - The options for the Fess suggest. - - | -Djava.awt.headless=true\n\ - | -Dfile.encoding=UTF-8\n\ - | -Djna.nosys=true\n\ - | -Djdk.io.permissionsUseCanonicalPath=true\n\ - | -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager\n\ - | -server\n\ - | -Xms128m\n\ - | -Xmx256m\n\ - | -XX:MaxMetaspaceSize=128m\n\ - | -XX:CompressedClassSpaceSize=32m\n\ - | -XX:-UseGCOverheadLimit\n\ - | -XX:+UseTLAB\n\ - | -XX:+DisableExplicitGC\n\ - | -XX:-HeapDumpOnOutOfMemoryError\n\ - | -XX:+UnlockExperimentalVMOptions\n\ - | -XX:+UseG1GC\n\ - | -XX:InitiatingHeapOccupancyPercent=45\n\ - | -XX:G1HeapRegionSize=1m\n\ - | -XX:MaxGCPauseMillis=60000\n\ - | -XX:G1NewSizePercent=5\n\ - | -XX:G1MaxNewSizePercent=30\n\ - | -Dio.netty.noUnsafe=true\n\ - | -Dio.netty.noKeySetOptimization=true\n\ - | -Dio.netty.recycler.maxCapacityPerThread=0\n\ - | -Dlog4j.shutdownHookEnabled=false\n\ - | -Dlog4j2.disable.jmx=true\n\ - | -Dlog4j2.formatMsgNoLookups=true\n\ - | -Dlog4j.skipJansi=true\n\ + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` * - jvm.thumbnail.options - - The options for the Fess thumbnail. - - | -Djava.awt.headless=true\n\ - | -Dfile.encoding=UTF-8\n\ - | -Djna.nosys=true\n\ - | -Djdk.io.permissionsUseCanonicalPath=true\n\ - | -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager\n\ - | -server\n\ - | -Xms128m\n\ - | -Xmx256m\n\ - | -XX:MaxMetaspaceSize=128m\n\ - | -XX:CompressedClassSpaceSize=32m\n\ - | -XX:-UseGCOverheadLimit\n\ - | -XX:+UseTLAB\n\ - | -XX:+DisableExplicitGC\n\ - | -XX:-HeapDumpOnOutOfMemoryError\n\ - | -XX:-OmitStackTraceInFastThrow\n\ - | -XX:+UnlockExperimentalVMOptions\n\ - | -XX:+UseG1GC\n\ - | -XX:InitiatingHeapOccupancyPercent=45\n\ - | -XX:G1HeapRegionSize=4m\n\ - | -XX:MaxGCPauseMillis=60000\n\ - | -XX:G1NewSizePercent=5\n\ - | -XX:G1MaxNewSizePercent=50\n\ - | -Djcifs.client.responseTimeout=30000\n\ - | -Djcifs.client.soTimeout=35000\n\ - | -Djcifs.client.connTimeout=60000\n\ - | -Djcifs.client.sessionTimeout=60000\n\ - | -Dio.netty.noUnsafe=true\n\ - | -Dio.netty.noKeySetOptimization=true\n\ - | -Dio.netty.recycler.maxCapacityPerThread=0\n\ - | -Dlog4j.shutdownHookEnabled=false\n\ - | -Dlog4j2.disable.jmx=true\n\ - | -Dlog4j2.formatMsgNoLookups=true\n\ - | -Dlog4j.skipJansi=true\n\ - | -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider\n\ - | -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true\n\ - -.. list-table:: Job Configuration + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job :header-rows: 1 * - Name - Description - Default * - job.system.job.ids - - The IDs of the system jobs. - - default_crawler + - System job IDs for scheduled jobs. + - ``default_crawler`` * - job.template.title.web - - The title template for web crawlers. - - Web Crawler - {0} + - Template for web crawler job title. + - ``Web Crawler - {0}`` * - job.template.title.file - - The title template for file crawlers. - - File Crawler - {0} + - Template for file crawler job title. + - ``File Crawler - {0}`` * - job.template.title.data - - The title template for data crawlers. - - Data Crawler - {0} + - Template for data crawler job title. + - ``Data Crawler - {0}`` * - job.template.script - - The script template for jobs. + - Script template for job execution. - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` * - job.max.crawler.processes - - The maximum number of crawler processes. - - 0 + - Maximum number of crawler processes. + - ``0`` * - job.default.script - - The default script type for newly created scheduled jobs. - - javascript + - Default script language for jobs. + - ``javascript`` * - job.system.property.filter.pattern - - The pattern for system property filters. + - Pattern to filter system properties for jobs. - (empty) * - processors - - The processors for the job. - - 0 + - Number of processors to use. + - ``0`` * - java.command.path - - The path to the Java command. - - java + - Path to Java command. + - ``java`` * - python.command.path - - The path to the Python command. - - python + - Path to Python command. + - ``python`` * - path.encoding - - The encoding for the path. - - UTF-8 + - Encoding for file paths. + - ``UTF-8`` * - use.own.tmp.dir - - Whether to use own temporary directory. - - true + - Whether to use a dedicated temporary directory. + - ``true`` * - max.log.output.length - - The maximum length of log output. - - 4000 + - Maximum length of log output. + - ``4000`` * - adaptive.load.control - - The adaptive load control value. - - 50 + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` * - supported.uploaded.js.extentions - - The supported extensions for uploaded JavaScript files. - - js + - Supported JavaScript file extensions for upload. + - ``js`` * - supported.uploaded.css.extentions - - The supported extensions for uploaded CSS files. - - css + - Supported CSS file extensions for upload. + - ``css`` * - supported.uploaded.media.extentions - - The supported extensions for uploaded media files. - - jpg,jpeg,gif,png,swf + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` * - supported.uploaded.files - - The supported uploaded files. - - license.properties + - Supported files for upload. + - ``license.properties`` * - supported.languages - - The supported languages. - - ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh - -.. list-table:: - :header-rows: 1 - - * - Name - - Description - - Default + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` * - api.access.token.length - - The length of the API access token. - - 60 + - Length of API access token. + - ``60`` * - api.access.token.required - - Whether the API access token is required. - - false + - Whether API access token is required. + - ``false`` * - api.access.token.request.parameter - - The request parameter for the API access token. + - API access token request parameter. - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` * - api.search.accept.referers - - The accepted referers for API search. + - Accepted referers for API search. - (empty) * - api.search.scroll - - Enable scroll feature for Search API - - false + - Whether to enable scroll for API search. + - ``false`` * - api.json.response.headers - - The headers for JSON responses in the API. - - (empty) + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` * - api.json.response.exception.included - - Whether to include exceptions in JSON responses. - - false + - Whether to include exceptions in API JSON response. + - ``false`` * - api.gsa.response.headers - - The headers for GSA responses in the API. - - (empty) + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` * - api.gsa.response.exception.included - - Whether to include exceptions in GSA responses. - - false + - Whether to include exceptions in API GSA response. + - ``false`` * - api.dashboard.response.headers - - The headers for dashboard responses in the API. - - (empty) + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` * - api.cors.allow.origin - - The allowed origins for CORS. - - \* + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` * - api.cors.allow.methods - - The allowed methods for CORS. - - GET, POST, OPTIONS, DELETE, PUT + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` * - api.cors.max.age - - The maximum age for CORS preflight requests. - - 3600 + - Max age for CORS preflight requests. + - ``3600`` * - api.cors.allow.headers - - The allowed headers for CORS. - - Origin, Content-Type, Accept, Authorization, X-Requested-With + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` * - api.cors.allow.credentials - - Whether to allow credentials for CORS. - - true + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` * - api.jsonp.enabled - - Whether JSONP is enabled. - - false + - Whether to enable JSONP for API. + - ``false`` * - api.ping.search_engine.fields - - The fields for pinging the search engine. - - status,timed_out + - Fields for API ping to search engine. + - ``status,timed_out`` -.. list-table:: Virtual Host +Rate Limiting +------------- + +.. list-table:: :header-rows: 1 * - Name - Description - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` * - virtual.host.headers - - The headers for virtual hosts. + - Virtual Host: Host:fess.codelibs.org=fess - (empty) - -.. list-table:: HTTP Configuration - :header-rows: 1 - - * - Name - - Description - - Default - * - http.proxy.Host - - The host for the HTTP proxy. Leave blank if not using a proxy. + * - http.proxy.host + - Hostname for the HTTP proxy server. - (empty) * - http.proxy.port - - The port for the HTTP proxy. - - 8080 + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` * - http.proxy.username - - The username for the HTTP proxy authentication. + - Username for HTTP proxy authentication. - (empty) * - http.proxy.password - - The password for the HTTP proxy authentication. + - Password for HTTP proxy authentication. - (empty) * - http.fileupload.max.size - - The maximum size for file uploads. - - 262144000 + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` * - http.fileupload.threshold.size - - The threshold size for file uploads. - - 262144 + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` * - http.fileupload.max.file.count - - The maximum number of files for file uploads at one time. - - 10 + - Maximum number of files allowed per HTTP upload. + - ``10`` Index ----- -.. list-table:: Crawler Configuration +.. list-table:: Crawler Common :header-rows: 1 * - Name - Description - Default * - crawler.http.thread_pool.size - - The size of the HTTP thread pool. - - 0 + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` * - crawler.document.max.site.length - - The maximum length for document sites in lines. - - 100 + - Maximum length of site name in documents. + - ``100`` * - crawler.document.site.encoding - - The encoding for document sites. - - UTF-8 + - Encoding for site names in documents. + - ``UTF-8`` * - crawler.document.unknown.hostname - - The hostname for unknown documents. - - unknown + - Hostname to use when unknown in documents. + - ``unknown`` * - crawler.document.use.site.encoding.on.english - - Whether to use site encoding on English documents. - - false + - Whether to use site encoding for English documents. + - ``false`` * - crawler.document.append.data - Whether to append data to documents. - - true + - ``true`` * - crawler.document.append.filename - - The filename for appending data to documents. - - false - * - crawler.document.alphanum.term.size - - The size for alphanumeric terms in documents. - - 20 + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` * - crawler.document.max.symbol.term.size - - The maximum size for symbol terms in documents. - - 10 + - Maximum size of symbol terms in documents. + - ``10`` * - crawler.document.duplicate.term.removed - Whether to remove duplicate terms in documents. - - false + - ``false`` * - crawler.document.space.chars - - The space characters for documents. - - u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6 + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` * - crawler.document.fullstop.chars - - The full stop characters for documents. - - u002eu06d4u2e3cu3002 + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` * - crawler.crawling.data.encoding - - The encoding for crawling data. - - UTF-8 + - Encoding for crawling data. + - ``UTF-8`` * - crawler.web.protocols - - The protocols for web crawling. - - http,http + - Supported web protocols for crawling. + - ``http,https`` * - crawler.file.protocols - - The protocols for file crawling. - - file,smb,smb1,ftp + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` * - crawler.data.env.param.key.pattern - - The regex pattern for Fess environment parameter keys. + - Pattern for environment variable keys in crawling data. - ``^FESS_ENV_.*`` * - crawler.ignore.robots.txt - - Whether to ignore robots.txt. - - false + - Whether to ignore robots.txt during crawling. + - ``false`` * - crawler.ignore.robots.tags - - The tags to ignore in robots.txt. - - (empty) + - Whether to ignore robots meta tags during crawling. + - ``false`` * - crawler.ignore.content.exception - - Whether to ignore content exceptions. - - true + - Whether to ignore content exceptions during crawling. + - ``true`` * - crawler.failure.url.status.codes - - The status codes for failed URLs. - - 404 + - HTTP status codes considered as failure URLs. + - ``404,403,410`` * - crawler.system.monitor.interval - - The interval for system monitoring. - - 60 + - Interval (seconds) for system monitor during crawling. + - ``60`` * - crawler.hotthread.ignore_idle_threads - - Whether to ignore idle threads. - - true + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` * - crawler.hotthread.interval - - The interval for hot threads. - - 500ms + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` * - crawler.hotthread.snapshots - - The number of snapshots for hot threads. - - 10 + - Number of snapshots for hot thread monitoring. + - ``10`` * - crawler.hotthread.threads - - The number of threads for hot threads. - - 3 + - Number of threads for hot thread monitoring. + - ``3`` * - crawler.hotthread.timeout - - The timeout for hot threads. - - 30s + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` * - crawler.hotthread.type - - The type of hot threads. - - cpu + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` * - crawler.metadata.content.excludes - - The metadata content to exclude. - - resourceName,X-Parsed-By,Content-Encoding.\ *,Content-Type.*,X-TIKA.\ *,X-FESS.* + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` * - crawler.metadata.name.mapping - - The name mapping for metadata. - - | title=title:string - | Title=title:string - | dc:title=title:string + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` -.. list-table:: Crawler HTML Configuration +.. list-table:: Crawler HTML :header-rows: 1 * - Name - Description - Default * - crawler.document.html.content.xpath - - The XPath for HTML content. - - //BODY + - XPath to extract main content from HTML documents. + - ``//BODY`` * - crawler.document.html.lang.xpath - - The XPath for HTML language. - - //HTML/@lang + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` * - crawler.document.html.digest.xpath - - The XPath for HTML digest. - - //META[@name='description']/@content + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` * - crawler.document.html.canonical.xpath - - The XPath for HTML canonical link. - - //LINK[@rel='canonical'][1]/@href + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` * - crawler.document.html.pruned.tags - - The tags to prune from HTML documents. - - noscript,script,style,header,footer,aside,nav,a[rel=nofollow] + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` * - crawler.document.html.max.digest.length - - The maximum length for HTML digest. - - 120 + - Maximum length of digest extracted from HTML documents. + - ``120`` * - crawler.document.html.default.lang - - The default language for HTML documents. + - Default language for HTML documents. - (empty) * - crawler.document.html.default.include.index.patterns - - The include index patterns for HTML documents. + - Patterns to include for HTML index processing. - (empty) * - crawler.document.html.default.exclude.index.patterns - - The exclude index patterns for HTML documents. + - Patterns to exclude for HTML index processing. - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` * - crawler.document.html.default.include.search.patterns - - The include search patterns for HTML documents. + - Patterns to include for HTML search processing. - (empty) * - crawler.document.html.default.exclude.search.patterns - - The exclude search patterns for HTML documents. + - Patterns to exclude for HTML search processing. - (empty) -.. list-table:: Crawler File Configuration +.. list-table:: Crawler File :header-rows: 1 * - Name - Description - Default * - crawler.document.file.name.encoding - - The encoding for file names. + - Encoding for file names in documents. - (empty) * - crawler.document.file.no.title.label - - The label for files with no title. - - No title. + - Label to use when a file has no title. + - ``No title.`` * - crawler.document.file.ignore.empty.content - - Whether to ignore empty content in files. - - false + - Whether to ignore files with empty content. + - ``false`` * - crawler.document.file.max.title.length - - The maximum length for file titles. - - 100 + - Maximum length of file title in documents. + - ``100`` * - crawler.document.file.max.digest.length - - The maximum length for file digests. - - 200 + - Maximum length of file digest in documents. + - ``200`` * - crawler.document.file.append.meta.content - - Whether to append meta content to files. - - true + - Whether to append meta content from files. + - ``true`` * - crawler.document.file.append.body.content - - Whether to append body content to files. - - true + - Whether to append body content from files. + - ``true`` * - crawler.document.file.default.lang - - The default language for files. + - Default language for file documents. - (empty) * - crawler.document.file.default.include.index.patterns - - The include index patterns for files. + - Patterns to include for file index processing. - (empty) * - crawler.document.file.default.exclude.index.patterns - - The exclude index patterns for files. + - Patterns to exclude for file index processing. - (empty) * - crawler.document.file.default.include.search.patterns - - The include search patterns for files. + - Patterns to include for file search processing. - (empty) * - crawler.document.file.default.exclude.search.patterns - - The exclude search patterns for files. + - Patterns to exclude for file search processing. - (empty) -.. list-table:: Crawler Cache Configuration +.. list-table:: Crawler Cache :header-rows: 1 * - Name - Description - Default * - crawler.document.cache.enabled - - Whether to enable document cache. - - true + - Whether document cache is enabled. + - ``true`` * - crawler.document.cache.max.size - - The maximum size for document cache. - - 2621440 + - Maximum size (bytes) for document cache. + - ``2621440`` * - crawler.document.cache.supported.mimetypes - - The supported MIME types for document cache. - - text/html + - Supported MIME types for document cache. + - ``text/html`` * - crawler.document.cache.html.mimetypes - - The HTML MIME types for document cache. - - text/html + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) -.. list-table:: Indexer Configuration +.. list-table:: Indexer :header-rows: 1 * - Name @@ -551,494 +630,504 @@ Index - Default * - indexer.thread.dump.enabled - Whether to enable thread dump for the indexer. - - true + - ``true`` * - indexer.unprocessed.document.size - - The size of unprocessed documents for the indexer. - - 1000 + - Maximum number of unprocessed documents for the indexer. + - ``1000`` * - indexer.click.count.enabled - - Whether to enable click count for the indexer. - - true + - Whether to enable click count tracking in the indexer. + - ``true`` * - indexer.favorite.count.enabled - - Whether to enable favorite count for the indexer. - - true + - Whether to enable favorite count tracking in the indexer. + - ``true`` * - indexer.webfs.commit.margin.time - - The commit margin time for webfs indexer. - - 5000 + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` * - indexer.webfs.max.empty.list.count - - The maximum empty list count for webfs indexer. - - 3600 + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` * - indexer.webfs.update.interval - - The update interval for webfs indexer. - - 10000 + - Update interval (ms) for webfs in the indexer. + - ``10000`` * - indexer.webfs.max.document.cache.size - - The maximum document cache size for webfs indexer. - - 10 + - Maximum document cache size for webfs in the indexer. + - ``10`` * - indexer.webfs.max.document.request.size - - The maximum document request size for webfs indexer. - - 1048576 + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` * - indexer.data.max.document.cache.size - - The maximum document cache size for data indexer. - - 10000 + - Maximum document cache size for data in the indexer. + - ``10000`` * - indexer.data.max.document.request.size - - The maximum document request size for data indexer. - - 1048576 + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` * - indexer.data.max.delete.cache.size - - The maximum delete cache size for data indexer. - - 100 + - Maximum delete cache size for data in the indexer. + - ``100`` * - indexer.data.max.redirect.count - - The maximum redirect count for data indexer. - - 10 + - Maximum redirect count for data in the indexer. + - ``10`` * - indexer.language.fields - - The language fields for the indexer. - - content,important_content,title + - Fields used for language detection in the indexer. + - ``content,important_content,title`` * - indexer.language.detect.length - - The language detect length for the indexer. - - 1000 + - Length of text for language detection in the indexer. + - ``1000`` * - indexer.max.result.window.size - - The maximum result window size for the indexer. - - 10000 + - Maximum result window size for the indexer. + - ``10000`` * - indexer.max.search.doc.size - - The maximum search document size for the indexer. - - 50000 + - Maximum number of search documents for the indexer. + - ``50000`` -.. list-table:: Index Configuration +.. list-table:: Index Settings :header-rows: 1 * - Name - Description - Default * - index.codec - - The codec for the index. - - default + - Codec type for the index. + - ``default`` * - index.number_of_shards - - The number of shards for the index. - - 5 + - Number of primary shards for the index. + - ``5`` * - index.auto_expand_replicas - - The auto-expand replicas setting for the index. - - 0-1 + - Auto expand replicas setting for the index. + - ``0-1`` * - index.id.digest.algorithm - - The digest algorithm for the index ID. - - SHA-512 + - Digest algorithm for index IDs. + - ``SHA-512`` * - index.user.initial_password - - The initial password for the index user. - - admin + - Initial password for the index user. + - ``admin`` -.. list-table:: Field Names Configuration +.. list-table:: Field Names :header-rows: 1 * - Name - Description - Default * - index.field.favorite_count - - The field for storing the favorite count. - - favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` * - index.field.click_count - - The field for storing the click count. - - click_count + - Field name for click count in the index. + - ``click_count`` * - index.field.config_id - - The field for storing the configuration ID. - - config_id + - Field name for config ID in the index. + - ``config_id`` * - index.field.expires - - The field for storing the expiration date. - - expires + - Field name for expiration date in the index. + - ``expires`` * - index.field.url - - The field for storing the URL. - - url + - Field name for URL in the index. + - ``url`` * - index.field.doc_id - - The field for storing the document ID. - - doc_id + - Field name for document ID in the index. + - ``doc_id`` * - index.field.id - - The field for storing the ID. - - _id + - Field name for internal ID in the index. + - ``_id`` * - index.field.version - - The field for storing the version. - - _version + - Field name for version in the index. + - ``_version`` * - index.field.seq_no - - The field for storing the sequence number. - - _seq_no + - Field name for sequence number in the index. + - ``_seq_no`` * - index.field.primary_term - - The field for storing the primary term. - - _primary_term + - Field name for primary term in the index. + - ``_primary_term`` * - index.field.lang - - The field for storing the language. - - lang + - Field name for language in the index. + - ``lang`` * - index.field.has_cache - - The field for indicating if the document has cache. - - has_cache + - Field name for cache status in the index. + - ``has_cache`` * - index.field.last_modified - - The field for storing the last modified date. - - last_modified + - Field name for last modified date in the index. + - ``last_modified`` * - index.field.anchor - - The field for storing the anchor. - - anchor + - Field name for anchor in the index. + - ``anchor`` * - index.field.segment - - The field for storing the segment. - - segment + - Field name for segment in the index. + - ``segment`` * - index.field.role - - The field for storing the role. - - role + - Field name for role in the index. + - ``role`` * - index.field.boost - - The field for storing the boost. - - boost + - Field name for boost value in the index. + - ``boost`` * - index.field.created - - The field for storing the creation date. - - created + - Field name for creation date in the index. + - ``created`` * - index.field.timestamp - - The field for storing the timestamp. - - timestamp + - Field name for timestamp in the index. + - ``timestamp`` * - index.field.label - - The field for storing the label. - - label + - Field name for label in the index. + - ``label`` * - index.field.mimetype - - The field for storing the MIME type. - - mimetype + - Field name for MIME type in the index. + - ``mimetype`` * - index.field.parent_id - - The field for storing the parent ID. - - parent_id + - Field name for parent ID in the index. + - ``parent_id`` * - index.field.important_content - - The field for storing important content. - - important_content + - Field name for important content in the index. + - ``important_content`` * - index.field.content - - The field for storing the content. - - content + - Field name for content in the index. + - ``content`` * - index.field.content_minhash_bits - - The field for storing the content minhash bits. - - content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` * - index.field.cache - - The field for storing the cache. - - cache + - Field name for cache in the index. + - ``cache`` * - index.field.digest - - The field for storing the digest. - - digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` * - index.field.site - - The field for storing the site. - - site + - Field name for site in the index. + - ``site`` * - index.field.content_length - - The field for storing the content length. - - content_length + - Field name for content length in the index. + - ``content_length`` * - index.field.filetype - - The field for storing the file type. - - filetype + - Field name for file type in the index. + - ``filetype`` * - index.field.filename - - The field for storing the file name. - - filename + - Field name for file name in the index. + - ``filename`` * - index.field.thumbnail - - The field for storing the thumbnail. - - thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` * - index.field.virtual_host - - The field for storing the virtual host. - - virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` * - response.field.content_title - - The field for storing the content title. - - content_title + - Field name for content title in the response. + - ``content_title`` * - response.field.content_description - - The field for storing the content description. - - content_description + - Field name for content description in the response. + - ``content_description`` * - response.field.url_link - - The field for storing the URL link. - - url_link + - Field name for URL link in the response. + - ``url_link`` * - response.field.site_path - - The field for storing the site path. - - site_path + - Field name for site path in the response. + - ``site_path`` * - response.max.title.length - - The maximum length for the title. - - 50 + - Maximum length of content title in the response. + - ``50`` * - response.max.site.path.length - - The maximum length for the site path. - - 100 + - Maximum length of site path in the response. + - ``100`` * - response.highlight.content_title.enabled - - Whether to enable highlighting for the content title. - - true + - Whether to enable content title highlighting in the response. + - ``true`` * - response.inline.mimetypes - - The inline MIME types for the response. - - application/pdf,text/plain - -.. list-table:: Document Index Configuration + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index :header-rows: 1 * - Name - Description - Default * - index.document.search.index - - The index for document search. - - fess.search + - Index name for search documents. + - ``fess.search`` * - index.document.update.index - - The index for document update. - - fess.update + - Index name for update documents. + - ``fess.update`` * - index.document.suggest.index - - The index for document suggestions. - - fess + - Index name for suggest documents. + - ``fess`` * - index.document.crawler.index - - The index for document crawler. - - fess_crawler + - Index name for crawler documents. + - ``fess_crawler`` * - index.document.crawler.queue.number_of_shards - - The number of shards for the crawler queue. - - 10 + - Number of primary shards for crawler queue index. + - ``10`` * - index.document.crawler.data.number_of_shards - - The number of shards for the crawler data. - - 10 + - Number of primary shards for crawler data index. + - ``10`` * - index.document.crawler.filter.number_of_shards - - The number of shards for the crawler filter. - - 10 + - Number of primary shards for crawler filter index. + - ``10`` * - index.document.crawler.queue.number_of_replicas - - The number of replicas for the crawler queue. - - 1 + - Number of replicas for crawler queue index. + - ``1`` * - index.document.crawler.data.number_of_replicas - - The number of replicas for the crawler data. - - 1 + - Number of replicas for crawler data index. + - ``1`` * - index.document.crawler.filter.number_of_replicas - - The number of replicas for the crawler filter. - - 1 + - Number of replicas for crawler filter index. + - ``1`` * - index.config.index - - The index configuration. - - fess_config + - Index name for configuration data. + - ``fess_config`` * - index.user.index - - The user index. - - fess_user + - Index name for user data. + - ``fess_user`` * - index.log.index - - The log index. - - fess_log + - Index name for log data. + - ``fess_log`` * - index.dictionary.prefix - - The prefix for the dictionary index. + - Prefix for dictionary index names. - (empty) -.. list-table:: Document Management Configuration +.. list-table:: Document Management :header-rows: 1 + * - Name + - Description + - Default * - index.admin.array.fields - - The array fields for the admin index. - - lang,role,label,anchor,virtual_host + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` * - index.admin.date.fields - - The date fields for the admin index. - - expires,created,timestamp,last_modified + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` * - index.admin.integer.fields - - The integer fields for the admin index. + - Integer-type fields for admin in the index. - (empty) * - index.admin.long.fields - - The long fields for the admin index. - - content_length,favorite_count,click_count + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` * - index.admin.float.fields - - The float fields for the admin index. - - boost + - Float-type fields for admin in the index. + - ``boost`` * - index.admin.double.fields - - The double fields for the admin index. + - Double-type fields for admin in the index. - (empty) * - index.admin.required.fields - - The required fields for the admin index. - - url,title,role,boost + - Required fields for admin in the index. + - ``url,title,role,boost`` -.. list-table:: Timeout Configuration +.. list-table:: Timeouts :header-rows: 1 * - Name - Description - Default * - index.search.timeout - - The timeout for search in minutes. - - 3m + - Timeout for index search operations. + - ``3m`` * - index.scroll.search.timeout - - The timeout for search scroll in minutes. - - 3m + - Timeout for scroll search operations. + - ``3m`` * - index.index.timeout - - The timeout for indexing in minutes. - - 3m + - Timeout for index operations. + - ``3m`` * - index.bulk.timeout - - The timeout for bulk indexing in minutes. - - 3m + - Timeout for bulk index operations. + - ``3m`` * - index.delete.timeout - - The timeout for deleting in minutes. - - 3m + - Timeout for delete operations in the index. + - ``3m`` * - index.health.timeout - - The timeout for health check in minutes. - - 10m + - Timeout for index health checks. + - ``10m`` * - index.indices.timeout - - The timeout for indices in minutes. - - 3m + - Timeout for index indices operations. + - ``1m`` -.. list-table:: Filetype Configuration +.. list-table:: File Types :header-rows: 1 * - Name - Description - Default * - index.filetype - - The different files types and associated extensions to exclude. - - | text/html=html\n\ - | application/msword=word\n\ - | application/vnd.openxmlformats-officedocument.wordprocessingml.document=word\n\ - | application/vnd.ms-excel=excel\n\ - | application/vnd.ms-excel.sheet.2=excel\n\ - | application/vnd.ms-excel.sheet.3=excel\n\ - | application/vnd.ms-excel.sheet.4=excel\n\ - | application/vnd.ms-excel.workspace.3=excel\n\ - | application/vnd.ms-excel.workspace.4=excel\n\ - | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel\n\ - | application/vnd.ms-powerpoint=powerpoint\n\ - | application/vnd.openxmlformats-officedocument.presentationml.| presentation=powerpoint\n\ - | application/vnd.oasis.opendocument.text=odt\n\ - | application/vnd.oasis.opendocument.spreadsheet=ods\n\ - | application/vnd.oasis.opendocument.presentation=odp\n\ - | application/pdf=pdf\n\ - | application/x-fictionbook+xml=fb2\n\ - | application/e-pub+zip=epub\n\ - | application/x-ibooks+zip=ibooks\n\ - | text/plain=txt\n\ - | application/rtf=rtf\n\ - | application/vnd.ms-htmlhelp=chm\n\ - | application/zip=zip\n\ - | application/x-7z-comressed=7z\n\ - | application/x-bzip=bz\n\ - | application/x-bzip2=bz2\n\ - | application/x-tar=tar\n\ - | application/x-rar-compressed=rar\n\ - | video/3gp=3gp\n\ - | video/3g2=3g2\n\ - | video/x-msvideo=avi\n\ - | video/x-flv=flv\n\ - | video/mpeg=mpeg\n\ - | video/mp4=mp4\n\ - | video/ogv=ogv\n\ - | video/quicktime=qt\n\ - | video/x-m4v=m4v\n\ - | audio/x-aif=aif\n\ - | audio/midi=midi\n\ - | audio/mpga=mpga\n\ - | audio/mp4=mp4a\n\ - | audio/ogg=oga\n\ - | audio/x-wav=wav\n\ - | image/webp=webp\n\ - | image/bmp=bmp\n\ - | image/x-icon=ico\n\ - | image/x-icon=ico\n\ - | image/png=png\n\ - | image/svg+xml=svg\n\ - | image/tiff=tiff\n\ - | image/jpeg=jpg\n\ - -.. list-table:: Reindex Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` * - index.reindex.size - - The size for re-indexing. - - 100 + - Number of documents to process per reindex operation. + - ``100`` * - index.reindex.body - - The body for re-indexing. In in bulk format. + - Request body template for reindex operations. - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` * - index.reindex.requests_per_second - - The requests per second for re-indexing. - - adaptive + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` * - index.reindex.refresh - - The refresh for re-indexing. - - false + - Whether to refresh the index after reindexing. + - ``false`` * - index.reindex.timeout - - The timeout for re-indexing. - - 1m + - Timeout for reindex operations. + - ``1m`` * - index.reindex.scroll - - The scroll for re-indexing. - - 5m + - Scroll timeout for reindex operations. + - ``5m`` * - index.reindex.max_docs - - The maximum documents for re-indexing. + - Maximum number of documents for reindex operations. - (empty) -.. list-table:: Query Configuration +.. list-table:: Query :header-rows: 1 * - Name - Description - Default * - query.max.length - - The maximum length of a query string. - - 1000 + - Maximum length of search queries. + - ``1000`` * - query.timeout - - The timeout for a query. - - 10000 + - Timeout (ms) for search queries. + - ``10000`` * - query.timeout.logging - - Enable or disable query timeout logging. - - true + - Whether to enable logging for query timeouts. + - ``true`` * - query.track.total.hits - - The total number of hits to track. - - 10000 + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` * - query.geo.fields - - The fields used for geo queries. - - location + - Fields used for geo search queries. + - ``location`` * - query.browser.lang.parameter.name - - The name of the browser language parameter. - - browser_lang + - Parameter name for browser language in queries. + - ``browser_lang`` * - query.replace.term.with.prefix.query - - Replace term with prefix query. - - true + - Whether to replace term with prefix query. + - ``true`` * - query.orsearch.min.hit.count - - The minimum hit count for OR search. - - 0 + - Minimum hit count for OR search queries. + - ``-1`` * - query.highlight.terminal.chars - - Characters used for highlighting terminals. - - u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61 + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` * - query.highlight.fragment.size - - The size of the highlight fragment. - - 60 + - Fragment size for query highlighting. + - ``60`` * - query.highlight.number.of.fragments - - The number of fragments for highlighting. - - 2 + - Number of fragments for query highlighting. + - ``2`` * - query.highlight.type - - The type of highlighter. - - fvh + - Type of query highlighting. + - ``fvh`` * - query.highlight.tag.pre - - The opening tag for highlighted text. - - + - Tag to use before highlighted text. + - ```` * - query.highlight.tag.post - - The closing tag for highlighted text. - - + - Tag to use after highlighted text. + - ```` * - query.highlight.boundary.chars - - Characters used for boundary scanning. - - u0009u000Au0013u0020 + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` * - query.highlight.boundary.max.scan - - The maximum number of characters to scan for boundary. - - 20 + - Maximum scan for query highlight boundaries. + - ``20`` * - query.highlight.boundary.scanner - - The type of boundary scanner. - - chars + - Scanner type for query highlight boundaries. + - ``chars`` * - query.highlight.encoder - - The encoder for highlighted text. - - default + - Encoder type for query highlighting. + - ``default`` * - query.highlight.force.source - - Force source retrieval for highlighting. - - false + - Whether to force source for query highlighting. + - ``false`` * - query.highlight.fragmenter - - The type of fragmenter. - - span + - Fragmenter type for query highlighting. + - ``span`` * - query.highlight.fragment.offset - - The offset for fragments. - - -1 + - Offset for query highlight fragments. + - ``-1`` * - query.highlight.no.match.size - - The size of the fragment when no match is found. - - 0 + - Size for no-match query highlight. + - ``0`` * - query.highlight.order - - The order of highlighted fragments. - - score + - Order for query highlight fragments. + - ``score`` * - query.highlight.phrase.limit - - The limit for phrase highlighting. - - 256 + - Phrase limit for query highlighting. + - ``256`` * - query.highlight.content.description.fields - - Fields used for content description in highlighting. - - hl_content,digest + - Fields for content description in query highlighting. + - ``hl_content,digest`` * - query.highlight.boundary.position.detect - - Detect boundary position. - - true + - Whether to detect boundary position in query highlighting. + - ``true`` * - query.highlight.text.fragment.type - - The type of text fragment. - - query + - Type for text fragment in query highlighting. + - ``query`` * - query.highlight.text.fragment.size - - The size of the text fragment. - - 3 + - Size for text fragment in query highlighting. + - ``3`` * - query.highlight.text.fragment.prefix.length - - The prefix length for text fragments. - - 5 + - Prefix length for text fragment in query highlighting. + - ``5`` * - query.highlight.text.fragment.suffix.length - - The suffix length for text fragments. - - 5 + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` * - query.additional.default.fields - Additional default fields for queries. - (empty) @@ -1046,7 +1135,7 @@ Index - Additional response fields for queries. - (empty) * - query.additional.api.response.fields - - Additional API response fields for queries. + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. - (empty) * - query.additional.scroll.response.fields - Additional scroll response fields for queries. @@ -1070,238 +1159,225 @@ Index - Additional analyzed fields for queries. - (empty) * - query.additional.not.analyzed.fields - - Additional not analyzed fields for queries. + - Additional not-analyzed fields for queries. - (empty) * - query.gsa.response.fields - - Fields for GSA response. - - UE,U,T,RK,S,LANG + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` * - query.gsa.default.lang - - Default language for GSA. - - en + - Default language for GSA queries. + - ``en`` * - query.gsa.default.sort - - Default sort for GSA. + - Default sort for GSA queries. - (empty) * - query.gsa.meta.prefix - - Meta prefix for GSA. + - Meta prefix for GSA queries. - ``MT_`` * - query.gsa.index.field.charset - - Charset for GSA index field. - - charset - * - query.gsa.index.field.content_type - - Content type for GSA index field. - - content_type + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` * - query.collapse.max.concurrent.group.results - - Maximum concurrent group results for collapse. - - 4 + - Maximum concurrent group results for collapse queries. + - ``4`` * - query.collapse.inner.hits.name - - Name for inner hits in collapse. - - similar_docs + - Inner hits name for collapse queries. + - ``similar_docs`` * - query.collapse.inner.hits.size - - Size for inner hits in collapse. - - 0 + - Inner hits size for collapse queries. + - ``0`` * - query.collapse.inner.hits.sorts - - Sorts for inner hits in collapse. + - Sorts for inner hits in collapse queries. - (empty) * - query.default.languages - Default languages for queries. - (empty) * - query.json.default.preference - Default preference for JSON queries. - - _query + - ``_query`` * - query.gsa.default.preference - Default preference for GSA queries. - - _query + - ``_query`` * - query.language.mapping - - Mapping for languages. - - | ar=ar\n\ - | bg=bg\n\ - | bn=bn\n\ - | ca=ca\n\ - | ckb-iq=ckb-iq\n\ - | ckb_IQ=ckb-iq\n\ - | cs=cs\n\ - | da=da\n\ - | de=de\n\ - | el=el\n\ - | en=en\n\ - | en-ie=en-ie\n\ - | en_IE=en-ie\n\ - | es=es\n\ - | et=et\n\ - | eu=eu\n\ - | fa=fa\n\ - | fi=fi\n\ - | fr=fr\n\ - | gl=gl\n\ - | gu=gu\n\ - | he=he\n\ - | hi=hi\n\ - | hr=hr\n\ - | hu=hu\n\ - | hy=hy\n\ - | id=id\n\ - | it=it\n\ - | ja=ja\n\ - | ko=ko\n\ - | lt=lt\n\ - | lv=lv\n\ - | mk=mk\n\ - | ml=ml\n\ - | nl=nl\n\ - | no=no\n\ - | pa=pa\n\ - | pl=pl\n\ - | pt=pt\n\ - | pt-br=pt-br\n\ - | pt_BR=pt-br\n\ - | ro=ro\n\ - | ru=ru\n\ - | si=si\n\ - | sq=sq\n\ - | sv=sv\n\ - | ta=ta\n\ - | te=te\n\ - | th=th\n\ - | tl=tl\n\ - | tr=tr\n\ - | uk=uk\n\ - | ur=ur\n\ - | vi=vi\n\ - | zh-cn=zh-cn\n\ - | zh_CN=zh-cn\n\ - | zh-tw=zh-tw\n\ - | zh_TW=zh-tw\n\ - | zh=zh\n\ - -.. list-table:: Boost Configuration + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost :header-rows: 1 * - Name - Description - Default * - query.boost.title - - Boost for title - - 0.5 + - Boost value for title field in queries. + - ``0.5`` * - query.boost.title.lang - - Boost for title language - - 1.0 + - Boost value for title field with language in queries. + - ``1.0`` * - query.boost.content - - Boost for content - - 0.05 + - Boost value for content field in queries. + - ``0.05`` * - query.boost.content.lang - - Boost for content language - - 0.1 + - Boost value for content field with language in queries. + - ``0.1`` * - query.boost.important_content - - Boost for important content - - -1.0 + - Boost value for important content field in queries. + - ``-1.0`` * - query.boost.important_content.lang - - Boost for important content language - - -1.0 + - Boost value for important content field with language in queries. + - ``-1.0`` * - query.boost.fuzzy.min.length - - Minimum length for fuzzy matching - - 4 + - Minimum length for fuzzy boosting in queries. + - ``4`` * - query.boost.fuzzy.title - - Fuzzy boost for title - - 0.01 + - Boost value for fuzzy title queries. + - ``0.01`` * - query.boost.fuzzy.title.fuzziness - - Fuzziness for title - - AUTO + - Fuzziness for fuzzy title queries. + - ``AUTO`` * - query.boost.fuzzy.title.expansions - - Expansions for fuzzy title - - 10 + - Number of expansions for fuzzy title queries. + - ``10`` * - query.boost.fuzzy.title.prefix_length - - Prefix length for fuzzy title - - 0 + - Prefix length for fuzzy title queries. + - ``0`` * - query.boost.fuzzy.title.transpositions - - Allow transpositions for fuzzy title - - true + - Whether to allow transpositions in fuzzy title queries. + - ``true`` * - query.boost.fuzzy.content - - Fuzzy boost for content - - 0.005 + - Boost value for fuzzy content queries. + - ``0.005`` * - query.boost.fuzzy.content.fuzziness - - Fuzziness for content - - AUTO + - Fuzziness for fuzzy content queries. + - ``AUTO`` * - query.boost.fuzzy.content.expansions - - Expansions for fuzzy content - - 10 + - Number of expansions for fuzzy content queries. + - ``10`` * - query.boost.fuzzy.content.prefix_length - - Prefix length for fuzzy content - - 0 + - Prefix length for fuzzy content queries. + - ``0`` * - query.boost.fuzzy.content.transpositions - - Allow transpositions for fuzzy content - - true + - Whether to allow transpositions in fuzzy content queries. + - ``true`` * - query.default.query_type - - Default query type - - bool + - Default query type. + - ``bool`` * - query.dismax.tie_breaker - - Tie breaker for dismax queries - - 0.1 + - Tie breaker value for dismax queries. + - ``0.1`` * - query.bool.minimum_should_match - - Minimum should match for boolean queries + - Minimum should match value for boolean queries. - (empty) * - query.prefix.expansions - - Expansions for prefix queries - - 50 + - Number of expansions for prefix queries. + - ``50`` * - query.prefix.slop - - Slop for prefix queries - - 0 + - Slop value for prefix queries. + - ``0`` * - query.fuzzy.prefix_length - - Prefix length for fuzzy queries - - 0 + - Prefix length for fuzzy queries. + - ``0`` * - query.fuzzy.expansions - - Expansions for fuzzy queries - - 50 + - Number of expansions for fuzzy queries. + - ``50`` * - query.fuzzy.transpositions - - Allow transpositions for fuzzy queries - - true + - Whether to allow transpositions in fuzzy queries. + - ``true`` -.. list-table:: Facet Configuration +.. list-table:: Facet :header-rows: 1 * - Name - Description - Default * - query.facet.fields - - The fields to be used for faceting. - - label + - Fields for facet queries. + - ``label`` * - query.facet.fields.size - - The maximum number of facet entries to be returned. - - 100 + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` * - query.facet.fields.min_doc_count - - The minimum document count for a facet entry to be included. - - 1 + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` * - query.facet.fields.sort - - The sort order of the facet entries. - - count.desc + - Sort order for facet fields. + - ``count.desc`` * - query.facet.fields.missing - - The value to be used for missing fields. + - Value for missing facet fields. - (empty) * - query.facet.queries - - The custom facet queries. - - | labels.facet_timestamp_title:\ - | labels.facet_timestamp_1day=timestamp:[now/d-1d TO \*]\t\ - | labels.facet_timestamp_1week=timestamp:[now/d-7d TO \*]\t\ - | labels.facet_timestamp_1month=timestamp:[now/d-1M TO \*]\t\ - | labels.facet_timestamp_1year=timestamp:[now/d-1y TO \*]\n\ - | labels.facet_contentLength_title:\ - | labels.facet_contentLength_10k=content_length:[0 TO 9999]\t\ - | labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999]\t\ - | labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999]\t\ - | labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999]\t\ - | labels.facet_contentLength_1m=content_length:[1000000 TO \*]\n\ - | labels.facet_filetype_title:\ - | labels.facet_filetype_html=filetype:html\t\ - | labels.facet_filetype_word=filetype:word\t\ - | labels.facet_filetype_excel=filetype:excel\t\ - | labels.facet_filetype_powerpoint=filetype:powerpoint\t\ - | labels.facet_filetype_odt=filetype:odt\t\ - | labels.facet_filetype_ods=filetype:ods\t\ - | labels.facet_filetype_odp=filetype:odp\t\ - | labels.facet_filetype_pdf=filetype:pdf\t\ - | labels.facet_filetype_txt=filetype:txt\t\ - | labels.facet_filetype_others=filetype:others\n\ + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` -.. list-table:: Ranking Configuration +.. list-table:: Ranking :header-rows: 1 * - Name @@ -1309,852 +1385,969 @@ Index - Default * - rank.fusion.window_size - Window size for rank fusion. - - 200 + - ``200`` * - rank.fusion.rank_constant - - Rank constant for fusion. - - 20 + - Rank constant for rank fusion. + - ``20`` * - rank.fusion.threads - Number of threads for rank fusion. - - -1 + - ``-1`` * - rank.fusion.score_field - - Field used for rank fusion score. - - rf_score + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` -.. list-table:: ACL Configuration +.. list-table:: ACL :header-rows: 1 * - Name - Description - Default * - smb.role.from.file - - Enable role mapping from file for SMB. - - true + - Whether to get SMB roles from a file. + - ``true`` * - smb.available.sid.types - Available SID types for SMB. - - 1,2,4:2,5:1 + - ``1,2,4:2,5:1`` * - file.role.from.file - - Enable role mapping from file for file system. - - true + - Whether to get file roles from a file. + - ``true`` * - ftp.role.from.file - - Enable role mapping from file for FTP. - - true + - Whether to get FTP roles from a file. + - ``true`` -.. list-table:: Backup Configuration +.. list-table:: Backup :header-rows: 1 * - Name - Description - Default * - index.backup.targets - - Targets for index backup - - fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` * - index.backup.log.targets - - Targets for log backup - - click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` * - index.backup.log.load.timeout - - Timeout for loading log backup - - 60000 + - Timeout for loading index backup logs. + - ``60000`` -.. list-table:: Logging Configuration +.. list-table:: Logging :header-rows: 1 * - Name - Description - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` * - logging.search.docs.enabled - - Enable logging of search documents. - - true + - Whether to enable search docs logging. + - ``true`` * - logging.search.docs.fields - - Fields to log for search documents. - - filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` * - logging.search.use.logfile - - Use logfile for logging. - - true - * - logging.app.packages - - Application packages to log. - - org.codelibs,org.dbflute,org.lastaflute + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` Web --- -.. list-table:: Web Configuration +.. list-table:: :header-rows: 1 * - Name - Description - Default * - form.admin.max.input.size - - Maximum input size for admin forms - - 10000 + - Maximum input size for admin forms. + - ``10000`` * - form.admin.label.in.config.enabled - - Enable labels in admin config - - false + - Whether to enable label in admin config forms. + - ``false`` * - form.admin.default.template.name - - Default template name for admin forms - - __TEMPLATE__ + - Default template name for admin forms. + - ``__TEMPLATE__`` * - osdd.link.enabled - - Enable OSDD link - - auto + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` * - clipboard.copy.icon.enabled - - Enable clipboard copy icon - - true - -Permission ----------- - -.. list-table:: Permission Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Whether to enable the clipboard copy icon. + - ``true`` * - authentication.admin.users - - Admin users for authentication - - admin + - Admin user names for authentication. + - ``admin`` * - authentication.admin.users.ignore.case - - How authentication.admin.users is compared: auto, true or false. auto ignores case when ldap.provider.url is set - - auto + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` * - authentication.admin.roles - - Admin roles for authentication - - admin + - Admin role names for authentication. + - ``admin`` * - role.search.default.permissions - - Default search permissions + - Default permissions for search roles. - (empty) * - role.search.default.display.permissions - - Default display permissions for search - - {role}guest + - Default display permissions for search roles. + - ``{role}guest`` * - role.search.guest.permissions - - Guest permissions for search - - {role}guest + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` * - role.search.user.prefix - - Prefix for user roles in search - - 1 + - Prefix for user roles in search. + - ``1`` * - role.search.group.prefix - - Prefix for group roles in search - - 2 + - Prefix for group roles in search. + - ``2`` * - role.search.role.prefix - - Prefix for roles in search - - R + - Prefix for role roles in search. + - ``R`` * - role.search.denied.prefix - - Prefix for denied roles in search - - D - -Cookie ------- - -.. list-table:: Cookie Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Prefix for denied roles in search. + - ``D`` * - cookie.default.path - The default path of cookie (basically '/' if no context path) - ``/`` - * - cookie.default.expires - - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day - - 3600 + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` * - session.tracking.modes - - The tracking modes for session - - cookie - -Paging ------- - -.. list-table:: Paging Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` * - paging.page.size - The size of one page for paging - - 25 + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` * - paging.page.range.fill.limit - - The option ``fillLimit`` of page range for paging - - true + - The option 'fillLimit' of page range for paging + - ``true`` -.. list-table:: Fetch Page Size Configuration +.. list-table:: Fetch Page Size :header-rows: 1 * - Name - Description - Default * - page.docboost.max.fetch.size - - Maximum fetch size for document boost - - 1000 + - Maximum number of docboost records to fetch per page. + - ``1000`` * - page.keymatch.max.fetch.size - - Maximum fetch size for key match - - 1000 + - Maximum number of keymatch records to fetch per page. + - ``1000`` * - page.labeltype.max.fetch.size - - Maximum fetch size for label type - - 1000 + - Maximum number of labeltype records to fetch per page. + - ``1000`` * - page.roletype.max.fetch.size - - Maximum fetch size for role type - - 1000 + - Maximum number of roletype records to fetch per page. + - ``1000`` * - page.user.max.fetch.size - - Maximum fetch size for user - - 1000 + - Maximum number of user records to fetch per page. + - ``1000`` * - page.role.max.fetch.size - - Maximum fetch size for role - - 1000 + - Maximum number of role records to fetch per page. + - ``1000`` * - page.group.max.fetch.size - - Maximum fetch size for group - - 1000 + - Maximum number of group records to fetch per page. + - ``1000`` * - page.crawling.info.param.max.fetch.size - - Maximum fetch size for crawling info parameters - - 100 + - Maximum number of crawling info parameters to fetch per page. + - ``100`` * - page.crawling.info.max.fetch.size - - Maximum fetch size for crawling info - - 1000 + - Maximum number of crawling info records to fetch per page. + - ``1000`` * - page.data.config.max.fetch.size - - Maximum fetch size for data configuration - - 100 + - Maximum number of data config records to fetch per page. + - ``100`` * - page.web.config.max.fetch.size - - Maximum fetch size for web configuration - - 100 + - Maximum number of web config records to fetch per page. + - ``100`` * - page.file.config.max.fetch.size - - Maximum fetch size for file configuration - - 100 + - Maximum number of file config records to fetch per page. + - ``100`` * - page.duplicate.host.max.fetch.size - - Maximum fetch size for duplicate host - - 1000 + - Maximum number of duplicate host records to fetch per page. + - ``1000`` * - page.failure.url.max.fetch.size - - Maximum fetch size for failure URL - - 1000 + - Maximum number of failure URL records to fetch per page. + - ``1000`` * - page.favorite.log.max.fetch.size - - Maximum fetch size for favorite log - - 100 + - Maximum number of favorite log records to fetch per page. + - ``100`` * - page.file.auth.max.fetch.size - - Maximum fetch size for file authentication - - 100 + - Maximum number of file auth records to fetch per page. + - ``100`` * - page.web.auth.max.fetch.size - - Maximum fetch size for web authentication - - 100 + - Maximum number of web auth records to fetch per page. + - ``100`` * - page.path.mapping.max.fetch.size - - Maximum fetch size for path mapping - - 1000 + - Maximum number of path mapping records to fetch per page. + - ``1000`` * - page.request.header.max.fetch.size - - Maximum fetch size for request header - - 1000 + - Maximum number of request header records to fetch per page. + - ``1000`` * - page.scheduled.job.max.fetch.size - - Maximum fetch size for scheduled job - - 100 + - Maximum number of scheduled job records to fetch per page. + - ``100`` * - page.elevate.word.max.fetch.size - - Maximum fetch size for elevate word - - 1000 + - Maximum number of elevate word records to fetch per page. + - ``1000`` * - page.bad.word.max.fetch.size - - Maximum fetch size for bad word - - 1000 + - Maximum number of bad word records to fetch per page. + - ``1000`` * - page.dictionary.max.fetch.size - - Maximum fetch size for dictionary - - 1000 + - Maximum number of dictionary records to fetch per page. + - ``1000`` * - page.relatedcontent.max.fetch.size - - Maximum fetch size for related content - - 5000 + - Maximum number of related content records to fetch per page. + - ``5000`` * - page.relatedquery.max.fetch.size - - Maximum fetch size for related query - - 5000 + - Maximum number of related query records to fetch per page. + - ``5000`` * - page.thumbnail.queue.max.fetch.size - - Maximum fetch size for thumbnail queue - - 100 + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` * - page.thumbnail.purge.max.fetch.size - - Maximum fetch size for thumbnail purge - - 100 + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` * - page.score.booster.max.fetch.size - - Maximum fetch size for score booster - - 1000 + - Maximum number of score booster records to fetch per page. + - ``1000`` * - page.searchlog.max.fetch.size - - Maximum fetch size for search log - - 10000 + - Maximum number of search log records to fetch per page. + - ``10000`` * - page.searchlist.track.total.hits - - Track total hits in search list - - true + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` -.. list-table:: Search Page Configuration +.. list-table:: Search Page :header-rows: 1 * - Name - Description - - Default Value + - Default * - paging.search.page.start - - Starting page number for search results - - 0 + - Default start page for search results. + - ``0`` * - paging.search.page.size - - Number of search results per page - - 10 + - Default size of search results per page. + - ``10`` * - paging.search.page.max.size - - Maximum number of search results per page - - 100 + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` * - searchlog.agg.shard.size - - Aggregation shard size for search logs - - -1 + - searchlog + - ``-1`` * - searchlog.request.headers - - Headers to include in search log requests + - Request headers to include in search log. - (empty) * - searchlog.process.batch_size - - Batch size for processing search logs - - 100 + - Batch size for search log processing. + - ``100`` * - thumbnail.html.image.min.width - - Minimum width for HTML image thumbnails - - 100 + - Minimum width for HTML images in thumbnails. + - ``100`` * - thumbnail.html.image.min.height - - Minimum height for HTML image thumbnails - - 100 + - Minimum height for HTML images in thumbnails. + - ``100`` * - thumbnail.html.image.max.aspect.ratio - - Maximum aspect ratio for HTML image thumbnails - - 3.0 + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` * - thumbnail.html.image.thumbnail.width - - Width of the HTML image thumbnail - - 100 + - Width of generated thumbnail images. + - ``100`` * - thumbnail.html.image.thumbnail.height - - Height of the HTML image thumbnail - - 100 + - Height of generated thumbnail images. + - ``100`` * - thumbnail.html.image.format - - Format of the HTML image thumbnail - - png + - Format of generated thumbnail images. + - ``png`` * - thumbnail.html.image.xpath - - XPath to select images for thumbnails - - //IMG + - XPath to select images for thumbnails. + - ``//IMG`` * - thumbnail.html.image.exclude.extensions - - File extensions to exclude from thumbnails - - svg,html,css,js + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` * - thumbnail.generator.interval - - Interval for generating thumbnails - - 0 + - Interval for thumbnail generator. + - ``0`` * - thumbnail.generator.targets - - Targets for thumbnail generation - - all + - Targets for thumbnail generator (e.g., all). + - ``all`` * - thumbnail.crawler.enabled - - Enable or disable the thumbnail crawler - - true + - Whether the thumbnail crawler is enabled. + - ``true`` * - thumbnail.system.monitor.interval - - Interval for system monitoring - - 60 + - Interval for system monitor in thumbnail processing. + - ``60`` -.. list-table:: User Page Configuration +.. list-table:: User :header-rows: 1 * - Name - Description - Default * - user.code.request.parameter - - Request parameter for user code - - userCode + - User code settings + - ``userCode`` * - user.code.min.length - - Minimum length for user code - - 20 + - User code minimum length. + - ``20`` * - user.code.max.length - - Maximum length for user code - - 100 + - User code maximum length. + - ``100`` * - user.code.pattern - - Pattern for user code - - [a-zA-Z0-9_]+ - -Mail ----- - -.. list-table:: Mail Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` * - mail.from.name - - The name displayed in the "From" field of outgoing emails. - - Administrator + - Name to display in the From field of emails. + - ``Administrator`` * - mail.from.address - - The email address displayed in the "From" field of outgoing emails. - - root@localhost + - Email address to use in the From field. + - ``root@localhost`` * - mail.hostname - - The hostname of the mail server. + - Hostname for the mail server. - (empty) - -Scheduler ---------- - -.. list-table:: Scheduler Configuration - :header-rows: 1 - - * - Name - - Description - - Default * - scheduler.target.name - - (Description for scheduler.target.name) + - Target name for the scheduler. - (empty) * - scheduler.job.class - - Class name for the job to be executed - - org.codelibs.fess.app.job.ScriptExecutorJob + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` * - scheduler.concurrent.exec.mode - - Mode for concurrent execution - - QUIT + - Mode for concurrent execution in the scheduler. + - ``QUIT`` * - scheduler.monitor.interval - - Interval for monitoring in seconds - - 30 - - -Online Help ------------ - -.. list-table:: Online Help Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` * - online.help.base.link - - Base link for online help - - https://fess.codelibs.org/{lang}/{version}/admin/ + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` * - online.help.installation - - Installation help link - - https://fess.codelibs.org/{lang}/{version}/install/install.html + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` * - online.help.eol - - End of life help link - - https://fess.codelibs.org/{lang}/eol.html + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` * - online.help.name.failureurl - - Failure URL help name - - failureurl + - Online help key for failure URL. + - ``failureurl`` * - online.help.name.elevateword - - Elevate word help name - - elevateword + - Online help key for elevate word. + - ``elevateword`` * - online.help.name.reqheader - - Request header help name - - reqheader + - Online help key for request header. + - ``reqheader`` * - online.help.name.dict.synonym - - Synonym dictionary help name - - synonym + - Online help key for synonym dictionary. + - ``synonym`` * - online.help.name.dict - - Dictionary help name - - dict + - Online help key for dictionary. + - ``dict`` * - online.help.name.dict.kuromoji - - Kuromoji dictionary help name - - kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` * - online.help.name.dict.protwords - - Protected words dictionary help name - - protwords + - Online help key for protected words dictionary. + - ``protwords`` * - online.help.name.dict.stopwords - - Stopwords dictionary help name - - stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` * - online.help.name.dict.stemmeroverride - - Stemmer override dictionary help name - - stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` * - online.help.name.dict.mapping - - Mapping dictionary help name - - mapping + - Online help key for mapping dictionary. + - ``mapping`` * - online.help.name.webconfig - - Web configuration help name - - webconfig + - Online help key for web config. + - ``webconfig`` * - online.help.name.searchlist - - Search list help name - - searchlist + - Online help key for search list. + - ``searchlist`` * - online.help.name.log - - Log help name - - log + - Online help key for log. + - ``log`` * - online.help.name.general - - General help name - - general + - Online help key for general settings. + - ``general`` * - online.help.name.role - - Role help name - - role + - Online help key for role. + - ``role`` * - online.help.name.joblog - - Job log help name - - joblog + - Online help key for job log. + - ``joblog`` * - online.help.name.keymatch - - Key match help name - - keymatch + - Online help key for keymatch. + - ``keymatch`` * - online.help.name.relatedquery - - Related query help name - - relatedquery + - Online help key for related query. + - ``relatedquery`` * - online.help.name.relatedcontent - - Related content help name - - relatedcontent + - Online help key for related content. + - ``relatedcontent`` * - online.help.name.wizard - - Wizard help name - - wizard + - Online help key for wizard. + - ``wizard`` * - online.help.name.badword - - Bad word help name - - badword + - Online help key for bad word. + - ``badword`` * - online.help.name.pathmap - - Path map help name - - pathmap + - Online help key for path mapping. + - ``pathmap`` * - online.help.name.boostdoc - - Boost document help name - - boostdoc + - Online help key for boost document. + - ``boostdoc`` * - online.help.name.dataconfig - - Data configuration help name - - dataconfig + - Online help key for data config. + - ``dataconfig`` * - online.help.name.systeminfo - - System information help name - - systeminfo + - Online help key for system info. + - ``systeminfo`` * - online.help.name.user - - User help name - - user + - Online help key for user. + - ``user`` * - online.help.name.group - - Group help name - - group + - Online help key for group. + - ``group`` * - online.help.name.design - - Design help name - - design + - Online help key for design. + - ``design`` * - online.help.name.dashboard - - Dashboard help name - - dashboard + - Online help key for dashboard. + - ``dashboard`` * - online.help.name.webauth - - Web authentication help name - - webauth + - Online help key for web authentication. + - ``webauth`` * - online.help.name.fileconfig - - File configuration help name - - fileconfig + - Online help key for file config. + - ``fileconfig`` * - online.help.name.fileauth - - File authentication help name - - fileauth + - Online help key for file authentication. + - ``fileauth`` * - online.help.name.labeltype - - Label type help name - - labeltype + - Online help key for label type. + - ``labeltype`` * - online.help.name.duplicatehost - - Duplicate host help name - - duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` * - online.help.name.scheduler - - Scheduler help name - - scheduler + - Online help key for scheduler. + - ``scheduler`` * - online.help.name.crawlinginfo - - Crawling information help name - - crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` * - online.help.name.backup - - Backup help name - - backup + - Online help key for backup. + - ``backup`` * - online.help.name.upgrade - - Upgrade help name - - upgrade - * - online.help.name.esreq - - OpenSearch request help name - - esreq + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` * - online.help.name.accesstoken - - Access token help name - - accesstoken + - Online help key for access token. + - ``accesstoken`` * - online.help.name.suggest - - Suggest help name - - suggest + - Online help key for suggest. + - ``suggest`` * - online.help.name.searchlog - - Search log help name - - searchlog + - Online help key for search log. + - ``searchlog`` * - online.help.name.maintenance - - Maintenance help name - - maintenance + - Online help key for maintenance. + - ``maintenance`` * - online.help.name.plugin - - Plugin help name - - plugin + - Online help key for plugin. + - ``plugin`` * - online.help.name.storage - - Storage help name - - storage + - Online help key for storage. + - ``storage`` * - online.help.supported.langs - - Supported languages - - ja - -Forum ------ - -.. list-table:: Forum Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` * - forum.link - - Base link for forum - - https://discuss.codelibs.org/c/Fess{lang}/ + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` * - forum.supported.langs - - Supported languages - - en,ja - -Suggest -------- - -.. list-table:: Suggest Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Supported languages for the forum. + - ``en,ja`` * - suggest.popular.word.seed - - Seed value for popular word suggestions - - 0 + - Seed value for popular word suggestion. + - ``0`` * - suggest.popular.word.tags - - Tags for popular word suggestions + - Tags for popular word suggestion. - (empty) * - suggest.popular.word.fields - - Fields for popular word suggestions + - Fields for popular word suggestion. - (empty) * - suggest.popular.word.excludes - - Excluded words for popular word suggestions + - Excluded words for popular word suggestion. - (empty) * - suggest.popular.word.size - - Size of popular word suggestions - - 10 + - Number of popular words to suggest. + - ``10`` * - suggest.popular.word.window.size - - Window size for popular word suggestions - - 30 + - Window size for popular word suggestion. + - ``30`` * - suggest.popular.word.query.freq - - Query frequency for popular word suggestions - - 10 + - Query frequency for popular word suggestion. + - ``10`` * - suggest.min.hit.count - - Minimum hit count for suggestions - - 1 + - Minimum hit count for suggestion. + - ``1`` * - suggest.field.contents - - Contents field for suggestions - - _default + - Field for suggestion contents. + - ``_default`` * - suggest.field.tags - - Tags field for suggestions - - label + - Field for suggestion tags. + - ``label`` * - suggest.field.roles - - Roles field for suggestions - - role + - Field for suggestion roles. + - ``role`` * - suggest.field.index.contents - - Index contents field for suggestions - - content,title + - Index contents for suggestion. + - ``content,title`` * - suggest.update.request.interval - - Interval for update requests - - 0 + - Interval for suggestion update requests. + - ``0`` * - suggest.update.doc.per.request - - Number of documents per update request - - 2 + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` * - suggest.update.contents.limit.num - - Limit number for update contents - - 10000 + - Maximum number of suggestion update contents. + - ``10000`` * - suggest.update.contents.limit.doc.size - - Limit document size for update contents - - 50000 + - Maximum document size for suggestion update. + - ``50000`` * - suggest.source.reader.scroll.size - - Scroll size for source reader - - 1 + - Scroll size for suggestion source reader. + - ``1`` * - suggest.popular.word.cache.size - - Cache size for popular word suggestions - - 1000 + - Cache size for popular word suggestion. + - ``1000`` * - suggest.popular.word.cache.expire - - Cache expiration time for popular word suggestions - - 60 + - Cache expiration (seconds) for popular word suggestion. + - ``60`` * - suggest.search.log.permissions - - Permissions for search log - - {user}guest,{role}guest + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` * - suggest.system.monitor.interval - - Interval for system monitoring - - 60 - -LDAP ----- - -.. list-table:: LDAP Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Interval for system monitor in suggestion. + - ``60`` * - ldap.admin.enabled - - Enable or disable LDAP admin - - false + - Whether LDAP admin is enabled. + - ``false`` * - ldap.admin.user.filter - - Filter for LDAP admin user - - uid=%s + - User filter for LDAP admin. + - ``uid=%s`` * - ldap.admin.user.base.dn - - Base DN for LDAP admin user - - ou=People,dc=fess,dc=codelibs,dc=org + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` * - ldap.admin.user.object.classes - - Object classes for LDAP admin user - - organizationalPerson,top,person,inetOrgPerson + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` * - ldap.admin.role.filter - - Filter for LDAP admin role - - cn=%s + - Role filter for LDAP admin. + - ``cn=%s`` * - ldap.admin.role.base.dn - - Base DN for LDAP admin role - - ou=Role,dc=fess,dc=codelibs,dc=org + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` * - ldap.admin.role.object.classes - - Object classes for LDAP admin role - - groupOfNames + - Object classes for LDAP admin role. + - ``groupOfNames`` * - ldap.admin.group.filter - - Filter for LDAP admin group - - cn=%s + - Group filter for LDAP admin. + - ``cn=%s`` * - ldap.admin.group.base.dn - - Base DN for LDAP admin group - - ou=Group,dc=fess,dc=codelibs,dc=org + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` * - ldap.admin.group.object.classes - - Object classes for LDAP admin group - - groupOfNames + - Object classes for LDAP admin group. + - ``groupOfNames`` * - ldap.admin.sync.password - - Sync password for LDAP admin - - true + - Whether to sync password for LDAP admin. + - ``true`` * - ldap.auth.validation - - Enable or disable LDAP auth validation - - true + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` * - ldap.max.username.length - - Maximum username length for LDAP - - -1 + - Maximum username length for LDAP. + - ``-1`` * - ldap.ignore.netbios.name - - Ignore NetBIOS name for LDAP - - true + - Whether to ignore NetBIOS name in LDAP. + - ``true`` * - ldap.group.name.with.underscores - - Use underscores in group names for LDAP - - false + - Whether to allow underscores in LDAP group names. + - ``false`` * - ldap.lowercase.permission.name - - Use lowercase for permission names in LDAP - - false + - Whether to use lowercase for LDAP permission names. + - ``false`` * - ldap.allow.empty.permission - - Allow empty permissions in LDAP - - true + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` * - ldap.role.search.user.enabled - - Enable role search for user in LDAP - - true + - Whether LDAP role search for user is enabled. + - ``true`` * - ldap.role.search.group.enabled - - Enable role search for group in LDAP - - true + - Whether LDAP role search for group is enabled. + - ``true`` * - ldap.role.search.role.enabled - - Enable role search for role in LDAP - - true + - Whether LDAP role search for role is enabled. + - ``true`` * - ldap.attr.surname - - LDAP attribute for surname - - sn + - LDAP attribute for surname. + - ``sn`` * - ldap.attr.givenName - - LDAP attribute for given name - - givenName + - LDAP attribute for given name. + - ``givenName`` * - ldap.attr.employeeNumber - - LDAP attribute for employee number - - employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` * - ldap.attr.mail - - LDAP attribute for mail - - mail + - LDAP attribute for mail. + - ``mail`` * - ldap.attr.telephoneNumber - - LDAP attribute for telephone number - - telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` * - ldap.attr.homePhone - - LDAP attribute for home phone - - homePhone + - LDAP attribute for home phone. + - ``homePhone`` * - ldap.attr.homePostalAddress - - LDAP attribute for home postal address - - homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` * - ldap.attr.labeledURI - - LDAP attribute for labeled URI - - labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` * - ldap.attr.roomNumber - - LDAP attribute for room number - - roomNumber + - LDAP attribute for room number. + - ``roomNumber`` * - ldap.attr.description - - LDAP attribute for description - - description + - LDAP attribute for description. + - ``description`` * - ldap.attr.title - - LDAP attribute for title - - title + - LDAP attribute for title. + - ``title`` * - ldap.attr.pager - - LDAP attribute for pager - - pager + - LDAP attribute for pager. + - ``pager`` * - ldap.attr.street - - LDAP attribute for street - - street + - LDAP attribute for street. + - ``street`` * - ldap.attr.postalCode - - LDAP attribute for postal code - - postalCode + - LDAP attribute for postal code. + - ``postalCode`` * - ldap.attr.physicalDeliveryOfficeName - - LDAP attribute for physical delivery office name - - physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` * - ldap.attr.destinationIndicator - - LDAP attribute for destination indicator - - destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` * - ldap.attr.internationaliSDNNumber - - LDAP attribute for international ISDN number - - internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` * - ldap.attr.state - - LDAP attribute for state - - st + - LDAP attribute for state. + - ``st`` * - ldap.attr.employeeType - - LDAP attribute for employee type - - employeeType + - LDAP attribute for employee type. + - ``employeeType`` * - ldap.attr.facsimileTelephoneNumber - - LDAP attribute for facsimile telephone number - - facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` * - ldap.attr.postOfficeBox - - LDAP attribute for post office box - - postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` * - ldap.attr.initials - - LDAP attribute for initials - - initials + - LDAP attribute for initials. + - ``initials`` * - ldap.attr.carLicense - - LDAP attribute for car license - - carLicense + - LDAP attribute for car license. + - ``carLicense`` * - ldap.attr.mobile - - LDAP attribute for mobile - - mobile + - LDAP attribute for mobile. + - ``mobile`` * - ldap.attr.postalAddress - - LDAP attribute for postal address - - postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` * - ldap.attr.city - - LDAP attribute for city - - l + - LDAP attribute for city. + - ``l`` * - ldap.attr.teletexTerminalIdentifier - - LDAP attribute for teletex terminal identifier - - teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` * - ldap.attr.x121Address - - LDAP attribute for X.121 address - - x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` * - ldap.attr.businessCategory - - LDAP attribute for business category - - businessCategory + - LDAP attribute for business category. + - ``businessCategory`` * - ldap.attr.registeredAddress - - LDAP attribute for registered address - - registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` * - ldap.attr.displayName - - LDAP attribute for display name - - displayName + - LDAP attribute for display name. + - ``displayName`` * - ldap.attr.preferredLanguage - - LDAP attribute for preferred language - - preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` * - ldap.attr.departmentNumber - - LDAP attribute for department number - - departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` * - ldap.attr.uidNumber - - LDAP attribute for UID number - - uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` * - ldap.attr.gidNumber - - LDAP attribute for GID number - - gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` * - ldap.attr.homeDirectory - - LDAP attribute for home directory - - homeDirectory - -Maven Repository ----------------- - -.. list-table:: Maven Repository Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - LDAP attribute for home directory. + - ``homeDirectory`` * - plugin.repositories - - URLs for plugin repositories - - https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` * - plugin.version.filter - - Filter for plugin versions + - Version filter for plugins. - (empty) - -Storage -------- - -.. list-table:: Storage Configuration - :header-rows: 1 - - * - Name - - Description - - Default * - storage.max.items.in.page - - Maximum items in a page - - 1000 - -Password --------- - -.. list-table:: Password Configuration - :header-rows: 1 - - * - Name - - Description - - Default + - Maximum number of items per page in storage. + - ``1000`` * - password.invalid.admin.passwords - - Invalid passwords a user can use as their password - - | admin + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/en/15.9/config/rag-chat.rst b/en/15.9/config/rag-chat.rst index d2afab2e4..2063819d8 100644 --- a/en/15.9/config/rag-chat.rst +++ b/en/15.9/config/rag-chat.rst @@ -160,7 +160,7 @@ List of core settings that can be configured in ``fess_config.properties``. - Fields to retrieve from documents - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - Maximum number of characters in user messages. This value is read as a System Property; the entry in ``fess_config.properties`` is not used. Set it via System Properties or ``-Dfess.system.rag.chat.message.max.length``. + - Maximum number of characters in user messages. This value is read as a System Property. Set it via System Properties or ``-Dfess.system.rag.chat.message.max.length``. - ``4000`` * - ``rag.chat.highlight.fragment.size`` - Search highlight fragment size diff --git a/es/15.9/config/index.rst b/es/15.9/config/index.rst index 820274479..07e9427dc 100644 --- a/es/15.9/config/index.rst +++ b/es/15.9/config/index.rst @@ -8,6 +8,7 @@ Guía integral sobre la configuración de |Fess|. Cada sección está organizada :caption: Introducción intro + properties .. toctree:: :maxdepth: 2 diff --git a/es/15.9/config/properties.po b/es/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/es/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/es/15.9/config/properties.rst b/es/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/es/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/es/15.9/config/rag-chat.rst b/es/15.9/config/rag-chat.rst index 9d3f1c770..142049056 100644 --- a/es/15.9/config/rag-chat.rst +++ b/es/15.9/config/rag-chat.rst @@ -159,7 +159,7 @@ Lista de configuraciones del núcleo que se pueden configurar en ``fess_config.p - Campos a obtener de los documentos - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - Número máximo de caracteres del mensaje del usuario. Este valor se lee como System Property; el elemento en ``fess_config.properties`` no se utiliza. Configúrelo mediante System Properties o ``-Dfess.system.rag.chat.message.max.length``. + - Número máximo de caracteres del mensaje del usuario. Este valor se lee como System Property. Configúrelo mediante System Properties o ``-Dfess.system.rag.chat.message.max.length``. - ``4000`` * - ``rag.chat.highlight.fragment.size`` - Tamaño del fragmento de resaltado de búsqueda diff --git a/fr/15.9/config/index.rst b/fr/15.9/config/index.rst index 30291ef79..7bdb37d23 100644 --- a/fr/15.9/config/index.rst +++ b/fr/15.9/config/index.rst @@ -8,6 +8,7 @@ Ce guide complet couvre la configuration de |Fess|. Chaque section est organisé :caption: Introduction intro + properties .. toctree:: :maxdepth: 2 diff --git a/fr/15.9/config/properties.po b/fr/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/fr/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/fr/15.9/config/properties.rst b/fr/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/fr/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/fr/15.9/config/rag-chat.rst b/fr/15.9/config/rag-chat.rst index 97e231349..268f15fc3 100644 --- a/fr/15.9/config/rag-chat.rst +++ b/fr/15.9/config/rag-chat.rst @@ -159,7 +159,7 @@ Liste des configurations principales disponibles dans ``fess_config.properties`` - Champs à récupérer des documents - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - Nombre maximum de caractères du message utilisateur. Cette valeur est lue en tant que System Property ; l'entrée dans ``fess_config.properties`` n'est pas utilisée. Définissez-la via les System Properties ou ``-Dfess.system.rag.chat.message.max.length``. + - Nombre maximum de caractères du message utilisateur. Cette valeur est lue en tant que System Property. Définissez-la via les System Properties ou ``-Dfess.system.rag.chat.message.max.length``. - ``4000`` * - ``rag.chat.highlight.fragment.size`` - Taille du fragment pour le surlignage de recherche diff --git a/ja/15.9/config/index.rst b/ja/15.9/config/index.rst index 8dfd62b62..5c4a91437 100644 --- a/ja/15.9/config/index.rst +++ b/ja/15.9/config/index.rst @@ -8,6 +8,7 @@ :caption: はじめに intro + properties .. toctree:: :maxdepth: 2 diff --git a/ja/15.9/config/properties.po b/ja/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/ja/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/ja/15.9/config/properties.rst b/ja/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/ja/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/ja/15.9/config/rag-chat.rst b/ja/15.9/config/rag-chat.rst index c0c5c3c1d..1610bddb6 100644 --- a/ja/15.9/config/rag-chat.rst +++ b/ja/15.9/config/rag-chat.rst @@ -160,7 +160,7 @@ LLMプロバイダーの詳細設定については、以下を参照してく - ドキュメントから取得するフィールド - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - ユーザーメッセージの最大文字数。この値は System Property として読み込まれ、``fess_config.properties`` の項目は使用されません。System Properties か ``-Dfess.system.rag.chat.message.max.length`` で設定します。 + - ユーザーメッセージの最大文字数。この値は System Property として読み込まれます。System Properties か ``-Dfess.system.rag.chat.message.max.length`` で設定します。 - ``4000`` * - ``rag.chat.highlight.fragment.size`` - 検索ハイライトのフラグメントサイズ diff --git a/ko/15.9/config/index.rst b/ko/15.9/config/index.rst index f1ec11254..11c339cbd 100644 --- a/ko/15.9/config/index.rst +++ b/ko/15.9/config/index.rst @@ -8,6 +8,7 @@ :caption: 시작하기 intro + properties .. toctree:: :maxdepth: 2 diff --git a/ko/15.9/config/properties.po b/ko/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/ko/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/ko/15.9/config/properties.rst b/ko/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/ko/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/ko/15.9/config/rag-chat.rst b/ko/15.9/config/rag-chat.rst index 03d758c75..e7e42994f 100644 --- a/ko/15.9/config/rag-chat.rst +++ b/ko/15.9/config/rag-chat.rst @@ -162,7 +162,7 @@ OpenSearch에 영속화). 두 계열의 설정 경로가 다르므로 혼동하 - 문서에서 가져올 필드 - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - 사용자 메시지의 최대 문자 수. 이 값은 System Property로 읽어들여지며, ``fess_config.properties`` 의 항목은 사용되지 않습니다. System Properties 또는 ``-Dfess.system.rag.chat.message.max.length`` 로 설정합니다. + - 사용자 메시지의 최대 문자 수. 이 값은 System Property로 읽어들여집니다. System Properties 또는 ``-Dfess.system.rag.chat.message.max.length`` 로 설정합니다. - ``4000`` * - ``rag.chat.highlight.fragment.size`` - 검색 하이라이트의 프래그먼트 크기 diff --git a/tools/gen_properties_doc.py b/tools/gen_properties_doc.py new file mode 100755 index 000000000..53944540b --- /dev/null +++ b/tools/gen_properties_doc.py @@ -0,0 +1,520 @@ +#!/usr/bin/env python3 +"""Regenerate //config/properties.rst from Fess's fess_config.properties. + +The page lists every configuration property Fess reads, with its description and its +default. Kept by hand it rotted: it had drifted to 120 keys short, and it documented ten +keys that no longer exist, several of them under a misspelling. So the rows are +generated, and only the prose around them is written by a person. + +What each file records: + + fess_config.properties the keys, the defaults, the English descriptions, the + headings and the order. It lives in the fess repository and + is the source for all of it. Edit this. + /.../properties.po the translations of those descriptions and headings, per + language and per version. Edit these. + /.../properties.rst the page. Everything between the GENERATED markers comes + from the two files above -- edit outside the markers only. + +fess_config.properties is not copied into this repository, so `--check` cannot compare a +page against it; that comparison happens when someone runs the update script. What +`--check` does verify, offline, is that the seven pages still agree with each other and +with their catalogues, which is what catches a page edited by hand. + +Usage: + tools/update_properties_doc.sh [path-to-fess-checkout] regenerate + python3 tools/gen_properties_doc.py --check report, change nothing +""" +from __future__ import annotations + +import argparse +import json +import pathlib +import re +import sys +import unicodedata +from collections import namedtuple + +BEGIN = ".. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh" +END = ".. GENERATED-END: properties" +_DO_NOT_EDIT = ( + ".. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the\n" + ".. fess repository; translations come from properties.po beside this file.\n" + ".. Regenerate with tools/update_properties_doc.sh." +) +_COLUMNS = ("Name", "Description", "Default") +_EMPTY_DEFAULT = "(empty)" + +#: One configuration key: its name, its default, and the English prose describing it. +Entry = namedtuple("Entry", "key default description") +#: Keys under one ``#>`` heading. An untitled group renders without a caption. +Group = namedtuple("Group", "title entries") +#: Groups under one banner. An untitled section renders without a heading. +Section = namedtuple("Section", "title groups") + +# A banner is three lines -- a rule, a right-aligned title, and an underline of "=". +# The underline is what identifies it; the title is the line above. +_BANNER_UNDERLINE = re.compile(r"^#\s+=+\s*$") +_KEY = re.compile(r"^([A-Za-z][A-Za-z0-9_.]*)\s*[=:]\s*(.*)$") +_GROUP_MARKER = "#>" + +_PROPERTIES_ESCAPES = {"n": "\n", "t": "\t", "r": "\r", "f": "\f", "\\": "\\", ":": ":", "=": "="} + + +def _properties_unescape(value: str) -> str: + out = [] + i = 0 + while i < len(value): + c = value[i] + if c != "\\" or i + 1 >= len(value): + out.append(c) + i += 1 + continue + nxt = value[i + 1] + if nxt == "u" and i + 5 < len(value): + out.append(chr(int(value[i + 2:i + 6], 16))) + i += 6 + continue + out.append(_PROPERTIES_ESCAPES.get(nxt, nxt)) + i += 2 + return "".join(out) + + +def parse_properties(text: str) -> list[Section]: + """Read fess_config.properties into the sections, groups and entries it already has. + + Three shapes carry the structure. A banner -- a rule, a right-aligned title and an + "=" underline -- opens a section. A line starting with ``#>`` opens a group; the + marker is what tells a heading apart from a commented-out configuration example, + which otherwise has exactly the same shape. Every other comment line directly above a + key is that key's description, and a blank line ends one. + """ + lines = text.split("\n") + sections: list[Section] = [Section("", [Group("", [])])] + description: list[str] = [] + i = 0 + + def group() -> Group: + return sections[-1].groups[-1] + + while i < len(lines): + line = lines[i] + if _BANNER_UNDERLINE.match(line) and i > 0: + # Empty sections and groups are dropped at the end, so the placeholder this + # started with disappears unless the file put keys before its first banner. + sections.append(Section(lines[i - 1].lstrip("#").strip(), [Group("", [])])) + description = [] + i += 1 + continue + if not line.strip(): + description = [] + i += 1 + continue + if line.startswith(_GROUP_MARKER): + sections[-1].groups.append(Group(line[len(_GROUP_MARKER):].strip(), [])) + description = [] + i += 1 + continue + if line.startswith("#"): + body = line.lstrip("#").strip() + # Skip the decorative rules that frame a banner and the file header. + if body and not set(body) <= set("_/= -"): + description.append(body) + i += 1 + continue + match = _KEY.match(line) + if not match: + description = [] + i += 1 + continue + raw = match.group(2) + while raw.endswith("\\") and i + 1 < len(lines): + i += 1 + raw = raw[:-1] + lines[i] + group().entries.append( + Entry(match.group(1), _properties_unescape(raw.strip()), " ".join(description)) + ) + description = [] + i += 1 + + for section in sections: + section.groups[:] = [g for g in section.groups if g.entries] + return [s for s in sections if s.groups] + +# Escapes shared by the .po reader and writer, longest first so that a backslash is +# handled before the sequences that start with one. +PO_ESCAPES = [("\\", "\\\\"), ('"', '\\"'), ("\n", "\\n"), ("\t", "\\t"), ("\r", "\\r")] + + +def _po_unescape(text: str) -> str: + out = [] + i = 0 + while i < len(text): + c = text[i] + if c == "\\" and i + 1 < len(text): + nxt = text[i + 1] + out.append({"n": "\n", "t": "\t", "r": "\r", '"': '"', "\\": "\\"}.get(nxt, nxt)) + i += 2 + continue + out.append(c) + i += 1 + return "".join(out) + + +def _po_escape(text: str) -> str: + for raw, escaped in PO_ESCAPES: + text = text.replace(raw, escaped) + return text + + +def parse_po(text: str) -> dict[str, str]: + """Read a .po catalogue into {msgid: msgstr}. + + Only entries with a translation are returned: an empty msgstr and a fuzzy entry both + mean "no translation yet", and the caller renders the English. The header entry, + whose msgid is empty, is dropped. Python's standard library reads compiled .mo files + rather than .po, so this covers the subset gettext tools emit -- msgid/msgstr, + adjacent string continuation, comment and flag lines. + """ + catalog: dict[str, str] = {} + msgid: list[str] = [] + msgstr: list[str] = [] + target: list[str] | None = None + fuzzy = False + # A flag line introduces the entry that follows it, so it is held here until the + # msgid line arrives rather than applied to the entry being closed. + pending_fuzzy = False + + def flush() -> None: + nonlocal msgid, msgstr, target, fuzzy + if target is not None: + key = "".join(msgid) + value = "".join(msgstr) + if key and value and not fuzzy: + catalog[key] = value + msgid, msgstr, target, fuzzy = [], [], None, False + + for line in text.split("\n"): + stripped = line.strip() + if not stripped: + flush() + continue + if stripped.startswith("#"): + if stripped.startswith("#,") and "fuzzy" in stripped: + pending_fuzzy = True + continue + if stripped.startswith("msgid "): + flush() + target = msgid + fuzzy, pending_fuzzy = pending_fuzzy, False + stripped = stripped[len("msgid "):] + elif stripped.startswith("msgstr "): + target = msgstr + stripped = stripped[len("msgstr "):] + if target is None: + continue + quoted = re.fullmatch(r'"(.*)"', stripped, re.DOTALL) + if quoted: + target.append(_po_unescape(quoted.group(1))) + flush() + return catalog + + +def format_po(msgids: list[str], existing: dict[str, str]) -> str: + """Render a catalogue holding every msgid, carrying over the translations there are. + + A msgid that has gone from fess_config.properties is dropped rather than kept as a + stale translation, and the order follows the document so a diff reads like the page. + """ + out = [ + "# Translations for the generated configuration properties page.", + "#", + "# msgid is the English text from fess_config.properties. Leave msgstr empty to", + "# render the English. Regenerate with tools/update_properties_doc.sh, which adds", + "# new entries and keeps the translations already here.", + 'msgid ""', + 'msgstr ""', + '"MIME-Version: 1.0\\n"', + '"Content-Type: text/plain; charset=UTF-8\\n"', + '"Content-Transfer-Encoding: 8bit\\n"', + "", + ] + for msgid in msgids: + out.append('msgid "%s"' % _po_escape(msgid)) + out.append('msgstr "%s"' % _po_escape(existing.get(msgid, ""))) + out.append("") + return "\n".join(out) + + +def _display_width(text: str) -> int: + """Columns the text occupies, so an underline matches a title in any language. + + docutils measures a section title in columns rather than characters, so a Japanese + title underlined by character count is too short and the section is dropped. + """ + return sum(2 if unicodedata.east_asian_width(c) in "WF" else 1 for c in text) + + +def _literal(value: str) -> str: + """Render a configuration value as RST inline literal markup. + + A default is machine text -- paths, flags, regular expressions -- so it is set as a + literal both to read correctly and so that a character RST would otherwise interpret + cannot break the table. A value carrying a backtick cannot go in inline literal + markup at all, so it falls back to escaping the characters that mean something. + """ + if "`" in value: + return re.sub(r"([*|_`\\])", r"\\\1", value) + return "``%s``" % value + + +def _prose(text: str) -> str: + """Escape the characters RST reads as inline markup in a description. + + Descriptions are prose written in a properties file, so they carry things like + ``Access-Control-*`` and ``api.cors.*``. Left alone those trip docutils' inline + markup recognition and the build warns; escaped, they render exactly as written. + """ + return re.sub(r"([*`|\\])", r"\\\1", text) + + +def _cell(value: str) -> list[str]: + """The lines of a Default cell, indented for a list-table row.""" + lines = value.split("\n") + while lines and not lines[-1]: + lines.pop() + if not lines: + # Either genuinely unset, or a value that is nothing but newlines -- which must + # not reach _literal, where the newlines would break out of the table cell. + return [" - " + _EMPTY_DEFAULT] + if len(lines) == 1: + return [" - " + _literal(lines[0])] + return [" - | " + _literal(lines[0])] + [" | " + _literal(line) for line in lines[1:]] + + +def msgids(sections: list[Section]) -> list[str]: + """Every translatable string, in document order, without repeats. + + Section titles, group titles and descriptions are prose and are translated. Key names + and defaults are not -- they are what the reader types into a configuration file. + """ + seen: dict[str, None] = {} + for section in sections: + if section.title: + seen.setdefault(section.title, None) + for group in section.groups: + if group.title: + seen.setdefault(group.title, None) + for entry in group.entries: + if entry.description: + seen.setdefault(entry.description, None) + return list(seen) + + +def render(sections: list[Section], catalog: dict[str, str]) -> str: + """Build the generated block: a heading per section, a table per group.""" + + def translate(text: str) -> str: + return catalog.get(text) or text + + out = [_DO_NOT_EDIT] + for section in sections: + if section.title: + title = translate(section.title) + out += ["", title, "-" * _display_width(title)] + for group in section.groups: + caption = translate(group.title) if group.title else "" + out += ["", (".. list-table:: %s" % caption) if caption else ".. list-table::"] + out += [" :header-rows: 1", ""] + out += [" * - %s" % _COLUMNS[0], " - %s" % _COLUMNS[1], " - %s" % _COLUMNS[2]] + for entry in group.entries: + out.append(" * - %s" % entry.key) + # A key whose comment is missing yields an empty cell; emit it without a + # trailing space so the page never carries trailing whitespace. + out.append((" - %s" % _prose(translate(entry.description))).rstrip()) + out += _cell(entry.default) + return "\n".join(out) + + +def replace_block(page: str, body: str) -> str: + """Swap what is between the markers, leaving the rest of the page alone.""" + pattern = re.compile("^%s$.*?^%s$" % (re.escape(BEGIN), re.escape(END)), re.M | re.S) + if not pattern.search(page): + raise ValueError("no GENERATED-BEGIN/END markers in the page") + return pattern.sub(lambda _: "%s\n%s\n%s" % (BEGIN, body, END), page, count=1) + + +#: The seven documentation trees, in the order create_version.sh walks them. +LANGUAGES = ["ja", "en", "de", "fr", "es", "zh-cn", "ko"] +#: The language whose page is the reference the others are compared against. +REFERENCE = "en" + +ROOT = pathlib.Path(__file__).resolve().parent.parent +VERSIONS = ROOT / "versions.json" + + +def _tables(block: str) -> list[tuple[str, list[list[list[str]]]]]: + """Read a rendered block back as (caption, rows), each row a list of cell line-lists. + + Both `--check` comparisons work from this, so neither has to guess which column it is + looking at from the shape of the text. + """ + tables: list[tuple[str, list[list[list[str]]]]] = [] + rows: list[list[list[str]]] | None = None + for line in block.split("\n"): + if line.startswith(".. list-table::"): + rows = [] + tables.append((line[len(".. list-table::"):].strip(), rows)) + elif rows is None: + continue + elif line.startswith(" * - "): + rows.append([[line[6:]]]) + elif line.startswith(" - ") and rows: + rows[-1].append([line[6:]]) + elif line.startswith(" ") and rows and rows[-1]: + rows[-1][-1].append(line[6:]) + # The first row of every table is the column header, which is not data. + return [(caption, rows[1:]) for caption, rows in tables] + + +def structural_key(block: str) -> list: + """Reduce a rendered block to the parts that must be identical in every language. + + Names, defaults and the shape of the tables are the same everywhere; only headings + and descriptions are translated. Comparing this rather than the text is what lets + `--check` tell a translation apart from a page someone edited by hand. + """ + return [ + [(row[0][0], tuple(row[2])) for row in rows if len(row) > 2] + for _, rows in _tables(block) + ] + + +def _page_block(page: str) -> str: + match = re.search("^%s$(.*?)^%s$" % (re.escape(BEGIN), re.escape(END)), page, re.M | re.S) + if not match: + raise ValueError("no GENERATED-BEGIN/END markers in the page") + return match.group(1) + + +def development_version() -> str: + """The version whose tree is edited, as versions.json states it.""" + return json.loads(VERSIONS.read_text(encoding="utf-8"))["development"] + + +def _paths(lang: str, version: str) -> tuple[pathlib.Path, pathlib.Path]: + config = ROOT / lang / version / "config" + return config / "properties.rst", config / "properties.po" + + +def generate(properties_path: pathlib.Path, version: str) -> list[str]: + """Rewrite every page and refresh every catalogue. Returns what changed.""" + sections = parse_properties(properties_path.read_text(encoding="utf-8")) + ids = msgids(sections) + changed = [] + for lang in LANGUAGES: + rst_path, po_path = _paths(lang, version) + catalog = parse_po(po_path.read_text(encoding="utf-8")) if po_path.exists() else {} + # English is what fess_config.properties already holds, so the reference language + # has nothing to translate and gets no catalogue. + if lang != REFERENCE: + po = format_po(ids, catalog) + if not po_path.exists() or po_path.read_text(encoding="utf-8") != po: + po_path.parent.mkdir(parents=True, exist_ok=True) + po_path.write_text(po, encoding="utf-8") + changed.append(str(po_path.relative_to(ROOT))) + page = rst_path.read_text(encoding="utf-8") + updated = replace_block(page, render(sections, catalog)) + if updated != page: + rst_path.write_text(updated, encoding="utf-8") + changed.append(str(rst_path.relative_to(ROOT))) + return changed + + +def check(version: str) -> list[str]: + """Validate the pages against each other and against their catalogues, offline.""" + problems = [] + blocks = {} + for lang in LANGUAGES: + rst_path, po_path = _paths(lang, version) + if not rst_path.exists(): + problems.append("%s: missing" % rst_path.relative_to(ROOT)) + continue + try: + blocks[lang] = _page_block(rst_path.read_text(encoding="utf-8")) + except ValueError as exc: + problems.append("%s: %s" % (rst_path.relative_to(ROOT), exc)) + if REFERENCE not in blocks: + return problems or ["%s has no reference page" % REFERENCE] + + reference = structural_key(blocks[REFERENCE]) + english = set(_strings(blocks[REFERENCE])) + for lang, block in blocks.items(): + rst_path, po_path = _paths(lang, version) + if structural_key(block) != reference: + problems.append( + "%s: keys, defaults or table layout differ from %s -- regenerate with " + "tools/update_properties_doc.sh" % (rst_path.relative_to(ROOT), REFERENCE) + ) + continue + if lang == REFERENCE: + continue + translated = set(parse_po(po_path.read_text(encoding="utf-8")).values()) if po_path.exists() else set() + for text in _strings(block): + if text not in english and _prose(text) not in {_prose(t) for t in translated}: + problems.append( + "%s: %r is neither the English text nor a translation in %s" + % (rst_path.relative_to(ROOT), text[:60], po_path.relative_to(ROOT)) + ) + break + return problems + + +def _strings(block: str) -> list[str]: + """Every translatable string a rendered block shows: table captions and descriptions. + + Read from the parsed table rather than matched by shape, so a description that + happens to look like a default cannot be mistaken for one. + """ + out = [] + for caption, rows in _tables(block): + if caption: + out.append(caption) + for row in rows: + if len(row) > 1 and row[1] and row[1][0]: + out.append(row[1][0]) + return out + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description=__doc__.split("\n")[0]) + parser.add_argument("--properties", type=pathlib.Path, + help="path to fess_config.properties in a fess checkout") + parser.add_argument("--check", action="store_true", + help="report problems and change nothing") + args = parser.parse_args(argv) + version = development_version() + + if args.check: + problems = check(version) + for problem in problems: + print(problem) + if problems: + print("%d problem(s) in the %s configuration properties pages" % (len(problems), version), + file=sys.stderr) + return 1 + print("%s: the %d properties pages agree" % (version, len(LANGUAGES))) + return 0 + + if not args.properties: + parser.error("--properties is required unless --check is given") + changed = generate(args.properties, version) + for path in changed: + print("updated %s" % path) + if not changed: + print("no change") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/test_gen_properties_doc.py b/tools/test_gen_properties_doc.py new file mode 100644 index 000000000..575876b09 --- /dev/null +++ b/tools/test_gen_properties_doc.py @@ -0,0 +1,324 @@ +"""Tests for tools/gen_properties_doc.py.""" + +import os +import sys +import unittest + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from gen_properties_doc import ( # noqa: E402 + BEGIN, + END, + Entry, + Group, + Section, + format_po, + msgids, + parse_po, + parse_properties, + render, + replace_block, + structural_key, +) +from gen_properties_doc import LANGUAGES # noqa: E402 + +SECTIONS = [ + Section( + "Core", + [ + Group( + "Search Engine", + [ + Entry("search_engine.type", "default", "The type."), + Entry("search_engine.password", "", "The password."), + Entry("jvm.crawler.options", "-Xmx512m\n-server\n", "JVM options."), + ], + ) + ], + ) +] + +SAMPLE = """\ +# ======================================================================================== +# Core +# ====== + +#> Search Engine + +# The type of search engine backend. +search_engine.type=default +# Username for authenticating. +# Leave empty to disable. +search_engine.username= + +#> Job + +# Options for the crawler JVM. +jvm.crawler.options=\\ +-Djava.awt.headless=true\\n\\ +-Xmx512m\\n\\ + +# ======================================================================================== +# Web +# ===== + +# Not a heading, just commented-out config +#web.crawler.enabled=true + +# The number of results. +web.page.size=20 +""" + + +class ParseProperties(unittest.TestCase): + def setUp(self): + self.sections = parse_properties(SAMPLE) + + def test_finds_the_banner_sections(self): + self.assertEqual([s.title for s in self.sections], ["Core", "Web"]) + + def test_finds_the_group_headings(self): + self.assertEqual([g.title for g in self.sections[0].groups], ["Search Engine", "Job"]) + + def test_keys_before_any_group_heading_get_an_untitled_group(self): + self.assertEqual([g.title for g in self.sections[1].groups], [""]) + + def test_reads_key_and_default(self): + entry = self.sections[0].groups[0].entries[0] + self.assertEqual(entry.key, "search_engine.type") + self.assertEqual(entry.default, "default") + + def test_joins_a_multi_line_description(self): + entry = self.sections[0].groups[0].entries[1] + self.assertEqual(entry.description, "Username for authenticating. Leave empty to disable.") + + def test_reads_an_empty_default(self): + self.assertEqual(self.sections[0].groups[0].entries[1].default, "") + + def test_unescapes_a_continued_value_into_real_newlines(self): + entry = self.sections[0].groups[1].entries[0] + self.assertEqual(entry.default, "-Djava.awt.headless=true\n-Xmx512m\n") + + def test_ignores_commented_out_configuration(self): + keys = [e.key for g in self.sections[1].groups for e in g.entries] + self.assertEqual(keys, ["web.page.size"]) + + def test_a_blank_line_breaks_the_description(self): + entry = self.sections[1].groups[0].entries[0] + self.assertEqual(entry.description, "The number of results.") + + def test_strips_whitespace_around_the_separator(self): + sections = parse_properties("#> G\n\n# Desc.\ndomain.title = Fess\n") + self.assertEqual(sections[0].groups[0].entries[0].default, "Fess") + + def test_keys_before_any_banner_land_in_an_untitled_section(self): + sections = parse_properties("# Desc.\na.b=1\n") + self.assertEqual([s.title for s in sections], [""]) + + +class ParsePo(unittest.TestCase): + def test_reads_a_simple_entry(self): + self.assertEqual(parse_po('msgid "Hello"\nmsgstr "Bonjour"\n'), {"Hello": "Bonjour"}) + + def test_skips_an_empty_translation(self): + self.assertEqual(parse_po('msgid "Hello"\nmsgstr ""\n'), {}) + + def test_skips_a_fuzzy_translation(self): + text = '#, fuzzy\nmsgid "Hello"\nmsgstr "Bonjour"\n' + self.assertEqual(parse_po(text), {}) + + def test_fuzzy_does_not_leak_into_the_next_entry(self): + text = '#, fuzzy\nmsgid "a"\nmsgstr "A"\n\nmsgid "b"\nmsgstr "B"\n' + self.assertEqual(parse_po(text), {"b": "B"}) + + def test_joins_adjacent_strings(self): + text = 'msgid ""\n"one "\n"two"\nmsgstr ""\n"un "\n"deux"\n' + self.assertEqual(parse_po(text), {"one two": "un deux"}) + + def test_unescapes(self): + text = 'msgid "a\\"b\\\\c\\nd"\nmsgstr "x\\ty"\n' + self.assertEqual(parse_po(text), {'a"b\\c\nd': "x\ty"}) + + def test_ignores_the_header_entry(self): + text = 'msgid ""\nmsgstr "Content-Type: text/plain\\n"\n\nmsgid "Hello"\nmsgstr "Bonjour"\n' + self.assertEqual(parse_po(text), {"Hello": "Bonjour"}) + + def test_ignores_plain_comments(self): + text = '# a translator note\nmsgid "Hello"\nmsgstr "Bonjour"\n' + self.assertEqual(parse_po(text), {"Hello": "Bonjour"}) + + def test_reads_an_empty_catalogue(self): + self.assertEqual(parse_po(""), {}) + + +class FormatPo(unittest.TestCase): + def test_emits_every_msgid_in_order(self): + out = format_po(["b", "a"], {}) + self.assertLess(out.index('msgid "b"'), out.index('msgid "a"')) + + def test_carries_over_an_existing_translation(self): + self.assertIn('msgid "a"\nmsgstr "A"\n', format_po(["a"], {"a": "A"})) + + def test_leaves_an_untranslated_entry_empty(self): + self.assertIn('msgid "a"\nmsgstr ""\n', format_po(["a"], {})) + + def test_drops_a_translation_whose_msgid_is_gone(self): + self.assertNotIn("B", format_po(["a"], {"a": "A", "b": "B"})) + + def test_escapes_on_the_way_out(self): + self.assertIn('msgid "a\\"b\\nc"', format_po(['a"b\nc'], {})) + + def test_round_trips(self): + ids = ["plain", 'with "quotes"', "with\nnewline", "with\\backslash", "with\ttab"] + wanted = {i: i.upper() for i in ids} + self.assertEqual(parse_po(format_po(ids, wanted)), wanted) + + +class Render(unittest.TestCase): + def test_writes_the_section_as_a_heading(self): + self.assertIn("Core\n----", render(SECTIONS, {})) + + def test_writes_the_group_as_a_table_caption(self): + self.assertIn(".. list-table:: Search Engine", render(SECTIONS, {})) + + def test_writes_the_three_columns(self): + self.assertIn(" * - Name\n - Description\n - Default\n", render(SECTIONS, {})) + + def test_renders_a_default_as_an_inline_literal(self): + self.assertIn(" - ``default``", render(SECTIONS, {})) + + def test_renders_an_empty_default_as_empty(self): + self.assertIn(" - (empty)", render(SECTIONS, {})) + + def test_renders_a_multi_line_default_as_a_line_block(self): + self.assertIn(" - | ``-Xmx512m``\n | ``-server``", render(SECTIONS, {})) + + def test_translates_a_description(self): + self.assertIn(" - Le type.", render(SECTIONS, {"The type.": "Le type."})) + + def test_translates_a_group_title(self): + out = render(SECTIONS, {"Search Engine": "Moteur de recherche"}) + self.assertIn(".. list-table:: Moteur de recherche", out) + + def test_falls_back_to_english(self): + self.assertIn(" - The type.", render(SECTIONS, {})) + + def test_never_translates_a_key_or_a_default(self): + out = render(SECTIONS, {"search_engine.type": "x", "default": "y"}) + self.assertIn(" * - search_engine.type", out) + self.assertIn(" - ``default``", out) + + def test_an_untitled_group_gets_no_caption(self): + out = render([Section("Core", [Group("", [Entry("a.b", "1", "Desc.")])])], {}) + self.assertIn(".. list-table::\n", out) + + def test_escapes_rst_markup_in_a_description(self): + sections = [Section("Core", [Group("G", [Entry("a.b", "1", "Access-Control-* and api.cors.*")])])] + self.assertIn(" - Access-Control-\\* and api.cors.\\*", render(sections, {})) + + def test_leaves_no_trailing_whitespace_for_a_missing_description(self): + sections = [Section("Core", [Group("G", [Entry("a.b", "1", "")])])] + out = render(sections, {}) + self.assertIn("\n -\n", out) + self.assertNotIn(" \n", out) + + def test_a_default_of_only_newlines_renders_as_empty(self): + sections = [Section("Core", [Group("G", [Entry("a.b", "\n\n", "D.")])])] + self.assertIn(" - (empty)", render(sections, {})) + + def test_says_it_is_generated(self): + self.assertIn("DO NOT EDIT", render(SECTIONS, {})) + + def test_underline_matches_the_title_width(self): + # check_headings.py rejects a section whose underline is a different length. + out = render([Section("Rate Limiting", [Group("", [Entry("a.b", "1", "D.")])])], {}) + self.assertIn("Rate Limiting\n-------------\n", out) + + def test_a_translated_title_gets_an_underline_of_its_own_width(self): + out = render(SECTIONS, {"Core": "コア"}) + self.assertIn("コア\n----\n", out) + + +class Msgids(unittest.TestCase): + def test_collects_titles_and_descriptions_in_order(self): + self.assertEqual( + msgids(SECTIONS), ["Core", "Search Engine", "The type.", "The password.", "JVM options."] + ) + + def test_deduplicates(self): + sections = [Section("Core", [Group("G", [Entry("a", "", "Same."), Entry("b", "", "Same.")])])] + self.assertEqual(msgids(sections), ["Core", "G", "Same."]) + + def test_skips_an_untitled_group(self): + sections = [Section("Core", [Group("", [Entry("a", "", "D.")])])] + self.assertEqual(msgids(sections), ["Core", "D."]) + + +class ReplaceBlock(unittest.TestCase): + def test_replaces_only_between_the_markers(self): + page = "Title\n=====\n\nIntro.\n\n%s\nold\n%s\n\nTail.\n" % (BEGIN, END) + out = replace_block(page, "new") + self.assertIn("Intro.", out) + self.assertIn("Tail.", out) + self.assertIn("%s\nnew\n%s" % (BEGIN, END), out) + self.assertNotIn("old", out) + + def test_rejects_a_page_without_markers(self): + with self.assertRaises(ValueError): + replace_block("no markers here\n", "new") + + def test_is_idempotent(self): + page = "Intro.\n\n%s\nold\n%s\n" % (BEGIN, END) + self.assertEqual(replace_block(page, "new"), replace_block(replace_block(page, "new"), "new")) + + +class Structure(unittest.TestCase): + def test_ignores_translated_prose(self): + en = render(SECTIONS, {}) + fr = render(SECTIONS, {"The type.": "Le type.", "Search Engine": "Moteur", "Core": "Coeur"}) + self.assertEqual(structural_key(en), structural_key(fr)) + + def test_notices_a_changed_default(self): + other = [Section("Core", [Group("Search Engine", [ + Entry("search_engine.type", "CHANGED", "The type."), + Entry("search_engine.password", "", "The password."), + Entry("jvm.crawler.options", "-Xmx512m\n-server\n", "JVM options."), + ])])] + self.assertNotEqual(structural_key(render(SECTIONS, {})), structural_key(render(other, {}))) + + def test_notices_a_missing_key(self): + other = [Section("Core", [Group("Search Engine", [ + Entry("search_engine.type", "default", "The type."), + ])])] + self.assertNotEqual(structural_key(render(SECTIONS, {})), structural_key(render(other, {}))) + + def test_notices_a_reordered_key(self): + other = [Section("Core", [Group("Search Engine", [ + Entry("search_engine.password", "", "The password."), + Entry("search_engine.type", "default", "The type."), + Entry("jvm.crawler.options", "-Xmx512m\n-server\n", "JVM options."), + ])])] + self.assertNotEqual(structural_key(render(SECTIONS, {})), structural_key(render(other, {}))) + + def test_notices_a_split_into_two_tables(self): + other = [Section("Core", [ + Group("A", [Entry("search_engine.type", "default", "The type.")]), + Group("B", [ + Entry("search_engine.password", "", "The password."), + Entry("jvm.crawler.options", "-Xmx512m\n-server\n", "JVM options."), + ]), + ])] + self.assertNotEqual(structural_key(render(SECTIONS, {})), structural_key(render(other, {}))) + + def test_keeps_the_multi_line_default(self): + key = structural_key(render(SECTIONS, {})) + self.assertIn("-server", repr(key)) + + +class Languages(unittest.TestCase): + def test_lists_the_seven_trees(self): + self.assertEqual(LANGUAGES, ["ja", "en", "de", "fr", "es", "zh-cn", "ko"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/tools/update_properties_doc.sh b/tools/update_properties_doc.sh new file mode 100755 index 000000000..c7a54d0a7 --- /dev/null +++ b/tools/update_properties_doc.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# Regenerate //config/properties.rst from a fess checkout. +# +# The page lists every configuration property Fess reads. Kept by hand it rotted, so it +# is generated and only the prose around the tables is written by a person. +# +# fess_config.properties the keys, defaults, English descriptions, headings and +# order. It lives in the fess repository. Edit this. +# /.../properties.po the translations, per language and per version. Edit these +# and run this script again; existing translations are kept. +# /.../properties.rst the page. Generated between the GENERATED markers. +# +# fess_config.properties is not copied into this repository, so this script needs a fess +# checkout. CI cannot run it, and does not: it runs `--check`, which validates the seven +# pages against each other and against their catalogues without needing fess. +# +# Usage: +# tools/update_properties_doc.sh [path-to-fess-checkout] +# FESS_DIR=/somewhere/fess tools/update_properties_doc.sh +# +# The version written is the "development" value in versions.json. +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +FESS_DIR="${1:-${FESS_DIR:-$ROOT/../fess}}" +PROPERTIES="$FESS_DIR/src/main/resources/fess_config.properties" + +if [ ! -f "$PROPERTIES" ]; then + echo "fess_config.properties not found at: $PROPERTIES" >&2 + echo "Pass the path to a fess checkout: tools/update_properties_doc.sh /path/to/fess" >&2 + exit 1 +fi + +exec python3 "$ROOT/tools/gen_properties_doc.py" --properties "$PROPERTIES" diff --git a/zh-cn/15.9/config/index.rst b/zh-cn/15.9/config/index.rst index 2e2e90ccc..77e253af9 100644 --- a/zh-cn/15.9/config/index.rst +++ b/zh-cn/15.9/config/index.rst @@ -8,6 +8,7 @@ :caption: 简介 intro + properties .. toctree:: :maxdepth: 2 diff --git a/zh-cn/15.9/config/properties.po b/zh-cn/15.9/config/properties.po new file mode 100644 index 000000000..df1b64150 --- /dev/null +++ b/zh-cn/15.9/config/properties.po @@ -0,0 +1,1996 @@ +# Translations for the generated configuration properties page. +# +# msgid is the English text from fess_config.properties. Leave msgstr empty to +# render the English. Regenerate with tools/update_properties_doc.sh, which adds +# new entries and keeps the translations already here. +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Core" +msgstr "" + +msgid "The title of the domain for logging and display." +msgstr "" + +msgid "Search Engine" +msgstr "" + +msgid "The type of search engine backend (e.g., default, opensearch)." +msgstr "" + +msgid "The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200)" +msgstr "" + +msgid "Path to SSL certificate authorities for secure HTTP connections." +msgstr "" + +msgid "Username for authenticating to the search engine." +msgstr "" + +msgid "Password for authenticating to the search engine." +msgstr "" + +msgid "Interval (ms) for heartbeat checks to the search engine." +msgstr "" + +msgid "Cipher algorithm used for encryption." +msgstr "" + +msgid "Secret key for encryption (change this value for production)." +msgstr "" + +msgid "Algorithm for digest calculation." +msgstr "" + +msgid "Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now)" +msgstr "" + +msgid "BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31." +msgstr "" + +msgid "Lazy re-hashing on successful login for legacy hashes." +msgstr "" + +msgid "NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt." +msgstr "" + +msgid "Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys)." +msgstr "" + +msgid "Extension names for application customization." +msgstr "" + +msgid "Audit log format." +msgstr "" + +msgid "Script audit log settings." +msgstr "" + +msgid "Maximum characters of script text kept in a script audit log entry; longer text is truncated." +msgstr "" + +msgid "JVM options for the crawler process." +msgstr "" + +msgid "JVM options (newline-separated) passed to the suggest creator child process." +msgstr "" + +msgid "JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the \"Content Chunk Vector Indexer\" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension." +msgstr "" + +msgid "JVM options for the thumbnail process." +msgstr "" + +msgid "Job" +msgstr "" + +msgid "System job IDs for scheduled jobs." +msgstr "" + +msgid "Template for web crawler job title." +msgstr "" + +msgid "Template for file crawler job title." +msgstr "" + +msgid "Template for data crawler job title." +msgstr "" + +msgid "Script template for job execution." +msgstr "" + +msgid "Maximum number of crawler processes." +msgstr "" + +msgid "Default script language for jobs." +msgstr "" + +msgid "Pattern to filter system properties for jobs." +msgstr "" + +msgid "Number of processors to use." +msgstr "" + +msgid "Path to Java command." +msgstr "" + +msgid "Path to Python command." +msgstr "" + +msgid "Encoding for file paths." +msgstr "" + +msgid "Whether to use a dedicated temporary directory." +msgstr "" + +msgid "Maximum length of log output." +msgstr "" + +msgid "Adaptive load control value." +msgstr "" + +msgid "CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled)" +msgstr "" + +msgid "Interval (seconds) for monitoring OpenSearch CPU load." +msgstr "" + +msgid "Supported JavaScript file extensions for upload." +msgstr "" + +msgid "Supported CSS file extensions for upload." +msgstr "" + +msgid "Supported media file extensions for upload." +msgstr "" + +msgid "Supported files for upload." +msgstr "" + +msgid "Supported languages." +msgstr "" + +msgid "Length of API access token." +msgstr "" + +msgid "Whether API access token is required." +msgstr "" + +msgid "API access token request parameter." +msgstr "" + +msgid "Permissions for API admin access." +msgstr "" + +msgid "Accepted referers for API search." +msgstr "" + +msgid "Whether to enable scroll for API search." +msgstr "" + +msgid "Headers for API JSON response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API JSON response." +msgstr "" + +msgid "Headers for API GSA response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Whether to include exceptions in API GSA response." +msgstr "" + +msgid "Headers for API dashboard response. Access-Control-* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary." +msgstr "" + +msgid "Allowed origins for CORS. \"*\" returns a literal \"*\" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access." +msgstr "" + +msgid "Allowed HTTP methods for CORS." +msgstr "" + +msgid "Max age for CORS preflight requests." +msgstr "" + +msgid "Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token." +msgstr "" + +msgid "Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is \"*\"." +msgstr "" + +msgid "Whether to enable JSONP for API." +msgstr "" + +msgid "Fields for API ping to search engine." +msgstr "" + +msgid "Rate Limiting" +msgstr "" + +msgid "Whether rate limiting is enabled." +msgstr "" + +msgid "Maximum number of requests allowed per window." +msgstr "" + +msgid "Window size in milliseconds." +msgstr "" + +msgid "Duration in milliseconds to block IP when limit exceeded." +msgstr "" + +msgid "Retry-After header value in seconds." +msgstr "" + +msgid "Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1)." +msgstr "" + +msgid "Comma-separated list of blocked IPs." +msgstr "" + +msgid "Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs." +msgstr "" + +msgid "Number of requests between cleanup operations to prevent memory leaks." +msgstr "" + +msgid "Virtual Host: Host:fess.codelibs.org=fess" +msgstr "" + +msgid "Hostname for the HTTP proxy server." +msgstr "" + +msgid "Port number for the HTTP proxy server (e.g., 8080)." +msgstr "" + +msgid "Username for HTTP proxy authentication." +msgstr "" + +msgid "Password for HTTP proxy authentication." +msgstr "" + +msgid "Maximum size (bytes) for HTTP file uploads." +msgstr "" + +msgid "Threshold size (bytes) for HTTP file upload buffering." +msgstr "" + +msgid "Maximum number of files allowed per HTTP upload." +msgstr "" + +msgid "Index" +msgstr "" + +msgid "Crawler Common" +msgstr "" + +msgid "Number of threads for HTTP crawling." +msgstr "" + +msgid "Serializer type for crawler data (e.g., kryo)." +msgstr "" + +msgid "Maximum length of site name in documents." +msgstr "" + +msgid "Encoding for site names in documents." +msgstr "" + +msgid "Hostname to use when unknown in documents." +msgstr "" + +msgid "Whether to use site encoding for English documents." +msgstr "" + +msgid "Whether to append data to documents." +msgstr "" + +msgid "Whether to append filename to documents." +msgstr "" + +msgid "Maximum size of alphanumeric terms in documents." +msgstr "" + +msgid "Maximum size of symbol terms in documents." +msgstr "" + +msgid "Whether to remove duplicate terms in documents." +msgstr "" + +msgid "Unicode space characters for document parsing." +msgstr "" + +msgid "Unicode full stop characters for document parsing." +msgstr "" + +msgid "Encoding for crawling data." +msgstr "" + +msgid "Supported web protocols for crawling." +msgstr "" + +msgid "Supported file protocols for crawling." +msgstr "" + +msgid "Pattern for environment variable keys in crawling data." +msgstr "" + +msgid "Whether to ignore robots.txt during crawling." +msgstr "" + +msgid "Whether to ignore robots meta tags during crawling." +msgstr "" + +msgid "Whether to ignore content exceptions during crawling." +msgstr "" + +msgid "HTTP status codes considered as failure URLs." +msgstr "" + +msgid "Interval (seconds) for system monitor during crawling." +msgstr "" + +msgid "Whether to ignore idle threads in hot thread monitoring." +msgstr "" + +msgid "Interval for hot thread monitoring (e.g., 500ms)." +msgstr "" + +msgid "Number of snapshots for hot thread monitoring." +msgstr "" + +msgid "Number of threads for hot thread monitoring." +msgstr "" + +msgid "Timeout for hot thread monitoring (e.g., 30s)." +msgstr "" + +msgid "Type of hot thread monitoring (e.g., cpu)." +msgstr "" + +msgid "Metadata fields to exclude from document content." +msgstr "" + +msgid "Mapping for document metadata names." +msgstr "" + +msgid "Crawler HTML" +msgstr "" + +msgid "XPath to extract main content from HTML documents." +msgstr "" + +msgid "XPath to extract language attribute from HTML documents." +msgstr "" + +msgid "XPath to extract digest (description) from HTML documents." +msgstr "" + +msgid "XPath to extract canonical URL from HTML documents." +msgstr "" + +msgid "HTML tags to prune (remove) during document processing." +msgstr "" + +msgid "Maximum length of digest extracted from HTML documents." +msgstr "" + +msgid "Default language for HTML documents." +msgstr "" + +msgid "Patterns to include for HTML index processing." +msgstr "" + +msgid "Patterns to exclude for HTML index processing." +msgstr "" + +msgid "Patterns to include for HTML search processing." +msgstr "" + +msgid "Patterns to exclude for HTML search processing." +msgstr "" + +msgid "Crawler File" +msgstr "" + +msgid "Encoding for file names in documents." +msgstr "" + +msgid "Label to use when a file has no title." +msgstr "" + +msgid "Whether to ignore files with empty content." +msgstr "" + +msgid "Maximum length of file title in documents." +msgstr "" + +msgid "Maximum length of file digest in documents." +msgstr "" + +msgid "Whether to append meta content from files." +msgstr "" + +msgid "Whether to append body content from files." +msgstr "" + +msgid "Default language for file documents." +msgstr "" + +msgid "Patterns to include for file index processing." +msgstr "" + +msgid "Patterns to exclude for file index processing." +msgstr "" + +msgid "Patterns to include for file search processing." +msgstr "" + +msgid "Patterns to exclude for file search processing." +msgstr "" + +msgid "Crawler Cache" +msgstr "" + +msgid "Whether document cache is enabled." +msgstr "" + +msgid "Maximum size (bytes) for document cache." +msgstr "" + +msgid "Supported MIME types for document cache." +msgstr "" + +msgid ",text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache." +msgstr "" + +msgid "Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type)." +msgstr "" + +msgid "Indexer" +msgstr "" + +msgid "Whether to enable thread dump for the indexer." +msgstr "" + +msgid "Maximum number of unprocessed documents for the indexer." +msgstr "" + +msgid "Whether to enable click count tracking in the indexer." +msgstr "" + +msgid "Whether to enable favorite count tracking in the indexer." +msgstr "" + +msgid "Commit margin time (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum number of empty lists for webfs in the indexer." +msgstr "" + +msgid "Update interval (ms) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for webfs in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for webfs in the indexer." +msgstr "" + +msgid "Maximum document cache size for data in the indexer." +msgstr "" + +msgid "Maximum document request size (bytes) for data in the indexer." +msgstr "" + +msgid "Maximum delete cache size for data in the indexer." +msgstr "" + +msgid "Maximum redirect count for data in the indexer." +msgstr "" + +msgid "Fields used for language detection in the indexer." +msgstr "" + +msgid "Length of text for language detection in the indexer." +msgstr "" + +msgid "Maximum result window size for the indexer." +msgstr "" + +msgid "Maximum number of search documents for the indexer." +msgstr "" + +msgid "Index Settings" +msgstr "" + +msgid "Codec type for the index." +msgstr "" + +msgid "Number of primary shards for the index." +msgstr "" + +msgid "Auto expand replicas setting for the index." +msgstr "" + +msgid "Digest algorithm for index IDs." +msgstr "" + +msgid "Initial password for the index user." +msgstr "" + +msgid "Field Names" +msgstr "" + +msgid "Field name for favorite count in the index." +msgstr "" + +msgid "Field name for click count in the index." +msgstr "" + +msgid "Field name for config ID in the index." +msgstr "" + +msgid "Field name for expiration date in the index." +msgstr "" + +msgid "Field name for URL in the index." +msgstr "" + +msgid "Field name for document ID in the index." +msgstr "" + +msgid "Field name for internal ID in the index." +msgstr "" + +msgid "Field name for version in the index." +msgstr "" + +msgid "Field name for sequence number in the index." +msgstr "" + +msgid "Field name for primary term in the index." +msgstr "" + +msgid "Field name for language in the index." +msgstr "" + +msgid "Field name for cache status in the index." +msgstr "" + +msgid "Field name for last modified date in the index." +msgstr "" + +msgid "Field name for anchor in the index." +msgstr "" + +msgid "Field name for segment in the index." +msgstr "" + +msgid "Field name for role in the index." +msgstr "" + +msgid "Field name for boost value in the index." +msgstr "" + +msgid "Field name for creation date in the index." +msgstr "" + +msgid "Field name for timestamp in the index." +msgstr "" + +msgid "Field name for label in the index." +msgstr "" + +msgid "Field name for MIME type in the index." +msgstr "" + +msgid "Field name for parent ID in the index." +msgstr "" + +msgid "Field name for important content in the index." +msgstr "" + +msgid "Field name for content in the index." +msgstr "" + +msgid "Field name for content minhash bits in the index." +msgstr "" + +msgid "Field name for cache in the index." +msgstr "" + +msgid "Field name for digest in the index." +msgstr "" + +msgid "Field name for title in the index." +msgstr "" + +msgid "Field name for host in the index." +msgstr "" + +msgid "Field name for site in the index." +msgstr "" + +msgid "Field name for content length in the index." +msgstr "" + +msgid "Field name for file type in the index." +msgstr "" + +msgid "Field name for file name in the index." +msgstr "" + +msgid "Field name for thumbnail in the index." +msgstr "" + +msgid "Field name for virtual host in the index." +msgstr "" + +msgid "Field name for content title in the response." +msgstr "" + +msgid "Field name for content description in the response." +msgstr "" + +msgid "Field name for URL link in the response." +msgstr "" + +msgid "Field name for site path in the response." +msgstr "" + +msgid "Maximum length of content title in the response." +msgstr "" + +msgid "Maximum length of site path in the response." +msgstr "" + +msgid "Whether to enable content title highlighting in the response." +msgstr "" + +msgid "Inline MIME types for the response." +msgstr "" + +msgid "HTTP headers for the response. Access-Control-* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.* / CorsFilter). Do not set Vary here." +msgstr "" + +msgid "Document Index" +msgstr "" + +msgid "Index name for search documents." +msgstr "" + +msgid "Index name for update documents." +msgstr "" + +msgid "Index name for suggest documents." +msgstr "" + +msgid "Index name for crawler documents." +msgstr "" + +msgid "Number of primary shards for crawler queue index." +msgstr "" + +msgid "Number of primary shards for crawler data index." +msgstr "" + +msgid "Number of primary shards for crawler filter index." +msgstr "" + +msgid "Number of replicas for crawler queue index." +msgstr "" + +msgid "Number of replicas for crawler data index." +msgstr "" + +msgid "Number of replicas for crawler filter index." +msgstr "" + +msgid "Index name for configuration data." +msgstr "" + +msgid "Index name for user data." +msgstr "" + +msgid "Index name for log data." +msgstr "" + +msgid "Prefix for dictionary index names." +msgstr "" + +msgid "Document Management" +msgstr "" + +msgid "Array-type fields for admin in the index." +msgstr "" + +msgid "Date-type fields for admin in the index." +msgstr "" + +msgid "Integer-type fields for admin in the index." +msgstr "" + +msgid "Long-type fields for admin in the index." +msgstr "" + +msgid "Float-type fields for admin in the index." +msgstr "" + +msgid "Double-type fields for admin in the index." +msgstr "" + +msgid "Required fields for admin in the index." +msgstr "" + +msgid "Timeouts" +msgstr "" + +msgid "Timeout for index search operations." +msgstr "" + +msgid "Timeout for scroll search operations." +msgstr "" + +msgid "Timeout for index operations." +msgstr "" + +msgid "Timeout for bulk index operations." +msgstr "" + +msgid "Timeout for delete operations in the index." +msgstr "" + +msgid "Timeout for index health checks." +msgstr "" + +msgid "Timeout for index indices operations." +msgstr "" + +msgid "File Types" +msgstr "" + +msgid "Mapping of MIME types to filetype labels for indexing." +msgstr "" + +msgid "Number of documents to process per reindex operation." +msgstr "" + +msgid "Request body template for reindex operations." +msgstr "" + +msgid "Requests per second for reindex operations (\"adaptive\" for auto)." +msgstr "" + +msgid "Whether to refresh the index after reindexing." +msgstr "" + +msgid "Timeout for reindex operations." +msgstr "" + +msgid "Scroll timeout for reindex operations." +msgstr "" + +msgid "Maximum number of documents for reindex operations." +msgstr "" + +msgid "Query" +msgstr "" + +msgid "Maximum length of search queries." +msgstr "" + +msgid "Timeout (ms) for search queries." +msgstr "" + +msgid "Whether to enable logging for query timeouts." +msgstr "" + +msgid "Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused." +msgstr "" + +msgid "Fields used for geo search queries." +msgstr "" + +msgid "Parameter name for browser language in queries." +msgstr "" + +msgid "Whether to replace term with prefix query." +msgstr "" + +msgid "Minimum hit count for OR search queries." +msgstr "" + +msgid "Unicode terminal characters for query highlighting." +msgstr "" + +msgid "Fragment size for query highlighting." +msgstr "" + +msgid "Number of fragments for query highlighting." +msgstr "" + +msgid "Type of query highlighting." +msgstr "" + +msgid "Tag to use before highlighted text." +msgstr "" + +msgid "Tag to use after highlighted text." +msgstr "" + +msgid "Boundary characters for query highlighting." +msgstr "" + +msgid "Maximum scan for query highlight boundaries." +msgstr "" + +msgid "Scanner type for query highlight boundaries." +msgstr "" + +msgid "Encoder type for query highlighting." +msgstr "" + +msgid "Whether to force source for query highlighting." +msgstr "" + +msgid "Fragmenter type for query highlighting." +msgstr "" + +msgid "Offset for query highlight fragments." +msgstr "" + +msgid "Size for no-match query highlight." +msgstr "" + +msgid "Order for query highlight fragments." +msgstr "" + +msgid "Phrase limit for query highlighting." +msgstr "" + +msgid "Fields for content description in query highlighting." +msgstr "" + +msgid "Whether to detect boundary position in query highlighting." +msgstr "" + +msgid "Type for text fragment in query highlighting." +msgstr "" + +msgid "Size for text fragment in query highlighting." +msgstr "" + +msgid "Prefix length for text fragment in query highlighting." +msgstr "" + +msgid "Suffix length for text fragment in query highlighting." +msgstr "" + +msgid "Maximum search result offset for queries." +msgstr "" + +msgid "Additional default fields for queries." +msgstr "" + +msgid "Additional response fields for queries." +msgstr "" + +msgid "Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response." +msgstr "" + +msgid "Additional scroll response fields for queries." +msgstr "" + +msgid "Additional cache response fields for queries." +msgstr "" + +msgid "Additional highlighted fields for queries." +msgstr "" + +msgid "Additional search fields for queries." +msgstr "" + +msgid "Additional facet fields for queries." +msgstr "" + +msgid "Additional sort fields for queries." +msgstr "" + +msgid "Additional analyzed fields for queries." +msgstr "" + +msgid "Additional not-analyzed fields for queries." +msgstr "" + +msgid "Fields for GSA response in queries." +msgstr "" + +msgid "Default language for GSA queries." +msgstr "" + +msgid "Default sort for GSA queries." +msgstr "" + +msgid "Meta prefix for GSA queries." +msgstr "" + +msgid "Charset field for GSA index queries." +msgstr "" + +msgid "Content type field for GSA index queries." +msgstr "" + +msgid "Maximum concurrent group results for collapse queries." +msgstr "" + +msgid "Inner hits name for collapse queries." +msgstr "" + +msgid "Inner hits size for collapse queries." +msgstr "" + +msgid "Sorts for inner hits in collapse queries." +msgstr "" + +msgid "Default languages for queries." +msgstr "" + +msgid "Default preference for JSON queries." +msgstr "" + +msgid "Default preference for GSA queries." +msgstr "" + +msgid "Language mapping for queries." +msgstr "" + +msgid "Boost" +msgstr "" + +msgid "Boost value for title field in queries." +msgstr "" + +msgid "Boost value for title field with language in queries." +msgstr "" + +msgid "Boost value for content field in queries." +msgstr "" + +msgid "Boost value for content field with language in queries." +msgstr "" + +msgid "Boost value for important content field in queries." +msgstr "" + +msgid "Boost value for important content field with language in queries." +msgstr "" + +msgid "Minimum length for fuzzy boosting in queries." +msgstr "" + +msgid "Boost value for fuzzy title queries." +msgstr "" + +msgid "Fuzziness for fuzzy title queries." +msgstr "" + +msgid "Number of expansions for fuzzy title queries." +msgstr "" + +msgid "Prefix length for fuzzy title queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy title queries." +msgstr "" + +msgid "Boost value for fuzzy content queries." +msgstr "" + +msgid "Fuzziness for fuzzy content queries." +msgstr "" + +msgid "Number of expansions for fuzzy content queries." +msgstr "" + +msgid "Prefix length for fuzzy content queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy content queries." +msgstr "" + +msgid "Default query type." +msgstr "" + +msgid "Tie breaker value for dismax queries." +msgstr "" + +msgid "Minimum should match value for boolean queries." +msgstr "" + +msgid "Number of expansions for prefix queries." +msgstr "" + +msgid "Slop value for prefix queries." +msgstr "" + +msgid "Prefix length for fuzzy queries." +msgstr "" + +msgid "Number of expansions for fuzzy queries." +msgstr "" + +msgid "Whether to allow transpositions in fuzzy queries." +msgstr "" + +msgid "Facet" +msgstr "" + +msgid "Fields for facet queries." +msgstr "" + +msgid "Size of facet fields." +msgstr "" + +msgid "Upper clamp for facet.size (applied at the search chokepoint)." +msgstr "" + +msgid "Minimum document count for facet fields." +msgstr "" + +msgid "Upper clamp for facet.minDocCount (applied at the search chokepoint)." +msgstr "" + +msgid "Sort order for facet fields." +msgstr "" + +msgid "Value for missing facet fields." +msgstr "" + +msgid "Facet queries definition." +msgstr "" + +msgid "Ranking" +msgstr "" + +msgid "Window size for rank fusion." +msgstr "" + +msgid "Rank constant for rank fusion." +msgstr "" + +msgid "Number of threads for rank fusion." +msgstr "" + +msgid "Score field for rank fusion." +msgstr "" + +msgid "Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself." +msgstr "" + +msgid "How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean." +msgstr "" + +msgid "How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf." +msgstr "" + +msgid "Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally." +msgstr "" + +msgid "How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks." +msgstr "" + +msgid "ACL" +msgstr "" + +msgid "Whether to get SMB roles from a file." +msgstr "" + +msgid "Available SID types for SMB." +msgstr "" + +msgid "Whether to get file roles from a file." +msgstr "" + +msgid "Whether to get FTP roles from a file." +msgstr "" + +msgid "Backup" +msgstr "" + +msgid "Target files for index backup." +msgstr "" + +msgid "Target log files for index backup." +msgstr "" + +msgid "Timeout for loading index backup logs." +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Application packages for logging." +msgstr "" + +msgid "Whether to enable search docs logging." +msgstr "" + +msgid "Fields to log for search docs." +msgstr "" + +msgid "Whether to use a log file for search logging." +msgstr "" + +msgid "Maximum queue size for search logging." +msgstr "" + +msgid "Maximum queue size for click logging." +msgstr "" + +msgid "Web" +msgstr "" + +msgid "Maximum input size for admin forms." +msgstr "" + +msgid "Whether to enable label in admin config forms." +msgstr "" + +msgid "Default template name for admin forms." +msgstr "" + +msgid "Whether to enable OSDD link (OpenSearch Description Document)." +msgstr "" + +msgid "Whether to enable the clipboard copy icon." +msgstr "" + +msgid "Admin user names for authentication." +msgstr "" + +msgid "Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set." +msgstr "" + +msgid "Admin role names for authentication." +msgstr "" + +msgid "Default permissions for search roles." +msgstr "" + +msgid "Default display permissions for search roles." +msgstr "" + +msgid "Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles." +msgstr "" + +msgid "Prefix for user roles in search." +msgstr "" + +msgid "Prefix for group roles in search." +msgstr "" + +msgid "Prefix for role roles in search." +msgstr "" + +msgid "Prefix for denied roles in search." +msgstr "" + +msgid "The default path of cookie (basically '/' if no context path)" +msgstr "" + +msgid "The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day" +msgstr "" + +msgid "Session tracking modes" +msgstr "" + +msgid "Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart." +msgstr "" + +msgid "Comma-separated list of request parameter keys to store in cookies before SSO login." +msgstr "" + +msgid "Comma-separated list of required parameter keys that must be present to store in cookies." +msgstr "" + +msgid "Maximum length of the encoded search parameters stored in cookies." +msgstr "" + +msgid "Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client." +msgstr "" + +msgid "Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers." +msgstr "" + +msgid "Cookie name used to store encoded search parameters before SSO login." +msgstr "" + +msgid "Whether to set HttpOnly attribute to the search parameter cookie." +msgstr "" + +msgid "Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS." +msgstr "" + +msgid "Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies." +msgstr "" + +msgid "Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com)." +msgstr "" + +msgid "Path attribute for the search parameter cookie. Typically set to \"/\" or the context path of the app." +msgstr "" + +msgid "SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None" +msgstr "" + +msgid "The size of one page for paging" +msgstr "" + +msgid "The size of page range for paging" +msgstr "" + +msgid "The option 'fillLimit' of page range for paging" +msgstr "" + +msgid "Fetch Page Size" +msgstr "" + +msgid "Maximum number of docboost records to fetch per page." +msgstr "" + +msgid "Maximum number of keymatch records to fetch per page." +msgstr "" + +msgid "Maximum number of labeltype records to fetch per page." +msgstr "" + +msgid "Maximum number of roletype records to fetch per page." +msgstr "" + +msgid "Maximum number of user records to fetch per page." +msgstr "" + +msgid "Maximum number of role records to fetch per page." +msgstr "" + +msgid "Maximum number of group records to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info parameters to fetch per page." +msgstr "" + +msgid "Maximum number of crawling info records to fetch per page." +msgstr "" + +msgid "Maximum number of data config records to fetch per page." +msgstr "" + +msgid "Maximum number of web config records to fetch per page." +msgstr "" + +msgid "Maximum number of file config records to fetch per page." +msgstr "" + +msgid "Maximum number of duplicate host records to fetch per page." +msgstr "" + +msgid "Maximum number of failure URL records to fetch per page." +msgstr "" + +msgid "Maximum number of favorite log records to fetch per page." +msgstr "" + +msgid "Maximum number of file auth records to fetch per page." +msgstr "" + +msgid "Maximum number of web auth records to fetch per page." +msgstr "" + +msgid "Maximum number of path mapping records to fetch per page." +msgstr "" + +msgid "Maximum number of request header records to fetch per page." +msgstr "" + +msgid "Maximum number of scheduled job records to fetch per page." +msgstr "" + +msgid "Maximum number of elevate word records to fetch per page." +msgstr "" + +msgid "Maximum number of bad word records to fetch per page." +msgstr "" + +msgid "Maximum number of dictionary records to fetch per page." +msgstr "" + +msgid "Maximum number of related content records to fetch per page." +msgstr "" + +msgid "Maximum number of related query records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail queue records to fetch per page." +msgstr "" + +msgid "Maximum number of thumbnail purge records to fetch per page." +msgstr "" + +msgid "Maximum number of score booster records to fetch per page." +msgstr "" + +msgid "Maximum number of search log records to fetch per page." +msgstr "" + +msgid "Whether to track total hits in search list page." +msgstr "" + +msgid "Maximum content length (in characters) rendered on the search list edit page." +msgstr "" + +msgid "Search Page" +msgstr "" + +msgid "Default start page for search results." +msgstr "" + +msgid "Default size of search results per page." +msgstr "" + +msgid "Maximum size of search results per page." +msgstr "" + +msgid "Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023." +msgstr "" + +msgid "Maximum number of values for a v2 API repeatable query parameter." +msgstr "" + +msgid "Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023." +msgstr "" + +msgid "searchlog" +msgstr "" + +msgid "Request headers to include in search log." +msgstr "" + +msgid "Batch size for search log processing." +msgstr "" + +msgid "Minimum width for HTML images in thumbnails." +msgstr "" + +msgid "Minimum height for HTML images in thumbnails." +msgstr "" + +msgid "Maximum aspect ratio for HTML images in thumbnails." +msgstr "" + +msgid "Width of generated thumbnail images." +msgstr "" + +msgid "Height of generated thumbnail images." +msgstr "" + +msgid "Format of generated thumbnail images." +msgstr "" + +msgid "XPath to select images for thumbnails." +msgstr "" + +msgid "File extensions to exclude from thumbnail generation." +msgstr "" + +msgid "Interval for thumbnail generator." +msgstr "" + +msgid "Targets for thumbnail generator (e.g., all)." +msgstr "" + +msgid "Whether the thumbnail crawler is enabled." +msgstr "" + +msgid "Interval for system monitor in thumbnail processing." +msgstr "" + +msgid "User" +msgstr "" + +msgid "User code settings" +msgstr "" + +msgid "User code minimum length." +msgstr "" + +msgid "User code maximum length." +msgstr "" + +msgid "User code pattern for validation." +msgstr "" + +msgid "Name to display in the From field of emails." +msgstr "" + +msgid "Email address to use in the From field." +msgstr "" + +msgid "Hostname for the mail server." +msgstr "" + +msgid "Target name for the scheduler." +msgstr "" + +msgid "Job class for the scheduler." +msgstr "" + +msgid "Mode for concurrent execution in the scheduler." +msgstr "" + +msgid "Interval for scheduler monitoring." +msgstr "" + +msgid "Interval (seconds) for polling heartbeats and events." +msgstr "" + +msgid "Time-to-live (ms) for instance heartbeat documents." +msgstr "" + +msgid "Time-to-live (ms) for operation lock documents." +msgstr "" + +msgid "Maximum number of retries for acquiring an operation lock." +msgstr "" + +msgid "Time-to-live (ms) for event notification documents." +msgstr "" + +msgid "Base link for online help." +msgstr "" + +msgid "Installation guide link for online help." +msgstr "" + +msgid "End-of-life information link for online help." +msgstr "" + +msgid "Online help key for failure URL." +msgstr "" + +msgid "Online help key for elevate word." +msgstr "" + +msgid "Online help key for request header." +msgstr "" + +msgid "Online help key for synonym dictionary." +msgstr "" + +msgid "Online help key for dictionary." +msgstr "" + +msgid "Online help key for Kuromoji dictionary." +msgstr "" + +msgid "Online help key for protected words dictionary." +msgstr "" + +msgid "Online help key for stopwords dictionary." +msgstr "" + +msgid "Online help key for stemmer override dictionary." +msgstr "" + +msgid "Online help key for mapping dictionary." +msgstr "" + +msgid "Online help key for web config." +msgstr "" + +msgid "Online help key for search list." +msgstr "" + +msgid "Online help key for log." +msgstr "" + +msgid "Online help key for general settings." +msgstr "" + +msgid "Online help key for role." +msgstr "" + +msgid "Online help key for job log." +msgstr "" + +msgid "Online help key for keymatch." +msgstr "" + +msgid "Online help key for related query." +msgstr "" + +msgid "Online help key for related content." +msgstr "" + +msgid "Online help key for wizard." +msgstr "" + +msgid "Online help key for bad word." +msgstr "" + +msgid "Online help key for path mapping." +msgstr "" + +msgid "Online help key for boost document." +msgstr "" + +msgid "Online help key for data config." +msgstr "" + +msgid "Online help key for system info." +msgstr "" + +msgid "Online help key for user." +msgstr "" + +msgid "Online help key for group." +msgstr "" + +msgid "Online help key for design." +msgstr "" + +msgid "Online help key for dashboard." +msgstr "" + +msgid "Online help key for web authentication." +msgstr "" + +msgid "Online help key for file config." +msgstr "" + +msgid "Online help key for file authentication." +msgstr "" + +msgid "Online help key for label type." +msgstr "" + +msgid "Online help key for duplicate host." +msgstr "" + +msgid "Online help key for scheduler." +msgstr "" + +msgid "Online help key for crawling info." +msgstr "" + +msgid "Online help key for backup." +msgstr "" + +msgid "Online help key for upgrade." +msgstr "" + +msgid "Online help key for search request." +msgstr "" + +msgid "Online help key for access token." +msgstr "" + +msgid "Online help key for suggest." +msgstr "" + +msgid "Online help key for search log." +msgstr "" + +msgid "Online help key for maintenance." +msgstr "" + +msgid "Online help key for plugin." +msgstr "" + +msgid "Online help key for storage." +msgstr "" + +msgid "Supported languages for online help." +msgstr "" + +msgid "Forum link for user support." +msgstr "" + +msgid "Supported languages for the forum." +msgstr "" + +msgid "Seed value for popular word suggestion." +msgstr "" + +msgid "Tags for popular word suggestion." +msgstr "" + +msgid "Fields for popular word suggestion." +msgstr "" + +msgid "Excluded words for popular word suggestion." +msgstr "" + +msgid "Number of popular words to suggest." +msgstr "" + +msgid "Window size for popular word suggestion." +msgstr "" + +msgid "Query frequency for popular word suggestion." +msgstr "" + +msgid "Minimum hit count for suggestion." +msgstr "" + +msgid "Field for suggestion contents." +msgstr "" + +msgid "Field for suggestion tags." +msgstr "" + +msgid "Field for suggestion roles." +msgstr "" + +msgid "Index contents for suggestion." +msgstr "" + +msgid "Interval for suggestion update requests." +msgstr "" + +msgid "Number of documents per suggestion update request." +msgstr "" + +msgid "Percentage limit for suggestion update contents." +msgstr "" + +msgid "Maximum number of suggestion update contents." +msgstr "" + +msgid "Maximum document size for suggestion update." +msgstr "" + +msgid "Scroll size for suggestion source reader." +msgstr "" + +msgid "Cache size for popular word suggestion." +msgstr "" + +msgid "Cache expiration (seconds) for popular word suggestion." +msgstr "" + +msgid "Permissions for suggestion search log." +msgstr "" + +msgid "Interval for system monitor in suggestion." +msgstr "" + +msgid "Whether LDAP admin is enabled." +msgstr "" + +msgid "User filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin user." +msgstr "" + +msgid "Object classes for LDAP admin user." +msgstr "" + +msgid "Role filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin role." +msgstr "" + +msgid "Object classes for LDAP admin role." +msgstr "" + +msgid "Group filter for LDAP admin." +msgstr "" + +msgid "Base DN for LDAP admin group." +msgstr "" + +msgid "Object classes for LDAP admin group." +msgstr "" + +msgid "Whether to sync password for LDAP admin." +msgstr "" + +msgid "Whether to validate LDAP authentication." +msgstr "" + +msgid "Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default." +msgstr "" + +msgid "Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely." +msgstr "" + +msgid "Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit." +msgstr "" + +msgid "Maximum username length for LDAP." +msgstr "" + +msgid "Whether to ignore NetBIOS name in LDAP." +msgstr "" + +msgid "Whether to allow underscores in LDAP group names." +msgstr "" + +msgid "Whether to use lowercase for LDAP permission names." +msgstr "" + +msgid "Whether to allow empty permissions in LDAP." +msgstr "" + +msgid "Whether to use samAccountName for LDAP group." +msgstr "" + +msgid "Whether LDAP role search for user is enabled." +msgstr "" + +msgid "Whether LDAP role search for group is enabled." +msgstr "" + +msgid "Whether LDAP role search for role is enabled." +msgstr "" + +msgid "LDAP attribute for surname." +msgstr "" + +msgid "LDAP attribute for given name." +msgstr "" + +msgid "LDAP attribute for employee number." +msgstr "" + +msgid "LDAP attribute for mail." +msgstr "" + +msgid "LDAP attribute for telephone number." +msgstr "" + +msgid "LDAP attribute for home phone." +msgstr "" + +msgid "LDAP attribute for home postal address." +msgstr "" + +msgid "LDAP attribute for labeled URI." +msgstr "" + +msgid "LDAP attribute for room number." +msgstr "" + +msgid "LDAP attribute for description." +msgstr "" + +msgid "LDAP attribute for title." +msgstr "" + +msgid "LDAP attribute for pager." +msgstr "" + +msgid "LDAP attribute for street." +msgstr "" + +msgid "LDAP attribute for postal code." +msgstr "" + +msgid "LDAP attribute for physical delivery office name." +msgstr "" + +msgid "LDAP attribute for destination indicator." +msgstr "" + +msgid "LDAP attribute for international ISDN number." +msgstr "" + +msgid "LDAP attribute for state." +msgstr "" + +msgid "LDAP attribute for employee type." +msgstr "" + +msgid "LDAP attribute for facsimile telephone number." +msgstr "" + +msgid "LDAP attribute for post office box." +msgstr "" + +msgid "LDAP attribute for initials." +msgstr "" + +msgid "LDAP attribute for car license." +msgstr "" + +msgid "LDAP attribute for mobile." +msgstr "" + +msgid "LDAP attribute for postal address." +msgstr "" + +msgid "LDAP attribute for city." +msgstr "" + +msgid "LDAP attribute for teletex terminal identifier." +msgstr "" + +msgid "LDAP attribute for X.121 address." +msgstr "" + +msgid "LDAP attribute for business category." +msgstr "" + +msgid "LDAP attribute for registered address." +msgstr "" + +msgid "LDAP attribute for display name." +msgstr "" + +msgid "LDAP attribute for preferred language." +msgstr "" + +msgid "LDAP attribute for department number." +msgstr "" + +msgid "LDAP attribute for UID number." +msgstr "" + +msgid "LDAP attribute for GID number." +msgstr "" + +msgid "LDAP attribute for home directory." +msgstr "" + +msgid "Plugin repository URLs." +msgstr "" + +msgid "Version filter for plugins." +msgstr "" + +msgid "Maximum number of items per page in storage." +msgstr "" + +msgid "List of invalid admin passwords." +msgstr "" + +msgid "Minimum password length (0 to disable)." +msgstr "" + +msgid "Maximum length of a password field." +msgstr "" + +msgid "Require uppercase letters in password." +msgstr "" + +msgid "Require lowercase letters in password." +msgstr "" + +msgid "Require digits in password." +msgstr "" + +msgid "Require special characters in password." +msgstr "" + +msgid "Whether RAG chat feature is enabled." +msgstr "" + +msgid "Chat generation settings." +msgstr "" + +msgid "Session settings." +msgstr "" + +msgid "Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100)." +msgstr "" + +msgid "Maximum messages kept in one chat session; older turns are trimmed on each new message." +msgstr "" + +msgid "Enhanced RAG flow settings. Fields to retrieve for full document content." +msgstr "" + +msgid "Highlight settings for RAG search." +msgstr "" + +msgid "Number of highlight fragments per document in the RAG chat context search." +msgstr "" + +msgid "Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context." +msgstr "" + +msgid "Highlight settings used when extracting passages from large documents for the answer context." +msgstr "" + +msgid "Number of highlight fragments taken from each oversized document for the answer context." +msgstr "" + +msgid "History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - \"[References: title (url), ...]\" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history" +msgstr "" + +msgid "Maximum number of referenced document titles included per turn in smart_summary history mode." +msgstr "" + +msgid "Index Export" +msgstr "" + +msgid "Comma-separated document fields omitted from files written by the index export job." +msgstr "" + +msgid "Number of documents fetched per scroll request by the index export job." +msgstr "" + +msgid "Output format for exported documents; only html and json are accepted, anything else fails the job." +msgstr "" + +msgid "Log Notification Interval (seconds) for flushing log notification buffer to search engine." +msgstr "" + +msgid "Maximum length of notification details text." +msgstr "" + +msgid "Maximum number of events to display in notification." +msgstr "" + +msgid "Maximum length of each log message in notification." +msgstr "" + +msgid "Maximum number of events to fetch from search engine per notification job." +msgstr "" + +msgid "Maximum number of events to buffer in memory." +msgstr "" + +msgid "Interval (seconds) for the notification job cycle, used in notification messages." +msgstr "" + +msgid "Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md)" +msgstr "" + +msgid "Maximum size (bytes) of an uploaded theme archive." +msgstr "" + +msgid "Maximum total extracted size (bytes); extraction aborts once it is exceeded." +msgstr "" + +msgid "Maximum number of entries allowed in an uploaded theme archive." +msgstr "" + +msgid "Maximum uncompressed/compressed ratio for a single theme archive entry." +msgstr "" + +msgid "Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard)." +msgstr "" + +msgid "Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it." +msgstr "" + +msgid "Retention (days) for a replaced theme directory before the cleanup sweep removes it." +msgstr "" + +msgid "Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-* headers, then from the servlet request." +msgstr "" + +msgid "Login attempts allowed per client IP each minute; 0 or less disables the gate." +msgstr "" + +msgid "Login attempts allowed per client IP and user name each minute; also gates password change." +msgstr "" + +msgid "Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout." +msgstr "" + +msgid "Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap." +msgstr "" + +msgid "Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (\": keepalive\\n\\n\") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds." +msgstr "" diff --git a/zh-cn/15.9/config/properties.rst b/zh-cn/15.9/config/properties.rst new file mode 100644 index 000000000..89f83201c --- /dev/null +++ b/zh-cn/15.9/config/properties.rst @@ -0,0 +1,2353 @@ +============================= +Fess Configuration Properties +============================= + +Every configuration property Fess reads, with its description and its default value. +The values themselves live in ``fess_config.properties``; see :doc:`crawler-advanced` +for how to override them. + +The tables below are generated from ``fess_config.properties``. To correct a +description, change the comment above the property in the Fess repository. To translate +one, fill in ``properties.po`` beside this file. + +.. GENERATED-BEGIN: properties -- from fess_config.properties via tools/update_properties_doc.sh +.. DO NOT EDIT. Descriptions and headings come from fess_config.properties in the +.. fess repository; translations come from properties.po beside this file. +.. Regenerate with tools/update_properties_doc.sh. + +Core +---- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - domain.title + - The title of the domain for logging and display. + - ``Fess`` + +.. list-table:: Search Engine + :header-rows: 1 + + * - Name + - Description + - Default + * - search_engine.type + - The type of search engine backend (e.g., default, opensearch). + - ``default`` + * - search_engine.http.url + - The URL of the search engine HTTP endpoint. For IPv6 environments, use brackets around the IPv6 address (e.g., http://[::1]:9200) + - ``http://localhost:9200`` + * - search_engine.http.ssl.certificate_authorities + - Path to SSL certificate authorities for secure HTTP connections. + - (empty) + * - search_engine.username + - Username for authenticating to the search engine. + - (empty) + * - search_engine.password + - Password for authenticating to the search engine. + - (empty) + * - search_engine.heartbeat_interval + - Interval (ms) for heartbeat checks to the search engine. + - ``10000`` + * - app.cipher.algorithm + - Cipher algorithm used for encryption. + - ``aes`` + * - app.cipher.key + - Secret key for encryption (change this value for production). + - ``___change__me___`` + * - app.digest.algorithm + - Algorithm for digest calculation. + - ``sha256`` + * - app.password.algorithm + - Password hashing (new mechanism, Spring Security v5.8 compatible) Supported: bcrypt (only, as of now) + - ``bcrypt`` + * - app.password.bcrypt.cost + - BCrypt cost (log rounds). 10 matches Spring Security v5.8 default. Range: 4-31. + - ``10`` + * - app.password.upgrade.enabled + - Lazy re-hashing on successful login for legacy hashes. + - ``true`` + * - app.encrypt.property.pattern + - NOTE: app.digest.algorithm is kept for LEGACY password verification only (pre-upgrade hashes that have no {id} prefix). Do not use for new passwords. Regex pattern for properties to encrypt. + - ``.*password|.*key|.*token|.*secret`` + * - app.log.sensitive.property.pattern + - Regex pattern for sensitive values to mask in debug logs (case-insensitive match against property/env keys). + - ``.*password.*|.*secret.*|.*key.*|.*token.*|.*credential.*|.*auth.*|.*private.*`` + * - app.extension.names + - Extension names for application customization. + - (empty) + * - app.audit.log.format + - Audit log format. + - (empty) + * - script.audit.log.enabled + - Script audit log settings. + - ``true`` + * - script.audit.log.max.length + - Maximum characters of script text kept in a script audit log entry; longer text is truncated. + - ``100`` + * - jvm.crawler.options + - JVM options for the crawler process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Dhttp.maxConnections=20`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx512m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=5`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + * - jvm.suggest.options + - JVM options (newline-separated) passed to the suggest creator child process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.chunk.options + - JVM options for the chunk vector indexer process. Heap budget. This child JVM is only started while the "Content Chunk Vector Indexer" job runs, so a generous -Xmx costs nothing when content chunking is off. The live set is dominated by the in-flight batches, each of which retains, per document, the full _source, the document's chunk strings, and the document's embedding vectors: content_chunker.job.bulk_size (default 20) x content_chunker.max_chunks_per_document (default 1000) x content_chunker.embedding.dimension (default 768) x 4 bytes per float x content_chunker.job.concurrency (default 2) = ~117 MB of vectors alone, before chunk strings and document sources. With the shipped defaults the worst case is roughly 190-250 MB live (and ~235 MB of vectors alone at dimension=1536), which does not fit a 256 MB heap with any GC headroom. Raise -Xmx further if you raise bulk_size, max_chunks_per_document, concurrency, or the embedding dimension. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx1g`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=1m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=30`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + * - jvm.thumbnail.options + - JVM options for the thumbnail process. + - | ``-Djava.awt.headless=true`` + | ``-Dfile.encoding=UTF-8`` + | ``-Djna.nosys=true`` + | ``-Djdk.io.permissionsUseCanonicalPath=true`` + | ``-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`` + | ``-server`` + | ``-Xms128m`` + | ``-Xmx256m`` + | ``-XX:MaxMetaspaceSize=128m`` + | ``-XX:CompressedClassSpaceSize=32m`` + | ``-XX:-UseGCOverheadLimit`` + | ``-XX:+UseTLAB`` + | ``-XX:+DisableExplicitGC`` + | ``-XX:-HeapDumpOnOutOfMemoryError`` + | ``-XX:-OmitStackTraceInFastThrow`` + | ``-XX:+UnlockExperimentalVMOptions`` + | ``-XX:+UseG1GC`` + | ``-XX:InitiatingHeapOccupancyPercent=45`` + | ``-XX:G1HeapRegionSize=4m`` + | ``-XX:MaxGCPauseMillis=60000`` + | ``-XX:G1NewSizePercent=5`` + | ``-XX:G1MaxNewSizePercent=50`` + | ``-Djcifs.client.responseTimeout=30000`` + | ``-Djcifs.client.soTimeout=35000`` + | ``-Djcifs.client.connTimeout=60000`` + | ``-Djcifs.client.sessionTimeout=60000`` + | ``-Dio.netty.noUnsafe=true`` + | ``-Dio.netty.noKeySetOptimization=true`` + | ``-Dio.netty.recycler.maxCapacityPerThread=0`` + | ``-Dlog4j.shutdownHookEnabled=false`` + | ``-Dlog4j2.disable.jmx=true`` + | ``-Dlog4j2.formatMsgNoLookups=true`` + | ``-Dlog4j.skipJansi=true`` + | ``-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider`` + | ``-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true`` + +.. list-table:: Job + :header-rows: 1 + + * - Name + - Description + - Default + * - job.system.job.ids + - System job IDs for scheduled jobs. + - ``default_crawler`` + * - job.template.title.web + - Template for web crawler job title. + - ``Web Crawler - {0}`` + * - job.template.title.file + - Template for file crawler job title. + - ``File Crawler - {0}`` + * - job.template.title.data + - Template for data crawler job title. + - ``Data Crawler - {0}`` + * - job.template.script + - Script template for job execution. + - ``return container.getComponent("crawlJob").logLevel("info").webConfigIds([{0}]).fileConfigIds([{1}]).dataConfigIds([{2}]).jobExecutor(executor).execute();`` + * - job.max.crawler.processes + - Maximum number of crawler processes. + - ``0`` + * - job.default.script + - Default script language for jobs. + - ``javascript`` + * - job.system.property.filter.pattern + - Pattern to filter system properties for jobs. + - (empty) + * - processors + - Number of processors to use. + - ``0`` + * - java.command.path + - Path to Java command. + - ``java`` + * - python.command.path + - Path to Python command. + - ``python`` + * - path.encoding + - Encoding for file paths. + - ``UTF-8`` + * - use.own.tmp.dir + - Whether to use a dedicated temporary directory. + - ``true`` + * - max.log.output.length + - Maximum length of log output. + - ``4000`` + * - adaptive.load.control + - Adaptive load control value. + - ``50`` + * - web.load.control + - CPU threshold (%) for web request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - api.load.control + - CPU threshold (%) for API request load control. Returns 429 when CPU >= this value. (100: disabled) + - ``100`` + * - load.control.monitor.interval + - Interval (seconds) for monitoring OpenSearch CPU load. + - ``1`` + * - supported.uploaded.js.extentions + - Supported JavaScript file extensions for upload. + - ``js`` + * - supported.uploaded.css.extentions + - Supported CSS file extensions for upload. + - ``css`` + * - supported.uploaded.media.extentions + - Supported media file extensions for upload. + - ``jpg,jpeg,gif,png,swf`` + * - supported.uploaded.files + - Supported files for upload. + - ``license.properties`` + * - supported.languages + - Supported languages. + - ``ar,bg,bn,ca,ckb_IQ,cs,da,de,el,en_IE,en,es,et,eu,fa,fi,fr,gl,gu,he,hi,hr,hu,hy,id,it,ja,ko,lt,lv,mk,ml,nl,no,pa,pl,pt_BR,pt,ro,ru,si,sq,sv,ta,te,th,tl,tr,uk,ur,vi,zh_CN,zh_TW,zh`` + * - api.access.token.length + - Length of API access token. + - ``60`` + * - api.access.token.required + - Whether API access token is required. + - ``false`` + * - api.access.token.request.parameter + - API access token request parameter. + - (empty) + * - api.admin.access.permissions + - Permissions for API admin access. + - ``Radmin-api`` + * - api.search.accept.referers + - Accepted referers for API search. + - (empty) + * - api.search.scroll + - Whether to enable scroll for API search. + - ``false`` + * - api.json.response.headers + - Headers for API JSON response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.json.response.exception.included + - Whether to include exceptions in API JSON response. + - ``false`` + * - api.gsa.response.headers + - Headers for API GSA response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.gsa.response.exception.included + - Whether to include exceptions in API GSA response. + - ``false`` + * - api.dashboard.response.headers + - Headers for API dashboard response. Access-Control-\* and Timing-Allow-Origin are ignored here (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary. + - ``Referrer-Policy:strict-origin-when-cross-origin`` + * - api.cors.allow.origin + - Allowed origins for CORS. "\*" returns a literal "\*" (the request Origin is NOT reflected) and disables credentials. Set explicit origins (newline- or comma-separated) to allow credentialed cross-origin access. + - ``*`` + * - api.cors.allow.methods + - Allowed HTTP methods for CORS. + - ``GET, POST, OPTIONS, DELETE, PUT`` + * - api.cors.max.age + - Max age for CORS preflight requests. + - ``3600`` + * - api.cors.allow.headers + - Allowed request headers for CORS preflight. A static list is returned (Access-Control-Request-Headers is not reflected). Includes X-Fess-CSRF-Token for cross-origin SPAs sending the CSRF token. + - ``Origin, Content-Type, Accept, Authorization, X-Requested-With, X-Fess-CSRF-Token`` + * - api.cors.allow.credentials + - Whether to allow credentials for CORS. Honored only for an exact match of an explicit Origin; ignored when api.cors.allow.origin is "\*". + - ``true`` + * - api.jsonp.enabled + - Whether to enable JSONP for API. + - ``false`` + * - api.ping.search_engine.fields + - Fields for API ping to search engine. + - ``status,timed_out`` + +Rate Limiting +------------- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - rate.limit.enabled + - Whether rate limiting is enabled. + - ``false`` + * - rate.limit.requests.per.window + - Maximum number of requests allowed per window. + - ``100`` + * - rate.limit.window.ms + - Window size in milliseconds. + - ``60000`` + * - rate.limit.block.duration.ms + - Duration in milliseconds to block IP when limit exceeded. + - ``300000`` + * - rate.limit.retry.after.seconds + - Retry-After header value in seconds. + - ``60`` + * - rate.limit.whitelist.ips + - Comma-separated list of whitelisted IPs (e.g., 127.0.0.1,::1). + - ``127.0.0.1,::1`` + * - rate.limit.blocked.ips + - Comma-separated list of blocked IPs. + - (empty) + * - rate.limit.trusted.proxies + - Comma-separated list of trusted proxy IPs. Only trust X-Forwarded-For/X-Real-IP from these IPs. + - ``127.0.0.1,::1`` + * - rate.limit.cleanup.interval + - Number of requests between cleanup operations to prevent memory leaks. + - ``1000`` + * - virtual.host.headers + - Virtual Host: Host:fess.codelibs.org=fess + - (empty) + * - http.proxy.host + - Hostname for the HTTP proxy server. + - (empty) + * - http.proxy.port + - Port number for the HTTP proxy server (e.g., 8080). + - ``8080`` + * - http.proxy.username + - Username for HTTP proxy authentication. + - (empty) + * - http.proxy.password + - Password for HTTP proxy authentication. + - (empty) + * - http.fileupload.max.size + - Maximum size (bytes) for HTTP file uploads. + - ``262144000`` + * - http.fileupload.threshold.size + - Threshold size (bytes) for HTTP file upload buffering. + - ``262144`` + * - http.fileupload.max.file.count + - Maximum number of files allowed per HTTP upload. + - ``10`` + +Index +----- + +.. list-table:: Crawler Common + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.http.thread_pool.size + - Number of threads for HTTP crawling. + - ``0`` + * - crawler.data.serializer + - Serializer type for crawler data (e.g., kryo). + - ``kryo`` + * - crawler.document.max.site.length + - Maximum length of site name in documents. + - ``100`` + * - crawler.document.site.encoding + - Encoding for site names in documents. + - ``UTF-8`` + * - crawler.document.unknown.hostname + - Hostname to use when unknown in documents. + - ``unknown`` + * - crawler.document.use.site.encoding.on.english + - Whether to use site encoding for English documents. + - ``false`` + * - crawler.document.append.data + - Whether to append data to documents. + - ``true`` + * - crawler.document.append.filename + - Whether to append filename to documents. + - ``false`` + * - crawler.document.max.alphanum.term.size + - Maximum size of alphanumeric terms in documents. + - ``20`` + * - crawler.document.max.symbol.term.size + - Maximum size of symbol terms in documents. + - ``10`` + * - crawler.document.duplicate.term.removed + - Whether to remove duplicate terms in documents. + - ``false`` + * - crawler.document.space.chars + - Unicode space characters for document parsing. + - ``u0009u000Au000Bu000Cu000Du001Cu001Du001Eu001Fu0020u00A0u1680u180Eu2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200Au200Bu200Cu202Fu205Fu3000uFEFFuFFFDu00B6`` + * - crawler.document.fullstop.chars + - Unicode full stop characters for document parsing. + - ``u002eu06d4u2e3cu3002`` + * - crawler.crawling.data.encoding + - Encoding for crawling data. + - ``UTF-8`` + * - crawler.web.protocols + - Supported web protocols for crawling. + - ``http,https`` + * - crawler.file.protocols + - Supported file protocols for crawling. + - ``file,smb,smb1,ftp`` + * - crawler.data.env.param.key.pattern + - Pattern for environment variable keys in crawling data. + - ``^FESS_ENV_.*`` + * - crawler.ignore.robots.txt + - Whether to ignore robots.txt during crawling. + - ``false`` + * - crawler.ignore.robots.tags + - Whether to ignore robots meta tags during crawling. + - ``false`` + * - crawler.ignore.content.exception + - Whether to ignore content exceptions during crawling. + - ``true`` + * - crawler.failure.url.status.codes + - HTTP status codes considered as failure URLs. + - ``404,403,410`` + * - crawler.system.monitor.interval + - Interval (seconds) for system monitor during crawling. + - ``60`` + * - crawler.hotthread.ignore_idle_threads + - Whether to ignore idle threads in hot thread monitoring. + - ``true`` + * - crawler.hotthread.interval + - Interval for hot thread monitoring (e.g., 500ms). + - ``500ms`` + * - crawler.hotthread.snapshots + - Number of snapshots for hot thread monitoring. + - ``10`` + * - crawler.hotthread.threads + - Number of threads for hot thread monitoring. + - ``3`` + * - crawler.hotthread.timeout + - Timeout for hot thread monitoring (e.g., 30s). + - ``30s`` + * - crawler.hotthread.type + - Type of hot thread monitoring (e.g., cpu). + - ``cpu`` + * - crawler.metadata.content.excludes + - Metadata fields to exclude from document content. + - ``resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*`` + * - crawler.metadata.name.mapping + - Mapping for document metadata names. + - | ``title=title:string`` + | ``Title=title:string`` + | ``dc:title=title:string`` + +.. list-table:: Crawler HTML + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.html.content.xpath + - XPath to extract main content from HTML documents. + - ``//BODY`` + * - crawler.document.html.lang.xpath + - XPath to extract language attribute from HTML documents. + - ``//HTML/@lang`` + * - crawler.document.html.digest.xpath + - XPath to extract digest (description) from HTML documents. + - ``//META[@name='description']/@content`` + * - crawler.document.html.canonical.xpath + - XPath to extract canonical URL from HTML documents. + - ``//LINK[@rel='canonical'][1]/@href`` + * - crawler.document.html.pruned.tags + - HTML tags to prune (remove) during document processing. + - ``noscript,script,style,header,footer,aside,nav,a[rel=nofollow]`` + * - crawler.document.html.max.digest.length + - Maximum length of digest extracted from HTML documents. + - ``120`` + * - crawler.document.html.default.lang + - Default language for HTML documents. + - (empty) + * - crawler.document.html.default.include.index.patterns + - Patterns to include for HTML index processing. + - (empty) + * - crawler.document.html.default.exclude.index.patterns + - Patterns to exclude for HTML index processing. + - ``(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)`` + * - crawler.document.html.default.include.search.patterns + - Patterns to include for HTML search processing. + - (empty) + * - crawler.document.html.default.exclude.search.patterns + - Patterns to exclude for HTML search processing. + - (empty) + +.. list-table:: Crawler File + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.file.name.encoding + - Encoding for file names in documents. + - (empty) + * - crawler.document.file.no.title.label + - Label to use when a file has no title. + - ``No title.`` + * - crawler.document.file.ignore.empty.content + - Whether to ignore files with empty content. + - ``false`` + * - crawler.document.file.max.title.length + - Maximum length of file title in documents. + - ``100`` + * - crawler.document.file.max.digest.length + - Maximum length of file digest in documents. + - ``200`` + * - crawler.document.file.append.meta.content + - Whether to append meta content from files. + - ``true`` + * - crawler.document.file.append.body.content + - Whether to append body content from files. + - ``true`` + * - crawler.document.file.default.lang + - Default language for file documents. + - (empty) + * - crawler.document.file.default.include.index.patterns + - Patterns to include for file index processing. + - (empty) + * - crawler.document.file.default.exclude.index.patterns + - Patterns to exclude for file index processing. + - (empty) + * - crawler.document.file.default.include.search.patterns + - Patterns to include for file search processing. + - (empty) + * - crawler.document.file.default.exclude.search.patterns + - Patterns to exclude for file search processing. + - (empty) + +.. list-table:: Crawler Cache + :header-rows: 1 + + * - Name + - Description + - Default + * - crawler.document.cache.enabled + - Whether document cache is enabled. + - ``true`` + * - crawler.document.cache.max.size + - Maximum size (bytes) for document cache. + - ``2621440`` + * - crawler.document.cache.supported.mimetypes + - Supported MIME types for document cache. + - ``text/html`` + * - crawler.document.cache.html.mimetypes + - ,text/plain,application/xml,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation MIME types for HTML document cache. + - ``text/html`` + * - crawler.document.mimetype.extension.overrides + - Extension-to-MIME-type override mappings for MIME type detection (one per line: .ext=mime/type). + - (empty) + +.. list-table:: Indexer + :header-rows: 1 + + * - Name + - Description + - Default + * - indexer.thread.dump.enabled + - Whether to enable thread dump for the indexer. + - ``true`` + * - indexer.unprocessed.document.size + - Maximum number of unprocessed documents for the indexer. + - ``1000`` + * - indexer.click.count.enabled + - Whether to enable click count tracking in the indexer. + - ``true`` + * - indexer.favorite.count.enabled + - Whether to enable favorite count tracking in the indexer. + - ``true`` + * - indexer.webfs.commit.margin.time + - Commit margin time (ms) for webfs in the indexer. + - ``5000`` + * - indexer.webfs.max.empty.list.count + - Maximum number of empty lists for webfs in the indexer. + - ``3600`` + * - indexer.webfs.update.interval + - Update interval (ms) for webfs in the indexer. + - ``10000`` + * - indexer.webfs.max.document.cache.size + - Maximum document cache size for webfs in the indexer. + - ``10`` + * - indexer.webfs.max.document.request.size + - Maximum document request size (bytes) for webfs in the indexer. + - ``1048576`` + * - indexer.data.max.document.cache.size + - Maximum document cache size for data in the indexer. + - ``10000`` + * - indexer.data.max.document.request.size + - Maximum document request size (bytes) for data in the indexer. + - ``1048576`` + * - indexer.data.max.delete.cache.size + - Maximum delete cache size for data in the indexer. + - ``100`` + * - indexer.data.max.redirect.count + - Maximum redirect count for data in the indexer. + - ``10`` + * - indexer.language.fields + - Fields used for language detection in the indexer. + - ``content,important_content,title`` + * - indexer.language.detect.length + - Length of text for language detection in the indexer. + - ``1000`` + * - indexer.max.result.window.size + - Maximum result window size for the indexer. + - ``10000`` + * - indexer.max.search.doc.size + - Maximum number of search documents for the indexer. + - ``50000`` + +.. list-table:: Index Settings + :header-rows: 1 + + * - Name + - Description + - Default + * - index.codec + - Codec type for the index. + - ``default`` + * - index.number_of_shards + - Number of primary shards for the index. + - ``5`` + * - index.auto_expand_replicas + - Auto expand replicas setting for the index. + - ``0-1`` + * - index.id.digest.algorithm + - Digest algorithm for index IDs. + - ``SHA-512`` + * - index.user.initial_password + - Initial password for the index user. + - ``admin`` + +.. list-table:: Field Names + :header-rows: 1 + + * - Name + - Description + - Default + * - index.field.favorite_count + - Field name for favorite count in the index. + - ``favorite_count`` + * - index.field.click_count + - Field name for click count in the index. + - ``click_count`` + * - index.field.config_id + - Field name for config ID in the index. + - ``config_id`` + * - index.field.expires + - Field name for expiration date in the index. + - ``expires`` + * - index.field.url + - Field name for URL in the index. + - ``url`` + * - index.field.doc_id + - Field name for document ID in the index. + - ``doc_id`` + * - index.field.id + - Field name for internal ID in the index. + - ``_id`` + * - index.field.version + - Field name for version in the index. + - ``_version`` + * - index.field.seq_no + - Field name for sequence number in the index. + - ``_seq_no`` + * - index.field.primary_term + - Field name for primary term in the index. + - ``_primary_term`` + * - index.field.lang + - Field name for language in the index. + - ``lang`` + * - index.field.has_cache + - Field name for cache status in the index. + - ``has_cache`` + * - index.field.last_modified + - Field name for last modified date in the index. + - ``last_modified`` + * - index.field.anchor + - Field name for anchor in the index. + - ``anchor`` + * - index.field.segment + - Field name for segment in the index. + - ``segment`` + * - index.field.role + - Field name for role in the index. + - ``role`` + * - index.field.boost + - Field name for boost value in the index. + - ``boost`` + * - index.field.created + - Field name for creation date in the index. + - ``created`` + * - index.field.timestamp + - Field name for timestamp in the index. + - ``timestamp`` + * - index.field.label + - Field name for label in the index. + - ``label`` + * - index.field.mimetype + - Field name for MIME type in the index. + - ``mimetype`` + * - index.field.parent_id + - Field name for parent ID in the index. + - ``parent_id`` + * - index.field.important_content + - Field name for important content in the index. + - ``important_content`` + * - index.field.content + - Field name for content in the index. + - ``content`` + * - index.field.content_minhash_bits + - Field name for content minhash bits in the index. + - ``content_minhash_bits`` + * - index.field.cache + - Field name for cache in the index. + - ``cache`` + * - index.field.digest + - Field name for digest in the index. + - ``digest`` + * - index.field.title + - Field name for title in the index. + - ``title`` + * - index.field.host + - Field name for host in the index. + - ``host`` + * - index.field.site + - Field name for site in the index. + - ``site`` + * - index.field.content_length + - Field name for content length in the index. + - ``content_length`` + * - index.field.filetype + - Field name for file type in the index. + - ``filetype`` + * - index.field.filename + - Field name for file name in the index. + - ``filename`` + * - index.field.thumbnail + - Field name for thumbnail in the index. + - ``thumbnail`` + * - index.field.virtual_host + - Field name for virtual host in the index. + - ``virtual_host`` + * - response.field.content_title + - Field name for content title in the response. + - ``content_title`` + * - response.field.content_description + - Field name for content description in the response. + - ``content_description`` + * - response.field.url_link + - Field name for URL link in the response. + - ``url_link`` + * - response.field.site_path + - Field name for site path in the response. + - ``site_path`` + * - response.max.title.length + - Maximum length of content title in the response. + - ``50`` + * - response.max.site.path.length + - Maximum length of site path in the response. + - ``100`` + * - response.highlight.content_title.enabled + - Whether to enable content title highlighting in the response. + - ``true`` + * - response.inline.mimetypes + - Inline MIME types for the response. + - ``application/pdf,text/plain`` + * - response.headers + - HTTP headers for the response. Access-Control-\* and Timing-Allow-Origin are ignored (CORS is controlled by api.cors.\* / CorsFilter). Do not set Vary here. + - | ``text/html=X-XSS-Protection: 1; mode=block`` + | ``text/html=Content-Security-Policy: reflected-xss block`` + | ``text/html=X-Frame-Options: SAMEORIGIN`` + +.. list-table:: Document Index + :header-rows: 1 + + * - Name + - Description + - Default + * - index.document.search.index + - Index name for search documents. + - ``fess.search`` + * - index.document.update.index + - Index name for update documents. + - ``fess.update`` + * - index.document.suggest.index + - Index name for suggest documents. + - ``fess`` + * - index.document.crawler.index + - Index name for crawler documents. + - ``fess_crawler`` + * - index.document.crawler.queue.number_of_shards + - Number of primary shards for crawler queue index. + - ``10`` + * - index.document.crawler.data.number_of_shards + - Number of primary shards for crawler data index. + - ``10`` + * - index.document.crawler.filter.number_of_shards + - Number of primary shards for crawler filter index. + - ``10`` + * - index.document.crawler.queue.number_of_replicas + - Number of replicas for crawler queue index. + - ``1`` + * - index.document.crawler.data.number_of_replicas + - Number of replicas for crawler data index. + - ``1`` + * - index.document.crawler.filter.number_of_replicas + - Number of replicas for crawler filter index. + - ``1`` + * - index.config.index + - Index name for configuration data. + - ``fess_config`` + * - index.user.index + - Index name for user data. + - ``fess_user`` + * - index.log.index + - Index name for log data. + - ``fess_log`` + * - index.dictionary.prefix + - Prefix for dictionary index names. + - (empty) + +.. list-table:: Document Management + :header-rows: 1 + + * - Name + - Description + - Default + * - index.admin.array.fields + - Array-type fields for admin in the index. + - ``lang,role,label,anchor,virtual_host`` + * - index.admin.date.fields + - Date-type fields for admin in the index. + - ``expires,created,timestamp,last_modified`` + * - index.admin.integer.fields + - Integer-type fields for admin in the index. + - (empty) + * - index.admin.long.fields + - Long-type fields for admin in the index. + - ``content_length,favorite_count,click_count`` + * - index.admin.float.fields + - Float-type fields for admin in the index. + - ``boost`` + * - index.admin.double.fields + - Double-type fields for admin in the index. + - (empty) + * - index.admin.required.fields + - Required fields for admin in the index. + - ``url,title,role,boost`` + +.. list-table:: Timeouts + :header-rows: 1 + + * - Name + - Description + - Default + * - index.search.timeout + - Timeout for index search operations. + - ``3m`` + * - index.scroll.search.timeout + - Timeout for scroll search operations. + - ``3m`` + * - index.index.timeout + - Timeout for index operations. + - ``3m`` + * - index.bulk.timeout + - Timeout for bulk index operations. + - ``3m`` + * - index.delete.timeout + - Timeout for delete operations in the index. + - ``3m`` + * - index.health.timeout + - Timeout for index health checks. + - ``10m`` + * - index.indices.timeout + - Timeout for index indices operations. + - ``1m`` + +.. list-table:: File Types + :header-rows: 1 + + * - Name + - Description + - Default + * - index.filetype + - Mapping of MIME types to filetype labels for indexing. + - | ``text/html=html`` + | ``application/msword=word`` + | ``application/vnd.openxmlformats-officedocument.wordprocessingml.document=word`` + | ``application/vnd.ms-excel=excel`` + | ``application/vnd.ms-excel.sheet.2=excel`` + | ``application/vnd.ms-excel.sheet.3=excel`` + | ``application/vnd.ms-excel.sheet.4=excel`` + | ``application/vnd.ms-excel.workspace.3=excel`` + | ``application/vnd.ms-excel.workspace.4=excel`` + | ``application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel`` + | ``application/vnd.ms-powerpoint=powerpoint`` + | ``application/vnd.openxmlformats-officedocument.presentationml.presentation=powerpoint`` + | ``application/vnd.oasis.opendocument.text=odt`` + | ``application/vnd.oasis.opendocument.spreadsheet=ods`` + | ``application/vnd.oasis.opendocument.presentation=odp`` + | ``application/pdf=pdf`` + | ``application/x-fictionbook+xml=fb2`` + | ``application/e-pub+zip=epub`` + | ``application/x-ibooks+zip=ibooks`` + | ``text/plain=txt`` + | ``application/rtf=rtf`` + | ``application/vnd.ms-htmlhelp=chm`` + | ``application/zip=zip`` + | ``application/x-7z-comressed=7z`` + | ``application/x-bzip=bz`` + | ``application/x-bzip2=bz2`` + | ``application/x-tar=tar`` + | ``application/x-rar-compressed=rar`` + | ``video/3gp=3gp`` + | ``video/3g2=3g2`` + | ``video/x-msvideo=avi`` + | ``video/x-flv=flv`` + | ``video/mpeg=mpeg`` + | ``video/mp4=mp4`` + | ``video/ogv=ogv`` + | ``video/quicktime=qt`` + | ``video/x-m4v=m4v`` + | ``audio/x-aif=aif`` + | ``audio/midi=midi`` + | ``audio/mpga=mpga`` + | ``audio/mp4=mp4a`` + | ``audio/ogg=oga`` + | ``audio/x-wav=wav`` + | ``image/webp=webp`` + | ``image/bmp=bmp`` + | ``image/x-icon=ico`` + | ``image/x-icon=ico`` + | ``image/png=png`` + | ``image/svg+xml=svg`` + | ``image/tiff=tiff`` + | ``image/jpeg=jpg`` + * - index.reindex.size + - Number of documents to process per reindex operation. + - ``100`` + * - index.reindex.body + - Request body template for reindex operations. + - ``{"source":{"index":"__SOURCE_INDEX__","size":__SIZE__},"dest":{"index":"__DEST_INDEX__"},"script":{"source":"__SCRIPT_SOURCE__"}}`` + * - index.reindex.requests_per_second + - Requests per second for reindex operations ("adaptive" for auto). + - ``adaptive`` + * - index.reindex.refresh + - Whether to refresh the index after reindexing. + - ``false`` + * - index.reindex.timeout + - Timeout for reindex operations. + - ``1m`` + * - index.reindex.scroll + - Scroll timeout for reindex operations. + - ``5m`` + * - index.reindex.max_docs + - Maximum number of documents for reindex operations. + - (empty) + +.. list-table:: Query + :header-rows: 1 + + * - Name + - Description + - Default + * - query.max.length + - Maximum length of search queries. + - ``1000`` + * - query.timeout + - Timeout (ms) for search queries. + - ``10000`` + * - query.timeout.logging + - Whether to enable logging for query timeouts. + - ``true`` + * - query.track.total.hits + - Maximum number of total hits to track in queries. Only a positive number or true is supported: false leaves the response without a hit count, and a search that asks for it, here or as a search parameter, is refused. + - ``10000`` + * - query.geo.fields + - Fields used for geo search queries. + - ``location`` + * - query.browser.lang.parameter.name + - Parameter name for browser language in queries. + - ``browser_lang`` + * - query.replace.term.with.prefix.query + - Whether to replace term with prefix query. + - ``true`` + * - query.orsearch.min.hit.count + - Minimum hit count for OR search queries. + - ``-1`` + * - query.highlight.terminal.chars + - Unicode terminal characters for query highlighting. + - ``u0021u002Cu002Eu003Fu0589u061Fu06D4u0700u0701u0702u0964u104Au104Bu1362u1367u1368u166Eu1803u1809u203Cu203Du2047u2048u2049u3002uFE52uFE57uFF01uFF0EuFF1FuFF61`` + * - query.highlight.fragment.size + - Fragment size for query highlighting. + - ``60`` + * - query.highlight.number.of.fragments + - Number of fragments for query highlighting. + - ``2`` + * - query.highlight.type + - Type of query highlighting. + - ``fvh`` + * - query.highlight.tag.pre + - Tag to use before highlighted text. + - ```` + * - query.highlight.tag.post + - Tag to use after highlighted text. + - ```` + * - query.highlight.boundary.chars + - Boundary characters for query highlighting. + - ``u0009u000Au0013u0020`` + * - query.highlight.boundary.max.scan + - Maximum scan for query highlight boundaries. + - ``20`` + * - query.highlight.boundary.scanner + - Scanner type for query highlight boundaries. + - ``chars`` + * - query.highlight.encoder + - Encoder type for query highlighting. + - ``default`` + * - query.highlight.force.source + - Whether to force source for query highlighting. + - ``false`` + * - query.highlight.fragmenter + - Fragmenter type for query highlighting. + - ``span`` + * - query.highlight.fragment.offset + - Offset for query highlight fragments. + - ``-1`` + * - query.highlight.no.match.size + - Size for no-match query highlight. + - ``0`` + * - query.highlight.order + - Order for query highlight fragments. + - ``score`` + * - query.highlight.phrase.limit + - Phrase limit for query highlighting. + - ``256`` + * - query.highlight.content.description.fields + - Fields for content description in query highlighting. + - ``hl_content,digest`` + * - query.highlight.boundary.position.detect + - Whether to detect boundary position in query highlighting. + - ``true`` + * - query.highlight.text.fragment.type + - Type for text fragment in query highlighting. + - ``query`` + * - query.highlight.text.fragment.size + - Size for text fragment in query highlighting. + - ``3`` + * - query.highlight.text.fragment.prefix.length + - Prefix length for text fragment in query highlighting. + - ``5`` + * - query.highlight.text.fragment.suffix.length + - Suffix length for text fragment in query highlighting. + - ``5`` + * - query.max.search.result.offset + - Maximum search result offset for queries. + - ``100000`` + * - query.additional.default.fields + - Additional default fields for queries. + - (empty) + * - query.additional.response.fields + - Additional response fields for queries. + - (empty) + * - query.additional.api.response.fields + - Additional API response fields for queries. This key only appends fields to the v2 API response allow-list (add-only). Do not add ACL or internal fields (for example role, virtual_host); adding them would expose access-control information in the search API response. + - (empty) + * - query.additional.scroll.response.fields + - Additional scroll response fields for queries. + - (empty) + * - query.additional.cache.response.fields + - Additional cache response fields for queries. + - (empty) + * - query.additional.highlighted.fields + - Additional highlighted fields for queries. + - (empty) + * - query.additional.search.fields + - Additional search fields for queries. + - (empty) + * - query.additional.facet.fields + - Additional facet fields for queries. + - (empty) + * - query.additional.sort.fields + - Additional sort fields for queries. + - (empty) + * - query.additional.analyzed.fields + - Additional analyzed fields for queries. + - (empty) + * - query.additional.not.analyzed.fields + - Additional not-analyzed fields for queries. + - (empty) + * - query.gsa.response.fields + - Fields for GSA response in queries. + - ``UE,U,T,RK,S,LANG`` + * - query.gsa.default.lang + - Default language for GSA queries. + - ``en`` + * - query.gsa.default.sort + - Default sort for GSA queries. + - (empty) + * - query.gsa.meta.prefix + - Meta prefix for GSA queries. + - ``MT_`` + * - query.gsa.index.field.charset + - Charset field for GSA index queries. + - ``charset`` + * - query.gsa.index.field.content_type. + - Content type field for GSA index queries. + - ``content_type`` + * - query.collapse.max.concurrent.group.results + - Maximum concurrent group results for collapse queries. + - ``4`` + * - query.collapse.inner.hits.name + - Inner hits name for collapse queries. + - ``similar_docs`` + * - query.collapse.inner.hits.size + - Inner hits size for collapse queries. + - ``0`` + * - query.collapse.inner.hits.sorts + - Sorts for inner hits in collapse queries. + - (empty) + * - query.default.languages + - Default languages for queries. + - (empty) + * - query.json.default.preference + - Default preference for JSON queries. + - ``_query`` + * - query.gsa.default.preference + - Default preference for GSA queries. + - ``_query`` + * - query.language.mapping + - Language mapping for queries. + - | ``ar=ar`` + | ``bg=bg`` + | ``bn=bn`` + | ``ca=ca`` + | ``ckb-iq=ckb-iq`` + | ``ckb_IQ=ckb-iq`` + | ``cs=cs`` + | ``da=da`` + | ``de=de`` + | ``el=el`` + | ``en=en`` + | ``en-ie=en-ie`` + | ``en_IE=en-ie`` + | ``es=es`` + | ``et=et`` + | ``eu=eu`` + | ``fa=fa`` + | ``fi=fi`` + | ``fr=fr`` + | ``gl=gl`` + | ``gu=gu`` + | ``he=he`` + | ``hi=hi`` + | ``hr=hr`` + | ``hu=hu`` + | ``hy=hy`` + | ``id=id`` + | ``it=it`` + | ``ja=ja`` + | ``ko=ko`` + | ``lt=lt`` + | ``lv=lv`` + | ``mk=mk`` + | ``ml=ml`` + | ``nl=nl`` + | ``no=no`` + | ``pa=pa`` + | ``pl=pl`` + | ``pt=pt`` + | ``pt-br=pt-br`` + | ``pt_BR=pt-br`` + | ``ro=ro`` + | ``ru=ru`` + | ``si=si`` + | ``sq=sq`` + | ``sv=sv`` + | ``ta=ta`` + | ``te=te`` + | ``th=th`` + | ``tl=tl`` + | ``tr=tr`` + | ``uk=uk`` + | ``ur=ur`` + | ``vi=vi`` + | ``zh-cn=zh-cn`` + | ``zh_CN=zh-cn`` + | ``zh-tw=zh-tw`` + | ``zh_TW=zh-tw`` + | ``zh=zh`` + +.. list-table:: Boost + :header-rows: 1 + + * - Name + - Description + - Default + * - query.boost.title + - Boost value for title field in queries. + - ``0.5`` + * - query.boost.title.lang + - Boost value for title field with language in queries. + - ``1.0`` + * - query.boost.content + - Boost value for content field in queries. + - ``0.05`` + * - query.boost.content.lang + - Boost value for content field with language in queries. + - ``0.1`` + * - query.boost.important_content + - Boost value for important content field in queries. + - ``-1.0`` + * - query.boost.important_content.lang + - Boost value for important content field with language in queries. + - ``-1.0`` + * - query.boost.fuzzy.min.length + - Minimum length for fuzzy boosting in queries. + - ``4`` + * - query.boost.fuzzy.title + - Boost value for fuzzy title queries. + - ``0.01`` + * - query.boost.fuzzy.title.fuzziness + - Fuzziness for fuzzy title queries. + - ``AUTO`` + * - query.boost.fuzzy.title.expansions + - Number of expansions for fuzzy title queries. + - ``10`` + * - query.boost.fuzzy.title.prefix_length + - Prefix length for fuzzy title queries. + - ``0`` + * - query.boost.fuzzy.title.transpositions + - Whether to allow transpositions in fuzzy title queries. + - ``true`` + * - query.boost.fuzzy.content + - Boost value for fuzzy content queries. + - ``0.005`` + * - query.boost.fuzzy.content.fuzziness + - Fuzziness for fuzzy content queries. + - ``AUTO`` + * - query.boost.fuzzy.content.expansions + - Number of expansions for fuzzy content queries. + - ``10`` + * - query.boost.fuzzy.content.prefix_length + - Prefix length for fuzzy content queries. + - ``0`` + * - query.boost.fuzzy.content.transpositions + - Whether to allow transpositions in fuzzy content queries. + - ``true`` + * - query.default.query_type + - Default query type. + - ``bool`` + * - query.dismax.tie_breaker + - Tie breaker value for dismax queries. + - ``0.1`` + * - query.bool.minimum_should_match + - Minimum should match value for boolean queries. + - (empty) + * - query.prefix.expansions + - Number of expansions for prefix queries. + - ``50`` + * - query.prefix.slop + - Slop value for prefix queries. + - ``0`` + * - query.fuzzy.prefix_length + - Prefix length for fuzzy queries. + - ``0`` + * - query.fuzzy.expansions + - Number of expansions for fuzzy queries. + - ``50`` + * - query.fuzzy.transpositions + - Whether to allow transpositions in fuzzy queries. + - ``true`` + +.. list-table:: Facet + :header-rows: 1 + + * - Name + - Description + - Default + * - query.facet.fields + - Fields for facet queries. + - ``label`` + * - query.facet.fields.size + - Size of facet fields. + - ``100`` + * - query.facet.fields.size.max + - Upper clamp for facet.size (applied at the search chokepoint). + - ``1000`` + * - query.facet.fields.min_doc_count + - Minimum document count for facet fields. + - ``1`` + * - query.facet.fields.min_doc_count.max + - Upper clamp for facet.minDocCount (applied at the search chokepoint). + - ``2147483647`` + * - query.facet.fields.sort + - Sort order for facet fields. + - ``count.desc`` + * - query.facet.fields.missing + - Value for missing facet fields. + - (empty) + * - query.facet.queries + - Facet queries definition. + - | ``labels.facet_timestamp_title:labels.facet_timestamp_1day=timestamp:[now/d-1d TO *] labels.facet_timestamp_1week=timestamp:[now/d-7d TO *] labels.facet_timestamp_1month=timestamp:[now/d-1M TO *] labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]`` + | ``labels.facet_contentLength_title:labels.facet_contentLength_10k=content_length:[0 TO 9999] labels.facet_contentLength_10kto100k=content_length:[10000 TO 99999] labels.facet_contentLength_100kto500k=content_length:[100000 TO 499999] labels.facet_contentLength_500kto1m=content_length:[500000 TO 999999] labels.facet_contentLength_1m=content_length:[1000000 TO *]`` + | ``labels.facet_filetype_title:labels.facet_filetype_html=filetype:html labels.facet_filetype_word=filetype:word labels.facet_filetype_excel=filetype:excel labels.facet_filetype_powerpoint=filetype:powerpoint labels.facet_filetype_odt=filetype:odt labels.facet_filetype_ods=filetype:ods labels.facet_filetype_odp=filetype:odp labels.facet_filetype_pdf=filetype:pdf labels.facet_filetype_txt=filetype:txt labels.facet_filetype_others=filetype:others`` + +.. list-table:: Ranking + :header-rows: 1 + + * - Name + - Description + - Default + * - rank.fusion.window_size + - Window size for rank fusion. + - ``200`` + * - rank.fusion.rank_constant + - Rank constant for rank fusion. + - ``20`` + * - rank.fusion.threads + - Number of threads for rank fusion. + - ``-1`` + * - rank.fusion.score_field + - Score field for rank fusion. + - ``rf_score`` + * - rank.fusion.engine.enabled + - Whether the search engine performs rank fusion. When true, the searchers that can take part contribute their queries to a single request, so facets and total hits describe the fused result set. When false, Fess fuses the searchers' results itself. + - ``false`` + * - rank.fusion.combination.technique + - How the search engine combines the fused scores: rrf, arithmetic_mean, geometric_mean or harmonic_mean. + - ``rrf`` + * - rank.fusion.normalization.technique + - How scores are normalized before they are combined: min_max, l2 or z_score. Ignored by rrf. + - ``min_max`` + * - rank.fusion.combination.weights + - Weight per searcher for engine-side fusion, as name:weight pairs, e.g. default:0.7,semantic_chunk:0.3. The weights must sum to 1.0 and must name every searcher taking part. Empty weights them equally. + - (empty) + * - rank.fusion.pagination_depth + - How many results each searcher contributes per shard to engine-side fusion. This bounds both how deep a client can page and the set of documents the engine ranks. + - ``200`` + +.. list-table:: ACL + :header-rows: 1 + + * - Name + - Description + - Default + * - smb.role.from.file + - Whether to get SMB roles from a file. + - ``true`` + * - smb.available.sid.types + - Available SID types for SMB. + - ``1,2,4:2,5:1`` + * - file.role.from.file + - Whether to get file roles from a file. + - ``true`` + * - ftp.role.from.file + - Whether to get FTP roles from a file. + - ``true`` + +.. list-table:: Backup + :header-rows: 1 + + * - Name + - Description + - Default + * - index.backup.targets + - Target files for index backup. + - ``fess_basic_config.bulk,fess_config.bulk,fess_user.bulk,system.properties,fess.json,doc.json`` + * - index.backup.log.targets + - Target log files for index backup. + - ``click_log.ndjson,favorite_log.ndjson,search_log.ndjson,user_info.ndjson`` + * - index.backup.log.load.timeout + - Timeout for loading index backup logs. + - ``60000`` + +.. list-table:: Logging + :header-rows: 1 + + * - Name + - Description + - Default + * - logging.app.packages + - Application packages for logging. + - ``org.codelibs,org.dbflute,org.lastaflute`` + * - logging.search.docs.enabled + - Whether to enable search docs logging. + - ``true`` + * - logging.search.docs.fields + - Fields to log for search docs. + - ``filetype,created,click_count,title,doc_id,url,score,site,filename,host,digest,boost,mimetype,favorite_count,_id,lang,last_modified,content_length,timestamp`` + * - logging.search.use.logfile + - Whether to use a log file for search logging. + - ``true`` + * - logging.search.max.queue.size + - Maximum queue size for search logging. + - ``10000`` + * - logging.click.max.queue.size + - Maximum queue size for click logging. + - ``10000`` + +Web +--- + +.. list-table:: + :header-rows: 1 + + * - Name + - Description + - Default + * - form.admin.max.input.size + - Maximum input size for admin forms. + - ``10000`` + * - form.admin.label.in.config.enabled + - Whether to enable label in admin config forms. + - ``false`` + * - form.admin.default.template.name + - Default template name for admin forms. + - ``__TEMPLATE__`` + * - osdd.link.enabled + - Whether to enable OSDD link (OpenSearch Description Document). + - ``auto`` + * - clipboard.copy.icon.enabled + - Whether to enable the clipboard copy icon. + - ``true`` + * - authentication.admin.users + - Admin user names for authentication. + - ``admin`` + * - authentication.admin.users.ignore.case + - Whether to match authentication.admin.users without regard to case: auto, true or false. auto ignores case when ldap.provider.url is set. + - ``auto`` + * - authentication.admin.roles + - Admin role names for authentication. + - ``admin`` + * - role.search.default.permissions + - Default permissions for search roles. + - (empty) + * - role.search.default.display.permissions + - Default display permissions for search roles. + - ``{role}guest`` + * - role.search.guest.permissions + - Keep role.search.guest.permissions non-empty. It seeds the guest role that keeps the anonymous search role set non-empty; if the resolved role set is empty the role filter is skipped (fail-open), which can disable role-based access control and expose documents to anonymous users. Guest permissions for search roles. + - ``{role}guest`` + * - role.search.user.prefix + - Prefix for user roles in search. + - ``1`` + * - role.search.group.prefix + - Prefix for group roles in search. + - ``2`` + * - role.search.role.prefix + - Prefix for role roles in search. + - ``R`` + * - role.search.denied.prefix + - Prefix for denied roles in search. + - ``D`` + * - cookie.default.path + - The default path of cookie (basically '/' if no context path) + - ``/`` + * - cookie.default.expire + - The default expire of cookie in seconds e.g. 31556926: one year, 86400: one day + - ``3600`` + * - session.tracking.modes + - Session tracking modes + - ``cookie`` + * - session.cookie.secure + - Whether to add the Secure attribute to the session cookie (JSESSIONID) at startup. When blank (default), Tomcat's automatic behavior is used (Secure is added only for HTTPS requests). Set to true for production HTTPS deployments, especially when TLS is terminated at a reverse proxy. When true, the cookie is not sent over HTTP, so sessions will not be established for plain HTTP; keep it blank for localhost development. The Secure attribute is also required when SameSite=none is used. Changing this value requires a restart. + - (empty) + * - cookie.search.parameter.keys + - Comma-separated list of request parameter keys to store in cookies before SSO login. + - ``q,num,sort`` + * - cookie.search.parameter.required_keys + - Comma-separated list of required parameter keys that must be present to store in cookies. + - ``q`` + * - cookie.search.parameter.max.length + - Maximum length of the encoded search parameters stored in cookies. + - ``1000`` + * - cookie.search.parameter.max.decompressed.length + - Maximum size in bytes the stored search parameters may decompress to. The bound above applies to the gzipped cookie, which is no bound on what it expands to, and the cookie comes from the client. + - ``65536`` + * - cookie.search.parameter.max.restored.length + - Maximum length of the query string built when restoring the stored search parameters after login. Restoring them is a convenience and the login is not, so a longer one is dropped rather than written to a Location header the container would refuse. Percent-encoding multiplies a CJK query by nine, so this is far smaller than the query itself may be. Raise it together with tomcat.maxHttpHeaderSize in tomcat_config.properties, which bounds the response headers. + - ``4096`` + * - cookie.search.parameter.name + - Cookie name used to store encoded search parameters before SSO login. + - ``fsrp`` + * - cookie.search.parameter.http_only + - Whether to set HttpOnly attribute to the search parameter cookie. + - ``true`` + * - cookie.search.parameter.secure + - Whether to set Secure attribute to the search parameter cookie. Should be true in production environments using HTTPS. + - (empty) + * - cookie.search.parameter.max_age + - Max-Age (in seconds) for the search parameter cookie. Use -1 for session-only cookies. + - ``60`` + * - cookie.search.parameter.domain + - Domain attribute for the search parameter cookie. Set to the domain scope you want the cookie to be available on (e.g., example.com). + - (empty) + * - cookie.search.parameter.path + - Path attribute for the search parameter cookie. Typically set to "/" or the context path of the app. + - ``/`` + * - cookie.search.parameter.same_site + - SameSite attribute for the search parameter cookie. Valid values: Lax, Strict, None + - ``Lax`` + * - paging.page.size + - The size of one page for paging + - ``25`` + * - paging.page.range.size + - The size of page range for paging + - ``5`` + * - paging.page.range.fill.limit + - The option 'fillLimit' of page range for paging + - ``true`` + +.. list-table:: Fetch Page Size + :header-rows: 1 + + * - Name + - Description + - Default + * - page.docboost.max.fetch.size + - Maximum number of docboost records to fetch per page. + - ``1000`` + * - page.keymatch.max.fetch.size + - Maximum number of keymatch records to fetch per page. + - ``1000`` + * - page.labeltype.max.fetch.size + - Maximum number of labeltype records to fetch per page. + - ``1000`` + * - page.roletype.max.fetch.size + - Maximum number of roletype records to fetch per page. + - ``1000`` + * - page.user.max.fetch.size + - Maximum number of user records to fetch per page. + - ``1000`` + * - page.role.max.fetch.size + - Maximum number of role records to fetch per page. + - ``1000`` + * - page.group.max.fetch.size + - Maximum number of group records to fetch per page. + - ``1000`` + * - page.crawling.info.param.max.fetch.size + - Maximum number of crawling info parameters to fetch per page. + - ``100`` + * - page.crawling.info.max.fetch.size + - Maximum number of crawling info records to fetch per page. + - ``1000`` + * - page.data.config.max.fetch.size + - Maximum number of data config records to fetch per page. + - ``100`` + * - page.web.config.max.fetch.size + - Maximum number of web config records to fetch per page. + - ``100`` + * - page.file.config.max.fetch.size + - Maximum number of file config records to fetch per page. + - ``100`` + * - page.duplicate.host.max.fetch.size + - Maximum number of duplicate host records to fetch per page. + - ``1000`` + * - page.failure.url.max.fetch.size + - Maximum number of failure URL records to fetch per page. + - ``1000`` + * - page.favorite.log.max.fetch.size + - Maximum number of favorite log records to fetch per page. + - ``100`` + * - page.file.auth.max.fetch.size + - Maximum number of file auth records to fetch per page. + - ``100`` + * - page.web.auth.max.fetch.size + - Maximum number of web auth records to fetch per page. + - ``100`` + * - page.path.mapping.max.fetch.size + - Maximum number of path mapping records to fetch per page. + - ``1000`` + * - page.request.header.max.fetch.size + - Maximum number of request header records to fetch per page. + - ``1000`` + * - page.scheduled.job.max.fetch.size + - Maximum number of scheduled job records to fetch per page. + - ``100`` + * - page.elevate.word.max.fetch.size + - Maximum number of elevate word records to fetch per page. + - ``1000`` + * - page.bad.word.max.fetch.size + - Maximum number of bad word records to fetch per page. + - ``1000`` + * - page.dictionary.max.fetch.size + - Maximum number of dictionary records to fetch per page. + - ``1000`` + * - page.relatedcontent.max.fetch.size + - Maximum number of related content records to fetch per page. + - ``5000`` + * - page.relatedquery.max.fetch.size + - Maximum number of related query records to fetch per page. + - ``5000`` + * - page.thumbnail.queue.max.fetch.size + - Maximum number of thumbnail queue records to fetch per page. + - ``100`` + * - page.thumbnail.purge.max.fetch.size + - Maximum number of thumbnail purge records to fetch per page. + - ``100`` + * - page.score.booster.max.fetch.size + - Maximum number of score booster records to fetch per page. + - ``1000`` + * - page.searchlog.max.fetch.size + - Maximum number of search log records to fetch per page. + - ``10000`` + * - page.searchlist.track.total.hits + - Whether to track total hits in search list page. + - ``true`` + * - page.searchlist.content.max.length + - Maximum content length (in characters) rendered on the search list edit page. + - ``100000`` + +.. list-table:: Search Page + :header-rows: 1 + + * - Name + - Description + - Default + * - paging.search.page.start + - Default start page for search results. + - ``0`` + * - paging.search.page.size + - Default size of search results per page. + - ``10`` + * - paging.search.page.max.size + - Maximum size of search results per page. + - ``100`` + * - api.param.max.length + - Maximum length of a v2 API string query parameter (q, sort, sdh). OWASP API4:2023. + - ``1000`` + * - api.param.max.array.size + - Maximum number of values for a v2 API repeatable query parameter. + - ``100`` + * - api.click.max.timestamp + - Maximum click-log timestamp (rt, epoch ms) accepted by the v2 click API. OWASP API4:2023. + - ``9999999999999`` + * - searchlog.agg.shard.size + - searchlog + - ``-1`` + * - searchlog.request.headers + - Request headers to include in search log. + - (empty) + * - searchlog.process.batch_size + - Batch size for search log processing. + - ``100`` + * - thumbnail.html.image.min.width + - Minimum width for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.min.height + - Minimum height for HTML images in thumbnails. + - ``100`` + * - thumbnail.html.image.max.aspect.ratio + - Maximum aspect ratio for HTML images in thumbnails. + - ``3.0`` + * - thumbnail.html.image.thumbnail.width + - Width of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.thumbnail.height + - Height of generated thumbnail images. + - ``100`` + * - thumbnail.html.image.format + - Format of generated thumbnail images. + - ``png`` + * - thumbnail.html.image.xpath + - XPath to select images for thumbnails. + - ``//IMG`` + * - thumbnail.html.image.exclude.extensions + - File extensions to exclude from thumbnail generation. + - ``svg,html,css,js`` + * - thumbnail.generator.interval + - Interval for thumbnail generator. + - ``0`` + * - thumbnail.generator.targets + - Targets for thumbnail generator (e.g., all). + - ``all`` + * - thumbnail.crawler.enabled + - Whether the thumbnail crawler is enabled. + - ``true`` + * - thumbnail.system.monitor.interval + - Interval for system monitor in thumbnail processing. + - ``60`` + +.. list-table:: User + :header-rows: 1 + + * - Name + - Description + - Default + * - user.code.request.parameter + - User code settings + - ``userCode`` + * - user.code.min.length + - User code minimum length. + - ``20`` + * - user.code.max.length + - User code maximum length. + - ``100`` + * - user.code.pattern + - User code pattern for validation. + - ``[a-zA-Z0-9_]+`` + * - mail.from.name + - Name to display in the From field of emails. + - ``Administrator`` + * - mail.from.address + - Email address to use in the From field. + - ``root@localhost`` + * - mail.hostname + - Hostname for the mail server. + - (empty) + * - scheduler.target.name + - Target name for the scheduler. + - (empty) + * - scheduler.job.class + - Job class for the scheduler. + - ``org.codelibs.fess.app.job.ScriptExecutorJob`` + * - scheduler.concurrent.exec.mode + - Mode for concurrent execution in the scheduler. + - ``QUIT`` + * - scheduler.monitor.interval + - Interval for scheduler monitoring. + - ``30`` + * - coordinator.poll.interval + - Interval (seconds) for polling heartbeats and events. + - ``60`` + * - coordinator.heartbeat.ttl + - Time-to-live (ms) for instance heartbeat documents. + - ``180000`` + * - coordinator.operation.ttl + - Time-to-live (ms) for operation lock documents. + - ``7200000`` + * - coordinator.operation.retry + - Maximum number of retries for acquiring an operation lock. + - ``3`` + * - coordinator.event.ttl + - Time-to-live (ms) for event notification documents. + - ``600000`` + * - online.help.base.link + - Base link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/admin/`` + * - online.help.installation + - Installation guide link for online help. + - ``https://fess.codelibs.org/{lang}/{version}/install/install.html`` + * - online.help.eol + - End-of-life information link for online help. + - ``https://fess.codelibs.org/{lang}/eol.html`` + * - online.help.name.failureurl + - Online help key for failure URL. + - ``failureurl`` + * - online.help.name.elevateword + - Online help key for elevate word. + - ``elevateword`` + * - online.help.name.reqheader + - Online help key for request header. + - ``reqheader`` + * - online.help.name.dict.synonym + - Online help key for synonym dictionary. + - ``synonym`` + * - online.help.name.dict + - Online help key for dictionary. + - ``dict`` + * - online.help.name.dict.kuromoji + - Online help key for Kuromoji dictionary. + - ``kuromoji`` + * - online.help.name.dict.protwords + - Online help key for protected words dictionary. + - ``protwords`` + * - online.help.name.dict.stopwords + - Online help key for stopwords dictionary. + - ``stopwords`` + * - online.help.name.dict.stemmeroverride + - Online help key for stemmer override dictionary. + - ``stemmeroverride`` + * - online.help.name.dict.mapping + - Online help key for mapping dictionary. + - ``mapping`` + * - online.help.name.webconfig + - Online help key for web config. + - ``webconfig`` + * - online.help.name.searchlist + - Online help key for search list. + - ``searchlist`` + * - online.help.name.log + - Online help key for log. + - ``log`` + * - online.help.name.general + - Online help key for general settings. + - ``general`` + * - online.help.name.role + - Online help key for role. + - ``role`` + * - online.help.name.joblog + - Online help key for job log. + - ``joblog`` + * - online.help.name.keymatch + - Online help key for keymatch. + - ``keymatch`` + * - online.help.name.relatedquery + - Online help key for related query. + - ``relatedquery`` + * - online.help.name.relatedcontent + - Online help key for related content. + - ``relatedcontent`` + * - online.help.name.wizard + - Online help key for wizard. + - ``wizard`` + * - online.help.name.badword + - Online help key for bad word. + - ``badword`` + * - online.help.name.pathmap + - Online help key for path mapping. + - ``pathmap`` + * - online.help.name.boostdoc + - Online help key for boost document. + - ``boostdoc`` + * - online.help.name.dataconfig + - Online help key for data config. + - ``dataconfig`` + * - online.help.name.systeminfo + - Online help key for system info. + - ``systeminfo`` + * - online.help.name.user + - Online help key for user. + - ``user`` + * - online.help.name.group + - Online help key for group. + - ``group`` + * - online.help.name.design + - Online help key for design. + - ``design`` + * - online.help.name.dashboard + - Online help key for dashboard. + - ``dashboard`` + * - online.help.name.webauth + - Online help key for web authentication. + - ``webauth`` + * - online.help.name.fileconfig + - Online help key for file config. + - ``fileconfig`` + * - online.help.name.fileauth + - Online help key for file authentication. + - ``fileauth`` + * - online.help.name.labeltype + - Online help key for label type. + - ``labeltype`` + * - online.help.name.duplicatehost + - Online help key for duplicate host. + - ``duplicatehost`` + * - online.help.name.scheduler + - Online help key for scheduler. + - ``scheduler`` + * - online.help.name.crawlinginfo + - Online help key for crawling info. + - ``crawlinginfo`` + * - online.help.name.backup + - Online help key for backup. + - ``backup`` + * - online.help.name.upgrade + - Online help key for upgrade. + - ``upgrade`` + * - online.help.name.sereq + - Online help key for search request. + - ``sereq`` + * - online.help.name.accesstoken + - Online help key for access token. + - ``accesstoken`` + * - online.help.name.suggest + - Online help key for suggest. + - ``suggest`` + * - online.help.name.searchlog + - Online help key for search log. + - ``searchlog`` + * - online.help.name.maintenance + - Online help key for maintenance. + - ``maintenance`` + * - online.help.name.plugin + - Online help key for plugin. + - ``plugin`` + * - online.help.name.storage + - Online help key for storage. + - ``storage`` + * - online.help.supported.langs + - Supported languages for online help. + - ``de,es,fr,ja,ko,zh-cn`` + * - forum.link + - Forum link for user support. + - ``https://discuss.codelibs.org/c/Fess{lang}/`` + * - forum.supported.langs + - Supported languages for the forum. + - ``en,ja`` + * - suggest.popular.word.seed + - Seed value for popular word suggestion. + - ``0`` + * - suggest.popular.word.tags + - Tags for popular word suggestion. + - (empty) + * - suggest.popular.word.fields + - Fields for popular word suggestion. + - (empty) + * - suggest.popular.word.excludes + - Excluded words for popular word suggestion. + - (empty) + * - suggest.popular.word.size + - Number of popular words to suggest. + - ``10`` + * - suggest.popular.word.window.size + - Window size for popular word suggestion. + - ``30`` + * - suggest.popular.word.query.freq + - Query frequency for popular word suggestion. + - ``10`` + * - suggest.min.hit.count + - Minimum hit count for suggestion. + - ``1`` + * - suggest.field.contents + - Field for suggestion contents. + - ``_default`` + * - suggest.field.tags + - Field for suggestion tags. + - ``label`` + * - suggest.field.roles + - Field for suggestion roles. + - ``role`` + * - suggest.field.index.contents + - Index contents for suggestion. + - ``content,title`` + * - suggest.update.request.interval + - Interval for suggestion update requests. + - ``0`` + * - suggest.update.doc.per.request + - Number of documents per suggestion update request. + - ``2`` + * - suggest.update.contents.limit.num.percentage + - Percentage limit for suggestion update contents. + - ``50%`` + * - suggest.update.contents.limit.num + - Maximum number of suggestion update contents. + - ``10000`` + * - suggest.update.contents.limit.doc.size + - Maximum document size for suggestion update. + - ``50000`` + * - suggest.source.reader.scroll.size + - Scroll size for suggestion source reader. + - ``1`` + * - suggest.popular.word.cache.size + - Cache size for popular word suggestion. + - ``1000`` + * - suggest.popular.word.cache.expire + - Cache expiration (seconds) for popular word suggestion. + - ``60`` + * - suggest.search.log.permissions + - Permissions for suggestion search log. + - ``{user}guest,{role}guest`` + * - suggest.system.monitor.interval + - Interval for system monitor in suggestion. + - ``60`` + * - ldap.admin.enabled + - Whether LDAP admin is enabled. + - ``false`` + * - ldap.admin.user.filter + - User filter for LDAP admin. + - ``uid=%s`` + * - ldap.admin.user.base.dn + - Base DN for LDAP admin user. + - ``ou=People,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.user.object.classes + - Object classes for LDAP admin user. + - ``organizationalPerson,top,person,inetOrgPerson`` + * - ldap.admin.role.filter + - Role filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.role.base.dn + - Base DN for LDAP admin role. + - ``ou=Role,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.role.object.classes + - Object classes for LDAP admin role. + - ``groupOfNames`` + * - ldap.admin.group.filter + - Group filter for LDAP admin. + - ``cn=%s`` + * - ldap.admin.group.base.dn + - Base DN for LDAP admin group. + - ``ou=Group,dc=fess,dc=codelibs,dc=org`` + * - ldap.admin.group.object.classes + - Object classes for LDAP admin group. + - ``groupOfNames`` + * - ldap.admin.sync.password + - Whether to sync password for LDAP admin. + - ``true`` + * - ldap.auth.validation + - Whether to validate LDAP authentication. + - ``true`` + * - ldap.connect.timeout + - Timeout (milliseconds) to establish an LDAP connection. This also bounds the TLS handshake and the initial bind response. 0 or less leaves it to the JDK/OS default. + - ``10000`` + * - ldap.read.timeout + - Timeout (milliseconds) to wait for an LDAP response after the connection is bound. 0 or less waits indefinitely. + - ``30000`` + * - ldap.search.time.limit + - Server side time limit (milliseconds) for an LDAP search. 0 or less means no limit. + - ``60000`` + * - ldap.max.username.length + - Maximum username length for LDAP. + - ``-1`` + * - ldap.ignore.netbios.name + - Whether to ignore NetBIOS name in LDAP. + - ``true`` + * - ldap.group.name.with.underscores + - Whether to allow underscores in LDAP group names. + - ``false`` + * - ldap.lowercase.permission.name + - Whether to use lowercase for LDAP permission names. + - ``false`` + * - ldap.allow.empty.permission + - Whether to allow empty permissions in LDAP. + - ``true`` + * - ldap.samaccountname.group + - Whether to use samAccountName for LDAP group. + - ``false`` + * - ldap.role.search.user.enabled + - Whether LDAP role search for user is enabled. + - ``true`` + * - ldap.role.search.group.enabled + - Whether LDAP role search for group is enabled. + - ``true`` + * - ldap.role.search.role.enabled + - Whether LDAP role search for role is enabled. + - ``true`` + * - ldap.attr.surname + - LDAP attribute for surname. + - ``sn`` + * - ldap.attr.givenName + - LDAP attribute for given name. + - ``givenName`` + * - ldap.attr.employeeNumber + - LDAP attribute for employee number. + - ``employeeNumber`` + * - ldap.attr.mail + - LDAP attribute for mail. + - ``mail`` + * - ldap.attr.telephoneNumber + - LDAP attribute for telephone number. + - ``telephoneNumber`` + * - ldap.attr.homePhone + - LDAP attribute for home phone. + - ``homePhone`` + * - ldap.attr.homePostalAddress + - LDAP attribute for home postal address. + - ``homePostalAddress`` + * - ldap.attr.labeledURI + - LDAP attribute for labeled URI. + - ``labeledURI`` + * - ldap.attr.roomNumber + - LDAP attribute for room number. + - ``roomNumber`` + * - ldap.attr.description + - LDAP attribute for description. + - ``description`` + * - ldap.attr.title + - LDAP attribute for title. + - ``title`` + * - ldap.attr.pager + - LDAP attribute for pager. + - ``pager`` + * - ldap.attr.street + - LDAP attribute for street. + - ``street`` + * - ldap.attr.postalCode + - LDAP attribute for postal code. + - ``postalCode`` + * - ldap.attr.physicalDeliveryOfficeName + - LDAP attribute for physical delivery office name. + - ``physicalDeliveryOfficeName`` + * - ldap.attr.destinationIndicator + - LDAP attribute for destination indicator. + - ``destinationIndicator`` + * - ldap.attr.internationaliSDNNumber + - LDAP attribute for international ISDN number. + - ``internationaliSDNNumber`` + * - ldap.attr.state + - LDAP attribute for state. + - ``st`` + * - ldap.attr.employeeType + - LDAP attribute for employee type. + - ``employeeType`` + * - ldap.attr.facsimileTelephoneNumber + - LDAP attribute for facsimile telephone number. + - ``facsimileTelephoneNumber`` + * - ldap.attr.postOfficeBox + - LDAP attribute for post office box. + - ``postOfficeBox`` + * - ldap.attr.initials + - LDAP attribute for initials. + - ``initials`` + * - ldap.attr.carLicense + - LDAP attribute for car license. + - ``carLicense`` + * - ldap.attr.mobile + - LDAP attribute for mobile. + - ``mobile`` + * - ldap.attr.postalAddress + - LDAP attribute for postal address. + - ``postalAddress`` + * - ldap.attr.city + - LDAP attribute for city. + - ``l`` + * - ldap.attr.teletexTerminalIdentifier + - LDAP attribute for teletex terminal identifier. + - ``teletexTerminalIdentifier`` + * - ldap.attr.x121Address + - LDAP attribute for X.121 address. + - ``x121Address`` + * - ldap.attr.businessCategory + - LDAP attribute for business category. + - ``businessCategory`` + * - ldap.attr.registeredAddress + - LDAP attribute for registered address. + - ``registeredAddress`` + * - ldap.attr.displayName + - LDAP attribute for display name. + - ``displayName`` + * - ldap.attr.preferredLanguage + - LDAP attribute for preferred language. + - ``preferredLanguage`` + * - ldap.attr.departmentNumber + - LDAP attribute for department number. + - ``departmentNumber`` + * - ldap.attr.uidNumber + - LDAP attribute for UID number. + - ``uidNumber`` + * - ldap.attr.gidNumber + - LDAP attribute for GID number. + - ``gidNumber`` + * - ldap.attr.homeDirectory + - LDAP attribute for home directory. + - ``homeDirectory`` + * - plugin.repositories + - Plugin repository URLs. + - ``https://maven.codelibs.org/release/org/codelibs/fess/,https://repo.maven.apache.org/maven2/org/codelibs/fess/,https://fess.codelibs.org/plugin/artifacts.yaml`` + * - plugin.version.filter + - Version filter for plugins. + - (empty) + * - storage.max.items.in.page + - Maximum number of items per page in storage. + - ``1000`` + * - password.invalid.admin.passwords + - List of invalid admin passwords. + - ``admin`` + * - password.min.length + - Minimum password length (0 to disable). + - ``8`` + * - password.max.length + - Maximum length of a password field. + - ``100`` + * - password.require.uppercase + - Require uppercase letters in password. + - ``false`` + * - password.require.lowercase + - Require lowercase letters in password. + - ``false`` + * - password.require.digit + - Require digits in password. + - ``false`` + * - password.require.special.char + - Require special characters in password. + - ``false`` + * - rag.chat.enabled + - Whether RAG chat feature is enabled. + - ``false`` + * - rag.chat.context.max.documents + - Chat generation settings. + - ``5`` + * - rag.chat.session.timeout.minutes + - Session settings. + - ``30`` + * - rag.chat.session.max.size + - Maximum cached chat sessions; least recently accessed are evicted above it (0 or less means 100). + - ``10000`` + * - rag.chat.history.max.messages + - Maximum messages kept in one chat session; older turns are trimmed on each new message. + - ``30`` + * - rag.chat.content.fields + - Enhanced RAG flow settings. Fields to retrieve for full document content. + - ``title,url,content,doc_id,content_title,content_description`` + * - rag.chat.highlight.fragment.size + - Highlight settings for RAG search. + - ``500`` + * - rag.chat.highlight.number.of.fragments + - Number of highlight fragments per document in the RAG chat context search. + - ``3`` + * - rag.chat.content.fulltext.max.length + - Large-document handling for answer generation. Documents whose content_length exceeds this value use highlighted passages instead of full content in the answer context. + - ``3000`` + * - rag.chat.answer.highlight.fragment.size + - Highlight settings used when extracting passages from large documents for the answer context. + - ``1000`` + * - rag.chat.answer.highlight.number.of.fragments + - Number of highlight fragments taken from each oversized document for the answer context. + - ``5`` + * - rag.chat.history.assistant.content + - History content mode for assistant messages. smart_summary - drop assistant body, keep only past search query + referenced titles per turn (default, recommended) full - send the whole assistant response source_titles - body + referenced titles suffix source_titles_and_urls - "[References: title (url), ...]" only truncated - truncate assistant response at history.assistant.max.chars none - drop assistant turns from history + - ``smart_summary`` + * - rag.chat.history.titles.max.count + - Maximum number of referenced document titles included per turn in smart_summary history mode. + - ``5`` + * - index.export.path + - Index Export + - ``/var/lib/fess/export`` + * - index.export.exclude.fields + - Comma-separated document fields omitted from files written by the index export job. + - ``cache`` + * - index.export.scroll.size + - Number of documents fetched per scroll request by the index export job. + - ``100`` + * - index.export.format + - Output format for exported documents; only html and json are accepted, anything else fails the job. + - ``html`` + * - log.notification.flush.interval + - Log Notification Interval (seconds) for flushing log notification buffer to search engine. + - ``30`` + * - log.notification.max.details.length + - Maximum length of notification details text. + - ``3000`` + * - log.notification.max.display.events + - Maximum number of events to display in notification. + - ``50`` + * - log.notification.max.message.length + - Maximum length of each log message in notification. + - ``200`` + * - log.notification.search.size + - Maximum number of events to fetch from search engine per notification job. + - ``1000`` + * - log.notification.buffer.size + - Maximum number of events to buffer in memory. + - ``1000`` + * - log.notification.interval + - Interval (seconds) for the notification job cycle, used in notification messages. + - ``300`` + * - theme.directory.path + - Static theme system (see docs/superpowers/specs/2026-05-21-fess-static-theme-design.md) + - ``themes`` + * - theme.upload.max.size + - Maximum size (bytes) of an uploaded theme archive. + - ``52428800`` + * - theme.upload.max.extracted.size + - Maximum total extracted size (bytes); extraction aborts once it is exceeded. + - ``209715200`` + * - theme.upload.max.entries + - Maximum number of entries allowed in an uploaded theme archive. + - ``1000`` + * - theme.upload.max.compression.ratio + - Maximum uncompressed/compressed ratio for a single theme archive entry. + - ``100`` + * - theme.upload.zip.ratio.max + - Maximum cumulative uncompressed/compressed ratio for the whole archive (zip-bomb guard). + - ``50`` + * - theme.upload.zip.ratio.check.threshold.bytes + - Compressed bytes read before the cumulative zip ratio check applies; smaller archives skip it. + - ``65536`` + * - theme.upload.attic.retention.days + - Retention (days) for a replaced theme directory before the cleanup sweep removes it. + - ``7`` + * - theme.api.csrf.server.origins + - Optional: canonical external origin(s) of this Fess instance (comma/newline separated), e.g. https://fess.example.com. When set, these are treated as same-origin for the v2 CSRF Origin check WITHOUT trusting forwarded headers. Recommended behind reverse proxies that are not listed in rate.limit.trusted.proxies. When empty, the target origin is reconstructed from trusted-proxy X-Forwarded-\* headers, then from the servlet request. + - (empty) + * - theme.api.login.rate.limit.per.ip.per.minute + - Login attempts allowed per client IP each minute; 0 or less disables the gate. + - ``10`` + * - theme.api.login.rate.limit.per.user.per.minute + - Login attempts allowed per client IP and user name each minute; also gates password change. + - ``5`` + * - theme.api.login.lockout.seconds + - Lockout (seconds) applied once a login rate limit is exceeded; 0 or less disables the lockout. + - ``900`` + * - theme.api.login.rate.limit.max.entries + - Maximum login rate-limit buckets held in memory; idle buckets are evicted at the cap. + - ``100000`` + * - api.chat.stream.keepalive.interval.ms + - Interval between SSE keep-alive pings emitted by /api/v2/chat/stream. The ping is a comment-only line (": keepalive\\n\\n") that does not affect the event stream but defeats intermediaries (nginx default proxy_read_timeout is 60s) that drop idle connections during long LLM phases. Set <=0 to disable. Unit: milliseconds. + - ``15000`` +.. GENERATED-END: properties diff --git a/zh-cn/15.9/config/rag-chat.rst b/zh-cn/15.9/config/rag-chat.rst index c76aabf20..093468314 100644 --- a/zh-cn/15.9/config/rag-chat.rst +++ b/zh-cn/15.9/config/rag-chat.rst @@ -160,7 +160,7 @@ SystemProperty 系列( ``system.properties`` ,持久化在 OpenSearch 中) - 从文档获取的字段 - ``title,url,content,doc_id,content_title,content_description`` * - ``rag.chat.message.max.length`` - - 用户消息的最大字符数。此值以 System Property 形式读取,``fess_config.properties`` 中的对应项不会被使用。请通过 System Properties 或 ``-Dfess.system.rag.chat.message.max.length`` 进行设置。 + - 用户消息的最大字符数。此值以 System Property 形式读取。请通过 System Properties 或 ``-Dfess.system.rag.chat.message.max.length`` 进行设置。 - ``4000`` * - ``rag.chat.highlight.fragment.size`` - 搜索高亮的片段大小