Spring Data neo4j плохая производительность при получении данных из базы данных Neo4j - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь сделать простой запрос, чтобы получить отношения 1-й глубины для определенного узла. Я провел пару тестов, чтобы проверить время, необходимое для получения данных. Требуемое время составляет около 1,2 секунды, хотя количество возвращаемых объектов равно 1 или 1000.

Просто чтобы проверить это поведение, я написал простой скрипт на Python и выполнил тот же запрос только для того, чтобы убедиться, что для получения результата требуется всего 40 мс.

Не могли бы вы помочь мне решить эту проблему весной? Спасибо за ваше время.

Сущность -

@NodeEntity(label = "Person")
public class Person {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @Relationship(type="X",direction = Relationship.OUTGOING)
    private Set<Person> x;

    public Person()
    {}

    public Person(String name) {
        this.name = name;   
    }

    public String getName() {
        return name;
    }
}

Хранилище -

import org.springframework.data.neo4j.annotation.Query;
public interface PersonRepository extends CrudRepository<Person, Long> {

    @Query("match (n:Person)-[]->(k:Person) where n.name = {name} return k.name limit 1;")
    List<String> findPeople(String name);
}

findPeople занимает всего 1 секунду, чтобы вернуть один объект из базы данных.

...