Neo4j нечеткий поиск
В моей базе данных Neo4j проекта Spring Data Neo4j 4 у меня есть Product
узлы с name
а также description
строковые свойства.
Мне нужно добавить функциональность нечеткого поиска по этим свойствам. Есть ли в Neo4j/Spring Data Neo4j какие-либо функциональные возможности для реализации этого? Если да / нет, не могли бы вы предложить, как это можно реализовать?
1 ответ
Решение
Если у вас есть хранилище под названием:
public interface ProductRepository extends CrudRepository<Product, Long> {
List<Product> findByNameLike(String name);
List<Product> findByDescriptionLike(String description);
}
Затем вы можете сделать что-то вроде этого (начиная с 4.2.0):
List<Product> products = productRepository.findByNameLike("*on*");
который будет использовать подстановочный знак, используя регулярные выражения (см. Cypher =~
оператор).
Отрицаемая версия этого; название findByNameNotLike()
также поддерживается.