LoginSignup
7
3

More than 5 years have passed since last update.

Neo4j をWindowsでHello World (2018)

Last updated at Posted at 2018-04-25

Neo4j とは?

いわゆるグラフデータベースといわれる、グラフ(Excelとかのグラフではなくネットワーク的なデータ)を扱うデータベースです。
今ではAzureやAWSなどのDocument DBなどでもグラフデータを扱えるAPIもありますが、Neo4jは比較的老舗で情報も多くローカルでも簡単に動かせるので軽く試す分には楽です。

ということで、Windows環境にインストールして、軽くサンプルを動かすまでの手順になります。
※ Macの手順は多くみるのですが、Windowsの手順が古いものしかなかったので記事まとめてみました

Download

Neo4j公式
https://neo4j.com/

上記からDownloadします。右上のDownloadをクリックして進みますが、まず大きく Enterprise版 のバナーが出てきます。 Enterprise版を使いたい方はこちらからでよいですが、お勉強用にCommunity版を使いたい方は、下の方にある DOWNLOAD NEO4J SERVER をクリックしてください。

ダウンロードのリンクが出てくるので、あまり何も考えずに最新バージョンのCommunity版のzipをダウンロードします。

  Windows    Neo4j 3.3.5 (zip)

インストールと初回実行

事前にJavaのインストールが必要になりますのでやっておいてください。 最近のJavaだったら特になにも考えずにインストールするだけで使えるはずです。

次に、Downloadしたzipを展開して、適当な場所に置きます。
Cドライブ直下でもいいですし、何かフォルダを切ってもいいです。

そこまでできたらコンソール(DOSプロンプトやMingwや)で展開した場所まで移動して次のコマンドを実行します。

$ cd {zipを展開したディレクトリ}
$ bin/neo4j.bat console
Start/Stop
2018-04-24 23:13:23.826+0000 INFO  ======== Neo4j 3.3.5 ========
2018-04-24 23:13:23.873+0000 INFO  Starting...
2018-04-24 23:13:27.680+0000 INFO  Bolt enabled on 127.0.0.1:7687.
2018-04-24 23:13:33.903+0000 INFO  Started.
2018-04-24 23:13:35.288+0000 INFO  Remote interface available at http://localhost:7474/

この時に、
Error: missing `server' JVM at `C:\Program Files (x86)\Java\jre1.8.0_171\bin\server\jvm.dll'.
こんなエラーが出ることがあります。 この場合には、
...Java\jre1.8.0_171\bin\client...Java\jre1.8.0_171\bin\server という名前でコピーしてください。

コンソールにURL http://localhost:7474/ と出ているので素直にブラウザで開きます。
オシャレなログイン画面が出てきたら成功です。

Hello World

初期ID/パスワードは neo4j neo4j ですので、パスワードをいれてログインします。
ログイン後にパスワードを変えろといってくるので、新しいパスワードを入れます。

オシャレな画面がでてきたと思います。 いろいろgetting started的なものが並んでいますが、それはいったん無視して、

キャプチャ.JPG

いちばん上部にあるコマンドラインからコマンドをいれていくことで、サンプルを実行していくことになります。

コマンドをいれて Enter で実行。
Shift+Enter で改行されてマルチラインモードになり、その状態ではEnterで改行になってCtrl+Enterでコマンド実行になります。

まず、今回はチュートリアルということで、Hello Worldをグラフっぽく表現してみてこんなデータを作ってみます。

  I ---[say Hello]--> You

わたしあなたsay Hello です。 わたしあなたsay Hello という関係で結び付けたものです。 ...あくまでNeo4jのサンプルということで、例題は適当です。

ということで、さっそくコマンドを実行してみましょう。上部のコマンドラインに入力して実行していってください。

CREATE (:Person{name:"I"});

わたしを作ります。

CREATE (:Person{name:"You"});

あなたを作ります。

MATCH (p1:Person{name:"I"}), (p2:Person{name:"You"}) CREATE (p1)-[:say{word:"Hello"}]->(p2);

わたし(I) から あなた(You) へ、 say(Hello) という関係を作ります。

できたかどうかを見てみましょう。

MATCH (n) OPTIONAL MATCH (n)-[r]-()
RETURN n,r 

キャプチャ.JPG

できました。 say の矢印をクリックすると下の方に word: "Hello" というもの見ることが出来ます。

もう少し高度な実験

映画のデータベースが入っているのでそれでいろいろと試すことが出来ます。

:play movie graph

これで出てくるチュートリアルでいろいろ遊ぶことができますが、これは先人の記事がたくさんありますので、そちらをみていただければと思います。

おまけ

すべてのノードもエッジも削除するコマンドです。

MATCH (n) DETACH DELETE n;

おわりに

ということで簡単に Neo4j を使う手順でした。
全体的にすこし速度が遅いかな、とか、いろいろ思うこともありますが、見た目も綺麗ですし(重要)、クエリのCypherもとても直観的なので、手元でのPoCなどにはとても良いと思います。

今後グラフデータベースはどんどん流行っていくことが想定されますのでぜひみなさま手元で楽しんでいただければと思います。

なんでもかんでもRDB一本という時代から、適材適所でいろいろなDBが並行して使われ、それをSteram(非バッチ)で扱う時代になってくると思います

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3