diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java index 19dc61ef36049..e7121d5624b55 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java @@ -7,7 +7,6 @@ */ package org.elasticsearch.indices; -import org.apache.logging.log4j.LogManager; import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeResponse; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.CollectionUtils; @@ -52,7 +51,7 @@ EngineConfig engineConfigWithLargerIndexingMemory(EngineConfig config) { IndexSettings indexSettings = new IndexSettings(config.getIndexSettings().getIndexMetadata(), settings); return new EngineConfig(config.getShardId(), config.getThreadPool(), indexSettings, config.getWarmer(), config.getStore(), config.getMergePolicy(), config.getAnalyzer(), - config.getSimilarity(), new CodecService(null, LogManager.getLogger(IndexingMemoryControllerIT.class)), + config.getSimilarity(), new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), config.getInternalRefreshListener(), config.getIndexSort(), diff --git a/server/src/main/java/org/elasticsearch/index/codec/CodecService.java b/server/src/main/java/org/elasticsearch/index/codec/CodecService.java index 37a249f2f3067..d55f2d41e064f 100644 --- a/server/src/main/java/org/elasticsearch/index/codec/CodecService.java +++ b/server/src/main/java/org/elasticsearch/index/codec/CodecService.java @@ -8,7 +8,6 @@ package org.elasticsearch.index.codec; -import org.apache.logging.log4j.Logger; import org.apache.lucene.codecs.Codec; import org.apache.lucene.codecs.lucene87.Lucene87Codec; import org.apache.lucene.codecs.lucene87.Lucene87Codec.Mode; @@ -33,16 +32,16 @@ public class CodecService { /** the raw unfiltered lucene default. useful for testing */ public static final String LUCENE_DEFAULT_CODEC = "lucene_default"; - public CodecService(@Nullable MapperService mapperService, Logger logger) { + public CodecService(@Nullable MapperService mapperService) { final var codecs = new HashMap(); if (mapperService == null) { codecs.put(DEFAULT_CODEC, new Lucene87Codec()); codecs.put(BEST_COMPRESSION_CODEC, new Lucene87Codec(Mode.BEST_COMPRESSION)); } else { codecs.put(DEFAULT_CODEC, - new PerFieldMappingPostingFormatCodec(Mode.BEST_SPEED, mapperService, logger)); + new PerFieldMappingPostingFormatCodec(Mode.BEST_SPEED, mapperService)); codecs.put(BEST_COMPRESSION_CODEC, - new PerFieldMappingPostingFormatCodec(Mode.BEST_COMPRESSION, mapperService, logger)); + new PerFieldMappingPostingFormatCodec(Mode.BEST_COMPRESSION, mapperService)); } codecs.put(LUCENE_DEFAULT_CODEC, Codec.getDefault()); for (String codec : Codec.availableCodecs()) { diff --git a/server/src/main/java/org/elasticsearch/index/codec/PerFieldMappingPostingFormatCodec.java b/server/src/main/java/org/elasticsearch/index/codec/PerFieldMappingPostingFormatCodec.java index a08a05ee5f223..d9a6590bdc80e 100644 --- a/server/src/main/java/org/elasticsearch/index/codec/PerFieldMappingPostingFormatCodec.java +++ b/server/src/main/java/org/elasticsearch/index/codec/PerFieldMappingPostingFormatCodec.java @@ -8,15 +8,12 @@ package org.elasticsearch.index.codec; -import org.apache.logging.log4j.Logger; import org.apache.lucene.codecs.Codec; import org.apache.lucene.codecs.DocValuesFormat; import org.apache.lucene.codecs.PostingsFormat; import org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat; import org.apache.lucene.codecs.lucene87.Lucene87Codec; import org.elasticsearch.common.lucene.Lucene; -import org.elasticsearch.index.mapper.CompletionFieldMapper; -import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperService; /** @@ -28,7 +25,7 @@ * configured for a specific field the default postings format is used. */ public class PerFieldMappingPostingFormatCodec extends Lucene87Codec { - private final Logger logger; + private final MapperService mapperService; // Always enable compression on binary doc values private final DocValuesFormat docValuesFormat = new Lucene80DocValuesFormat(Lucene80DocValuesFormat.Mode.BEST_COMPRESSION); @@ -38,21 +35,18 @@ public class PerFieldMappingPostingFormatCodec extends Lucene87Codec { "PerFieldMappingPostingFormatCodec must subclass the latest " + "lucene codec: " + Lucene.LATEST_CODEC; } - public PerFieldMappingPostingFormatCodec(Mode compressionMode, MapperService mapperService, Logger logger) { + public PerFieldMappingPostingFormatCodec(Mode compressionMode, MapperService mapperService) { super(compressionMode); this.mapperService = mapperService; - this.logger = logger; } @Override public PostingsFormat getPostingsFormatForField(String field) { - final MappedFieldType fieldType = mapperService.fieldType(field); - if (fieldType == null) { - logger.warn("no index mapper found for field: [{}] returning default postings format", field); - } else if (fieldType instanceof CompletionFieldMapper.CompletionFieldType) { - return CompletionFieldMapper.CompletionFieldType.postingsFormat(); + PostingsFormat format = mapperService.mappingLookup().getPostingsFormat(field); + if (format == null) { + return super.getPostingsFormatForField(field); } - return super.getPostingsFormatForField(field); + return format; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java index 5f792661f4f2d..b6bd39476a5bd 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/CompletionFieldMapper.java @@ -11,7 +11,6 @@ import org.apache.lucene.document.FieldType; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.Term; -import org.apache.lucene.search.suggest.document.Completion84PostingsFormat; import org.apache.lucene.search.suggest.document.CompletionAnalyzer; import org.apache.lucene.search.suggest.document.CompletionQuery; import org.apache.lucene.search.suggest.document.FuzzyCompletionQuery; @@ -209,8 +208,6 @@ private void checkCompletionContextsLimit() { public static final class CompletionFieldType extends TermBasedFieldType { - private static PostingsFormat postingsFormat; - private ContextMappings contextMappings = null; public CompletionFieldType(String name, NamedAnalyzer searchAnalyzer, Map meta) { @@ -236,16 +233,6 @@ public ContextMappings getContextMappings() { return contextMappings; } - /** - * @return postings format to use for this field-type - */ - public static synchronized PostingsFormat postingsFormat() { - if (postingsFormat == null) { - postingsFormat = new Completion84PostingsFormat(); - } - return postingsFormat; - } - /** * Completion prefix query */ @@ -313,6 +300,10 @@ public CompletionFieldType fieldType() { return (CompletionFieldType) super.fieldType(); } + static PostingsFormat postingsFormat() { + return PostingsFormat.forName("Completion84"); + } + @Override public boolean parsesArrayValue() { return true; diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MappingLookup.java b/server/src/main/java/org/elasticsearch/index/mapper/MappingLookup.java index 5d8fc7138ec50..8f4d259abb140 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MappingLookup.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MappingLookup.java @@ -8,6 +8,7 @@ package org.elasticsearch.index.mapper; +import org.apache.lucene.codecs.PostingsFormat; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.IndexAnalyzers; import org.elasticsearch.index.analysis.NamedAnalyzer; @@ -53,6 +54,7 @@ private CacheKey() {} private final List indexTimeScriptMappers = new ArrayList<>(); private final Mapping mapping; private final Set shadowedFields; + private final Set completionFields = new HashSet<>(); /** * Creates a new {@link MappingLookup} instance by parsing the provided mapping and extracting its field definitions. @@ -148,6 +150,9 @@ private MappingLookup(Mapping mapping, if (mapper.hasScript()) { indexTimeScriptMappers.add(mapper); } + if (mapper instanceof CompletionFieldMapper) { + completionFields.add(mapper.name()); + } } for (FieldAliasMapper aliasMapper : aliasMappers) { @@ -213,6 +218,15 @@ public boolean isShadowed(String field) { return shadowedFields.contains(field); } + /** + * Gets the postings format for a particular field + * @param field the field to retrieve a postings format for + * @return the postings format for the field, or {@code null} if the default format should be used + */ + public PostingsFormat getPostingsFormat(String field) { + return completionFields.contains(field) ? CompletionFieldMapper.postingsFormat() : null; + } + void checkLimits(IndexSettings settings) { checkFieldLimit(settings.getMappingTotalFieldsLimit()); checkObjectDepthLimit(settings.getMappingDepthLimit()); diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java index 71ea3f1b103d4..7234649bb2318 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -309,7 +309,7 @@ public IndexShard( assert shardRouting.initializing(); this.shardRouting = shardRouting; final Settings settings = indexSettings.getSettings(); - this.codecService = new CodecService(mapperService, logger); + this.codecService = new CodecService(mapperService); this.warmer = warmer; this.similarityService = similarityService; Objects.requireNonNull(store, "Store must be provided to the index shard"); diff --git a/server/src/test/java/org/elasticsearch/index/codec/CodecTests.java b/server/src/test/java/org/elasticsearch/index/codec/CodecTests.java index 39c3a6f2a9001..48d99a7f97cad 100644 --- a/server/src/test/java/org/elasticsearch/index/codec/CodecTests.java +++ b/server/src/test/java/org/elasticsearch/index/codec/CodecTests.java @@ -8,7 +8,6 @@ package org.elasticsearch.index.codec; -import org.apache.logging.log4j.LogManager; import org.apache.lucene.codecs.Codec; import org.apache.lucene.codecs.lucene80.Lucene80DocValuesFormat; import org.apache.lucene.codecs.lucene87.Lucene87Codec; @@ -110,7 +109,7 @@ private CodecService createCodecService() throws IOException { MapperPlugin.NOOP_FIELD_FILTER); MapperService service = new MapperService(settings, indexAnalyzers, xContentRegistry(), similarityService, mapperRegistry, () -> null, () -> false, ScriptCompiler.NONE); - return new CodecService(service, LogManager.getLogger("test")); + return new CodecService(service); } } diff --git a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java index 9386a47d78f7e..6aaa2bda03732 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java @@ -2603,7 +2603,7 @@ public void testFailStart() throws IOException { } public void testSettings() { - CodecService codecService = new CodecService(null, logger); + CodecService codecService = new CodecService(null); LiveIndexWriterConfig currentIndexWriterConfig = engine.getCurrentIndexWriterConfig(); assertEquals(engine.config().getCodec().getName(), codecService.codec(codecName).getName()); @@ -2935,7 +2935,7 @@ public void testRecoverFromForeignTranslog() throws IOException { newMergePolicy(), config.getAnalyzer(), config.getSimilarity(), - new CodecService(null, logger), + new CodecService(null), config.getEventListener(), IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), @@ -6017,7 +6017,7 @@ public void testNotWarmUpSearcherInEngineCtor() throws Exception { createTempDir(), config.getTranslogConfig().getIndexSettings(), config.getTranslogConfig().getBigArrays()); EngineConfig configWithWarmer = new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), warmer, store, config.getMergePolicy(), config.getAnalyzer(), - config.getSimilarity(), new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), + config.getSimilarity(), new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), translogConfig, config.getFlushMergesAfter(), config.getExternalRefreshListener(), config.getInternalRefreshListener(), config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), diff --git a/server/src/test/java/org/elasticsearch/index/mapper/CompletionFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/CompletionFieldMapperTests.java index 280ff1086312d..f9001ce5eda45 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/CompletionFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/CompletionFieldMapperTests.java @@ -10,9 +10,11 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.core.SimpleAnalyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.codecs.Codec; import org.apache.lucene.document.SortedSetDocValuesField; import org.apache.lucene.index.IndexableField; import org.apache.lucene.search.Query; +import org.apache.lucene.search.suggest.document.Completion84PostingsFormat; import org.apache.lucene.search.suggest.document.CompletionAnalyzer; import org.apache.lucene.search.suggest.document.ContextSuggestField; import org.apache.lucene.search.suggest.document.FuzzyCompletionQuery; @@ -35,6 +37,8 @@ import org.elasticsearch.index.analysis.AnalyzerScope; import org.elasticsearch.index.analysis.IndexAnalyzers; import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.codec.CodecService; +import org.elasticsearch.index.codec.PerFieldMappingPostingFormatCodec; import org.hamcrest.FeatureMatcher; import org.hamcrest.Matcher; import org.hamcrest.Matchers; @@ -114,6 +118,15 @@ protected IndexAnalyzers createIndexAnalyzers(IndexSettings indexSettings) { ); } + public void testPostingsFormat() throws IOException { + MapperService mapperService = createMapperService(fieldMapping(this::minimalMapping)); + CodecService codecService = new CodecService(mapperService); + Codec codec = codecService.codec("default"); + assertThat(codec, instanceOf(PerFieldMappingPostingFormatCodec.class)); + PerFieldMappingPostingFormatCodec perFieldCodec = (PerFieldMappingPostingFormatCodec) codec; + assertThat(perFieldCodec.getPostingsFormatForField("field"), instanceOf(Completion84PostingsFormat.class)); + } + public void testDefaultConfiguration() throws IOException { DocumentMapper defaultMapper = createDocumentMapper(fieldMapping(this::minimalMapping)); diff --git a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java index caad76894d9a9..e0f322872b3d2 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java @@ -3924,7 +3924,7 @@ public void testCloseShardWhileEngineIsWarming() throws Exception { }; EngineConfig configWithWarmer = new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), warmer, config.getStore(), config.getMergePolicy(), config.getAnalyzer(), - config.getSimilarity(), new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), + config.getSimilarity(), new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), config.getInternalRefreshListener(), config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), diff --git a/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java b/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java index a59e2defec763..0d9bf2370dee3 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java @@ -126,7 +126,7 @@ public void onFailedEngine(String reason, @Nullable Exception e) { newMergePolicy(), iwc.getAnalyzer(), iwc.getSimilarity(), - new CodecService(null, logger), + new CodecService(null), eventListener, IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), diff --git a/server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerTests.java b/server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerTests.java index de7073d3cc15b..39b7cb85e5b77 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerTests.java @@ -367,7 +367,7 @@ EngineConfig configWithRefreshListener(EngineConfig config, ReferenceManager.Ref internalRefreshListener.add(listener); return new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), config.getWarmer(), config.getStore(), config.getMergePolicy(), config.getAnalyzer(), - config.getSimilarity(), new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), + config.getSimilarity(), new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), internalRefreshListener, config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), diff --git a/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java index 4b28476055856..f863d961c9422 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java @@ -195,7 +195,7 @@ protected Settings indexSettings() { public void setUp() throws Exception { super.setUp(); primaryTerm.set(randomLongBetween(1, Long.MAX_VALUE)); - CodecService codecService = new CodecService(null, logger); + CodecService codecService = new CodecService(null); String name = Codec.getDefault().getName(); if (Arrays.asList(codecService.availableCodecs()).contains(name)) { // some codecs are read only so we only take the ones that we have in the service and randomly @@ -234,7 +234,7 @@ public void setUp() throws Exception { public EngineConfig copy(EngineConfig config, LongSupplier globalCheckpointSupplier) { return new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), config.getWarmer(), config.getStore(), config.getMergePolicy(), config.getAnalyzer(), config.getSimilarity(), - new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), + new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), Collections.emptyList(), config.getIndexSort(), config.getCircuitBreakerService(), globalCheckpointSupplier, config.retentionLeasesSupplier(), @@ -244,7 +244,7 @@ public EngineConfig copy(EngineConfig config, LongSupplier globalCheckpointSuppl public EngineConfig copy(EngineConfig config, Analyzer analyzer) { return new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), config.getWarmer(), config.getStore(), config.getMergePolicy(), analyzer, config.getSimilarity(), - new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), + new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), Collections.emptyList(), config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), @@ -254,7 +254,7 @@ public EngineConfig copy(EngineConfig config, Analyzer analyzer) { public EngineConfig copy(EngineConfig config, MergePolicy mergePolicy) { return new EngineConfig(config.getShardId(), config.getThreadPool(), config.getIndexSettings(), config.getWarmer(), config.getStore(), mergePolicy, config.getAnalyzer(), config.getSimilarity(), - new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), + new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), config.getTranslogConfig(), config.getFlushMergesAfter(), config.getExternalRefreshListener(), Collections.emptyList(), config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), @@ -656,7 +656,7 @@ public EngineConfig config( mergePolicy, iwc.getAnalyzer(), iwc.getSimilarity(), - new CodecService(null, logger), + new CodecService(null), eventListener, IndexSearcher.getDefaultQueryCache(), IndexSearcher.getDefaultQueryCachingPolicy(), @@ -679,7 +679,7 @@ protected EngineConfig config(EngineConfig config, Store store, Path translogPat TranslogConfig translogConfig = new TranslogConfig(shardId, translogPath, indexSettings, BigArrays.NON_RECYCLING_INSTANCE); return new EngineConfig(config.getShardId(), config.getThreadPool(), indexSettings, config.getWarmer(), store, config.getMergePolicy(), config.getAnalyzer(), config.getSimilarity(), - new CodecService(null, logger), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), + new CodecService(null), config.getEventListener(), config.getQueryCache(), config.getQueryCachingPolicy(), translogConfig, config.getFlushMergesAfter(), config.getExternalRefreshListener(), config.getInternalRefreshListener(), config.getIndexSort(), config.getCircuitBreakerService(), config.getGlobalCheckpointSupplier(), config.retentionLeasesSupplier(), diff --git a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/index/engine/FollowingEngineTests.java b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/index/engine/FollowingEngineTests.java index f2cd8a103b998..0814d0c1dc694 100644 --- a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/index/engine/FollowingEngineTests.java +++ b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/index/engine/FollowingEngineTests.java @@ -6,7 +6,6 @@ */ package org.elasticsearch.xpack.ccr.index.engine; -import org.apache.logging.log4j.Logger; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.Term; import org.apache.lucene.search.IndexSearcher; @@ -19,7 +18,6 @@ import org.elasticsearch.common.Randomness; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.BigArrays; -import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexModule; @@ -104,7 +102,7 @@ public void testFollowingEngineRejectsNonFollowingIndex() throws IOException { final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); final IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> new FollowingEngine(engineConfig)); assertThat(e, hasToString(containsString("a following engine can not be constructed for a non-following index"))); } @@ -137,7 +135,7 @@ public void testOutOfOrderDocuments() throws IOException { final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); try (FollowingEngine followingEngine = createEngine(store, engineConfig)) { final VersionType versionType = randomFrom(VersionType.INTERNAL, VersionType.EXTERNAL, VersionType.EXTERNAL_GTE); @@ -162,7 +160,7 @@ public void runIndexTest( final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); try (FollowingEngine followingEngine = createEngine(store, engineConfig)) { final Engine.Index index = indexForFollowing("id", seqNo, origin); consumer.accept(followingEngine, index); @@ -196,7 +194,7 @@ public void runDeleteTest( final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); try (FollowingEngine followingEngine = createEngine(store, engineConfig)) { final String id = "id"; final Engine.Delete delete = new Engine.Delete( @@ -226,7 +224,7 @@ public void testDoNotFillSeqNoGaps() throws Exception { final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); try (FollowingEngine followingEngine = createEngine(store, engineConfig)) { followingEngine.index(indexForFollowing("id", 128, Engine.Operation.Origin.PRIMARY)); int addedNoops = followingEngine.fillSeqNoGaps(primaryTerm.get()); @@ -239,9 +237,7 @@ private EngineConfig engineConfig( final ShardId shardId, final IndexSettings indexSettings, final ThreadPool threadPool, - final Store store, - final Logger logger, - final NamedXContentRegistry xContentRegistry) throws IOException { + final Store store) { final IndexWriterConfig indexWriterConfig = newIndexWriterConfig(); final Path translogPath = createTempDir("translog"); final TranslogConfig translogConfig = new TranslogConfig(shardId, translogPath, indexSettings, BigArrays.NON_RECYCLING_INSTANCE); @@ -254,7 +250,7 @@ private EngineConfig engineConfig( newMergePolicy(), indexWriterConfig.getAnalyzer(), indexWriterConfig.getSimilarity(), - new CodecService(null, logger), + new CodecService(null), new Engine.EventListener() { @Override public void onFailedEngine(String reason, Exception e) { @@ -474,7 +470,7 @@ public void testConcurrentIndexOperationsWithDeletesCanAdvanceMaxSeqNoOfUpdates( IndexSettings followerIndexSettings = new IndexSettings(followerIndexMetadata, Settings.EMPTY); try (Store followerStore = createStore(shardId, followerIndexSettings, newDirectory())) { EngineConfig followerConfig = - engineConfig(shardId, followerIndexSettings, threadPool, followerStore, logger, xContentRegistry()); + engineConfig(shardId, followerIndexSettings, threadPool, followerStore); followerStore.createEmpty(); String translogUuid = Translog.createEmptyTranslog(followerConfig.getTranslogConfig().getTranslogPath(), SequenceNumbers.NO_OPS_PERFORMED, @@ -582,7 +578,7 @@ private void runFollowTest(CheckedBiConsumer operationWithTerms = new HashMap<>(); @@ -760,7 +756,7 @@ public void testMaxSeqNoInCommitUserData() throws Exception { final IndexMetadata indexMetadata = IndexMetadata.builder(index.getName()).settings(settings).build(); final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings); try (Store store = createStore(shardId, indexSettings, newDirectory())) { - final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store, logger, xContentRegistry()); + final EngineConfig engineConfig = engineConfig(shardId, indexSettings, threadPool, store); try (FollowingEngine engine = createEngine(store, engineConfig)) { AtomicBoolean running = new AtomicBoolean(true); Thread rollTranslog = new Thread(() -> {