
com.redis.om.spring.search.stream.predicates.geo.NotEqualPredicate Maven / Gradle / Ivy
package com.redis.om.spring.search.stream.predicates.geo;
import java.lang.reflect.Field;
import org.springframework.data.geo.Point;
import com.redis.om.spring.search.stream.predicates.BaseAbstractPredicate;
import io.redisearch.querybuilder.Node;
import io.redisearch.querybuilder.QueryBuilder;
import io.redisearch.querybuilder.Values;
public class NotEqualPredicate extends BaseAbstractPredicate {
private T value;
private Double x;
private Double y;
public NotEqualPredicate(Field field, T value) {
super(field);
this.value = value;
if (value.getClass() == Point.class) {
Point point = (Point)value;
x = point.getX();
y = point.getY();
}
}
public NotEqualPredicate(Field field, String xy) {
super(field);
String[] coordinates = xy.split(",");
x = Double.parseDouble(coordinates[0]);
y = Double.parseDouble(coordinates[1]);
}
public NotEqualPredicate(Field field, Double x, Double y) {
super(field);
this.x = x;
this.y = y;
}
public T getValue() {
return value;
}
@Override
public Node apply(Node root) {
return QueryBuilder.intersect(root)
.add(QueryBuilder.disjunct(getField().getName(), Values.value(String.format("[%s %s 0.0001 mi]", x, y))));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy