使用Neo4j Admin Import正则匹配CSV批量导入报错求助
解决Neo4j Admin Import正则匹配文件失败的问题
问题根源
neo4j-admin import不支持正则表达式(比如\d+)来匹配CSV文件,它仅支持Shell风格的通配符(如*匹配任意长度字符、?匹配单个字符)。你使用的\d+会被工具当作字面量文件名解析,导致找不到对应文件/目录,从而报错。
解决方案
根据你的需求(导入所有data_开头、后跟任意数字的CSV文件,如data_1.csv),可以按以下方式修改命令:
1. 使用Shell通配符(简单通用)
直接用data_*.csv匹配目标文件,它会覆盖所有data_开头、后缀为.csv的文件(符合你的数字后缀需求):
neo4j-admin database import full --nodes "import/data_header.csv,import/data_*.csv" --overwrite-destination=true
注意:如果你的Neo4j安装路径包含空格(比如你示例中的
C:\Program Files\...),建议用双引号把--nodes的参数值括起来,避免路径解析错误。
2. 更精确的数字匹配(针对Windows PowerShell)
如果需要严格匹配data_后跟纯数字的文件(排除类似data_abc.csv的非数字后缀文件),可以先通过PowerShell筛选文件,再拼接成命令:
# 筛选出符合正则的文件,拼接成逗号分隔的路径 $targetFiles = (Get-ChildItem -Path ./import/data_*.csv | Where-Object { $_.Name -match 'data_\d+\.csv' }).FullName -join ',' # 执行导入命令 neo4j-admin database import full --nodes "./import/data_header.csv,$targetFiles" --overwrite-destination=true
额外注意事项
- 确保所有CSV文件都放在Neo4j的
import目录下(或使用完整绝对路径)。 - 执行命令时,需切换到Neo4j安装目录的
bin文件夹下,或者将bin目录添加到系统环境变量PATH中。
内容的提问来源于stack exchange,提问作者Mudit Shukla
相关产品推荐
相关产品推荐

