gpt4 book ai didi

indexing - Neo4j:在所有标签上创建索引

转载 作者:行者123 更新时间:2023-12-05 05:21:32 31 4
gpt4 key购买 nike

我尝试在数据库中的所有标签上创建索引

这是我的:

CALL db.labels()
YIELD label
CREATE INDEX ON :label(objectID)

但这给出了一个错误:

Invalid input 'N': expected 'p/P' (line 3, column 15 (offset: 44)) "CREATE INDEX ON :label(webint_keys_objectID)"

最佳答案

您不能在匹配、创建或模式操作中将变量用于标签。您必须为这些操作使用实际标签。

有一种方法可以使用 APOC Procedures 添加带有动态标签的索引使用 apoc.schema.assert()但它会删除 assert() 调用中不存在的所有索引和约束。但是,这需要将标签从 db.labels() 转换为 map 的键,因此您需要其他 APOC 过程来进行该操作。

由于索引和约束只需要创建一次,因此通常最好手动执行这些操作。

但是如果您确实需要这样的查询,这应该可以解决问题:

call db.labels() yield label
with label, ['objectID'] as indexProp
with collect(label) as labels, collect(indexProp) as indexProps
with apoc.map.fromLists(labels, indexProps) as indexMap
call apoc.schema.assert(indexMap,{}) yield label, key, unique, action
return label, key, unique, action

关于indexing - Neo4j:在所有标签上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782826/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com