Skip to content

Commit e03141b

Browse files
committed
Add unit test
Signed-off-by: Asim Mahmood <asim.seng@gmail.com>
1 parent 2ce6624 commit e03141b

File tree

2 files changed

+95
-10
lines changed

2 files changed

+95
-10
lines changed

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

Lines changed: 75 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -413,14 +413,23 @@ public Query rangeQuery(
413413
}
414414

415415
@Override
416-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
416+
public List<Field> createFields(
417+
String name,
418+
Number value,
419+
boolean indexed,
420+
boolean docValued,
421+
boolean skiplist,
422+
boolean stored
423+
) {
417424
List<Field> fields = new ArrayList<>();
418425
if (indexed) {
419426
fields.add(new HalfFloatPoint(name, value.floatValue()));
420427
}
421428
if (docValued) {
422429
if (skiplist) {
423-
fields.add(SortedNumericDocValuesField.indexedField(name, HalfFloatPoint.halfFloatToSortableShort(value.floatValue())));
430+
fields.add(
431+
SortedNumericDocValuesField.indexedField(name, HalfFloatPoint.halfFloatToSortableShort(value.floatValue()))
432+
);
424433
} else {
425434
fields.add(new SortedNumericDocValuesField(name, HalfFloatPoint.halfFloatToSortableShort(value.floatValue())));
426435
}
@@ -593,7 +602,14 @@ public Query rangeQuery(
593602
}
594603

595604
@Override
596-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
605+
public List<Field> createFields(
606+
String name,
607+
Number value,
608+
boolean indexed,
609+
boolean docValued,
610+
boolean skiplist,
611+
boolean stored
612+
) {
597613
List<Field> fields = new ArrayList<>();
598614
if (indexed) {
599615
fields.add(new FloatPoint(name, value.floatValue()));
@@ -749,7 +765,14 @@ public Query rangeQuery(
749765
}
750766

751767
@Override
752-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
768+
public List<Field> createFields(
769+
String name,
770+
Number value,
771+
boolean indexed,
772+
boolean docValued,
773+
boolean skiplist,
774+
boolean stored
775+
) {
753776
List<Field> fields = new ArrayList<>();
754777
if (indexed) {
755778
fields.add(new DoublePoint(name, value.doubleValue()));
@@ -848,7 +871,14 @@ public Query rangeQuery(
848871
}
849872

850873
@Override
851-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
874+
public List<Field> createFields(
875+
String name,
876+
Number value,
877+
boolean indexed,
878+
boolean docValued,
879+
boolean skiplist,
880+
boolean stored
881+
) {
852882
return INTEGER.createFields(name, value, indexed, docValued, skiplist, stored);
853883
}
854884

@@ -928,7 +958,14 @@ public Query rangeQuery(
928958
}
929959

930960
@Override
931-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
961+
public List<Field> createFields(
962+
String name,
963+
Number value,
964+
boolean indexed,
965+
boolean docValued,
966+
boolean skiplist,
967+
boolean stored
968+
) {
932969
return INTEGER.createFields(name, value, indexed, docValued, skiplist, stored);
933970
}
934971

@@ -1122,7 +1159,14 @@ public Query rangeQuery(
11221159
}
11231160

11241161
@Override
1125-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
1162+
public List<Field> createFields(
1163+
String name,
1164+
Number value,
1165+
boolean indexed,
1166+
boolean docValued,
1167+
boolean skiplist,
1168+
boolean stored
1169+
) {
11261170
List<Field> fields = new ArrayList<>();
11271171
if (indexed) {
11281172
fields.add(new IntPoint(name, value.intValue()));
@@ -1268,7 +1312,14 @@ public Query rangeQuery(
12681312
}
12691313

12701314
@Override
1271-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
1315+
public List<Field> createFields(
1316+
String name,
1317+
Number value,
1318+
boolean indexed,
1319+
boolean docValued,
1320+
boolean skiplist,
1321+
boolean stored
1322+
) {
12721323
List<Field> fields = new ArrayList<>();
12731324
if (indexed) {
12741325
fields.add(new LongPoint(name, value.longValue()));
@@ -1403,7 +1454,14 @@ public Query rangeQuery(
14031454
}
14041455

14051456
@Override
1406-
public List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored) {
1457+
public List<Field> createFields(
1458+
String name,
1459+
Number value,
1460+
boolean indexed,
1461+
boolean docValued,
1462+
boolean skiplist,
1463+
boolean stored
1464+
) {
14071465
List<Field> fields = new ArrayList<>();
14081466
final BigInteger v = Numbers.toUnsignedLongExact(value);
14091467

@@ -1485,7 +1543,14 @@ public abstract Query rangeQuery(
14851543

14861544
public abstract Number parsePoint(byte[] value);
14871545

1488-
public abstract List<Field> createFields(String name, Number value, boolean indexed, boolean docValued, boolean skiplist, boolean stored);
1546+
public abstract List<Field> createFields(
1547+
String name,
1548+
Number value,
1549+
boolean indexed,
1550+
boolean docValued,
1551+
boolean skiplist,
1552+
boolean stored
1553+
);
14891554

14901555
abstract Number valueForSearch(String value);
14911556

server/src/test/java/org/opensearch/index/mapper/NumberFieldMapperTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.apache.lucene.document.SortedNumericDocValuesField;
3737
import org.apache.lucene.document.StoredField;
3838
import org.apache.lucene.index.DirectoryReader;
39+
import org.apache.lucene.index.DocValuesSkipIndexType;
3940
import org.apache.lucene.index.DocValuesType;
4041
import org.apache.lucene.index.IndexWriter;
4142
import org.apache.lucene.index.IndexWriterConfig;
@@ -121,7 +122,9 @@ public void doTestDefaults(String type) throws Exception {
121122
assertEquals(123, pointField.numericValue().doubleValue(), 0d);
122123
IndexableField dvField = fields[1];
123124
assertEquals(DocValuesType.SORTED_NUMERIC, dvField.fieldType().docValuesType());
125+
assertEquals(DocValuesSkipIndexType.NONE, dvField.fieldType().docValuesSkipIndexType());
124126
assertFalse(dvField.fieldType().stored());
127+
125128
}
126129

127130
@Override
@@ -133,6 +136,7 @@ public void doTestNotIndexed(String type) throws Exception {
133136
assertEquals(1, fields.length);
134137
IndexableField dvField = fields[0];
135138
assertEquals(DocValuesType.SORTED_NUMERIC, dvField.fieldType().docValuesType());
139+
assertEquals(DocValuesSkipIndexType.NONE, dvField.fieldType().docValuesSkipIndexType());
136140
}
137141

138142
@Override
@@ -159,6 +163,7 @@ public void doTestStore(String type) throws Exception {
159163
assertEquals(123, pointField.numericValue().doubleValue(), 0d);
160164
IndexableField dvField = fields[1];
161165
assertEquals(DocValuesType.SORTED_NUMERIC, dvField.fieldType().docValuesType());
166+
assertEquals(DocValuesSkipIndexType.NONE, dvField.fieldType().docValuesSkipIndexType());
162167
IndexableField storedField = fields[2];
163168
assertTrue(storedField.fieldType().stored());
164169
// The 'unsigned_long' is stored as a string
@@ -472,6 +477,21 @@ public void testUnsignedLongFieldDerivedValueFetchingMultiValue_DocValues() thro
472477
}
473478
}
474479

480+
public void testSkipList() throws IOException {
481+
for (String type : types()) {
482+
DocumentMapper mapper = createDocumentMapper(
483+
fieldMapping(b -> b.field("type", type).field("index", false).field("skip_list", true))
484+
);
485+
ParsedDocument doc = mapper.parse(source(b -> b.field("field", 123)));
486+
487+
IndexableField[] fields = doc.rootDoc().getFields("field");
488+
assertEquals(1, fields.length);
489+
IndexableField dvField = fields[0];
490+
assertEquals(DocValuesType.SORTED_NUMERIC, dvField.fieldType().docValuesType());
491+
assertEquals(DocValuesSkipIndexType.RANGE, dvField.fieldType().docValuesSkipIndexType());
492+
}
493+
}
494+
475495
private NumberFieldMapper getMapper(NumberType numberType, FieldMapper.CopyTo copyTo, boolean hasDocValues, boolean isStored)
476496
throws IOException {
477497
MapperService mapperService = createMapperService(

0 commit comments

Comments
 (0)