Skip to content

Commit 9011486

Browse files
committed
Merge branch 'main' into feature/apis
2 parents de60192 + 85d375c commit 9011486

File tree

48 files changed

+1887
-439
lines changed

Some content is hidden

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

48 files changed

+1887
-439
lines changed

docs/changelog/124708.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 124708
2+
summary: Throw exception for unknown token in RestIndexPutAliasAction
3+
area: Indices APIs
4+
type: enhancement
5+
issues: []

docs/changelog/124737.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 124737
2+
summary: Throw exception for unsupported values type in Alias
3+
area: Indices APIs
4+
type: enhancement
5+
issues: []

docs/changelog/126629.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 126629
2+
summary: Default new `semantic_text` fields to use BBQ when models are compatible
3+
area: Relevance
4+
type: enhancement
5+
issues: []

docs/changelog/127285.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 127285
2+
summary: Restore model registry validation for the semantic text field
3+
area: Search
4+
type: enhancement
5+
issues: []

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/indices.create/10_basic.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,38 @@
8686
- is_false: test_index.aliases.test_clias.index_routing
8787
- is_false: test_index.aliases.test_clias.search_routing
8888

89+
---
90+
"Throw exception for unsupported value type":
91+
- requires:
92+
cluster_features: [ "index.throw_exception_on_index_creation_if_unsupported_value_type_in_alias" ]
93+
reason: "Throw exception on index creation if unsupported value type in alias"
94+
95+
- do:
96+
catch: /Unsupported String type value \[true\] for field \[is_write_index\] in alias \[test_alias\]/
97+
indices.create:
98+
index: test_index
99+
body:
100+
mappings:
101+
properties:
102+
field:
103+
type: text
104+
aliases:
105+
test_alias:
106+
is_write_index: "true"
107+
108+
- do:
109+
catch: /Unsupported boolean type value \[true\] for field \[routing\] in alias \[test_alias\]/
110+
indices.create:
111+
index: test_index
112+
body:
113+
mappings:
114+
properties:
115+
field:
116+
type: text
117+
aliases:
118+
test_alias:
119+
routing: true
120+
89121
---
90122
"Create index with write aliases":
91123

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/indices.put_alias/10_basic.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,30 @@
103103
index: test_index
104104
name: test_alias
105105
- match: {test_index.aliases.test_alias: {"filter": {"range": {"date_nanos_field": {"gt": "now-7d/d"}}}}}
106+
107+
---
108+
"Throw exception for unknown token":
109+
- requires:
110+
cluster_features: [ "index.throw_exception_for_unknown_token_in_rest_index_put_alias_action" ]
111+
reason: "Throw exception for unknown token in RestIndexPutAliasAction"
112+
113+
- do:
114+
indices.create:
115+
index: test_index
116+
117+
- do:
118+
catch: /Unsupported field \[foo\]/
119+
indices.put_alias:
120+
index: test_index
121+
name: test_alias
122+
body:
123+
is_write_index: true
124+
foo: "bar"
125+
126+
- do:
127+
catch: / Unexpected token \[START_ARRAY\]/
128+
indices.put_alias:
129+
index: test_index
130+
name: test_alias
131+
body:
132+
routing: [ "routing" ]

server/src/internalClusterTest/java/org/elasticsearch/plugins/internal/XContentMeteringParserDecoratorIT.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.plugins.internal;
1111

1212
import org.elasticsearch.action.index.IndexRequest;
13+
import org.elasticsearch.index.Index;
1314
import org.elasticsearch.index.IndexSettings;
1415
import org.elasticsearch.index.engine.EngineFactory;
1516
import org.elasticsearch.index.engine.InternalEngine;
@@ -104,7 +105,7 @@ public IndexResult index(Index index) throws IOException {
104105
IndexResult result = super.index(index);
105106

106107
DocumentSizeReporter documentParsingReporter = documentParsingProvider.newDocumentSizeReporter(
107-
shardId.getIndexName(),
108+
shardId.getIndex(),
108109
config().getMapperService(),
109110
DocumentSizeAccumulator.EMPTY_INSTANCE
110111
);
@@ -131,22 +132,22 @@ public <T> XContentMeteringParserDecorator newMeteringParserDecorator(IndexReque
131132

132133
@Override
133134
public DocumentSizeReporter newDocumentSizeReporter(
134-
String indexName,
135+
Index index,
135136
MapperService mapperService,
136137
DocumentSizeAccumulator documentSizeAccumulator
137138
) {
138-
return new TestDocumentSizeReporter(indexName);
139+
return new TestDocumentSizeReporter(index);
139140
}
140141
};
141142
}
142143
}
143144

144145
public static class TestDocumentSizeReporter implements DocumentSizeReporter {
145146

146-
private final String indexName;
147+
private final Index index;
147148

148-
public TestDocumentSizeReporter(String indexName) {
149-
this.indexName = indexName;
149+
public TestDocumentSizeReporter(Index index) {
150+
this.index = index;
150151
}
151152

152153
@Override
@@ -155,7 +156,7 @@ public void onIndexingCompleted(ParsedDocument parsedDocument) {
155156
if (delta > XContentMeteringParserDecorator.UNKNOWN_SIZE) {
156157
COUNTER.addAndGet(delta);
157158
}
158-
assertThat(indexName, equalTo(TEST_INDEX_NAME));
159+
assertThat(index.getName(), equalTo(TEST_INDEX_NAME));
159160
}
160161
}
161162

server/src/main/java/org/elasticsearch/action/admin/cluster/shards/TransportClusterSearchShardsAction.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.elasticsearch.cluster.routing.ShardIterator;
2626
import org.elasticsearch.cluster.routing.ShardRouting;
2727
import org.elasticsearch.cluster.service.ClusterService;
28-
import org.elasticsearch.core.Predicates;
2928
import org.elasticsearch.index.shard.ShardId;
3029
import org.elasticsearch.indices.IndicesService;
3130
import org.elasticsearch.injection.guice.Inject;
@@ -105,14 +104,7 @@ protected void masterOperation(
105104
Set<ResolvedExpression> indicesAndAliases = indexNameExpressionResolver.resolveExpressions(project.metadata(), request.indices());
106105
for (String index : concreteIndices) {
107106
final AliasFilter aliasFilter = indicesService.buildAliasFilter(project, index, indicesAndAliases);
108-
final String[] aliases = indexNameExpressionResolver.indexAliases(
109-
project.metadata(),
110-
index,
111-
Predicates.always(),
112-
Predicates.always(),
113-
true,
114-
indicesAndAliases
115-
);
107+
final String[] aliases = indexNameExpressionResolver.allIndexAliases(project.metadata(), index, indicesAndAliases);
116108
indicesAndFilters.put(index, AliasFilter.of(aliasFilter.getQueryBuilder(), aliases));
117109
}
118110

server/src/main/java/org/elasticsearch/action/admin/indices/alias/Alias.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,32 @@ public static Alias fromXContent(XContentParser parser) throws IOException {
257257
alias.indexRouting(parser.text());
258258
} else if (SEARCH_ROUTING.match(currentFieldName, parser.getDeprecationHandler())) {
259259
alias.searchRouting(parser.text());
260+
} else {
261+
throw new IllegalArgumentException(
262+
"Unsupported String type value ["
263+
+ parser.text()
264+
+ "] for field ["
265+
+ currentFieldName
266+
+ "] in alias ["
267+
+ alias.name
268+
+ "]"
269+
);
260270
}
261271
} else if (token == XContentParser.Token.VALUE_BOOLEAN) {
262272
if (IS_WRITE_INDEX.match(currentFieldName, parser.getDeprecationHandler())) {
263273
alias.writeIndex(parser.booleanValue());
264274
} else if (IS_HIDDEN.match(currentFieldName, parser.getDeprecationHandler())) {
265275
alias.isHidden(parser.booleanValue());
276+
} else {
277+
throw new IllegalArgumentException(
278+
"Unsupported boolean type value ["
279+
+ parser.text()
280+
+ "] for field ["
281+
+ currentFieldName
282+
+ "] in alias ["
283+
+ alias.name
284+
+ "]"
285+
);
266286
}
267287
} else {
268288
throw new IllegalArgumentException("Unknown token [" + token + "] in alias [" + alias.name + "]");

server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
import org.elasticsearch.common.util.Maps;
6363
import org.elasticsearch.common.util.concurrent.CountDown;
6464
import org.elasticsearch.common.util.concurrent.EsExecutors;
65-
import org.elasticsearch.core.Predicates;
6665
import org.elasticsearch.core.TimeValue;
6766
import org.elasticsearch.index.Index;
6867
import org.elasticsearch.index.IndexNotFoundException;
@@ -232,14 +231,7 @@ private Map<String, OriginalIndices> buildPerIndexOriginalIndices(
232231
blocks.indexBlockedRaiseException(projectState.projectId(), ClusterBlockLevel.READ, index);
233232
}
234233

235-
String[] aliases = indexNameExpressionResolver.indexAliases(
236-
projectState.metadata(),
237-
index,
238-
Predicates.always(),
239-
Predicates.always(),
240-
true,
241-
indicesAndAliases
242-
);
234+
String[] aliases = indexNameExpressionResolver.allIndexAliases(projectState.metadata(), index, indicesAndAliases);
243235
String[] finalIndices = Strings.EMPTY_ARRAY;
244236
if (aliases == null
245237
|| aliases.length == 0

0 commit comments

Comments
 (0)