fix #2518 replace with SearchEngineClient

This commit is contained in:
Shinsuke Sugaya 2021-01-24 20:36:24 +09:00
parent e666a1f300
commit 1af6a1c682
35 changed files with 167 additions and 164 deletions

View file

@ -45,7 +45,7 @@ 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.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.WebApiException;
import org.codelibs.fess.helper.LabelTypeHelper;
import org.codelibs.fess.helper.PopularWordHelper;
@ -187,11 +187,11 @@ public class JsonApiManager extends BaseJsonApiManager {
}
protected void processPingRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
int status;
Exception err = null;
try {
final PingResponse pingResponse = fessEsClient.ping();
final PingResponse pingResponse = searchEngineClient.ping();
status = pingResponse.getStatus();
writeJsonResponse(status, "\"message\":" + pingResponse.getMessage());
} catch (final Exception e) {

View file

@ -29,7 +29,7 @@ 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.FessEsClient;
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;
@ -53,7 +53,7 @@ public class BadWordService {
protected BadWordBhv badWordBhv;
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
@Resource
protected FessConfig fessConfig;
@ -140,7 +140,7 @@ public class BadWordService {
logger.warn("Failed to read a sugget elevate word: {}", list, e);
}
}
fessEsClient.refresh("_all"); // TODO replace _all
searchEngineClient.refresh("_all"); // TODO replace _all
} catch (final IOException e) {
logger.warn("Failed to read a sugget elevate word.", e);
}

View file

@ -33,7 +33,7 @@ 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.FessEsClient;
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;
@ -69,7 +69,7 @@ public class ElevateWordService {
protected FessConfig fessConfig;
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
public List<ElevateWord> getElevateWordList(final ElevateWordPager elevateWordPager) {

View file

@ -39,7 +39,7 @@ import org.codelibs.fesen.action.ActionListener;
import org.codelibs.fess.Constants;
import org.codelibs.fess.annotation.Secured;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.mylasta.direction.FessConfig.SimpleImpl;
import org.codelibs.fess.util.ComponentUtil;
import org.lastaflute.web.Execute;
@ -65,7 +65,7 @@ public class AdminMaintenanceAction extends FessAdminAction {
//
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
// ===================================================================================
// Hook
@ -117,9 +117,9 @@ public class AdminMaintenanceAction extends FessAdminAction {
validate(form, messages -> {}, this::asIndexHtml);
verifyToken(this::asIndexHtml);
final String docIndex = fessConfig.getIndexDocumentUpdateIndex();
fessEsClient.admin().indices().prepareClose(docIndex).execute(ActionListener.wrap(res -> {
searchEngineClient.admin().indices().prepareClose(docIndex).execute(ActionListener.wrap(res -> {
logger.info("Close {}", docIndex);
fessEsClient.admin().indices().prepareOpen(docIndex).execute(
searchEngineClient.admin().indices().prepareOpen(docIndex).execute(
ActionListener.wrap(res2 -> logger.info("Open {}", docIndex), e -> logger.warn("Failed to open {}", docIndex, e)));
}, e -> logger.warn("Failed to close {}", docIndex, e)));
saveInfo(messages -> messages.addSuccessStartedDataUpdate(GLOBAL));
@ -131,7 +131,7 @@ public class AdminMaintenanceAction extends FessAdminAction {
public HtmlResponse clearCrawlerIndex(final ActionForm form) {
validate(form, messages -> {}, this::asIndexHtml);
verifyToken(this::asIndexHtml);
fessEsClient.admin().indices().prepareDelete(//
searchEngineClient.admin().indices().prepareDelete(//
fessConfig.getIndexDocumentCrawlerIndex() + ".queue", //
fessConfig.getIndexDocumentCrawlerIndex() + ".data", //
fessConfig.getIndexDocumentCrawlerIndex() + ".filter")
@ -290,11 +290,11 @@ public class AdminMaintenanceAction extends FessAdminAction {
final String docIndex = "fess";
final String fromIndex = fessConfig.getIndexDocumentUpdateIndex();
final String toIndex = docIndex + "." + new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
if (fessEsClient.createIndex(docIndex, toIndex, numberOfShards, autoExpandReplicas, resetDictionaries)) {
fessEsClient.admin().cluster().prepareHealth(toIndex).setWaitForYellowStatus().execute(ActionListener.wrap(response -> {
fessEsClient.addMapping(docIndex, "doc", toIndex);
fessEsClient.reindex(fromIndex, toIndex, replaceAliases);
if (replaceAliases && !fessEsClient.updateAlias(toIndex)) {
if (searchEngineClient.createIndex(docIndex, toIndex, numberOfShards, autoExpandReplicas, resetDictionaries)) {
searchEngineClient.admin().cluster().prepareHealth(toIndex).setWaitForYellowStatus().execute(ActionListener.wrap(response -> {
searchEngineClient.addMapping(docIndex, "doc", toIndex);
searchEngineClient.reindex(fromIndex, toIndex, replaceAliases);
if (replaceAliases && !searchEngineClient.updateAlias(toIndex)) {
logger.warn("Failed to update aliases for {} and {}", fromIndex, toIndex);
}
}, e -> logger.warn("Failed to reindex from {} to {}", fromIndex, toIndex, e)));

View file

@ -34,7 +34,7 @@ import org.codelibs.fess.annotation.Secured;
import org.codelibs.fess.app.web.CrudMode;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.entity.SearchRenderData;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.InvalidQueryException;
import org.codelibs.fess.exception.ResultOffsetExceededException;
import org.codelibs.fess.helper.QueryHelper;
@ -69,7 +69,7 @@ public class AdminSearchlistAction extends FessAdminAction {
// =========
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
@Resource
protected QueryHelper queryHelper;
@ -212,7 +212,7 @@ public class AdminSearchlistAction extends FessAdminAction {
final String docId = form.docId;
try {
final QueryBuilder query = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId);
fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), query);
searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), query);
saveInfo(messages -> messages.addSuccessDeleteDocFromIndex(GLOBAL));
} catch (final Exception e) {
throwValidationError(messages -> messages.addErrorsFailedToDeleteDocInAdmin(GLOBAL), this::asListHtml);
@ -280,7 +280,7 @@ public class AdminSearchlistAction extends FessAdminAction {
entity.put(fessConfig.getIndexFieldId(), newId);
final String index = fessConfig.getIndexDocumentUpdateIndex();
fessEsClient.store(index, entity);
searchEngineClient.store(index, entity);
saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
} catch (final Exception e) {
logger.error("Failed to add {}", entity, e);
@ -313,11 +313,11 @@ public class AdminSearchlistAction extends FessAdminAction {
final Long seqNo = (Long) entity.remove(fessConfig.getIndexFieldSeqNo());
final Long primaryTerm = (Long) entity.remove(fessConfig.getIndexFieldPrimaryTerm());
if (seqNo != null && primaryTerm != null && oldId != null) {
fessEsClient.delete(index, oldId, seqNo, primaryTerm);
searchEngineClient.delete(index, oldId, seqNo, primaryTerm);
}
}
fessEsClient.store(index, entity);
searchEngineClient.store(index, entity);
saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
} catch (final Exception e) {
logger.error("Failed to update {}", entity, e);
@ -385,7 +385,7 @@ public class AdminSearchlistAction extends FessAdminAction {
public static OptionalEntity<Map<String, Object>> getDoc(final CreateForm form) {
final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
switch (form.crudMode) {
case CrudMode.CREATE:
final Map<String, Object> entity = new HashMap<>();
@ -399,7 +399,7 @@ public class AdminSearchlistAction extends FessAdminAction {
docId = null;
}
if (StringUtil.isNotBlank(docId)) {
return fessEsClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
return searchEngineClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
builder.setQuery(QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId));
return true;
});

View file

@ -23,7 +23,7 @@ import org.codelibs.fesen.client.IndicesAdminClient;
import org.codelibs.fess.annotation.Secured;
import org.codelibs.fess.app.service.ScheduledJobService;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exbhv.DataConfigBhv;
import org.codelibs.fess.es.config.exbhv.ElevateWordBhv;
import org.codelibs.fess.es.config.exbhv.FileConfigBhv;
@ -107,7 +107,7 @@ public class AdminUpgradeAction extends FessAdminAction {
protected ElevateWordBhv elevateWordBhv;
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
@Resource
protected ScheduledJobService scheduledJobService;
@ -497,7 +497,7 @@ public class AdminUpgradeAction extends FessAdminAction {
}
private void upgradeFrom12_1() {
final IndicesAdminClient indicesClient = fessEsClient.admin().indices();
final IndicesAdminClient indicesClient = searchEngineClient.admin().indices();
UpgradeUtil.putMapping(indicesClient, "fess_log.search_log", "search_log",
"{\"dynamic_templates\": [" + "{\"documents\": {\"path_match\": \"documents.*\",\"mapping\": {\"type\": \"keyword\"}}}"//
@ -523,7 +523,7 @@ public class AdminUpgradeAction extends FessAdminAction {
}
private void upgradeFrom12_6() {
final IndicesAdminClient indicesClient = fessEsClient.admin().indices();
final IndicesAdminClient indicesClient = searchEngineClient.admin().indices();
UpgradeUtil.deleteIndex(indicesClient, ".fess_config.web_config_to_role", res -> {});
UpgradeUtil.deleteIndex(indicesClient, ".fess_config.file_config_to_role", res -> {});
UpgradeUtil.deleteIndex(indicesClient, ".fess_config.data_config_to_role", res -> {});
@ -533,7 +533,7 @@ public class AdminUpgradeAction extends FessAdminAction {
}
private void upgradeFrom13_0() {
UpgradeUtil.addData(fessEsClient, ".fess_config.scheduled_job", "label_updater",
UpgradeUtil.addData(searchEngineClient, ".fess_config.scheduled_job", "label_updater",
"{\"name\":\"Label Updater\",\"target\":\"all\",\"cronExpression\":\"\",\"scriptType\":\"groovy\",\"scriptData\":\"return container.getComponent(\\\"updateLabelJob\\\").execute();\",\"jobLogging\":false,\"crawler\":false,\"available\":true,\"sortOrder\":11,\"createdBy\":\"system\",\"createdTime\":0,\"updatedBy\":\"system\",\"updatedTime\":0}");
}

View file

@ -38,7 +38,7 @@ import org.codelibs.fess.app.web.api.ApiResult.ApiUpdateResponse;
import org.codelibs.fess.app.web.api.ApiResult.Status;
import org.codelibs.fess.app.web.api.admin.FessApiAdminAction;
import org.codelibs.fess.entity.SearchRenderData;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.InvalidQueryException;
import org.codelibs.fess.exception.ResultOffsetExceededException;
import org.codelibs.fess.helper.SearchHelper;
@ -63,7 +63,7 @@ public class ApiAdminSearchlistAction extends FessApiAdminAction {
protected SearchHelper searchHelper;
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
// ===================================================================================
// Search Execute
@ -104,7 +104,7 @@ public class ApiAdminSearchlistAction extends FessApiAdminAction {
// GET /api/admin/searchlist/doc/{doc_id}
@Execute
public JsonResponse<ApiResult> get$doc(final String id) {
return asJson(new ApiDocResponse().doc(fessEsClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
return asJson(new ApiDocResponse().doc(searchEngineClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
builder.setQuery(QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), id));
return true;
}).orElseGet(() -> {
@ -130,7 +130,7 @@ public class ApiAdminSearchlistAction extends FessApiAdminAction {
entity.put(fessConfig.getIndexFieldId(), newId);
final String index = fessConfig.getIndexDocumentUpdateIndex();
fessEsClient.store(index, entity);
searchEngineClient.store(index, entity);
saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
} catch (final Exception e) {
logger.error("Failed to add {}", entity, e);
@ -167,11 +167,11 @@ public class ApiAdminSearchlistAction extends FessApiAdminAction {
final Number seqNo = (Number) entity.remove(fessConfig.getIndexFieldSeqNo());
final Number primaryTerm = (Number) entity.remove(fessConfig.getIndexFieldPrimaryTerm());
if (seqNo != null && primaryTerm != null && oldId != null) {
fessEsClient.delete(index, oldId, seqNo, primaryTerm);
searchEngineClient.delete(index, oldId, seqNo, primaryTerm);
}
}
fessEsClient.store(index, entity);
searchEngineClient.store(index, entity);
saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
} catch (final Exception e) {
logger.error("Failed to update {}", entity, e);
@ -191,7 +191,7 @@ public class ApiAdminSearchlistAction extends FessApiAdminAction {
public JsonResponse<ApiResult> delete$doc(final String id) {
try {
final QueryBuilder query = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), id);
fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), query);
searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), query);
saveInfo(messages -> messages.addSuccessDeleteDocFromIndex(GLOBAL));
} catch (final Exception e) {
throwValidationErrorApi(messages -> messages.addErrorsFailedToDeleteDocInAdmin(GLOBAL));

View file

@ -38,7 +38,7 @@ import org.codelibs.fess.crawler.entity.RequestData;
import org.codelibs.fess.crawler.entity.ResponseData;
import org.codelibs.fess.crawler.entity.UrlQueue;
import org.codelibs.fess.crawler.log.LogType;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exentity.CrawlingConfig;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.exception.ContentNotFoundException;
@ -64,7 +64,7 @@ public class FessCrawlerThread extends CrawlerThread {
final CrawlingConfigHelper crawlingConfigHelper = ComponentUtil.getCrawlingConfigHelper();
final CrawlingInfoHelper crawlingInfoHelper = ComponentUtil.getCrawlingInfoHelper();
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final String url = urlQueue.getUrl();
ResponseData responseData = null;
@ -98,19 +98,19 @@ public class FessCrawlerThread extends CrawlerThread {
if (logger.isDebugEnabled()) {
logger.debug("Searching indexed document: {}", id);
}
final Map<String, Object> document = indexingHelper.getDocument(fessEsClient, id,
final Map<String, Object> document = indexingHelper.getDocument(searchEngineClient, id,
new String[] { fessConfig.getIndexFieldId(), fessConfig.getIndexFieldLastModified(),
fessConfig.getIndexFieldAnchor(), fessConfig.getIndexFieldSegment(), fessConfig.getIndexFieldExpires(),
fessConfig.getIndexFieldClickCount(), fessConfig.getIndexFieldFavoriteCount() });
if (document == null) {
storeChildUrlsToQueue(urlQueue, getChildUrlSet(fessEsClient, id));
storeChildUrlsToQueue(urlQueue, getChildUrlSet(searchEngineClient, id));
return true;
}
final Date expires = DocumentUtil.getValue(document, fessConfig.getIndexFieldExpires(), Date.class);
if (expires != null && expires.getTime() < System.currentTimeMillis()) {
final Object idValue = document.get(fessConfig.getIndexFieldId());
if (idValue != null && !indexingHelper.deleteDocument(fessEsClient, idValue.toString())) {
if (idValue != null && !indexingHelper.deleteDocument(searchEngineClient, idValue.toString())) {
logger.debug("Failed to delete expired document: {}", url);
}
return true;
@ -137,7 +137,7 @@ public class FessCrawlerThread extends CrawlerThread {
}
if (httpStatusCode == 404) {
storeChildUrlsToQueue(urlQueue, getAnchorSet(document.get(fessConfig.getIndexFieldAnchor())));
if (!indexingHelper.deleteDocument(fessEsClient, id)) {
if (!indexingHelper.deleteDocument(searchEngineClient, id)) {
logger.debug("Failed to delete 404 document: {}", url);
}
return false;
@ -157,7 +157,7 @@ public class FessCrawlerThread extends CrawlerThread {
final Date documentExpires = crawlingInfoHelper.getDocumentExpires(crawlingConfig);
if (documentExpires != null
&& !indexingHelper.updateDocument(fessEsClient, id, fessConfig.getIndexFieldExpires(), documentExpires)) {
&& !indexingHelper.updateDocument(searchEngineClient, id, fessConfig.getIndexFieldExpires(), documentExpires)) {
logger.debug("Failed to update {} at {}", fessConfig.getIndexFieldExpires(), url);
}
@ -210,11 +210,11 @@ public class FessCrawlerThread extends CrawlerThread {
return childUrlSet;
}
protected Set<RequestData> getChildUrlSet(final FessEsClient fessEsClient, final String id) {
protected Set<RequestData> getChildUrlSet(final SearchEngineClient searchEngineClient, final String id) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
final List<Map<String, Object>> docList =
indexingHelper.getChildDocumentList(fessEsClient, id, new String[] { fessConfig.getIndexFieldUrl() });
indexingHelper.getChildDocumentList(searchEngineClient, id, new String[] { fessConfig.getIndexFieldUrl() });
if (docList.isEmpty()) {
return null;
}

View file

@ -46,7 +46,7 @@ import org.codelibs.fess.crawler.processor.impl.DefaultResponseProcessor;
import org.codelibs.fess.crawler.rule.Rule;
import org.codelibs.fess.crawler.rule.RuleManager;
import org.codelibs.fess.crawler.transformer.Transformer;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.DataStoreCrawlingException;
import org.codelibs.fess.helper.IndexingHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
@ -254,10 +254,10 @@ public class FileListIndexUpdateCallbackImpl implements IndexUpdateCallback {
final long maxAccessCount = getMaxAccessCount(paramMap, dataMap);
final String url = dataMap.get(fessConfig.getIndexFieldUrl()).toString();
if (maxAccessCount != 1L) {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
final long count =
indexingHelper.deleteDocumentByQuery(fessEsClient, QueryBuilders.prefixQuery(fessConfig.getIndexFieldUrl(), url));
final long count = indexingHelper.deleteDocumentByQuery(searchEngineClient,
QueryBuilders.prefixQuery(fessConfig.getIndexFieldUrl(), url));
if (logger.isDebugEnabled()) {
logger.debug("Deleted {} docs for {}*", count, url);
}
@ -295,10 +295,10 @@ public class FileListIndexUpdateCallbackImpl implements IndexUpdateCallback {
}
protected void deleteDocuments() {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
for (final String url : deleteUrlList) {
indexingHelper.deleteDocumentByUrl(fessEsClient, url);
indexingHelper.deleteDocumentByUrl(searchEngineClient, url);
}
if (logger.isDebugEnabled()) {
logger.debug("Deleted {}", deleteUrlList);

View file

@ -25,7 +25,7 @@ import javax.annotation.PostConstruct;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.stream.StreamUtil;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.DataStoreException;
import org.codelibs.fess.helper.CrawlingInfoHelper;
import org.codelibs.fess.helper.IndexingHelper;
@ -76,7 +76,7 @@ public class IndexUpdateCallbackImpl implements IndexUpdateCallback {
final long startTime = System.currentTimeMillis();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
if (logger.isDebugEnabled()) {
logger.debug("Adding {}", dataMap);
@ -129,7 +129,7 @@ public class IndexUpdateCallbackImpl implements IndexUpdateCallback {
}
if (docList.getContentSize() >= maxDocumentRequestSize || docList.size() >= maxDocumentCacheSize) {
indexingHelper.sendDocuments(fessEsClient, docList);
indexingHelper.sendDocuments(searchEngineClient, docList);
}
executeTime += processingTime;
}
@ -162,8 +162,8 @@ public class IndexUpdateCallbackImpl implements IndexUpdateCallback {
synchronized (docList) {
if (!docList.isEmpty()) {
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
indexingHelper.sendDocuments(fessEsClient, docList);
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
indexingHelper.sendDocuments(searchEngineClient, docList);
}
}
}

View file

@ -26,7 +26,7 @@ import org.codelibs.fesen.action.admin.cluster.health.ClusterHealthResponse;
import org.codelibs.fesen.cluster.health.ClusterHealthStatus;
import org.codelibs.fesen.common.xcontent.XContentType;
import org.codelibs.fess.Constants;
import org.codelibs.fess.util.EsUtil;
import org.codelibs.fess.util.SearchEngineUtil;
public class PingResponse {
private static final String CLUSTER_NAME = "cluster_name";
@ -57,7 +57,7 @@ public class PingResponse {
status = response.getStatus() == ClusterHealthStatus.RED ? 1 : 0;
clusterName = response.getClusterName();
clusterStatus = response.getStatus().toString();
try (OutputStream out = EsUtil.getXContentBuilderOutputStream((builder, params) -> {
try (OutputStream out = SearchEngineUtil.getXContentBuilderOutputStream((builder, params) -> {
builder.startObject();
builder.field(CLUSTER_NAME, response.getClusterName());
builder.field(STATUS, response.getStatus().name().toLowerCase(Locale.ROOT));

View file

@ -163,9 +163,9 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.io.BaseEncoding;
public class FessEsClient implements Client {
public class SearchEngineClient implements Client {
private static final Logger logger = LogManager.getLogger(FessEsClient.class);
private static final Logger logger = LogManager.getLogger(SearchEngineClient.class);
private static final String LOG_INDEX_PREFIX = "fess_log";
@ -199,7 +199,7 @@ public class FessEsClient implements Client {
protected int maxEsStatusRetry = 60;
protected String clusterName = "elasticsearch";
protected String clusterName = "fesen";
public void addIndexConfig(final String path) {
indexConfigList.add(path);
@ -905,7 +905,7 @@ public class FessEsClient implements Client {
.actionGet(ComponentUtil.getFessConfig().getIndexIndexTimeout()).getResult();
return result == Result.CREATED || result == Result.UPDATED;
} catch (final FesenException e) {
throw new FessEsClientException("Failed to set " + value + " to " + field + " for doc " + id, e);
throw new SearchEngineClientException("Failed to set " + value + " to " + field + " for doc " + id, e);
}
}
@ -950,7 +950,7 @@ public class FessEsClient implements Client {
client.admin().cluster().prepareHealth().execute().actionGet(ComponentUtil.getFessConfig().getIndexHealthTimeout());
return new PingResponse(response);
} catch (final FesenException e) {
throw new FessEsClientException("Failed to process a ping request.", e);
throw new SearchEngineClientException("Failed to process a ping request.", e);
}
}
@ -980,7 +980,7 @@ public class FessEsClient implements Client {
}
}
}
throw new FessEsClientException(response.buildFailureMessage());
throw new SearchEngineClientException(response.buildFailureMessage());
}
}
@ -1266,7 +1266,7 @@ public class FessEsClient implements Client {
final Result result = response.getResult();
return result == Result.CREATED || result == Result.UPDATED;
} catch (final FesenException e) {
throw new FessEsClientException("Failed to store: " + obj, e);
throw new SearchEngineClientException("Failed to store: " + obj, e);
}
}
@ -1286,7 +1286,7 @@ public class FessEsClient implements Client {
final DeleteResponse response = builder.execute().actionGet(ComponentUtil.getFessConfig().getIndexDeleteTimeout());
return response.getResult() == Result.DELETED;
} catch (final FesenException e) {
throw new FessEsClientException("Failed to delete: " + index + "/" + id + "@" + seqNo + ":" + primaryTerm, e);
throw new SearchEngineClientException("Failed to delete: " + index + "/" + id + "@" + seqNo + ":" + primaryTerm, e);
}
}

View file

@ -17,15 +17,15 @@ package org.codelibs.fess.es.client;
import org.codelibs.fess.exception.FessSystemException;
public class FessEsClientException extends FessSystemException {
public class SearchEngineClientException extends FessSystemException {
private static final long serialVersionUID = 1L;
public FessEsClientException(final String message, final Throwable cause) {
public SearchEngineClientException(final String message, final Throwable cause) {
super(message, cause);
}
public FessEsClientException(final String message) {
public SearchEngineClientException(final String message) {
super(message);
}

View file

@ -51,7 +51,7 @@ import org.codelibs.fess.Constants;
import org.codelibs.fess.app.service.CrawlingInfoService;
import org.codelibs.fess.app.service.PathMappingService;
import org.codelibs.fess.crawler.client.FesenClient;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.helper.CrawlingInfoHelper;
import org.codelibs.fess.helper.DataIndexHelper;
@ -86,7 +86,7 @@ public class Crawler {
private static Queue<String> errors = new ConcurrentLinkedQueue<>();
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
@Resource
protected WebFsIndexHelper webFsIndexHelper;

View file

@ -34,7 +34,7 @@ import org.codelibs.fesen.monitor.os.OsProbe;
import org.codelibs.fesen.monitor.process.ProcessProbe;
import org.codelibs.fess.Constants;
import org.codelibs.fess.crawler.client.FesenClient;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.helper.SuggestHelper;
import org.codelibs.fess.timer.SystemMonitorTarget;
@ -51,7 +51,7 @@ public class SuggestCreator {
private static final Logger logger = LogManager.getLogger(SuggestCreator.class);
@Resource
public FessEsClient fessEsClient;
public SearchEngineClient searchEngineClient;
protected static class Options {
@Option(name = "-s", aliases = "--sessionId", metaVar = "sessionId", usage = "Session ID")

View file

@ -34,7 +34,7 @@ import org.codelibs.fesen.monitor.os.OsProbe;
import org.codelibs.fesen.monitor.process.ProcessProbe;
import org.codelibs.fess.Constants;
import org.codelibs.fess.crawler.client.FesenClient;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.timer.SystemMonitorTarget;
import org.codelibs.fess.util.ComponentUtil;
@ -50,7 +50,7 @@ public class ThumbnailGenerator {
private static final Logger logger = LogManager.getLogger(ThumbnailGenerator.class);
@Resource
public FessEsClient fessEsClient;
public SearchEngineClient searchEngineClient;
protected static class Options {
@Option(name = "-s", aliases = "--sessionId", metaVar = "sessionId", usage = "Session ID")

View file

@ -39,7 +39,7 @@ import org.codelibs.fesen.search.aggregations.bucket.terms.Terms.Bucket;
import org.codelibs.fesen.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.codelibs.fess.Constants;
import org.codelibs.fess.app.service.CrawlingInfoService;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exentity.CrawlingConfig;
import org.codelibs.fess.es.config.exentity.CrawlingInfo;
import org.codelibs.fess.es.config.exentity.CrawlingInfoParam;
@ -178,9 +178,9 @@ public class CrawlingInfoHelper {
return generateId(urlId);
}
public List<Map<String, String>> getSessionIdList(final FessEsClient fessEsClient) {
public List<Map<String, String>> getSessionIdList(final SearchEngineClient searchEngineClient) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.search(fessConfig.getIndexDocumentSearchIndex(), queryRequestBuilder -> {
return searchEngineClient.search(fessConfig.getIndexDocumentSearchIndex(), queryRequestBuilder -> {
queryRequestBuilder.setQuery(QueryBuilders.matchAllQuery());
final TermsAggregationBuilder termsBuilder = AggregationBuilders.terms(fessConfig.getIndexFieldSegment())
.field(fessConfig.getIndexFieldSegment()).size(maxSessionIdsInList).order(BucketOrder.key(false));

View file

@ -32,7 +32,7 @@ import org.codelibs.fess.app.service.FailureUrlService;
import org.codelibs.fess.ds.DataStore;
import org.codelibs.fess.ds.DataStoreFactory;
import org.codelibs.fess.ds.callback.IndexUpdateCallback;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exentity.DataConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
@ -241,10 +241,10 @@ public class DataIndexHelper {
.mustNot(QueryBuilders.existsQuery(fessConfig.getIndexFieldExpires())))
.mustNot(QueryBuilders.termQuery(fessConfig.getIndexFieldSegment(), sessionId));
try {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final String index = fessConfig.getIndexDocumentUpdateIndex();
fessEsClient.admin().indices().prepareRefresh(index).execute().actionGet();
final long numOfDeleted = fessEsClient.deleteByQuery(index, queryBuilder);
searchEngineClient.admin().indices().prepareRefresh(index).execute().actionGet();
final long numOfDeleted = searchEngineClient.deleteByQuery(index, queryBuilder);
logger.info("Deleted {} old docs.", numOfDeleted);
} catch (final Exception e) {
logger.error("Could not delete old docs at {}", dataConfig, e);

View file

@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
import org.codelibs.fesen.action.search.SearchResponse;
import org.codelibs.fesen.index.query.QueryBuilder;
import org.codelibs.fesen.index.query.QueryBuilders;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.thumbnail.ThumbnailManager;
import org.codelibs.fess.util.ComponentUtil;
@ -40,7 +40,7 @@ public class IndexingHelper {
protected long requestInterval = 500;
public void sendDocuments(final FessEsClient fessEsClient, final DocList docList) {
public void sendDocuments(final SearchEngineClient searchEngineClient, final DocList docList) {
if (docList.isEmpty()) {
return;
}
@ -68,9 +68,9 @@ public class IndexingHelper {
});
}
final CrawlingConfigHelper crawlingConfigHelper = ComponentUtil.getCrawlingConfigHelper();
synchronized (fessEsClient) {
deleteOldDocuments(fessEsClient, docList);
fessEsClient.addAll(fessConfig.getIndexDocumentUpdateIndex(), docList, (doc, builder) -> {
synchronized (searchEngineClient) {
deleteOldDocuments(searchEngineClient, docList);
searchEngineClient.addAll(fessConfig.getIndexDocumentUpdateIndex(), docList, (doc, builder) -> {
final String configId = (String) doc.get(fessConfig.getIndexFieldConfigId());
crawlingConfigHelper.getPipeline(configId).ifPresent(s -> builder.setPipeline(s));
});
@ -90,7 +90,7 @@ public class IndexingHelper {
}
}
private void deleteOldDocuments(final FessEsClient fessEsClient, final DocList docList) {
private void deleteOldDocuments(final SearchEngineClient searchEngineClient, final DocList docList) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final List<String> docIdList = new ArrayList<>();
@ -109,7 +109,7 @@ public class IndexingHelper {
.must(QueryBuilders.termQuery(fessConfig.getIndexFieldUrl(), inputDoc.get(fessConfig.getIndexFieldUrl())))
.filter(QueryBuilders.termQuery(fessConfig.getIndexFieldConfigId(), configIdValue));
final List<Map<String, Object>> docs = getDocumentListByQuery(fessEsClient, queryBuilder,
final List<Map<String, Object>> docs = getDocumentListByQuery(searchEngineClient, queryBuilder,
new String[] { fessConfig.getIndexFieldId(), fessConfig.getIndexFieldDocId() });
for (final Map<String, Object> doc : docs) {
final Object oldIdValue = doc.get(fessConfig.getIndexFieldId());
@ -125,76 +125,78 @@ public class IndexingHelper {
}
}
if (!docIdList.isEmpty()) {
fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
QueryBuilders.idsQuery().addIds(docIdList.stream().toArray(n -> new String[n])));
}
}
public boolean updateDocument(final FessEsClient fessEsClient, final String id, final String field, final Object value) {
public boolean updateDocument(final SearchEngineClient searchEngineClient, final String id, final String field, final Object value) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.update(fessConfig.getIndexDocumentUpdateIndex(), id, field, value);
return searchEngineClient.update(fessConfig.getIndexDocumentUpdateIndex(), id, field, value);
}
public boolean deleteDocument(final FessEsClient fessEsClient, final String id) {
public boolean deleteDocument(final SearchEngineClient searchEngineClient, final String id) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.delete(fessConfig.getIndexDocumentUpdateIndex(), id);
return searchEngineClient.delete(fessConfig.getIndexDocumentUpdateIndex(), id);
}
public long deleteDocumentByUrl(final FessEsClient fessEsClient, final String url) {
public long deleteDocumentByUrl(final SearchEngineClient searchEngineClient, final String url) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
return searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
QueryBuilders.termQuery(fessConfig.getIndexFieldUrl(), url));
}
public long deleteDocumentsByDocId(final FessEsClient fessEsClient, final List<String> docIdList) {
public long deleteDocumentsByDocId(final SearchEngineClient searchEngineClient, final List<String> docIdList) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
return searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
QueryBuilders.idsQuery().addIds(docIdList.stream().toArray(n -> new String[n])));
}
public long deleteDocumentByQuery(final FessEsClient fessEsClient, final QueryBuilder queryBuilder) {
public long deleteDocumentByQuery(final SearchEngineClient searchEngineClient, final QueryBuilder queryBuilder) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder);
return searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder);
}
public Map<String, Object> getDocument(final FessEsClient fessEsClient, final String id, final String[] fields) {
public Map<String, Object> getDocument(final SearchEngineClient searchEngineClient, final String id, final String[] fields) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
return searchEngineClient.getDocument(fessConfig.getIndexDocumentUpdateIndex(), builder -> {
builder.setQuery(QueryBuilders.idsQuery().addIds(id));
builder.setFetchSource(fields, null);
return true;
}).orElse(null);
}
public List<Map<String, Object>> getDocumentListByPrefixId(final FessEsClient fessEsClient, final String id, final String[] fields) {
public List<Map<String, Object>> getDocumentListByPrefixId(final SearchEngineClient searchEngineClient, final String id,
final String[] fields) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final QueryBuilder queryBuilder = QueryBuilders.prefixQuery(fessConfig.getIndexFieldId(), id);
return getDocumentListByQuery(fessEsClient, queryBuilder, fields);
return getDocumentListByQuery(searchEngineClient, queryBuilder, fields);
}
public void deleteChildDocument(final FessEsClient fessEsClient, final String id) {
public void deleteChildDocument(final SearchEngineClient searchEngineClient, final String id) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(),
QueryBuilders.termQuery(fessConfig.getIndexFieldParentId(), id));
}
public List<Map<String, Object>> getChildDocumentList(final FessEsClient fessEsClient, final String id, final String[] fields) {
public List<Map<String, Object>> getChildDocumentList(final SearchEngineClient searchEngineClient, final String id,
final String[] fields) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final QueryBuilder queryBuilder = QueryBuilders.termQuery(fessConfig.getIndexFieldParentId(), id);
return getDocumentListByQuery(fessEsClient, queryBuilder, fields);
return getDocumentListByQuery(searchEngineClient, queryBuilder, fields);
}
protected List<Map<String, Object>> getDocumentListByQuery(final FessEsClient fessEsClient, final QueryBuilder queryBuilder,
protected List<Map<String, Object>> getDocumentListByQuery(final SearchEngineClient searchEngineClient, final QueryBuilder queryBuilder,
final String[] fields) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final SearchResponse countResponse = fessEsClient.prepareSearch(fessConfig.getIndexDocumentUpdateIndex()).setQuery(queryBuilder)
.setSize(0).execute().actionGet(fessConfig.getIndexSearchTimeout());
final SearchResponse countResponse = searchEngineClient.prepareSearch(fessConfig.getIndexDocumentUpdateIndex())
.setQuery(queryBuilder).setSize(0).execute().actionGet(fessConfig.getIndexSearchTimeout());
final long numFound = countResponse.getHits().getTotalHits().value;
// TODO max threshold
return fessEsClient.getDocumentList(fessConfig.getIndexDocumentUpdateIndex(), requestBuilder -> {
return searchEngineClient.getDocumentList(fessConfig.getIndexDocumentUpdateIndex(), requestBuilder -> {
requestBuilder.setQuery(queryBuilder).setSize((int) numFound);
if (fields != null) {
requestBuilder.setFetchSource(fields, null);

View file

@ -37,8 +37,8 @@ import org.codelibs.fesen.index.query.functionscore.ScoreFunctionBuilder;
import org.codelibs.fesen.index.query.functionscore.ScoreFunctionBuilders;
import org.codelibs.fess.Constants;
import org.codelibs.fess.entity.SearchRequestParams.SearchRequestType;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.FessEsClient.SearchConditionBuilder;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.client.SearchEngineClient.SearchConditionBuilder;
import org.codelibs.fess.es.config.exbhv.KeyMatchBhv;
import org.codelibs.fess.es.config.exentity.KeyMatch;
import org.codelibs.fess.mylasta.direction.FessConfig;
@ -119,9 +119,9 @@ public class KeyMatchHelper {
}
protected List<Map<String, Object>> getDocumentList(final KeyMatch keyMatch) {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(),
return searchEngineClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(),
searchRequestBuilder -> SearchConditionBuilder
.builder(searchRequestBuilder.setPreference(Constants.SEARCH_PREFERENCE_LOCAL))
.searchRequestType(SearchRequestType.ADMIN_SEARCH).size(keyMatch.getMaxSize()).query(keyMatch.getQuery())
@ -155,13 +155,13 @@ public class KeyMatchHelper {
}
public List<Map<String, Object>> getBoostedDocumentList(final String term, final int size) {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final Pair<QueryBuilder, ScoreFunctionBuilder<?>> pair = getQueryMap().get(toLowerCase(term));
if (pair == null) {
return Collections.emptyList();
}
final FessConfig fessConfig = ComponentUtil.getFessConfig();
return fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> {
return searchEngineClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> {
searchRequestBuilder.setPreference(Constants.SEARCH_PREFERENCE_LOCAL).setQuery(pair.getFirst()).setSize(size);
return true;
});

View file

@ -47,8 +47,8 @@ import org.codelibs.fess.entity.QueryContext;
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.FessEsClient.SearchConditionBuilder;
import org.codelibs.fess.es.client.FessEsClientException;
import org.codelibs.fess.es.client.SearchEngineClient.SearchConditionBuilder;
import org.codelibs.fess.es.client.SearchEngineClientException;
import org.codelibs.fess.mylasta.action.FessUserBean;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.BooleanFunction;
@ -331,7 +331,7 @@ public class SearchHelper {
final UpdateResponse response = builder.execute().actionGet(fessConfig.getIndexIndexTimeout());
return response.getResult() == Result.CREATED || response.getResult() == Result.UPDATED;
} catch (final FesenException e) {
throw new FessEsClientException("Failed to update doc " + id, e);
throw new SearchEngineClientException("Failed to update doc " + id, e);
}
}
@ -341,12 +341,12 @@ public class SearchHelper {
try {
final BulkResponse response = builder.execute().get();
if (response.hasFailures()) {
throw new FessEsClientException(response.buildFailureMessage());
throw new SearchEngineClientException(response.buildFailureMessage());
} else {
return true;
}
} catch (InterruptedException | ExecutionException e) {
throw new FessEsClientException("Failed to update bulk data.", e);
throw new SearchEngineClientException("Failed to update bulk data.", e);
}
}
}

View file

@ -44,7 +44,7 @@ import org.codelibs.fesen.index.query.functionscore.FunctionScoreQueryBuilder;
import org.codelibs.fesen.index.query.functionscore.ScoreFunctionBuilders;
import org.codelibs.fesen.search.sort.SortBuilders;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exbhv.BadWordBhv;
import org.codelibs.fess.es.config.exbhv.ElevateWordBhv;
import org.codelibs.fess.es.config.exentity.BadWord;
@ -96,8 +96,9 @@ public class SuggestHelper {
split(fessConfig.getSuggestFieldRoles(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(roleFieldNameSet::add));
contentFieldList = Arrays.asList(stream(fessConfig.getSuggestFieldContents()).get(stream -> stream.toArray(n -> new String[n])));
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
fessEsClient.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet(fessConfig.getIndexHealthTimeout());
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
searchEngineClient.admin().cluster().prepareHealth().setWaitForYellowStatus().execute()
.actionGet(fessConfig.getIndexHealthTimeout());
final SuggestSettingsBuilder settingsBuilder = SuggestSettings.builder();
settingsBuilder.bulkTimeout(fessConfig.getIndexBulkTimeout());
@ -105,7 +106,7 @@ public class SuggestHelper {
settingsBuilder.indexTimeout(fessConfig.getIndexIndexTimeout());
settingsBuilder.indicesTimeout(fessConfig.getIndexIndicesTimeout());
settingsBuilder.searchTimeout(fessConfig.getIndexSearchTimeout());
suggester = Suggester.builder().settings(settingsBuilder).build(fessEsClient, fessConfig.getIndexDocumentSuggestIndex());
suggester = Suggester.builder().settings(settingsBuilder).build(searchEngineClient, fessConfig.getIndexDocumentSuggestIndex());
suggester.settings().array().delete(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS);
split(fessConfig.getSuggestFieldIndexContents(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(field -> {
try {

View file

@ -44,7 +44,7 @@ import org.codelibs.fess.crawler.service.UrlQueueService;
import org.codelibs.fess.crawler.service.impl.EsDataService;
import org.codelibs.fess.crawler.transformer.Transformer;
import org.codelibs.fess.crawler.util.EsResultList;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.log.exbhv.ClickLogBhv;
import org.codelibs.fess.es.log.exbhv.FavoriteLogBhv;
import org.codelibs.fess.exception.ContainerNotAvailableException;
@ -67,7 +67,7 @@ public class IndexUpdater extends Thread {
protected List<String> sessionIdList;
@Resource
protected FessEsClient fessEsClient;
protected SearchEngineClient searchEngineClient;
@Resource
protected DataService<EsAccessResult> dataService;
@ -237,7 +237,7 @@ public class IndexUpdater extends Thread {
hitCount = ((EsResultList<EsAccessResult>) arList).getTotalHits();
}
if (!docList.isEmpty()) {
indexingHelper.sendDocuments(fessEsClient, docList);
indexingHelper.sendDocuments(searchEngineClient, docList);
}
synchronized (finishedSessionIdList) {
@ -379,7 +379,7 @@ public class IndexUpdater extends Thread {
}
if (docList.getContentSize() >= maxDocumentRequestSize) {
indexingHelper.sendDocuments(fessEsClient, docList);
indexingHelper.sendDocuments(searchEngineClient, docList);
}
documentSize++;
if (logger.isDebugEnabled()) {

View file

@ -21,7 +21,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fess.entity.PingResponse;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.helper.NotificationHelper;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
@ -30,18 +30,18 @@ import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.mail.send.hook.SMailCallbackContext;
import org.lastaflute.core.mail.Postbox;
public class PingEsJob {
public class PingSearchEngineJob {
private static final Logger logger = LogManager.getLogger(PingEsJob.class);
private static final Logger logger = LogManager.getLogger(PingSearchEngineJob.class);
public String execute() {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
final StringBuilder resultBuf = new StringBuilder();
final PingResponse ping = fessEsClient.ping();
final PingResponse ping = searchEngineClient.ping();
final int status = ping.getStatus();
if (systemHelper.isChangedClusterState(status)) {
if (fessConfig.hasNotification()) {

View file

@ -19,7 +19,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.codelibs.fesen.index.query.QueryBuilder;
import org.codelibs.fesen.index.query.QueryBuilders;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
@ -28,7 +28,7 @@ public class PurgeDocJob {
private static final Logger logger = LogManager.getLogger(PurgeDocJob.class);
public String execute() {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final StringBuilder resultBuf = new StringBuilder();
@ -36,7 +36,7 @@ public class PurgeDocJob {
// clean up
final QueryBuilder queryBuilder = QueryBuilders.rangeQuery(fessConfig.getIndexFieldExpires()).to("now");
try {
fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder);
searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder);
} catch (final Exception e) {
logger.error("Could not delete expired documents: {}", queryBuilder.toString(), e);

View file

@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.fesen.index.query.QueryBuilder;
import org.codelibs.fesen.script.Script;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.helper.LabelTypeHelper;
import org.codelibs.fess.helper.LanguageHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
@ -38,7 +38,7 @@ public class UpdateLabelJob {
protected QueryBuilder queryBuilder = null;
public String execute() {
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final LabelTypeHelper labelTypeHelper = ComponentUtil.getLabelTypeHelper();
final LanguageHelper languageHelper = ComponentUtil.getLanguageHelper();
@ -46,7 +46,7 @@ public class UpdateLabelJob {
final StringBuilder resultBuf = new StringBuilder();
try {
final long count = fessEsClient.updateByQuery(fessConfig.getIndexDocumentUpdateIndex(), option -> {
final long count = searchEngineClient.updateByQuery(fessConfig.getIndexDocumentUpdateIndex(), option -> {
if (queryBuilder != null) {
option.setQuery(queryBuilder);
}

View file

@ -30,7 +30,7 @@ import org.codelibs.fesen.index.query.QueryBuilders;
import org.codelibs.fesen.script.Script;
import org.codelibs.fesen.script.ScriptType;
import org.codelibs.fesen.search.SearchHit;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
@ -51,7 +51,7 @@ public abstract class ScoreBooster {
protected Function<Map<String, Object>, String[]> idFinder = params -> {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final FessEsClient client = ComponentUtil.getFessEsClient();
final SearchEngineClient client = ComponentUtil.getFessEsClient();
final String index = fessConfig.getIndexDocumentUpdateIndex();
final Object url = params.get("url");
if (url == null) {
@ -68,7 +68,7 @@ public abstract class ScoreBooster {
if (ids.length == 0) {
return 0L;
}
final FessEsClient client = ComponentUtil.getFessEsClient();
final SearchEngineClient client = ComponentUtil.getFessEsClient();
if (bulkRequestBuilder == null) {
bulkRequestBuilder = client.prepareBulk();
}

View file

@ -43,7 +43,7 @@ import org.codelibs.core.lang.ThreadUtil;
import org.codelibs.core.misc.Tuple3;
import org.codelibs.fesen.index.query.QueryBuilders;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exbhv.ThumbnailQueueBhv;
import org.codelibs.fess.es.config.exentity.ThumbnailQueue;
import org.codelibs.fess.exception.FessSystemException;
@ -357,7 +357,7 @@ public class ThumbnailManager {
protected final String imageExtention;
protected final FessEsClient fessEsClient;
protected final SearchEngineClient searchEngineClient;
protected final FessConfig fessConfig;
@ -367,7 +367,7 @@ public class ThumbnailManager {
this.expiry = expiry;
this.fessConfig = ComponentUtil.getFessConfig();
this.maxPurgeSize = fessConfig.getPageThumbnailPurgeMaxFetchSizeAsInteger();
this.fessEsClient = ComponentUtil.getFessEsClient();
this.searchEngineClient = ComponentUtil.getFessEsClient();
}
protected void deleteFiles() {
@ -384,7 +384,7 @@ public class ThumbnailManager {
if (!deleteFileMap.isEmpty()) {
final String docIdField = fessConfig.getIndexFieldDocId();
fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> {
searchEngineClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> {
searchRequestBuilder.setQuery(
QueryBuilders.termsQuery(docIdField, deleteFileMap.keySet().toArray(new String[deleteFileMap.size()])));
searchRequestBuilder.setFetchSource(new String[] { docIdField }, StringUtil.EMPTY_STRINGS);

View file

@ -34,7 +34,7 @@ import org.codelibs.fess.crawler.client.CrawlerClient;
import org.codelibs.fess.crawler.client.CrawlerClientFactory;
import org.codelibs.fess.crawler.entity.ResponseData;
import org.codelibs.fess.crawler.exception.CrawlingAccessException;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.es.config.exentity.CrawlingConfig;
import org.codelibs.fess.exception.ThumbnailGenerationException;
import org.codelibs.fess.helper.CrawlingConfigHelper;
@ -160,10 +160,10 @@ public abstract class BaseThumbnailGenerator implements ThumbnailGenerator {
protected boolean process(final String id, final BiPredicate<String, String> consumer) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
final IndexingHelper indexingHelper = ComponentUtil.getIndexingHelper();
try {
final Map<String, Object> doc = indexingHelper.getDocument(fessEsClient, id,
final Map<String, Object> doc = indexingHelper.getDocument(searchEngineClient, id,
new String[] { fessConfig.getIndexFieldThumbnail(), fessConfig.getIndexFieldConfigId() });
if (doc == null) {
throw new ThumbnailGenerationException("Document is not found: " + id);

View file

@ -40,7 +40,7 @@ import org.codelibs.fesen.monitor.os.OsProbe;
import org.codelibs.fesen.monitor.os.OsStats;
import org.codelibs.fesen.monitor.process.ProcessProbe;
import org.codelibs.fess.Constants;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.util.ComponentUtil;
public class SystemMonitorTarget implements TimeoutTarget {
@ -178,7 +178,7 @@ public class SystemMonitorTarget implements TimeoutTarget {
private void appendFesenStats(final StringBuilder buf) {
String stats = null;
try {
final FessEsClient esClient = ComponentUtil.getFessEsClient();
final SearchEngineClient esClient = ComponentUtil.getFessEsClient();
final NodesStatsResponse response = esClient.admin().cluster().prepareNodesStats().all().execute().actionGet(10000L);
final XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();

View file

@ -35,7 +35,7 @@ import org.codelibs.fess.crawler.extractor.ExtractorFactory;
import org.codelibs.fess.crawler.service.DataService;
import org.codelibs.fess.dict.DictionaryManager;
import org.codelibs.fess.ds.DataStoreFactory;
import org.codelibs.fess.es.client.FessEsClient;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.exception.ContainerNotAvailableException;
import org.codelibs.fess.helper.AccessTokenHelper;
import org.codelibs.fess.helper.ActivityHelper;
@ -357,7 +357,7 @@ public final class ComponentUtil {
return getComponent(DATA_SERVICE);
}
public static FessEsClient getFessEsClient() {
public static SearchEngineClient getFessEsClient() {
return getComponent(FESS_ES_CLIENT);
}

View file

@ -26,11 +26,11 @@ import org.codelibs.fesen.common.xcontent.XContentBuilder;
import org.codelibs.fesen.common.xcontent.XContentFactory;
import org.codelibs.fesen.common.xcontent.XContentType;
public final class EsUtil {
public final class SearchEngineUtil {
private static final Logger logger = LogManager.getLogger(EsUtil.class);
private static final Logger logger = LogManager.getLogger(SearchEngineUtil.class);
private EsUtil() {
private SearchEngineUtil() {
}
public static OutputStream getXContentBuilderOutputStream(final XContentBuilderCallback func, final XContentType xContentType) {

View file

@ -2,7 +2,7 @@
<!DOCTYPE components PUBLIC "-//DBFLUTE//DTD LastaDi 1.0//EN"
"http://dbflute.org/meta/lastadi10.dtd">
<components>
<component name="fessEsClient" class="org.codelibs.fess.es.client.FessEsClient">
<component name="fessEsClient" class="org.codelibs.fess.es.client.SearchEngineClient">
<property name="settings">
{"http.cors.enabled":"true",
"http.cors.allow-origin":"*",

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":"Ping Search Engine","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(\"pingEsJob\").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.PingEsJob" instance="prototype">
<component name="pingEsJob" class="org.codelibs.fess.job.PingSearchEngineJob" instance="prototype">
</component>
<component name="pythonJob" class="org.codelibs.fess.job.PythonJob" instance="prototype">
</component>