iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0

前情提要

明天要放假了,公司的進度大爆炸

想說在一個 Interface 開一個新的 Function,以配合底層引擎

而那個新 Function 是由現有 Function 拆出來的

殊不知,那個 Interface 底下那一坨,繼承他的 Class

有些有那個功能,有的沒有,數量又多

我看這個雙十是要加班了

好像打太長了w

上一篇簡單提了一下關於 Neo4j 與前端技術的串接

這篇就來抓其中提到的 Neovis.js

來實際實作一次看看效果吧

內容警告 :
小弟為後端工程師,對 JS 什麼的一竅不通
如果寫得很爛請見諒

Neovis.js

上一篇提過,Neovis.js 是 Neo4j 官方提供的 JS 套件

這邊就依照官方範例,結合從之前就用到現在的資料庫類型的資料庫

來做這次的範例吧

首先先來回憶一下,我們的資料庫在 Neo4j 裡的長相吧

接下來,來嘗試連接 Neovis.js

<html>
<head>
    <title>DataViz</title>
    <style type="text/css">
        #viz {
            width: 100%;
            height: 100%;
        }
    </style>
    <script src="https://cdn.neo4jlabs.com/neovis.js/v1.5.0/neovis.js"></script>

</head>
<body onload="draw()">
    <div id="viz"></div>

    <script>
        function draw() {

            var config = {
                container_id: "viz",
                server_url: "bolt://localhost:7687",
                server_user: "neo4j",
                server_password: "123456",
                labels: {
                    "Name": {
                        caption: "Name",
                        sizeCypher: "MATCH (n) WHERE id(n) = $id MATCH (n)-[r]->() RETURN Count(r) +50 "
                    }
                },
                relationships: {
                    "Have": {
                    },
                    "Type": {
                    }
                },
                initial_cypher: "match p=()-[]->() return p",
                arrows: true
            }

            var viz = new NeoVis.default(config);
            viz.render();
        }
    </script>
</body>
</html>

官方都幫你做好了,你只要在 initial_cypher 裡下你的查詢語句

就可以很簡單的取得你需要的資料

來看看呈現結果吧

長得有點微妙呢

"Name": {
    caption: "Name",
    sizeCypher: "MATCH (n) WHERE id(n) = $id MATCH (n)-[r]->() RETURN Count(r) +50 "
}

你可以在 Node 或是 Relationships 的屬性裡添加 caption

來決定要使那個 Property 呈現在畫面上

或是 sizeCypher 用 Cypher 來決定該 Node 的大小喔


對於前端相關的介紹就差不多到這邊了

最後如果沒東西寫,可能會把上一篇提到的

將 Neo4j 回傳的資料,包成 Vis.js 可以接的格式

這件事在寫成一篇吧

總之,今天就到這了

下一篇是之前就立旗很久的,空間座標的主題,有點小期待呢

下篇 Spatial values - Neo4j 與經緯度

究竟鐵人賽能不能完賽呢,讓我們繼續看下去


My Source Code

Github Link

參考資料

Graph Visualization With Neo4j Using Neovis.js


排版好看的版本同步更新在我的 HackMD


上一篇
Neo4j 與 前端技術
下一篇
Spatial values - Neo4j 與經緯度
系列文
圖形資料庫是什麼,可以吃嗎 - Neo4j30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言