Skip to content

Commit 52644ea

Browse files
committed
Address review nits
1 parent 659aae5 commit 52644ea

File tree

3 files changed

+41
-39
lines changed

3 files changed

+41
-39
lines changed

modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/extras/MatchOnlyTextFieldMapper.java

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,37 @@ public Query phrasePrefixQuery(TokenStream stream, int slop, int maxExpansions,
362362
return toQuery(query, queryShardContext);
363363
}
364364

365+
private static class BytesFromMixedStringsBytesRefBlockLoader extends BlockStoredFieldsReader.StoredFieldsBlockLoader {
366+
BytesFromMixedStringsBytesRefBlockLoader(String field) {
367+
super(field);
368+
}
369+
370+
@Override
371+
public Builder builder(BlockFactory factory, int expectedCount) {
372+
return factory.bytesRefs(expectedCount);
373+
}
374+
375+
@Override
376+
public RowStrideReader rowStrideReader(LeafReaderContext context) throws IOException {
377+
return new BlockStoredFieldsReader.Bytes(field) {
378+
private final BytesRef scratch = new BytesRef();
379+
380+
@Override
381+
protected BytesRef toBytesRef(Object v) {
382+
if (v instanceof BytesRef) {
383+
return (BytesRef) v;
384+
} else {
385+
return BlockSourceReader.toBytesRef(scratch, (String) v);
386+
}
387+
}
388+
};
389+
}
390+
}
391+
365392
@Override
366393
public BlockLoader blockLoader(BlockLoaderContext blContext) {
367394
if (textFieldType.isSyntheticSource()) {
368-
return new BlockStoredFieldsReader.BytesFromMixedStringsBytesRefBlockLoader(storedFieldNameForSyntheticSource());
395+
return new BytesFromMixedStringsBytesRefBlockLoader(storedFieldNameForSyntheticSource());
369396
}
370397
SourceValueFetcher fetcher = SourceValueFetcher.toString(blContext.sourcePaths(name()));
371398
// MatchOnlyText never has norms, so we have to use the field names field
@@ -386,10 +413,11 @@ public IndexFieldData.Builder fielddataBuilder(FieldDataContext fieldDataContext
386413
) {
387414
@Override
388415
protected BytesRef storedToBytesRef(Object stored) {
389-
if (stored instanceof BytesRef) {
390-
return (BytesRef) stored;
416+
if (stored instanceof BytesRef storedBytes) {
417+
return storedBytes;
391418
} else {
392-
return new BytesRef((String) stored);
419+
assert stored instanceof String;
420+
return new BytesRef(stored.toString());
393421
}
394422
}
395423
};
@@ -481,10 +509,11 @@ protected SyntheticSourceSupport syntheticSourceSupport() {
481509
() -> new StringStoredFieldFieldLoader(fieldType().storedFieldNameForSyntheticSource(), fieldType().name(), leafName()) {
482510
@Override
483511
protected void write(XContentBuilder b, Object value) throws IOException {
484-
if (value instanceof BytesRef) {
485-
b.value(((BytesRef) value).utf8ToString());
512+
if (value instanceof BytesRef valueBytes) {
513+
b.value(valueBytes.utf8ToString());
486514
} else {
487-
b.value((String) value);
515+
assert value instanceof String;
516+
b.value(value.toString());
488517
}
489518
}
490519
}

server/src/main/java/org/elasticsearch/index/mapper/BlockSourceReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ public String toString() {
469469
/**
470470
* Convert a {@link String} into a utf-8 {@link BytesRef}.
471471
*/
472-
static BytesRef toBytesRef(BytesRef scratch, String v) {
472+
public static BytesRef toBytesRef(BytesRef scratch, String v) {
473473
int len = UnicodeUtil.maxUTF8Length(v.length());
474474
if (scratch.bytes.length < len) {
475475
scratch.bytes = new byte[len];

server/src/main/java/org/elasticsearch/index/mapper/BlockStoredFieldsReader.java

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ public boolean canReuse(int startingDocID) {
3535
return true;
3636
}
3737

38-
private abstract static class StoredFieldsBlockLoader implements BlockLoader {
38+
public abstract static class StoredFieldsBlockLoader implements BlockLoader {
3939
protected final String field;
4040

41-
StoredFieldsBlockLoader(String field) {
41+
public StoredFieldsBlockLoader(String field) {
4242
this.field = field;
4343
}
4444

@@ -63,33 +63,6 @@ public final SortedSetDocValues ordinals(LeafReaderContext context) {
6363
}
6464
}
6565

66-
public static class BytesFromMixedStringsBytesRefBlockLoader extends StoredFieldsBlockLoader {
67-
public BytesFromMixedStringsBytesRefBlockLoader(String field) {
68-
super(field);
69-
}
70-
71-
@Override
72-
public Builder builder(BlockFactory factory, int expectedCount) {
73-
return factory.bytesRefs(expectedCount);
74-
}
75-
76-
@Override
77-
public RowStrideReader rowStrideReader(LeafReaderContext context) throws IOException {
78-
return new Bytes(field) {
79-
private final BytesRef scratch = new BytesRef();
80-
81-
@Override
82-
protected BytesRef toBytesRef(Object v) {
83-
if (v instanceof BytesRef) {
84-
return (BytesRef) v;
85-
} else {
86-
return BlockSourceReader.toBytesRef(scratch, (String) v);
87-
}
88-
}
89-
};
90-
}
91-
}
92-
9366
/**
9467
* Load {@link BytesRef} blocks from stored {@link BytesRef}s.
9568
*/
@@ -139,10 +112,10 @@ protected BytesRef toBytesRef(Object v) {
139112
}
140113
}
141114

142-
private abstract static class Bytes extends BlockStoredFieldsReader {
115+
public abstract static class Bytes extends BlockStoredFieldsReader {
143116
private final String field;
144117

145-
Bytes(String field) {
118+
public Bytes(String field) {
146119
this.field = field;
147120
}
148121

0 commit comments

Comments
 (0)