diff --git a/benchmarks/src/main/java/org/elasticsearch/benchmark/_nightly/esql/ValuesSourceReaderBenchmark.java b/benchmarks/src/main/java/org/elasticsearch/benchmark/_nightly/esql/ValuesSourceReaderBenchmark.java index 17795bfdc755c..d97cef95ddb9a 100644 --- a/benchmarks/src/main/java/org/elasticsearch/benchmark/_nightly/esql/ValuesSourceReaderBenchmark.java +++ b/benchmarks/src/main/java/org/elasticsearch/benchmark/_nightly/esql/ValuesSourceReaderBenchmark.java @@ -55,7 +55,9 @@ import org.elasticsearch.index.mapper.IndexType; import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; +import org.elasticsearch.index.mapper.MappingLookup; import org.elasticsearch.index.mapper.NumberFieldMapper; +import org.elasticsearch.index.mapper.blockloader.BlockLoaderFunctionConfig; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.xpack.esql.plugin.EsqlPlugin; import org.openjdk.jmh.annotations.Benchmark; @@ -226,44 +228,7 @@ private static BlockLoader blockLoader(String name) { break; } ft.freeze(); - return new KeywordFieldMapper.KeywordFieldType(w.name, ft, syntheticSource).blockLoader( - new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return "benchmark"; - } - - @Override - public IndexSettings indexSettings() { - throw new UnsupportedOperationException(); - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - return Set.of(name); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } - } - ); + return new KeywordFieldMapper.KeywordFieldType(w.name, ft, syntheticSource).blockLoader(blContext()); } throw new IllegalArgumentException("can't read [" + name + "]"); } @@ -305,42 +270,7 @@ private static BlockLoader numericBlockLoader(WhereAndBaseName w, NumberFieldMap null, null, false - ).blockLoader(new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return "benchmark"; - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public IndexSettings indexSettings() { - throw new UnsupportedOperationException(); - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - throw new UnsupportedOperationException(); - } - }); + ).blockLoader(blContext()); } /** @@ -643,4 +573,53 @@ record ItrAndOrd(PrimitiveIterator.OfInt itr, int ord) {} public void teardownIndex() throws IOException { IOUtils.close(reader, directory); } + + private static MappedFieldType.BlockLoaderContext blContext() { + return new MappedFieldType.BlockLoaderContext() { + @Override + public String indexName() { + return "benchmark"; + } + + @Override + public IndexSettings indexSettings() { + throw new UnsupportedOperationException(); + } + + @Override + public MappedFieldType.FieldExtractPreference fieldExtractPreference() { + return MappedFieldType.FieldExtractPreference.NONE; + } + + @Override + public SearchLookup lookup() { + throw new UnsupportedOperationException(); + } + + @Override + public Set sourcePaths(String name) { + return Set.of(name); + } + + @Override + public String parentField(String field) { + throw new UnsupportedOperationException(); + } + + @Override + public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { + return FieldNamesFieldMapper.FieldNamesFieldType.get(true); + } + + @Override + public MappingLookup mappingLookup() { + return null; + } + + @Override + public BlockLoaderFunctionConfig blockLoaderFunctionConfig() { + return null; + } + }; + } } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java b/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java index b051d8a19c2aa..75fe9fff817d7 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java @@ -712,15 +712,10 @@ public interface BlockLoaderContext { /** * MappingLookup for the queried index. */ - @Nullable - default MappingLookup mappingLookup() { - return null; - } + MappingLookup mappingLookup(); @Nullable - default BlockLoaderFunctionConfig blockLoaderFunctionConfig() { - return null; - } + BlockLoaderFunctionConfig blockLoaderFunctionConfig(); } } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DateRangeFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DateRangeFieldMapperTests.java index 51fec98db6c8d..7b54fb69922ef 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DateRangeFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DateRangeFieldMapperTests.java @@ -14,8 +14,6 @@ import org.apache.lucene.tests.index.RandomIndexWriter; import org.elasticsearch.common.time.DateFormatter; import org.elasticsearch.common.time.DateUtils; -import org.elasticsearch.index.IndexSettings; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.xcontent.ToXContent; import org.elasticsearch.xcontent.XContentBuilder; import org.junit.AssumptionViolatedException; @@ -24,7 +22,6 @@ import java.time.Instant; import java.util.HashMap; import java.util.Map; -import java.util.Set; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.nullValue; @@ -121,42 +118,7 @@ public void testNullValueBlockLoader() throws IOException { b.field("type", "date_range"); b.endObject(); })); - BlockLoader loader = mapper.fieldType("field").blockLoader(new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - throw new UnsupportedOperationException(); - } - - @Override - public IndexSettings indexSettings() { - throw new UnsupportedOperationException(); - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - return mapper.mappingLookup().sourcePaths(name); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } - }); + BlockLoader loader = mapper.fieldType("field").blockLoader(new DummyBlockLoaderContext.MapperServiceBlockLoaderContext(mapper)); try (Directory directory = newDirectory()) { RandomIndexWriter iw = new RandomIndexWriter(random(), directory); LuceneDocument doc = mapper.documentMapper().parse(source(b -> {})).rootDoc(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/RuntimeFieldSourceProviderOptimizationTests.java b/server/src/test/java/org/elasticsearch/index/mapper/RuntimeFieldSourceProviderOptimizationTests.java index 95da43177406c..061eb12102e4e 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/RuntimeFieldSourceProviderOptimizationTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/RuntimeFieldSourceProviderOptimizationTests.java @@ -32,7 +32,6 @@ import java.io.IOException; import java.util.Locale; import java.util.Map; -import java.util.Set; import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder; import static org.hamcrest.Matchers.equalTo; @@ -188,41 +187,16 @@ public void testNormalAndRuntimeFieldWithSameName() throws IOException { static MappedFieldType.BlockLoaderContext blContext(Settings settings, SearchLookup lookup) { String indexName = "test_index"; var imd = IndexMetadata.builder(indexName).settings(ESTestCase.indexSettings(IndexVersion.current(), 1, 1).put(settings)).build(); - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return indexName; - } - + return new DummyBlockLoaderContext(indexName) { @Override public IndexSettings indexSettings() { return new IndexSettings(imd, settings); } - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - @Override public SearchLookup lookup() { return lookup; } - - @Override - public Set sourcePaths(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } }; } diff --git a/test/framework/src/main/java/org/elasticsearch/index/mapper/AbstractScriptFieldTypeTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/mapper/AbstractScriptFieldTypeTestCase.java index fa23858640f02..4b2b06763a547 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/mapper/AbstractScriptFieldTypeTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/mapper/AbstractScriptFieldTypeTestCase.java @@ -536,22 +536,12 @@ protected final List blockLoaderReadValuesFromRowStrideReader( protected MappedFieldType.BlockLoaderContext blContext(Settings settings, boolean fieldOnlyMappedAsRuntimeField) { String indexName = "test_index"; var imd = IndexMetadata.builder(indexName).settings(ESTestCase.indexSettings(IndexVersion.current(), 1, 1).put(settings)).build(); - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return indexName; - } - + return new DummyBlockLoaderContext(indexName) { @Override public IndexSettings indexSettings() { return new IndexSettings(imd, settings); } - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - @Override public SearchLookup lookup() { return mockContext( @@ -561,21 +551,6 @@ public SearchLookup lookup() { SourceProvider.fromLookup(MappingLookup.EMPTY, null, SourceFieldMetrics.NOOP) ).lookup(); } - - @Override - public Set sourcePaths(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } }; } diff --git a/test/framework/src/main/java/org/elasticsearch/index/mapper/BlockLoaderTestRunner.java b/test/framework/src/main/java/org/elasticsearch/index/mapper/BlockLoaderTestRunner.java index ea6e16ba561ff..aabb30e738bcb 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/mapper/BlockLoaderTestRunner.java +++ b/test/framework/src/main/java/org/elasticsearch/index/mapper/BlockLoaderTestRunner.java @@ -15,11 +15,9 @@ import org.apache.lucene.tests.index.RandomIndexWriter; import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.fieldvisitor.StoredFieldLoader; import org.elasticsearch.plugins.internal.XContentMeteringParserDecorator; import org.elasticsearch.search.fetch.StoredFieldsSpec; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentType; import org.hamcrest.BaseMatcher; @@ -31,7 +29,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; import static org.apache.lucene.tests.util.LuceneTestCase.newDirectory; import static org.apache.lucene.tests.util.LuceneTestCase.random; @@ -151,43 +148,11 @@ private Object load(BlockLoader blockLoader, LeafReaderContext context, MapperSe } private BlockLoader createBlockLoader(MapperService mapperService, String fieldName) { - SearchLookup searchLookup = new SearchLookup(mapperService.mappingLookup().fieldTypesLookup()::get, null, null); - - return mapperService.fieldType(fieldName).blockLoader(new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return mapperService.getIndexSettings().getIndex().getName(); - } - - @Override - public IndexSettings indexSettings() { - return mapperService.getIndexSettings(); - } - + return mapperService.fieldType(fieldName).blockLoader(new DummyBlockLoaderContext.MapperServiceBlockLoaderContext(mapperService) { @Override public MappedFieldType.FieldExtractPreference fieldExtractPreference() { return params.preference(); } - - @Override - public SearchLookup lookup() { - return searchLookup; - } - - @Override - public Set sourcePaths(String name) { - return mapperService.mappingLookup().sourcePaths(name); - } - - @Override - public String parentField(String field) { - return mapperService.mappingLookup().parentField(field); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return (FieldNamesFieldMapper.FieldNamesFieldType) mapperService.fieldType(FieldNamesFieldMapper.NAME); - } }); } diff --git a/test/framework/src/main/java/org/elasticsearch/index/mapper/DummyBlockLoaderContext.java b/test/framework/src/main/java/org/elasticsearch/index/mapper/DummyBlockLoaderContext.java new file mode 100644 index 0000000000000..d448aba429956 --- /dev/null +++ b/test/framework/src/main/java/org/elasticsearch/index/mapper/DummyBlockLoaderContext.java @@ -0,0 +1,108 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +package org.elasticsearch.index.mapper; + +import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.mapper.blockloader.BlockLoaderFunctionConfig; +import org.elasticsearch.search.lookup.SearchLookup; + +import java.util.Set; + +public class DummyBlockLoaderContext implements MappedFieldType.BlockLoaderContext { + private final String indexName; + + public DummyBlockLoaderContext(String indexName) { + this.indexName = indexName; + } + + @Override + public final String indexName() { + return indexName; + } + + @Override + public IndexSettings indexSettings() { + throw new UnsupportedOperationException(); + } + + @Override + public MappedFieldType.FieldExtractPreference fieldExtractPreference() { + return MappedFieldType.FieldExtractPreference.NONE; + } + + @Override + public SearchLookup lookup() { + throw new UnsupportedOperationException(); + } + + @Override + public Set sourcePaths(String name) { + throw new UnsupportedOperationException(); + } + + @Override + public String parentField(String field) { + throw new UnsupportedOperationException(); + } + + @Override + public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { + throw new UnsupportedOperationException(); + } + + @Override + public MappingLookup mappingLookup() { + throw new UnsupportedOperationException(); + } + + @Override + public BlockLoaderFunctionConfig blockLoaderFunctionConfig() { + return null; + } + + public static class MapperServiceBlockLoaderContext extends DummyBlockLoaderContext { + private final MapperService mapperService; + + public MapperServiceBlockLoaderContext(MapperService mapperService) { + super(mapperService.index().getName()); + this.mapperService = mapperService; + } + + @Override + public IndexSettings indexSettings() { + return mapperService.getIndexSettings(); + } + + @Override + public SearchLookup lookup() { + return new SearchLookup(mapperService.mappingLookup().fieldTypesLookup()::get, null, null); + } + + @Override + public Set sourcePaths(String name) { + return mapperService.mappingLookup().sourcePaths(name); + } + + @Override + public String parentField(String field) { + return mapperService.mappingLookup().parentField(field); + } + + @Override + public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { + return (FieldNamesFieldMapper.FieldNamesFieldType) mapperService.fieldType(FieldNamesFieldMapper.NAME); + } + + @Override + public MappingLookup mappingLookup() { + return mapperService.mappingLookup(); + } + } +} diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/OperatorTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/OperatorTests.java index b4c047f70d911..8c5ed6cb4b7f6 100644 --- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/OperatorTests.java +++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/OperatorTests.java @@ -65,15 +65,11 @@ import org.elasticsearch.compute.test.TestResultPageSinkOperator; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.Releasables; -import org.elasticsearch.index.IndexSettings; -import org.elasticsearch.index.mapper.FieldNamesFieldMapper; import org.elasticsearch.index.mapper.KeywordFieldMapper; -import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperServiceTestCase; import org.elasticsearch.index.mapper.Uid; import org.elasticsearch.index.mapper.blockloader.docvalues.LongsBlockLoader; import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; -import org.elasticsearch.search.lookup.SearchLookup; import java.io.IOException; import java.util.ArrayList; @@ -510,43 +506,4 @@ static LuceneOperator.Factory luceneCountOperatorFactory( LuceneOperator.NO_LIMIT ); } - - private MappedFieldType.BlockLoaderContext mockBlContext() { - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - throw new UnsupportedOperationException(); - } - - @Override - public IndexSettings indexSettings() { - throw new UnsupportedOperationException(); - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - throw new UnsupportedOperationException(); - } - }; - } } diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValueSourceReaderTypeConversionTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValueSourceReaderTypeConversionTests.java index 09f8435fbd785..d9d6c0d535e64 100644 --- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValueSourceReaderTypeConversionTests.java +++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValueSourceReaderTypeConversionTests.java @@ -25,7 +25,6 @@ import org.apache.lucene.util.BytesRef; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.support.PlainActionFuture; -import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.Randomness; import org.elasticsearch.common.breaker.CircuitBreaker; import org.elasticsearch.common.breaker.NoopCircuitBreaker; @@ -73,10 +72,7 @@ import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.Releasables; import org.elasticsearch.core.TimeValue; -import org.elasticsearch.index.IndexSettings; -import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.mapper.BlockLoader; -import org.elasticsearch.index.mapper.FieldNamesFieldMapper; import org.elasticsearch.index.mapper.IdFieldMapper; import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; @@ -90,7 +86,6 @@ import org.elasticsearch.index.mapper.blockloader.ConstantNull; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.fetch.StoredFieldsSpec; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.threadpool.FixedExecutorBuilder; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; @@ -120,6 +115,7 @@ import static org.elasticsearch.compute.lucene.read.ValuesSourceReaderOperatorTests.StatusChecks.multiName; import static org.elasticsearch.compute.lucene.read.ValuesSourceReaderOperatorTests.StatusChecks.singleName; +import static org.elasticsearch.compute.lucene.read.ValuesSourceReaderOperatorTests.blContext; import static org.elasticsearch.test.MapMatcher.assertMap; import static org.elasticsearch.test.MapMatcher.matchesMap; import static org.hamcrest.Matchers.empty; @@ -563,48 +559,6 @@ private ValuesSourceReaderOperator.FieldInfo fieldInfo(String fieldName, Element ); } - private static MappedFieldType.BlockLoaderContext blContext() { - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return "test_index"; - } - - @Override - public IndexSettings indexSettings() { - var imd = IndexMetadata.builder("test_index") - .settings(ValueSourceReaderTypeConversionTests.indexSettings(IndexVersion.current(), 1, 1).put(Settings.EMPTY)) - .build(); - return new IndexSettings(imd, Settings.EMPTY); - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - return Set.of(name); - } - - @Override - public String parentField(String field) { - return null; - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } - }; - } - private void loadSimpleAndAssert( DriverContext driverContext, List input, diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValuesSourceReaderOperatorTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValuesSourceReaderOperatorTests.java index cb7c308849d03..a4bbfc6740e16 100644 --- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValuesSourceReaderOperatorTests.java +++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/lucene/read/ValuesSourceReaderOperatorTests.java @@ -67,12 +67,14 @@ import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.mapper.BlockLoader; +import org.elasticsearch.index.mapper.DummyBlockLoaderContext; import org.elasticsearch.index.mapper.FieldNamesFieldMapper; import org.elasticsearch.index.mapper.IdFieldMapper; import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.MapperServiceTestCase; +import org.elasticsearch.index.mapper.MappingLookup; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.SourceLoader; import org.elasticsearch.index.mapper.SourceToParse; @@ -81,7 +83,6 @@ import org.elasticsearch.index.mapper.TsidExtractingIdFieldMapper; import org.elasticsearch.index.mapper.blockloader.ConstantBytes; import org.elasticsearch.index.mapper.blockloader.ConstantNull; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentType; import org.elasticsearch.xcontent.json.JsonXContent; @@ -567,12 +568,7 @@ private static ValuesSourceReaderOperator.FieldInfo fieldInfo(MappedFieldType ft } public static MappedFieldType.BlockLoaderContext blContext() { - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return "test_index"; - } - + return new DummyBlockLoaderContext("test_index") { @Override public IndexSettings indexSettings() { var imd = IndexMetadata.builder("test_index") @@ -581,16 +577,6 @@ public IndexSettings indexSettings() { return new IndexSettings(imd, Settings.EMPTY); } - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - @Override public Set sourcePaths(String name) { return Set.of(name); @@ -605,6 +591,11 @@ public String parentField(String field) { public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { return FieldNamesFieldMapper.FieldNamesFieldType.get(true); } + + @Override + public MappingLookup mappingLookup() { + return null; + } }; } diff --git a/x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/LookupFromIndexIT.java b/x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/LookupFromIndexIT.java index 10da31c79050b..d92b6cf038692 100644 --- a/x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/LookupFromIndexIT.java +++ b/x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/LookupFromIndexIT.java @@ -41,7 +41,7 @@ import org.elasticsearch.index.IndexService; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.IndexVersion; -import org.elasticsearch.index.mapper.FieldNamesFieldMapper; +import org.elasticsearch.index.mapper.DummyBlockLoaderContext; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; @@ -49,7 +49,6 @@ import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.ShardSearchRequest; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.tasks.CancellableTask; import org.elasticsearch.tasks.TaskId; import org.elasticsearch.test.ESTestCase; @@ -514,12 +513,7 @@ public static void assertDriverContext(DriverContext driverContext) { } private static MappedFieldType.BlockLoaderContext blContext() { - return new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - return "test_index"; - } - + return new DummyBlockLoaderContext("test_index") { @Override public IndexSettings indexSettings() { var imd = IndexMetadata.builder("test_index") @@ -528,30 +522,10 @@ public IndexSettings indexSettings() { return new IndexSettings(imd, Settings.EMPTY); } - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - @Override public Set sourcePaths(String name) { return Set.of(name); } - - @Override - public String parentField(String field) { - return null; - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } }; } } diff --git a/x-pack/plugin/mapper-constant-keyword/src/test/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapperTests.java b/x-pack/plugin/mapper-constant-keyword/src/test/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapperTests.java index 0a4067d7d7f19..7bada615681c6 100644 --- a/x-pack/plugin/mapper-constant-keyword/src/test/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapperTests.java +++ b/x-pack/plugin/mapper-constant-keyword/src/test/java/org/elasticsearch/xpack/constantkeyword/mapper/ConstantKeywordFieldMapperTests.java @@ -15,11 +15,10 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.mapper.BlockLoader; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.DocumentParsingException; -import org.elasticsearch.index.mapper.FieldNamesFieldMapper; +import org.elasticsearch.index.mapper.DummyBlockLoaderContext; import org.elasticsearch.index.mapper.LuceneDocument; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperParsingException; @@ -29,7 +28,6 @@ import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.TestBlock; import org.elasticsearch.plugins.Plugin; -import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xpack.constantkeyword.ConstantKeywordMapperPlugin; import org.elasticsearch.xpack.constantkeyword.mapper.ConstantKeywordFieldMapper.ConstantKeywordFieldType; @@ -38,7 +36,6 @@ import java.io.IOException; import java.util.Collection; import java.util.List; -import java.util.Set; import static org.elasticsearch.index.mapper.MapperService.INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING; import static org.hamcrest.Matchers.equalTo; @@ -233,42 +230,7 @@ public void testNullValueBlockLoader() throws IOException { b.field("type", "constant_keyword"); b.endObject(); })); - BlockLoader loader = mapper.fieldType("field").blockLoader(new MappedFieldType.BlockLoaderContext() { - @Override - public String indexName() { - throw new UnsupportedOperationException(); - } - - @Override - public IndexSettings indexSettings() { - throw new UnsupportedOperationException(); - } - - @Override - public MappedFieldType.FieldExtractPreference fieldExtractPreference() { - return MappedFieldType.FieldExtractPreference.NONE; - } - - @Override - public SearchLookup lookup() { - throw new UnsupportedOperationException(); - } - - @Override - public Set sourcePaths(String name) { - return mapper.mappingLookup().sourcePaths(name); - } - - @Override - public String parentField(String field) { - throw new UnsupportedOperationException(); - } - - @Override - public FieldNamesFieldMapper.FieldNamesFieldType fieldNames() { - return FieldNamesFieldMapper.FieldNamesFieldType.get(true); - } - }); + BlockLoader loader = mapper.fieldType("field").blockLoader(new DummyBlockLoaderContext.MapperServiceBlockLoaderContext(mapper)); try (Directory directory = newDirectory()) { RandomIndexWriter iw = new RandomIndexWriter(random(), directory); LuceneDocument doc = mapper.documentMapper().parse(source(b -> {})).rootDoc();