Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j-基于标签获取电影推荐_Neo4j_Cypher_Neo4j Cql - Fatal编程技术网

Neo4j-基于标签获取电影推荐

Neo4j-基于标签获取电影推荐,neo4j,cypher,neo4j-cql,Neo4j,Cypher,Neo4j Cql,我想查找其搜索标签包含我观看的电影标签的电影。以下是我的查询,但它没有产生预期的结果,有人能告诉我这个查询有什么问题吗 MATCH (m:Movie)-[:HAS_TAG]->(t:Tag) WHERE NOT (:Person {personId : '50'})-[:WATCHED]->(m) AND (m)-[:HAS_TAG]->(t) RETURN DISTINCT(m.movieId) as movieId, COLLECT(t.ta

我想查找其搜索标签包含我观看的电影标签的电影。以下是我的查询,但它没有产生预期的结果,有人能告诉我这个查询有什么问题吗

MATCH (m:Movie)-[:HAS_TAG]->(t:Tag)
    WHERE NOT (:Person {personId : '50'})-[:WATCHED]->(m)
    AND (m)-[:HAS_TAG]->(t)
    RETURN DISTINCT(m.movieId) as movieId,
    COLLECT(t.tagId) as Tag
我尝试了这个查询,它正在工作,但我不知道如何使它成为动态tagid?我是neo4j的新手,我阅读了neo4j中带有语句的,但不确定如何使用它以及它是否有效

MATCH (m:Movie)-[:HAS_TAG]->(t:Tag)
WHERE NOT (:Person {personId : '50'})-[:WATCHED]->(m)
AND t.tagId in ['16','19','21','22','23','24','25'] 
RETURN DISTINCT(m.movieId)
或带有图案的变体:

MATCH (p:Person {personId : '50'})
WITH p
MATCH (p)-[:WATCHED]->(wm:Movie)-[:HAS_TAG]->(t:Tag)<-[:HAS_TAG]-(rm:Movie)
WHERE NOT (p)-[:WATCHED]->(rm)
RETURN distinct rm AS movies
MATCH(p:Person{personId:'50'})
与p
比赛(p)-[:观看的]->(wm:Movie)-[:有标签]->(t:TAG)(rm)
作为电影返回不同的rm

我想你的意思是“我不看”(不管怎样,你在查询中似乎就是这么做的)。“动态标记id”是什么意思:是否要参数化查询中使用的标记id?电影应该至少有一个标签还是全部标签?谢谢@FrankPavageau,我所说的动态是指在查询中是静态的标签数组['16'、'19'、'21'、'22'、'23'、'24'、'25']
MATCH (p:Person {personId : '50'})
WITH p
MATCH (p)-[:WATCHED]->(wm:Movie)-[:HAS_TAG]->(t:Tag)<-[:HAS_TAG]-(rm:Movie)
WHERE NOT (p)-[:WATCHED]->(rm)
RETURN distinct rm AS movies