blob: f5c99f428e90c1231ab65d2f3f8621c015e6d65a [file] [log] [blame]
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.102.3"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/favicons/android-96x96.png sizes=96x96><link rel=icon type=image/png href=/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/favicons/android-192x192.png sizes=192x192><title>HugeGraph Java Client | HugeGraph</title><meta name=description content="The code in this document is written in java, but its style is very similar to gremlin(groovy). The user only needs to replace the variable …"><meta property="og:title" content="HugeGraph Java Client"><meta property="og:description" content="The code in this document is written in java, but its style is very similar to gremlin(groovy). The user only needs to replace the variable declaration in the code with def or remove it directly, You can convert java code into groovy; in addition, each line of statement can be without a semicolon at the end, groovy considers a line to be a statement. The gremlin(groovy) written by the user in HugeGraph-Studio can refer to the java code in this document, and some examples will be given below."><meta property="og:type" content="article"><meta property="og:url" content="/docs/clients/hugegraph-client/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2023-01-01T16:16:43+08:00"><meta property="og:site_name" content="HugeGraph"><meta itemprop=name content="HugeGraph Java Client"><meta itemprop=description content="The code in this document is written in java, but its style is very similar to gremlin(groovy). The user only needs to replace the variable declaration in the code with def or remove it directly, You can convert java code into groovy; in addition, each line of statement can be without a semicolon at the end, groovy considers a line to be a statement. The gremlin(groovy) written by the user in HugeGraph-Studio can refer to the java code in this document, and some examples will be given below."><meta itemprop=dateModified content="2023-01-01T16:16:43+08:00"><meta itemprop=wordCount content="2763"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="HugeGraph Java Client"><meta name=twitter:description content="The code in this document is written in java, but its style is very similar to gremlin(groovy). The user only needs to replace the variable declaration in the code with def or remove it directly, You can convert java code into groovy; in addition, each line of statement can be without a semicolon at the end, groovy considers a line to be a statement. The gremlin(groovy) written by the user in HugeGraph-Studio can refer to the java code in this document, and some examples will be given below."><link rel=preload href=/scss/main.min.14ea575cb35d93d46ff8681b2334f40fd46243c100c5c39f5a841b931fae2d40.css as=style><link href=/scss/main.min.14ea575cb35d93d46ff8681b2334f40fd46243c100c5c39f5a841b931fae2d40.css rel=stylesheet integrity><script src=https://code.jquery.com/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=/css/prism.css><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-00000000-0","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/><span class=navbar-logo><svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;stroke-width:.5px;opacity:.3}.cls-2{fill:#229efa}.cls-3{fill:#9948f7}.cls-4{fill:#33bc7a}.cls-5{fill:url(#未命名的渐变_3)}.cls-6{fill:url(#未命名的渐变_13)}.cls-7{fill:url(#未命名的渐变_11)}</style><linearGradient id="未命名的渐变_3" x1="6.16" y1="14.63" x2="6.16" y2="6.01" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2e3192"/><stop offset="0" stop-color="#229efa"/><stop offset=".44" stop-color="#239cf8"/><stop offset=".6" stop-color="#2795f2"/><stop offset=".71" stop-color="#2d8ae8"/><stop offset=".81" stop-color="#3679d9"/><stop offset=".89" stop-color="#4263c6"/><stop offset=".95" stop-color="#5048af"/><stop offset="1" stop-color="#5c319b"/></linearGradient><linearGradient id="未命名的渐变_13" x1="10.75" y1="8.2" x2="4.49" y2="1.94" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#991146"/><stop offset="0" stop-color="#326b4e"/><stop offset=".02" stop-color="#3a685c"/><stop offset=".07" stop-color="#506180"/><stop offset=".13" stop-color="#645aa0"/><stop offset=".19" stop-color="#7554bc"/><stop offset=".26" stop-color="#8250d2"/><stop offset=".35" stop-color="#8d4ce3"/><stop offset=".45" stop-color="#944aee"/><stop offset=".6" stop-color="#9848f5"/><stop offset="1" stop-color="#9948f7"/></linearGradient><linearGradient id="未命名的渐变_11" x1="15.34" y1="6.67" x2="7.88" y2="10.98" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bc7a"/><stop offset=".45" stop-color="#32ba7a"/><stop offset=".61" stop-color="#2fb37c"/><stop offset=".73" stop-color="#29a87e"/><stop offset=".82" stop-color="#219782"/><stop offset=".9" stop-color="#168186"/><stop offset=".97" stop-color="#09668b"/><stop offset="1" stop-color="#03598e"/></linearGradient></defs><title>logo</title><rect class="cls-1" x="-143.14" y="-373.46" width="597.8" height="424.44"/><circle class="cls-2" cx="12.02" cy="1.83" r="1.33"/><circle class="cls-3" cx="12.02" cy="14.17" r="1.33"/><circle class="cls-4" cx="1.33" cy="8" r="1.33"/><path class="cls-5" d="M7.91 10h0a2.65 2.65.0 01-.23-3.74A1.75 1.75.0 017.91 6h0A2.66 2.66.0 014.4 6h0a1.81 1.81.0 01.24.24A2.65 2.65.0 014.4 10h0a2.62 2.62.0 00-.89 2 2.65 2.65.0 104.4-2z"/><path class="cls-6" d="M12.19 5.49a2.78 2.78.0 01-.5.11A2.64 2.64.0 018.76 3.5h0a2.65 2.65.0 10-2.6 3.17A2.6 2.6.0 007 6.53H7a2.65 2.65.0 013.44 2 2.94 2.94.0 010-.51 2.65 2.65.0 011.75-2.53z"/><path class="cls-7" d="M13 5.35a2.64 2.64.0 00-2.59 2.12h0a3 3 0 01-.08.32A2.65 2.65.0 017.54 9.58a2.86 2.86.0 00.37.41h0a2.63 2.63.0 01.9 2 2.84 2.84.0 01-.05.51 2.64 2.64.0 013.12-2.06l.32.08h0a2.6 2.6.0 00.84.14 2.65 2.65.0 100-5.3z"/></svg></span><span class=font-weight-bold>HugeGraph</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/docs/><i class='fas fa-book pr-2'></i><span>Documentation</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://github.com/apache/incubator-hugegraph target=_blank><i class='fab fa-github pr-2'></i><span>GitHub</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/docs/download/download/><i class='fas fa-download pr-2'></i><span>Download</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/community/><span>Community</span></a></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/cn/docs/clients/hugegraph-client/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"></div></nav></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-xl-nowrap"><aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><div id=td-sidebar-menu class=td-sidebar__inner><div id=content-mobile><form class="td-sidebar__search d-flex align-items-center"><button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/cn/docs/clients/hugegraph-client/>中文</a></div></div><ul class="td-sidebar-nav__section pr-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docs-li><a href=/docs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section tree-root" id=m-docs><span>Documentation</span></a><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsintroductionreadme-li><a href=/docs/introduction/readme/ title="Introduction with HugeGraph" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsintroductionreadme><span>Introduction</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsdownloaddownload-li><a href=/docs/download/download/ title="Download Apache HugeGraph (Incubating)" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsdownloaddownload><span>Download</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsquickstart-li><a href=/docs/quickstart/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsquickstart><span>Quick Start</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-server-li><a href=/docs/quickstart/hugegraph-server/ title="HugeGraph-Server Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-server><span>Install/Build HugeGraph-Server</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-loader-li><a href=/docs/quickstart/hugegraph-loader/ title="HugeGraph-Loader Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-loader><span>Load data with HugeGraph-Loader</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-hubble-li><a href=/docs/quickstart/hugegraph-hubble/ title="HugeGraph-Hubble Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-hubble><span>Visual with HugeGraph-Hubble</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-client-li><a href=/docs/quickstart/hugegraph-client/ title="HugeGraph-Client Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-client><span>Develop with HugeGraph-Client</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-ai-li><a href=/docs/quickstart/hugegraph-ai/ title="HugeGraph-AI Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-ai><span>Explore with HugeGraph-AI</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-tools-li><a href=/docs/quickstart/hugegraph-tools/ title="HugeGraph-Tools Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-tools><span>Manage with HugeGraph-Tools</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsquickstarthugegraph-computer-li><a href=/docs/quickstart/hugegraph-computer/ title="HugeGraph-Computer Quick Start" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsquickstarthugegraph-computer><span>Analysis with HugeGraph-Computer</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsconfig-li><a href=/docs/config/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsconfig><span>Config</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsconfigconfig-guide-li><a href=/docs/config/config-guide/ title="HugeGraph configuration" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsconfigconfig-guide><span>Config Guide</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsconfigconfig-option-li><a href=/docs/config/config-option/ title="HugeGraph Config Options" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsconfigconfig-option><span>Config Options</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsconfigconfig-authentication-li><a href=/docs/config/config-authentication/ title="Built-in User Authentication and Authorization Configuration and Usage in HugeGraph" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsconfigconfig-authentication><span>Config Authentication</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsconfigconfig-https-li><a href=/docs/config/config-https/ title="Configuring HugeGraphServer to Use HTTPS Protocol" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsconfigconfig-https><span>Config HTTPS</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsconfigconfig-computer-li><a href=/docs/config/config-computer/ title="HugeGraph-Computer Config" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsconfigconfig-computer><span>Config Computer</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsclients-li><a href=/docs/clients/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsclients><span>API</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsclientsrestful-api-li><a href=/docs/clients/restful-api/ title="HugeGraph RESTful API" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientsrestful-api><span>RESTful API</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apischema-li><a href=/docs/clients/restful-api/schema/ title="Schema API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apischema><span>Schema</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apipropertykey-li><a href=/docs/clients/restful-api/propertykey/ title="PropertyKey API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apipropertykey><span>PropertyKey</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apivertexlabel-li><a href=/docs/clients/restful-api/vertexlabel/ title="VertexLabel API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apivertexlabel><span>VertexLabel</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apiedgelabel-li><a href=/docs/clients/restful-api/edgelabel/ title="EdgeLabel API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apiedgelabel><span>EdgeLabel</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apiindexlabel-li><a href=/docs/clients/restful-api/indexlabel/ title="IndexLabel API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apiindexlabel><span>IndexLabel</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apirebuild-li><a href=/docs/clients/restful-api/rebuild/ title="Rebuild API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apirebuild><span>Rebuild</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apivertex-li><a href=/docs/clients/restful-api/vertex/ title="Vertex API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apivertex><span>Vertex</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apiedge-li><a href=/docs/clients/restful-api/edge/ title="Edge API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apiedge><span>Edge</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apitraverser-li><a href=/docs/clients/restful-api/traverser/ title="Traverser API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apitraverser><span>Traverser</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apirank-li><a href=/docs/clients/restful-api/rank/ title="Rank API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apirank><span>Rank</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apivariable-li><a href=/docs/clients/restful-api/variable/ title="Variable API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apivariable><span>Variable</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apigraphs-li><a href=/docs/clients/restful-api/graphs/ title="Graphs API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apigraphs><span>Graphs</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apitask-li><a href=/docs/clients/restful-api/task/ title="Task API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apitask><span>Task</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apigremlin-li><a href=/docs/clients/restful-api/gremlin/ title="Gremlin API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apigremlin><span>Gremlin</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apicypher-li><a href=/docs/clients/restful-api/cypher/ title="Cypher API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apicypher><span>Cypher</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apiauth-li><a href=/docs/clients/restful-api/auth/ title="Authentication API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apiauth><span>Authentication</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apimetrics-li><a href=/docs/clients/restful-api/metrics/ title="Metrics API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apimetrics><span>Metrics</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsrestful-apiother-li><a href=/docs/clients/restful-api/other/ title="Other API" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsrestful-apiother><span>Other</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientshugegraph-client-li><a href=/docs/clients/hugegraph-client/ class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id=m-docsclientshugegraph-client><span class=td-sidebar-nav-active-item>HugeGraph Java Client</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientsgremlin-console-li><a href=/docs/clients/gremlin-console/ title=Gremlin-Console class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsclientsgremlin-console><span>Gremlin Console</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsguides-li><a href=/docs/guides/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsguides><span>GUIDES</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidesarchitectural-li><a href=/docs/guides/architectural/ title="HugeGraph Architecture Overview" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidesarchitectural><span>Architecture Overview</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidesdesgin-concept-li><a href=/docs/guides/desgin-concept/ title="HugeGraph Design Concepts" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidesdesgin-concept><span>Design Concepts</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidescustom-plugin-li><a href=/docs/guides/custom-plugin/ title="HugeGraph Plugin mechanism and plug-in extension process" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidescustom-plugin><span>HugeGraph Plugin</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidesbackup-restore-li><a href=/docs/guides/backup-restore/ title="Backup and Restore" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidesbackup-restore><span>Backup Restore</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidesfaq-li><a href=/docs/guides/faq/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidesfaq><span>FAQ</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsguidessecurity-li><a href=/docs/guides/security/ title="Security Report" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsguidessecurity><span>Security</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docslanguage-li><a href=/docs/language/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docslanguage><span>QUERY LANGUAGE</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docslanguagehugegraph-gremlin-li><a href=/docs/language/hugegraph-gremlin/ title="HugeGraph Gremlin" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docslanguagehugegraph-gremlin><span>Gremlin Query Language</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docslanguagehugegraph-example-li><a href=/docs/language/hugegraph-example/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docslanguagehugegraph-example><span>HugeGraph Examples</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsperformance-li><a href=/docs/performance/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsperformance><span>PERFORMANCE</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsperformancehugegraph-benchmark-056-li><a href=/docs/performance/hugegraph-benchmark-0.5.6/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsperformancehugegraph-benchmark-056><span>HugeGraph BenchMark Performance</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsperformanceapi-preformance-li><a href=/docs/performance/api-preformance/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsperformanceapi-preformance><span>HugeGraph-API Performance</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsperformanceapi-preformancehugegraph-api-056-rocksdb-li><a href=/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsperformanceapi-preformancehugegraph-api-056-rocksdb><span>v0.5.6 Stand-alone(RocksDB)</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsperformanceapi-preformancehugegraph-api-056-cassandra-li><a href=/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsperformanceapi-preformancehugegraph-api-056-cassandra><span>v0.5.6 Cluster(Cassandra)</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsperformancehugegraph-loader-performance-li><a href=/docs/performance/hugegraph-loader-performance/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsperformancehugegraph-loader-performance><span>HugeGraph-Loader Performance</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsperformancehugegraph-benchmark-044-li><a href=/docs/performance/hugegraph-benchmark-0.4.4/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsperformancehugegraph-benchmark-044><span></span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docscontribution-guidelines-li><a href=/docs/contribution-guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontribution-guidelines><span>Contribution Guidelines</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscontribution-guidelinescontribute-li><a href=/docs/contribution-guidelines/contribute/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontribution-guidelinescontribute><span>How to Contribute to HugeGraph</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscontribution-guidelinessubscribe-li><a href=/docs/contribution-guidelines/subscribe/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontribution-guidelinessubscribe><span>Subscribe Mailing Lists</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscontribution-guidelinesvalidate-release-li><a href=/docs/contribution-guidelines/validate-release/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontribution-guidelinesvalidate-release><span>Validate Apache Release</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscontribution-guidelineshugegraph-server-idea-setup-li><a href=/docs/contribution-guidelines/hugegraph-server-idea-setup/ title="Setup Server in IDEA (Dev)" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontribution-guidelineshugegraph-server-idea-setup><span>Setup Server in IDEA</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscontribution-guidelinescommitter-guidelines-li><a href=/docs/contribution-guidelines/committer-guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontribution-guidelinescommitter-guidelines><span>Apache HugeGraph Committer Guide</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docschangelog-li><a href=/docs/changelog/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docschangelog><span>CHANGELOGS</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docschangeloghugegraph-100-release-notes-li><a href=/docs/changelog/hugegraph-1.0.0-release-notes/ title="HugeGraph 1.0.0 Release Notes" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docschangeloghugegraph-100-release-notes><span>Release-1.0.0</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docschangeloghugegraph-120-release-notes-li><a href=/docs/changelog/hugegraph-1.2.0-release-notes/ title="HugeGraph 1.2.0 Release Notes" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docschangeloghugegraph-120-release-notes><span>Release-1.2.0</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docschangeloghugegraph-130-release-notes-li><a href=/docs/changelog/hugegraph-1.3.0-release-notes/ title="HugeGraph 1.3.0 Release Notes" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docschangeloghugegraph-130-release-notes><span>Release-1.3.0</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscla-li><a href=/docs/cla/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscla><span></span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docssummary-li><a href=/docs/summary/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docssummary><span></span></a></li></ul></li></ul></nav></div></aside><aside class="d-none d-xl-block col-xl-2 td-sidebar-toc d-print-none"><div class="td-page-meta ml-2 pb-1 pt-2 mb-0"><a href=https://github.com/apache/incubator-hugegraph-doc/tree/master/content/en/docs/clients/hugegraph-client.md class=td-page-meta--view target=_blank rel=noopener><i class="fa fa-file-alt fa-fw"></i> View page source</a>
<a href=https://github.com/apache/incubator-hugegraph-doc/edit/master/content/en/docs/clients/hugegraph-client.md class=td-page-meta--edit target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/apache/incubator-hugegraph-doc/new/master/content/en/docs/clients/hugegraph-client.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" class=td-page-meta--child target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Create child page</a>
<a href="https://github.com/apache/incubator-hugegraph-doc/issues/new?title=HugeGraph%20Java%20Client" class=td-page-meta--issue target=_blank rel=noopener><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href=https://github.com/apache/incubator-hugegraph/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a id=print href=/docs/clients/_print/><i class="fa fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><ul><li><a href=#1-hugegraph-client>1 HugeGraph-Client</a></li><li><a href=#2-schema>2 Schema</a></li><li><a href=#3-graph>3 Graph</a></li><li><a href=#4-examples>4 Examples</a></li></ul></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Documentation</a></li><li class=breadcrumb-item><a href=/docs/clients/>API</a></li><li class="breadcrumb-item active" aria-current=page><a href=/docs/clients/hugegraph-client/>HugeGraph Java Client</a></li></ol></nav><div class=td-content><h1>HugeGraph Java Client</h1><header class=article-meta></header><p>The code in this document is written in <code>java</code>, but its style is very similar to <code>gremlin(groovy)</code>. The user only needs to replace the variable declaration in the code with <code>def</code> or remove it directly,
You can convert <code>java</code> code into <code>groovy</code>; in addition, each line of statement can be without a semicolon at the end, <code>groovy</code> considers a line to be a statement.
The <code>gremlin(groovy)</code> written by the user in <code>HugeGraph-Studio</code> can refer to the <code>java</code> code in this document, and some examples will be given below.</p><h3 id=1-hugegraph-client>1 HugeGraph-Client</h3><p>HugeGraph-Client is the general entry for operating graph. Users must first create a HugeGraph-Client object and establish a connection (pseudo connection) with HugeGraph-Server before they can obtain the operation entry objects of schema, graph and gremlin.</p><p>Currently, HugeGraph-Client only allows connections to existing graphs on the server, and cannot create custom graphs. Its creation method is as follows:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// HugeGraphServer address: &#34;http://localhost:8080&#34;
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Graph Name: &#34;hugegraph&#34;
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>HugeClient</span> <span style=color:#000>hugeClient</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>HugeClient</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>builder</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;http://localhost:8080&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;hugegraph&#34;</span><span style=color:#ce5c00;font-weight:700>)</span>
</span></span><span style=display:flex><span> <span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>configTimeout</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#000>20</span><span style=color:#ce5c00;font-weight:700>)</span> <span style=color:#8f5902;font-style:italic>// 20s timeout
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span> <span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>configUser</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;**&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;**&#34;</span><span style=color:#ce5c00;font-weight:700>)</span> <span style=color:#8f5902;font-style:italic>// enable auth
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span> <span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>build</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><p>If the above process of creating HugeClient fails, an exception will be thrown, and the user needs to use try-catch. If successful, continue to get schema, graph and gremlin manager.</p><p>When operating through <code>gremlin</code> in <code>HugeGraph-Hubble</code>(or <code>HugeGraph-Studio</code>), <code>HugeClient</code> is not required and can be ignored.</p><h3 id=2-schema>2 Schema</h3><h4 id=21-schemamanager>2.1 SchemaManager</h4><p>SchemaManager is used to manage four kinds of schema in HugeGraph, namely PropertyKey (property type), VertexLabel (vertex type), EdgeLabel (edge type) and IndexLabel (index label). A SchemaManager object can be created for schema information definition.</p><p>The user can obtain the SchemaManager object using the following methods:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>SchemaManager</span> <span style=color:#000>schema</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>hugeClient</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>schema</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><p>Create a <code>schema</code> object via <code>gremlin</code> in <code>HugeGraph-Hubble</code>:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-groovy data-lang=groovy><span style=display:flex><span><span style=color:#000>schema</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>graph</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>schema</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><p>The definition process of the 4 kinds of schema is described below.</p><h4 id=22-propertykey>2.2 PropertyKey</h4><h5 id=221-interface-and-parameter-introduction>2.2.1 Interface and parameter introduction</h5><p>PropertyKey is used to standardize the property constraints of vertices and edges, and properties of properties are not currently supported.</p><p>The constraint information that PropertyKey allows to define includes: name, datatype, cardinality, and userdata, which are introduced one by one below.</p><ul><li>name: The name of the property, used to distinguish different PropertyKeys, PropertyKeys with the same name are not allowed.</li></ul><table><thead><tr><th>interface</th><th>param</th><th>must set</th></tr></thead><tbody><tr><td>propertyKey(String name)</td><td>name</td><td>y</td></tr></tbody></table><ul><li>datatype: property value type, you must select an explicit setting from the following table that conforms to the specific business scenario:</li></ul><table><thead><tr><th>interface</th><th>Java Class</th></tr></thead><tbody><tr><td>asText()</td><td>String</td></tr><tr><td>asInt()</td><td>Integer</td></tr><tr><td>asDate()</td><td>Date</td></tr><tr><td>asUuid()</td><td>UUID</td></tr><tr><td>asBoolean()</td><td>Boolean</td></tr><tr><td>asByte()</td><td>Byte</td></tr><tr><td>asBlob()</td><td>Byte[]</td></tr><tr><td>asDouble()</td><td>Double</td></tr><tr><td>asFloat()</td><td>Float</td></tr><tr><td>asLong()</td><td>Long</td></tr></tbody></table><ul><li>cardinality: Whether the property value is single-valued or multivalued, in the case of multivalued, it is divided into allowing-duplicate values and not-allowing-duplicate values. This item is single by default. If necessary, you can select a setting from the following table:</li></ul><table><thead><tr><th>interface</th><th>cardinality</th><th>description</th></tr></thead><tbody><tr><td>valueSingle()</td><td>single</td><td>single value</td></tr><tr><td>valueList()</td><td>list</td><td>multi-values that allow duplicate value</td></tr><tr><td>valueSet()</td><td>set</td><td>multi-values that not allow duplicate value</td></tr></tbody></table><ul><li>userdata: Users can add some constraints or additional information by themselves, and then check whether the incoming properties satisfy the constraints, or extract additional information when necessary:</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>userdata(String key, Object value)</td><td>The same key, the latter will cover the former</td></tr></tbody></table><h5 id=222-create-propertykey>2.2.2 Create PropertyKey</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>propertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>asText</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>valueSet</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><p>The syntax of creating the above <code>PropertyKey</code> object through <code>gremlin</code> in <code>HugeGraph-Hubble</code> is exactly the same. If the user does not define the <code>schema</code> variable, it should be written like this:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-groovy data-lang=groovy><span style=display:flex><span><span style=color:#000>graph</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>schema</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>propertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>asText</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>valueSet</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><p>In the following examples, the syntax of <code>gremlin</code> and <code>java</code> is exactly the same, so we won&rsquo;t repeat them.</p><ul><li>ifNotExist(): Add a judgment mechanism for create, if the current PropertyKey already exists, it will not be created, otherwise the property will be created. If no ifNotExist() is added, an exception will be thrown if a property-key with the same name already exists. The same as below, and will not be repeated there.</li></ul><h5 id=223-delete-propertykey>2.2.3 Delete PropertyKey</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>propertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>remove</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h5 id=224-query-propertykey>2.2.4 Query PropertyKey</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get PropertyKey
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getPropertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>)</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get attributes of PropertyKey
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getPropertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>cardinality</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getPropertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>dataType</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getPropertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>name</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getPropertyKey</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>userdata</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h4 id=23-vertexlabel>2.3 VertexLabel</h4><h5 id=231-interface-and-parameter-introduction>2.3.1 Interface and parameter introduction</h5><p>VertexLabel is used to define the vertex type and describe the constraint information of the vertex.</p><p>The constraint information that VertexLabel allows to define include: name, idStrategy, properties, primaryKeys and nullableKeys, which are introduced one by one below.</p><ul><li>name: The name of the VertexLabel, used to distinguish different VertexLabels, VertexLabels with the same name are not allowed.</li></ul><table><thead><tr><th>interface</th><th>param</th><th>must set</th></tr></thead><tbody><tr><td>vertexLabel(String name)</td><td>name</td><td>y</td></tr></tbody></table><ul><li>idStrategy: Each VertexLabel can choose its own ID strategy. There are currently three strategies to choose from, namely Automatic (automatically generated), Customize (user input) and PrimaryKey (primary attribute key). Among them, Automatic uses the Snowflake algorithm to generate ID, Customize requires the user to pass in the ID of string or number type, and PrimaryKey allows the user to select several properties of VertexLabel as the basis for differentiation. HugeGraph will be spliced and generated ID according to the value of the primary properties. idStrategy uses Automatic by default, but if the user does not explicitly set idStrategy and calls the primaryKeys(&mldr;) method to set the primary property, then idStrategy will automatically use PrimaryKey.</li></ul><table><thead><tr><th>interface</th><th>idStrategy</th><th>description</th></tr></thead><tbody><tr><td>useAutomaticId</td><td>AUTOMATIC</td><td>generate id automatically by Snowflake algorithm</td></tr><tr><td>useCustomizeStringId</td><td>CUSTOMIZE_STRING</td><td>passed id by user, must be string type</td></tr><tr><td>useCustomizeNumberId</td><td>CUSTOMIZE_NUMBER</td><td>passed id by user, must be number type</td></tr><tr><td>usePrimaryKeyId</td><td>PRIMARY_KEY</td><td>choose some important prop as primary key to splice id</td></tr></tbody></table><ul><li>properties: define the properties of the vertex, the incoming parameter is the name of the PropertyKey.</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>properties(String&mldr; properties)</td><td>allow to pass multi properties</td></tr></tbody></table><ul><li>primaryKeys: When the user selects the ID strategy of PrimaryKey, several primary properties need to be selected from the properties of VertexLabel as the basis for differentiation;</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>primaryKeys(String&mldr; keys)</td><td>allow to choose multi prop as primaryKeys</td></tr></tbody></table><p>Note that the selection of the ID strategy and the setting of primaryKeys have some mutual constraints, which cannot be called at will. The constraints are shown in the following table:</p><table><thead><tr><th></th><th>useAutomaticId</th><th>useCustomizeStringId</th><th>useCustomizeNumberId</th><th>usePrimaryKeyId</th></tr></thead><tbody><tr><td>unset primaryKeys</td><td>AUTOMATIC</td><td>CUSTOMIZE_STRING</td><td>CUSTOMIZE_NUMBER</td><td>ERROR</td></tr><tr><td>set primaryKeys</td><td>ERROR</td><td>ERROR</td><td>ERROR</td><td>PRIMARY_KEY</td></tr></tbody></table><ul><li>nullableKeys: For properties set by the properties(&mldr;) method, all of them are non-nullable by default, that is, the property must be assigned a value when creating a vertex, which may impose too strict integrity requirements on user data. In order to avoid such strong constraints, the user can set some properties to be nullable through this method, so that the properties can be unassigned when adding vertices.</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>nullableKeys(String&mldr; properties)</td><td>allow to pass multi props</td></tr></tbody></table><p>Note: primaryKeys and nullableKeys cannot intersect, because a property cannot be both primary and nullable.</p><ul><li>enableLabelIndex: The user can specify whether to create an index for the label. If you don&rsquo;t create it, you can&rsquo;t globally search for the vertices and edges of the specified label. If you create it, you can search globally, like <code>g.V().hasLabel('person'), g.E().has('label', 'person')</code> query, but the performance will be slower when inserting data, and it will take up more storage space. This defaults to true.</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>enableLabelIndex(boolean enable)</td><td>Whether to create a label index</td></tr></tbody></table><ul><li>userdata: Users can add some constraints or additional information by themselves, and then check whether the incoming properties meet the constraints, or extract additional information when necessary.</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>userdata(String key, Object value)</td><td>The same key, the latter will cover the former</td></tr></tbody></table><h5 id=232-create-vertexlabel>2.3.2 Create VertexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Use Automatic Id strategy
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>useAutomaticId</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Use Customize_String Id strategy
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>useCustomizeStringId</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Use Customize_Number Id strategy
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>useCustomizeNumberId</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Use PrimaryKey Id strategy
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>primaryKeys</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>usePrimaryKeyId</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>primaryKeys</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=233-update-vertexlabel>2.3.3 Update VertexLabel</h5><p>VertexLabel can append constraints, but only properties and nullableKeys, and the appended properties must also be added to the nullableKeys collection.</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;price&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>nullableKeys</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;price&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>append</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=234-delete-vertexlabel>2.3.4 Delete VertexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>vertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>remove</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=235-query-vertexlabel>2.3.5 Query VertexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get VertexLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>)</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get attributes of VertexLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>idStrategy</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>primaryKeys</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>name</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>nullableKeys</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getVertexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>userdata</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h4 id=24-edgelabel>2.4 EdgeLabel</h4><h5 id=241-interface-and-parameter-introduction>2.4.1 Interface and parameter introduction</h5><p>EdgeLabel is used to define the edge type and describe the constraint information of the edge.</p><p>The constraint information that EdgeLabel allows to define include: name, sourceLabel, targetLabel, frequency, properties, sortKeys and nullableKeys, which are introduced one by one below.</p><ul><li>name: The name of the EdgeLabel, used to distinguish different EdgeLabels, EdgeLabels with the same name are not allowed.</li></ul><table><thead><tr><th>interface</th><th>param</th><th>must set</th></tr></thead><tbody><tr><td>edgeLabel(String name)</td><td>name</td><td>y</td></tr></tbody></table><ul><li><p>sourceLabel: The name of the source vertex type of the edge link, only one is allowed;</p></li><li><p>targetLabel: The name of the target vertex type of the edge link, only one is allowed;</p></li></ul><table><thead><tr><th>interface</th><th>param</th><th>must set</th></tr></thead><tbody><tr><td>sourceLabel(String label)</td><td>label</td><td>y</td></tr><tr><td>targetLabel(String label)</td><td>label</td><td>y</td></tr></tbody></table><ul><li>frequency: Indicating the number of times a relationship occurs between two specific vertices, which can be single (single) or multiple (frequency), the default is single.</li></ul><table><thead><tr><th>interface</th><th>frequency</th><th>description</th></tr></thead><tbody><tr><td>singleTime()</td><td>single</td><td>a relationship can only occur once</td></tr><tr><td>multiTimes()</td><td>multiple</td><td>a relationship can occur many times</td></tr></tbody></table><ul><li>properties: Define the properties of the edge.</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>properties(String&mldr; properties)</td><td>allow to pass multi props</td></tr></tbody></table><ul><li>sortKeys: When the frequency of EdgeLabel is multiple, some properties are needed to distinguish the multiple relationships, so sortKeys (sorted keys) is introduced;</li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>sortKeys(String&mldr; keys)</td><td>allow to choose multi prop as sortKeys</td></tr></tbody></table><ul><li>nullableKeys: Consistent with the concept of nullableKeys in vertices.</li></ul><p>Note: sortKeys and nullableKeys also cannot intersect.</p><ul><li><p>enableLabelIndex: It is consistent with the concept of enableLabelIndex in the vertex.</p></li><li><p>userdata: Users can add some constraints or additional information by themselves, and then check whether the incoming properties meet the constraints, or extract additional information when necessary.</p></li></ul><table><thead><tr><th>interface</th><th>description</th></tr></thead><tbody><tr><td>userdata(String key, Object value)</td><td>The same key, the latter will cover the former</td></tr></tbody></table><h5 id=242-create-edgelabel>2.4.2 Create EdgeLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>edgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>link</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;date&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>edgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;created&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>multiTimes</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>link</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;software&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;date&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>sortKeys</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;date&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=243-update-edgelabel>2.4.3 Update EdgeLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>edgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;price&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>nullableKeys</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;price&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>append</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=244-delete-edgelabel>2.4.4 Delete EdgeLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>edgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>remove</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=245-query-edgelabel>2.4.5 Query EdgeLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get EdgeLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>)</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get attributes of EdgeLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>frequency</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>sourceLabel</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>targetLabel</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>sortKeys</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>name</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>properties</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>nullableKeys</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getEdgeLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>userdata</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h4 id=25-indexlabel>2.5 IndexLabel</h4><h5 id=251-interface-and-parameter-introduction>2.5.1 Interface and parameter introduction</h5><p>IndexLabel is used to define the index type and describe the constraint information of the index, mainly for the convenience of query.</p><p>The constraint information that IndexLabel allows to define include: name, baseType, baseValue, indexFields, indexType, which are introduced one by one below.</p><ul><li>name: The name of the IndexLabel, used to distinguish different IndexLabels, IndexLabels with the same name are not allowed.</li></ul><table><thead><tr><th>interface</th><th>param</th><th>must set</th></tr></thead><tbody><tr><td>indexLabel(String name)</td><td>name</td><td>y</td></tr></tbody></table><ul><li><p>baseType: Indicates whether to index VertexLabel or EdgeLabel, used in conjunction with the baseValue below.</p></li><li><p>baseValue: Specifies the name of the VertexLabel or EdgeLabel to be indexed.</p></li></ul><table><thead><tr><th>interface</th><th>param</th><th>description</th></tr></thead><tbody><tr><td>onV(String baseValue)</td><td>baseValue</td><td>build index for VertexLabel: &lsquo;baseValue&rsquo;</td></tr><tr><td>onE(String baseValue)</td><td>baseValue</td><td>build index for EdgeLabel: &lsquo;baseValue&rsquo;</td></tr></tbody></table><ul><li>indexFields: on which fields to index, it can be a joint index for multiple columns.</li></ul><table><thead><tr><th>interface</th><th>param</th><th>description</th></tr></thead><tbody><tr><td>by(String&mldr; fields)</td><td>files</td><td>allow to build index for multi fields for secondary index</td></tr></tbody></table><ul><li>indexType: There are currently five types of indexes established, namely Secondary, Range, Search, Shard and Unique.<ul><li>Secondary Index supports exact matching secondary index, allow to build joint index, joint index supports index prefix search<ul><li>Single Property Secondary Index, support equality query, for example: the secondary index of the city property of the person vertex, you can use <code>g.V().has("city", "Beijing")</code> to query all the vertices with &ldquo;city attribute value is Beijing&rdquo;</li><li>Joint Secondary Index, supports prefix query and equality query, such as: joint index of city and street properties of person vertex, you can use <code>g.V().has("city", "Beijing").has('street', 'Zhongguancun street ')</code> to query all vertices of &ldquo;city property value is Beijing and street property value is ZhongGuanCun&rdquo;, or <code>g.V().has("city", "Beijing")</code> to query all vertices of &ldquo;city property value is Beijing&rdquo;.</li></ul><blockquote><p>The query of Secondary Index is based on the query condition of &ldquo;yes&rdquo; or &ldquo;equal&rdquo;, and does not support &ldquo;partial matching&rdquo;.</p></blockquote></li><li>Range Index supports for range queries of numeric types<ul><li>Must be a single number or date attribute, for example: the range index of the age property of the person vertex, you can use <code>g.V().has("age", P.gt(18))</code> to query the vertices with &ldquo;age property value greater than 18&rdquo; . In addition to <code>P.gt()</code>, also supports <code>P.gte()</code>, <code>P.lte()</code>, <code>P.lt()</code>, <code>P.eq()</code>, <code>P.between() </code>, <code>P.inside()</code> and <code>P.outside()</code> etc.</li></ul></li><li>Search Index supports full-text search<ul><li>It must be a single text property, such as: full-text index of the address property of the person vertex, you can use <code>g.V().has("address", Text.contains('building')</code> to query all vertices whose &ldquo;address property contains a &lsquo;building&rsquo;&rdquo;</li></ul><blockquote><p>The query of the Search Index is based on the query condition of &ldquo;is&rdquo; or &ldquo;contains&rdquo;.</p></blockquote></li><li>Shard Index supports prefix matching + numeric range query<ul><li>The shard index of N properties supports range queries with equal prefixes. For example, the shard index of the city and age properties of the person vertex can use <code>g.V().has("city", "Beijing").has ("age", P.between(18, 30))</code>Query &ldquo;city property is Beijing and all vertices whose age is greater than or equal to 18 and less than 30&rdquo;.</li><li>When all N properties are text properties in a Shard Index, it is equivalent to Secondary Index.</li><li>When there is only one single number or date property in a Shard Index, it is equivalent to the Range Index.</li></ul><blockquote><p>Shard Index can have any number or date property, but at most one range search condition can be provided when querying, and the prefix properties of the Shard Search conditions must be &ldquo;equals&rdquo;.</p></blockquote></li><li>Unique Index supports properties uniqueness constraints, that is, the value of properties can be limited to not repeat, and joint indexing is allowed, but querying is not supported now<ul><li>The unique index of single or multiple properties cannot be used for query, only the value of the property can be limited, and an error will be reported when there is a duplicate value.</li></ul></li></ul></li></ul><table><thead><tr><th>interface</th><th>indexType</th><th>description</th></tr></thead><tbody><tr><td>secondary()</td><td>Secondary</td><td>support prefix search</td></tr><tr><td>range()</td><td>Range</td><td>support range(numeric or date type) search</td></tr><tr><td>search()</td><td>Search</td><td>support full text search</td></tr><tr><td>shard()</td><td>Shard</td><td>support prefix + range(numeric or date type) search</td></tr><tr><td>unique()</td><td>Unique</td><td>support unique props value, not support search</td></tr></tbody></table><h5 id=252-create-indexlabel>2.5.2 Create IndexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>onV</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>by</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>range</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;createdByDate&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>onE</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;created&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>by</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;date&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>secondary</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByLived&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>onE</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>by</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;lived&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>search</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByCityAndAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>onV</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>by</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;city&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>shard</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personById&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>onV</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>by</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;id&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>unique</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>ifNotExist</span><span style=color:#ce5c00;font-weight:700>().</span><span style=color:#c4a000>create</span><span style=color:#ce5c00;font-weight:700>();</span>
</span></span></code></pre></div><h5 id=253-delete-indexlabel>2.5.3 Delete IndexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>indexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>remove</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h5 id=254-query-indexlabel>2.5.4 Query IndexLabel</h5><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get IndexLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>)</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic>// Get attributes of IndexLabel
</span></span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic></span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>baseType</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>baseValue</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>indexFields</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>indexType</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span><span style=display:flex><span><span style=color:#000>schema</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>getIndexLabel</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;personByAge&#34;</span><span style=color:#ce5c00;font-weight:700>).</span><span style=color:#c4a000>name</span><span style=color:#ce5c00;font-weight:700>()</span>
</span></span></code></pre></div><h3 id=3-graph>3 Graph</h3><h4 id=31-vertex>3.1 Vertex</h4><p>Vertices are the most basic elements of a graph, and there can be many vertices in a graph. Here is an example of adding vertices:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>Vertex</span> <span style=color:#000>marko</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>graph</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>addVertex</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#000>T</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>label</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;person&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;marko&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;age&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#000>29</span><span style=color:#ce5c00;font-weight:700>);</span>
</span></span><span style=display:flex><span><span style=color:#000>Vertex</span> <span style=color:#000>lop</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>graph</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>addVertex</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#000>T</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>label</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;software&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;name&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;lop&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;lang&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;java&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;price&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#000>328</span><span style=color:#ce5c00;font-weight:700>);</span>
</span></span></code></pre></div><ul><li>The key to adding vertices is the vertex properties. The number of parameters of the vertex adding function must be an even number and satisfy the order of <code>key1 -> val1, key2 -> val2 ...</code>, and the order between key-value pairs is free .</li><li>The parameter must contain a special key-value pair, namely <code>T.label -> "val"</code>, which is used to define the category of the vertex, so that the program can obtain the schema definition of the VertexLabel from the cache or backend, and then do subsequent constraint checks. The label in the example is defined as person.</li><li>If the vertex type&rsquo;s ID policy is <code>AUTOMATIC</code>, users are not allowed to pass in id key-value pairs.</li><li>If the ID policy of the vertex type is <code>CUSTOMIZE_STRING</code>, the user needs to pass in the value of the id of the String type. The key-value pair is like: <code>"T.id", "123456"</code>.</li><li>If the ID policy of the vertex type is <code>CUSTOMIZE_NUMBER</code>, the user needs to pass in the value of the id of the Number type. The key-value pair is like: <code>"T.id", 123456</code>.</li><li>If the ID policy of the vertex type is <code>PRIMARY_KEY</code>, the parameters must also contain the name and value of the properties corresponding to the <code>primaryKeys</code>, if not set an exception will be thrown. For example, the <code>primaryKeys</code> of <code>person</code> is <code>name</code>, in the example, the value of <code>name</code> is set to <code>marko</code>.</li><li>For properties that are not nullableKeys, a value must be assigned.</li><li>The remaining parameters are the settings of other properties of the vertex, but they are not required.</li><li>After calling the <code>addVertex</code> method, the vertices are inserted into the backend storage system immediately.</li></ul><h4 id=32-edge>3.2 Edge</h4><p>After added vertices, edges are also needed to form a complete graph. Here is an example of adding edges:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#000>Edge</span> <span style=color:#000>knows1</span> <span style=color:#ce5c00;font-weight:700>=</span> <span style=color:#000>marko</span><span style=color:#ce5c00;font-weight:700>.</span><span style=color:#c4a000>addEdge</span><span style=color:#ce5c00;font-weight:700>(</span><span style=color:#4e9a06>&#34;knows&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#000>vadas</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;city&#34;</span><span style=color:#ce5c00;font-weight:700>,</span> <span style=color:#4e9a06>&#34;Beijing&#34;</span><span style=color:#ce5c00;font-weight:700>);</span>
</span></span></code></pre></div><ul><li>The function <code>addEdge()</code> of the (source) vertex is to add an edge(relationship) between itself and another vertex. The first parameter of the function is the label of the edge, and the second parameter is the target vertex. The position and order of these two parameters are fixed. The subsequent parameters are the order of <code>key1 -> val1, key2 -> val2 ...</code>, set the properties of the edge, and the key-value pair order is free.</li><li>The source and target vertices must conform to the definitions of source-label and target label in EdgeLabel, and cannot be added arbitrarily.</li><li>For properties that are not nullableKeys, a value must be assigned.</li></ul><p><strong>Note: When frequency is multiple, the value of the property type corresponding to sortKeys must be set.</strong></p><h3 id=4-examples>4 Examples</h3><p>Simple examples can reference <a href=/docs/quickstart/hugegraph-client>HugeGraph-Client</a></p><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><script>const yesButton=document.querySelector(".feedback--answer-yes"),noButton=document.querySelector(".feedback--answer-no"),yesResponse=document.querySelector(".feedback--response-yes"),noResponse=document.querySelector(".feedback--response-no"),disableButtons=()=>{yesButton.disabled=!0,noButton.disabled=!0},sendFeedback=e=>{if(typeof ga!="function")return;const t={command:"send",hitType:"event",category:"Helpful",action:"click",label:window.location.pathname,value:e};ga(t.command,t.hitType,t.category,t.action,t.label,t.value)};yesButton.addEventListener("click",()=>{yesResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(1)}),noButton.addEventListener("click",()=>{noResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(0)})</script><br><div class="text-muted mt-5 pt-3 border-top">Last modified January 1, 2023: <a href=https://github.com/apache/incubator-hugegraph-doc/commit/89a0a1a6a5341c157b8179e1888b9254317d03d3>enhance validate doc (#171) (89a0a1a6)</a></div></div></main></div></div><footer class="bg-dark py-3 row d-print-none"><div class=footer-container><div class="row bg-dark"><div class=col-1></div><div class="col-4 text-center container-center"><div class=footer-row><a href=https://www.apache.org><div class=footer-apache-logo><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 7127.6 2890" enable-background="new 0 0 7127.6 2890"><path fill="#6d6e71" d="M7104.7 847.8c15.3 15.3 22.9 33.7 22.9 55.2s-7.6 39.9-22.9 55.4c-15.3 15.4-33.8 23.1-55.6 23.1s-40.2-7.6-55.4-22.9c-15.1-15.3-22.7-33.7-22.7-55.2s7.6-39.9 22.9-55.4c15.3-15.4 33.7-23.1 55.4-23.1C7070.9 824.9 7089.4 832.5 7104.7 847.8zM7098.1 951.9c13.3-13.6 20-29.8 20-48.7s-6.6-35-19.8-48.5c-13.2-13.4-29.4-20.1-48.6-20.1-19.2.0-35.4 6.7-48.7 20.2s-19.9 29.7-19.9 48.7 6.6 35.2 19.7 48.6c13.1 13.4 29.3 20.1 48.5 20.1S7084.7 965.4 7098.1 951.9zm-11-63.8c0 14-6.1 22.8-18.4 26.4l22.5 30.5H7073l-20.3-28.3h-18.6V945h-14.7v-84.6h31.8c12.8.0 22 2.2 27.6 6.6C7084.4 871.4 7087.1 878.4 7087.1 888.1zM7068.2 9e2c3-2.4 4.4-6.5 4.4-12s-1.5-9.4-4.5-11.6-8.4-3.2-16-3.2h-18v30.5h17.5C7059.7 903.6 7065.3 902.4 7068.2 9e2z"/><path fill="#6d6e71" d="M1803.6 499.8v155.4h-20V499.8h-56.8v-19.2h133.9v19.2H1803.6z"/><path fill="#6d6e71" d="M2082.2 655.2v-76.9H1977v76.9h-20V480.5h20v78.9h105.2v-78.9h20v174.7h-20z"/><path fill="#6d6e71" d="M2241.4 499.8v57.4h88.1v19.2h-88.1v59.8h101.8v19h-121.8V480.5H2340v19.2H2241.4z"/><path fill="#d22128" d="M1574.5 1852.4l417.3-997.6h80.1l417.3 997.6h-105.4l-129.3-311.9h-448.2l-127.9 311.9H1574.5zM2032.6 970l-205.1 493.2h404.7L2032.6 970z"/><path fill="#d22128" d="M2596.9 1852.4V854.8H3010c171.4.0 295.1 158.8 295.1 313.3.0 163-115.2 316.1-286.6 316.1h-324.6v368.1h-97zm97-455.3h318.9c118 0 193.9-108.2 193.9-229 0-125.1-92.7-226.2-202.3-226.2h-310.5v455.2z"/><path fill="#d22128" d="M3250.5 1852.4l417.3-997.6h80.1l417.3 997.6h-105.4l-129.3-311.9h-448.2l-127.9 311.9H3250.5zM3708.6 970l-205.1 493.2h404.7L3708.6 970z"/><path fill="#d22128" d="M4637.3 849.1c177 0 306.3 89.9 368.1 217.8l-78.7 47.8c-63.2-132.1-186.9-177-295.1-177-238.9.0-369.5 213.6-369.5 414.5.0 220.6 161.6 420.1 373.7 420.1 112.4.0 244.5-56.2 307.7-185.5l81.5 42.1c-64.6 148.9-241.7 231.8-394.8 231.8-274 0-466.5-261.3-466.5-514.2C4163.8 1106.3 4336.6 849.1 4637.3 849.1z"/><path fill="#d22128" d="M5949.1 854.8v997.6h-98.4v-466.5h-591.5v466.5h-96.9V854.8h96.9v444h591.5v-444H5949.1z"/><path fill="#d22128" d="M6844.6 1765.2v87.1h-670.2V854.8H6832v87.1h-560.6v359.7h489v82.9h-489v380.8H6844.6z"/><path fill="#6d6e71" d="M1667.6 2063.6c11.8 3.5 22.2 8.3 31 14.2l-10.3 22.6c-9-6-18.6-10.4-28.9-13.4-10.2-2.9-20-4.4-29.2-4.4-13.6.0-24.5 2.4-32.6 7.3s-12.2 11.8-12.2 20.7c0 7.6 2.3 14 6.8 19s10.2 8.9 17 11.7c6.8 2.8 16.1 6 28 9.6 14.4 4.6 26 8.9 34.7 12.9 8.8 4 16.3 9.9 22.5 17.8 6.2 7.8 9.3 18.2 9.3 31 0 11.7-3.2 21.8-9.5 30.6-6.3 8.7-15.3 15.5-26.8 20.3-11.6 4.8-24.9 7.2-40 7.2s-29.7-2.9-43.9-8.7c-14.2-5.8-26.4-13.6-36.6-23.4l10.7-21.6c9.6 9.4 20.7 16.7 33.3 21.9 12.6 5.2 24.8 7.8 36.8 7.8 15.3.0 27.3-3 36.1-8.9s13.2-13.9 13.2-23.9c0-7.8-2.3-14.3-6.9-19.4-4.6-5.1-10.3-9-17.1-11.9-6.8-2.8-16.1-6-28-9.6-14.2-4.2-25.7-8.3-34.6-12.2-8.9-3.9-16.4-9.7-22.5-17.5-6.1-7.7-9.2-17.9-9.2-30.6.0-10.9 3-20.4 9-28.6s14.6-14.6 25.6-19.1c11.1-4.5 23.8-6.8 38.2-6.8C1643.8 2058.3 1655.7 2060.1 1667.6 2063.6z"/><path fill="#6d6e71" d="M1980.1 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C1944.8 2058.6 1963.2 2063.3 1980.1 2072.8zM1881.9 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C1909.4 2081.5 1895.1 2085.2 1881.9 2092.7z"/><path fill="#6d6e71" d="M2186.5 2082.4v74h98.4v23.2h-98.4v90.2h-24.1v-210.6h133.8v23.2H2186.5z"/><path fill="#6d6e71" d="M2491.6 2082.4v187.4h-24.1v-187.4h-68.4v-23.2h161.4v23.2H2491.6z"/><path fill="#6d6e71" d="M2871.8 2269.8l-56.8-177.4-57.6 177.4h-24.5l-70.5-210.6h25.9l57.9 182.7 57.1-182.4 24.1-.3 57.7 182.7 57.1-182.7h25l-70.6 210.6H2871.8z"/><path fill="#6d6e71" d="M3087.3 2216.6l-23.5 53.2h-25.6l94.4-210.6h25l94.1 210.6h-26.1l-23.5-53.2H3087.3zM3144.5 2086.6l-46.9 106.8h94.4l-47.5-106.8z"/><path fill="#6d6e71" d="M3461.1 2202.7c-6 .4-10.7.6-14.1.6h-56v66.5h-24v-210.6h80c26.2.0 46.6 6.2 61.2 18.5 14.5 12.3 21.8 29.8 21.8 52.3.0 17.2-4.1 31.7-12.2 43.3-8.1 11.6-19.8 20-35 25l49.2 71.5h-27.3L3461.1 2202.7zM3491.3 2167.6c10.3-8.4 15.5-20.8 15.5-37 0-15.9-5.2-27.9-15.5-36s-25.1-12.2-44.3-12.2h-56v97.8h56C3466.2 2180.2 3481 2176 3491.3 2167.6z"/><path fill="#6d6e71" d="M3688.3 2082.4v69.2h106.2v23.2h-106.2v72.1h122.8v22.9h-146.9v-210.6h142.9v23.2H3688.3z"/><path fill="#6d6e71" d="M4147 2082.4v74h98.4v23.2H4147v90.2h-24.1v-210.6h133.8v23.2H4147z"/><path fill="#6d6e71" d="M4523.3 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C4488.1 2058.6 4506.5 2063.3 4523.3 2072.8zM4425.2 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C4452.6 2081.5 4438.3 2085.2 4425.2 2092.7z"/><path fill="#6d6e71" d="M4854.7 2247.7c-15.7 15.5-37.3 23.3-64.8 23.3-27.7.0-49.4-7.8-65.1-23.3-15.7-15.5-23.6-37-23.6-64.6v-124h24.1v124c0 20.3 5.8 36.1 17.3 47.5 11.6 11.4 27.3 17.1 47.3 17.1 20.1.0 35.8-5.7 47.1-17 11.4-11.3 17-27.2 17-47.7v-124h24.1v124C4878.2 2210.7 4870.4 2232.2 4854.7 2247.7z"/><path fill="#6d6e71" d="M5169.5 2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3 169.3v-169.3h23.8v210.6H5169.5z"/><path fill="#6d6e71" d="M5478.4 2073.1c16.4 9.3 29.4 21.9 38.9 37.9 9.6 16 14.3 33.9 14.3 53.5s-4.8 37.6-14.3 53.6c-9.5 16.1-22.6 28.7-39.3 37.9-16.6 9.2-35.2 13.8-55.5 13.8h-84.3v-210.6h85.2C5443.7 2059.2 5462 2063.8 5478.4 2073.1zM5362.3 2246.9h61.4c15.5.0 29.6-3.5 42.3-10.6s22.8-16.9 30.2-29.5c7.4-12.5 11.1-26.5 11.1-42s-3.8-29.4-11.3-41.9-17.7-22.3-30.6-29.6c-12.8-7.2-27-10.9-42.6-10.9h-60.5v164.5z"/><path fill="#6d6e71" d="M5668.6 2216.6l-23.5 53.2h-25.6l94.4-210.6h25l94.1 210.6h-26l-23.5-53.2H5668.6zM5725.8 2086.6l-46.9 106.8h94.4l-47.5-106.8z"/><path fill="#6d6e71" d="M5991 2082.4v187.4h-24v-187.4h-68.4v-23.2H6060v23.2h-69z"/><path fill="#6d6e71" d="M6175.9 2269.8v-210.6h24.1v210.6H6175.9z"/><path fill="#6d6e71" d="M6493.7 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C6458.5 2058.6 6476.9 2063.3 6493.7 2072.8zM6395.6 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C6423 2081.5 6408.8 2085.2 6395.6 2092.7z"/><path fill="#6d6e71" d="M6826.5 2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3 169.3v-169.3h23.8v210.6H6826.5z"/><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-4516.6152" y1="-2338.7222" x2="-4108.4111" y2="-1861.3982" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#F69923"/><stop offset=".3123" style="stop-color:#F79A23"/><stop offset=".8383" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_1_)" d="M1230.1 13.7c-45.3 26.8-120.6 102.5-210.5 212.3l82.6 155.9c58-82.9 116.9-157.5 176.3-221.2 4.6-5.1 7-7.5 7-7.5-2.3 2.5-4.6 5-7 7.5-19.2 21.2-77.5 89.2-165.5 224.4 84.7-4.2 214.9-21.6 321.1-39.7 31.6-177-31-258-31-258S1323.4-41.4 1230.1 13.7z"/><path fill="none" d="M1090.2 903.1c.6-.1 1.2-.2 1.8-.3l-11.9 1.3c-.7.3-1.4.7-2.1 1C1082.1 904.4 1086.2 903.7 1090.2 903.1z"/><path fill="none" d="M1005.9 1182.3c-6.7 1.5-13.7 2.7-20.7 3.7C992.3 1185 999.2 1183.8 1005.9 1182.3z"/><path fill="none" d="M432.9 1808.8c.9-2.3 1.8-4.7 2.6-7 18.2-48 36.2-94.7 54-140.1 20-51 39.8-100.4 59.3-148.3 20.6-50.4 40.9-99.2 60.9-146.3 21-49.4 41.7-97 62-142.8 16.5-37.3 32.8-73.4 48.9-108.3 5.4-11.7 10.7-23.2 16-34.6 10.5-22.7 21-44.8 31.3-66.5 9.5-20 19-39.6 28.3-58.8 3.1-6.4 6.2-12.8 9.3-19.1.5-1 1-2 1.5-3.1l-10.2 1.1-8-15.9c-.8 1.6-1.6 3.1-2.4 4.6-14.5 28.8-28.9 57.9-43.1 87.2-8.2 16.9-16.4 34-24.6 51-22.6 47.4-44.8 95.2-66.6 143.3-22.1 48.6-43.7 97.5-64.9 146.5-20.8 48.1-41.3 96.2-61.2 144.2-20 48-39.5 95.7-58.5 143.2-19.9 49.5-39.2 98.7-58 147.2-4.2 10.9-8.5 21.9-12.7 32.8-15 39.2-29.7 77.8-44 116l12.7 25.1 11.4-1.2c.4-1.1.8-2.3 1.3-3.4C396.7 1905.4 414.9 1856.4 432.9 1808.8z"/><path fill="none" d="M980 1186.8c.1.0.1.0.1-.1C980.1 1186.8 980.1 1186.8 980 1186.8z"/><path fill="#be202e" d="M952.6 1323c-10.6 1.9-21.4 3.8-32.5 5.7-.1.0-.1.1-.2.1 5.6-.8 11.2-1.7 16.6-2.6C942 1325.2 947.3 1324.1 952.6 1323z"/><path opacity=".35" fill="#be202e" d="M952.6 1323c-10.6 1.9-21.4 3.8-32.5 5.7-.1.0-.1.1-.2.1 5.6-.8 11.2-1.7 16.6-2.6C942 1325.2 947.3 1324.1 952.6 1323z"/><path fill="#be202e" d="M980.3 1186.7C980.2 1186.7 980.2 1186.7 980.3 1186.7c-.1.1-.2.1-.2.1 1.8-.2 3.5-.5 5.2-.8 7-1 13.9-2.2 20.7-3.7C997.5 1183.8 989 1185.2 980.3 1186.7z"/><path opacity=".35" fill="#be202e" d="M980.3 1186.7C980.2 1186.7 980.2 1186.7 980.3 1186.7c-.1.1-.2.1-.2.1 1.8-.2 3.5-.5 5.2-.8 7-1 13.9-2.2 20.7-3.7C997.5 1183.8 989 1185.2 980.3 1186.7z"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-7537.7339" y1="-2391.4075" x2="-4625.4141" y2="-2391.4075" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_2_)" d="M858.6 784.7c25.1-46.9 50.5-92.8 76.2-137.4 26.7-46.4 53.7-91.3 80.9-134.7 1.6-2.6 3.2-5.2 4.8-7.7 27-42.7 54.2-83.7 81.6-122.9L1019.5 226c-6.2 7.6-12.5 15.3-18.8 23.2-23.8 29.7-48.6 61.6-73.9 95.5-28.6 38.2-58 78.9-87.8 121.7-27.6 39.5-55.5 80.9-83.5 123.7-23.8 36.5-47.7 74-71.4 112.5-.9 1.4-1.8 2.9-2.6 4.3L789 919.2c22.8-45.6 46.1-90.5 69.6-134.5z"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-7186.1777" y1="-2099.3059" x2="-5450.7183" y2="-2099.3059" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#282662"/><stop offset=".0954839" style="stop-color:#662E8D"/><stop offset=".7882" style="stop-color:#9F2064"/><stop offset=".9487" style="stop-color:#CD2032"/></linearGradient><path fill="url(#SVGID_3_)" d="M369 1981c-14.2 39.1-28.5 78.9-42.9 119.6-.2.6-.4 1.2-.6 1.8-2 5.7-4.1 11.5-6.1 17.2-9.7 27.4-18 52.1-37.3 108.2 31.7 14.5 57.1 52.5 81.1 95.6-2.6-44.7-21-86.6-56.2-119.1 156.1 7 290.6-32.4 360.1-146.6 6.2-10.2 11.9-20.9 17-32.2-31.6 40.1-70.8 57.1-144.5 53-.2.1-.3.1-.5.2.2-.1.3-.1.5-.2 108.6-48.6 163.1-95.3 211.2-172.6 11.4-18.3 22.5-38.4 33.8-60.6-94.9 97.5-205 125.3-320.9 104.2l-86.9 9.5C374.4 1966.3 371.7 1973.6 369 1981z"/><linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2418.5454" x2="-4461.8428" y2="-2418.5454" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_4_)" d="M409.6 1786.3c18.8-48.5 38.1-97.7 58-147.2 19-47.4 38.5-95.2 58.5-143.2s40.4-96.1 61.2-144.2c21.2-49 42.9-97.8 64.9-146.5 21.8-48.1 44-95.9 66.6-143.3 8.1-17.1 16.3-34.1 24.6-51 14.2-29.3 28.6-58.4 43.1-87.2.8-1.6 1.6-3.1 2.4-4.6L681.4 706.8c-1.8 2.9-3.5 5.8-5.3 8.6-25.1 40.9-50 82.7-74.4 125.4-24.7 43.1-49 87.1-72.7 131.7-20 37.6-39.6 75.6-58.6 113.9-3.8 7.8-7.6 15.5-11.3 23.2-23.4 48.2-44.6 94.8-63.7 139.5-21.7 50.7-40.7 99.2-57.5 145.1-11 30.2-21 59.4-30.1 87.4-7.5 24-14.7 47.9-21.5 71.8-16 56.3-29.9 112.4-41.2 168.3L353 1935.1c14.3-38.1 28.9-76.8 44-116C401.1 1808.2 405.4 1797.3 409.6 1786.3z"/><linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-7161.7642" y1="-2379.1431" x2="-5631.2524" y2="-2379.1431" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#282662"/><stop offset=".0954839" style="stop-color:#662E8D"/><stop offset=".7882" style="stop-color:#9F2064"/><stop offset=".9487" style="stop-color:#CD2032"/></linearGradient><path fill="url(#SVGID_5_)" d="M243.5 1729.4c-13.6 68.2-23.2 136.2-28 203.8-.2 2.4-.4 4.7-.5 7.1-33.7-54-124-106.8-123.8-106.2 64.6 93.7 113.7 186.7 120.9 278-34.6 7.1-82-3.2-136.8-23.3 57.1 52.5 1e2 67 116.7 70.9-52.5 3.3-107.1 39.3-162.1 80.8 80.5-32.8 145.5-45.8 192.1-35.3C148.1 2414.2 74.1 2645 0 2890c22.7-6.7 36.2-21.9 43.9-42.6 13.2-44.4 100.8-335.6 238-718.2 3.9-10.9 7.8-21.8 11.8-32.9 1.1-3 2.2-6.1 3.3-9.2 14.5-40.1 29.5-81.1 45.1-122.9 3.5-9.5 7.1-19 10.7-28.6.1-.2.1-.4.2-.6l-107.9-213.2C244.6 1724.4 244 1726.9 243.5 1729.4z"/><linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2117.1309" x2="-4461.8428" y2="-2117.1309" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_6_)" d="M805.6 937c-3.1 6.3-6.2 12.7-9.3 19.1-9.3 19.2-18.8 38.8-28.3 58.8-10.3 21.7-20.7 43.9-31.3 66.5-5.3 11.4-10.6 22.9-16 34.6-16.1 35-32.4 71.1-48.9 108.3-20.3 45.8-41 93.4-62 142.8-20 47.1-40.3 95.9-60.9 146.3-19.5 47.9-39.3 97.3-59.3 148.3-17.8 45.4-35.9 92.1-54 140.1-.9 2.3-1.8 4.7-2.6 7-18 47.6-36.2 96.6-54.6 146.8-.4 1.1-.8 2.3-1.3 3.4l86.9-9.5c-1.7-.3-3.5-.5-5.2-.9 103.9-13 242.1-90.6 331.4-186.5 41.1-44.2 78.5-96.3 113-157.3 25.7-45.4 49.8-95.8 72.8-151.5 20.1-48.7 39.4-101.4 58-158.6-23.9 12.6-51.2 21.8-81.4 28.2-5.3 1.1-10.7 2.2-16.1 3.1-5.5 1-11 1.8-16.6 2.6.1.0.1-.1.2-.1 96.9-37.3 158-109.2 202.4-197.4-25.5 17.4-66.9 40.1-116.6 51.1-6.7 1.5-13.7 2.7-20.7 3.7-1.7.3-3.5.6-5.2.8.1.0.1.0.1-.1h.1c33.6-14.1 62-29.8 86.6-48.4 5.3-4 10.4-8.1 15.3-12.3 7.5-6.5 14.7-13.3 21.5-20.5 4.4-4.6 8.6-9.3 12.7-14.2 9.6-11.5 18.7-23.9 27.1-37.3 2.6-4.1 5.1-8.3 7.6-12.6 3.2-6.2 6.3-12.3 9.3-18.3 13.5-27.2 24.4-51.5 33-72.8 4.3-10.6 8.1-20.5 11.3-29.7 1.3-3.7 2.5-7.2 3.7-10.6 3.4-10.2 6.2-19.3 8.4-27.3 3.3-12 5.3-21.5 6.4-28.4-3.3 2.6-7.1 5.2-11.3 7.7-29.3 17.5-79.5 33.4-119.9 40.8l79.8-8.8-79.8 8.8c-.6.1-1.2.2-1.8.3-4 .7-8.1 1.3-12.2 2 .7-.3 1.4-.7 2.1-1l-273 29.9C806.6 935 806.1 936 805.6 937z"/><linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-7554.8232" y1="-2132.0981" x2="-4642.5034" y2="-2132.0981" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_7_)" d="M1112.9 385.1c-24.3 37.3-50.8 79.6-79.4 127.5-1.5 2.5-3 5.1-4.5 7.6-24.6 41.5-50.8 87.1-78.3 137-23.8 43.1-48.5 89.3-74.3 139C854 839.5 830.8 885.4 807 934l273-29.9c79.5-36.6 115.1-69.7 149.6-117.6 9.2-13.2 18.4-27 27.5-41.3 28-43.8 55.6-92 80.1-139.9 23.7-46.3 44.7-92.2 60.7-133.5 10.2-26.3 18.4-50.8 24.1-72.3 5-19 8.9-36.9 11.9-54.1C1327.9 363.5 1197.6 380.9 1112.9 385.1z"/><path fill="#be202e" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><path opacity=".35" fill="#be202e" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2027.484" x2="-4461.8433" y2="-2027.484" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_8_)" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><path fill="#be202e" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><path opacity=".35" fill="#be202e" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2037.7417" x2="-4461.8433" y2="-2037.7417" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_9_)" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><path fill="#be202e" d="M980.2 1186.7z"/><path opacity=".35" fill="#be202e" d="M980.2 1186.7z"/><linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-5738.0635" y1="-2039.799" x2="-5094.3457" y2="-2039.799" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_10_)" d="M980.2 1186.7z"/></svg></div></a><ul class=footer-link><li><a class=white href=http://www.apache.org>Foundation</a></li><li><a class=white href=http://www.apache.org/licenses/>License</a></li><li><a class=white href=https://www.apache.org/security/>Security</a></li><li><a class=white href=http://www.apache.org/events/current-event>Events</a></li><li><a class=white href=http://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a class=white href=http://www.apache.org/foundation/thanks.html>Thanks</a></li><li><a class=white href=https://privacy.apache.org/policies/privacy-policy-public.html target=_blank>Privacy</a></li></ul></div></div><div class="col-6 text-white text-center container-center"><p>Copyright &copy; 2024 The Apache Software Foundation, Licensed under the <a class=white href=https://www.apache.org/licenses/LICENSE-2.0>Apache License Version 2.0</a></p><p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p></div><div class=col-1></div></div></div></footer></div><script src=https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js integrity=sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin=anonymous></script>
<script src=/js/tabpane-persist.js></script>
<script src=/js/main.min.aa9f4c5dae6a98b2c46277f4c56f1673a2b000d1756ce4ffae93784cab25e6d5.js integrity="sha256-qp9MXa5qmLLEYnf0xW8Wc6KwANF1bOT/rpN4TKsl5tU=" crossorigin=anonymous></script>
<script src=/js/prism.js></script></body></html>