Skip to content

Commit 2200e15

Browse files
committed
Merge branch 'main' of github.com:elastic/elasticsearch into esql_namedqueries
2 parents 68023d8 + b8e2fce commit 2200e15

File tree

47 files changed

+220
-207
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+220
-207
lines changed

benchmarks/src/main/java/org/elasticsearch/benchmark/script/ScriptScoreBenchmark.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@
3030
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
3131
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
3232
import org.elasticsearch.index.mapper.MappedFieldType;
33+
import org.elasticsearch.index.mapper.MappingLookup;
3334
import org.elasticsearch.index.mapper.NumberFieldMapper.NumberFieldType;
3435
import org.elasticsearch.index.mapper.NumberFieldMapper.NumberType;
36+
import org.elasticsearch.index.mapper.SourceFieldMetrics;
3537
import org.elasticsearch.indices.breaker.CircuitBreakerService;
3638
import org.elasticsearch.indices.breaker.NoneCircuitBreakerService;
3739
import org.elasticsearch.plugins.PluginsLoader;
@@ -90,7 +92,7 @@ public class ScriptScoreBenchmark {
9092
private final SearchLookup lookup = new SearchLookup(
9193
fieldTypes::get,
9294
(mft, lookup, fdo) -> mft.fielddataBuilder(FieldDataContext.noRuntimeFields("benchmark")).build(fieldDataCache, breakerService),
93-
SourceProvider.fromStoredFields()
95+
SourceProvider.fromLookup(MappingLookup.EMPTY, null, SourceFieldMetrics.NOOP)
9496
);
9597

9698
@Param({ "expression", "metal", "painless_cast", "painless_def" })

docs/changelog/128213.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 128213
2+
summary: Refactor `SourceProvider` creation to consistently use `MappingLookup`
3+
area: Mapping
4+
type: enhancement
5+
issues: []

docs/reference/query-languages/esql/_snippets/functions/appendix/values.md

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/_snippets/functions/description/values.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/kibana/definition/functions/values.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/kibana/docs/functions/values.md

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/mapper-murmur3/src/test/java/org/elasticsearch/index/mapper/murmur3/Murmur3FieldMapperTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ protected void assertFetch(MapperService mapperService, String field, Object val
107107
ValueFetcher nativeFetcher = ft.valueFetcher(searchExecutionContext, format);
108108
ParsedDocument doc = mapperService.documentMapper().parse(source);
109109
withLuceneIndex(mapperService, iw -> iw.addDocuments(doc.docs()), ir -> {
110-
Source s = SourceProvider.fromStoredFields().getSource(ir.leaves().get(0), 0);
110+
Source s = SourceProvider.fromLookup(mapperService.mappingLookup(), null, mapperService.getMapperMetrics().sourceFieldMetrics())
111+
.getSource(ir.leaves().get(0), 0);
111112
docValueFetcher.setNextReader(ir.leaves().get(0));
112113
nativeFetcher.setNextReader(ir.leaves().get(0));
113114
List<Object> fromDocValues = docValueFetcher.fetchValues(s, 0, new ArrayList<>());

server/src/main/java/org/elasticsearch/index/fieldvisitor/StoredFieldLoader.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ public static StoredFieldLoader create(boolean loadSource, Set<String> fields) {
6666
* otherwise, uses the heuristic defined in {@link StoredFieldLoader#reader(LeafReaderContext, int[])}.
6767
*/
6868
public static StoredFieldLoader create(boolean loadSource, Set<String> fields, boolean forceSequentialReader) {
69+
if (loadSource == false && fields.isEmpty()) {
70+
return StoredFieldLoader.empty();
71+
}
6972
List<String> fieldsToLoad = fieldsToLoad(loadSource, fields);
7073
return new StoredFieldLoader() {
7174
@Override

server/src/main/java/org/elasticsearch/index/query/FilteredSearchExecutionContext.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.action.ActionListener;
2020
import org.elasticsearch.client.internal.Client;
2121
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
22+
import org.elasticsearch.core.Nullable;
2223
import org.elasticsearch.index.Index;
2324
import org.elasticsearch.index.IndexSettings;
2425
import org.elasticsearch.index.IndexVersion;
@@ -39,6 +40,7 @@
3940
import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry;
4041
import org.elasticsearch.search.lookup.LeafFieldLookupProvider;
4142
import org.elasticsearch.search.lookup.SearchLookup;
43+
import org.elasticsearch.search.lookup.SourceFilter;
4244
import org.elasticsearch.search.lookup.SourceProvider;
4345
import org.elasticsearch.xcontent.XContentParserConfiguration;
4446

@@ -162,8 +164,8 @@ public boolean isSourceSynthetic() {
162164
}
163165

164166
@Override
165-
public SourceLoader newSourceLoader(boolean forceSyntheticSource) {
166-
return in.newSourceLoader(forceSyntheticSource);
167+
public SourceLoader newSourceLoader(@Nullable SourceFilter filter, boolean forceSyntheticSource) {
168+
return in.newSourceLoader(filter, forceSyntheticSource);
167169
}
168170

169171
@Override

server/src/main/java/org/elasticsearch/index/query/SearchExecutionContext.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.elasticsearch.common.ParsingException;
2626
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
2727
import org.elasticsearch.common.lucene.search.Queries;
28+
import org.elasticsearch.core.Nullable;
2829
import org.elasticsearch.index.Index;
2930
import org.elasticsearch.index.IndexSettings;
3031
import org.elasticsearch.index.IndexSortConfig;
@@ -57,6 +58,7 @@
5758
import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry;
5859
import org.elasticsearch.search.lookup.LeafFieldLookupProvider;
5960
import org.elasticsearch.search.lookup.SearchLookup;
61+
import org.elasticsearch.search.lookup.SourceFilter;
6062
import org.elasticsearch.search.lookup.SourceProvider;
6163
import org.elasticsearch.transport.RemoteClusterAware;
6264
import org.elasticsearch.xcontent.XContentParserConfiguration;
@@ -439,15 +441,15 @@ public boolean isSourceSynthetic() {
439441
/**
440442
* Build something to load source {@code _source}.
441443
*/
442-
public SourceLoader newSourceLoader(boolean forceSyntheticSource) {
444+
public SourceLoader newSourceLoader(@Nullable SourceFilter filter, boolean forceSyntheticSource) {
443445
if (forceSyntheticSource) {
444446
return new SourceLoader.Synthetic(
445-
null,
447+
filter,
446448
() -> mappingLookup.getMapping().syntheticFieldLoader(null),
447449
mapperMetrics.sourceFieldMetrics()
448450
);
449451
}
450-
return mappingLookup.newSourceLoader(null, mapperMetrics.sourceFieldMetrics());
452+
return mappingLookup.newSourceLoader(filter, mapperMetrics.sourceFieldMetrics());
451453
}
452454

453455
/**
@@ -506,9 +508,7 @@ public SearchLookup lookup() {
506508
}
507509

508510
public SourceProvider createSourceProvider() {
509-
return isSourceSynthetic()
510-
? SourceProvider.fromSyntheticSource(mappingLookup.getMapping(), null, mapperMetrics.sourceFieldMetrics())
511-
: SourceProvider.fromStoredFields();
511+
return SourceProvider.fromLookup(mappingLookup, null, mapperMetrics.sourceFieldMetrics());
512512
}
513513

514514
/**

0 commit comments

Comments
 (0)