<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GUIDES on Apache HugeGraph</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/</link><description>Recent content in GUIDES on Apache HugeGraph</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sun, 27 Nov 2022 21:05:55 +0800</lastBuildDate><atom:link href="https://hugegraph.apache.org/versions/1.0/docs/guides/index.xml" rel="self" type="application/rss+xml"/><item><title>HugeGraph Architecture Overview</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/architectural/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/guides/architectural/</guid><description>&lt;h3 id="1-概述"&gt;1 概述&#10;&lt;/h3&gt;&#10;&lt;p&gt;作为一款通用的图数据库产品，HugeGraph需具备图数据的基本功能，如下图所示。HugeGraph包括三个层次的功能，分别是存储层、计算层和用户接口层。 HugeGraph支持OLTP和OLAP两种图计算类型，其中OLTP实现了&lt;a href="https://tinkerpop.apache.org"&gt;Apache TinkerPop3&lt;/a&gt;框架，并支持&lt;a href="https://tinkerpop.apache.org/gremlin.html"&gt;Gremlin&lt;/a&gt;查询语言。 OLAP计算是基于SparkGraphX实现。&lt;/p&gt;&#10;&lt;center&gt;&#10; &lt;img src="https://hugegraph.apache.org/versions/1.0/docs/images/design/architectural-overview.png" alt="image"&gt;&#10;&lt;/center&gt;&#10;&lt;h3 id="2-组件"&gt;2 组件&#10;&lt;/h3&gt;&#10;&lt;p&gt;HugeGraph的主要功能分为HugeCore、ApiServer、HugeGraph-Client、HugeGraph-Loader和HugeGraph-Studio等组件构成，各组件之间的通信关系如下图所示。&lt;/p&gt;&#10;&lt;center&gt;&#10; &lt;img src="https://hugegraph.apache.org/versions/1.0/docs/images/design/architectural-component.png" alt="image"&gt;&#10;&lt;/center&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;HugeCore ：HugeGraph的核心模块，TinkerPop的接口主要在该模块中实现。HugeCore的功能涵盖包括OLTP和OLAP两个部分。&lt;/li&gt;&#10;&lt;li&gt;ApiServer ：提供RESTFul Api接口，对外提供Graph Api、Schema Api和Gremlin Api等接口服务。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph-Client：基于Java客户端驱动程序。HugeGraph-Client是Java版本客户端驱动程序，后续可根据需要提供Python、Go、C++等多语言支持。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph-Loader：数据导入模块。HugeGraph-Loader可以扫描并分析现有数据，自动生成Graph Schema创建语言，通过批量方式快速导入数据。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph-Studio：基于Web的可视化IDE环境。以Notebook方式记录Gremlin查询，可视化展示Graph的关联关系。HugeGraph-Studio也是本系统推荐的工具。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph-Computer：HugeGraph-Computer是一个分布式图处理系统 (OLAP)。&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>HugeGraph Design Concepts</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/desgin-concept/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/guides/desgin-concept/</guid><description>&lt;h3 id="1-property-graph"&gt;1. Property Graph&#10;&lt;/h3&gt;&#10;&lt;p&gt;常见的图数据表示模型有两种，分别是RDF（Resource Description Framework）模型和属性图（Property Graph）模型。&#10;RDF和Property Graph都是最基础、最有名的图表示模式，都能够表示各种图的实体关系建模。&#10;RDF是W3C标准，而Property Graph是工业标准，受到广大图数据库厂商的广泛支持。HugeGraph目前采用Property Graph。&lt;/p&gt;&#10;&lt;p&gt;HugeGraph对应的存储概念模型也是参考Property Graph而设计的，具体示例详见下图：（&lt;em&gt;此图为旧版设计已过时，请忽略它，后续更新&lt;/em&gt;）&lt;/p&gt;&#10;&lt;img class="td-image" src="https://hugegraph.apache.org/versions/1.0/docs/images/design/PropertyGraph.png" alt="image" loading="lazy" decoding="async"&gt;&lt;p&gt;在HugeGraph内部，每个顶点 / 边由唯一的 VertexId / EdgeId 标识，属性存储在对应点 / 边内部。而顶点与顶点之间的关系 / 映射则是通过边来存储的。&lt;/p&gt;&#10;&lt;p&gt;顶点属性值通过边指针方式存储时，如果要更新一个顶点特定的属性值直接通过覆盖写入即可，其弊端是冗余存储了VertexId；&#10;如果要更新关系的属性需要通过read-and-modify方式，先读取所有属性，修改部分属性，然后再写入存储系统，更新效率较低。&#10;从经验来看顶点属性的修改需求较多，而边的属性修改需求较少，例如PageRank和Graph Cluster等计算都需要频繁修改顶点的属性值。&lt;/p&gt;&#10;&lt;h3 id="2-图分区方案"&gt;2. 图分区方案&#10;&lt;/h3&gt;&#10;&lt;p&gt;对于分布式图数据库而言，图的分区存储方式有两种：分别是边分割存储（Edge Cut）和点分割存储（Vertex Cut），如下图所示。&#10;使用Edge Cut方式存储图时，任何一个顶点只会出现在一台机器上，而边可能分布在不同机器上，这种存储方式有可能导致边多次存储。&#10;使用Vertex Cut方式存储图时，任何一条边只会出现在一台机器上，而每相同的一个点可能分布到不同机器上，这种存储方式可能会导致顶点多次存储。&lt;/p&gt;&#10;&lt;img class="td-image" src="https://hugegraph.apache.org/versions/1.0/docs/images/design/GraphCut.png" alt="image" loading="lazy" decoding="async"&gt;&lt;p&gt;采用EdgeCut分区方案可以支持高性能的插入和更新操作，而VertexCut分区方案更适合静态图查询分析，因此EdgeCut适合OLTP图查询，VertexCut更适合OLAP的图查询。&#10;HugeGraph目前采用EdgeCut的分区方案。&lt;/p&gt;&#10;&lt;h3 id="3-vertexid-策略"&gt;3. VertexId 策略&#10;&lt;/h3&gt;&#10;&lt;p&gt;HugeGraph的Vertex支持三种ID策略，在同一个图数据库中不同的VertexLabel可以使用不同的Id策略，目前HugeGraph支持的Id策略分别是：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;自动生成（AUTOMATIC）：使用Snowflake算法自动生成全局唯一Id，Long类型；&lt;/li&gt;&#10;&lt;li&gt;主键（PRIMARY_KEY）：通过VertexLabel+PrimaryKeyValues生成Id，String类型；&lt;/li&gt;&#10;&lt;li&gt;自定义（CUSTOMIZE_STRING|CUSTOMIZE_NUMBER）：用户自定义Id，分为String和Long类型两种，需自己保证Id的唯一性；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;默认的Id策略是AUTOMATIC，如果用户调用primaryKeys()方法并设置了正确的PrimaryKeys，则自动启用PRIMARY_KEY策略。&#10;启用PRIMARY_KEY策略后HugeGraph能根据PrimaryKeys实现数据去重。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;AUTOMATIC ID策略&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ce923456-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="java" data-td-line-count="5"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ce923456-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;vertexLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;useAutomaticId&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addVertex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;marko&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Beijing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;PRIMARY_KEY ID策略&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ce923456-fence-1" data-td-code data-td-code-auto-id&#10; data-td-language="java" data-td-line-count="6"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ce923456-fence-1-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;vertexLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;usePrimaryKeyId&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;primaryKeys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addVertex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;marko&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Beijing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;CUSTOMIZE_STRING ID策略&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ce923456-fence-2" data-td-code data-td-code-auto-id&#10; data-td-language="java" data-td-line-count="5"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ce923456-fence-2-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;vertexLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;useCustomizeStringId&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addVertex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;123456&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;marko&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Beijing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;ol start="4"&gt;&#10;&lt;li&gt;CUSTOMIZE_NUMBER ID策略&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ce923456-fence-3" data-td-code data-td-code-auto-id&#10; data-td-language="java" data-td-line-count="5"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ce923456-fence-3-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;vertexLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;useCustomizeNumberId&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addVertex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;person&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;123456&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;marko&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;city&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Beijing&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;如果用户需要Vertex去重，有三种方案分别是：&lt;/p&gt;</description></item><item><title>HugeGraph Plugin机制及插件扩展流程</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/custom-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/guides/custom-plugin/</guid><description>&lt;h3 id="背景"&gt;背景&#10;&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;HugeGraph不仅开源开放，而且要做到简单易用，一般用户无需更改源码也能轻松增加插件扩展功能。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph支持多种内置存储后端，也允许用户无需更改现有源码的情况下扩展自定义后端。&lt;/li&gt;&#10;&lt;li&gt;HugeGraph支持全文检索，全文检索功能涉及到各语言分词，目前已内置8种中文分词器，也允许用户无需更改现有源码的情况下扩展自定义分词器。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="可扩展维度"&gt;可扩展维度&#10;&lt;/h3&gt;&#10;&lt;p&gt;目前插件方式提供如下几个维度的扩展项：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;后端存储&lt;/li&gt;&#10;&lt;li&gt;序列化器&lt;/li&gt;&#10;&lt;li&gt;自定义配置项&lt;/li&gt;&#10;&lt;li&gt;分词器&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="插件实现机制"&gt;插件实现机制&#10;&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;HugeGraph提供插件接口HugeGraphPlugin，通过Java SPI机制支持插件化&lt;/li&gt;&#10;&lt;li&gt;HugeGraph提供了4个扩展项注册函数：&lt;code&gt;registerOptions()&lt;/code&gt;、&lt;code&gt;registerBackend()&lt;/code&gt;、&lt;code&gt;registerSerializer()&lt;/code&gt;、&lt;code&gt;registerAnalyzer()&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;插件实现者实现相应的Options、Backend、Serializer或Analyzer的接口&lt;/li&gt;&#10;&lt;li&gt;插件实现者实现HugeGraphPlugin接口的&lt;code&gt;register()&lt;/code&gt;方法，在该方法中注册上述第3点所列的具体实现类，并打成jar包&lt;/li&gt;&#10;&lt;li&gt;插件使用者将jar包放在HugeGraph Server安装目录的&lt;code&gt;plugins&lt;/code&gt;目录下，修改相关配置项为插件自定义值，重启即可生效&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="插件实现流程实例"&gt;插件实现流程实例&#10;&lt;/h3&gt;&#10;&lt;h4 id="1-新建一个maven项目"&gt;1 新建一个maven项目&#10;&lt;/h4&gt;&#10;&lt;h5 id="11-项目名称取名hugegraph-plugin-demo"&gt;1.1 项目名称取名：hugegraph-plugin-demo&#10;&lt;/h5&gt;&#10;&lt;h5 id="12-添加hugegraph-core-jar包依赖"&gt;1.2 添加&lt;code&gt;hugegraph-core&lt;/code&gt; Jar包依赖&#10;&lt;/h5&gt;&#10;&lt;p&gt;maven pom.xml详细内容如下：&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-1f4b3330-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="xml" data-td-line-count="22"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-1f4b3330-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;project&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://maven.apache.org/POM/4.0.0&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;xmlns:xsi=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;xsi:schemaLocation=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;modelVersion&amp;gt;&lt;/span&gt;4.0.0&lt;span class="nt"&gt;&amp;lt;/modelVersion&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.baidu.hugegraph&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;hugegraph-plugin-demo&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0.0&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;packaging&amp;gt;&lt;/span&gt;jar&lt;span class="nt"&gt;&amp;lt;/packaging&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hugegraph-plugin-demo&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.baidu.hugegraph&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;hugegraph-core&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${project.version}&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h4 id="2-实现扩展功能"&gt;2 实现扩展功能&#10;&lt;/h4&gt;&#10;&lt;h5 id="21-扩展自定义后端"&gt;2.1 扩展自定义后端&#10;&lt;/h5&gt;&#10;&lt;h6 id="211-实现接口backendstoreprovider"&gt;2.1.1 实现接口BackendStoreProvider&#10;&lt;/h6&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;可实现接口：&lt;code&gt;com.baidu.hugegraph.backend.store.BackendStoreProvider&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;或者继承抽象类：&lt;code&gt;com.baidu.hugegraph.backend.store.AbstractBackendStoreProvider&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;以RocksDB后端RocksDBStoreProvider为例：&lt;/p&gt;</description></item><item><title>Backup Restore</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/backup-restore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/guides/backup-restore/</guid><description>&lt;h2 id="描述"&gt;描述&#10;&lt;/h2&gt;&#10;&lt;p&gt;Backup 和 Restore 是备份图和恢复图的功能。备份和恢复的数据包括元数据（schema）和图数据（vertex 和 edge）。&lt;/p&gt;&#10;&lt;h4 id="backup"&gt;Backup&#10;&lt;/h4&gt;&#10;&lt;p&gt;将 HugeGraph 系统中的一张图的元数据和图数据以 JSON 格式导出。&lt;/p&gt;&#10;&lt;h4 id="restore"&gt;Restore&#10;&lt;/h4&gt;&#10;&lt;p&gt;将 Backup 导出的JSON格式的数据，重新导入到 HugeGraph 系统中的一个图中。&lt;/p&gt;&#10;&lt;p&gt;Restore 有两种模式：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Restoring 模式，将 Backup 导出的元数据和图数据原封不动的恢复到 HugeGraph 系统中。可用于图的备份和恢复，一般目标图是新图（没有元数据和图数据）。比如：&#10;&lt;ul&gt;&#10;&lt;li&gt;系统升级，先备份图，然后升级系统，最后将图恢复到新的系统中&lt;/li&gt;&#10;&lt;li&gt;图迁移，从一个 HugeGraph 系统中，使用 Backup 功能将图导出，然后使用 Restore 功能将图导入另一个 HugeGraph 系统中&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Merging 模式，将 Backup 导出的元数据和图数据导入到另一个已经存在元数据或者图数据的图中，过程中元数据的 ID 可能发生改变，顶点和边的 ID 也会发生相应变化。&#10;&lt;ul&gt;&#10;&lt;li&gt;可用于合并图&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="使用方法"&gt;使用方法&#10;&lt;/h2&gt;&#10;&lt;p&gt;可以使用&lt;a href="https://hugegraph.apache.org/versions/1.0/docs/quickstart/hugegraph-tools"&gt;hugegraph-tools&lt;/a&gt;进行图的备份和恢复。&lt;/p&gt;&#10;&lt;h4 id="backup-1"&gt;Backup&#10;&lt;/h4&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-274df940-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-274df940-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bin/hugegraph backup -t all -d data&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;该命令将 http://127.0.0.1 的 hugegraph 图的全部元数据和图数据备份到data目录下。&lt;/p&gt;</description></item><item><title>FAQ</title><link>https://hugegraph.apache.org/versions/1.0/docs/guides/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugegraph.apache.org/versions/1.0/docs/guides/faq/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;如何选择后端存储? 选 RocksDB 还是 Cassandra 还是 Hbase 还是 Mysql?&lt;/p&gt;&#10;&lt;p&gt;根据你的具体需要来判断, 一般单机或数据量 &amp;lt; 100 亿推荐 RocksDB, 其他推荐使用分布式存储的后端集群&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;启动服务时提示：&lt;code&gt;xxx (core dumped) xxx&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;请检查JDK版本是否为1.8&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;启动服务成功了，但是操作图时有类似于&amp;quot;无法连接到后端或连接未打开&amp;quot;的提示&lt;/p&gt;&#10;&lt;p&gt;第一次启动服务前，需要先使用&lt;code&gt;init-store&lt;/code&gt;初始化后端，后续版本会将提示得更清晰直接。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;所有的后端在使用前都需要执行&lt;code&gt;init-store&lt;/code&gt;吗，序列化的选择可以随意填写么?&lt;/p&gt;&#10;&lt;p&gt;除了&lt;code&gt;memory&lt;/code&gt;不需要，其他后端均需要，如：&lt;code&gt;cassandra&lt;/code&gt;、&lt;code&gt;hbase&lt;/code&gt;和&lt;code&gt;rocksdb&lt;/code&gt;等，序列化需一一对应不可随意填写。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;执行&lt;code&gt;init-store&lt;/code&gt;报错：&lt;code&gt;Exception in thread &amp;quot;main&amp;quot; java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni3226083071221514754.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /tmp/librocksdbjni3226083071221514754.so)&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;RocksDB需要 gcc 4.3.0 (GLIBCXX_3.4.10) 及以上版本&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;执行&lt;code&gt;init-store.sh&lt;/code&gt;时报错：&lt;code&gt;NoHostAvailableException&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;NoHostAvailableException&lt;/code&gt; 是指无法连接到&lt;code&gt;Cassandra&lt;/code&gt;服务，如果确定是要使用&lt;code&gt;cassandra&lt;/code&gt;后端，请先安装并启动这个服务。至于这个提示本身可能不够直白，我们会更新到文档进行说明的。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;bin&lt;/code&gt;目录下包含&lt;code&gt;start-hugegraph.sh&lt;/code&gt;、&lt;code&gt;start-restserver.sh&lt;/code&gt;和&lt;code&gt;start-gremlinserver.sh&lt;/code&gt;三个似乎与启动有关的脚本，到底该使用哪个&lt;/p&gt;&#10;&lt;p&gt;自0.3.3版本以来，已经把 GremlinServer 和 RestServer 合并为 HugeGraphServer 了，使用&lt;code&gt;start-hugegraph.sh&lt;/code&gt;启动即可，后两个在后续版本会被删掉。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;配置了两个图，名字是&lt;code&gt;hugegraph&lt;/code&gt;和&lt;code&gt;hugegraph1&lt;/code&gt;，而启动服务的命令是&lt;code&gt;start-hugegraph.sh&lt;/code&gt;，是只打开了&lt;code&gt;hugegraph&lt;/code&gt;这个图吗&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;start-hugegraph.sh&lt;/code&gt;会打开所有&lt;code&gt;gremlin-server.yaml&lt;/code&gt;的&lt;code&gt;graphs&lt;/code&gt;下的图，这二者并无名字上的直接关系&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;服务启动成功后，使用&lt;code&gt;curl&lt;/code&gt;查询所有顶点时返回乱码&lt;/p&gt;&#10;&lt;p&gt;服务端返回的批量顶点/边是压缩（gzip）过的，可以使用管道重定向至 &lt;code&gt;gunzip&lt;/code&gt; 进行解压（&lt;code&gt;curl http://example | gunzip&lt;/code&gt;），也可以用&lt;code&gt;Firefox&lt;/code&gt;的&lt;code&gt;postman&lt;/code&gt;或者&lt;code&gt;Chrome&lt;/code&gt;浏览器的&lt;code&gt;restlet&lt;/code&gt;插件发请求，会自动解压缩响应数据。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;使用顶点Id通过&lt;code&gt;RESTful API&lt;/code&gt;查询顶点时返回空，但是顶点确实是存在的&lt;/p&gt;&#10;&lt;p&gt;检查顶点Id的类型，如果是字符串类型，&lt;code&gt;API&lt;/code&gt;的&lt;code&gt;url&lt;/code&gt;中的id部分需要加上双引号，数字类型则不用加。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;已经根据需要给顶点Id加上了双引号，但是通过&lt;code&gt;RESTful API&lt;/code&gt;查询顶点时仍然返回空&lt;/p&gt;&#10;&lt;p&gt;检查顶点id中是否包含&lt;code&gt;+&lt;/code&gt;、&lt;code&gt;空格&lt;/code&gt;、&lt;code&gt;/&lt;/code&gt;、&lt;code&gt;?&lt;/code&gt;、&lt;code&gt;%&lt;/code&gt;、&lt;code&gt;&amp;amp;&lt;/code&gt;和&lt;code&gt;=&lt;/code&gt;这些URL的保留字符，如果存在则需要进行编码。下表给出了编码值：&lt;/p&gt;</description></item></channel></rss>