#2857 replace with fess-crawler-opensearch

This commit is contained in:
Shinsuke Sugaya 2024-11-07 15:19:20 +09:00
parent 8ca11382a2
commit 9d3f26ac6a
26 changed files with 106 additions and 105 deletions

View file

@ -1441,7 +1441,7 @@
</dependency>
<dependency>
<groupId>org.codelibs.fess</groupId>
<artifactId>fess-crawler-es</artifactId>
<artifactId>fess-crawler-opensearch</artifactId>
<version>${crawler.version}</version>
</dependency>
<dependency>

View file

@ -27,7 +27,6 @@ import org.codelibs.fess.app.web.admin.design.AdminDesignAction;
import org.codelibs.fess.app.web.admin.dict.AdminDictAction;
import org.codelibs.fess.app.web.admin.duplicatehost.AdminDuplicatehostAction;
import org.codelibs.fess.app.web.admin.elevateword.AdminElevatewordAction;
import org.codelibs.fess.app.web.admin.esreq.AdminEsreqAction;
import org.codelibs.fess.app.web.admin.failureurl.AdminFailureurlAction;
import org.codelibs.fess.app.web.admin.fileauth.AdminFileauthAction;
import org.codelibs.fess.app.web.admin.fileconfig.AdminFileconfigAction;
@ -46,6 +45,7 @@ import org.codelibs.fess.app.web.admin.reqheader.AdminReqheaderAction;
import org.codelibs.fess.app.web.admin.role.AdminRoleAction;
import org.codelibs.fess.app.web.admin.scheduler.AdminSchedulerAction;
import org.codelibs.fess.app.web.admin.searchlog.AdminSearchlogAction;
import org.codelibs.fess.app.web.admin.sereq.AdminSereqAction;
import org.codelibs.fess.app.web.admin.storage.AdminStorageAction;
import org.codelibs.fess.app.web.admin.suggest.AdminSuggestAction;
import org.codelibs.fess.app.web.admin.systeminfo.AdminSysteminfoAction;
@ -142,8 +142,8 @@ public class AdminAction extends FessAdminAction {
AdminBackupAction.ROLE + VIEW, //
AdminMaintenanceAction.ROLE, //
AdminMaintenanceAction.ROLE + VIEW, //
AdminEsreqAction.ROLE, //
AdminEsreqAction.ROLE + VIEW, //
AdminSereqAction.ROLE, //
AdminSereqAction.ROLE + VIEW, //
AdminDashboardAction.ROLE, //
AdminDashboardAction.ROLE + VIEW, //
AdminWizardAction.ROLE, //
@ -216,8 +216,8 @@ public class AdminAction extends FessAdminAction {
AdminBackupAction.ROLE + VIEW, //
AdminMaintenanceAction.ROLE, //
AdminMaintenanceAction.ROLE + VIEW, //
AdminEsreqAction.ROLE, //
AdminEsreqAction.ROLE + VIEW, //
AdminSereqAction.ROLE, //
AdminSereqAction.ROLE + VIEW, //
AdminDashboardAction.ROLE, //
AdminDashboardAction.ROLE + VIEW, //
AdminWizardAction.ROLE, //
@ -290,8 +290,8 @@ public class AdminAction extends FessAdminAction {
AdminBackupAction.ROLE + VIEW, //
AdminMaintenanceAction.ROLE, //
AdminMaintenanceAction.ROLE + VIEW, //
AdminEsreqAction.ROLE, //
AdminEsreqAction.ROLE + VIEW,//
AdminSereqAction.ROLE, //
AdminSereqAction.ROLE + VIEW,//
})
public HtmlResponse index() {
@ -413,8 +413,8 @@ public class AdminAction extends FessAdminAction {
if (user.hasRoles(getActionRoles(AdminMaintenanceAction.ROLE))) {
return AdminMaintenanceAction.class;
}
if (user.hasRoles(getActionRoles(AdminEsreqAction.ROLE))) {
return AdminEsreqAction.class;
if (user.hasRoles(getActionRoles(AdminSereqAction.ROLE))) {
return AdminSereqAction.class;
}
return null;
}
@ -423,4 +423,4 @@ public class AdminAction extends FessAdminAction {
return new String[] { role, role + VIEW };
}
}
}

View file

@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.codelibs.fess.app.web.admin.esreq;
package org.codelibs.fess.app.web.admin.sereq;
import java.io.BufferedReader;
import java.io.File;
@ -42,16 +42,16 @@ import org.lastaflute.web.ruts.process.ActionRuntime;
/**
* @author shinsuke
*/
public class AdminEsreqAction extends FessAdminAction {
public class AdminSereqAction extends FessAdminAction {
public static final String ROLE = "admin-esreq";
public static final String ROLE = "admin-sereq";
private static final Logger logger = LogManager.getLogger(AdminEsreqAction.class);
private static final Logger logger = LogManager.getLogger(AdminSereqAction.class);
@Override
protected void setupHtmlData(final ActionRuntime runtime) {
super.setupHtmlData(runtime);
runtime.registerData("helpLink", systemHelper.getHelpLink(fessConfig.getOnlineHelpNameEsreq()));
runtime.registerData("helpLink", systemHelper.getHelpLink(fessConfig.getOnlineHelpNameSereq()));
}
@Override
@ -95,7 +95,7 @@ public class AdminEsreqAction extends FessAdminAction {
throwValidationError(messages -> messages.addErrorsInvalidHeaderForRequestFile(GLOBAL, msg), () -> asListHtml(this::saveToken));
} else {
try (final CurlResponse response = curlRequest.body(buf.toString()).execute()) {
final File tempFile = ComponentUtil.getSystemHelper().createTempFile("esreq_", ".json");
final File tempFile = ComponentUtil.getSystemHelper().createTempFile("sereq_", ".json");
try (final InputStream in = response.getContentAsStream()) {
CopyUtil.copy(in, tempFile);
} catch (final Exception e1) {
@ -160,7 +160,7 @@ public class AdminEsreqAction extends FessAdminAction {
if (runnable != null) {
runnable.run();
}
return asHtml(path_AdminEsreq_AdminEsreqJsp).useForm(UploadForm.class);
return asHtml(path_AdminSereq_AdminSereqJsp).useForm(UploadForm.class);
}
}

View file

@ -13,7 +13,7 @@
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.codelibs.fess.app.web.admin.esreq;
package org.codelibs.fess.app.web.admin.sereq;
import org.lastaflute.web.ruts.multipart.MultipartFormFile;
import org.lastaflute.web.validation.Required;

View file

@ -20,9 +20,9 @@ import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.fess.crawler.entity.EsUrlQueue;
import org.codelibs.fess.crawler.service.impl.EsUrlQueueService;
import org.codelibs.fess.crawler.util.EsCrawlerConfig;
import org.codelibs.fess.crawler.entity.OpenSearchUrlQueue;
import org.codelibs.fess.crawler.service.impl.OpenSearchUrlQueueService;
import org.codelibs.fess.crawler.util.OpenSearchCrawlerConfig;
import org.codelibs.fess.helper.CrawlingConfigHelper;
import org.codelibs.fess.opensearch.config.exentity.CrawlingConfig;
import org.codelibs.fess.opensearch.config.exentity.CrawlingConfig.ConfigName;
@ -33,21 +33,21 @@ import org.opensearch.index.query.functionscore.RandomScoreFunctionBuilder;
import org.opensearch.search.sort.SortBuilders;
import org.opensearch.search.sort.SortOrder;
public class FessUrlQueueService extends EsUrlQueueService {
public class FessUrlQueueService extends OpenSearchUrlQueueService {
private static final Logger logger = LogManager.getLogger(FessUrlQueueService.class);
public FessUrlQueueService(final EsCrawlerConfig crawlerConfig) {
public FessUrlQueueService(final OpenSearchCrawlerConfig crawlerConfig) {
super(crawlerConfig);
}
@Override
protected List<EsUrlQueue> fetchUrlQueueList(final String sessionId) {
protected List<OpenSearchUrlQueue> fetchUrlQueueList(final String sessionId) {
final CrawlingConfigHelper crawlingConfigHelper = ComponentUtil.getCrawlingConfigHelper();
final CrawlingConfig crawlingConfig = crawlingConfigHelper.get(sessionId);
final Map<String, String> configParams = crawlingConfig.getConfigParameterMap(ConfigName.CONFIG);
final String crawlOrder = configParams.getOrDefault(CrawlingConfig.Param.Config.CRAWL_ORDER, "sequential");
if ("random".equals(crawlOrder)) {
return getList(EsUrlQueue.class, sessionId,
return getList(OpenSearchUrlQueue.class, sessionId,
QueryBuilders.functionScoreQuery(QueryBuilders.matchAllQuery(),
new FunctionScoreQueryBuilder.FilterFunctionBuilder[] { new FunctionScoreQueryBuilder.FilterFunctionBuilder(
new RandomScoreFunctionBuilder().seed(sessionId.hashCode())) }),

View file

@ -17,7 +17,7 @@ package org.codelibs.fess.crawler.util;
import org.codelibs.fess.util.ComponentUtil;
public class FessCrawlerConfig extends EsCrawlerConfig {
public class FessCrawlerConfig extends OpenSearchCrawlerConfig {
@Override
public String getQueueIndex() {

View file

@ -173,6 +173,7 @@ public class PluginHelper {
|| "fess-crawler-db-h2".equals(name)//
|| "fess-crawler-db-mysql".equals(name)//
|| "fess-crawler-es".equals(name)//
|| "fess-crawler-opensearch".equals(name)//
|| "fess-crawler-lasta".equals(name)//
|| "fess-crawler-parent".equals(name)//
|| "fess-crawler-playwright".equals(name)//

View file

@ -33,9 +33,9 @@ import org.codelibs.fess.crawler.Crawler;
import org.codelibs.fess.crawler.CrawlerContext;
import org.codelibs.fess.crawler.CrawlerStatus;
import org.codelibs.fess.crawler.interval.FessIntervalController;
import org.codelibs.fess.crawler.service.impl.EsDataService;
import org.codelibs.fess.crawler.service.impl.EsUrlFilterService;
import org.codelibs.fess.crawler.service.impl.EsUrlQueueService;
import org.codelibs.fess.crawler.service.impl.OpenSearchDataService;
import org.codelibs.fess.crawler.service.impl.OpenSearchUrlFilterService;
import org.codelibs.fess.crawler.service.impl.OpenSearchUrlQueueService;
import org.codelibs.fess.indexer.IndexUpdater;
import org.codelibs.fess.opensearch.config.exbhv.BoostDocumentRuleBhv;
import org.codelibs.fess.opensearch.config.exentity.BoostDocumentRule;
@ -142,7 +142,7 @@ public class WebFsIndexHelper {
if (Constants.TRUE.equalsIgnoreCase(configParamMap.get(Config.CLEANUP_ALL))) {
deleteCrawlData(sid);
} else if (Constants.TRUE.equalsIgnoreCase(configParamMap.get(Config.CLEANUP_URL_FILTERS))) {
final EsUrlFilterService urlFilterService = ComponentUtil.getComponent(EsUrlFilterService.class);
final OpenSearchUrlFilterService urlFilterService = ComponentUtil.getComponent(OpenSearchUrlFilterService.class);
try {
urlFilterService.delete(sid);
} catch (final Exception e) {
@ -268,7 +268,7 @@ public class WebFsIndexHelper {
if (Constants.TRUE.equalsIgnoreCase(configParamMap.get(Config.CLEANUP_ALL))) {
deleteCrawlData(sid);
} else if (Constants.TRUE.equalsIgnoreCase(configParamMap.get(Config.CLEANUP_URL_FILTERS))) {
final EsUrlFilterService urlFilterService = ComponentUtil.getComponent(EsUrlFilterService.class);
final OpenSearchUrlFilterService urlFilterService = ComponentUtil.getComponent(OpenSearchUrlFilterService.class);
try {
urlFilterService.delete(sid);
} catch (final Exception e) {
@ -479,9 +479,9 @@ public class WebFsIndexHelper {
}
protected void deleteCrawlData(final String sid) {
final EsUrlFilterService urlFilterService = ComponentUtil.getComponent(EsUrlFilterService.class);
final EsUrlQueueService urlQueueService = ComponentUtil.getComponent(EsUrlQueueService.class);
final EsDataService dataService = ComponentUtil.getComponent(EsDataService.class);
final OpenSearchUrlFilterService urlFilterService = ComponentUtil.getComponent(OpenSearchUrlFilterService.class);
final OpenSearchUrlQueueService urlQueueService = ComponentUtil.getComponent(OpenSearchUrlQueueService.class);
final OpenSearchDataService dataService = ComponentUtil.getComponent(OpenSearchDataService.class);
try {
// clear url filter

View file

@ -28,14 +28,14 @@ import org.codelibs.fess.Constants;
import org.codelibs.fess.crawler.Crawler;
import org.codelibs.fess.crawler.entity.AccessResult;
import org.codelibs.fess.crawler.entity.AccessResultData;
import org.codelibs.fess.crawler.entity.EsAccessResult;
import org.codelibs.fess.crawler.entity.EsUrlQueue;
import org.codelibs.fess.crawler.entity.OpenSearchAccessResult;
import org.codelibs.fess.crawler.entity.OpenSearchUrlQueue;
import org.codelibs.fess.crawler.service.DataService;
import org.codelibs.fess.crawler.service.UrlFilterService;
import org.codelibs.fess.crawler.service.UrlQueueService;
import org.codelibs.fess.crawler.service.impl.EsDataService;
import org.codelibs.fess.crawler.service.impl.OpenSearchDataService;
import org.codelibs.fess.crawler.transformer.Transformer;
import org.codelibs.fess.crawler.util.EsResultList;
import org.codelibs.fess.crawler.util.OpenSearchResultList;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.exception.FessSystemException;
import org.codelibs.fess.helper.IndexingHelper;
@ -70,10 +70,10 @@ public class IndexUpdater extends Thread {
protected SearchEngineClient searchEngineClient;
@Resource
protected DataService<EsAccessResult> dataService;
protected DataService<OpenSearchAccessResult> dataService;
@Resource
protected UrlQueueService<EsUrlQueue> urlQueueService;
protected UrlQueueService<OpenSearchUrlQueue> urlQueueService;
@Resource
protected UrlFilterService urlFilterService;
@ -176,17 +176,17 @@ public class IndexUpdater extends Thread {
try {
final Consumer<SearchRequestBuilder> cb = builder -> {
final QueryBuilder queryBuilder =
QueryBuilders.boolQuery().filter(QueryBuilders.termsQuery(EsAccessResult.SESSION_ID, sessionIdList))
.filter(QueryBuilders.termQuery(EsAccessResult.STATUS, org.codelibs.fess.crawler.Constants.OK_STATUS));
QueryBuilders.boolQuery().filter(QueryBuilders.termsQuery(OpenSearchAccessResult.SESSION_ID, sessionIdList)).filter(
QueryBuilders.termQuery(OpenSearchAccessResult.STATUS, org.codelibs.fess.crawler.Constants.OK_STATUS));
builder.setQuery(queryBuilder);
builder.setFrom(0);
final int maxDocumentCacheSize = fessConfig.getIndexerWebfsMaxDocumentCacheSizeAsInteger();
builder.setSize(maxDocumentCacheSize <= 0 ? 1 : maxDocumentCacheSize);
builder.addSort(EsAccessResult.CREATE_TIME, SortOrder.ASC);
builder.addSort(OpenSearchAccessResult.CREATE_TIME, SortOrder.ASC);
};
final DocList docList = new DocList();
final List<EsAccessResult> accessResultList = new ArrayList<>();
final List<OpenSearchAccessResult> accessResultList = new ArrayList<>();
long updateTime = systemHelper.getCurrentTimeAsLong();
int errorCount = 0;
@ -219,13 +219,13 @@ public class IndexUpdater extends Thread {
updateTime = systemHelper.getCurrentTimeAsLong();
List<EsAccessResult> arList = getAccessResultList(cb, cleanupTime);
List<OpenSearchAccessResult> arList = getAccessResultList(cb, cleanupTime);
if (arList.isEmpty()) {
emptyListCount++;
} else {
emptyListCount = 0; // reset
}
long hitCount = ((EsResultList<EsAccessResult>) arList).getTotalHits();
long hitCount = ((OpenSearchResultList<OpenSearchAccessResult>) arList).getTotalHits();
while (hitCount > 0) {
if (arList.isEmpty()) {
ThreadUtil.sleep(fessConfig.getIndexerWebfsCommitMarginTimeAsInteger().longValue());
@ -235,7 +235,7 @@ public class IndexUpdater extends Thread {
cleanupTime = cleanupAccessResults(accessResultList);
}
arList = getAccessResultList(cb, cleanupTime);
hitCount = ((EsResultList<EsAccessResult>) arList).getTotalHits();
hitCount = ((OpenSearchResultList<OpenSearchAccessResult>) arList).getTotalHits();
}
if (!docList.isEmpty()) {
indexingHelper.sendDocuments(searchEngineClient, docList);
@ -320,11 +320,11 @@ public class IndexUpdater extends Thread {
}
private void processAccessResults(final DocList docList, final List<EsAccessResult> accessResultList,
final List<EsAccessResult> arList) {
private void processAccessResults(final DocList docList, final List<OpenSearchAccessResult> accessResultList,
final List<OpenSearchAccessResult> arList) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final long maxDocumentRequestSize = Long.parseLong(fessConfig.getIndexerWebfsMaxDocumentRequestSize());
for (final EsAccessResult accessResult : arList) {
for (final OpenSearchAccessResult accessResult : arList) {
if (logger.isDebugEnabled()) {
logger.debug("Indexing {}", accessResult.getUrl());
}
@ -395,7 +395,7 @@ public class IndexUpdater extends Thread {
}
}
private AccessResultData<?> getAccessResultData(final EsAccessResult accessResult) {
private AccessResultData<?> getAccessResultData(final OpenSearchAccessResult accessResult) {
try {
return accessResult.getAccessResultData();
} catch (final Exception e) {
@ -483,7 +483,7 @@ public class IndexUpdater extends Thread {
}
}
private long cleanupAccessResults(final List<EsAccessResult> accessResultList) {
private long cleanupAccessResults(final List<OpenSearchAccessResult> accessResultList) {
if (!accessResultList.isEmpty()) {
final long execTime = systemHelper.getCurrentTimeAsLong();
final int size = accessResultList.size();
@ -498,12 +498,12 @@ public class IndexUpdater extends Thread {
return -1;
}
private List<EsAccessResult> getAccessResultList(final Consumer<SearchRequestBuilder> cb, final long cleanupTime) {
private List<OpenSearchAccessResult> getAccessResultList(final Consumer<SearchRequestBuilder> cb, final long cleanupTime) {
if (logger.isDebugEnabled()) {
logger.debug("Getting documents in IndexUpdater queue.");
}
final long execTime = systemHelper.getCurrentTimeAsLong();
final List<EsAccessResult> arList = ((EsDataService) dataService).getAccessResultList(cb);
final List<OpenSearchAccessResult> arList = ((OpenSearchDataService) dataService).getAccessResultList(cb);
final FessConfig fessConfig = ComponentUtil.getFessConfig();
if (!arList.isEmpty()) {
final long commitMarginTime = fessConfig.getIndexerWebfsCommitMarginTimeAsInteger().longValue();
@ -513,7 +513,7 @@ public class IndexUpdater extends Thread {
}
}
}
final long totalHits = ((EsResultList<EsAccessResult>) arList).getTotalHits();
final long totalHits = ((OpenSearchResultList<OpenSearchAccessResult>) arList).getTotalHits();
if (logger.isInfoEnabled()) {
final StringBuilder buf = new StringBuilder(100);
buf.append("Processing ");

View file

@ -210,9 +210,6 @@ public interface FessHtmlPath {
/** The path of the HTML: /admin/error/admin_error.jsp */
HtmlNext path_AdminError_AdminErrorJsp = new HtmlNext("/admin/error/admin_error.jsp");
/** The path of the HTML: /admin/esreq/admin_esreq.jsp */
HtmlNext path_AdminEsreq_AdminEsreqJsp = new HtmlNext("/admin/esreq/admin_esreq.jsp");
/** The path of the HTML: /admin/failureurl/admin_failureurl.jsp */
HtmlNext path_AdminFailureurl_AdminFailureurlJsp = new HtmlNext("/admin/failureurl/admin_failureurl.jsp");
@ -352,6 +349,9 @@ public interface FessHtmlPath {
/** The path of the HTML: /admin/searchlog/admin_searchlog_details.jsp */
HtmlNext path_AdminSearchlog_AdminSearchlogDetailsJsp = new HtmlNext("/admin/searchlog/admin_searchlog_details.jsp");
/** The path of the HTML: /admin/sereq/admin_sereq.jsp */
HtmlNext path_AdminSereq_AdminSereqJsp = new HtmlNext("/admin/sereq/admin_sereq.jsp");
/** The path of the HTML: /admin/storage/admin_storage.jsp */
HtmlNext path_AdminStorage_AdminStorageJsp = new HtmlNext("/admin/storage/admin_storage.jsp");

View file

@ -2866,16 +2866,16 @@ public class FessLabels extends UserMessages {
public static final String LABELS_target_version = "{labels.target_version}";
/** The key of the message: Request to OpenSearch */
public static final String LABELS_esreq_configuration = "{labels.esreq_configuration}";
public static final String LABELS_sereq_configuration = "{labels.sereq_configuration}";
/** The key of the message: Request File */
public static final String LABELS_esreq_request_file = "{labels.esreq_request_file}";
public static final String LABELS_sereq_request_file = "{labels.sereq_request_file}";
/** The key of the message: Request File */
public static final String LABELS_REQUEST_FILE = "{labels.requestFile}";
/** The key of the message: Send */
public static final String LABELS_esreq_button_upload = "{labels.esreq_button_upload}";
public static final String LABELS_sereq_button_upload = "{labels.sereq_button_upload}";
/** The key of the message: No match */
public static final String LABELS_facet_is_not_found = "{labels.facet_is_not_found}";

View file

@ -1569,8 +1569,8 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
/** The key of the configuration. e.g. upgrade */
String ONLINE_HELP_NAME_UPGRADE = "online.help.name.upgrade";
/** The key of the configuration. e.g. esreq */
String ONLINE_HELP_NAME_ESREQ = "online.help.name.esreq";
/** The key of the configuration. e.g. sereq */
String ONLINE_HELP_NAME_SEREQ = "online.help.name.sereq";
/** The key of the configuration. e.g. accesstoken */
String ONLINE_HELP_NAME_ACCESSTOKEN = "online.help.name.accesstoken";
@ -6993,11 +6993,11 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
String getOnlineHelpNameUpgrade();
/**
* Get the value for the key 'online.help.name.esreq'. <br>
* The value is, e.g. esreq <br>
* Get the value for the key 'online.help.name.sereq'. <br>
* The value is, e.g. sereq <br>
* @return The value of found property. (NotNull: if not found, exception but basically no way)
*/
String getOnlineHelpNameEsreq();
String getOnlineHelpNameSereq();
/**
* Get the value for the key 'online.help.name.accesstoken'. <br>
@ -10539,8 +10539,8 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
return get(FessConfig.ONLINE_HELP_NAME_UPGRADE);
}
public String getOnlineHelpNameEsreq() {
return get(FessConfig.ONLINE_HELP_NAME_ESREQ);
public String getOnlineHelpNameSereq() {
return get(FessConfig.ONLINE_HELP_NAME_SEREQ);
}
public String getOnlineHelpNameAccesstoken() {
@ -11483,7 +11483,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
defaultMap.put(FessConfig.ONLINE_HELP_NAME_CRAWLINGINFO, "crawlinginfo");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_BACKUP, "backup");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_UPGRADE, "upgrade");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_ESREQ, "esreq");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_SEREQ, "sereq");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_ACCESSTOKEN, "accesstoken");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_SUGGEST, "suggest");
defaultMap.put(FessConfig.ONLINE_HELP_NAME_SEARCHLOG, "searchlog");

View file

@ -30,7 +30,7 @@ import org.codelibs.fess.auth.AuthenticationManager;
import org.codelibs.fess.cors.CorsHandlerFactory;
import org.codelibs.fess.crawler.client.CrawlerClientCreator;
import org.codelibs.fess.crawler.client.CrawlerClientFactory;
import org.codelibs.fess.crawler.entity.EsAccessResult;
import org.codelibs.fess.crawler.entity.OpenSearchAccessResult;
import org.codelibs.fess.crawler.extractor.ExtractorFactory;
import org.codelibs.fess.crawler.service.DataService;
import org.codelibs.fess.dict.DictionaryManager;
@ -380,7 +380,7 @@ public final class ComponentUtil {
return getComponent(DICTIONARY_MANAGER);
}
public static DataService<EsAccessResult> getDataService() {
public static DataService<OpenSearchAccessResult> getDataService() {
return getComponent(DATA_SERVICE);
}

View file

@ -804,7 +804,7 @@ online.help.name.scheduler=scheduler
online.help.name.crawlinginfo=crawlinginfo
online.help.name.backup=backup
online.help.name.upgrade=upgrade
online.help.name.esreq=esreq
online.help.name.sereq=sereq
online.help.name.accesstoken=accesstoken
online.help.name.suggest=suggest
online.help.name.searchlog=searchlog

View file

@ -15,7 +15,7 @@
{"index":{"_index":"fess_config.scheduled_job","_id":"reload_config"}}
{"name":"Config Reloader","target":"all","cronExpression":"*/10 * * * *","scriptType":"groovy","scriptData":"return container.getComponent(\"systemHelper\").updateConfiguration();","jobLogging":false,"crawler":false,"available":true,"sortOrder":8,"createdBy":"system","createdTime":0,"updatedBy":"system","updatedTime":0}
{"index":{"_index":"fess_config.scheduled_job","_id":"ping_es"}}
{"name":"Search Engine Monitor","target":"all","cronExpression":"* * * * *","scriptType":"groovy","scriptData":"return container.getComponent(\"pingEsJob\").execute();","jobLogging":false,"crawler":false,"available":true,"sortOrder":9,"createdBy":"system","createdTime":0,"updatedBy":"system","updatedTime":0}
{"name":"Search Engine Monitor","target":"all","cronExpression":"* * * * *","scriptType":"groovy","scriptData":"return container.getComponent(\"pingJob\").execute();","jobLogging":false,"crawler":false,"available":true,"sortOrder":9,"createdBy":"system","createdTime":0,"updatedBy":"system","updatedTime":0}
{"index":{"_index":"fess_config.scheduled_job","_id":"score_booster"}}
{"name":"Score Updater","target":"all","cronExpression":"0 * * * *","scriptType":"groovy","scriptData":"return container.getComponent(\"scoreUpdater\").execute();","jobLogging":false,"crawler":false,"available":true,"sortOrder":10,"createdBy":"system","createdTime":0,"updatedBy":"system","updatedTime":0}
{"index":{"_index":"fess_config.scheduled_job","_id":"label_updater"}}

View file

@ -22,7 +22,7 @@
</component>
<component name="updateLabelJob" class="org.codelibs.fess.job.UpdateLabelJob" instance="prototype">
</component>
<component name="pingEsJob" class="org.codelibs.fess.job.PingSearchEngineJob" instance="prototype">
<component name="pingJob" class="org.codelibs.fess.job.PingSearchEngineJob" instance="prototype">
</component>
<component name="pythonJob" class="org.codelibs.fess.job.PythonJob" instance="prototype">
</component>

View file

@ -946,10 +946,10 @@ labels.reset_dictionaries=Reset Dictionaries
labels.reindex_start_button=Start
labels.targetVersion=Version
labels.target_version=Version From
labels.esreq_configuration=Request to OpenSearch
labels.esreq_request_file=Request File
labels.sereq_configuration=Request to OpenSearch
labels.sereq_request_file=Request File
labels.requestFile=Request File
labels.esreq_button_upload=Send
labels.sereq_button_upload=Send
labels.facet_is_not_found=No match
labels.doc_score=Score:
labels.development_mode_warning=Running as Development mode. For production use, please install a standalone OpenSearch server.

View file

@ -878,10 +878,10 @@ labels.replace_aliases=Aliase aktualisieren
labels.reindex_start_button=Start
labels.targetVersion=Version
labels.target_version=Version ab
labels.esreq_configuration=Anfrage an OpenSearch
labels.esreq_request_file=Anfrage-Datei
labels.sereq_configuration=Anfrage an OpenSearch
labels.sereq_request_file=Anfrage-Datei
labels.requestFile=Datei anfragen
labels.esreq_button_upload=Senden
labels.sereq_button_upload=Senden
labels.facet_is_not_found=Kein Treffer.
labels.doc_score=Bewertung:
labels.development_mode_warning=Läuft im Entwicklermodus. Bitte installieren Sie einen Standalone-OpenSearch-Server für produktiven Einsatz.

View file

@ -945,10 +945,10 @@ labels.reset_dictionaries=Reset Dictionaries
labels.reindex_start_button=Start
labels.targetVersion=Version
labels.target_version=Version From
labels.esreq_configuration=Request to OpenSearch
labels.esreq_request_file=Request File
labels.sereq_configuration=Request to OpenSearch
labels.sereq_request_file=Request File
labels.requestFile=Request File
labels.esreq_button_upload=Send
labels.sereq_button_upload=Send
labels.facet_is_not_found=No match
labels.doc_score=Score:
labels.development_mode_warning=Running as Development mode. For production use, please install a standalone OpenSearch server.

View file

@ -945,10 +945,10 @@ labels.reset_dictionaries = Réinitialiser les dictionnaires
labels.reindex_start_button = Commencer
labels.targetVersion = Version
labels.target_version = Version de
labels.esreq_configuration = Demande à OpenSearch
labels.esreq_request_file = Demander un fichier
labels.sereq_configuration = Demande à OpenSearch
labels.sereq_request_file = Demander un fichier
labels.requestFile = Demander un fichier
labels.esreq_button_upload = Envoyer
labels.sereq_button_upload = Envoyer
labels.facet_is_not_found = Aucune concordance
labels.doc_score = Score:
labels.development_mode_warning = Exécution en mode Développement. Pour une utilisation en production, veuillez installer un serveur OpenSearch autonome.

View file

@ -946,10 +946,10 @@ labels.reset_dictionaries=辞書の初期化
labels.reindex_start_button=開始
labels.targetVersion=対象バージョン
labels.target_version=対象バージョン
labels.esreq_configuration=OpenSearchへのリクエスト
labels.esreq_request_file=リクエストファイル
labels.sereq_configuration=OpenSearchへのリクエスト
labels.sereq_request_file=リクエストファイル
labels.requestFile=リクエストファイル
labels.esreq_button_upload=送信
labels.sereq_button_upload=送信
labels.facet_is_not_found=該当なし
labels.doc_score=スコア:
labels.development_mode_warning=開発モードで起動しています。本運用環境ではOpenSearchを別途インストールしてください。

View file

@ -854,10 +854,10 @@ labels.upgrade_data_migration = 데이터 마이그레이션
labels.upgrade_start_button = 시작
labels.targetVersion = 대상 버전
labels.target_version = 대상 버전
labels.esreq_configuration = OpenSearch에 요청
labels.esreq_request_file = 요청 파일
labels.sereq_configuration = OpenSearch에 요청
labels.sereq_request_file = 요청 파일
labels.requestFile = 요청 파일
labels.esreq_button_upload = 전송
labels.sereq_button_upload = 전송
labels.facet_is_not_found = 해당 없음
labels.logLevel=Log Level
labels.allLanguages=All Languages

View file

@ -832,10 +832,10 @@ labels.upgrade_data_migration=Перенос данных
labels.upgrade_start_button=Старт
labels.targetVersion=Version
labels.target_version=Version From
labels.esreq_configuration=Запрос к OpenSearch
labels.esreq_request_file=Request File
labels.sereq_configuration=Запрос к OpenSearch
labels.sereq_request_file=Request File
labels.requestFile=Request File
labels.esreq_button_upload=Send
labels.sereq_button_upload=Send
labels.facet_is_not_found=Нет совпадений.
labels.expires=Expired
labels.logLevel=Log Level

View file

@ -6,7 +6,7 @@
<include path="lastaflute_core.xml"/>
<include path="fess.xml" />
<include path="crawler_es.xml" />
<include path="crawler_opensearch.xml" />
<include path="fess_thumbnail.xml" />
<include path="fess_ingest.xml" />

View file

@ -6,7 +6,7 @@
<include path="lastaflute_core.xml"/>
<include path="fess.xml" />
<include path="crawler_es.xml" />
<include path="crawler_opensearch.xml" />
<include path="fess_thumbnail.xml"/>
</components>

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<title><la:message key="labels.admin_brand_title" /> | <la:message
key="labels.esreq_configuration" /></title>
key="labels.sereq_configuration" /></title>
<jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
</head>
<body class="hold-transition sidebar-mini">
@ -11,7 +11,7 @@
<jsp:include page="/WEB-INF/view/common/admin/header.jsp"></jsp:include>
<jsp:include page="/WEB-INF/view/common/admin/sidebar.jsp">
<jsp:param name="menuCategoryType" value="system" />
<jsp:param name="menuType" value="esreq" />
<jsp:param name="menuType" value="sereq" />
</jsp:include>
<div class="content-wrapper">
<div class="content-header">
@ -19,14 +19,14 @@
<div class="row mb-2">
<div class="col-sm-6">
<h1>
<la:message key="labels.esreq_configuration" />
<la:message key="labels.sereq_configuration" />
</h1>
</div>
</div>
</div>
</div>
<section class="content">
<la:form action="/admin/esreq/upload/" enctype="multipart/form-data">
<la:form action="/admin/sereq/upload/" enctype="multipart/form-data">
<div class="col-md-12">
<la:info id="msg" message="true">
<div class="alert alert-info">${msg}</div>
@ -37,13 +37,13 @@
<div class="card card-outline card-primary">
<div class="card-header">
<h3 class="card-title">
<la:message key="labels.esreq_configuration" />
<la:message key="labels.sereq_configuration" />
</h3>
</div>
<div class="card-body">
<div class="form-group row">
<label for="requestFile" class="col-sm-3 text-sm-right col-form-label"><la:message
key="labels.esreq_request_file"
key="labels.sereq_request_file"
/></label>
<div class="col-sm-9">
<input id="requestFile" type="file" name="requestFile" class="form-control-file" />
@ -54,7 +54,7 @@
<c:if test="${editable}">
<button type="submit" class="btn btn-primary" name="upload">
<em class="fa fa-upload"></em>
<la:message key="labels.esreq_button_upload" />
<la:message key="labels.sereq_button_upload" />
</button>
</c:if>
</div>