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