【问题标题】:Limit and skip cypher match query限制和跳过密码匹配查询
【发布时间】:2016-06-16 22:52:53
【问题描述】:

我正在尝试使用基于分数的余弦相似度来创建关系

MATCH (u1:User)-[x:SCORE]->(p:Place)<-[y:SCORE]-(u2:User)
WITH SUM(x.score * y.score) AS xyDotProduct,
SQRT(REDUCE(xDot = 0.0, a IN COLLECT(x.score)) | xDot + a^2)) AS xLength,
SQRT(REDUCE(yDot = 0.0, b IN COLLECT(y.score) | yDot + b^2)) AS yLength,
u1, u2
MERGE (u1)-[s:SIMILARITY]-(u2)
SET s.similarity = xyDotProduct / (xLength * yLength)

在一个 docker 容器中,Java Heap 上的中断..

如何将查询限制为 1000 条记录,然后为接下来的 1000 条记录重新运行?

【问题讨论】:

    标签: neo4j cypher recommendation-engine


    【解决方案1】:

    您可以在第一个匹配项之后添加 WHERE NOT 子句和限制,例如:

    MATCH (u1:User)-[x:SCORE]->(p:Place)<-[y:SCORE]-(u2:User)
    WHERE NOT (u1)-[:SIMILARITY]-(u2)
    WITH u1, x, p, y, u2
    LIMIT 1000
    WITH SUM(x.score * y.score) AS xyDotProduct,
    SQRT(REDUCE(xDot = 0.0, a IN COLLECT(x.score)) | xDot + a^2)) AS xLength,
    SQRT(REDUCE(yDot = 0.0, b IN COLLECT(y.score) | yDot + b^2)) AS yLength,
    u1, u2
    MERGE (u1)-[s:SIMILARITY]-(u2)
    SET s.similarity = xyDotProduct / (xLength * yLength)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多