Skip to content

Commit 92b557c

Browse files
committed
Add tests related to derived fields for QueryShardContext changes
Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
1 parent f706aa3 commit 92b557c

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

server/src/main/java/org/opensearch/index/mapper/DerivedFieldMapper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private static DerivedFieldMapper toType(FieldMapper in) {
3737
*/
3838
public static class Builder extends ParametrizedFieldMapper.Builder {
3939
// TODO: The type of parameter may change here if the actual underlying FieldType object is needed
40-
private final Parameter<String> type = Parameter.stringParam("type", false, m -> toType(m).type, "text");
40+
private final Parameter<String> type = Parameter.stringParam("type", false, m -> toType(m).type, "keyword");
4141

4242
private final Parameter<Script> script = new Parameter<>(
4343
"script",

server/src/test/java/org/opensearch/index/query/QueryShardContextTests.java

+25
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
package org.opensearch.index.query;
3333

34+
import org.apache.lucene.analysis.standard.StandardAnalyzer;
3435
import org.apache.lucene.document.Field;
3536
import org.apache.lucene.document.StringField;
3637
import org.apache.lucene.index.DirectoryReader;
@@ -63,9 +64,14 @@
6364
import org.opensearch.index.fielddata.LeafFieldData;
6465
import org.opensearch.index.fielddata.ScriptDocValues;
6566
import org.opensearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
67+
import org.opensearch.index.mapper.ContentPath;
68+
import org.opensearch.index.mapper.DerivedFieldMapper;
69+
import org.opensearch.index.mapper.DocumentMapper;
6670
import org.opensearch.index.mapper.IndexFieldMapper;
6771
import org.opensearch.index.mapper.MappedFieldType;
72+
import org.opensearch.index.mapper.Mapper;
6873
import org.opensearch.index.mapper.MapperService;
74+
import org.opensearch.index.mapper.MappingLookup;
6975
import org.opensearch.index.mapper.TextFieldMapper;
7076
import org.opensearch.search.lookup.LeafDocLookup;
7177
import org.opensearch.search.lookup.LeafSearchLookup;
@@ -118,6 +124,25 @@ public void testFailIfFieldMappingNotFound() {
118124
assertThat(result.name(), equalTo("name"));
119125
}
120126

127+
public void testDerivedFieldMapping() {
128+
QueryShardContext context = createQueryShardContext(IndexMetadata.INDEX_UUID_NA_VALUE, null);
129+
assertNull(context.failIfFieldMappingNotFound("test_derived", null));
130+
DocumentMapper documentMapper = mock(DocumentMapper.class);
131+
Mapper.BuilderContext builderContext = new Mapper.BuilderContext(Settings.EMPTY, new ContentPath(0));
132+
DerivedFieldMapper derivedFieldMapper = new DerivedFieldMapper.Builder("test_derived").build(builderContext);
133+
MappingLookup mappingLookup = new MappingLookup(
134+
Collections.singletonList(derivedFieldMapper),
135+
Collections.emptyList(),
136+
Collections.emptyList(),
137+
0,
138+
new StandardAnalyzer()
139+
);
140+
when(documentMapper.mappers()).thenReturn(mappingLookup);
141+
context.setDerivedFieldMappers(documentMapper);
142+
context.setAllowUnmappedFields(false);
143+
assertEquals(derivedFieldMapper.fieldType(), context.failIfFieldMappingNotFound("test_derived", null));
144+
}
145+
121146
public void testToQueryFails() {
122147
QueryShardContext context = createQueryShardContext(IndexMetadata.INDEX_UUID_NA_VALUE, null);
123148
Exception exc = expectThrows(Exception.class, () -> context.toQuery(new AbstractQueryBuilder() {

0 commit comments

Comments
 (0)