会社でこちらで遊んでる輩がいました。けしからん。
私も遊んでみます。
とりあえず触ってみるのが手っ取り早いのでまずは導入してみました。
参考にしたのはこの辺です。
とりあえず遊んでみたので、そのメモです。
Neo4jとは
Neo4jはJavaで実装された、 オープンソースの最も人気のあるグラフデータベースである。[3][4][5] Ver1.0は2010年2月に公開された。[6] コミュニティ版のライセンスはGNU General Public Licenseであり、 オンラインバックアップなどの追加モジュールは、Affero General Public Licenseである。また、共に商用ライセンスの利用も可能である。[7] 開発元のNeo Technology社はマルメとサンフランシスコ・ベイエリアに拠点を置いている。
(出典:wikipedia)
だそうです。ふーんって感じですね。グラフデータベースとやらが使えて、それを表示するといい感じの図が出るということらしいです。
ライセンス
一瞬「金かかんのかなー??」とか思ったんですけど、なんか大丈夫っぽいですね。 商用利用は、、、そりゃまあ、かかりますよね。
環境構築
Macでやりました。
インストールはこんな感じ。ちょー簡単。
brew install neo4j
サーバーを起動させるには
neo4j start
ちょー簡単。(2回目)
デフォルトで
http://localhost:7474/browser/
でウィンドウが立ち上がります。ID/パスワードを聞かれるので、
user id : neo4j
password : neo4j
でログイン後、パスワードを変更して下準備完了です。ちょー簡単。(3回目)
Docker版の使用
最近、Docker使わないと人間じゃないってレベルで軽蔑の眼差しを受けるので、Dockerでも環境構築してみます。
docker pull neo4j
まずDockerImageを引っ張ってきます。
docker run \
--detach \
--publish=7474:7474 --publish=7473:7473 --publish=7687:7687 \
--volume=$HOME/neo4j/data:/data \
--volume=$HOME/neo4j/logs:/logs \
--volume=$HOME/neo4j/conf:/conf \
--ulimit=nofile=40000:40000 \
neo4j:3.0
こんだけです。あとは上と手順は一緒です。簡単ですね。
アクセスは
で行けました。なんかhttpsだとポート番号が7473らしいです。
適当に遊んでみた
Neo4j(ブラウザ)から使う
ブラウザから使ってみます。 Neo4jにはデフォルトでサンプルのデータセットがあるのでそちらを入れてみたいと思います。
下図のようなメニューバーのところにMovieGraphというのがあるので、そちらを選択します。
右に進むボタンを押すと、Createという欄が出てきますので、そちらのボックスの中身を実行するとサンプルが入ります。 こんな感じになります。
サマになってますね。
次は検索してみます。
全件検索だとこんな感じ。
MATCH (n1)-[r]-(n2) RETURN r, n1, n2
マトリックスとつながっているノードを検索するときはこんな感じ。
MATCH (matrix: Movie {title: "The Matrix" })-[r]-(actors) RETURN matrix, actors;
関係性に条件をつけるとこんな感じ。
MATCH (matrix: Movie { released: 1999, title: "The Matrix" })<-[:ACTED_IN]-(actors) RETURN actors, matrix;
プログラムから呼び出す
ブラウザ上遊ぶのでも良かったんですが、いまいち使い方がしっくり来なかったので、下の記事を参考にpythonで遊んでみます。
やってみたらこんな感じですね。
グラフ構造出ました! めでたしめでたし。パチパチパチ…
感想
使うとわかりますが、UI周りがよくできていて、使ってて楽しいです。
webサイトとかに埋め込む際にはこの辺のjavascriptを使えばよいのではないでしょうか。
www.slideshare.net
文法とかはいまいちよくわかってませんが、機会があればまた遊んでみたいと思います。