如何检查 Neo4j 全文索引是否存在? 参考资料

问题描述

我在同一个标​​签和属性上有两个索引;一个全文索引和一个 btree 索引。如何检查全文索引是否存在?

根据 https://neo4j.com/developer/cypher/filtering-show/,我应该能够使用 SHOWYIELD 过滤 WHERE输出,但这似乎不适用于索引:

Invalid input 'Y': expected whitespace,comment,type of show output,';' or end of input (line 1,column 14 (offset: 13))
"SHOW INDEXES YIELD name,type"

以下查询有效,但会发出关于 db.indexes 的弃用警告:

CALL db.indexes() YIELD name,type
WHERE name = "usernames" AND type = "FULLTEXT"
RETURN count(name) > 0

解决方法

可查看列表,(但不可操作)

SHOW [ALL|BTREE] INDEX[ES] [BRIEF|VERBOSE [OUTPUT]]

SHOW ALL INDEX VERBOSE

重新创建索引时出错?

使用IF NOT EXISTS

CREATE INDEX usernames IF NOT EXISTS FOR (u:User) ON (u.username) 

弃用

不幸的是,没有未弃用方法来获取您可以根据示例操作的索引列表。但是,弃用并不意味着您不应该使用它。弃用通常(在语义版本控制中)意味着该方法在下一个主要版本中将不可用或将发生重大变化。别担心,Neo4j 5 还有很长的路要走。

参考资料