我正在实施节点属性搜索。假设我有一个数百万的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的新手。
答案 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);