neo4j環境構成
Neo4jの紹介
Neo4J Cypher neo4j-driver py2neoのより詳細で包括的な紹介と使用法については、他の記事を参照することをお勧めします。Neo4j
はJavaベースのグラフデータベースです。Neo4jを実行するには、JVMプロセスを開始する必要があるため、Java SEJDKをインストールする必要があります。
Neo4jアプリケーションのメインディレクトリ構造は次のとおりです。
binディレクトリ:Neo4j実行可能プログラムの保存に使用;
confディレクトリ:Neo4j起動構成ファイルの制御に使用;
データディレクトリ:コアデータベースファイルの保存に使用;
プラグインディレクトリ:Neo4jプラグインの保存に使用
次に、主にubuntuでのneo4j環境構成を紹介します。
環境構成
jdk1.8のインストール
現在のサーバーにJava環境があるかどうかを確認します
java -version
上の図が表示されている場合は、バージョン1.8をインストールする必要はありません。
そうでない場合は、リンクを参照してください
Neo4jのインストール
サーバーにインストールパッケージをダウンロードします
curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz
インストールパッケージを解凍します
tar -axvf neo4j-community-3.4.5-unix.tar.gz
解凍したディレクトリに入る
cd neo4j-community-3.4.5-unix
構成ファイルを変更する
vim conf/neo4j.conf
次の引用はhttps://blog.csdn.net/u013946356/article/details/81736232からのもの
です。dbms.shell.hostの行番号が変更されています。以下のすべての行番号は正しいです。esc
編集モードを直接終了して、:linenumber
変更する行を直接見つけることができます。
# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import
# 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存
# 生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存
dbms.memory.heap.initial_size=5g
dbms.memory.heap.max_size=10g
# 修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=10g
# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
# 默认 bolt端口是7687,http端口是7474,https关口是7473,不修改下面3项也可以
# 修改71行,去掉#,设置http端口为7687,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.bolt.listen_address=:7687
# 修改75行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474
# 修改79行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473
# 修改227行,去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true
# 修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的
dbms.shell.enabled=true
# 修改248行,去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行
dbms.shell.host=127.0.0.1
# 修改250行,去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行
dbms.shell.port=1337
# 修改254行,设置neo4j可读可写
dbms.read_only=false
サービスの開始、コンソール、停止
bin/neo4j start
bin/neo4j console
bin/neo4j stop
パスワード
ユーザー名neo4j
デフォルトのパスワードneo4j
コマンドラインからデフォルトのパスワードを変更します
暗号シェルコマンドラインを入力します
bin/cypher-shell
デフォルトのパスワードを変更する
CALL dbms changePassword('newneo4j');
サイファーシェルコマンドラインを起動する
:exit;
neo4jおよびneo4j-ドライバーのインストール
pip install neo4j neo4j-driver==1.7.6
ここneo4j-driver
で指定する必要のあるバージョン
については、次のリンクを参照してください:from error neo4j.exceptions.ServiceUnavailable:Neo4Jサーバーは
このドライバーとの通信をサポートしていません。このドライバーはボルト
プロトコルをサポートしていますdict_keys([Version(3、0)、Version(4、0) )])
それ以外の場合、エラーは次のように報告されます。
raise ServiceUnavailable(str(error)) from error
neo4j.exceptions.ServiceUnavailable:
The Neo4J server does not support communication with this driver.
This driver have support for Bolt Protocols dict_keys([Version(3, 0), Version(4, 0), Version(4, 1)])
pythonの例
# step 1:导入 Neo4j 驱动包
from neo4j import GraphDatabase
# step 2:连接 Neo4j 图数据库
driver = GraphDatabase.driver("bolt://127.0.0.1:7687", auth=("neo4j", "newneo4j"))
# driver = GraphDatabase.driver("http://127.0.0.1:7474", auth=("neo4j", "neo4j"))
# 添加 关系 函数
def add_friend(tx, name, friend_name):
tx.run("MERGE (a:Person {name: $name}) "
"MERGE (a)-[:KNOWS]->(friend:Person {name: $friend_name})",
name=name, friend_name=friend_name)
# 定义 关系函数
def print_friends(tx, name):
for record in tx.run("MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
"RETURN friend.name ORDER BY friend.name", name=name):
print(record["friend.name"])
# step 3:运行
with driver.session() as session:
session.write_transaction(add_friend, "Arthur", "Guinevere")
session.write_transaction(add_friend, "Arthur", "Lancelot")
session.write_transaction(add_friend, "Arthur", "Merlin")
session.read_transaction(print_friends, "Arthur")
出力
Guinevere
Lancelot
Merlin