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

(cherry picked from commit 35d9f726ca91e974e09b24d67f633a38744fe191)
This commit is contained in:
Mohit Yadav 2025-05-22 14:20:54 +05:30 committed by mohitdeuex
parent 75315669cc
commit 2dc323da80

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) {
}