我刚开始使用Neo4j服务器2.0.1。我在编写一个cypher脚本时遇到了麻烦,它将其中一个节点属性更改为基于其已定义属性之一的内容。
所以如果我创建了这些节点:
CREATE (:Post {uname:'user1', content:'Bought a new pair of pants today', kw:''}),
(:Post {uname:'user2', content:'Catching up on Futurama', kw:''}),
(:Post {uname:'user3', content:'The last episode of Game of Thrones was awesome', kw:''})
我希望脚本查看内容属性并选择单词" Bought"并使用正则表达式将kw
属性设置为该属性,以挑选大于五个字符的单词。因此,用户2的帖子将是" Catching,Futurama"而且用户3的帖子将是"剧集,权力,真棒"。
非常感谢任何帮助。
答案 0 :(得分:1)
你可以这样做:
MATCH (p:Post { uname:'user1' })
WHERE p.content =~ "Bought .+"
SET p.kw=filter(w in split(p.content," ") WHERE length(w) > 5)
如果您想对所有帖子执行此操作,这可能不是最快的操作:
MATCH (p:Post)
WHERE p.content =~ "Bought .+"
SET p.kw=filter(w in split(p.content," ") WHERE length(w) > 5)
您可能更愿意为这些关键字创建节点,并将帖子链接到关键字节点。