Compare commits

..

261 commits

Author SHA1 Message Date
Shinsuke Sugaya
726f6f989c #2867 Organized and updated referenced JavaScript files in JSP views for consistency and functionality. 2025-01-18 21:09:07 +09:00
Shinsuke Sugaya
e7779ba08e fix #2545 add userMenu to id attribute 2025-01-18 20:58:45 +09:00
Shinsuke Sugaya
568d15a741 fix #2544 Add lang attribute. 2025-01-18 20:38:54 +09:00
Shinsuke Sugaya
1b5e44f87b fix #2546 Update for attributes in JSP files. 2025-01-18 14:47:48 +09:00
Shinsuke Sugaya
1bbf6aaa93 fix #2868 Exclude unnecessary items from print view on the search result screen using d-print-none. 2025-01-18 14:32:37 +09:00
Shinsuke Sugaya
cd478515f4 fix #2867 Upgrade to Bootstrap 5.3: Adjust classes and attributes in JSP files for compatibility. 2025-01-12 15:14:02 +09:00
Shinsuke Sugaya
162081c2e2 fix #2866 Prevent URL decoding of filenames for specific schemes. 2025-01-09 18:02:12 +09:00
Shinsuke Sugaya
541319b7ca fix #2865 Refactor Ingester to enhance testability by adding getIngestFactory method. 2024-12-29 22:05:18 +09:00
Shinsuke Sugaya
4726b59f04 fix #2864 Refactored ResultData to use rawData with a dedicated serializer. 2024-12-29 20:24:40 +09:00
Shinsuke Sugaya
e739c8c33f fix #2863 Add upper limits to search and click log queue sizes 2024-12-28 15:20:02 +09:00
Shinsuke Sugaya
07bd6aa6a5 #2862 Add comprehensive Javadoc comments and refine SearchLogHelper structure 2024-12-28 12:00:35 +09:00
Shinsuke Sugaya
cfa492eb8e fix #2862 Optimize SearchLogHelper for direct queue handling and streamlined batch processing. 2024-12-27 22:58:21 +09:00
Shinsuke Sugaya
80e9cb0ddf fix #2861 Add Kryo support for temporary data serialization in the crawler 2024-12-20 22:14:54 +09:00
Shinsuke Sugaya
c3514c5b3a fix #2860 Refactor URL handling logic. 2024-12-19 17:05:54 +09:00
Shinsuke Sugaya
69f21a80f1 #2859 remove old versions 2024-11-28 15:24:56 +09:00
Shinsuke Sugaya
c34f716b4e update doc 2024-11-22 21:28:34 +09:00
Shinsuke Sugaya
4aea9e1c1f opensearch 2.18.0 2024-11-10 21:03:52 +09:00
Shinsuke Sugaya
9d3f26ac6a #2857 replace with fess-crawler-opensearch 2024-11-07 15:19:20 +09:00
Shinsuke Sugaya
8ca11382a2 fix #2857 Refactored package from org.codelibs.fess.es to org.codelibs.fess.opensearch 2024-11-06 22:45:02 +09:00
Shinsuke Sugaya
68ca7e101c #2856 Refactor FessUrlQueueService to use superclass fetchUrlQueueList method 2024-11-04 16:52:07 +09:00
Shinsuke Sugaya
036ebd6c3c fix #2856 Add crawl order configuration to control URL processing order 2024-11-03 14:09:36 +09:00
Shinsuke Sugaya
70ef1c5194 fix #2855 Exclude .map files from build output 2024-10-26 11:16:03 +09:00
Shinsuke Sugaya
5b5fd1635f fix #2853 bump up to adminlte 3.2 2024-10-26 10:49:09 +09:00
Shinsuke Sugaya
d3cd1579ff fix #2854 bump up to jquery 3.7.1 2024-10-26 10:07:52 +09:00
Shinsuke Sugaya
f4dc8c3f7c opensearch 2.17.1 2024-10-26 08:33:43 +09:00
Shinsuke Sugaya
053c6909fd opensearch 2.17.1 2024-10-25 21:43:59 +09:00
Shinsuke Sugaya
6ca8f890fe fix #2852 Add support for specifying HTML child link extraction tags via html.child.url.rules in crawl settings. 2024-10-24 22:01:38 +09:00
Shinsuke Sugaya
706d952ad1 clean up code formating 2024-10-24 17:52:32 +09:00
Shinsuke Sugaya
5fdafb769c #2851 Remove plugin directory handling and cleanup plugin-related tasks in build and resource utility files. 2024-10-24 13:37:19 +09:00
Shinsuke Sugaya
160dd6ed81 fix #2851 Ensure only JAR files are recognized as plugins in the plugin directory. 2024-10-24 10:47:10 +09:00
Shinsuke Sugaya
0d30f4d17b improve getRepositoryPath 2024-10-23 22:27:21 +09:00
Shinsuke Sugaya
e8ae04073a replace with jakarta 2024-10-22 22:46:06 +09:00
Shinsuke Sugaya
6e98cd861a rest-assured 5.5.0 2024-10-21 22:56:43 +09:00
Shinsuke Sugaya
a6f7abf4ec fix #2850 Enable batch mode in shard allocator to suppress WARN log for single shard assignment fallback 2024-10-21 21:20:52 +09:00
Shinsuke Sugaya
d9ef5f7655 add fess_se++.xml 2024-10-21 21:16:01 +09:00
Shinsuke Sugaya
c24fc41cc5 fix #2849 Added exception details to warning logs for better error debugging. 2024-10-20 11:08:03 +09:00
Shinsuke Sugaya
e8944daf68 fess-parent 15.0.0-SNAPSHOT 2024-10-17 21:10:08 +09:00
Shinsuke Sugaya
9f56ad5ccf update docs 2024-10-12 16:22:40 +09:00
Shinsuke Sugaya
c26171fe2e update docs 2024-10-12 16:19:47 +09:00
Shinsuke Sugaya
3ed9071299
Update README.fr.md 2024-10-12 14:50:32 +09:00
Shinsuke Sugaya
265bbda820 #2848 Refactor code: reverted to an if statement. 2024-10-12 10:54:46 +09:00
Shinsuke Sugaya
43af75f42d #2848 Refactor code: reverted to an if statement. 2024-10-12 10:54:15 +09:00
Shinsuke Sugaya
62d89fbf25 fix #2848 Refactor code: Replace redundant conditions and enhance readability across several classes. 2024-10-12 06:20:39 +09:00
hi-yamap
f9b16cfc34 bugfix OpenIdConnectAuthenticator (#2847)
Fixed an issue where the type of `attributes["groups"]` had changed from `String[]` to `List<Object>`.
Add unittest.
2024-10-12 06:14:07 +09:00
Shinsuke Sugaya
063a714370 fix #2848 Refactor code: Replace redundant conditions and enhance readability across several classes. 2024-10-12 06:11:58 +09:00
hi-yamap
173a05dd23
bugfix OpenIdConnectAuthenticator (#2847)
Fixed an issue where the type of `attributes["groups"]` had changed from `String[]` to `List<Object>`.
Add unittest.
2024-10-11 07:53:20 +09:00
hi-yamap
54e7cdf9e5 bugfix OpenIdConnectAuthenticator (#2845) 2024-10-04 08:13:00 +09:00
hi-yamap
28bd3005cd
bugfix OpenIdConnectAuthenticator (#2845) 2024-10-04 08:12:10 +09:00
Shinsuke Sugaya
3cdc706dcb fix #2846 Set query.orsearch.min.hit.count to -1 to disable automatic OR-based re-search. 2024-10-01 23:14:03 +09:00
Shinsuke Sugaya
fbcb986acc fix #2846 Set query.orsearch.min.hit.count to -1 to disable automatic OR-based re-search. 2024-10-01 23:13:38 +09:00
Shinsuke Sugaya
5ec0acc4e7 fess-parent 14.18.0-SNAPSHOT 2024-10-01 22:51:06 +09:00
Shinsuke Sugaya
b5b6e45200 update doc 2024-09-30 22:08:50 +09:00
Shinsuke Sugaya
03196e147c update doc 2024-09-30 22:06:45 +09:00
Shinsuke Sugaya
bc80f33195 [maven-release-plugin] prepare for next development iteration 2024-09-28 00:23:52 +00:00
Shinsuke Sugaya
c25c167ebd [maven-release-plugin] prepare release fess-14.17.0 2024-09-28 00:23:50 +00:00
Shinsuke Sugaya
e2d663e1e5 fess-parent 14.17.0 2024-09-26 20:43:58 +09:00
Shinsuke Sugaya
3726fbec40 fix #2844 Ignore case sensitivity in canonical URL comparison to prevent unnecessary redirects 2024-09-26 10:32:19 +09:00
Shinsuke Sugaya
25f7144dac fix #2844 Ignore case sensitivity in canonical URL comparison to prevent unnecessary redirects 2024-09-26 10:31:44 +09:00
Shinsuke Sugaya
3dec731f9e fix #2843 upgrade task for 14.17 2024-09-22 16:32:24 +09:00
Shinsuke Sugaya
cf9b73e103 opensearch 2.17.0 and minor update 2024-09-21 14:37:26 +09:00
Shinsuke Sugaya
6134353600 fix #2842 Add http.fileupload.max.file.count property and refactor file upload handling logic 2024-09-08 15:18:15 +09:00
Shinsuke Sugaya
9ac9f96948 fix #2842 Add http.fileupload.max.file.count property and refactor file upload handling logic 2024-09-08 14:41:41 +09:00
Shinsuke Sugaya
dd4af0dcf6 #2841 Fix fess_basic_config alias handling for Fess multi-instance support. 2024-08-24 11:22:35 +09:00
Shinsuke Sugaya
e7657528ef #2841 Fix fess_basic_config alias handling for Fess multi-instance support. 2024-08-24 11:22:00 +09:00
Shinsuke Sugaya
e84219b0e3 fix #2841 Enabled support for multiple Fess web applications on a single OpenSearch instance. 2024-08-22 21:44:40 +09:00
Shinsuke Sugaya
327d2eb160 fix #2841 Enabled support for multiple Fess web applications on a single OpenSearch instance. 2024-08-22 21:43:18 +09:00
Shinsuke Sugaya
17213f370a fix #2839 Adjust API response to conditionally include exception messages based on configuration. 2024-08-15 17:29:24 +09:00
Shinsuke Sugaya
ec6385766e fix #2839 Adjust API response to conditionally include exception messages based on configuration. 2024-08-15 17:29:04 +09:00
Shinsuke Sugaya
59dbbd602b fess-parent 14.17.0-SNAPSHOT 2024-08-15 16:24:18 +09:00
Shinsuke Sugaya
cf940e1cb4 replace codeql 2024-08-15 08:51:19 +09:00
Shinsuke Sugaya
01e16e4b12 update doc 2024-08-11 14:07:12 +09:00
Shinsuke Sugaya
2fdf2b4913 [maven-release-plugin] prepare for next development iteration 2024-08-11 02:24:14 +00:00
Shinsuke Sugaya
0a7e9d3bce [maven-release-plugin] prepare release fess-14.16.0 2024-08-11 02:24:12 +00:00
Shinsuke Sugaya
c3b7629d0e fess-parent 14.16.0 2024-08-10 14:47:11 +09:00
Shinsuke Sugaya
e40edd2008 fix #2838 upgrade task for 14.16 2024-08-10 12:53:29 +09:00
Shinsuke Sugaya
abe6356a44 opensearch 2.16.0 2024-08-09 21:42:36 +09:00
Shinsuke Sugaya
0df246ea53 update comment 2024-08-02 10:05:20 +09:00
Shinsuke Sugaya
ecba9f365c #2788 Update dependencies and configurations to latest versions 2024-07-29 11:54:01 +09:00
Shinsuke Sugaya
e55ecd72fe fix #2837 Removed scriptlet usage in Admin Design page for better code maintainability. 2024-07-28 18:04:24 +09:00
Shinsuke Sugaya
c895e16ce5 fix #2837 Removed scriptlet usage in Admin Design page for better code maintainability. 2024-07-28 18:03:48 +09:00
Shinsuke Sugaya
8c48ac1f8a fix #2835 Add interface for rewriting search request parameters before processing 2024-07-26 14:41:07 +09:00
Shinsuke Sugaya
906699974c fix #2835 Add interface for rewriting search request parameters before processing 2024-07-26 14:40:28 +09:00
Shinsuke Sugaya
09fb29ef57 fix #2834 Added language detection and default value settings to bulk document indexing in Admin API. 2024-07-25 10:48:41 +09:00
Shinsuke Sugaya
9999aad850 fix #2834 Added language detection and default value settings to bulk document indexing in Admin API. 2024-07-25 10:47:59 +09:00
Shinsuke Sugaya
6885cbdc91 fix #2833 Add bulk document indexing API to Admin API 2024-07-24 18:03:45 +09:00
Shinsuke Sugaya
11beb70eb5 fix #2833 Add bulk document indexing API to Admin API 2024-07-24 17:54:24 +09:00
Shinsuke Sugaya
aff1dd0fcd #2831 Ensure score is finite before adding to API response in SearchHelper and DefaultSearcher. 2024-07-22 15:56:39 +09:00
Shinsuke Sugaya
93354ce179 #2831 Ensure score is finite before adding to API response in SearchHelper and DefaultSearcher. 2024-07-22 15:56:21 +09:00
Shinsuke Sugaya
9de34ffd1a fix #2832 Auto-switch search operator to OR when hit count is below threshold 2024-07-22 15:10:26 +09:00
Shinsuke Sugaya
bc55977e9d fix #2832 Auto-switch search operator to OR when hit count is below threshold 2024-07-22 15:09:52 +09:00
Shinsuke Sugaya
e0f2314c75 fix #2831 Include score in the search API response fields. 2024-07-22 13:30:56 +09:00
Shinsuke Sugaya
fd90007bc1 fix #2831 Include score in the search API response fields. 2024-07-22 13:30:29 +09:00
Shinsuke Sugaya
a7d00092fb fix #2830 Add batch_size parameter to search log and click log processing. 2024-07-22 11:07:37 +09:00
Shinsuke Sugaya
7df7b403ed fix #2830 Add batch_size parameter to search log and click log processing. 2024-07-22 11:07:22 +09:00
Shinsuke Sugaya
9e78a39cc1 fix #2829 Enable specifying RankFusionSearcher via system properties configuration. 2024-07-15 16:36:07 +09:00
Shinsuke Sugaya
eef39ab1b8 fix #2829 Enable specifying RankFusionSearcher via system properties configuration. 2024-07-15 16:35:47 +09:00
Shinsuke Sugaya
7ee6b77a60 fix #2828 Add configurable DisMax query support for default field searches 2024-07-11 17:27:08 +09:00
Shinsuke Sugaya
64f7bf0332 fix #2828 Add configurable DisMax query support for default field searches 2024-07-11 17:26:36 +09:00
Shinsuke Sugaya
a21cea6ffe fix #2827 Add CPU load calibration during search log download to prevent high CPU usage. 2024-07-05 12:33:39 +09:00
Shinsuke Sugaya
4a010e703d fix #2827 Add CPU load calibration during search log download to prevent high CPU usage. 2024-07-05 12:33:18 +09:00
Shinsuke Sugaya
d0929b5994 fix #2826 Added support for defining field configurations via field.config.fieldname in crawl settings. 2024-07-04 15:21:35 +09:00
Shinsuke Sugaya
5d74bd3c3b fix #2826 Added support for defining field configurations via field.config.fieldname in crawl settings. 2024-07-04 15:20:49 +09:00
Shinsuke Sugaya
89072190b2 fess-parent 14.16.0-SNAPSHOT 2024-07-04 12:07:34 +09:00
Shinsuke Sugaya
b0d02b6777 update doc 2024-07-02 14:35:00 +09:00
Shinsuke Sugaya
dd779b64e1 [maven-release-plugin] prepare for next development iteration 2024-07-01 23:33:16 +00:00
Shinsuke Sugaya
3946c9da59 [maven-release-plugin] prepare release fess-14.15.0 2024-07-01 23:33:10 +00:00
Shinsuke Sugaya
ca8f4bed9d fix test case 2024-07-01 11:20:48 +09:00
Shinsuke Sugaya
7261c5359d fix #2825 upgrade tasks for 14.15 2024-06-30 13:41:29 +09:00
Shinsuke Sugaya
269449ed89 fess-parent 14.15.0 2024-06-30 13:12:18 +09:00
Shinsuke Sugaya
4212eea7b4 opensearch 2.15.0 2024-06-27 20:53:45 +09:00
Shinsuke Sugaya
b419ee3f96 fix #2824 Convert role names to lowercase for SMB crawling when ldap.lowercase.permission.name=true 2024-06-27 19:58:21 +09:00
Shinsuke Sugaya
a233a847a4 fix #2824 Convert role names to lowercase for SMB crawling when ldap.lowercase.permission.name=true 2024-06-27 19:55:43 +09:00
Shinsuke Sugaya
a26cf43943 fix #2823 Log Failure URL ID in CrawlingAccessException in fess.log 2024-06-24 10:20:42 +09:00
Shinsuke Sugaya
78070c9e74 fix #2823 Log Failure URL ID in CrawlingAccessException in fess.log 2024-06-24 10:20:17 +09:00
Shinsuke Sugaya
a26e133b55 fix #2822 Added configuration option to filter and pass system properties to jobs based on a regex pattern. 2024-06-23 13:13:47 +09:00
Shinsuke Sugaya
0a9a4f7306 fix #2822 Added configuration option to filter and pass system properties to jobs based on a regex pattern. 2024-06-23 13:12:46 +09:00
Shinsuke Sugaya
ec33a25495 fix #2821 Exclude X-FESS metadata from indexing and add transformation process for metadata inclusion. 2024-06-20 21:02:02 +09:00
Shinsuke Sugaya
24d77de5ae fix #2821 Exclude X-FESS metadata from indexing and add transformation process for metadata inclusion. 2024-06-20 21:01:20 +09:00
Shinsuke Sugaya
4afbb344c7 #2820 Fix package name retrieval from Jar files 2024-06-19 10:34:15 +09:00
Shinsuke Sugaya
dfb41630e6 #2820 Fix package name retrieval from Jar files 2024-06-19 10:33:54 +09:00
Shinsuke Sugaya
3551d13562 fix #2820 Add dynamic protocol registration based on PROTOCOL_TYPE in Handler class 2024-06-18 09:44:35 +09:00
Shinsuke Sugaya
03f1eccee3 fix #2820 Add dynamic protocol registration based on PROTOCOL_TYPE in Handler class 2024-06-18 09:44:11 +09:00
Shinsuke Sugaya
af31322593 #2819 fix imports 2024-06-18 08:09:13 +09:00
Shinsuke Sugaya
10c84ab75f fix #2819 add ProtocolHelper for URL protocol management and update related classes 2024-06-17 22:37:12 +09:00
Shinsuke Sugaya
8b2adce4eb #2818 add test resources 2024-06-17 22:37:04 +09:00
Shinsuke Sugaya
1f01d21446 fix #2819 add ProtocolHelper for URL protocol management and update related classes 2024-06-17 22:35:51 +09:00
Shinsuke Sugaya
e097d9a20b #2818 add test resources 2024-06-17 22:30:41 +09:00
Shinsuke Sugaya
95354c5400 fix #2818 Enable fess-crawler plugin in Fess plugin system 2024-06-17 21:39:16 +09:00
Shinsuke Sugaya
3f23b9bf14 fix #2818 Enable fess-crawler plugin in Fess plugin system 2024-06-17 21:38:38 +09:00
Shinsuke Sugaya
146f52e299 fix #2817 Update site_path abbreviation logic based on configuration settings. 2024-05-30 15:59:10 +09:00
Shinsuke Sugaya
2f4f0d8cd6 fix #2817 Update site_path abbreviation logic based on configuration settings. 2024-05-30 15:58:45 +09:00
Shinsuke Sugaya
020115648f fess-parent 14.15.0-SNAPSHOT 2024-05-30 15:49:02 +09:00
Shinsuke Sugaya
69abd1796f [maven-release-plugin] prepare for next development iteration 2024-05-26 22:33:22 +00:00
Shinsuke Sugaya
a2e2647313 [maven-release-plugin] prepare release fess-14.14.0 2024-05-26 22:33:16 +00:00
Shinsuke Sugaya
3fc67c4f1f fess-parent 14.14.0 2024-05-26 14:59:50 +09:00
Shinsuke Sugaya
dc0d651c2c fix #2816 upgrade tasks for 14.14 2024-05-26 14:52:29 +09:00
Shinsuke Sugaya
26f61fc207 opensearch 2.14.0 2024-05-16 16:10:50 +09:00
Shinsuke Sugaya
f3e1e563dc fix #2814 Refactor authentication property key to AUTHENTICATIONS_PROPERTY in DataConfig and WebConfig 2024-05-09 18:49:30 +09:00
Shinsuke Sugaya
73202e34c1 fix #2814 Refactor authentication property key to AUTHENTICATIONS_PROPERTY in DataConfig and WebConfig 2024-05-09 18:48:04 +09:00
Shinsuke Sugaya
128bd4f3a9 fix #2813 Fix typo in operationId from listLPopularWords to listPopularWords 2024-05-09 15:32:10 +09:00
Shinsuke Sugaya
054c7a0b81 fix #2812 Refactor content type setting in API response headers for enhanced accuracy and coverage 2024-05-09 15:32:03 +09:00
Shinsuke Sugaya
ce0dad7a9a fix #2813 Fix typo in operationId from listLPopularWords to listPopularWords 2024-05-09 15:31:27 +09:00
Shinsuke Sugaya
6a2ccd0d3d fix #2812 Refactor content type setting in API response headers for enhanced accuracy and coverage 2024-05-09 15:28:46 +09:00
Shinsuke Sugaya
3b5ce3b4ef fess-parent 14.14.0-SNAPSHOT 2024-04-22 21:06:58 +09:00
Shinsuke Sugaya
8445c432a2 [maven-release-plugin] prepare for next development iteration 2024-04-14 04:03:33 +00:00
Shinsuke Sugaya
7ae7b81252 [maven-release-plugin] prepare release fess-14.13.0 2024-04-14 04:03:28 +00:00
Shinsuke Sugaya
f5d0a98ca5 fess-parent 14.13.0 2024-04-13 20:44:26 +09:00
Shinsuke Sugaya
bcbdfc42bb fix #2811 upgrade tasks for 14.13 2024-04-13 20:43:03 +09:00
Shinsuke Sugaya
95277d5861 fix #2810 Removed sessionId from crawl job configuration scripts 2024-04-11 11:35:33 +09:00
Shinsuke Sugaya
2cc346d957 fix #2810 Removed sessionId from crawl job configuration scripts 2024-04-11 11:34:53 +09:00
Shinsuke Sugaya
0650ad1b3e opensearch 2.13.0 2024-04-04 11:03:51 +09:00
Shinsuke Sugaya
4524243a62 fix #2809 Update copyright year to 2024 in footer copyright notices 2024-03-22 20:59:11 +09:00
Shinsuke Sugaya
dbf0748548 fix #2809 Update copyright year to 2024 in footer copyright notices 2024-03-22 20:58:34 +09:00
Shinsuke Sugaya
d0e8a61c7f fess-parent 14.13.0-SNAPSHOT 2024-03-11 21:45:21 +09:00
Shinsuke Sugaya
c52136fc84 update docs 2024-02-25 09:40:07 +09:00
Shinsuke Sugaya
aa40cdf5de [maven-release-plugin] prepare for next development iteration 2024-02-24 06:15:34 +00:00
Shinsuke Sugaya
fa834b4384 [maven-release-plugin] prepare release fess-14.12.0 2024-02-24 06:15:29 +00:00
Shinsuke Sugaya
f128e4abf2 fix #2808 upgrade tasks for 14.12 2024-02-23 13:53:05 +09:00
Shinsuke Sugaya
81b70b4070 fess-parent 14.12.0 2024-02-23 13:44:11 +09:00
Shinsuke Sugaya
1409cc1018 fix #2807 Add record_count to /api/v1/popular-words API response 2024-02-22 11:19:50 +09:00
Shinsuke Sugaya
35e45ec4b8 fix #2807 Add record_count to /api/v1/popular-words API response 2024-02-22 11:17:23 +09:00
Shinsuke Sugaya
76352cf8dc Update copyright headers to 2024 2024-02-22 10:53:18 +09:00
Shinsuke Sugaya
b774b68242 opensearch 2.12.0 2024-02-22 10:52:50 +09:00
Shinsuke Sugaya
4243242117 Update copyright headers to 2024 2024-02-22 10:37:57 +09:00
Shinsuke Sugaya
08471c92a6 opensearch 2.12.0 2024-02-22 10:28:15 +09:00
Shinsuke Sugaya
106900ae91
Update Test Environment to macOS-14 and Enhance Logging During Test Execution (#2806)
* add log4j2.xml
* replace with macos-14
2024-02-10 20:19:11 +09:00
Shinsuke Sugaya
0494e440b1 Refactor GitHub Actions for Improved Efficiency and Maintenance (#2805) 2024-02-10 12:25:34 +09:00
Shinsuke Sugaya
8e215f4cbd
Refactor GitHub Actions for Improved Efficiency and Maintenance (#2805) 2024-02-10 12:19:37 +09:00
Shinsuke Sugaya
52ab272f06
Update codeql-analysis.yml
add workflow_dispatch
2024-02-10 11:01:55 +09:00
Shinsuke Sugaya
7689a71714
add workflow_dispatch 2024-02-09 20:54:00 +09:00
Shinsuke Sugaya
03f32cb3c3 #2789 fess-script-groovy 15.0.0-SNAPSHOT 2024-02-08 22:36:12 +09:00
Shinsuke Sugaya
f8eda0df53 #2804 add osdd.xml for testingl 2024-02-08 14:20:36 +09:00
Shinsuke Sugaya
4a2ef8f45e #2804 add osdd.xml for testingl 2024-02-08 14:17:08 +09:00
Shinsuke Sugaya
f1894f70e1 fix #2804 Disable OSDD processing when SSO is active to enhance usability 2024-02-08 14:03:55 +09:00
Shinsuke Sugaya
208531ebe2 fix #2804 Disable OSDD processing when SSO is active to enhance usability 2024-02-08 14:03:19 +09:00
Shinsuke Sugaya
479eeab409 fix #2803 Include aside tag in HTML crawler's pruned tags to enhance content relevance. 2024-02-05 22:21:25 +09:00
Shinsuke Sugaya
f6b2ef3b06 fix #2803 Include aside tag in HTML crawler's pruned tags to enhance content relevance. 2024-02-05 22:20:57 +09:00
Shinsuke Sugaya
0686a8b613 fix #2802 Prevent NullPointerException in FessMultipartRequestHandler by adding null check and fallback for tempDirFile 2024-01-30 22:15:04 +09:00
Shinsuke Sugaya
b50b0b93f2 fix #2801 Updated AccessTokenHelper to throw exception when only 'Bearer' is specified in Authorization header 2024-01-28 22:54:52 +09:00
Shinsuke Sugaya
cff8b1ccde fix #2801 Updated AccessTokenHelper to throw exception when only 'Bearer' is specified in Authorization header 2024-01-28 22:54:26 +09:00
Shinsuke Sugaya
d391949adf opensearch 2.11.1 2024-01-28 15:49:26 +09:00
Shinsuke Sugaya
08efca08a0 #2792 improve log messages 2024-01-27 11:13:15 +09:00
Shinsuke Sugaya
b563683818 #2792 improve log messages 2024-01-27 11:12:50 +09:00
Shinsuke Sugaya
38108ad810 fix #2800 Handle Exceptions in Suggester Instance Initialization 2024-01-25 15:37:15 +09:00
Shinsuke Sugaya
2a250cc19a fix #2800 Handle Exceptions in Suggester Instance Initialization 2024-01-25 15:36:47 +09:00
Shinsuke Sugaya
0c07a74b92 fix #2799 Refactor to centralize current time retrieval using systemHelper.getCurrentTimeAsLong() 2024-01-21 14:21:35 +09:00
Shinsuke Sugaya
633789fd78 fix #2799 Refactor to centralize current time retrieval using systemHelper.getCurrentTimeAsLong() 2024-01-21 14:18:15 +09:00
Shinsuke Sugaya
dfb42791dc #2796 Added JUnit tests 2024-01-20 20:12:39 +09:00
Shinsuke Sugaya
b133ef5ca8 #2796 Added JUnit tests 2024-01-20 20:06:26 +09:00
Shinsuke Sugaya
bf848c608e fix #2798 Enhance IndexingHelper with additional JUnit tests 2024-01-15 22:25:50 +09:00
Shinsuke Sugaya
938f4a4db2 fix #2798 Enhance IndexingHelper with additional JUnit tests 2024-01-15 22:25:26 +09:00
Shinsuke Sugaya
296368a9fc fix #2797 Enhanced CrawlingConfigHelper with improved parameter naming and added extensive JUnit tests for robust testing 2024-01-11 11:40:16 +09:00
Shinsuke Sugaya
b68736b95e fix #2797 Enhanced CrawlingConfigHelper with improved parameter naming and added extensive JUnit tests for robust testing 2024-01-11 11:39:34 +09:00
Shinsuke Sugaya
ed73caf359 fix #2796 Added JUnit tests for SystemHelper methods, ensuring enhanced reliability and coverage 2024-01-09 22:21:50 +09:00
Shinsuke Sugaya
849fa39215 fix #2796 Added JUnit tests for SystemHelper methods, ensuring enhanced reliability and coverage 2024-01-09 22:20:40 +09:00
Shinsuke Sugaya
491e5a02c1 fix #2795 Updated user-agent version handling in crawler to use dynamic versioning based on Fess version 2024-01-07 22:53:47 +09:00
Shinsuke Sugaya
b7041afb27 fix #2795 Updated user-agent version handling in crawler to use dynamic versioning based on Fess version 2024-01-07 22:53:22 +09:00
Shinsuke Sugaya
ab89d042f7 fix #2794 Updated exception handling to catch generic exceptions, improving stability when crawl settings are deleted 2024-01-06 21:16:20 +09:00
Shinsuke Sugaya
1b226042b9 fix #2794 Updated exception handling to catch generic exceptions, improving stability when crawl settings are deleted 2024-01-06 21:15:43 +09:00
Shinsuke Sugaya
7129edae93 #2793 add test.command.args 2024-01-01 18:01:58 +09:00
Shinsuke Sugaya
4d7e4da36b #2793 add test.command.args 2024-01-01 18:01:28 +09:00
Shinsuke Sugaya
dedcfbff25 fix #2793 Integrated Jacoco for improved test coverage analysis 2024-01-01 12:36:43 +09:00
Shinsuke Sugaya
9faf65a974 fix #2793 Integrated Jacoco for improved test coverage analysis 2024-01-01 12:35:31 +09:00
Shinsuke Sugaya
becc83e9f2 fix #2792 Enhanced CPU load management and thread waiting logic for better system stability 2023-12-29 15:49:58 +09:00
Shinsuke Sugaya
501509d98e fix #2792 Enhanced CPU load management and thread waiting logic for better system stability 2023-12-29 15:49:28 +09:00
Shinsuke Sugaya
129418d44c fix #2791 Updated byte display in log messages for detailed size representation with decimal precision 2023-12-29 14:43:51 +09:00
Shinsuke Sugaya
52187946f7 fix #2791 Updated byte display in log messages for detailed size representation with decimal precision 2023-12-29 14:42:58 +09:00
Shinsuke Sugaya
c1f8467d66 fix #2790 Enhanced exception logging to warning level in action classes 2023-12-24 14:37:36 +09:00
Shinsuke Sugaya
94452297d6 fix #2790 Enhanced exception logging to warning level in action classes 2023-12-24 14:31:18 +09:00
Shinsuke Sugaya
bedf2934b1 fix #2789 bump up to java 21 2023-12-23 19:43:27 +09:00
Shinsuke Sugaya
90d6af1385 fix #2788 bump up to tomcat 10.1 2023-12-23 15:18:48 +09:00
Hoang Trung Hieu
642d96a1a6
Search by DocID instead of ID when deleting old documents (#2787)
The method IndexingHelper#deleteOldDocuments() is responsible for removing
old search entries, and it seems that it can find these old entries correctly
(the docIdList correctly contains old entries).

But the deleteByQuery() call seems to be searching the wrong column (with the
default settings, it is searching by "_id" column instead of "doc_id").

This patch changes the QueryBuilder (used by deleteByQuery) from querying
by "_id" column to "doc_id" instead.
2023-12-16 08:09:57 +09:00
Shinsuke Sugaya
613c418631 fix #2786 Optimized Content-Disposition handling: use 'filename*' only for non-ASCII names. 2023-12-01 21:11:39 +09:00
Shinsuke Sugaya
39bf5f1943 fix #2785 Removed BOM from stopwords.txt files for multiple languages in Fess indices 2023-11-27 21:59:36 +09:00
Shinsuke Sugaya
e35c04d8c6 fix #2784 Added functionality to set Content-Disposition to inline based on MIME types configuration 2023-11-19 11:22:47 +09:00
Shinsuke Sugaya
5bbf18084c update repository id for oss.sonatype.org 2023-11-18 06:17:00 +09:00
Shinsuke Sugaya
0f2ef0ce07 fix #2783 Add snapshot repository to pom.xml and streamline GitHub Actions workflows 2023-11-18 05:59:30 +09:00
Shinsuke Sugaya
6d0530a778 fix #2778 Implement phrase query handling for single-word terms enclosed in quotes 2023-11-02 10:07:13 +09:00
Shinsuke Sugaya
79cd2a60bd replace with fess-14.12 branch 2023-10-31 22:12:32 +09:00
Shinsuke Sugaya
0e923eeb53 fess-parent 14.12.0-SNAPSHOT 2023-10-29 10:35:26 +09:00
Shinsuke Sugaya
2bc92694bc fix #2776 Tweak exception handling in PluginHelper for better clarity. 2023-10-25 21:28:44 +09:00
Shinsuke Sugaya
2d07323b8c update doc 2023-10-21 13:07:59 +09:00
Shinsuke Sugaya
96c3bf0c12 [maven-release-plugin] prepare for next development iteration 2023-10-19 12:41:07 +00:00
Shinsuke Sugaya
7ab6fd4771 [maven-release-plugin] prepare release fess-14.11.0 2023-10-19 12:41:01 +00:00
Shinsuke Sugaya
8a36e4aef3 fess-script-groovy 14.11.0 2023-10-19 17:05:01 +09:00
Shinsuke Sugaya
eec6740eba fix #2775 upgrade tasks for 14.11 2023-10-19 16:34:43 +09:00
Shinsuke Sugaya
8ecf5055d3 [maven-release-plugin] prepare for next development iteration 2023-10-19 07:02:38 +00:00
Shinsuke Sugaya
e35c9f68de [maven-release-plugin] prepare release fess-14.11.0 2023-10-19 07:02:33 +00:00
Shinsuke Sugaya
f5cc59c6d8 fess-parent 14.11.0 2023-10-19 13:49:04 +09:00
Shinsuke Sugaya
618dcb1041 opensearch 2.11.0 2023-10-19 08:19:17 +09:00
Shinsuke Sugaya
2a473626cd fix #2774 Refactor variable name and update log message 2023-10-17 20:20:46 +09:00
Shinsuke Sugaya
9ff28a173d fix #2772 Refine thumbnail creation failure logs 2023-10-12 16:19:53 +09:00
Shinsuke Sugaya
1d0dc43f00 fix #2771 Suppress debug log in ThumbnailManager to active generating state only. 2023-10-12 08:34:16 +09:00
Shinsuke Sugaya
49cb0dd09c fix #2770 Updated CommandGenerator to set command timeout properties 2023-10-12 08:23:32 +09:00
Shinsuke Sugaya
49ed6fa161 fix #2769 add fess-thumbnail 2023-10-08 22:19:18 +09:00
Shinsuke Sugaya
a917f66f1b code cleanup 2023-10-04 21:34:08 +09:00
Shinsuke Sugaya
6d89b3447c exclude opensearch-scripting-painless-spi 2023-09-28 17:40:11 +09:00
Shinsuke Sugaya
e121850ff4 opensearch 2.10.0 2023-09-28 13:41:36 +09:00
Shinsuke Sugaya
798d0f74f4 fess-parent 14.11.0-SNAPSHOT 2023-09-20 22:27:57 +09:00
Shinsuke Sugaya
d03624d195 [maven-release-plugin] prepare for next development iteration 2023-09-17 07:50:33 +00:00
Shinsuke Sugaya
acc6c04a46 [maven-release-plugin] prepare release fess-14.10.1 2023-09-17 07:50:28 +00:00
Shinsuke Sugaya
284d4a2347 fix #2768 set request/response on searcher 2023-09-07 17:11:26 +09:00
Shinsuke Sugaya
58f51f8679 #2767 add searcher 2023-09-05 21:49:07 +09:00
Shinsuke Sugaya
95577ce58a fix #2767 add searcher 2023-09-05 21:27:59 +09:00
Shinsuke Sugaya
87318c70be fix #2766 add user role 2023-08-17 11:42:07 +09:00
Shinsuke Sugaya
d066276598 add debug log 2023-08-17 11:13:25 +09:00
Shinsuke Sugaya
bc2e44e33d fix #2765 replace with lang_eu 2023-08-15 20:50:35 +09:00
Shinsuke Sugaya
62664ac1e1 code cleanup 2023-08-12 09:18:38 +09:00
Shinsuke Sugaya
3bbed94797 fix #2764 replace with acl/posix file attributes 2023-08-09 18:24:16 +09:00
Shinsuke Sugaya
ef8b98cd83 fix #2763 improve recursive handling 2023-08-08 22:01:58 +09:00
Shinsuke Sugaya
a637b7574d update doc 2023-08-06 21:22:34 +09:00
Shinsuke Sugaya
dc26e476e9 [maven-release-plugin] prepare for next development iteration 2023-08-06 01:52:47 +00:00
Shinsuke Sugaya
19d290324d [maven-release-plugin] prepare release fess-14.10.0 2023-08-06 01:52:42 +00:00
Shinsuke Sugaya
d3a3b3d925 fess-parent 14.10.0 2023-08-05 20:36:22 +09:00
Shinsuke Sugaya
a73b5e0f22 fix #2762 upgrade tasks for 14.10 2023-08-05 15:25:52 +09:00
Shinsuke Sugaya
f13e89af3a add source:jar and javadoc:jar 2023-08-03 15:58:42 +09:00
Shinsuke Sugaya
4a1a9a4320 sync up with opensearch 2.9 2023-07-27 11:07:47 +09:00
Shinsuke Sugaya
81e294324f fix #2760 add aad.use.ds 2023-07-23 17:54:40 +09:00
Shinsuke Sugaya
49f7cd03d8 fix #2759 create config parameters 2023-07-22 11:27:54 +09:00
Shinsuke Sugaya
dea1cb29cd fix #2758 support urls containing # 2023-07-16 05:59:09 +09:00
Shinsuke Sugaya
06acb81618 fess-parent 14.10.0-SNAPSHOT 2023-07-14 21:43:57 +09:00
1703 changed files with 181864 additions and 175444 deletions

View file

@ -1,97 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches:
- master
- "*.x"
pull_request:
branches:
- master
- "*.x"
schedule:
- cron: '36 4 * * 2'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['java', 'javascript']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
#- name: Autobuild
# uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Checkout fess-parent
uses: actions/checkout@v2
with:
repository: codelibs/fess-parent
path: fess-parent
- name: Install fess-parent
run: |
cd fess-parent
mvn install
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

96
.github/workflows/codeql.yml vendored Normal file
View file

@ -0,0 +1,96 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
schedule:
- cron: '38 6 * * 1'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: java-kotlin
build-mode: none # This mode only analyzes Java. Set this to 'autobuild' or 'manual' to analyze Kotlin too.
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View file

@ -12,38 +12,29 @@ on:
branches:
- master
- "*.x"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
runs-on: macos-14
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
- uses: actions/cache@v1
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Checkout fess-parent
uses: actions/checkout@v2
with:
repository: codelibs/fess-parent
path: fess-parent
- name: Install fess-parent
run: |
cd fess-parent
mvn install
- name: Download Plugins with Maven
run: mvn -B antrun:run --file pom.xml
- name: Build with Maven
run: mvn -B package --file pom.xml
run: mvn -B source:jar javadoc:jar package --file pom.xml
- name: Run Fess
run: bash src/test/resources/before_script.sh
- name: Run Integration Test

3
.gitignore vendored
View file

@ -6,7 +6,8 @@
/src/main/webapp/WEB-INF/classes/
/src/main/webapp/WEB-INF/lib/
/src/main/webapp/WEB-INF/site/
/src/main/webapp/WEB-INF/plugin/
/src/main/webapp/WEB-INF/plugin/*
!/src/main/webapp/WEB-INF/plugin/.keep
/src/main/webapp/WEB-INF/env/crawler/lib/
/src/main/webapp/WEB-INF/env/suggest/lib/
/src/main/webapp/WEB-INF/env/thumbnail/lib/

View file

@ -1,173 +0,0 @@
Fess Enterprise Search Server [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Fess+is+very+powerful+and+easily+deployable+Enterprise+Search+Server.&url=https://github.com/codelibs/fess)
====
[![Java CI avec Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## Overview
Fess est un serveur de moteur de recherche très puissant et facile à déployer en entreprise.
Vous pouvez rapidement l'installer et l'exécuter sur toute plateforme qui propose l'environnement Java Runtime. Fess est distribué sous [License Apache 2.0](LICENSE).
Fess est basé sur [OpenSearch](https://github.com/opensearch-project/OpenSearch)/[Elasticsearch](https://github.com/elastic/elasticsearch), mais il _ne_ requiert _PAS_ connaissance ou expérience avec les solutions OpenSearch et Elasticsearch. Fess fourni une interface d'administration simple pour configurer le système via votre navigateur.
Fess comprend aussi un Crawler, qui peut explorer les documents d'un [serveur Web](https://fess.codelibs.org/14.6/admin/webconfig-guide.html), un [système de fichiers](https://fess.codelibs.org/14.6/admin/fileconfig-guide.html), ou un [Stockage de données](https://fess.codelibs.org/14.6/admin/dataconfig-guide.html) (tel qu'une base de donnée ou des CSV). Plusieurs formats de fichiers sont supportés tels que (mais pas uniquement): Microsoft Office, PDF, et zip.
*[FEss Site Search](https://github.com/codelibs/fess-site-search)* est une alternative libre à [Google Site Search](https://enterprise.google.com/search/products/gss.html). Pour plus de détails, jetez un oeil à [FSS JS Generator documentation](https://fss-generator.codelibs.org/docs/manual).
## Website
[fess.codelibs.org](https://fess.codelibs.org/)
## Incidents/Questions
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## Pour démarrer
Il y a 2 façons d'essayer Fess. La première est de télécharger et l'installer vous-même. La seconde étant d'utiliser [Docker](https://www.docker.com/products/docker-engine).
### Télécharger, installer, lancer
La dernière version de Fess est maintenant disponible et peut être téléchargée sur la [page des releases](https://github.com/codelibs/fess/releases "download"). 3 formats vous sont proposés : deb, rpm, zip.
Les commandes suivantes montre comment utiliser la version zip:
$ unzip fess-14.6.x.zip
$ cd fess-14.6.x
$ ./bin/fess
Pour plus de détails, consultez le [guide d'installation](https://fess.codelibs.org/14.6/install/index.html).
### Docker
Nous fournissions des images docker sur [ghcr.io](https://github.com/orgs/codelibs/packages).
Nous proposons aussi un fichier Docker Compose (YAML) dans [ce repository](https://github.com/codelibs/docker-fess/tree/master/compose).
### Interfaces Web
- Interface de recherche : http://localhost:8080/
![Interface de recherche](https://fess.codelibs.org/_images/fess_search_result1.png)
- Interface d'administration : http://localhost:8080/admin/ (identifiant et mot de passe à l'installation : admin/admin)
![Interface d'administration](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
Vous pouvez définir les cibles à indexer (Web, Fichiers, stockage de données) dans les pages de configuration de l'exploration de l'interface d'administration, et lancer manuellement l'exploration sur la [page de planification](https://fess.codelibs.org/14.6/admin/scheduler-guide.html).
## Migration depuis un autre moteur de recherche
Détaillé sur la page [MIGRATION.md](MIGRATION.md).
## Stockages de données
Actuellement, Fess supporte l'exploration des [emplacements de stockage et APIs](https://fess.codelibs.org/14.6/admin/dataconfig-guide.html) suivantes:
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## Thèmes
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## Ingest
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## Script
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Localisation
### Japonnaise
- [Website](https://fess.codelibs.org/ja/)
### Coréenne
- [Forum](https://github.com/nocode2k/fess-kr-forum)
## Information de Développement
### Récuperer le code Source
1. Cloner le dépôt Fess:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. Importer le dépot cloné comme projet [Maven](https://maven.apache.org/) dans [Eclipse](https://www.eclipse.org/eclipseide/) ou un autre IDE.
### Mettre en place les plugins OpenSearch
Exécuter antrun:run pour récupérer les plugins dans le répertoire des plugins :
$ mvn antrun:run
### Éxecuter Fess
Exécuter ou debugger org.codelibs.fess.FessBoot dans votre IDE, et aller sur http://localhost:8080/
### Construire le Package
Éxecuter le `package` et ensuite livrer le fichier créé dans target/releases.
$ mvn package
$ mvn rpm:rpm # .rpm package
$ mvn jdeb:jdeb # .deb package
### Générer le code Source
$ mvn dbflute:download # (one time command)
$ mvn dbflute:freegen
$ mvn license:format
### Test d'integration
Lancer le serveur Fess et éxécuter la commande suivante :
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
Pour exécuter un seul cas de test case, vous pouvez utiliser la commande suivante :
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### Traduire dans d'autres (votre) langue
Fess est internationalisé.
Si vous voulez les messages et labels dans votre langue, vous pouvez dupliquer et renommer en suivant le format fess\_\*\_[lang].properties et en traduire le contenu.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
Pour l'analyseur de recherche et indexation, si [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contient lang\_[lang] pour votre langue, veuillez modifier l'analyseur pour votre langue. Pour plus d'information à propos des Analyzers, veuillez consulter la [documentaion d'Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html).
Nous acceuillons avec plaisir les pull request pour votre langue.
## Powered By
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): Conteneur DI
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Framework Web
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): Planificateur de tâches
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Explorateur Web
* [OpenSearch](https://opensearch.org/ "OpenSearch"): Moteur de recherche
* [Elasticsearch](https://github.com/elastic/elasticsearch "Elasticsearch"): Moteur de recherche

View file

@ -1,5 +1,4 @@
Fess Enterprise Search Server [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Fess+is+very+powerful+and+easily+deployable+Enterprise+Search+Server.&url=https://github.com/codelibs/fess)
====
# Fess: Enterprise Search Server
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
@ -8,8 +7,8 @@ Fess Enterprise Search Server [![Tweet](https://img.shields.io/twitter/url/http/
Fess is a very powerful and easily deployable Enterprise Search Server. You can quickly install and run Fess on any platform where you can run the Java Runtime Environment. Fess is provided under the [Apache License 2.0](LICENSE).
Fess is based on [OpenSearch](https://github.com/opensearch-project/OpenSearch)/[Elasticsearch](https://github.com/elastic/elasticsearch), but knowledge/experience about OpenSearch/Elasticsearch is _not_ required. Fess provides an easy to use Administration GUI to configure the system via your browser.
Fess also contains a Crawler, which can crawl documents on a [web server](https://fess.codelibs.org/14.9/admin/webconfig-guide.html), [file system](https://fess.codelibs.org/14.9/admin/fileconfig-guide.html), or [Data Store](https://fess.codelibs.org/14.9/admin/dataconfig-guide.html) (such as a CSV or database). Many file formats are supported including (but not limited to): Microsoft Office, PDF, and zip.
Fess is based on [OpenSearch](https://github.com/opensearch-project/OpenSearch), but knowledge/experience about OpenSearch is _not_ required. Fess provides an easy to use Administration GUI to configure the system via your browser.
Fess also contains a Crawler, which can crawl documents on a [web server](https://fess.codelibs.org/14.18/admin/webconfig-guide.html), [file system](https://fess.codelibs.org/14.18/admin/fileconfig-guide.html), or [Data Store](https://fess.codelibs.org/14.18/admin/dataconfig-guide.html) (such as a CSV or database). Many file formats are supported including (but not limited to): Microsoft Office, PDF, and zip.
*[Fess Site Search](https://github.com/codelibs/fess-site-search)* is a free alternative to [Google Site Search](https://enterprise.google.com/search/products/gss.html). For more details, see the [FSS JS Generator documentation](https://fss-generator.codelibs.org/docs/manual).
@ -27,15 +26,15 @@ There are 2 ways to try Fess. The first is to download and install yourself. The
### Download and Install/Run
Fess 14.9 is now available and can be downloaded on the [Releases page](https://github.com/codelibs/fess/releases "download"). Downloads come in 3 flavors: deb, rpm, zip.
Fess 14.18 is now available and can be downloaded on the [Releases page](https://github.com/codelibs/fess/releases "download"). Downloads come in 3 flavors: deb, rpm, zip.
The following commands show how to use the zip download:
$ unzip fess-14.9.x.zip
$ cd fess-14.9.x
$ unzip fess-14.18.x.zip
$ cd fess-14.18.x
$ ./bin/fess
For more details, see the [Installation Guide](https://fess.codelibs.org/14.9/install/index.html).
For more details, see the [Installation Guide](https://fess.codelibs.org/14.18/install/index.html).
### Docker
@ -51,7 +50,7 @@ We provide Docker images on [ghcr.io](https://github.com/orgs/codelibs/packages)
![Admin UI](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
You can register crawling targets in the Admin UI on the (Web, File, Data Store) crawler configuration pages, and then start the Crawler manually on the [Scheduler page](https://fess.codelibs.org/14.9/admin/scheduler-guide.html).
You can register crawling targets in the Admin UI on the (Web, File, Data Store) crawler configuration pages, and then start the Crawler manually on the [Scheduler page](https://fess.codelibs.org/14.18/admin/scheduler-guide.html).
## Migration from another search provider
@ -59,7 +58,7 @@ Please see [MIGRATION.md](MIGRATION.md).
## Data Store
Currently, Fess supports crawling the following [storage locations and APIs](https://fess.codelibs.org/14.9/admin/dataconfig-guide.html):
Currently, Fess supports crawling the following [storage locations and APIs](https://fess.codelibs.org/14.18/admin/dataconfig-guide.html):
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
@ -92,16 +91,6 @@ Currently, Fess supports crawling the following [storage locations and APIs](htt
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Localization
### Japanese
- [Website](https://fess.codelibs.org/ja/)
### Korean
- [Forum](https://github.com/nocode2k/fess-kr-forum)
## Development Information
### Get Source Code
@ -157,10 +146,20 @@ If you want to add labels/messages for your language, please translate propertie
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
For search/index analyzer, if [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contains lang\_[lang] for your language, please modify the analyzer for your language. For more details about Analyzers, see the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html).
For search/index analyzer, if [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contains lang\_[lang] for your language, please modify the analyzer for your language. For more details about Analyzers, see the [OpenSearch documentation](https://opensearch.org/docs/latest/analyzers/search-analyzers/).
We welcome pull requests for your language.
### Translations
- [日本語 (Japanese)](docs/ja/README.md)
- [简体中文 (Simplified Chinese)](docs/zh-CN/README.md)
- [Español (Spanish)](docs/es/README.md)
- [Português (Brazilian Portuguese)](docs/pt-BR/README.md)
- [Français (French)](docs/fr/README.md)
- [Deutsch (German)](docs/de/README.md)
- [한국어 (Korean)](docs/ko/README.md)
## Powered By
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): DI Container
@ -168,4 +167,3 @@ We welcome pull requests for your language.
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): Job Scheduler
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Web Crawler
* [OpenSearch](https://opensearch.org/ "OpenSearch"): Search Engine
* [Elasticsearch](https://github.com/elastic/elasticsearch "Elasticsearch"): Search Engine

View file

@ -2,7 +2,7 @@
<project name="dbflute" basedir=".">
<property name="mydbflute.dir" value="${basedir}/mydbflute" />
<property name="target.dir" value="${basedir}/target" />
<property name="branch.name" value="fess-14.0" />
<property name="branch.name" value="fess-14.17" />
<property name="mydbflute.url" value="https://github.com/lastaflute/lastaflute-example-waterfront/archive/${branch.name}.zip" />
<target name="mydbflute.check">

View file

@ -1,6 +1,6 @@
map:{
# base package of generated classes
; basePackage = org.codelibs.fess.es
; basePackage = org.codelibs.fess.opensearch
# base path to JSON resource, URL or relative path
; basePath = ../src/main/config/es

View file

@ -16,21 +16,19 @@
<mkdir dir="${target.dir}" />
<delete dir="${webinf.dir}/lib" />
<mkdir dir="${webinf.dir}/lib" />
<delete dir="${webinf.dir}/plugin" />
<mkdir dir="${webinf.dir}/plugin" />
<delete dir="${crawler.dir}/lib" />
<mkdir dir="${crawler.dir}/lib" />
<delete dir="${suggest.dir}/lib" />
<mkdir dir="${suggest.dir}/lib" />
<delete dir="${thumbnail.dir}/lib" />
<mkdir dir="${thumbnail.dir}/lib" />
<!-- javax.annotation-api -->
<!-- annotation-api -->
<antcall target="install.env.jar">
<param name="repo.url" value="${maven.release.repo.url}" />
<param name="jar.groupId" value="javax/annotation" />
<param name="jar.artifactId" value="javax.annotation-api" />
<param name="jar.version" value="1.3.2" />
<param name="file.version" value="1.3.2" />
<param name="jar.groupId" value="jakarta/annotation" />
<param name="jar.artifactId" value="jakarta.annotation-api" />
<param name="jar.version" value="2.1.1" />
<param name="file.version" value="2.1.1" />
</antcall>
<!-- kopf -->
<get dest="${target.dir}/kopf.zip">
@ -43,14 +41,11 @@
</patternset>
<cutdirsmapper dirs="2" />
</unzip>
<!-- fess-script-groovy -->
<antcall target="install.plugin.jar">
<param name="repo.url" value="${maven.release.repo.url}" />
<param name="jar.groupId" value="org/codelibs/fess" />
<param name="jar.artifactId" value="fess-script-groovy" />
<param name="jar.version" value="14.9.0" />
<param name="file.version" value="14.9.0" />
</antcall>
<delete>
<fileset dir="${webinf.dir}/plugin">
<include name="**/*.jar" />
</fileset>
</delete>
</target>
<target name="install.env.jar">
@ -64,12 +59,4 @@
<copy file="${target.dir}/${jar.artifactId}-${file.version}.jar"
todir="${thumbnail.dir}/lib"/>
</target>
<target name="install.plugin.jar">
<get dest="${target.dir}">
<url url="${repo.url}/${jar.groupId}/${jar.artifactId}/${jar.version}/${jar.artifactId}-${file.version}.jar" />
</get>
<copy file="${target.dir}/${jar.artifactId}-${file.version}.jar"
todir="${webinf.dir}/plugin"/>
</target>
</project>

159
docs/de/README.md Normal file
View file

@ -0,0 +1,159 @@
# Fess: Enterprise-Suchserver
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## Übersicht
Fess ist ein sehr leistungsstarker und einfach zu implementierender Enterprise-Suchserver. Sie können Fess schnell auf jeder Plattform installieren und ausführen, auf der die Java-Laufzeitumgebung (JRE) läuft. Fess wird unter der [Apache-Lizenz 2.0](LICENSE) bereitgestellt.
Fess basiert auf [OpenSearch](https://github.com/opensearch-project/OpenSearch), aber es ist kein Wissen oder Erfahrung mit OpenSearch erforderlich. Fess bietet eine einfach zu bedienende Administrations-GUI zur Konfiguration des Systems über Ihren Browser.
Fess enthält auch einen Crawler, der Dokumente auf einem [Webserver](https://fess.codelibs.org/14.17/admin/webconfig-guide.html), [Dateisystem](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html) oder [Datenspeicher](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html) (wie CSV oder Datenbank) durchsuchen kann. Viele Dateiformate werden unterstützt, einschließlich (aber nicht beschränkt auf): Microsoft Office, PDF und zip.
*[Fess Site Search](https://github.com/codelibs/fess-site-search)* ist eine kostenlose Alternative zur [Google Site Search](https://enterprise.google.com/search/products/gss.html). Weitere Details finden Sie in der [Dokumentation des FSS JS Generators](https://fss-generator.codelibs.org/docs/manual).
## Website
[fess.codelibs.org](https://fess.codelibs.org/)
## Probleme/Fragen
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## Erste Schritte
Es gibt zwei Möglichkeiten, Fess auszuprobieren. Die erste besteht darin, es selbst herunterzuladen und zu installieren. Die zweite besteht darin, [Docker](https://www.docker.com/products/docker-engine) zu verwenden.
### Herunterladen und Installieren/Ausführen
Fess 14.17 ist jetzt verfügbar und kann auf der [Release-Seite](https://github.com/codelibs/fess/releases "download") heruntergeladen werden. Downloads gibt es in drei Formaten: deb, rpm, zip.
Die folgenden Befehle zeigen, wie der Zip-Download verwendet wird:
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
Weitere Informationen finden Sie im [Installationshandbuch](https://fess.codelibs.org/14.17/install/index.html).
### Docker
Wir bieten Docker-Images auf [ghcr.io](https://github.com/orgs/codelibs/packages) an. Wir stellen auch eine Docker Compose (YAML)-Datei in [diesem Repository](https://github.com/codelibs/docker-fess/tree/master/compose) bereit.
### Browser-Benutzeroberfläche
- Suchoberfläche: http://localhost:8080/
![Suchoberfläche](https://fess.codelibs.org/_images/fess_search_result1.png)
- Administrationsoberfläche: http://localhost:8080/admin/ (Standard-Benutzername/Passwort ist admin/admin)
![Administrationsoberfläche](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
Sie können in der Administrationsoberfläche (Web, Datei, Datenspeicher) Crawling-Ziele in den Crawler-Konfigurationsseiten registrieren und den Crawler manuell auf der [Scheduler-Seite](https://fess.codelibs.org/14.17/admin/scheduler-guide.html) starten.
## Migration von einem anderen Suchanbieter
Bitte lesen Sie [MIGRATION.md](MIGRATION.md).
## Datenspeicher
Derzeit unterstützt Fess das Crawlen der folgenden [Speicherorte und APIs](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html):
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Datenbank](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## Themen
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## Ingest
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## Skript
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Entwicklungsinformationen
### Quellcode abrufen
1. Klonen Sie das Fess-Repository:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. Importieren Sie das geklonte Repository als ein [Maven](https://maven.apache.org/) Projekt in [Eclipse](https://www.eclipse.org/eclipseide/) oder einer anderen IDE.
### Einrichten von OpenSearch-Plugins
Führen Sie antrun:run aus, um Plugins in das Plugins-Verzeichnis herunterzuladen:
$ mvn antrun:run
### Fess ausführen
Führen Sie `org.codelibs.fess.FessBoot` in Ihrer IDE aus oder debuggen Sie es und greifen Sie dann auf http://localhost:8080/ zu.
### Paket erstellen
Führen Sie das `package`-Ziel aus, und dann wird die Release-Datei im Verzeichnis target/releases erstellt.
$ mvn package
$ mvn rpm:rpm # .rpm-Paket
$ mvn jdeb:jdeb # .deb-Paket
### Quellcode generieren
$ mvn dbflute:download # (einmaliger Befehl)
$ mvn dbflute:freegen
$ mvn license:format
### Integrationstests
Starten Sie den Fess-Server und führen Sie den folgenden Befehl aus:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
Um einen einzelnen Testfall auszuführen, können Sie verwenden:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### In Ihre Sprache übersetzen
Fess ist eine internationalisierte Software.
Wenn Sie Labels/Nachrichten für Ihre Sprache hinzufügen möchten, übersetzen Sie bitte die Eigenschaftendatei und benennen Sie sie in fess\_\*\_[lang].properties um.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
Für den Such-/Index-Analyser: Wenn [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) lang\_[lang] für Ihre Sprache enthält, passen Sie bitte den Analyser für Ihre Sprache an. Weitere Informationen zu Analysatoren finden Sie in der [OpenSearch-Dokumentation](https://opensearch.org/docs/latest/analyzers/search-analyzers/).
Wir begrüßen Pull-Requests für Ihre Sprache.
## Unterstützt von
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): DI-Container
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Web-Framework
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): Job-Scheduler
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Web-Crawler
* [OpenSearch](https://opensearch.org/ "OpenSearch"): Suchmaschine

159
docs/es/README.md Normal file
View file

@ -0,0 +1,159 @@
# Fess: Servidor de Búsqueda Empresarial
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## Resumen
Fess es un servidor de búsqueda empresarial muy potente y fácil de desplegar. Puedes instalar y ejecutar Fess rápidamente en cualquier plataforma que sea capaz de ejecutar el entorno de ejecución de Java (Java Runtime Environment). Fess se distribuye bajo la [Licencia Apache 2.0](LICENSE).
Fess está basado en [OpenSearch](https://github.com/opensearch-project/OpenSearch), pero no se requiere conocimiento o experiencia en OpenSearch. Fess proporciona una GUI de administración fácil de usar para configurar el sistema a través de tu navegador.
Fess también incluye un rastreador (crawler), que puede rastrear documentos en un [servidor web](https://fess.codelibs.org/14.17/admin/webconfig-guide.html), [sistema de archivos](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html), o [almacenamiento de datos](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html) (como un archivo CSV o base de datos). Se admiten muchos formatos de archivos, incluidos (pero no limitados a): Microsoft Office, PDF y zip.
*[Fess Site Search](https://github.com/codelibs/fess-site-search)* es una alternativa gratuita a [Google Site Search](https://enterprise.google.com/search/products/gss.html). Para más detalles, consulta la [documentación de FSS JS Generator](https://fss-generator.codelibs.org/docs/manual).
## Sitio web
[fess.codelibs.org](https://fess.codelibs.org/)
## Problemas/Preguntas
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## Cómo Empezar
Hay dos maneras de probar Fess. La primera es descargar e instalarlo tú mismo. La segunda es usar [Docker](https://www.docker.com/products/docker-engine).
### Descargar e Instalar/Ejecutar
Fess 14.17 ya está disponible y se puede descargar en la [página de lanzamientos](https://github.com/codelibs/fess/releases "download"). Las descargas están disponibles en 3 formatos: deb, rpm y zip.
Los siguientes comandos muestran cómo usar la descarga en formato zip:
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
Para más detalles, consulta la [Guía de Instalación](https://fess.codelibs.org/14.17/install/index.html).
### Docker
Proporcionamos imágenes de Docker en [ghcr.io](https://github.com/orgs/codelibs/packages). También proporcionamos un archivo Docker Compose (YAML) en [este repositorio](https://github.com/codelibs/docker-fess/tree/master/compose).
### Interfaz de Usuario en el Navegador
- Interfaz de búsqueda: http://localhost:8080/
![Interfaz de Búsqueda](https://fess.codelibs.org/_images/fess_search_result1.png)
- Interfaz de administración: http://localhost:8080/admin/ (el nombre de usuario/contraseña por defecto es admin/admin)
![Interfaz de Administración](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
Puedes registrar los objetivos de rastreo en la interfaz de administración en las páginas de configuración del rastreador (Web, Archivo, Almacenamiento de Datos), y luego iniciar el rastreador manualmente en la [página del Programador](https://fess.codelibs.org/14.17/admin/scheduler-guide.html).
## Migración desde otro proveedor de búsqueda
Consulta [MIGRATION.md](MIGRATION.md).
## Almacenamiento de Datos
Actualmente, Fess admite el rastreo de las siguientes [ubicaciones de almacenamiento y APIs](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html):
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## Tema
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## Ingesta
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## Script
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Información de Desarrollo
### Obtener el Código Fuente
1. Clona el repositorio de Fess:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. Importa el repositorio clonado como un proyecto [Maven](https://maven.apache.org/) en [Eclipse](https://www.eclipse.org/eclipseide/) u otro IDE.
### Configuración de Plugins para OpenSearch
Ejecuta antrun:run para descargar los plugins en el directorio de plugins:
$ mvn antrun:run
### Ejecutar Fess
Ejecuta o depura `org.codelibs.fess.FessBoot` en tu IDE, y luego accede a http://localhost:8080/
### Construir el Paquete
Ejecuta el objetivo `package` y luego se creará el archivo de lanzamiento en target/releases.
$ mvn package
$ mvn rpm:rpm # Paquete .rpm
$ mvn jdeb:jdeb # Paquete .deb
### Generar Código Fuente
$ mvn dbflute:download # (comando ejecutado una sola vez)
$ mvn dbflute:freegen
$ mvn license:format
### Pruebas de Integración
Inicia el servidor Fess y ejecuta el siguiente comando:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
Para ejecutar un único caso de prueba, puedes usar:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### Traducir a Tu Idioma
Fess es un software internacionalizado.
Si deseas agregar etiquetas/mensajes para tu idioma, por favor traduce el archivo de propiedades y renómbralo a fess\_\*\_[lang].properties.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
Para el analizador de búsqueda/índices, si [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contiene lang\_[lang] para tu idioma, por favor modifica el analizador para tu idioma. Para más detalles sobre los analizadores, consulta la [documentación de OpenSearch](https://opensearch.org/docs/latest/analyzers/search-analyzers/).
Damos la bienvenida a pull requests para tu idioma.
## Impulsado por
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): Contenedor DI
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Framework Web
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): Programador de Tareas
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Rastreador Web
* [OpenSearch](https://opensearch.org/ "OpenSearch"): Motor de Búsqueda

169
docs/fr/README.md Normal file
View file

@ -0,0 +1,169 @@
# Fess : Serveur de recherche pour entreprises
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## Vue d'ensemble
Fess est un serveur de recherche très puissant et facilement déployable pour les entreprises. Vous pouvez rapidement installer et exécuter Fess sur toute plateforme où vous pouvez exécuter l'environnement d'exécution Java. Fess est fourni sous la licence [Apache License 2.0](LICENSE).
Fess est basé sur [OpenSearch](https://github.com/opensearch-project/OpenSearch), mais aucune connaissance ni expérience d'OpenSearch n'est _nécessaire_. Fess fournit une interface d'administration facile à utiliser pour configurer le système via votre navigateur.
Fess comprend également un Crawler, capable d'explorer les documents sur un [serveur web](https://fess.codelibs.org/14.17/admin/webconfig-guide.html), un [système de fichiers](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html), ou un [Data Store](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html) (comme un fichier CSV ou une base de données). De nombreux formats de fichiers sont pris en charge, y compris (mais sans s'y limiter) : Microsoft Office, PDF, et zip.
*[Fess Site Search](https://github.com/codelibs/fess-site-search)* est une alternative gratuite à [Google Site Search](https://enterprise.google.com/search/products/gss.html). Pour plus de détails, consultez la [documentation FSS JS Generator](https://fss-generator.codelibs.org/docs/manual).
## Site Web
[fess.codelibs.org](https://fess.codelibs.org/)
## Problèmes/Questions
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## Démarrage rapide
Il existe 2 manières d'essayer Fess. La première est de le télécharger et l'installer vous-même. La seconde est d'utiliser [Docker](https://www.docker.com/products/docker-engine).
### Télécharger et Installer/Exécuter
Fess 14.17 est désormais disponible et peut être téléchargé sur la [page de Releases](https://github.com/codelibs/fess/releases "download"). Les téléchargements sont disponibles en 3 formats : deb, rpm, zip.
Les commandes suivantes montrent comment utiliser le téléchargement zip :
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
Pour plus de détails, consultez le [guide d'installation](https://fess.codelibs.org/14.17/install/index.html).
### Docker
Nous fournissons des images Docker sur [ghcr.io](https://github.com/orgs/codelibs/packages). Nous fournissons également un fichier Docker Compose (YAML) dans [ce dépôt](https://github.com/codelibs/docker-fess/tree/master/compose).
### Interface Web
- Interface de recherche : http://localhost:8080/
![Search UI](https://fess.codelibs.org/_images/fess_search_result1.png)
- Interface d'administration : http://localhost:8080/admin/ (nom d'utilisateur/mot de passe par défaut : admin/admin)
![Admin UI](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
Vous pouvez enregistrer des cibles à explorer dans l'interface d'administration sur les pages de configuration des crawlers (Web, Fichiers, Data Store), puis démarrer manuellement le Crawler sur la [page du Planificateur](https://fess.codelibs.org/14.17/admin/scheduler-guide.html).
## Migration depuis un autre fournisseur de recherche
Veuillez consulter [MIGRATION.md](MIGRATION.md).
## Data Store
Actuellement, Fess prend en charge le parcours des [emplacements de stockage et API](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html) suivants :
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Base de données](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## Thèmes
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classique](https://github.com/codelibs/fess-theme-classic)
## Ingest
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## Scripts
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Localisation
### Japonais
- [Site Web](https://fess.codelibs.org/ja/)
### Coréen
- [Forum](https://github.com/nocode2k/fess-kr-forum)
## Informations de Développement
### Récupérer le Code Source
1. Clonez le dépôt Fess :
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. Importez le dépôt cloné en tant que projet [Maven](https://maven.apache.org/) sur [Eclipse](https://www.eclipse.org/eclipseide/) ou un autre IDE.
### Configuration pour les Plugins OpenSearch
Exécutez antrun:run pour télécharger les plugins dans le répertoire plugins :
$ mvn antrun:run
### Exécuter Fess
Exécutez ou déboguez org.codelibs.fess.FessBoot dans votre IDE, puis accédez à http://localhost:8080/
### Créer un Package
Exécutez la commande `package` et le fichier de release sera créé dans target/releases.
$ mvn package
$ mvn rpm:rpm # package .rpm
$ mvn jdeb:jdeb # package .deb
### Générer le Code Source
$ mvn dbflute:download # (commande unique)
$ mvn dbflute:freegen
$ mvn license:format
### Tests d'Intégration
Lancez le serveur Fess et exécutez la commande suivante :
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
Pour exécuter un seul cas de test, vous pouvez utiliser :
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### Traduire dans Votre Langue
Fess est un logiciel internationalisé.
Si vous souhaitez ajouter des libellés/messages pour votre langue, veuillez traduire le fichier de propriétés et le renommer en fess\_\*\_[lang].properties.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
Pour l'analyseur de recherche/index, si [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contient lang\_[lang] pour votre langue, veuillez modifier l'analyseur pour votre langue. Pour plus de détails sur les analyseurs, consultez la [documentation OpenSearch](https://opensearch.org/docs/latest/analyzers/search-analyzers/).
Nous accueillons les pull requests pour votre langue.
## Alimenté par
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di") : Conteneur DI
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute") : Framework Web
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job") : Planificateur de tâches
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler") : Crawler Web
* [OpenSearch](https://opensearch.org/ "OpenSearch") : Moteur de recherche

158
docs/ja/README.md Normal file
View file

@ -0,0 +1,158 @@
# Fess: エンタープライズ検索サーバー
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## 概要
Fessは非常に強力で、簡単に導入できるエンタープライズ検索サーバーです。FessはJavaランタイム環境が動作する任意のプラットフォーム上で簡単にインストールして実行できます。Fessは[Apache License 2.0](LICENSE)の下で提供されています。
Fessは[OpenSearch](https://github.com/opensearch-project/OpenSearch)をベースにしていますが、OpenSearchに関する知識や経験は**不要**です。Fessは、ブラウザを介してシステムを簡単に設定できる管理者向けのGUIを提供しています。Fessにはクローラも含まれており、[Webサーバー](https://fess.codelibs.org/14.17/admin/webconfig-guide.html)、[ファイルシステム](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html)、または[データストア](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)CSVやデータベースなどのドキュメントをクロールできます。Microsoft Office、PDF、zipなど、多くのファイル形式に対応しています。
*[Fess Site Search](https://github.com/codelibs/fess-site-search)*は、[Google Site Search](https://enterprise.google.com/search/products/gss.html)の無料代替です。詳細については、[FSS JS Generatorのドキュメント](https://fss-generator.codelibs.org/docs/manual)を参照してください。
## 公式サイト
[fess.codelibs.org](https://fess.codelibs.org/)
## 問題や質問
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## はじめに
Fessを試す方法は2つあります。1つは自分でダウンロードしてインストールする方法、もう1つは[Docker](https://www.docker.com/products/docker-engine)を使用する方法です。
### ダウンロードおよびインストール/実行
Fess 14.17が利用可能で、[リリースページ](https://github.com/codelibs/fess/releases "download")からダウンロードできます。ダウンロードには、deb、rpm、zipの3つの形式があります。
以下のコマンドは、zipファイルを使用する例です
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
詳細については、[インストールガイド](https://fess.codelibs.org/14.17/install/index.html)を参照してください。
### Docker
[ghcr.io](https://github.com/orgs/codelibs/packages)にDockerイメージを提供しています。また、このリポジトリにはDocker ComposeYAMLファイルも用意されています。[こちらのリポジトリ](https://github.com/codelibs/docker-fess/tree/master/compose)で確認できます。
### ブラウザUI
- 検索UI: http://localhost:8080/
![Search UI](https://fess.codelibs.org/_images/fess_search_result1.png)
- 管理者UI: http://localhost:8080/admin/ (デフォルトのユーザー名/パスワードはadmin/adminです
![Admin UI](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
管理者UIでは、Web、ファイル、データストアクローラの設定ページでクロール対象を登録し、[スケジューラページ](https://fess.codelibs.org/14.17/admin/scheduler-guide.html)から手動でクローラを開始できます。
## 他の検索プロバイダーからの移行
[MIGRATION.md](MIGRATION.md)を参照してください。
## データストア
現在、Fessは以下の[ストレージロケーションとAPI](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)のクロールをサポートしています:
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## テーマ
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## Ingest
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## スクリプト
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## 開発情報
### ソースコードの取得
1. Fessのリポジトリをクローンします
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. クローンしたリポジトリを、[Maven](https://maven.apache.org/)プロジェクトとして[Eclipse](https://www.eclipse.org/eclipseide/)や他のIDEにインポートします。
### OpenSearchプラグインのセットアップ
antrun:runを実行して、プラグインをpluginsディレクトリにダウンロードします
$ mvn antrun:run
### Fessの実行
IDE上で`org.codelibs.fess.FessBoot`を実行またはデバッグし、http://localhost:8080/ にアクセスします。
### パッケージのビルド
`package`ゴールを実行すると、releaseファイルがtarget/releasesディレクトリに作成されます。
$ mvn package
$ mvn rpm:rpm # .rpmパッケージ
$ mvn jdeb:jdeb # .debパッケージ
### ソースコードの生成
$ mvn dbflute:download # (一度だけ実行)
$ mvn dbflute:freegen
$ mvn license:format
### 統合テスト
Fessサーバーを起動し、以下のコマンドを実行します
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
単一のテストケースを実行するには、以下のコマンドを使用できます:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### あなたの言語への翻訳
Fessは国際化対応ソフトウェアです。
ラベルやメッセージをあなたの言語に追加したい場合、プロパティファイルを翻訳してから`fess\_\*\_[lang].properties`という名前に変更してください。
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
検索/インデックスアナライザーの設定については、[doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json)に言語別の`lang\_[lang]`が含まれているか確認し、その言語に合わせてアナライザーを修正してください。アナライザーに関する詳細は、[OpenSearchのドキュメント](https://opensearch.org/docs/latest/analyzers/search-analyzers/)を参照してください。
私たちは、あなたの言語でのプルリクエストを歓迎します。
## Powered By
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): DIコンテナ
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Webフレームワーク
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): ジョブスケジューラ
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Webクローラ
* [OpenSearch](https://opensearch.org/ "OpenSearch"): 検索エンジン

158
docs/ko/README.md Normal file
View file

@ -0,0 +1,158 @@
# Fess: 엔터프라이즈 검색 서버
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## 개요
Fess는 매우 강력하고 쉽게 배포 가능한 엔터프라이즈 검색 서버입니다. 자바 런타임 환경(Java Runtime Environment)을 실행할 수 있는 모든 플랫폼에서 Fess를 빠르게 설치하고 실행할 수 있습니다. Fess는 [Apache License 2.0](LICENSE)에 따라 제공됩니다.
Fess는 [OpenSearch](https://github.com/opensearch-project/OpenSearch)를 기반으로 하지만, OpenSearch에 대한 지식이나 경험은 필요하지 않습니다. Fess는 브라우저를 통해 시스템을 구성할 수 있는 사용하기 쉬운 관리 GUI를 제공합니다. 또한 Fess는 [웹 서버](https://fess.codelibs.org/14.17/admin/webconfig-guide.html), [파일 시스템](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html), 또는 [데이터 저장소](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)에서 문서를 크롤링할 수 있는 크롤러도 포함하고 있습니다(CSV 또는 데이터베이스와 같은). Microsoft Office, PDF, zip을 포함한 다양한 파일 형식을 지원합니다.
*[Fess 사이트 검색](https://github.com/codelibs/fess-site-search)*은 [Google 사이트 검색](https://enterprise.google.com/search/products/gss.html)의 무료 대안입니다. 자세한 내용은 [FSS JS 생성기 문서](https://fss-generator.codelibs.org/docs/manual)를 참조하십시오.
## 웹사이트
[fess.codelibs.org](https://fess.codelibs.org/)
## 문제/질문
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## 시작하기
Fess를 사용해보는 방법은 두 가지가 있습니다. 첫 번째는 직접 다운로드하여 설치하는 방법이며, 두 번째는 [Docker](https://www.docker.com/products/docker-engine)를 사용하는 방법입니다.
### 다운로드 및 설치/실행
Fess 14.17이 현재 사용 가능하며, [릴리스 페이지](https://github.com/codelibs/fess/releases "download")에서 다운로드할 수 있습니다. 다운로드는 deb, rpm, zip의 세 가지 형식으로 제공됩니다.
다음 명령은 zip 다운로드 사용 방법을 보여줍니다:
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
자세한 내용은 [설치 가이드](https://fess.codelibs.org/14.17/install/index.html)를 참조하십시오.
### Docker
우리는 [ghcr.io](https://github.com/orgs/codelibs/packages)에서 Docker 이미지를 제공합니다. 또한 [이 리포지토리](https://github.com/codelibs/docker-fess/tree/master/compose)에 Docker Compose (YAML) 파일도 제공합니다.
### 브라우저 UI
- 검색 UI: http://localhost:8080/
![검색 UI](https://fess.codelibs.org/_images/fess_search_result1.png)
- 관리자 UI: http://localhost:8080/admin/ (기본 사용자 이름/비밀번호는 admin/admin입니다)
![관리자 UI](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
관리자 UI에서는 (웹, 파일, 데이터 저장소) 크롤러 구성 페이지에서 크롤링 대상을 등록한 다음, [스케줄러 페이지](https://fess.codelibs.org/14.17/admin/scheduler-guide.html)에서 크롤러를 수동으로 시작할 수 있습니다.
## 다른 검색 제공자에서의 마이그레이션
[MIGRATION.md](MIGRATION.md)를 참조하십시오.
## 데이터 저장소
현재 Fess는 다음 [저장소 위치 및 API](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)를 크롤링할 수 있습니다:
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## 테마
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## 인게스트
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## 스크립트
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## 개발 정보
### 소스 코드 얻기
1. Fess 리포지토리를 클론합니다:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. 클론한 리포지토리를 [Maven](https://maven.apache.org/) 프로젝트로 [Eclipse](https://www.eclipse.org/eclipseide/) 또는 다른 IDE에서 가져옵니다.
### OpenSearch 플러그인 설정
antrun:run을 실행하여 플러그인을 플러그인 디렉토리에 다운로드합니다:
$ mvn antrun:run
### Fess 실행
IDE에서 `org.codelibs.fess.FessBoot`을 실행하거나 디버그하고 http://localhost:8080/에 접속합니다.
### 패키지 빌드
`package` 목표를 실행하면 릴리스 파일이 target/releases 디렉토리에 생성됩니다.
$ mvn package
$ mvn rpm:rpm # .rpm 패키지
$ mvn jdeb:jdeb # .deb 패키지
### 소스 코드 생성
$ mvn dbflute:download # (한 번만 실행)
$ mvn dbflute:freegen
$ mvn license:format
### 통합 테스트
Fess 서버를 시작하고 다음 명령을 실행합니다:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
단일 테스트 케이스를 실행하려면 다음을 사용할 수 있습니다:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### 언어 번역
Fess는 국제화된 소프트웨어입니다.
귀하의 언어로 라벨/메시지를 추가하려면 속성 파일을 번역한 후 fess\_\*\_[lang].properties로 이름을 바꾸십시오.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
검색/인덱스 분석기와 관련해서, [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json)이 귀하의 언어에 대한 lang\_[lang]을 포함하는 경우, 해당 언어에 맞게 분석기를 수정하십시오. 분석기에 대한 자세한 내용은 [OpenSearch 문서](https://opensearch.org/docs/latest/analyzers/search-analyzers/)를 참조하십시오.
귀하의 언어로 된 풀 리퀘스트를 환영합니다.
## 제공된 기술
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): DI 컨테이너
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): 웹 프레임워크
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): 작업 스케줄러
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): 웹 크롤러
* [OpenSearch](https://opensearch.org/ "OpenSearch"): 검색 엔진

159
docs/pt-BR/README.md Normal file
View file

@ -0,0 +1,159 @@
# Fess: Servidor de Busca Empresarial
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## Visão Geral
Fess é um servidor de busca empresarial muito poderoso e fácil de implantar. Você pode instalar e executar o Fess rapidamente em qualquer plataforma que suporte o Java Runtime Environment. O Fess é fornecido sob a [Licença Apache 2.0](LICENSE).
O Fess é baseado no [OpenSearch](https://github.com/opensearch-project/OpenSearch), mas não é necessário ter conhecimento ou experiência com OpenSearch. O Fess fornece uma interface de administração fácil de usar, que permite configurar o sistema através do seu navegador.
O Fess também inclui um rastreador (Crawler), que pode rastrear documentos em um [servidor web](https://fess.codelibs.org/14.17/admin/webconfig-guide.html), [sistema de arquivos](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html) ou [Data Store](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html) (como CSV ou banco de dados). Muitos formatos de arquivos são suportados, incluindo (mas não limitado a): Microsoft Office, PDF e zip.
*[Fess Site Search](https://github.com/codelibs/fess-site-search)* é uma alternativa gratuita ao [Google Site Search](https://enterprise.google.com/search/products/gss.html). Para mais detalhes, veja a [documentação do FSS JS Generator](https://fss-generator.codelibs.org/docs/manual).
## Site
[fess.codelibs.org](https://fess.codelibs.org/)
## Problemas/Perguntas
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## Como Começar
Existem duas maneiras de testar o Fess. A primeira é baixar e instalar você mesmo. A segunda é usar [Docker](https://www.docker.com/products/docker-engine).
### Baixar e Instalar/Executar
O Fess 14.17 já está disponível e pode ser baixado na [página de lançamentos](https://github.com/codelibs/fess/releases "download"). As opções de download incluem: deb, rpm, zip.
Os comandos a seguir mostram como usar o download em formato zip:
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
Para mais detalhes, veja o [Guia de Instalação](https://fess.codelibs.org/14.17/install/index.html).
### Docker
Nós fornecemos imagens Docker em [ghcr.io](https://github.com/orgs/codelibs/packages). Também fornecemos um arquivo Docker Compose (YAML) neste [repositório](https://github.com/codelibs/docker-fess/tree/master/compose).
### Interface do Navegador
- Interface de Busca: http://localhost:8080/
![Interface de Busca](https://fess.codelibs.org/_images/fess_search_result1.png)
- Interface de Administração: http://localhost:8080/admin/ (o nome de usuário/senha padrão é admin/admin)
![Interface de Administração](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
Você pode registrar alvos de rastreamento na interface de administração nas páginas de configuração do rastreador (Web, Arquivo, Data Store), e iniciar manualmente o rastreador na [página do Agendador](https://fess.codelibs.org/14.17/admin/scheduler-guide.html).
## Migração de Outro Provedor de Busca
Consulte [MIGRATION.md](MIGRATION.md).
## Data Store
Atualmente, o Fess suporta o rastreamento dos seguintes [locais de armazenamento e APIs](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html):
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## Temas
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## Ingestão
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## Scripts
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## Informações de Desenvolvimento
### Obter Código Fonte
1. Clone o repositório do Fess:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. Importe o repositório clonado como um projeto [Maven](https://maven.apache.org/) no [Eclipse](https://www.eclipse.org/eclipseide/) ou em outro IDE.
### Configuração de Plugins para OpenSearch
Execute antrun:run para baixar os plugins no diretório de plugins:
$ mvn antrun:run
### Executar o Fess
Execute ou depure `org.codelibs.fess.FessBoot` no seu IDE, e depois acesse http://localhost:8080/
### Criar Pacote
Execute o objetivo `package` e o arquivo de lançamento será criado em target/releases.
$ mvn package
$ mvn rpm:rpm # pacote .rpm
$ mvn jdeb:jdeb # pacote .deb
### Gerar Código Fonte
$ mvn dbflute:download # (comando executado uma vez)
$ mvn dbflute:freegen
$ mvn license:format
### Testes de Integração
Inicie o servidor Fess e execute o seguinte comando:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
Para executar um único caso de teste, você pode usar:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### Traduzir para o Seu Idioma
Fess é um software internacionalizado.
Se você quiser adicionar rótulos/mensagens para o seu idioma, por favor, traduza o arquivo de propriedades e renomeie-o para fess\_\*\_[lang].properties.
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
Para o analisador de busca/índice, se [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) contiver lang\_[lang] para o seu idioma, por favor, modifique o analisador para o seu idioma. Para mais detalhes sobre Analisadores, veja a [documentação do OpenSearch](https://opensearch.org/docs/latest/analyzers/search-analyzers/).
Aceitamos pull requests para o seu idioma.
## Desenvolvido por
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): Contêiner DI
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Framework Web
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): Agendador de Tarefas
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Rastreador Web
* [OpenSearch](https://opensearch.org/ "OpenSearch"): Motor de Busca

158
docs/zh-CN/README.md Normal file
View file

@ -0,0 +1,158 @@
# Fess: 企业搜索服务器
[![Java CI with Maven](https://github.com/codelibs/fess/actions/workflows/maven.yml/badge.svg)](https://github.com/codelibs/fess/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.codelibs.fess/fess)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/gitbucket/gitbucket/blob/master/LICENSE)
## 概述
Fess 是一个功能强大且易于部署的企业搜索服务器。您可以在任何可以运行 Java 运行时环境的平台上快速安装和运行 Fess。Fess 根据 [Apache 许可证 2.0](LICENSE) 提供。
Fess 基于 [OpenSearch](https://github.com/opensearch-project/OpenSearch),但不需要 OpenSearch 的知识或经验。Fess 提供了一个易于使用的管理 GUI您可以通过浏览器配置系统。Fess 还包含一个爬虫,能够抓取 [Web 服务器](https://fess.codelibs.org/14.17/admin/webconfig-guide.html)、[文件系统](https://fess.codelibs.org/14.17/admin/fileconfig-guide.html)或[数据存储](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)(如 CSV 或数据库中的文档。Fess 支持多种文件格式包括但不限于Microsoft Office、PDF 和 zip。
*[Fess 网站搜索](https://github.com/codelibs/fess-site-search)* 是 [Google 网站搜索](https://enterprise.google.com/search/products/gss.html)的免费替代品。更多详情请参阅 [FSS JS 生成器文档](https://fss-generator.codelibs.org/docs/manual)。
## 官网
[fess.codelibs.org](https://fess.codelibs.org/)
## 问题/疑问
[discuss.codelibs.org](https://discuss.codelibs.org/c/FessEN/)
## 入门
您可以通过两种方式尝试 Fess。第一种是自行下载并安装第二种是使用 [Docker](https://www.docker.com/products/docker-engine)。
### 下载并安装/运行
Fess 14.17 现已发布,可在 [发布页面](https://github.com/codelibs/fess/releases "download") 下载。提供三种下载形式deb、rpm、zip。
以下命令展示了如何使用 zip 下载:
$ unzip fess-14.17.x.zip
$ cd fess-14.17.x
$ ./bin/fess
更多详情请参阅 [安装指南](https://fess.codelibs.org/14.17/install/index.html)。
### Docker
我们在 [ghcr.io](https://github.com/orgs/codelibs/packages) 上提供了 Docker 镜像。我们还在[此存储库](https://github.com/codelibs/docker-fess/tree/master/compose)中提供了 Docker Compose (YAML) 文件。
### 浏览器 UI
- 搜索 UI: http://localhost:8080/
![Search UI](https://fess.codelibs.org/_images/fess_search_result1.png)
- 管理 UI: http://localhost:8080/admin/ (默认用户名/密码为 admin/admin
![Admin UI](https://fess.codelibs.org/_images/fess_admin_dashboard.png)
您可以在管理 UI 的 (Web、文件、数据存储) 爬虫配置页面中注册爬取目标,然后在 [调度器页面](https://fess.codelibs.org/14.17/admin/scheduler-guide.html)手动启动爬虫。
## 从其他搜索提供商迁移
请参阅 [MIGRATION.md](MIGRATION.md)。
## 数据存储
当前Fess 支持抓取以下[存储位置和 API](https://fess.codelibs.org/14.17/admin/dataconfig-guide.html)
- [Confluence/Jira](https://github.com/codelibs/fess-ds-atlassian)
- [Box](https://github.com/codelibs/fess-ds-box)
- [CSV](https://github.com/codelibs/fess-ds-csv)
- [Database](https://github.com/codelibs/fess-ds-db)
- [Dropbox](https://github.com/codelibs/fess-ds-dropbox)
- [Elasticsearch](https://github.com/codelibs/fess-ds-elasticsearch)
- [Git](https://github.com/codelibs/fess-ds-git)
- [Gitbucket](https://github.com/codelibs/fess-ds-gitbucket)
- [G Suite](https://github.com/codelibs/fess-ds-gsuite)
- [JSON](https://github.com/codelibs/fess-ds-json)
- [Office 365](https://github.com/codelibs/fess-ds-office365)
- [S3](https://github.com/codelibs/fess-ds-s3)
- [Salesforce](https://github.com/codelibs/fess-ds-salesforce)
- [SharePoint](https://github.com/codelibs/fess-ds-sharepoint)
- [Slack](https://github.com/codelibs/fess-ds-slack)
## 主题
- [Simple](https://github.com/codelibs/fess-theme-simple)
- [Classic](https://github.com/codelibs/fess-theme-classic)
## 数据处理
- [Logger](https://github.com/codelibs/fess-ingest-logger)
- [NDJSON](https://github.com/codelibs/fess-ingest-ndjson)
## 脚本
- [Groovy](https://github.com/codelibs/fess-script-groovy)
- [OGNL](https://github.com/codelibs/fess-script-ognl)
## 开发信息
### 获取源代码
1. 克隆 Fess 的存储库:
```
$ cd ~/workspace
$ git clone https://github.com/codelibs/fess.git
```
2. 将克隆的存储库作为 [Maven](https://maven.apache.org/) 项目导入 [Eclipse](https://www.eclipse.org/eclipseide/) 或其他 IDE。
### 设置 OpenSearch 插件
运行 antrun:run 将插件下载到插件目录:
$ mvn antrun:run
### 运行 Fess
在您的 IDE 上运行或调试 `org.codelibs.fess.FessBoot`,然后访问 http://localhost:8080/
### 构建包
运行 `package` 目标,然后在 target/releases 中创建发布文件。
$ mvn package
$ mvn rpm:rpm # .rpm 包
$ mvn jdeb:jdeb # .deb 包
### 生成源代码
$ mvn dbflute:download # (仅运行一次)
$ mvn dbflute:freegen
$ mvn license:format
### 集成测试
启动 Fess 服务器并运行以下命令:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"
要运行单个测试用例,您可以使用:
$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests
### 翻译为您的语言
Fess 是国际化软件。
如果您想为您的语言添加标签/消息,请翻译属性文件,然后将其重命名为 fess\_\*\_[lang].properties。
* [fess_label_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_label_en.properties)
* [fess_message_en.properties](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_message_en.properties)
对于搜索/索引分析器,如果 [doc.json](https://github.com/codelibs/fess/blob/master/src/main/resources/fess_indices/fess/doc.json) 包含您语言的 lang\_[lang],请为您的语言修改分析器。有关分析器的更多详细信息,请参阅 [OpenSearch 文档](https://opensearch.org/docs/latest/analyzers/search-analyzers/)。
我们欢迎您的语言的 Pull Request。
## 技术支持
* [Lasta Di](https://github.com/lastaflute/lasta-di "Lasta Di"): DI 容器
* [LastaFlute](https://github.com/lastaflute/lastaflute "LastaFlute"): Web 框架
* [Lasta Job](https://github.com/lastaflute/lasta-job "Lasta Job"): 任务调度器
* [Fess Crawler](https://github.com/codelibs/fess-crawler "Fess Crawler"): Web 爬虫
* [OpenSearch](https://opensearch.org/ "OpenSearch"): 搜索引擎

View file

@ -6,7 +6,7 @@
<!-- Maven Repository -->
<property name="maven.snapshot.repo.url" value="https://maven.codelibs.org/" />
<property name="maven.release.repo.url" value="https://maven.codelibs.org/" />
<property name="opensearch.version" value="2.8.0" />
<property name="opensearch.version" value="2.18.0" />
<target name="install.modules">
<mkdir dir="${target.dir}" />

View file

@ -17,8 +17,8 @@
<param name="plugin.groupId" value="org/codelibs/opensearch" />
<param name="plugin.name.prefix" value="opensearch-" />
<param name="plugin.name" value="analysis-extension" />
<param name="plugin.version" value="2.8.0" />
<param name="plugin.zip.version" value="2.8.0" />
<param name="plugin.version" value="2.18.0" />
<param name="plugin.zip.version" value="2.18.0" />
</antcall>
<!-- analysis-fess -->
<antcall target="install.plugin">
@ -26,8 +26,8 @@
<param name="plugin.groupId" value="org/codelibs/opensearch" />
<param name="plugin.name.prefix" value="opensearch-" />
<param name="plugin.name" value="analysis-fess" />
<param name="plugin.version" value="2.8.0" />
<param name="plugin.zip.version" value="2.8.0" />
<param name="plugin.version" value="2.18.0" />
<param name="plugin.zip.version" value="2.18.0" />
</antcall>
<!-- configsync -->
<antcall target="install.plugin">
@ -35,8 +35,8 @@
<param name="plugin.groupId" value="org/codelibs/opensearch" />
<param name="plugin.name.prefix" value="opensearch-" />
<param name="plugin.name" value="configsync" />
<param name="plugin.version" value="2.8.0" />
<param name="plugin.zip.version" value="2.8.0" />
<param name="plugin.version" value="2.18.0" />
<param name="plugin.zip.version" value="2.18.0" />
</antcall>
<!-- minhash -->
<antcall target="install.plugin">
@ -44,8 +44,8 @@
<param name="plugin.groupId" value="org/codelibs/opensearch" />
<param name="plugin.name.prefix" value="opensearch-" />
<param name="plugin.name" value="minhash" />
<param name="plugin.version" value="2.8.0" />
<param name="plugin.zip.version" value="2.8.0" />
<param name="plugin.version" value="2.18.0" />
<param name="plugin.zip.version" value="2.18.0" />
</antcall>
<antcall target="remove.jars" />

106
pom.xml
View file

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>fess</artifactId>
<version>14.9.2-SNAPSHOT</version>
<version>15.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Fess</name>
<description>Fess is Full tExt Search System.</description>
@ -30,7 +30,7 @@
<parent>
<groupId>org.codelibs.fess</groupId>
<artifactId>fess-parent</artifactId>
<version>14.9.1</version>
<version>15.0.0-SNAPSHOT</version>
<relativePath />
</parent>
<properties>
@ -67,6 +67,7 @@
<id>integrationTests</id>
<properties>
<test.include.path>**/*Tests.java</test.include.path>
<test.command.args />
</properties>
</profile>
</profiles>
@ -108,6 +109,7 @@
<directory>${project.build.directory}/${project.build.finalName}-compress</directory>
</resource>
</webResources>
<packagingExcludes>**/*.min.map,**/*.min.css.map,**/*.min.js.map</packagingExcludes>
</configuration>
</plugin>
<plugin>
@ -135,10 +137,14 @@
<includes>
<include>${test.include.path}</include>
</includes>
<argLine>${test.command.args}</argLine>
<argLine>@{argLine} ${test.command.args}</argLine>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
@ -900,6 +906,18 @@
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>snapshots.oss.sonatype.org</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!-- lastaflute -->
<dependency>
@ -927,16 +945,31 @@
<!-- J2EE -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
<!-- contains taglibs.standard -->
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>${jakarta.jstl.api.version}</version>
<!-- <scope>provided</scope> -->
<exclusions>
<exclusion>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>${javax.transaction.api.version}</version>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<!-- contains taglibs.standard -->
<version>${jakarta.jstl.version}</version>
</dependency>
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
<version>${jakarta.transaction.api.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
@ -1007,6 +1040,12 @@
<groupId>org.opensearch</groupId>
<artifactId>opensearch</artifactId>
<version>${opensearch.version}</version>
<exclusions>
<exclusion>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codelibs.opensearch</groupId>
@ -1089,6 +1128,10 @@
<groupId>org.opensearch.plugin</groupId>
<artifactId>analysis-common</artifactId>
</exclusion>
<exclusion>
<groupId>org.opensearch.plugin</groupId>
<artifactId>opensearch-scripting-painless-spi</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
@ -1292,7 +1335,7 @@
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>com.onelogin</groupId>
<groupId>org.codelibs</groupId>
<artifactId>java-saml</artifactId>
<version>${java.saml.version}</version>
<exclusions>
@ -1307,6 +1350,16 @@
<artifactId>bcmail-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>${kryo.version}</version>
</dependency>
<!-- suggest library -->
<dependency>
@ -1317,8 +1370,8 @@
<!-- fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<groupId>org.apache.commons</groupId>
<artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
@ -1393,7 +1446,7 @@
</dependency>
<dependency>
<groupId>org.codelibs.fess</groupId>
<artifactId>fess-crawler-es</artifactId>
<artifactId>fess-crawler-opensearch</artifactId>
<version>${crawler.version}</version>
</dependency>
<dependency>
@ -1479,6 +1532,13 @@
<scope>provided</scope>
</dependency>
<!-- groovy -->
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy</artifactId>
<version>${groovy.version}</version>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
@ -1513,23 +1573,7 @@
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>4.3.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy</artifactId>
<version>${groovy.version}</version>
<version>5.5.0</version>
<scope>test</scope>
</dependency>
</dependencies>

View file

@ -488,7 +488,7 @@ paths:
- popularword
summary: List popular words
description: Returns available labels
operationId: listLPopularWords
operationId: listPopularWords
parameters:
- name: seed
in: query

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -37,6 +37,8 @@ public class Constants extends CoreLibConstants {
public static final String SCORE = "score";
public static final String SEARCHER = "searcher";
public static final String ON = "on";
public static final String READY = "ready";
@ -51,6 +53,10 @@ public class Constants extends CoreLibConstants {
public static final String STOP = "stop";
public static final String AUTO = "auto";
public static final String NONE = "none";
public static final String ITEM_LABEL = "label";
public static final String ITEM_VALUE = "value";
@ -77,6 +83,12 @@ public class Constants extends CoreLibConstants {
public static final long DEFAULT_CRAWLING_EXECUTION_INTERVAL = 5000L;
public static final String CRAWLING_USER_AGENT_PREFIX = "Mozilla/5.0 (compatible; Fess/";
public static final String CRAWLING_USER_AGENT_SUFFIX = "; +http://fess.codelibs.org/bot.html)";
public static final String DOCUMENT_INDEX_SUFFIX_PATTERN = "yyyyMMddHHmmssSSS";
// fess properties
public static final String USER_INFO_PROPERTY = "user.info";
@ -152,6 +164,8 @@ public class Constants extends CoreLibConstants {
public static final String LTR_WINDOW_SIZE_PROPERTY = "ltr.window.size";
public static final String SSO_TYPE_PROPERTY = "sso.type";
public static final String REQUEST_QUERIES = "fess.Queries";
public static final String HIGHLIGHT_QUERIES = "fess.HighlightQueries";
@ -238,6 +252,8 @@ public class Constants extends CoreLibConstants {
public static final Pattern LUCENE_RANGE_FIELD_RESERVED_PATTERN = Pattern.compile("([!\\(\\){}\\[\\]\"~\\\\:\\p{Zs}]|(&&)|(\\|\\|))");
public static final String DEFAULT_QUERY_OPERATOR = "fess.DefaultQueryOperator";
public static final String SEARCH_LOG_ACCESS_TYPE = "searchLogAccessType";
public static final String SEARCH_LOG_ACCESS_TYPE_JSON = "json";

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -30,6 +30,7 @@ import org.apache.catalina.startup.Tomcat;
import org.apache.tomcat.util.http.CookieProcessorBase;
import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
import org.apache.tomcat.util.net.SSLHostConfig;
import org.apache.tomcat.util.net.SSLHostConfigCertificate;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.tomcat.valve.SuppressErrorReportValve;
import org.codelibs.fess.tomcat.webresources.FessWebResourceRoot;
@ -171,18 +172,22 @@ public class FessBoot extends TomcatBoot {
connector.setProperty("SSLEnabled", "true");
final SSLHostConfig sslHostConfig = new SSLHostConfig();
sslHostConfig.setHostName("_default_");
doSetupServerConfig(logger, props, "certificateKeystoreFile", v -> sslHostConfig.setCertificateKeystoreFile(v));
doSetupServerConfig(logger, props, "certificateKeystorePassword", v -> sslHostConfig.setCertificateKeystorePassword(v));
doSetupServerConfig(logger, props, "certificateKeyAlias", v -> sslHostConfig.setCertificateKeyAlias(v));
final SSLHostConfigCertificate certificate =
new SSLHostConfigCertificate(sslHostConfig, SSLHostConfigCertificate.Type.UNDEFINED);
doSetupServerConfig(logger, props, "certificateKeystoreFile", v -> certificate.setCertificateKeystoreFile(v));
doSetupServerConfig(logger, props, "certificateKeystorePassword", v -> certificate.setCertificateKeystorePassword(v));
doSetupServerConfig(logger, props, "certificateKeyAlias", v -> certificate.setCertificateKeyAlias(v));
doSetupServerConfig(logger, props, "sslProtocol", v -> sslHostConfig.setSslProtocol(v));
doSetupServerConfig(logger, props, "enabledProtocols", v -> sslHostConfig.setEnabledProtocols(v.trim().split(",")));
sslHostConfig.addCertificate(certificate);
connector.addSslHostConfig(sslHostConfig);
}
});
doSetupServerConfig(logger, props, "sameSiteCookies", value -> {
for (final Container container : server.getHost().findChildren()) {
if ((container instanceof final Context context)
&& (context.getCookieProcessor() instanceof final CookieProcessorBase cookieProcessor)) {
if (container instanceof final Context context
&& context.getCookieProcessor() instanceof final CookieProcessorBase cookieProcessor) {
cookieProcessor.setSameSiteCookies(value);
}
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,14 +20,14 @@ import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.codelibs.core.exception.IORuntimeException;
import org.codelibs.fess.Constants;
import org.lastaflute.web.util.LaRequestUtil;
import org.lastaflute.web.util.LaResponseUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public abstract class BaseApiManager implements WebApiManager {
private static final String API_FORMAT_TYPE = "apiFormatType";

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,10 +17,10 @@ package org.codelibs.fess.api;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public interface WebApiManager {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -19,7 +19,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
public class WebApiManagerFactory {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -15,8 +15,8 @@
*/
package org.codelibs.fess.api;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
public class WebApiRequest extends HttpServletRequestWrapper {
protected String servletPath;

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,11 +18,11 @@ package org.codelibs.fess.api;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.commons.io.output.ByteArrayOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponseWrapper;
public class WebApiResponse extends HttpServletResponseWrapper {
public WebApiResponse(final HttpServletResponse response) {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -23,14 +23,6 @@ import java.nio.file.Path;
import java.util.Locale;
import java.util.UUID;
import javax.annotation.PostConstruct;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.connector.ClientAbortException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -49,6 +41,14 @@ import org.codelibs.fess.util.ResourceUtil;
import org.lastaflute.web.servlet.request.RequestManager;
import org.lastaflute.web.servlet.session.SessionManager;
import jakarta.annotation.PostConstruct;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class SearchEngineApiManager extends BaseApiManager {
private static final String ADMIN_SERVER = "/admin/server_";
@ -102,23 +102,20 @@ public class SearchEngineApiManager extends BaseApiManager {
throw new WebApiException(HttpServletResponse.SC_FORBIDDEN, "Invalid session.");
});
} catch (final WebApiException e) {
logger.debug("Failed to access to Web API.", e);
response.sendError(e.getStatusCode(), e.getMessage());
String message;
if (Constants.TRUE.equalsIgnoreCase(ComponentUtil.getFessConfig().getApiJsonResponseExceptionIncluded())) {
logger.warn("Failed to access to Web API.", e);
message = e.getMessage();
} else {
final String errorCode = UUID.randomUUID().toString();
message = "[" + errorCode + "] Failed to access to Web API.";
logger.warn(message, e);
}
response.sendError(e.getStatusCode(), message);
}
}
protected void processRequest(final HttpServletRequest request, final HttpServletResponse response, final String path) {
if (StringUtil.isNotBlank(path)) {
final String lowerPath = path.toLowerCase(Locale.ROOT);
if (lowerPath.endsWith(".html")) {
response.setContentType("text/html;charset=utf-8");
} else if (lowerPath.endsWith(".txt")) {
response.setContentType("text/plain");
} else if (lowerPath.endsWith(".css")) {
response.setContentType("text/css");
}
}
if ("/_plugin".equals(path) || path.startsWith("/_plugin/")) {
processPluginRequest(request, response, path.replaceFirst("^/_plugin", StringUtil.EMPTY));
return;
@ -153,6 +150,12 @@ public class SearchEngineApiManager extends BaseApiManager {
try (ServletOutputStream out = response.getOutputStream(); InputStream in = curlResponse.getContentAsStream()) {
response.setStatus(curlResponse.getHttpStatusCode());
writeHeaders(response);
final String responseContentType = curlResponse.getHeaderValue("Content-Type");
if (StringUtil.isBlank(responseContentType)) {
response.setHeader("Content-Type", "application/json");
} else {
response.setHeader("Content-Type", responseContentType);
}
CopyUtil.copy(in, out);
} catch (final ClientAbortException e) {
logger.debug("Client aborts this request.", e);
@ -166,6 +169,37 @@ public class SearchEngineApiManager extends BaseApiManager {
}
protected void processPluginRequest(final HttpServletRequest request, final HttpServletResponse response, final String path) {
if (StringUtil.isNotBlank(path)) {
final String lowerPath = path.toLowerCase(Locale.ROOT);
if (lowerPath.endsWith(".html")) {
response.setContentType("text/html;charset=utf-8");
} else if (lowerPath.endsWith(".css")) {
response.setContentType("text/css");
} else if (lowerPath.endsWith(".eot")) {
response.setContentType("application/vnd.ms-fontobject");
} else if (lowerPath.endsWith(".ico")) {
response.setContentType("image/vnd.microsoft.icon");
} else if (lowerPath.endsWith(".js")) {
response.setContentType("text/javascript");
} else if (lowerPath.endsWith(".json")) {
response.setContentType("application/json");
} else if (lowerPath.endsWith(".otf")) {
response.setContentType("font/otf");
} else if (lowerPath.endsWith(".svg")) {
response.setContentType("image/svg+xml");
} else if (lowerPath.endsWith(".ttf")) {
response.setContentType("font/ttf");
} else if (lowerPath.endsWith(".txt")) {
response.setContentType("text/plain");
} else if (lowerPath.endsWith(".woff")) {
response.setContentType("font/woff");
} else if (lowerPath.endsWith(".woff2")) {
response.setContentType("font/woff2");
} else if (lowerPath.endsWith("/")) {
response.setContentType("text/html;charset=utf-8");
}
}
Path filePath = ResourceUtil.getSitePath(path.replaceAll("\\.\\.+", StringUtil.EMPTY).replaceAll("/+", "/").split("/"));
if (Files.isDirectory(filePath)) {
filePath = filePath.resolve("index.html");

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -32,12 +32,6 @@ import java.util.Map;
import java.util.UUID;
import java.util.function.Supplier;
import javax.annotation.PostConstruct;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringEscapeUtils;
@ -56,7 +50,6 @@ import org.codelibs.fess.entity.PingResponse;
import org.codelibs.fess.entity.SearchRenderData;
import org.codelibs.fess.entity.SearchRequestParams;
import org.codelibs.fess.entity.SearchRequestParams.SearchRequestType;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.InvalidAccessTokenException;
import org.codelibs.fess.exception.InvalidQueryException;
import org.codelibs.fess.exception.ResultOffsetExceededException;
@ -71,6 +64,7 @@ import org.codelibs.fess.helper.SuggestHelper;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.helper.UserInfoHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.client.SearchEngineClient;
import org.codelibs.fess.suggest.entity.SuggestItem;
import org.codelibs.fess.suggest.request.suggest.SuggestRequestBuilder;
import org.codelibs.fess.suggest.request.suggest.SuggestResponse;
@ -83,6 +77,12 @@ import org.lastaflute.web.util.LaRequestUtil;
import org.lastaflute.web.util.LaResponseUtil;
import org.opensearch.script.Script;
import jakarta.annotation.PostConstruct;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class SearchApiManager extends BaseApiManager {
private static final Logger logger = LogManager.getLogger(SearchApiManager.class);
@ -563,7 +563,7 @@ public class SearchApiManager extends BaseApiManager {
try {
final List<String> popularWordList =
popularWordHelper.getWordList(SearchRequestType.JSON, seed, tags, null, fields, StringUtil.EMPTY_STRINGS);
buf.append("\"record_count\":").append(popularWordList.size()).append(',');
buf.append("\"data\":[");
boolean first1 = true;
for (final String word : popularWordList) {
@ -1247,8 +1247,8 @@ public class SearchApiManager extends BaseApiManager {
buf.append(escapeJson(entry.getKey())).append(':').append(escapeJson(entry.getValue()));
}
buf.append('}');
} else if ((obj instanceof Integer) || (obj instanceof Long) || (obj instanceof Float) || (obj instanceof Double)) {
buf.append((obj));
} else if (obj instanceof Integer || obj instanceof Long || obj instanceof Float || obj instanceof Double) {
buf.append(obj);
} else if (obj instanceof Boolean) {
buf.append(obj.toString());
} else if (obj instanceof Date) {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -15,8 +15,6 @@
*/
package org.codelibs.fess.app.job;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.lang.StringUtil;
@ -24,10 +22,10 @@ import org.codelibs.core.timer.TimeoutManager;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.logic.AccessContextLogic;
import org.codelibs.fess.app.service.ScheduledJobService;
import org.codelibs.fess.es.config.exbhv.JobLogBhv;
import org.codelibs.fess.helper.JobHelper;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.exbhv.JobLogBhv;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.optional.OptionalThing;
import org.lastaflute.core.time.TimeManager;
@ -36,6 +34,8 @@ import org.lastaflute.job.LaJob;
import org.lastaflute.job.LaJobRunner;
import org.lastaflute.job.LaJobScheduler;
import jakarta.annotation.Resource;
public class AllJobScheduler implements LaJobScheduler {
private static final Logger logger = LogManager.getLogger(AllJobScheduler.class);
@ -66,7 +66,7 @@ public class AllJobScheduler implements LaJobScheduler {
@Override
public void schedule(final LaCron cron) {
schedulerTime = System.currentTimeMillis();
schedulerTime = systemHelper.getCurrentTimeAsLong();
scheduledJobService.start(cron);
final String myName = fessConfig.getSchedulerTargetName();
@ -81,7 +81,7 @@ public class AllJobScheduler implements LaJobScheduler {
if (logger.isDebugEnabled()) {
logger.debug("Updating scheduled jobs. time:{}", schedulerTime);
}
final long now = System.currentTimeMillis();
final long now = systemHelper.getCurrentTimeAsLong();
scheduledJobService.getScheduledJobListAfter(schedulerTime).forEach(scheduledJob -> {
if (logger.isDebugEnabled()) {
logger.debug("Updating job schedule:{}", scheduledJob.getName());

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -19,12 +19,12 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.timer.TimeoutTask;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.config.exentity.JobLog;
import org.codelibs.fess.es.config.exentity.ScheduledJob;
import org.codelibs.fess.exception.ScheduledJobException;
import org.codelibs.fess.helper.JobHelper;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.job.JobExecutor;
import org.codelibs.fess.opensearch.config.exentity.JobLog;
import org.codelibs.fess.opensearch.config.exentity.ScheduledJob;
import org.codelibs.fess.util.ComponentUtil;
import org.lastaflute.job.JobManager;
import org.lastaflute.job.LaJob;

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -15,14 +15,14 @@
*/
package org.codelibs.fess.app.logic;
import javax.annotation.Resource;
import org.codelibs.fess.mylasta.action.FessUserBean;
import org.dbflute.hook.AccessContext;
import org.dbflute.optional.OptionalThing;
import org.lastaflute.core.time.TimeManager;
import org.lastaflute.db.dbflute.accesscontext.AccessContextResource;
import jakarta.annotation.Resource;
public class AccessContextLogic {
// ===================================================================================

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -21,23 +21,23 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.AccessTokenPager;
import org.codelibs.fess.es.config.cbean.AccessTokenCB;
import org.codelibs.fess.es.config.exbhv.AccessTokenBhv;
import org.codelibs.fess.es.config.exentity.AccessToken;
import org.codelibs.fess.exception.InvalidAccessTokenException;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.AccessTokenCB;
import org.codelibs.fess.opensearch.config.exbhv.AccessTokenBhv;
import org.codelibs.fess.opensearch.config.exentity.AccessToken;
import org.codelibs.fess.taglib.FessFunctions;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
public class AccessTokenService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -21,19 +21,17 @@ import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.BadWordPager;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.cbean.BadWordCB;
import org.codelibs.fess.es.config.exbhv.BadWordBhv;
import org.codelibs.fess.es.config.exentity.BadWord;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.client.SearchEngineClient;
import org.codelibs.fess.opensearch.config.cbean.BadWordCB;
import org.codelibs.fess.opensearch.config.exbhv.BadWordBhv;
import org.codelibs.fess.opensearch.config.exentity.BadWord;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.bhv.readable.EntityRowHandler;
import org.dbflute.cbean.result.PagingResultBean;
@ -43,6 +41,8 @@ import com.orangesignal.csv.CsvConfig;
import com.orangesignal.csv.CsvReader;
import com.orangesignal.csv.CsvWriter;
import jakarta.annotation.Resource;
public class BadWordService {
private static final String DELETE_PREFIX = "--";

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.BoostDocPager;
import org.codelibs.fess.es.config.cbean.BoostDocumentRuleCB;
import org.codelibs.fess.es.config.exbhv.BoostDocumentRuleBhv;
import org.codelibs.fess.es.config.exentity.BoostDocumentRule;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.BoostDocumentRuleCB;
import org.codelibs.fess.opensearch.config.exbhv.BoostDocumentRuleBhv;
import org.codelibs.fess.opensearch.config.exentity.BoostDocumentRule;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class BoostDocumentRuleService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.CharMappingPager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.mapping.CharMappingItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class CharMappingService {
@Resource
protected DictionaryManager dictionaryManager;
@ -53,7 +53,7 @@ public class CharMappingService {
}
public OptionalEntity<CharMappingFile> getCharMappingFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof CharMappingFile)
return dictionaryManager.getDictionaryFile(dictId).filter(CharMappingFile.class::isInstance)
.map(file -> OptionalEntity.of((CharMappingFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -28,8 +28,6 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.CoreLibConstants;
@ -37,13 +35,13 @@ import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.CrawlingInfoPager;
import org.codelibs.fess.es.config.cbean.CrawlingInfoCB;
import org.codelibs.fess.es.config.exbhv.CrawlingInfoBhv;
import org.codelibs.fess.es.config.exbhv.CrawlingInfoParamBhv;
import org.codelibs.fess.es.config.exentity.CrawlingInfo;
import org.codelibs.fess.es.config.exentity.CrawlingInfoParam;
import org.codelibs.fess.exception.FessSystemException;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.CrawlingInfoCB;
import org.codelibs.fess.opensearch.config.exbhv.CrawlingInfoBhv;
import org.codelibs.fess.opensearch.config.exbhv.CrawlingInfoParamBhv;
import org.codelibs.fess.opensearch.config.exentity.CrawlingInfo;
import org.codelibs.fess.opensearch.config.exentity.CrawlingInfoParam;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.bhv.readable.EntityRowHandler;
import org.dbflute.cbean.result.ListResultBean;
@ -54,6 +52,8 @@ import com.orangesignal.csv.CsvConfig;
import com.orangesignal.csv.CsvReader;
import com.orangesignal.csv.CsvWriter;
import jakarta.annotation.Resource;
public class CrawlingInfoService {
private static final Logger logger = LogManager.getLogger(CrawlingInfoService.class);

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,21 +17,21 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.DataConfigPager;
import org.codelibs.fess.es.config.cbean.DataConfigCB;
import org.codelibs.fess.es.config.exbhv.DataConfigBhv;
import org.codelibs.fess.es.config.exentity.DataConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.DataConfigCB;
import org.codelibs.fess.opensearch.config.exbhv.DataConfigBhv;
import org.codelibs.fess.opensearch.config.exentity.DataConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class DataConfigService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.DuplicateHostPager;
import org.codelibs.fess.es.config.cbean.DuplicateHostCB;
import org.codelibs.fess.es.config.exbhv.DuplicateHostBhv;
import org.codelibs.fess.es.config.exentity.DuplicateHost;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.DuplicateHostCB;
import org.codelibs.fess.opensearch.config.exbhv.DuplicateHostBhv;
import org.codelibs.fess.opensearch.config.exentity.DuplicateHost;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class DuplicateHostService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -25,24 +25,22 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.ElevateWordPager;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.cbean.ElevateWordCB;
import org.codelibs.fess.es.config.exbhv.ElevateWordBhv;
import org.codelibs.fess.es.config.exbhv.ElevateWordToLabelBhv;
import org.codelibs.fess.es.config.exbhv.LabelTypeBhv;
import org.codelibs.fess.es.config.exentity.ElevateWord;
import org.codelibs.fess.es.config.exentity.ElevateWordToLabel;
import org.codelibs.fess.es.config.exentity.LabelType;
import org.codelibs.fess.helper.PermissionHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.client.SearchEngineClient;
import org.codelibs.fess.opensearch.config.cbean.ElevateWordCB;
import org.codelibs.fess.opensearch.config.exbhv.ElevateWordBhv;
import org.codelibs.fess.opensearch.config.exbhv.ElevateWordToLabelBhv;
import org.codelibs.fess.opensearch.config.exbhv.LabelTypeBhv;
import org.codelibs.fess.opensearch.config.exentity.ElevateWord;
import org.codelibs.fess.opensearch.config.exentity.ElevateWordToLabel;
import org.codelibs.fess.opensearch.config.exentity.LabelType;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.bhv.readable.EntityRowHandler;
import org.dbflute.cbean.result.PagingResultBean;
@ -52,6 +50,8 @@ import com.orangesignal.csv.CsvConfig;
import com.orangesignal.csv.CsvReader;
import com.orangesignal.csv.CsvWriter;
import jakarta.annotation.Resource;
public class ElevateWordService {
private static final Logger logger = LogManager.getLogger(ElevateWordService.class);

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,25 +20,25 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.FailureUrlPager;
import org.codelibs.fess.es.config.cbean.FailureUrlCB;
import org.codelibs.fess.es.config.exbhv.FailureUrlBhv;
import org.codelibs.fess.es.config.exentity.CrawlingConfig;
import org.codelibs.fess.es.config.exentity.FailureUrl;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.FailureUrlCB;
import org.codelibs.fess.opensearch.config.exbhv.FailureUrlBhv;
import org.codelibs.fess.opensearch.config.exentity.CrawlingConfig;
import org.codelibs.fess.opensearch.config.exentity.FailureUrl;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class FailureUrlService {
private static final Logger logger = LogManager.getLogger(FailureUrlService.class);
@ -128,9 +128,9 @@ public class FailureUrlService {
});
}
public void store(final CrawlingConfig crawlingConfig, final String errorName, final String url, final Throwable e) {
public FailureUrl store(final CrawlingConfig crawlingConfig, final String errorName, final String url, final Throwable e) {
if (e instanceof ContainerNotAvailableException) {
return;
return null;
}
final FailureUrlBhv bhv = ComponentUtil.getComponent(FailureUrlBhv.class);
@ -160,6 +160,7 @@ public class FailureUrlService {
bhv.insertOrUpdate(failureUrl, op -> {
op.setRefreshPolicy(Constants.TRUE);
});
return failureUrl;
}
private String getStackTrace(final Throwable t) {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,17 +20,17 @@ import java.util.Collections;
import java.util.List;
import java.util.function.BiConsumer;
import javax.annotation.Resource;
import org.codelibs.fess.es.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.es.log.exbhv.UserInfoBhv;
import org.codelibs.fess.es.log.exentity.FavoriteLog;
import org.codelibs.fess.es.log.exentity.UserInfo;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.opensearch.log.exbhv.UserInfoBhv;
import org.codelibs.fess.opensearch.log.exentity.FavoriteLog;
import org.codelibs.fess.opensearch.log.exentity.UserInfo;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.ListResultBean;
import jakarta.annotation.Resource;
public class FavoriteLogService {
@Resource
protected SystemHelper systemHelper;

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.FileAuthPager;
import org.codelibs.fess.es.config.cbean.FileAuthenticationCB;
import org.codelibs.fess.es.config.exbhv.FileAuthenticationBhv;
import org.codelibs.fess.es.config.exentity.FileAuthentication;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.FileAuthenticationCB;
import org.codelibs.fess.opensearch.config.exbhv.FileAuthenticationBhv;
import org.codelibs.fess.opensearch.config.exentity.FileAuthentication;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class FileAuthenticationService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,22 +17,22 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.FileConfigPager;
import org.codelibs.fess.es.config.cbean.FileConfigCB;
import org.codelibs.fess.es.config.exbhv.FileAuthenticationBhv;
import org.codelibs.fess.es.config.exbhv.FileConfigBhv;
import org.codelibs.fess.es.config.exentity.FileConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.FileConfigCB;
import org.codelibs.fess.opensearch.config.exbhv.FileAuthenticationBhv;
import org.codelibs.fess.opensearch.config.exbhv.FileConfigBhv;
import org.codelibs.fess.opensearch.config.exentity.FileConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class FileConfigService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -19,20 +19,20 @@ import static org.codelibs.core.stream.StreamUtil.stream;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.GroupPager;
import org.codelibs.fess.es.user.cbean.GroupCB;
import org.codelibs.fess.es.user.exbhv.GroupBhv;
import org.codelibs.fess.es.user.exbhv.UserBhv;
import org.codelibs.fess.es.user.exentity.Group;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.user.cbean.GroupCB;
import org.codelibs.fess.opensearch.user.exbhv.GroupBhv;
import org.codelibs.fess.opensearch.user.exbhv.UserBhv;
import org.codelibs.fess.opensearch.user.exentity.Group;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class GroupService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.JobLogPager;
import org.codelibs.fess.es.config.cbean.JobLogCB;
import org.codelibs.fess.es.config.exbhv.JobLogBhv;
import org.codelibs.fess.es.config.exentity.JobLog;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.JobLogCB;
import org.codelibs.fess.opensearch.config.exbhv.JobLogBhv;
import org.codelibs.fess.opensearch.config.exentity.JobLog;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class JobLogService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.KeyMatchPager;
import org.codelibs.fess.es.config.cbean.KeyMatchCB;
import org.codelibs.fess.es.config.exbhv.KeyMatchBhv;
import org.codelibs.fess.es.config.exentity.KeyMatch;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.KeyMatchCB;
import org.codelibs.fess.opensearch.config.exbhv.KeyMatchBhv;
import org.codelibs.fess.opensearch.config.exentity.KeyMatch;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class KeyMatchService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.KuromojiPager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.kuromoji.KuromojiItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class KuromojiService {
@Resource
protected DictionaryManager dictionaryManager;
@ -52,7 +52,7 @@ public class KuromojiService {
}
public OptionalEntity<KuromojiFile> getKuromojiFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof KuromojiFile)
return dictionaryManager.getDictionaryFile(dictId).filter(KuromojiFile.class::isInstance)
.map(file -> OptionalEntity.of((KuromojiFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,21 +17,21 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.LabelTypePager;
import org.codelibs.fess.es.config.cbean.LabelTypeCB;
import org.codelibs.fess.es.config.exbhv.LabelTypeBhv;
import org.codelibs.fess.es.config.exentity.LabelType;
import org.codelibs.fess.helper.LabelTypeHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.LabelTypeCB;
import org.codelibs.fess.opensearch.config.exbhv.LabelTypeBhv;
import org.codelibs.fess.opensearch.config.exentity.LabelType;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class LabelTypeService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,20 +18,20 @@ package org.codelibs.fess.app.service;
import java.util.Collection;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.PathMapPager;
import org.codelibs.fess.es.config.cbean.PathMappingCB;
import org.codelibs.fess.es.config.exbhv.PathMappingBhv;
import org.codelibs.fess.es.config.exentity.PathMapping;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.PathMappingCB;
import org.codelibs.fess.opensearch.config.exbhv.PathMappingBhv;
import org.codelibs.fess.opensearch.config.exentity.PathMapping;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class PathMappingService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.ProtwordsPager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.protwords.ProtwordsItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class ProtwordsService {
@Resource
protected DictionaryManager dictionaryManager;
@ -53,7 +53,7 @@ public class ProtwordsService {
}
public OptionalEntity<ProtwordsFile> getProtwordsFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof ProtwordsFile)
return dictionaryManager.getDictionaryFile(dictId).filter(ProtwordsFile.class::isInstance)
.map(file -> OptionalEntity.of((ProtwordsFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,20 +17,20 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.RelatedContentPager;
import org.codelibs.fess.es.config.cbean.RelatedContentCB;
import org.codelibs.fess.es.config.exbhv.RelatedContentBhv;
import org.codelibs.fess.es.config.exentity.RelatedContent;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.RelatedContentCB;
import org.codelibs.fess.opensearch.config.exbhv.RelatedContentBhv;
import org.codelibs.fess.opensearch.config.exentity.RelatedContent;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class RelatedContentService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,20 +17,20 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.RelatedQueryPager;
import org.codelibs.fess.es.config.cbean.RelatedQueryCB;
import org.codelibs.fess.es.config.exbhv.RelatedQueryBhv;
import org.codelibs.fess.es.config.exentity.RelatedQuery;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.RelatedQueryCB;
import org.codelibs.fess.opensearch.config.exbhv.RelatedQueryBhv;
import org.codelibs.fess.opensearch.config.exentity.RelatedQuery;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class RelatedQueryService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,18 +17,18 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.ReqHeaderPager;
import org.codelibs.fess.es.config.cbean.RequestHeaderCB;
import org.codelibs.fess.es.config.exbhv.RequestHeaderBhv;
import org.codelibs.fess.es.config.exentity.RequestHeader;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.RequestHeaderCB;
import org.codelibs.fess.opensearch.config.exbhv.RequestHeaderBhv;
import org.codelibs.fess.opensearch.config.exentity.RequestHeader;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class RequestHeaderService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -19,20 +19,20 @@ import static org.codelibs.core.stream.StreamUtil.stream;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.RolePager;
import org.codelibs.fess.es.user.cbean.RoleCB;
import org.codelibs.fess.es.user.exbhv.RoleBhv;
import org.codelibs.fess.es.user.exbhv.UserBhv;
import org.codelibs.fess.es.user.exentity.Role;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.user.cbean.RoleCB;
import org.codelibs.fess.opensearch.user.exbhv.RoleBhv;
import org.codelibs.fess.opensearch.user.exbhv.UserBhv;
import org.codelibs.fess.opensearch.user.exentity.Role;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class RoleService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,18 +17,18 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.RoleTypePager;
import org.codelibs.fess.es.config.cbean.RoleTypeCB;
import org.codelibs.fess.es.config.exbhv.RoleTypeBhv;
import org.codelibs.fess.es.config.exentity.RoleType;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.RoleTypeCB;
import org.codelibs.fess.opensearch.config.exbhv.RoleTypeBhv;
import org.codelibs.fess.opensearch.config.exentity.RoleType;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class RoleTypeService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,22 +17,22 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.SchedulerPager;
import org.codelibs.fess.es.config.cbean.ScheduledJobCB;
import org.codelibs.fess.es.config.exbhv.ScheduledJobBhv;
import org.codelibs.fess.es.config.exentity.ScheduledJob;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.ScheduledJobCB;
import org.codelibs.fess.opensearch.config.exbhv.ScheduledJobBhv;
import org.codelibs.fess.opensearch.config.exentity.ScheduledJob;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import org.lastaflute.job.LaCron;
import jakarta.annotation.Resource;
public class ScheduledJobService {
private static final Logger logger = LogManager.getLogger(ScheduledJobService.class);

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -27,30 +27,28 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.SearchLogPager;
import org.codelibs.fess.es.log.allcommon.EsPagingResultBean;
import org.codelibs.fess.es.log.cbean.ClickLogCB;
import org.codelibs.fess.es.log.cbean.FavoriteLogCB;
import org.codelibs.fess.es.log.cbean.SearchLogCB;
import org.codelibs.fess.es.log.cbean.UserInfoCB;
import org.codelibs.fess.es.log.exbhv.ClickLogBhv;
import org.codelibs.fess.es.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.es.log.exbhv.SearchLogBhv;
import org.codelibs.fess.es.log.exbhv.UserInfoBhv;
import org.codelibs.fess.es.log.exentity.ClickLog;
import org.codelibs.fess.es.log.exentity.FavoriteLog;
import org.codelibs.fess.es.log.exentity.SearchLog;
import org.codelibs.fess.es.log.exentity.UserInfo;
import org.codelibs.fess.exception.FessSystemException;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.log.allcommon.EsPagingResultBean;
import org.codelibs.fess.opensearch.log.cbean.ClickLogCB;
import org.codelibs.fess.opensearch.log.cbean.FavoriteLogCB;
import org.codelibs.fess.opensearch.log.cbean.SearchLogCB;
import org.codelibs.fess.opensearch.log.cbean.UserInfoCB;
import org.codelibs.fess.opensearch.log.exbhv.ClickLogBhv;
import org.codelibs.fess.opensearch.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.opensearch.log.exbhv.SearchLogBhv;
import org.codelibs.fess.opensearch.log.exbhv.UserInfoBhv;
import org.codelibs.fess.opensearch.log.exentity.ClickLog;
import org.codelibs.fess.opensearch.log.exentity.FavoriteLog;
import org.codelibs.fess.opensearch.log.exentity.SearchLog;
import org.codelibs.fess.opensearch.log.exentity.UserInfo;
import org.codelibs.fess.taglib.FessFunctions;
import org.dbflute.optional.OptionalEntity;
import org.opensearch.search.aggregations.AggregationBuilders;
@ -61,6 +59,8 @@ import org.opensearch.search.aggregations.bucket.terms.Terms;
import org.opensearch.search.aggregations.metrics.Avg;
import org.opensearch.search.aggregations.metrics.Cardinality;
import jakarta.annotation.Resource;
public class SearchLogService {
private static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.StemmerOverridePager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.stemmeroverride.StemmerOverrideItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class StemmerOverrideService {
@Resource
protected DictionaryManager dictionaryManager;
@ -53,7 +53,7 @@ public class StemmerOverrideService {
}
public OptionalEntity<StemmerOverrideFile> getStemmerOverrideFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof StemmerOverrideFile)
return dictionaryManager.getDictionaryFile(dictId).filter(StemmerOverrideFile.class::isInstance)
.map(file -> OptionalEntity.of((StemmerOverrideFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.StopwordsPager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.stopwords.StopwordsItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class StopwordsService {
@Resource
protected DictionaryManager dictionaryManager;
@ -53,7 +53,7 @@ public class StopwordsService {
}
public OptionalEntity<StopwordsFile> getStopwordsFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof StopwordsFile)
return dictionaryManager.getDictionaryFile(dictId).filter(StopwordsFile.class::isInstance)
.map(file -> OptionalEntity.of((StopwordsFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,8 +18,6 @@ package org.codelibs.fess.app.service;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.SynonymPager;
@ -30,6 +28,8 @@ import org.codelibs.fess.dict.synonym.SynonymItem;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class SynonymService {
@Resource
protected DictionaryManager dictionaryManager;
@ -52,7 +52,7 @@ public class SynonymService {
}
public OptionalEntity<SynonymFile> getSynonymFile(final String dictId) {
return dictionaryManager.getDictionaryFile(dictId).filter(file -> file instanceof SynonymFile)
return dictionaryManager.getDictionaryFile(dictId).filter(SynonymFile.class::isInstance)
.map(file -> OptionalEntity.of((SynonymFile) file)).orElse(OptionalEntity.empty());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -15,10 +15,10 @@
*/
package org.codelibs.fess.app.service;
import javax.annotation.Resource;
import org.codelibs.fess.es.log.exbhv.UserInfoBhv;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.opensearch.log.exbhv.UserInfoBhv;
import jakarta.annotation.Resource;
public class UserInfoService {

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,22 +17,22 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.UserPager;
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
import org.codelibs.fess.es.user.cbean.UserCB;
import org.codelibs.fess.es.user.exbhv.UserBhv;
import org.codelibs.fess.es.user.exentity.User;
import org.codelibs.fess.exception.FessUserNotFoundException;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.user.cbean.UserCB;
import org.codelibs.fess.opensearch.user.exbhv.UserBhv;
import org.codelibs.fess.opensearch.user.exentity.User;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class UserService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,19 +17,19 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.WebAuthPager;
import org.codelibs.fess.es.config.cbean.WebAuthenticationCB;
import org.codelibs.fess.es.config.exbhv.WebAuthenticationBhv;
import org.codelibs.fess.es.config.exentity.WebAuthentication;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.WebAuthenticationCB;
import org.codelibs.fess.opensearch.config.exbhv.WebAuthenticationBhv;
import org.codelibs.fess.opensearch.config.exentity.WebAuthentication;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class WebAuthenticationService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -17,23 +17,23 @@ package org.codelibs.fess.app.service;
import java.util.List;
import javax.annotation.Resource;
import org.codelibs.core.beans.util.BeanUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.pager.WebConfigPager;
import org.codelibs.fess.es.config.cbean.WebConfigCB;
import org.codelibs.fess.es.config.exbhv.RequestHeaderBhv;
import org.codelibs.fess.es.config.exbhv.WebAuthenticationBhv;
import org.codelibs.fess.es.config.exbhv.WebConfigBhv;
import org.codelibs.fess.es.config.exentity.WebConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.opensearch.config.cbean.WebConfigCB;
import org.codelibs.fess.opensearch.config.exbhv.RequestHeaderBhv;
import org.codelibs.fess.opensearch.config.exbhv.WebAuthenticationBhv;
import org.codelibs.fess.opensearch.config.exbhv.WebConfigBhv;
import org.codelibs.fess.opensearch.config.exentity.WebConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
import jakarta.annotation.Resource;
public class WebConfigService extends FessAppService {
@Resource

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 CodeLibs Project and the Others.
* Copyright 2012-2024 CodeLibs Project and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

Some files were not shown because too many files have changed in this diff Show more