diff --git a/src/main/java/org/opensearch/neuralsearch/processor/TextChunkingProcessor.java b/src/main/java/org/opensearch/neuralsearch/processor/TextChunkingProcessor.java index 300d3c91c..c722745ef 100644 --- a/src/main/java/org/opensearch/neuralsearch/processor/TextChunkingProcessor.java +++ b/src/main/java/org/opensearch/neuralsearch/processor/TextChunkingProcessor.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Objects; +import org.apache.commons.lang3.math.NumberUtils; import org.opensearch.cluster.metadata.IndexMetadata; import org.opensearch.env.Environment; import org.opensearch.cluster.service.ClusterService; @@ -144,18 +145,19 @@ private boolean isListOfString(final Object value) { } private int getMaxTokenCount(final Map sourceAndMetadataMap) { + int defaultMaxTokenCount = IndexSettings.MAX_TOKEN_COUNT_SETTING.get(environment.settings()); String indexName = sourceAndMetadataMap.get(IndexFieldMapper.NAME).toString(); IndexMetadata indexMetadata = clusterService.state().metadata().index(indexName); if (Objects.isNull(indexMetadata)) { - return IndexSettings.MAX_TOKEN_COUNT_SETTING.get(environment.settings()); + return defaultMaxTokenCount; } // if the index is specified in the metadata, read maxTokenCount from the index setting String maxTokenCountString = indexMetadata.getSettings().get("index.analyze.max_token_count"); // if maxTokenCount is not specified in the index, return the default setting if (Objects.isNull(maxTokenCountString)) { - return IndexSettings.MAX_TOKEN_COUNT_SETTING.get(environment.settings()); + return defaultMaxTokenCount; } - return Integer.parseInt(maxTokenCountString); + return NumberUtils.toInt(maxTokenCountString, defaultMaxTokenCount); } /**