跳转至

增加和删除标签

在 openCypher 中,有增加标签(SET label)和移除标签(REMOVE label)的功能,可以用于加速查询或者标记过程。

在 Nebula Graph 中,可以通过 Tag 变相实现相同操作,创建 Tag 并将 Tag 插入到已有的点上,就可以根据 Tag 名称快速查找点,也可以通过DELETE TAG删除某些点上不再需要的 Tag。

示例

例如在 basketballplayer 数据集中,部分篮球运动员同时也是球队股东,可以为股东 Tagshareholder创建索引,方便快速查找。如果不再是股东,可以通过DELETE TAG语句删除相应运动员的股东 Tag。

```ngql //创建股东 Tag 和索引 nebula> CREATE TAG IF NOT EXISTS shareholder(); nebula> CREATE TAG INDEX IF NOT EXISTS shareholder_tag on shareholder();

//为点添加 Tag nebula> INSERT VERTEX shareholder() VALUES "player100":(); nebula> INSERT VERTEX shareholder() VALUES "player101":();

//快速查询所有股东 nebula> MATCH (v:shareholder) RETURN v; +---------------------------------------------------------------------+ | v | +---------------------------------------------------------------------+ | ("player100" :player{age: 42, name: "Tim Duncan"} :shareholder{}) | | ("player101" :player{age: 36, name: "Tony Parker"} :shareholder{}) | +---------------------------------------------------------------------+ nebula> LOOKUP ON shareholder YIELD id(vertex); +-------------+ | id(VERTEX) | +-------------+ | "player100" | | "player101" | +-------------+

//如果 player100 不再是股东 nebula> DELETE TAG shareholder FROM "player100"; nebula> LOOKUP ON shareholder YIELD id(vertex); +-------------+ | id(VERTEX) | +-------------+ | "player101" | +-------------+ ```

Note

如果插入测试数据后才创建索引,请用REBUILD TAG INDEX <index_name_list>;语句重建索引。


最后更新: 2026年8月17日