日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

neo4j 显示名字_Neo4j:绘制“我的名字是……我在工作”图

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 neo4j 显示名字_Neo4j:绘制“我的名字是……我在工作”图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

neo4j 顯示名字

在過去的幾天里,我一直在關注DHH發起的有關“我的名字是……”的推文。 據我了解,其想法是表明在白板上編寫采訪謎語/艱巨任務是荒謬的。

您好,我叫大衛。 我不會在白板上寫氣泡排序。 我一直在互聯網上查找代碼。 我不做謎語。

— DHH(@dhh) 2017年2月21日

其他人引用了該推文并添加了自己的文章,昨天Eduardo Hernacki建議遍歷這條推文鏈似乎是為Neo4j量身定制的。

@eduardohki是遍歷所有這些東西的人嗎? #Neo4j

— Eduardo Hernacki(@eduardohki) 2017年2月28日

Michael很快就出現在現場,并創建了一個Cypher查詢,該查詢調用Twitter API并根據生成的JSON響應創建Neo4j圖形。 唯一棘手的一點是創建“承載者令牌”,但是Jason Kotchoff有一個很有幫助的要點,展示了如何從您的Twitter使用者密鑰和使用者秘密中生成一個。

現在我們已經獲得了承載令牌,讓我們創建一個參數來存儲它。 在Neo4j瀏覽器中鍵入以下內容:

:param bearer: '<your-bearer-token-goes-here>'

現在,我們準備查詢Twitter API。 我們將從搜索API開始,找到所有包含文本“我的名字”“我在工作”'的推文。 這將返回一個包含大量推文的JSON響應。 然后,我們將為返回的每個推文創建一個節點,為發布該推文的用戶創建一個節點,為其引用的推文創建一個節點,并將它們粘合在一起。

我們將使用APOC庫中的apoc.load.jsonParams過程來幫助我們導入數據。 如果要繼續學習,可以使用安裝了APOC的Neo4j沙箱實例 。 對于本地Neo4j安裝,在重新啟動Neo4j之前,請抓住APOC jar并將其放入您的plugins文件夾中。

這是完整的查詢:

WITH 'https://api.twitter.com/1.1/search/tweets.json?count=100&result_type=recent?=en&q=' as url, {bearer} as bearerCALL apoc.load.jsonParams(url + "%22my%20name%22%20is%22%20%22I%20work%22",{Authorization:"Bearer "+bearer},null) yield valueUNWIND value.statuses as status WITH status, status.user as u, status.entities as e WHERE status.quoted_status_id is not null// create a node for the original tweet MERGE (t:Tweet {id:status.id}) ON CREATE SET t.text=status.text,t.created_at=status.created_at,t.retweet_count=status.retweet_count, t.favorite_count=status.favorite_count// create a node for the author + a POSTED relationship from the author to the tweet MERGE (p:User {name:u.screen_name}) MERGE (p)-[:POSTED]->(t)// create a MENTIONED relationship from the tweet to any users mentioned in the tweet FOREACH (m IN e.user_mentions | MERGE (mu:User {name:m.screen_name}) MERGE (t)-[:MENTIONED]->(mu))// create a node for the quoted tweet and create a QUOTED relationship from the original tweet to the quoted one MERGE (q:Tweet {id:status.quoted_status_id}) MERGE (t)–[:QUOTED]->(q)// repeat the above steps for the quoted tweet WITH t as t0, status.quoted_status as status WHERE status is not null WITH t0, status, status.user as u, status.entities as eMERGE (t:Tweet {id:status.id}) ON CREATE SET t.text=status.text,t.created_at=status.created_at,t.retweet_count=status.retweet_count, t.favorite_count=status.favorite_countMERGE (t0)-[:QUOTED]->(t)MERGE (p:User {name:u.screen_name}) MERGE (p)-[:POSTED]->(t)FOREACH (m IN e.user_mentions | MERGE (mu:User {name:m.screen_name}) MERGE (t)-[:MENTIONED]->(mu))MERGE (q:Tweet {id:status.quoted_status_id}) MERGE (t)–[:QUOTED]->(q);

生成的圖形如下所示:

MATCH p=()-[r:QUOTED]->() RETURN p LIMIT 25

一個更有趣的查詢是找到從DHH到Eduardo的路徑,我們可以通過以下查詢找到該路徑:

match path = (dhh:Tweet {id: 834146806594433025})<-[:QUOTED*]-(eduardo:Tweet{id: 836400531983724545}) UNWIND NODES(path) AS tweet MATCH (tweet)<-[:POSTED]->(user) RETURN tweet, user

該查詢:

  • 從DHH的推文開始
  • 遍歷所有QUOTED關系,直到找到Eduardo的推文
  • 收集所有這些推文,然后找到作者
  • 返回推文和作者

這是輸出:

我針對Twitter API進行了其他幾個查詢,以混合一些我們尚未設置所有屬性的節點-您可以在要點上看到所有查詢 。

在接下來的幾天里,我還將有一個運行https://10-0-1-157-32898.neo4jsandbox.com/browser/的沙箱。 您可以使用憑據readonly / twitter登錄。

如果您有任何疑問/建議,請在評論中告訴我,或在Twitter上@markhneedham ,或給Neo4j DevRel團隊發送電子郵件至devrel@neo4j.com。

翻譯自: https://www.javacodegeeks.com/2017/03/neo4j-graphing-name-work-twitter-meme.html

neo4j 顯示名字

總結

以上是生活随笔為你收集整理的neo4j 显示名字_Neo4j:绘制“我的名字是……我在工作”图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。