上章节中提到了内置过程函数,用来创建全文索引。Neo4j本身内置过程函数的功能其实不多,为了方便我们使用到更多的内置过程函数,我们引入了APOC。
从Neo4j 4.1.1开始,有两个可用的APOC库版本:
APOC Core:与没有外部依赖性或不需要配置的强化过程和功能进行战斗。
APOC Full:包含APOC核心中的所有内容以及其他过程和功能。
⚠️ APOC Full包含APOC Core中包含的所有过程和功能。您不能同时安装两个库。
如果要使用APOC的库,需要先安装APOC的jar包。由于APOC依赖Neo4j的内部API,因此您需要为Neo4j安装使用匹配的APOC版本。确保Neo4j和APOC之间的前两个版本号匹配。我这里用的是3.5的版本。下载地址:
https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/3.5.0.11
将下载好的jar文件移动到neo4j的安装目录plugins文件夹下,然后重新启动neo4j
neo4j restart
在浏览器界面输入CALL apoc.help('text'),如果成功返回结果。则表示安装成功了。
CALL procedure.name();也可以将它们集成到Cypher语句中,这使它们功能更加强大。
apoc.help过程,可用于过程和功能发现。

运行call apoc.help('keyword')
将列出名称中包含关键字的所有过程和函数。如果未提供关键字,它将返回所有APOC过程和功能的列表,以及它们的签名和描述。
接下来我们以导入CSV文件为例子说明APOC的使用。
要读取文件,必须启用config选项:
apoc.import.file.enabled = true
默认情况下,文件路径是全局的,用于相对于import
目录集的路径:
apoc.import.file.use_neo4j_config = true
test.csv
name,age,beverageSelma,9,SodaRana,12,Tea;MilkSelina,19,Cola
CALL apoc.load.csv('test.csv')YIELD lineNo, map, listRETURN *;
| lineNo | list | map |
|---|---|---|
0 | ["Selma", "9", "Soda"] | {name: "Selma", age: "9", beverage: "Soda"} |
1 | ["Rana", "12", "Tea;Milk"] | {name: "Rana", age: "12", beverage: "Tea;Milk"} |
2 | ["Selina", "19", "Cola"] | {name: "Selina", age: "19", beverage: "Cola"} |
除了文件之外,您还可以传入配置映射:
| 姓名 | 默认 | 描述 |
|---|---|---|
|
| 跳过结果行 |
|
| 限制结果行 |
|
| 文件是否具有标题 |
|
| 分隔符或“ TAB” |
|
| 用于引用元素的字符 |
|
| 数组分隔符 |
|
| 哪些列要忽略 |
|
| 将哪些值视为空值,例如 |
|
| 对于每个字段映射,输入键是字段名称。例如, |
| 姓名 | 默认 | 描述 |
|---|---|---|
|
| 'int','string'等 |
|
| 指示字段是否为数组 |
|
| 数组分隔符 |
|
| 重命名字段 |
|
| 忽略/删除此字段 |
|
| 将哪些值视为空值,例如 |
CALL apoc.load.csv('test.csv', {skip:1, limit:1, header:true, ignore:['name'],mapping:{age: {type:'int'},beverage: {array:true, arraySep:';', name:'drinks'}}})YIELD lineNo, map, listRETURN *;
- 本期完 -
,我会及时回复。由于微信限制了公众号留言功能,有问题你可以直接发公众号聊天,我会在下期文章末尾解答你的问题。为方便看最新内容,记得关注哦

! 




