OSS add guards for sqrt, log1p etc (#21358)

This commit is contained in:
Mohit Yadav 2025-05-22 14:20:54 +05:30 committed by GitHub
parent bbffeb87c7
commit 35d9f726ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -291,10 +291,18 @@ public class OpenSearchSourceBuilderFactory
if (fvb.getModifier() != null) {
switch (fvb.getModifier().value()) {
case "log":
condition =
QueryBuilders.boolQuery()
.filter(condition)
.filter(QueryBuilders.rangeQuery(fvb.getField()).gt(0));
factorBuilder.modifier(FieldValueFactorFunction.Modifier.LOG);
break;
case "log1p":
try {
condition =
QueryBuilders.boolQuery()
.filter(condition)
.filter(QueryBuilders.rangeQuery(fvb.getField()).gt(-1));
factorBuilder.modifier(FieldValueFactorFunction.Modifier.LOG1P);
} catch (NoSuchFieldError e) {
factorBuilder.modifier(FieldValueFactorFunction.Modifier.LOG);
@ -302,6 +310,10 @@ public class OpenSearchSourceBuilderFactory
break;
case "sqrt":
try {
condition =
QueryBuilders.boolQuery()
.filter(condition)
.filter(QueryBuilders.rangeQuery(fvb.getField()).gte(0));
factorBuilder.modifier(FieldValueFactorFunction.Modifier.SQRT);
} catch (NoSuchFieldError ignored) {
}