Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<String> 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 + "]");
}
Expand Down Expand Up @@ -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<String> 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());
}

/**
Expand Down Expand Up @@ -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<String> 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;
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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<String> 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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<String> 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);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -536,22 +536,12 @@ protected final List<Object> 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(
Expand All @@ -561,21 +551,6 @@ public SearchLookup lookup() {
SourceProvider.fromLookup(MappingLookup.EMPTY, null, SourceFieldMetrics.NOOP)
).lookup();
}

@Override
public Set<String> 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);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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<String> 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);
}
});
}

Expand Down
Loading