diff --git a/pom.xml b/pom.xml index 7f34468e3e5f51023cf2d98b840869f6657ab83e..3b74ff4911d37b7f48c32971922d664b3c6e5bec 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ <crawler.version>1.0.0</crawler.version> <!-- Suggest --> - <suggest.version>2.0.1-SNAPSHOT</suggest.version> + <suggest.version>2.1.0-SNAPSHOT</suggest.version> <!-- Elasticsearch --> <elasticsearch.version>2.1.0</elasticsearch.version> diff --git a/src/main/java/org/codelibs/fess/exec/SuggestCreator.java b/src/main/java/org/codelibs/fess/exec/SuggestCreator.java index a33e968de29d60b0b881d270f4450f3a2d7c737d..406ab98e464ea1c69911a34b92814ee17e802d4b 100644 --- a/src/main/java/org/codelibs/fess/exec/SuggestCreator.java +++ b/src/main/java/org/codelibs/fess/exec/SuggestCreator.java @@ -118,6 +118,12 @@ public class SuggestCreator implements Serializable { } private int create() { + final DynamicProperties crawlerProperties = ComponentUtil.getCrawlerProperties(); + if(!Constants.TRUE.equals(crawlerProperties.getProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, Constants.TRUE))) { + logger.info("Skip create suggest document."); + return 0; + } + logger.info("Start create suggest document."); final AtomicInteger result = new AtomicInteger(1); diff --git a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java index c9a44f2bebd825828be9e6a9d2df905d96ad4041..8236ff4adc795eacf236b489e5a7f3ee9f085d03 100644 --- a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java @@ -39,7 +39,6 @@ import org.codelibs.fess.mylasta.direction.FessConfig; import org.codelibs.fess.suggest.Suggester; import org.codelibs.fess.suggest.constants.FieldNames; import org.codelibs.fess.suggest.entity.SuggestItem; -import org.codelibs.fess.suggest.index.contents.document.DocumentReader; import org.codelibs.fess.suggest.index.contents.document.ESSourceReader; import org.codelibs.fess.suggest.settings.SuggestSettings; import org.codelibs.fess.suggest.util.SuggestUtil; @@ -69,6 +68,10 @@ public class SuggestHelper { public String[] contentsIndexFieldNames = { "content", "title" }; + public long updateRequestIntervalMills = 1; + + public int sourceReaderScrollSize = 1; + private static final String TEXT_SEP = " "; protected Suggester suggester; @@ -138,17 +141,14 @@ public class SuggestHelper { } final FessConfig fessConfig = ComponentUtil.getFessConfig(); - final DocumentReader reader = + final ESSourceReader reader = new ESSourceReader(fessEsClient, suggester.settings(), fessConfig.getIndexDocumentIndex(), fessConfig.getIndexDocumentType()); - - suggester.indexer().indexFromDocument(reader, 2, 100).then(response -> { + reader.setScrollSize(sourceReaderScrollSize); + suggester.indexer().indexFromDocument(reader, 2, updateRequestIntervalMills).then(response -> { suggester.refresh(); - - //TODO delete old doc - - success.accept(true); - }).error(t -> error.accept(t)); + success.accept(true); + }).error(t -> error.accept(t)); } public void purgeDocumentSuggest(final LocalDateTime time) { @@ -214,11 +214,11 @@ public class SuggestHelper { public void addElevateWord(final String word, final String reading, final String[] tags, final String roles, final float boost, final boolean commit) { - final List<String> labelList = new ArrayList<String>(); + final List<String> labelList = new ArrayList<>(); for (final String label : tags) { labelList.add(label); } - final List<String> roleList = new ArrayList<String>(); + final List<String> roleList = new ArrayList<>(); if (StringUtil.isNotBlank(roles)) { final String[] array = roles.trim().split(","); for (final String role : array) {