diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchSourceBuilderFactory.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchSourceBuilderFactory.java index 2c8ed67c4a8..0752b6fafe5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchSourceBuilderFactory.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchSourceBuilderFactory.java @@ -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) { }