diff --git a/src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java b/src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java index 7cfd42e87bfb190983e0507eda6c635be45de32a..1382b823c56e325288c618ca92803b6f8e5afc3b 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java @@ -172,7 +172,7 @@ public class AdminKeymatchAction extends FessAdminAction { copyOp.excludeNull(); }); form.crudMode = crudMode; - docList.addAll(keyMatchHelper.getBoostedDocumentList(entity.getId(), entity.getTerm(), entity.getMaxSize())); + docList.addAll(keyMatchHelper.getBoostedDocumentList(entity)); }).orElse(() -> { throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), this::asListHtml); }); diff --git a/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java b/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java index b61b90c95e4b308a12af2b70136ddac7f825a29f..797d6b450c4fe36eac7ae56dcee17fb3855be217 100644 --- a/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java +++ b/src/main/java/org/codelibs/fess/helper/KeyMatchHelper.java @@ -144,8 +144,7 @@ public class KeyMatchHelper { this.reloadInterval = reloadInterval; } - protected Map<String, List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>>> getQueryMap() { - final String key = ComponentUtil.getVirtualHostHelper().getVirtualHostKey(); + protected Map<String, List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>>> getQueryMap(final String key) { final Map<String, List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>>> map = keyMatchQueryMap.get(key); if (map != null) { return map; @@ -154,27 +153,30 @@ public class KeyMatchHelper { } public void buildQuery(final List<String> keywordList, final List<FilterFunctionBuilder> list) { + final String key = ComponentUtil.getVirtualHostHelper().getVirtualHostKey(); keywordList.stream().forEach(keyword -> { - final List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>> boostList = getQueryMap().get(toLowerCase(keyword)); + final List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>> boostList = getQueryMap(key).get(toLowerCase(keyword)); if (boostList != null) { boostList.forEach(pair -> list.add(new FilterFunctionBuilder(pair.getValue2(), pair.getValue3()))); } }); } - public List<Map<String, Object>> getBoostedDocumentList(final String id, final String term, final int size) { + public List<Map<String, Object>> getBoostedDocumentList(final KeyMatch keyMatch) { final SearchEngineClient searchEngineClient = ComponentUtil.getSearchEngineClient(); - final List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>> boostList = getQueryMap().get(toLowerCase(term)); + final List<Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>>> boostList = + getQueryMap(keyMatch.getVirtualHost()).get(toLowerCase(keyMatch.getTerm())); if (boostList == null) { return Collections.emptyList(); } for (final Tuple3<String, QueryBuilder, ScoreFunctionBuilder<?>> pair : boostList) { - if (!id.equals(pair.getValue1())) { + if (!keyMatch.getId().equals(pair.getValue1())) { continue; } final FessConfig fessConfig = ComponentUtil.getFessConfig(); return searchEngineClient.getDocumentList(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> { - searchRequestBuilder.setPreference(Constants.SEARCH_PREFERENCE_LOCAL).setQuery(pair.getValue2()).setSize(size); + searchRequestBuilder.setPreference(Constants.SEARCH_PREFERENCE_LOCAL).setQuery(pair.getValue2()) + .setSize(keyMatch.getMaxSize()); return true; }); }