Help us understand the problem. What is going on with this article?

MacでNeo4jを使ってみる

More than 3 years have passed since last update.

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

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

参考

JDKのインストール

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

Mac OS X:dk-8u101-macosx-x64.dmg

$java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

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

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

Neo4j 3.0.6

neo4j3.0-download.png

Neo4jのインストール

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

neo4j-community_macos_3_0_6.dmg

インストールが終了すると、アイコン作成のガイド画面が表示されます。Neo4jのアイコンを矢印の方向に「ドラック&ドロップ」し、アプリケーションとして登録してください。

mac-install-0.png

Neo4jの起動

Neo4jのアイコンをクリックしてください。

mac-install-1.png

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

mac-install-2.png

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

mac-install-3.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のインストール手順を紹介しました。興味ある方は、次のサイトや書籍を参照してください。

関連サイト

書籍

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした