我使用neo4j和弹簧数据。
当我使用返回多个字段的查询时,我通常会尝试返回一个接口(@QueryResult注释),因此我不需要在之后转换结果。
出于某些原因,随着结果数量的增长,我的表现会非常糟糕。
有没有人有解决方案?
我通过休息使用neo4j 2.0.1,为neo4j 3.0.0使用spring数据
数据集非常小,少于100个节点,结果集最多约10个记录。
答案 0 :(得分:1)
Spring-Data-Neo4j-Rest非常慢,因为它是为嵌入式数据库构建的。
以下修复程序可以帮助您提高应用程序的性能,同时仍然利用SDN的功能为您反序列化对象。
例如,
public class Person {
@RelatedTo (type = "MARRIED", direction = BOTH)
private Person partner;
}
@QueryResult
public class PersonResult {
@ResultColumn("person")
private Person person;
@ResultColumn("partner")
private Person partner;
}
在您的存储库中,然后获取结果
public interface PersonRepository extends GraphRepository <Person> {
@Query ("MATCH person-[m:MARRIED]-partner RETURN person, partner)
List<PersonResult> findAllMarried ();
}
您的对象以这种方式批量序列化。当SDN团队找到解决此问题的更好方法时,这非常有效。