

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Neptune 服务器生成的内联边缘 ID
<a name="storage-edge-id"></a>

 Neptune 支持内联 Server-Generated Edge ID。未启用 `neptune_streams` 时，您可以通过 Neptune 配置[参数](parameters.md) `neptune_enable_inline_server_generated_edge_id` 启用该功能。从引擎版本 [1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml) 开始，此功能可用于 Gremlin 查询，并将在未来的版本 OpenCypher 中用于查询。

 边缘 ID 是边缘的唯一标识符。插入边缘时，您可以提供边缘 ID。如果未提供 ID，则默认情况下，服务器会生成基于 UUID 的 ID 并将其分配给边缘。与用户定义的 ID 一样， UUID-based 服务器生成的 ID 存储在字典中。

 启用 `neptune_enable_inline_server_generated_edge_id` 功能后，如果查询中未提供 ID，则服务器会生成一个唯一的内联 ID。内联边缘 ID 不存储在字典中，从而提高存储效率。服务器生成的内联 ID 以预留前缀 `neptune_reserved` 开头。

**警告**  
 Neptune 为服务器生成的内联 ID 预留了 `'neptune_reserved'` 前缀。如果查询尝试插入的数据具有以预留前缀开头的用户定义的 ID，则会显示错误。

 通过将集群级别的参数 `neptune_enable_inline_server_generated_edge_id` 设置为 `1`，可以启用服务器生成的内联边缘 ID 功能。该操作需要重启实例。以下示例启用服务器生成的边缘 ID 功能：

```
"ParameterName=neptune_enable_inline_server_generated_edge_id,ParameterValue=1,ApplyMethod=pending-reboot"
```

 要验证该功能是否已启用，您可以在引擎状态下检查相关功能。如果 `neptune_streams` 已启用，则该功能会自动禁用。以下示例输出显示已启用功能的引擎状态：

```
"features":{"InlineServerGeneratedEdgeId":"enabled"}
```

 服务器生成的内联边缘 ID 功能启用后，以下 Gremlin 示例会添加一个没有用户定义的 ID 的边缘：

```
curl - X POST--url https: //<neptune-cluster-endpoint>:8182/gremlin/ --data '{"gremlin":"g.withSideEffect(\"Neptune#disablePushdownOptimization\", true).addV().property(id, \"a\").addV().property(id, \"b\").addE(\"el\").to(V(\"a\"))"}'
{
    "requestId": "b6b84605-53ad-4c04-baf1-7f0f31a3aeaf",
    "status": {
        "message": "",
        "code": 200,
        "attributes": {
            "@type": "g:Map",
            "@value": []
        }
    },
    "result": {
        "data": {
            "@type": "g:List",
            "@value": [{
                "@type": "g:Edge",
                "@value": {
                    "id": "neptune_reserved_231850767",
                    "label": "el",
                    "inVLabel": "vertex",
                    "outVLabel": "vertex",
                    "inV": "a",
                    "outV": "b"
                }
            }]
        },
        "meta": {
            "@type": "g:Map",
            "@value": []
        }
    }
}
```