如何为Spring-Data-Neo4j编写动态搜索查询

时间:2015-07-24 06:22:02

标签: neo4j spring-data-neo4j

我正在实施节点属性搜索。假设我有一个数百万的User节点,其中包含属性名称,位置,收入。

n:user (name:"abc",location:"xyz", income:"123") n:user (name:"def",location:"ghj", income:"1877")

我想搜索用户名称或位置或收入或名称和位置等属性的组合。我可以使用简单的密码查询执行此搜索 @Query("MATCH(n:user{location:{xyz},}) RETURN n") or
@Query("MATCH(n:userr{location:{xyz},name:{abc}}) RETURN n")

但是我不想这样做,我只想传递搜索参数并在运行时使用所请求的参数创建搜索查询。在neo4template课程中,得到了这个方法query(String statement, Map<String,Object> params)现在我一无所知,任何详细的答案都会受到赞赏,因为我是neo4j的新手。

1 个答案:

答案 0 :(得分:0)

不幸的是,参数图不能用于MATCH模式。

所以我相信你不能使用像:

这样的通用查询
@Query("MATCH(n:user{0}) RETURN n")
public List<User> complexFind(Map<String, Object> props);

我建议使用字符串连接动态构建查询字符串,然后使用smth执行它:

neo4template.query(YourQueryStringBuilder.build(search_params), other_params);