in persistence-commons/persistence-commons-redis/src/main/java/org/kie/kogito/persistence/redis/RedisQueryFactory.java [49:85]
static void addFilters(io.redisearch.Query query, List<AttributeFilter<?>> filters) {
for (AttributeFilter attributeFilter : filters) {
switch (attributeFilter.getCondition()) {
case EQUAL:
case LIKE:
break;
case GT:
query.addFilter(
new io.redisearch.Query.NumericFilter(
attributeFilter.getAttribute(), convertNumeric(attributeFilter.getValue()), true, Double.POSITIVE_INFINITY, false));
break;
case GTE:
query.addFilter(
new io.redisearch.Query.NumericFilter(
attributeFilter.getAttribute(), convertNumeric(attributeFilter.getValue()), false, Double.POSITIVE_INFINITY, false));
break;
case LT:
query.addFilter(
new io.redisearch.Query.NumericFilter(
attributeFilter.getAttribute(), Double.NEGATIVE_INFINITY, false, convertNumeric(attributeFilter.getValue()), true));
break;
case LTE:
query.addFilter(
new io.redisearch.Query.NumericFilter(
attributeFilter.getAttribute(), Double.NEGATIVE_INFINITY, false, convertNumeric(attributeFilter.getValue()), false));
break;
case BETWEEN:
List<?> value = (List<?>) attributeFilter.getValue();
query.addFilter(
new io.redisearch.Query.NumericFilter(
attributeFilter.getAttribute(), convertNumeric(value.get(0)), false, convertNumeric(value.get(1)), false));
break;
default:
throw new UnsupportedOperationException("Redis does not support query filter: " + attributeFilter.getCondition());
}
}
}