Neo4j创建BTREE INDEX触发输入无效错误该如何解决?
报错原因
- 核心触发原因是你使用的Neo4j版本不支持
CREATE BTREE INDEX语法:显式指定BTREE类型的索引创建语法是Neo4j 4.4版本才新增的特性,低于该版本的实例无法识别BTREE关键字,语法解析到INDEX的首字母I时就会匹配不到合法规则,抛出你遇到的报错。 - 附加说明:如果使用的是Neo4j 5.x及以上版本,BTREE索引已经被官方废弃,默认的RANGE索引已经覆盖了原有BTREE索引的所有能力,无需再显式指定BTREE类型。
正确创建方案
场景1:Neo4j版本 < 4.4
该版本默认创建的复合索引均为BTREE类型,直接去掉语句中的BTREE关键字即可执行:
CREATE INDEX index_r_connected FOR ()-[r:connected_to]->() ON (r.source, r.target)
也可以使用更简洁的兼容写法:
CREATE INDEX ON :connected_to(source, target)
场景2:Neo4j版本 = 4.4.x
你原本的语法本身符合规范,确认当前操作用户拥有索引创建权限、语句前后无多余不可见字符即可正常执行。创建完成后可以执行SHOW INDEXES命令验证索引状态。
内容的提问来源于stack exchange,提问作者KReddy
相关产品推荐
相关产品推荐

