neo4j

WindowsでNeo4jを使ってみる

More than 1 year has passed since last update.

WindowsにグラフデータベースNeo4jをインストールしてみました。Neo4jは、シンプルなグラフ構造のデータからSQLライクなサイファークエリ(Cypher Query)を使って、SQLをはらかに超える複雑なデータ処理が可能な革新的なデータベースです。

この記事は、Neo4j v3.0.6(2016-09-16)に合わせて更新しています。

参考

JDKのインストール

JDK8をダウンロードし、インストールしてください。

Windows 64:jdk-8u101-windows-x64.exe

JDKのインストールが終了したら、「コントロール パネル>>システムとセキュリティ>>システム>>システムの詳細設定>>詳細設定>>環境変数>>システムの環境変数」でJAVA_HOMEを設定します。

下記は、筆者の環境です。

JAVA_HOME=C:\Java\jdk1.8.0_25\jre

Neo4jインストールパッケージのダウンロード

最新の安定版は、こちらから入手できます。今回は、コミュニティ版のNeo4j 3.0.6 (exe)を使います。

Neo4j 3.0.6 (exe)

neo4j3.0-download.png

Windowsのzip版は、PowerShellでの使用を前提にし、構成もLinux版のようになっています。インストール対象がWindows Serverではないならお勧めしません。

Neo4jのインストール

インストールパッケージをクリックし、インストールを実行してください。

neo4j-community_windows-x64_3_0_6.exe

neo4j3.0-start-0.png

Neo4jの開始

Neo4jのアイコンをクリックしてください。Neo4jのコントロール画面が表示されます。データベースファイルの格納先や設定を変える必要がなければ、そのまま「Start」をクリックします。

neo4j3.0-start-1.png

Neo4jの開始画面が表示されます。

neo4j3.0-start-2.png

Neo4jのWebインターフェースのリンクをクリックするか、ブラウザーにURLを入力して接続してください。

http://localhost:7474

Neo4jへのログイン

データベース毎に初期画面では、既定のユーザーとパスワードを入力し、Neo4サーバーに接続します(neo4j/neo4j)。

neo4j3.0-login-1.png

1回目のログインでは、初期パスワードの変更が必要です。パスワードを決めて「Set password」をクリックします。

neo4j3.0-login-2.png

次のようなNeo4jのWebインターフェースが表示されます。ここまで表示できたらインストールは成功です。
neo4j3.0-login-3.png

演習用の映画データベース作成

Neo4jのWebインターフェースから簡単に映画データベースを作成できます。コマンドライン「$」に、下記の構文を入力し、右端の実行ボタン(▶)をクリックします。

:play movie graph

映画データベースの紹介画面が表示されたら右に移動します。そして、次のような映画データベース作成用のCypherクエリ文が表示されたら、枠のなかをクリックするとコマンドラインにコピーされますので、そのまま実行ボタン(▶)をクリックします。

setup306-4.png

次のようなグラフが表示されたらデータベース作成は成功です。

movie-graph.png

Neo4jのデータ処理

Neo4jのデータ処理は、GUI及びCUIを適切にミックスして行います。

例えば、Keanu Reevesさんが出演した映画を検索するとします。これは、次のようなデータモデルとして可視化して表現することができます。さらに、「下図のようなデータを検索してほしい」、というような依頼も可能です。

pattarn-search-1.png

これをCypherクエリで書くと、次のようになります。

MATCH (actor:Person)-[r:ACTED_IN]->(movie)
WHERE  actor.name = "Keanu Reeves"
RETURN actor,movie 

実際の検索結果は、次のようなグラフです。

keanu-movie-1.png

グラフはテキストとして出力できます。

MATCH (actor:Person)-[r:ACTED_IN]->(movie)
WHERE  actor.name = "Keanu Reeves"
RETURN actor.name,movie.title 

keanu-movie-2.png

このようにCypherクエリは、SQLを超える型破りのクエリ言語です。興味ある方は:play movie graphの続きにある演習用のCyhperクエリを実行してみてください。Webインターフェースの他の機能に触れてみるのもいいでしょう。

Neo4jウェブインターフェースを使い倒す

Neo4jのストップ

Neo4jをストップは、下記のようにストップコマンドを実行します。

# /usr/neo4j/bin/neo4j stop

まとめ

以上、Neo4jのインストール手順を紹介しました。興味ある方は、次のサイトや書籍を参照してください。

関連サイト

書籍