feat:(entity-registry): add ability to search for float and double (#10324)

This commit is contained in:
Rosmi 2024-04-25 04:09:31 +05:30 committed by GitHub
parent e64229b036
commit 437b7a162f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 23 additions and 12 deletions

View File

@ -153,10 +153,12 @@ public class SearchableAnnotation {
private static FieldType getDefaultFieldType(DataSchema.Type schemaDataType) {
switch (schemaDataType) {
case INT:
case FLOAT:
return FieldType.COUNT;
case MAP:
return FieldType.KEYWORD;
case FLOAT:
case DOUBLE:
return FieldType.DOUBLE;
default:
return FieldType.TEXT;
}

View File

@ -98,10 +98,12 @@ public class SearchableRefAnnotation {
DataSchema.Type schemaDataType) {
switch (schemaDataType) {
case INT:
case FLOAT:
return SearchableAnnotation.FieldType.COUNT;
case MAP:
return SearchableAnnotation.FieldType.KEYWORD;
case FLOAT:
case DOUBLE:
return SearchableAnnotation.FieldType.DOUBLE;
default:
return SearchableAnnotation.FieldType.TEXT;
}

View File

@ -314,6 +314,10 @@ public class SearchDocumentTransformer {
return Optional.of(JsonNodeFactory.instance.numberNode((Integer) fieldValue));
case LONG:
return Optional.of(JsonNodeFactory.instance.numberNode((Long) fieldValue));
case FLOAT:
return Optional.of(JsonNodeFactory.instance.numberNode((Float) fieldValue));
case DOUBLE:
return Optional.of(JsonNodeFactory.instance.numberNode((Double) fieldValue));
// By default run toString
default:
String value = fieldValue.toString();

View File

@ -69,6 +69,7 @@ public class TestEntityUtil {
"123",
"longValue",
"0123456789")));
testEntityInfo.setDoubleField(100.456);
return testEntityInfo;
}

View File

@ -60,6 +60,7 @@ public class SearchDocumentTransformerTest {
assertTrue(result.isPresent());
ObjectNode parsedJson = (ObjectNode) OBJECT_MAPPER.readTree(result.get());
assertEquals(parsedJson.get("urn").asText(), snapshot.getUrn().toString());
assertEquals(parsedJson.get("doubleField").asDouble(), 100.456);
assertEquals(parsedJson.get("keyPart1").asText(), "key");
assertFalse(parsedJson.has("keyPart2"));
assertEquals(parsedJson.get("keyPart3").asText(), "VALUE_1");
@ -106,6 +107,7 @@ public class SearchDocumentTransformerTest {
parsedJson.get("nestedIntegerField").getNodeType().equals(JsonNodeType.NULL);
parsedJson.get("feature1").getNodeType().equals(JsonNodeType.NULL);
parsedJson.get("feature2").getNodeType().equals(JsonNodeType.NULL);
parsedJson.get("doubleField").getNodeType().equals(JsonNodeType.NULL);
}
@Test

View File

@ -92,15 +92,15 @@ record TestEntityInfo includes CustomProperties {
}
esObjectField: optional map[string, string]
@Searchable = {
"fieldName": "doubleField",
"fieldType": "DOUBLE"
}
doubleField: optional double
@Searchable = {
"fieldName": "doubleField",
"fieldType": "DOUBLE"
}
doubleField: optional double
@Searchable = {
"fieldName": "removed",
"fieldType": "BOOLEAN"
}
removed: optional boolean
@Searchable = {
"fieldName": "removed",
"fieldType": "BOOLEAN"
}
removed: optional boolean
}