diff --git a/src/main/java/org/codelibs/fess/app/service/SearchService.java b/src/main/java/org/codelibs/fess/app/service/SearchService.java index 9fb30ed98..8ac5fc4c2 100644 --- a/src/main/java/org/codelibs/fess/app/service/SearchService.java +++ b/src/main/java/org/codelibs/fess/app/service/SearchService.java @@ -107,7 +107,7 @@ public class SearchService { final String sortField = params.getSort(); final List> documentItems = fessEsClient.search( - fessConfig.getIndexDocumentIndex(), + fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), searchRequestBuilder -> { if (StringUtil.isNotBlank(sortField)) { @@ -188,7 +188,7 @@ public class SearchService { final QueryContext queryContext = queryHelper.build(query, context -> { context.skipRoleQuery(); }); - return fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), + return fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), queryContext.getQueryBuilder()); } @@ -286,7 +286,7 @@ public class SearchService { } public OptionalEntity> getDocumentByDocId(final String docId, final String[] fields) { - return fessEsClient.getDocument(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), builder -> { + return fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), builder -> { builder.setQuery(QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId)); builder.addFields(fields); return true; @@ -294,7 +294,7 @@ public class SearchService { } public List> getDocumentListByDocIds(final String[] docIds, final String[] fields) { - return fessEsClient.getDocumentList(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), builder -> { + return fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), builder -> { builder.setQuery(QueryBuilders.termsQuery(fessConfig.getIndexFieldDocId(), docIds)); builder.setSize(fessConfig.getPagingSearchPageMaxSizeAsInteger().intValue()); builder.addFields(fields); @@ -303,13 +303,13 @@ public class SearchService { } public boolean update(final String id, final String field, final Object value) { - return fessEsClient.update(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), id, field, value); + return fessEsClient.update(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), id, field, value); } public boolean update(final String id, final Consumer builderLambda) { try { final UpdateRequestBuilder builder = - fessEsClient.prepareUpdate(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), id); + fessEsClient.prepareUpdate(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), id); builderLambda.accept(builder); final UpdateResponse response = builder.execute().actionGet(); return response.isCreated(); diff --git a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java index 7df4ae545..9091e02df 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java @@ -198,7 +198,7 @@ public class AdminSearchlistAction extends FessAdminAction { } try { final QueryBuilder query = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), docId); - fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), query); + fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), query); saveInfo(messages -> messages.addSuccessDeleteDocFromIndex(GLOBAL)); } catch (final Exception e) { throwValidationError(messages -> messages.addErrorsFailedToDeleteDocInAdmin(GLOBAL), () -> asListHtml()); diff --git a/src/main/java/org/codelibs/fess/app/web/cache/CacheAction.java b/src/main/java/org/codelibs/fess/app/web/cache/CacheAction.java index 1c6ea50e9..cc719e2b3 100644 --- a/src/main/java/org/codelibs/fess/app/web/cache/CacheAction.java +++ b/src/main/java/org/codelibs/fess/app/web/cache/CacheAction.java @@ -51,12 +51,14 @@ public class CacheAction extends FessSearchAction { Map doc = null; try { - doc = fessEsClient.getDocument(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), queryRequestBuilder -> { - final TermQueryBuilder termQuery = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), form.docId); - queryRequestBuilder.setQuery(termQuery); - queryRequestBuilder.addFields(queryHelper.getCacheResponseFields()); - return true; - }).get(); + doc = + fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), + queryRequestBuilder -> { + final TermQueryBuilder termQuery = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), form.docId); + queryRequestBuilder.setQuery(termQuery); + queryRequestBuilder.addFields(queryHelper.getCacheResponseFields()); + return true; + }).get(); } catch (final Exception e) { logger.warn("Failed to request: " + form.docId, e); } diff --git a/src/main/java/org/codelibs/fess/app/web/go/GoAction.java b/src/main/java/org/codelibs/fess/app/web/go/GoAction.java index 71d7be67e..682223bff 100644 --- a/src/main/java/org/codelibs/fess/app/web/go/GoAction.java +++ b/src/main/java/org/codelibs/fess/app/web/go/GoAction.java @@ -68,12 +68,14 @@ public class GoAction extends FessSearchAction { Map doc = null; try { - doc = fessEsClient.getDocument(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), queryRequestBuilder -> { - final TermQueryBuilder termQuery = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), form.docId); - queryRequestBuilder.setQuery(termQuery); - queryRequestBuilder.addFields(fessConfig.getIndexFieldUrl()); - return true; - }).get(); + doc = + fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), + queryRequestBuilder -> { + final TermQueryBuilder termQuery = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), form.docId); + queryRequestBuilder.setQuery(termQuery); + queryRequestBuilder.addFields(fessConfig.getIndexFieldUrl()); + return true; + }).get(); } catch (final Exception e) { logger.warn("Failed to request: " + form.docId, e); } diff --git a/src/main/java/org/codelibs/fess/app/web/screenshot/ScreenshotAction.java b/src/main/java/org/codelibs/fess/app/web/screenshot/ScreenshotAction.java index c07c06328..c080288ce 100644 --- a/src/main/java/org/codelibs/fess/app/web/screenshot/ScreenshotAction.java +++ b/src/main/java/org/codelibs/fess/app/web/screenshot/ScreenshotAction.java @@ -65,7 +65,7 @@ public class ScreenshotAction extends FessSearchAction { BufferedInputStream in = null; try { final Map doc = - fessEsClient.getDocument(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), + fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), queryRequestBuilder -> { final TermQueryBuilder termQuery = QueryBuilders.termQuery(fessConfig.getIndexFieldDocId(), form.docId); queryRequestBuilder.setQuery(termQuery); diff --git a/src/main/java/org/codelibs/fess/helper/CrawlingInfoHelper.java b/src/main/java/org/codelibs/fess/helper/CrawlingInfoHelper.java index 96cd4e8f9..e3371e791 100644 --- a/src/main/java/org/codelibs/fess/helper/CrawlingInfoHelper.java +++ b/src/main/java/org/codelibs/fess/helper/CrawlingInfoHelper.java @@ -161,7 +161,7 @@ public class CrawlingInfoHelper implements Serializable { public List> getSessionIdList(final FessEsClient fessEsClient) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); return fessEsClient.search( - fessConfig.getIndexDocumentIndex(), + fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), queryRequestBuilder -> { queryRequestBuilder.setQuery(QueryBuilders.matchAllQuery()); diff --git a/src/main/java/org/codelibs/fess/helper/DataIndexHelper.java b/src/main/java/org/codelibs/fess/helper/DataIndexHelper.java index d870539c0..41c28e23f 100644 --- a/src/main/java/org/codelibs/fess/helper/DataIndexHelper.java +++ b/src/main/java/org/codelibs/fess/helper/DataIndexHelper.java @@ -258,8 +258,8 @@ public class DataIndexHelper implements Serializable { QueryBuilders.boolQuery().must(QueryBuilders.termQuery(fessConfig.getIndexFieldConfigId(), dataConfig.getConfigId())) .mustNot(QueryBuilders.termQuery(fessConfig.getIndexFieldSegment(), sessionId)); try { - ComponentUtil.getElasticsearchClient().deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), - queryBuilder); + ComponentUtil.getElasticsearchClient().deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), + fessConfig.getIndexDocumentType(), queryBuilder); } catch (final Exception e) { logger.error("Could not delete old docs at " + dataConfig, e); } diff --git a/src/main/java/org/codelibs/fess/helper/IndexingHelper.java b/src/main/java/org/codelibs/fess/helper/IndexingHelper.java index 7a831190d..df64f2062 100644 --- a/src/main/java/org/codelibs/fess/helper/IndexingHelper.java +++ b/src/main/java/org/codelibs/fess/helper/IndexingHelper.java @@ -46,7 +46,7 @@ public class IndexingHelper { synchronized (fessEsClient) { deleteOldDocuments(fessEsClient, docList); final FessConfig fessConfig = ComponentUtil.getFessConfig(); - fessEsClient.addAll(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), docList); + fessEsClient.addAll(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), docList); } if (logger.isInfoEnabled()) { logger.info("Sent " + docList.size() + " docs (" + (System.currentTimeMillis() - execTime) + "ms)"); @@ -93,7 +93,7 @@ public class IndexingHelper { } } if (!docIdList.isEmpty()) { - fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), + fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), QueryBuilders.idsQuery(fessConfig.getIndexDocumentType()).ids(docIdList.stream().toArray(n -> new String[n]))); } @@ -101,20 +101,21 @@ public class IndexingHelper { public void deleteDocument(final FessEsClient fessEsClient, final String id) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); - fessEsClient.delete(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), id, 0); + fessEsClient.delete(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), id, 0); } public void deleteDocumentsByDocId(final FessEsClient fessEsClient, final List docIdList) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); - fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), + fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), QueryBuilders.idsQuery(fessConfig.getIndexDocumentType()).ids(docIdList.stream().toArray(n -> new String[n]))); } public Map getDocument(final FessEsClient fessEsClient, final String id, final String[] fields) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); - return fessEsClient.getDocument(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), id, requestBuilder -> { - return true; - }).orElseGet(() -> null); + return fessEsClient.getDocument(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), id, + requestBuilder -> { + return true; + }).orElseGet(() -> null); } public List> getDocumentListByPrefixId(final FessEsClient fessEsClient, final String id, final String[] fields) { @@ -125,7 +126,7 @@ public class IndexingHelper { public void deleteChildDocument(final FessEsClient fessEsClient, final String id) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); - fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), + fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), QueryBuilders.termQuery(fessConfig.getIndexFieldParentId(), id)); } @@ -140,18 +141,19 @@ public class IndexingHelper { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final CountResponse countResponse = - fessEsClient.prepareCount(fessConfig.getIndexDocumentIndex()).setTypes(fessConfig.getIndexDocumentType()) + fessEsClient.prepareCount(fessConfig.getIndexDocumentSearchIndex()).setTypes(fessConfig.getIndexDocumentType()) .setQuery(queryBuilder).execute().actionGet(); final long numFound = countResponse.getCount(); // TODO max threshold - return fessEsClient.getDocumentList(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), requestBuilder -> { - requestBuilder.setQuery(queryBuilder).setSize((int) numFound); - if (fields != null) { - requestBuilder.addFields(fields); - } - return true; - }); + return fessEsClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), + requestBuilder -> { + requestBuilder.setQuery(queryBuilder).setSize((int) numFound); + if (fields != null) { + requestBuilder.addFields(fields); + } + return true; + }); } } diff --git a/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java b/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java index 255e08354..b1a5c7186 100644 --- a/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java +++ b/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java @@ -90,7 +90,7 @@ public class KeyMatchHelper { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final List> documentList = fessEsClient.getDocumentList( - fessConfig.getIndexDocumentIndex(), + fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), searchRequestBuilder -> { return SearchConditionBuilder.builder(searchRequestBuilder).administrativeAccess(true) diff --git a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java index b1eaa19ec..83dfe22bd 100644 --- a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java @@ -244,22 +244,20 @@ public class SearchLogHelper { searchService.bulkUpdate(builder -> { final FessConfig fessConfig = ComponentUtil.getFessConfig(); searchService.getDocumentListByDocIds(clickCountMap.keySet().toArray(new String[clickCountMap.size()]), - new String[] { fessConfig.getIndexFieldDocId() }) - .forEach( - doc -> { - final String id = DocumentUtil.getValue(doc, fessConfig.getIndexFieldDocId(), String.class); - final String docId = DocumentUtil.getValue(doc, fessConfig.getIndexFieldDocId(), String.class); - if (id != null && docId != null && clickCountMap.containsKey(docId)) { - final Integer count = clickCountMap.get(docId); - final Script script = - new Script("ctx._source." + fessConfig.getIndexFieldClickCount() + "+=" - + count.toString()); - final Map upsertMap = new HashMap<>(); - upsertMap.put(fessConfig.getIndexFieldClickCount(), 1); - builder.add(new UpdateRequest(fessConfig.getIndexDocumentIndex(), fessConfig - .getIndexDocumentType(), id).script(script).upsert(upsertMap)); - } - }); + new String[] { fessConfig.getIndexFieldDocId() }).forEach( + doc -> { + final String id = DocumentUtil.getValue(doc, fessConfig.getIndexFieldDocId(), String.class); + final String docId = DocumentUtil.getValue(doc, fessConfig.getIndexFieldDocId(), String.class); + if (id != null && docId != null && clickCountMap.containsKey(docId)) { + final Integer count = clickCountMap.get(docId); + final Script script = + new Script("ctx._source." + fessConfig.getIndexFieldClickCount() + "+=" + count.toString()); + final Map upsertMap = new HashMap<>(); + upsertMap.put(fessConfig.getIndexFieldClickCount(), 1); + builder.add(new UpdateRequest(fessConfig.getIndexDocumentUpdateIndex(), fessConfig + .getIndexDocumentType(), id).script(script).upsert(upsertMap)); + } + }); }); } catch (final Exception e) { logger.warn("Failed to update clickCounts", e); diff --git a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java index 8236ff4ad..9261341cd 100644 --- a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java @@ -83,7 +83,7 @@ public class SuggestHelper { final Thread th = new Thread(() -> { final FessConfig fessConfig = ComponentUtil.getFessConfig(); fessEsClient.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet(); - suggester = Suggester.builder().build(fessEsClient, fessConfig.getIndexDocumentIndex()); + suggester = Suggester.builder().build(fessEsClient, fessConfig.getIndexDocumentSearchIndex()); suggester.settings().array().delete(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS); for (final String field : contentsIndexFieldNames) { suggester.settings().array().add(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS, field); @@ -142,7 +142,7 @@ public class SuggestHelper { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final ESSourceReader reader = - new ESSourceReader(fessEsClient, suggester.settings(), fessConfig.getIndexDocumentIndex(), + new ESSourceReader(fessEsClient, suggester.settings(), fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType()); reader.setScrollSize(sourceReaderScrollSize); suggester.indexer().indexFromDocument(reader, 2, updateRequestIntervalMills).then(response -> { diff --git a/src/main/java/org/codelibs/fess/job/PurgeDocJob.java b/src/main/java/org/codelibs/fess/job/PurgeDocJob.java index e9735734f..ef10b3936 100644 --- a/src/main/java/org/codelibs/fess/job/PurgeDocJob.java +++ b/src/main/java/org/codelibs/fess/job/PurgeDocJob.java @@ -38,7 +38,7 @@ public class PurgeDocJob { // clean up final QueryBuilder queryBuilder = QueryBuilders.rangeQuery(fessConfig.getIndexFieldExpires()).to(new Date()); try { - fessEsClient.deleteByQuery(fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType(), queryBuilder); + fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), queryBuilder); } catch (final Exception e) { logger.error("Could not delete expired documents: " + queryBuilder.toString(), e); diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index 8ff958199..e58916a1a 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -125,7 +125,10 @@ public interface FessConfig extends FessEnv { String INDEX_FIELD_FILETYPE = "index.field.filetype"; /** The key of the configuration. e.g. fess */ - String INDEX_DOCUMENT_INDEX = "index.document.index"; + String INDEX_DOCUMENT_SEARCH_INDEX = "index.document.search.index"; + + /** The key of the configuration. e.g. fess */ + String INDEX_DOCUMENT_UPDATE_INDEX = "index.document.update.index"; /** The key of the configuration. e.g. doc */ String INDEX_DOCUMENT_TYPE = "index.document.type"; @@ -570,12 +573,19 @@ public interface FessConfig extends FessEnv { String getIndexFieldFiletype(); /** - * Get the value for the key 'index.document.index'.
+ * Get the value for the key 'index.document.search.index'.
* The value is, e.g. fess
* comment: document index * @return The value of found property. (NotNull: if not found, exception but basically no way) */ - String getIndexDocumentIndex(); + String getIndexDocumentSearchIndex(); + + /** + * Get the value for the key 'index.document.update.index'.
+ * The value is, e.g. fess
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + */ + String getIndexDocumentUpdateIndex(); /** * Get the value for the key 'index.document.type'.
@@ -1322,8 +1332,12 @@ public interface FessConfig extends FessEnv { return get(FessConfig.INDEX_FIELD_FILETYPE); } - public String getIndexDocumentIndex() { - return get(FessConfig.INDEX_DOCUMENT_INDEX); + public String getIndexDocumentSearchIndex() { + return get(FessConfig.INDEX_DOCUMENT_SEARCH_INDEX); + } + + public String getIndexDocumentUpdateIndex() { + return get(FessConfig.INDEX_DOCUMENT_UPDATE_INDEX); } public String getIndexDocumentType() { diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index b00c9bbbb..fd1b31dbe 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -53,7 +53,8 @@ index.field.content_length=content_length index.field.filetype=filetype # document index -index.document.index=fess +index.document.search.index=fess +index.document.update.index=fess index.document.type=doc # query