我正在尝试使用graphAware的neo4j推荐引擎(https://github.com/graphaware/neo4j-reco)。我是新来了很多涉及的技术,但我明白我有我的推荐引擎建立后,我运行下面让我的建议:从Spring获取Neo4j节点查询结果
List<Recommendation<Node>> recoForVince = recommendationEngine.recommend(getPersonByName("Vince"), new SimpleConfig(2));
的例子getPersonByName是这样的:
private Node getPersonByName(String name) {
return IterableUtils.getSingle(getDatabase().findNodes(DynamicLabel.label("Person"), "name", name));
}
问题是,据我所知,只有当你的neo4j服务器被嵌入时才会起作用。我们正在使用Spring MVC我们的设置和使用,我们会碰到这样的:
@Repository
public interface PersonRepository extends GraphRepository<Person> {
@Query("MATCH (p:Person) WHERE m.name = {name} RETURN p")
Person findByTitleContaining(@Param("name") String name);
}
或许返回一个HashMap:
我们将喜欢的东西越来越我们的数据。我的问题是我不清楚如何将这些结果中的任何一个转换成可供Graphaware框架使用的Node对象,或者我应该如何获取Node对象。
是什么,如果我在服务器模式快到最好的方法?我只看到嵌入模式中引用的节点对象,它仅适用于嵌入模式吗? –
如果您使用服务器模式,则需要向neo4j-reco插件的API端点发出http请求。 Neo4j-Reco是一个服务器插件,因此可以在服务器端运行,而不是像SDN4那样在应用程序端运行。我编辑了我的回答 –
谢谢Christophe。这就是我所缺少的,我认为reco可以在应用程序方面工作,但完全丧失了这种工作方式。这个例子和你的解释清除了你建立的记录,并将其作为服务器的插件。 –