【ねおふぉーじぇい】

Neo4j とは?

最終更新:
💡 「誰と誰がつながっている?」をたどるデータベース

Neo4jは、データをノードとリレーションシップ、その属性で表すグラフデータベース。人のつながりや商品の関係をたどる検索を、Cypherという言語で記述できる。

📌 このページのポイント
同じ「つながり」をどう表す?Neo4jのグラフ表で表す例田中鈴木知っている関係にも向きがある人の表ID名前1田中2鈴木関係の表知る人相手12
左はノードと向きのある関係、右はIDで結び付ける表。検索速度の優劣を示す図ではありません。
ひよこ ひよこ
普通のデータベースと何が違うの?
ペンギン先生 ペンギン先生
表の行として扱う代わりに、人や商品をノード、友人関係や購入などをリレーションシップとして表すんだ。「田中さんは鈴木さんを知っている」のようなつながりを、データとして持てるよ。
ひよこ ひよこ
つながり以外の情報も保存できる?
ペンギン先生 ペンギン先生
できるよ。人のノードに名前、購入の関係に日時などの属性を持たせられる。関係には種類と向きもあるので、「誰が何を買ったか」と「誰から紹介されたか」を分けて表せるんだ。
ひよこ ひよこ
友達の友達を探すのも簡単?
ペンギン先生 ペンギン先生
Cypherでは、ノードと矢印を並べるように関係のパターンを書けるよ。たとえば田中さんから「知っている」という関係を2回たどる、という条件を表す。何段たどるか、どの種類の関係かを決めて探すんだ。
ひよこ ひよこ
関係が深くても、いつも同じ速さ?
ペンギン先生 ペンギン先生
一定速度とは限らないよ。分岐や探索する範囲が増えると、調べる関係も増える。公式も、必要なデータへ早めに絞り込み、長さが変わる探索には上限を設けるよう勧めているんだ。RDBとの速さの比較も、実際のデータとクエリで確認しよう。
ひよこ ひよこ
どんな用途で選ぶとよい?
ペンギン先生 ペンギン先生
推薦、不正検知、ナレッジグラフなど、つながりをたどることが中心の用途が候補だよ。Graph RAGで知識を探す部品にも使えるけれど、AIの回答が必ず正しくなるわけではない。集計や取引の管理も含め、必要な仕事に合うデータベースを選ぼう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Neo4j」って出てきたら「データ同士のつながりをたどるグラフデータベース」と思えばだいたいOK!
📖 おまけ:英語の意味
「Neo4j」 = Javaの組み込みデータベースとして始まった製品名
💬 公式は「4j」を、当初Javaの組み込みデータベースだった歴史に結び付けて説明しているよ。「4つのJava技術」という意味ではないんだ。

参考資料

← 用語集にもどる