赞
踩
一种基于图的数据结构,由节点(Point)和边(Edge)组成。其中节点即实体,由一个全局唯一的ID标示,关系(也称属性))用于连接两个节点。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。
neo4j 是目前比较主流的图数据库,存储,查询图谱数据非常高效,由顶点-边组成,常用于微博好友关系分析、城市规划、社交、推荐等应用。具体的应用场景介绍,推荐:通过图数据库,查询某节点的消费情况、好友信息可为其推荐关联度高的好友或可能消费的商品。
因为neo4j的存储原理使得它的查询速度是在O(l)级别的复杂度,查询高效。
Neo4j的安装对硬件、系统都有一些要求的。关于Memory,最低要求是2GB。其中java版本必须是8以上。一般服务器上都满足硬件和内存的要求,可以稍微检查一下是否安装JDK及其版本,1.8及其以上都行。
(base) [root@i-gjt0cuup ~]# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
如果java版本不满足要求,需要重新安装1.8以上java jdk,具体操作参见以下博客内容
在上述网站上下载对应版本的neo4j社区版,然后利用ftp工具上传到服务器对应的安装目录下,对于外部安装软件,建议安装在/opt 目录下。
如果服务器可以连接外部网络可以直接利用以下linux名论来获取对应版本的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
#***************************************************************** 2 # Neo4j configuration 3 # 4 # For more details and a complete list of settings, please see 5 # https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/ 6 #***************************************************************** 7 8 # The name of the database to mount 9 dbms.active_database=test.db 10 11 # Paths of directories in the installation. 12 #dbms.directories.data=data 13 #dbms.directories.plugins=plugins 14 #dbms.directories.certificates=certificates 15 #dbms.directories.logs=logs 16 #dbms.directories.lib=lib 17 #dbms.directories.run=run 18 19 # This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or comment it out to 20 # allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the 21 # `LOAD CSV` section of the manual for details. 22 dbms.directories.import=import 23 24 # Whether requests to Neo4j are authenticated. 25 # To disable authentication, uncomment this line 26 #dbms.security.auth_enabled=false 27 28 # Enable this to be able to upgrade a store from an older version. 。。。
上面只是配置文件的部分内容。具体需要修改的配置内容包括以下几条:
# 修改第9行需要挂载的数据库名称,加#默认挂载graph.db dbms.active_database=test.db # 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件 dbms.directories.import=import # 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存,生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存 dbms.memory.heap.initial_size=1g dbms.memory.heap.max_size=20g # 修改46行,可以认为这个是缓存内存,如果机器配置高,这个越大越好 dbms.memory.pagecache.size=10g # 修改61行,去掉改行的#,可以远程通过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 # 修改82行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行 dbms.connector.http.listen_address=:747 # 修改86行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行 dbms.connector.https.listen_address=:7473 # 修改234行,去掉#,允许从远程url来load csv dbms.security.allow_csv_import_from_file_urls=true # Retention policy for transaction logs needed to perform recovery and backups. 250 dbms.tx_log.rotation.retention_policy=1 days # 修改253行,允许使用neo4j-shell,类似于mysql 命令行之类的 dbms.shell.enabled=true 254 # The network interface IP the shell will listen on (use 0.0.0.0 for all interfaces). 255 dbms.shell.host=127.0.0.1 256 # The port the shell will listen on, default is 1337. 257 dbms.shell.port=1337 ## 261行设置neo4j可读可写 261 dbms.read_only=false
(base) [root@i-gjt0cuup bin]# ./neo4j start
Active database: test.db
Directories in use:
home: /opt/neo4j-community-3.4.5
config: /opt/neo4j-community-3.4.5/conf
logs: /opt/neo4j-community-3.4.5/logs
plugins: /opt/neo4j-community-3.4.5/plugins
import: /opt/neo4j-community-3.4.5/import
data: /opt/neo4j-community-3.4.5/data
certificates: /opt/neo4j-community-3.4.5/certificates
run: /opt/neo4j-community-3.4.5/run
Neo4j is already running (pid 13808).
启动之后可以利用以下网址登陆neo4j客户端界面
http://ip:7474/browser/
在浏览器访问图数据库所在的机器上的7474端口(第一次访问账号neo4j,密码neo4j,会提示修改初始密码)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。