首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >neo4j错误:类型不匹配:预期的浮点数或整数,但为Node

neo4j错误:类型不匹配:预期的浮点数或整数,但为Node
EN

Stack Overflow用户
提问于 2016-06-05 15:17:59
回答 1查看 1.7K关注 0票数 0

我在neo4j上有以下数据集

代码语言:javascript
复制
create (recipe1:recipe {name: 'recipe-1'})
create (recipe2:recipe {name: 'recipe-2'})
create (recipe3:recipe {name: 'recipe-3'})
create (recipe4:recipe {name: 'recipe-4'})
create (recipe5:recipe {name: 'recipe-5'})
create (recipe6:recipe {name: 'recipe-6'})
create (user1:user {name: 'user-1'})
create (user2:user {name: 'user-2'})
create (user3:user {name: 'user-3'})
create (user4:user {name: 'user-4'})
create
  (user1)-[:LIKES]->(recipe1),
  (user1)-[:LIKES]->(recipe2),
  (user1)-[:LIKES]->(recipe4),
  (user2)-[:LIKES]->(recipe4),
  (user2)-[:LIKES]->(recipe6),
  (user3)-[:LIKES]->(recipe1),
  (user3)-[:LIKES]->(recipe3),
  (user3)-[:LIKES]->(recipe6),
  (user4)-[:LIKES]->(recipe4)

并试图运行以下查询:

代码语言:javascript
复制
match (user4:user {name: 'user-4'})-[LIKES]->recipe<-[:LIKES]-slm-[:LIKES]->recommendations
where not(user4 = slm) and not(user4-recommendations)
return count(*) AS recommendationsWeight, 
recommendations.name AS name
order by recommendationsWeight DESC, name DESC

但我得到了以下错误:

代码语言:javascript
复制
Type mismatch: expected Float or Integer but was Node (line 2, column 32 (offset: 123))
"where not(user4 = slm) and not(user4-recommendations)"
                                ^

你知道我在这里做错什么了吗?

更新:

在这里,我想对not(user4-recommendations)说的是,user4与之无关的任何建议。例如,考虑以下几点:

代码语言:javascript
复制
match (user4:user {name: 'user-4'}), (recipe1:recipe {name: 'recipe-1'})
create (user4)-[:DISLIKES]->(recipe1)

因此,我的推荐查询结果不应该包括recipe1,因为用户以前与它交互过。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 16:29:28

您有一个错误::-而不是=。不要忘记括号:

代码语言:javascript
复制
match (user4:user {name: 'user-4'})-[LIKES]->
      (recipe)
      <-[:LIKES]-(slm)-[:LIKES]->
      (recommendations)
where not(user4 = slm) and not(user4 = recommendations)
return count(*) AS recommendationsWeight, 
       recommendations.name AS name
order by recommendationsWeight DESC, 
         name DESC

我想你是想建立一个推荐系统。然后,请求将变得更容易(不需要检查,因为它不使用零长路径):

代码语言:javascript
复制
match (user4:user {name: 'user-4'})
      -[:LIKES]->(recipe)<-[:LIKES]-
      (slm)-[:LIKES]->(recommendations)
where not ( (user4)-[:DISLIKES|LIKES]->(recommendations) )
return recommendations, 
       count(recommendations) as recommendationsWeight  
order by recommendationsWeight desc, 
      recommendations.name asc
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37643474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档