Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
diff --git a/404.html b/404.html index e3c4df8d9d..e8ed75ce98 100644 --- a/404.html +++ b/404.html @@ -1,13 +1,13 @@ - +
-We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
, "code_type":"so"}\'\n'})}),"\n",(0,t.jsx)(r.h3,{id:"424call-stored-procedure",children:"4.2.4.Call stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"An example code for calling a stored procedure is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:">>> r = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10', data='',\n headers={'Content-Type':'application/json'})\n>>> r.status_code\n200\n>>> r.text\n9\n"})}),"\n",(0,t.jsx)(r.h3,{id:"425uninstall-stored-procedures",children:"4.2.5.Uninstall Stored Procedures"}),"\n",(0,t.jsx)(r.p,{children:"Deleting a stored procedure requires only the following call:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10')\n>>> r.status_code\n200\n"})}),"\n",(0,t.jsx)(r.p,{children:"Similar to loading stored procedures, only admin users can delete stored procedures."}),"\n",(0,t.jsx)(r.h3,{id:"426upgrade-stored-procedures",children:"4.2.6.Upgrade Stored Procedures"}),"\n",(0,t.jsx)(r.p,{children:"You can upgrade a stored procedure with the following two steps:"}),"\n",(0,t.jsxs)(r.ol,{children:["\n",(0,t.jsx)(r.li,{children:"Uninstall the existing one."}),"\n",(0,t.jsx)(r.li,{children:"Install the new on."}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"TuGraph carefully manages the concurrency of stored procedure operations. Upgrading stored procedures will not affect concurrent runs of existing ones."}),"\n",(0,t.jsx)(r.h2,{id:"5-procedure-v2-interface",children:"5. Procedure v2 Interface"}),"\n",(0,t.jsx)(r.h3,{id:"51writing-stored-procedures",children:"5.1.Writing stored procedures"}),"\n",(0,t.jsx)(r.p,{children:"Users can write C++ stored procedures by using lgraph API. A simple C++ stored procedure example is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-c++",children:'// peek_some_node_salt.cpp\n#include \n#include "lgraph/lgraph.h"\n#include "lgraph/lgraph_types.h"\n#include "lgraph/lgraph_result.h"\n\n#include "tools/json.hpp"\n\nusing json = nlohmann::json;\nusing namespace lgraph_api;\n\nextern "C" LGAPI bool GetSignature(SigSpec &sig_spec) {\n sig_spec.input_list = {\n {.name = "limit", .index = 0, .type = LGraphType::INTEGER},\n };\n sig_spec.result_list = {\n {.name = "node", .index = 0, .type = LGraphType::NODE},\n {.name = "salt", .index = 1, .type = LGraphType::FLOAT}\n };\n return true;\n}\n\nextern "C" LGAPI bool ProcessInTxn(Transaction &txn,\n const std::string &request,\n Result &response) {\n int64_t limit;\n try {\n json input = json::parse(request);\n limit = input["limit"].get();\n } catch (std::exception &e) {\n response.ResetHeader({\n {"errMsg", LGraphType::STRING}\n });\n response.MutableRecord()->Insert(\n "errMsg",\n FieldData::String(std::string("error parsing json: ") + e.what()));\n return false;\n }\n\n response.ResetHeader({\n {"node", LGraphType::NODE},\n {"salt", LGraphType::FLOAT}\n });\n for (size_t i = 0; i < limit; i++) {\n auto r = response.MutableRecord();\n auto vit = txn.GetVertexIterator(i);\n r->Insert("node", vit);\n r->Insert("salt", FieldData::Float(20.23*float(i)));\n }\n return true;\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"From the code we can see:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:["The stored procedure defines a method ",(0,t.jsx)(r.code,{children:"GetSignature"})," to get the signature. This method returns the signature of the stored procedure, which includes input parameter names and their types, and return parameters and their types. This enables the Cypher query statement to use the signature information to verify whether the input data and the returned data are reasonable when calling the stored procedure."]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:["The entry function is the ",(0,t.jsx)(r.code,{children:"ProcessInTxn"})," function, which has three parameters, which are:"]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"txn"}),": The transaction of the stored procedure, generally speaking, the transaction of the Cypher statement that calls the stored procedure."]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"request"}),": input data, its content is the string of the input parameter type defined in ",(0,t.jsx)(r.code,{children:"GetSignature"})," and the value passed in the Cypher query statement after json serialization. e.g. ",(0,t.jsx)(r.code,{children:"{num_iteration: 10}"})]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"response"}),": output data, in order to ensure compatibility in the Cypher language, users can write the data processed by the stored procedure to ",(0,t.jsx)(r.code,{children:"lgraph_api::Result"}),", and finally use ",(0,t.jsx)(r.code,{children:"lgraph_api::Result::Dump"})," to serialize it into data in json format."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["The return value of the ",(0,t.jsx)(r.code,{children:"ProcessInTxn"})," function is a boolean value. When it returns ",(0,t.jsx)(r.code,{children:"true"}),", it means that the request was successfully completed, otherwise it means that the stored procedure found an error during execution."]}),"\n",(0,t.jsxs)(r.p,{children:["After the C++ stored procedure is written, it needs to be compiled into a dynamic link library. TuGraph provides ",(0,t.jsx)(r.code,{children:"compile.sh"})," script to help users automatically compile stored procedures. The ",(0,t.jsx)(r.code,{children:"compile.sh"})," script has only one parameter, which is the name of the stored procedure, which in the above example is ",(0,t.jsx)(r.code,{children:"custom_pagerank"}),". Compile and call the command line as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"g++ -fno-gnu-unique -fPIC -g --std=c++14 -I/usr/local/include/lgraph -rdynamic -O3 -fopenmp -o custom_pagerank.so custom_pagerank.cpp /usr/local/lib64/liblgraph.so -shared\n"})}),"\n",(0,t.jsx)(r.p,{children:"If the compilation goes well, custom_pagerank.so will be generated, which can then be loaded into the server by the user."}),"\n",(0,t.jsx)(r.h3,{id:"52load-stored-procedure",children:"5.2.Load stored procedure"}),"\n",(0,t.jsxs)(r.p,{children:["Users can load stored procedures through REST API and RPC. Taking the REST API as an example, the C++ code to load ",(0,t.jsx)(r.code,{children:"custom_pagerank.so"})," is as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:"import requests\nimport json\nimport base64\n\ndata = {'name':'custom_pagerank'}\nf = open('./custom_pagerank.so','rb')\ncontent = f.read()\ndata['code_base64'] = base64.b64encode(content).decode()\ndata['description'] = 'Custom Page Rank Procedure'\ndata['read_only'] = true\ndata['code_type'] = 'so'\njs = json.dumps(data)\nr = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin', data=js,\n headers={'Content-Type':'application/json'})\nprint(r.status_code) ## \u6b63\u5e38\u65f6\u8fd4\u56de200\n"})}),"\n",(0,t.jsxs)(r.p,{children:["It should be noted that ",(0,t.jsx)(r.code,{children:"data['code']"})," at this time is a base64-processed string, and the binary code in ",(0,t.jsx)(r.code,{children:"custom_pagerank.so"})," cannot be directly transmitted through JSON. In addition, the loading and deletion of stored procedures can only be operated by users with administrator privileges."]}),"\n",(0,t.jsx)(r.p,{children:"After the stored procedure is loaded, it will be saved in the database, and it will be automatically loaded after the server restarts. Also, if an update to the stored procedure is required, the same REST API is called. It is recommended that users update the corresponding descriptions when updating stored procedures, so as to distinguish stored procedures of different versions."}),"\n",(0,t.jsx)(r.h4,{id:"521list-loaded-stored-procedures",children:"5.2.1.List loaded stored procedures"}),"\n",(0,t.jsx)(r.p,{children:"During the running of the server, the user can obtain the list of stored procedures at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin\')\n>>> r.status_code\n200\n>>> r.text\n\'{"plugins":[{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true}]}\'\n'})}),"\n",(0,t.jsx)(r.h4,{id:"522get-stored-procedure-details",children:"5.2.2.Get stored procedure details"}),"\n",(0,t.jsx)(r.p,{children:"While the server is running, users can obtain the details of a single stored procedure, including codes, at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank\')\n>>> r.status_code\n200\n>>> r.text\n\'{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true, "code_base64":, "code_type":"so"}\'\n'})}),"\n",(0,t.jsx)(r.h4,{id:"523call-stored-procedure",children:"5.2.3.Call stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"An example code for calling a stored procedure is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-Cypher",children:"CALL plugin.cpp.custom_pagerank(10)\nYIELD node, pr WITH node, pr\nMATCH(node)-[r]->(n) RETURN node, r, n, pr\n"})}),"\n",(0,t.jsx)(r.h4,{id:"524delete-stored-procedure",children:"5.2.4.Delete stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"Deleting a stored procedure requires only the following call:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank')\n>>> r.status_code\n200\n"})}),"\n",(0,t.jsx)(r.p,{children:"Similar to loading stored procedures, only admin users can delete stored procedures."}),"\n",(0,t.jsx)(r.h4,{id:"525update-stored-procedure",children:"5.2.5.Update stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"Updating a stored procedure requires the following two steps:"}),"\n",(0,t.jsxs)(r.ol,{children:["\n",(0,t.jsx)(r.li,{children:"Delete the existing stored procedure"}),"\n",(0,t.jsx)(r.li,{children:"Install the new stored procedure"}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"TuGraph carefully manages the concurrency of stored procedure operations, and updating stored procedures will not affect the operation of existing stored procedures."})]})}function u(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>i});var t=n(6540);const s={},o=t.createContext(s);function d(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(o.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/367d0d1d.49b73106.js b/assets/js/367d0d1d.49b73106.js
new file mode 100644
index 0000000000..5c10d2bbdb
--- /dev/null
+++ b/assets/js/367d0d1d.49b73106.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9242],{8346:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>d,metadata:()=>i,toc:()=>l});var t=n(4848),s=n(8453);const d={},o="TuGraph Stored Procedure Guide",i={id:"olap&procedure/procedure/procedure",title:"TuGraph Stored Procedure Guide",description:"This document mainly explains the instructions for using the TuGraph stored procedure.",source:"@site/../docs/en-US/source/9.olap&procedure/1.procedure/1.procedure.md",sourceDirName:"9.olap&procedure/1.procedure",slug:"/olap&procedure/procedure/",permalink:"/tugraph-db/en/olap&procedure/procedure/",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"ISO GQL",permalink:"/tugraph-db/en/query/gql"},next:{title:"Traversal API",permalink:"/tugraph-db/en/olap&procedure/procedure/traversal"}},a={},l=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. Stored Procedure Version",id:"2-stored-procedure-version",level:2},{value:"3. Supported Languages",id:"3-supported-languages",level:2},{value:"4. Procedure v1 Interface",id:"4-procedure-v1-interface",level:2},{value:"4.1.Write stored procedures",id:"41write-stored-procedures",level:2},{value:"4.1.1.Write C++ stored procedure",id:"411write-c-stored-procedure",level:3},{value:"4.1.2 Writing Python stored procedures",id:"412-writing-python-stored-procedures",level:3},{value:"4.2.How to use stored procedures",id:"42how-to-use-stored-procedures",level:2},{value:"4.2.1.Install Stored Procedures",id:"421install-stored-procedures",level:3},{value:"4.2.2.List Stored Procedures",id:"422list-stored-procedures",level:3},{value:"4.2.3.Retrieve Stored Procedures Detail",id:"423retrieve-stored-procedures-detail",level:3},{value:"4.2.4.Call stored procedure",id:"424call-stored-procedure",level:3},{value:"4.2.5.Uninstall Stored Procedures",id:"425uninstall-stored-procedures",level:3},{value:"4.2.6.Upgrade Stored Procedures",id:"426upgrade-stored-procedures",level:3},{value:"5. Procedure v2 Interface",id:"5-procedure-v2-interface",level:2},{value:"5.1.Writing stored procedures",id:"51writing-stored-procedures",level:3},{value:"5.2.Load stored procedure",id:"52load-stored-procedure",level:3},{value:"5.2.1.List loaded stored procedures",id:"521list-loaded-stored-procedures",level:4},{value:"5.2.2.Get stored procedure details",id:"522get-stored-procedure-details",level:4},{value:"5.2.3.Call stored procedure",id:"523call-stored-procedure",level:4},{value:"5.2.4.Delete stored procedure",id:"524delete-stored-procedure",level:4},{value:"5.2.5.Update stored procedure",id:"525update-stored-procedure",level:4}];function c(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"tugraph-stored-procedure-guide",children:"TuGraph Stored Procedure Guide"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsx)(r.p,{children:"This document mainly explains the instructions for using the TuGraph stored procedure."}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,t.jsx)(r.p,{children:"When the query/update logic that users need to express is more complex (such as cannot be described by Cypher or has high performance requirements), compared to calling multiple requests and completing the entire processing flow on the client, the stored procedure provided by TuGraph is a more concise and efficient choice."}),"\n",(0,t.jsx)(r.p,{children:"Similar to traditional databases, the TuGraph stored procedure runs on the server side. Users can encapsulate the processing logic (i.e., multiple operations) into a procedure call, and further improve performance by parallel processing (such as using relevant C++ OLAP interfaces and built-in algorithms) during implementation."}),"\n",(0,t.jsxs)(r.p,{children:["There is a special type of API in the stored procedure for parallel data operations, which we call the Traversal API. Please refer to the ",(0,t.jsx)(r.a,{href:"/tugraph-db/en/olap&procedure/procedure/traversal",children:"documentation"})," for more information."]}),"\n",(0,t.jsx)(r.h2,{id:"2-stored-procedure-version",children:"2. Stored Procedure Version"}),"\n",(0,t.jsx)(r.p,{children:"Currently, TuGraph supports two versions of stored procedures, which are suitable for different scenarios. Version 3.5 only supports v1, which can be directly called through the REST or RPC interface. Starting from version 3.5, v2 is supported, which allows embedding calls in graph query languages \u200b\u200b(such as Cypher). We call it POG (Procedure On Graph query language, APOC)."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{}),(0,t.jsx)(r.th,{children:"Procedure v1"}),(0,t.jsx)(r.th,{children:"Procedure v2"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Applicable Scenarios"}),(0,t.jsx)(r.td,{children:"Extreme performance or complex multi-transaction management scenarios"}),(0,t.jsx)(r.td,{children:"General scenarios, highly integrated with Cypher"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Transaction"}),(0,t.jsx)(r.td,{children:"Created internally in the function, multiple transactions"}),(0,t.jsx)(r.td,{children:"can be freely controlled\tPassed into the external function, single transaction"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Signature (parameter definition)"}),(0,t.jsx)(r.td,{children:"Not required"}),(0,t.jsx)(r.td,{children:"Required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Input and output parameter types"}),(0,t.jsx)(r.td,{children:"Not required to specify"}),(0,t.jsx)(r.td,{children:"Need to specify parameter types"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Cypher Standalone Call"}),(0,t.jsx)(r.td,{children:"Supported"}),(0,t.jsx)(r.td,{children:"Supported"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Cypher Embeded Call"}),(0,t.jsx)(r.td,{children:"Not supported"}),(0,t.jsx)(r.td,{children:"Supported"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Language"}),(0,t.jsx)(r.td,{children:"C++/Python/Rust"}),(0,t.jsx)(r.td,{children:"C++"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Calling mode"}),(0,t.jsx)(r.td,{children:"Directly pass the string, usually in JSON format"}),(0,t.jsx)(r.td,{children:"Through variables in Cypher statements"})]})]})]}),"\n",(0,t.jsx)(r.p,{children:"In TuGraph, stored procedures v1 and v2 are managed separately, and support for create, delete, and query operations is provided. However, it is still not recommended to have the same name for multiple stored procedures."}),"\n",(0,t.jsx)(r.h2,{id:"3-supported-languages",children:"3. Supported Languages"}),"\n",(0,t.jsx)(r.p,{children:"In TuGraph, users can dynamically load, update, and delete stored procedures. TuGraph supports the use of C++, Python, and Rust languages to write stored procedures. Among them, C++ language has the most complete support and the best performance."}),"\n",(0,t.jsx)(r.p,{children:"Note that the stored procedure is the logic compiled and executed on the server side, which is independent of the language support on the client side."}),"\n",(0,t.jsx)(r.h2,{id:"4-procedure-v1-interface",children:"4. Procedure v1 Interface"}),"\n",(0,t.jsx)(r.h2,{id:"41write-stored-procedures",children:"4.1.Write stored procedures"}),"\n",(0,t.jsx)(r.h3,{id:"411write-c-stored-procedure",children:"4.1.1.Write C++ stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"Users can write C stored procedures by using core API or Traversal API. An example of a simple C stored procedure is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:'#include \n#include "lgraph.h"\nusing namespace lgraph_api;\n\nextern "C" LGAPI bool Process(GraphDB& db, const std::string& request, std::string& response) {\n\tauto txn = db.CreateReadTxn();\n\tsize_t n = 0;\n\tfor (auto vit = txn.GetVertexIterator(); vit.IsValid(); vit.Next()) {\n if (vit.GetLabel() == "student") {\n auto age = vit.GetField("age");\n if (!age.is_null() && age.integer() == 10) n++; ## Count all students whose age is 10\n }\n\t}\n output = std::to_string(n);\n return true;\n}\n'})}),"\n",(0,t.jsxs)(r.p,{children:["From the code, we can see the entry of a TuGraph C++ stored procedure is the ",(0,t.jsx)(r.code,{children:"Process"})," function, with three parameters:"]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"db"}),": the TuGraph database instance"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"request"}),": the input data, which can be a binary byte array, or any other format such as JSON string."]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"response"}),": the output data, which can be a string or directly return binary data."]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["The return value of the ",(0,t.jsx)(r.code,{children:"Process"})," function is a boolean value. When it returns ",(0,t.jsx)(r.code,{children:"true"}),", it means that the request is successfully completed, otherwise it means that the stored procedure found an error during execution, and the user can return an error message through ",(0,t.jsx)(r.code,{children:"response"})," to facilitate debugging."]}),"\n",(0,t.jsxs)(r.p,{children:["After the C++ stored procedure is written, it needs to be compiled into a dynamic link library. TuGraph provides ",(0,t.jsx)(r.code,{children:"compile.sh"})," script to help users automatically compile stored procedures. The ",(0,t.jsx)(r.code,{children:"compile.sh"})," script has only one parameter, which is the name of the stored procedure, which is ",(0,t.jsx)(r.code,{children:"age_10"})," in the above example. Compile and call the command line as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"g++ -fno-gnu-unique -fPIC -g --std=c++14 -I/usr/local/include/lgraph -rdynamic -O3 -fopenmp -o age_10.so age_10.cpp /usr/local/lib64/liblgraph.so -shared\n"})}),"\n",(0,t.jsx)(r.p,{children:"If the compilation goes well, age_10.so will be generated, which can then be loaded into the server by the user."}),"\n",(0,t.jsx)(r.h3,{id:"412-writing-python-stored-procedures",children:"4.1.2 Writing Python stored procedures"}),"\n",(0,t.jsx)(r.p,{children:"The following snippet does the same thing as the above C++ stored procedure, but via TuGraph Python API:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:"def Process(db, input):\n txn = db.CreateReadTxn()\n it = txn.GetVertexIterator()\n n = 0\n while it.IsValid():\n if it.GetLabel() == 'student' and it['age'] and it['age'] == 10:\n n = n + 1\n it.Next()\n return (True, str(nv))\n"})}),"\n",(0,t.jsxs)(r.p,{children:["The Python stored procedure returns a tuple, the first element of which is a Boolean value indicating whether the stored procedure was successfully executed; the second element is a ",(0,t.jsx)(r.code,{children:"str"}),", which contains the result to be returned."]}),"\n",(0,t.jsx)(r.p,{children:"Python stored procedures do not need to be compiled and can be loaded directly."}),"\n",(0,t.jsx)(r.h2,{id:"42how-to-use-stored-procedures",children:"4.2.How to use stored procedures"}),"\n",(0,t.jsx)(r.h3,{id:"421install-stored-procedures",children:"4.2.1.Install Stored Procedures"}),"\n",(0,t.jsxs)(r.p,{children:["Users can load stored procedures through REST API and RPC. Taking the REST API as an example, the C++ code to load ",(0,t.jsx)(r.code,{children:"age_10.so"})," is as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:"import requests\nimport json\nimport base64\n\ndata = {'name':'age_10'}\nf = open('./age_10.so','rb')\ncontent = f.read()\ndata['code_base64'] = base64.b64encode(content).decode()\ndata['description'] = 'Custom Page Rank Procedure'\ndata['read_only'] = true\ndata['code_type'] = 'so'\njs = json.dumps(data)\nr = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin', data=js,\n headers={'Content-Type':'application/json'})\nprint(r.status_code) ## \u6b63\u5e38\u65f6\u8fd4\u56de200\n"})}),"\n",(0,t.jsxs)(r.p,{children:["It should be noted that ",(0,t.jsx)(r.code,{children:"data['code']"})," at this time is a base64-processed string, and the binary code in ",(0,t.jsx)(r.code,{children:"age_10.so"})," cannot be directly transmitted through JSON. In addition, the loading and deletion of stored procedures can only be operated by users with administrator privileges."]}),"\n",(0,t.jsx)(r.p,{children:"After the stored procedure is loaded, it will be saved in the database, and it will be automatically loaded after the server restarts. Also, if an update to the stored procedure is required, the same REST API is called. It is recommended that users update the corresponding descriptions when updating stored procedures, so as to distinguish stored procedures of different versions."}),"\n",(0,t.jsx)(r.h3,{id:"422list-stored-procedures",children:"4.2.2.List Stored Procedures"}),"\n",(0,t.jsx)(r.p,{children:"During the running of the server, the user can obtain the list of stored procedures at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin\')\n>>> r.status_code\n200\n>>> r.text\n\'{"plugins":[{"description":"Custom Page Rank Procedure", "name":"age_10", "read_only":true}]}\'\n'})}),"\n",(0,t.jsx)(r.h3,{id:"423retrieve-stored-procedures-detail",children:"4.2.3.Retrieve Stored Procedures Detail"}),"\n",(0,t.jsx)(r.p,{children:"While the server is running, users can obtain the details of a single stored procedure, including codes, at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin/age_10\')\n>>> r.status_code\n200\n>>> r.text\n\'{"description":"Custom Page Rank Procedure", "name":"age_10", "read_only":true, "code_base64":, "code_type":"so"}\'\n'})}),"\n",(0,t.jsx)(r.h3,{id:"424call-stored-procedure",children:"4.2.4.Call stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"An example code for calling a stored procedure is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:">>> r = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10', data='',\n headers={'Content-Type':'application/json'})\n>>> r.status_code\n200\n>>> r.text\n9\n"})}),"\n",(0,t.jsx)(r.h3,{id:"425uninstall-stored-procedures",children:"4.2.5.Uninstall Stored Procedures"}),"\n",(0,t.jsx)(r.p,{children:"Deleting a stored procedure requires only the following call:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10')\n>>> r.status_code\n200\n"})}),"\n",(0,t.jsx)(r.p,{children:"Similar to loading stored procedures, only admin users can delete stored procedures."}),"\n",(0,t.jsx)(r.h3,{id:"426upgrade-stored-procedures",children:"4.2.6.Upgrade Stored Procedures"}),"\n",(0,t.jsx)(r.p,{children:"You can upgrade a stored procedure with the following two steps:"}),"\n",(0,t.jsxs)(r.ol,{children:["\n",(0,t.jsx)(r.li,{children:"Uninstall the existing one."}),"\n",(0,t.jsx)(r.li,{children:"Install the new on."}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"TuGraph carefully manages the concurrency of stored procedure operations. Upgrading stored procedures will not affect concurrent runs of existing ones."}),"\n",(0,t.jsx)(r.h2,{id:"5-procedure-v2-interface",children:"5. Procedure v2 Interface"}),"\n",(0,t.jsx)(r.h3,{id:"51writing-stored-procedures",children:"5.1.Writing stored procedures"}),"\n",(0,t.jsx)(r.p,{children:"Users can write C++ stored procedures by using lgraph API. A simple C++ stored procedure example is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-c++",children:'// peek_some_node_salt.cpp\n#include \n#include "lgraph/lgraph.h"\n#include "lgraph/lgraph_types.h"\n#include "lgraph/lgraph_result.h"\n\n#include "tools/json.hpp"\n\nusing json = nlohmann::json;\nusing namespace lgraph_api;\n\nextern "C" LGAPI bool GetSignature(SigSpec &sig_spec) {\n sig_spec.input_list = {\n {.name = "limit", .index = 0, .type = LGraphType::INTEGER},\n };\n sig_spec.result_list = {\n {.name = "node", .index = 0, .type = LGraphType::NODE},\n {.name = "salt", .index = 1, .type = LGraphType::FLOAT}\n };\n return true;\n}\n\nextern "C" LGAPI bool ProcessInTxn(Transaction &txn,\n const std::string &request,\n Result &response) {\n int64_t limit;\n try {\n json input = json::parse(request);\n limit = input["limit"].get();\n } catch (std::exception &e) {\n response.ResetHeader({\n {"errMsg", LGraphType::STRING}\n });\n response.MutableRecord()->Insert(\n "errMsg",\n FieldData::String(std::string("error parsing json: ") + e.what()));\n return false;\n }\n\n response.ResetHeader({\n {"node", LGraphType::NODE},\n {"salt", LGraphType::FLOAT}\n });\n for (size_t i = 0; i < limit; i++) {\n auto r = response.MutableRecord();\n auto vit = txn.GetVertexIterator(i);\n r->Insert("node", vit);\n r->Insert("salt", FieldData::Float(20.23*float(i)));\n }\n return true;\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"From the code we can see:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:["The stored procedure defines a method ",(0,t.jsx)(r.code,{children:"GetSignature"})," to get the signature. This method returns the signature of the stored procedure, which includes input parameter names and their types, and return parameters and their types. This enables the Cypher query statement to use the signature information to verify whether the input data and the returned data are reasonable when calling the stored procedure."]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:["The entry function is the ",(0,t.jsx)(r.code,{children:"ProcessInTxn"})," function, which has three parameters, which are:"]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"txn"}),": The transaction of the stored procedure, generally speaking, the transaction of the Cypher statement that calls the stored procedure."]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"request"}),": input data, its content is the string of the input parameter type defined in ",(0,t.jsx)(r.code,{children:"GetSignature"})," and the value passed in the Cypher query statement after json serialization. e.g. ",(0,t.jsx)(r.code,{children:"{num_iteration: 10}"})]}),"\n"]}),"\n",(0,t.jsxs)(r.li,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"response"}),": output data, in order to ensure compatibility in the Cypher language, users can write the data processed by the stored procedure to ",(0,t.jsx)(r.code,{children:"lgraph_api::Result"}),", and finally use ",(0,t.jsx)(r.code,{children:"lgraph_api::Result::Dump"})," to serialize it into data in json format."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["The return value of the ",(0,t.jsx)(r.code,{children:"ProcessInTxn"})," function is a boolean value. When it returns ",(0,t.jsx)(r.code,{children:"true"}),", it means that the request was successfully completed, otherwise it means that the stored procedure found an error during execution."]}),"\n",(0,t.jsxs)(r.p,{children:["After the C++ stored procedure is written, it needs to be compiled into a dynamic link library. TuGraph provides ",(0,t.jsx)(r.code,{children:"compile.sh"})," script to help users automatically compile stored procedures. The ",(0,t.jsx)(r.code,{children:"compile.sh"})," script has only one parameter, which is the name of the stored procedure, which in the above example is ",(0,t.jsx)(r.code,{children:"custom_pagerank"}),". Compile and call the command line as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"g++ -fno-gnu-unique -fPIC -g --std=c++14 -I/usr/local/include/lgraph -rdynamic -O3 -fopenmp -o custom_pagerank.so custom_pagerank.cpp /usr/local/lib64/liblgraph.so -shared\n"})}),"\n",(0,t.jsx)(r.p,{children:"If the compilation goes well, custom_pagerank.so will be generated, which can then be loaded into the server by the user."}),"\n",(0,t.jsx)(r.h3,{id:"52load-stored-procedure",children:"5.2.Load stored procedure"}),"\n",(0,t.jsxs)(r.p,{children:["Users can load stored procedures through REST API and RPC. Taking the REST API as an example, the C++ code to load ",(0,t.jsx)(r.code,{children:"custom_pagerank.so"})," is as follows:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:"import requests\nimport json\nimport base64\n\ndata = {'name':'custom_pagerank'}\nf = open('./custom_pagerank.so','rb')\ncontent = f.read()\ndata['code_base64'] = base64.b64encode(content).decode()\ndata['description'] = 'Custom Page Rank Procedure'\ndata['read_only'] = true\ndata['code_type'] = 'so'\njs = json.dumps(data)\nr = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin', data=js,\n headers={'Content-Type':'application/json'})\nprint(r.status_code) ## \u6b63\u5e38\u65f6\u8fd4\u56de200\n"})}),"\n",(0,t.jsxs)(r.p,{children:["It should be noted that ",(0,t.jsx)(r.code,{children:"data['code']"})," at this time is a base64-processed string, and the binary code in ",(0,t.jsx)(r.code,{children:"custom_pagerank.so"})," cannot be directly transmitted through JSON. In addition, the loading and deletion of stored procedures can only be operated by users with administrator privileges."]}),"\n",(0,t.jsx)(r.p,{children:"After the stored procedure is loaded, it will be saved in the database, and it will be automatically loaded after the server restarts. Also, if an update to the stored procedure is required, the same REST API is called. It is recommended that users update the corresponding descriptions when updating stored procedures, so as to distinguish stored procedures of different versions."}),"\n",(0,t.jsx)(r.h4,{id:"521list-loaded-stored-procedures",children:"5.2.1.List loaded stored procedures"}),"\n",(0,t.jsx)(r.p,{children:"During the running of the server, the user can obtain the list of stored procedures at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin\')\n>>> r.status_code\n200\n>>> r.text\n\'{"plugins":[{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true}]}\'\n'})}),"\n",(0,t.jsx)(r.h4,{id:"522get-stored-procedure-details",children:"5.2.2.Get stored procedure details"}),"\n",(0,t.jsx)(r.p,{children:"While the server is running, users can obtain the details of a single stored procedure, including codes, at any time. Its call is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank\')\n>>> r.status_code\n200\n>>> r.text\n\'{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true, "code_base64":, "code_type":"so"}\'\n'})}),"\n",(0,t.jsx)(r.h4,{id:"523call-stored-procedure",children:"5.2.3.Call stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"An example code for calling a stored procedure is as follows:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-Cypher",children:"CALL plugin.cpp.custom_pagerank(10)\nYIELD node, pr WITH node, pr\nMATCH(node)-[r]->(n) RETURN node, r, n, pr\n"})}),"\n",(0,t.jsx)(r.h4,{id:"524delete-stored-procedure",children:"5.2.4.Delete stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"Deleting a stored procedure requires only the following call:"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank')\n>>> r.status_code\n200\n"})}),"\n",(0,t.jsx)(r.p,{children:"Similar to loading stored procedures, only admin users can delete stored procedures."}),"\n",(0,t.jsx)(r.h4,{id:"525update-stored-procedure",children:"5.2.5.Update stored procedure"}),"\n",(0,t.jsx)(r.p,{children:"Updating a stored procedure requires the following two steps:"}),"\n",(0,t.jsxs)(r.ol,{children:["\n",(0,t.jsx)(r.li,{children:"Delete the existing stored procedure"}),"\n",(0,t.jsx)(r.li,{children:"Install the new stored procedure"}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"TuGraph carefully manages the concurrency of stored procedure operations, and updating stored procedures will not affect the operation of existing stored procedures."})]})}function p(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>i});var t=n(6540);const s={},d=t.createContext(s);function o(e){const r=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(d.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/36a5b4e6.442f51e3.js b/assets/js/36a5b4e6.442f51e3.js
deleted file mode 100644
index 30159a2327..0000000000
--- a/assets/js/36a5b4e6.442f51e3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5017],{368:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=n(4848),o=n(8453);const r={},s="Token Usage Guide",a={id:"en-US/source/permission/token",title:"Token Usage Guide",description:"1. Introduction to Token",source:"@site/../docs/en-US/source/10.permission/2.token.md",sourceDirName:"en-US/source/10.permission",slug:"/en-US/source/permission/token",permalink:"/tugraph-db/en-US/source/permission/token",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Privilege",permalink:"/tugraph-db/en-US/source/permission/privilege"},next:{title:"Forgot Admin Password",permalink:"/tugraph-db/en-US/source/permission/reset_admin_password"}},d={},l=[{value:"1. Introduction to Token",id:"1-introduction-to-token",level:2},{value:"2. Token Expiration",id:"2-token-expiration",level:2},{value:"2.1. Browser Token Interaction Logic",id:"21-browser-token-interaction-logic",level:3},{value:"2.3. Token Expiration Refresh Mechanism",id:"23-token-expiration-refresh-mechanism",level:3},{value:"2.4. Token Expiration Modification",id:"24-token-expiration-modification",level:3},{value:"3. Introduction to Token-Related Requests Sent by Clients",id:"3-introduction-to-token-related-requests-sent-by-clients",level:2},{value:"3.1. REST",id:"31-rest",level:3},{value:"3.2. RPC",id:"32-rpc",level:3},{value:"4. Token upper limit",id:"4-token-upper-limit",level:2}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"token-usage-guide",children:"Token Usage Guide"})}),"\n",(0,i.jsx)(t.h2,{id:"1-introduction-to-token",children:"1. Introduction to Token"}),"\n",(0,i.jsx)(t.p,{children:"JWT (JSON Web Token) is an open standard used for authentication and authorization. It is based on the JSON (JavaScript Object Notation) format and is designed for securely transmitting claim information between network applications."}),"\n",(0,i.jsx)(t.p,{children:"JWT consists of three parts: the header, payload, and signature. The header contains the type of JWT and the signature algorithm used, the payload contains the information to be transmitted, and the signature is used to verify the integrity and authenticity of the JWT."}),"\n",(0,i.jsx)(t.p,{children:"In TuGraph, JWT is used to implement a stateless authentication and authorization mechanism. After a user logs in successfully, the server generates a JWT and returns it to the client. The client passes this JWT as an identity credential in subsequent requests to the server. Upon receiving the JWT, the server verifies the signature and parses the information in the payload to determine the user's identity and permissions, and decides whether to allow the execution of the request."}),"\n",(0,i.jsx)(t.h2,{id:"2-token-expiration",children:"2. Token Expiration"}),"\n",(0,i.jsx)(t.h3,{id:"21-browser-token-interaction-logic",children:"2.1. Browser Token Interaction Logic"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"The user opens the browser, enters the username and password, and clicks login."}),"\n",(0,i.jsx)(t.li,{children:"The frontend calls the login interface and inputs the account and password to the backend."}),"\n",(0,i.jsx)(t.li,{children:"After receiving the account and password, the backend verifies them and returns a Token."}),"\n",(0,i.jsx)(t.li,{children:"The frontend stores the Token in the browser cache, and all subsequent requests must carry this Token."}),"\n",(0,i.jsx)(t.li,{children:"If the frontend actively clicks logout or closes the page, it should actively call the logout interface and pass the Token to the backend."}),"\n",(0,i.jsx)(t.li,{children:'After receiving the Token, the backend invalidates it, returns a status code 200, and "logout successful". After receiving the message, the frontend clears the Token in the browser memory, and returns to the login page.'}),"\n",(0,i.jsx)(t.li,{children:"The Token expires (initially set to 24 hours), and the user needs to log in again."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"23-token-expiration-refresh-mechanism",children:"2.3. Token Expiration Refresh Mechanism"}),"\n",(0,i.jsx)(t.p,{children:"Token expiration has a refresh mechanism that is turned off by default. If turned on, the security of the Token will be higher, and there will be two timestamps."}),"\n",(0,i.jsxs)(t.p,{children:["The first timestamp ",(0,i.jsx)(t.code,{children:"refresh_time"})," is used to determine whether the Token has expired (default 24 hours): after expiration, the refresh interface can be called to obtain a new Token, which can be set to a shorter time, such as 1 hour."]}),"\n",(0,i.jsxs)(t.p,{children:["The second timestamp ",(0,i.jsx)(t.code,{children:"expire_time"})," is the forced expiration timestamp (default 24 hours): after expiration, the user must log in again."]}),"\n",(0,i.jsx)(t.h3,{id:"24-token-expiration-modification",children:"2.4. Token Expiration Modification"}),"\n",(0,i.jsx)(t.p,{children:"To facilitate developers to develop on their own, TuGraph provides two ways to modify the expiration time, both of which require admin privileges."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Set through the interface call. The interfaces involved in modifying the expiration time are ",(0,i.jsx)(t.code,{children:"update_token_time"})," and ",(0,i.jsx)(t.code,{children:"get_token_time"})," for querying the expiration time. For details, please refer to the ",(0,i.jsx)(t.a,{href:"/tugraph-db/en-US/source/client-tools/restful-api-legacy",children:"REST interface document"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Set through startup parameters. When the server-side is started, adding the parameter ",(0,i.jsx)(t.code,{children:"-unlimited_token 1"})," can set the Token to be unlimited. Please refer to the ",(0,i.jsx)(t.a,{href:"/tugraph-db/en-US/source/installation&running/tugraph-running",children:"service running document"})," for details."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"3-introduction-to-token-related-requests-sent-by-clients",children:"3. Introduction to Token-Related Requests Sent by Clients"}),"\n",(0,i.jsx)(t.p,{children:"The client handles two types of protocol-related requests: REST and RPC."}),"\n",(0,i.jsx)(t.h3,{id:"31-rest",children:"3.1. REST"}),"\n",(0,i.jsx)(t.p,{children:"If the client uses the REST protocol (including the browser), because it is a short connection, Token needs to be carried in every request, and a new Token needs to be obtained after it expires."}),"\n",(0,i.jsx)(t.p,{children:"For self-developed clients, if the REST protocol is used, Token logic needs to be considered."}),"\n",(0,i.jsx)(t.h3,{id:"32-rpc",children:"3.2. RPC"}),"\n",(0,i.jsx)(t.p,{children:"If the client uses the RPC protocol (including the official C++/Java/Python), it uses a long connection to maintain, and no Token operation is involved after login."}),"\n",(0,i.jsx)(t.h2,{id:"4-token-upper-limit",children:"4. Token upper limit"}),"\n",(0,i.jsx)(t.p,{children:"The upper limit of Token refers to the maximum number of Tokens that a user can own at the same time. To prevent unlimited logins, the upper limit of Token is 10000 by default. Since the token generation logic is strongly related to time, a token will be generated for storage every time you log in. The validity period of the token is 24 hours by default. Therefore, it is recommended to log out the unused token in time after login."})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/36a5b4e6.7eed2b49.js b/assets/js/36a5b4e6.7eed2b49.js
new file mode 100644
index 0000000000..a72fb85f0e
--- /dev/null
+++ b/assets/js/36a5b4e6.7eed2b49.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5017],{5478:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=n(4848),o=n(8453);const r={},s="Token Usage Guide",a={id:"permission/token",title:"Token Usage Guide",description:"1. Introduction to Token",source:"@site/../docs/en-US/source/10.permission/2.token.md",sourceDirName:"10.permission",slug:"/permission/token",permalink:"/tugraph-db/en/permission/token",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Privilege",permalink:"/tugraph-db/en/permission/privilege"},next:{title:"Forgot Admin Password",permalink:"/tugraph-db/en/permission/reset_admin_password"}},d={},l=[{value:"1. Introduction to Token",id:"1-introduction-to-token",level:2},{value:"2. Token Expiration",id:"2-token-expiration",level:2},{value:"2.1. Browser Token Interaction Logic",id:"21-browser-token-interaction-logic",level:3},{value:"2.3. Token Expiration Refresh Mechanism",id:"23-token-expiration-refresh-mechanism",level:3},{value:"2.4. Token Expiration Modification",id:"24-token-expiration-modification",level:3},{value:"3. Introduction to Token-Related Requests Sent by Clients",id:"3-introduction-to-token-related-requests-sent-by-clients",level:2},{value:"3.1. REST",id:"31-rest",level:3},{value:"3.2. RPC",id:"32-rpc",level:3},{value:"4. Token upper limit",id:"4-token-upper-limit",level:2}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"token-usage-guide",children:"Token Usage Guide"})}),"\n",(0,i.jsx)(t.h2,{id:"1-introduction-to-token",children:"1. Introduction to Token"}),"\n",(0,i.jsx)(t.p,{children:"JWT (JSON Web Token) is an open standard used for authentication and authorization. It is based on the JSON (JavaScript Object Notation) format and is designed for securely transmitting claim information between network applications."}),"\n",(0,i.jsx)(t.p,{children:"JWT consists of three parts: the header, payload, and signature. The header contains the type of JWT and the signature algorithm used, the payload contains the information to be transmitted, and the signature is used to verify the integrity and authenticity of the JWT."}),"\n",(0,i.jsx)(t.p,{children:"In TuGraph, JWT is used to implement a stateless authentication and authorization mechanism. After a user logs in successfully, the server generates a JWT and returns it to the client. The client passes this JWT as an identity credential in subsequent requests to the server. Upon receiving the JWT, the server verifies the signature and parses the information in the payload to determine the user's identity and permissions, and decides whether to allow the execution of the request."}),"\n",(0,i.jsx)(t.h2,{id:"2-token-expiration",children:"2. Token Expiration"}),"\n",(0,i.jsx)(t.h3,{id:"21-browser-token-interaction-logic",children:"2.1. Browser Token Interaction Logic"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"The user opens the browser, enters the username and password, and clicks login."}),"\n",(0,i.jsx)(t.li,{children:"The frontend calls the login interface and inputs the account and password to the backend."}),"\n",(0,i.jsx)(t.li,{children:"After receiving the account and password, the backend verifies them and returns a Token."}),"\n",(0,i.jsx)(t.li,{children:"The frontend stores the Token in the browser cache, and all subsequent requests must carry this Token."}),"\n",(0,i.jsx)(t.li,{children:"If the frontend actively clicks logout or closes the page, it should actively call the logout interface and pass the Token to the backend."}),"\n",(0,i.jsx)(t.li,{children:'After receiving the Token, the backend invalidates it, returns a status code 200, and "logout successful". After receiving the message, the frontend clears the Token in the browser memory, and returns to the login page.'}),"\n",(0,i.jsx)(t.li,{children:"The Token expires (initially set to 24 hours), and the user needs to log in again."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"23-token-expiration-refresh-mechanism",children:"2.3. Token Expiration Refresh Mechanism"}),"\n",(0,i.jsx)(t.p,{children:"Token expiration has a refresh mechanism that is turned off by default. If turned on, the security of the Token will be higher, and there will be two timestamps."}),"\n",(0,i.jsxs)(t.p,{children:["The first timestamp ",(0,i.jsx)(t.code,{children:"refresh_time"})," is used to determine whether the Token has expired (default 24 hours): after expiration, the refresh interface can be called to obtain a new Token, which can be set to a shorter time, such as 1 hour."]}),"\n",(0,i.jsxs)(t.p,{children:["The second timestamp ",(0,i.jsx)(t.code,{children:"expire_time"})," is the forced expiration timestamp (default 24 hours): after expiration, the user must log in again."]}),"\n",(0,i.jsx)(t.h3,{id:"24-token-expiration-modification",children:"2.4. Token Expiration Modification"}),"\n",(0,i.jsx)(t.p,{children:"To facilitate developers to develop on their own, TuGraph provides two ways to modify the expiration time, both of which require admin privileges."}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Set through the interface call. The interfaces involved in modifying the expiration time are ",(0,i.jsx)(t.code,{children:"update_token_time"})," and ",(0,i.jsx)(t.code,{children:"get_token_time"})," for querying the expiration time. For details, please refer to the ",(0,i.jsx)(t.a,{href:"/tugraph-db/en/client-tools/restful-api-legacy",children:"REST interface document"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:["Set through startup parameters. When the server-side is started, adding the parameter ",(0,i.jsx)(t.code,{children:"-unlimited_token 1"})," can set the Token to be unlimited. Please refer to the ",(0,i.jsx)(t.a,{href:"/tugraph-db/en/installation&running/tugraph-running",children:"service running document"})," for details."]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"3-introduction-to-token-related-requests-sent-by-clients",children:"3. Introduction to Token-Related Requests Sent by Clients"}),"\n",(0,i.jsx)(t.p,{children:"The client handles two types of protocol-related requests: REST and RPC."}),"\n",(0,i.jsx)(t.h3,{id:"31-rest",children:"3.1. REST"}),"\n",(0,i.jsx)(t.p,{children:"If the client uses the REST protocol (including the browser), because it is a short connection, Token needs to be carried in every request, and a new Token needs to be obtained after it expires."}),"\n",(0,i.jsx)(t.p,{children:"For self-developed clients, if the REST protocol is used, Token logic needs to be considered."}),"\n",(0,i.jsx)(t.h3,{id:"32-rpc",children:"3.2. RPC"}),"\n",(0,i.jsx)(t.p,{children:"If the client uses the RPC protocol (including the official C++/Java/Python), it uses a long connection to maintain, and no Token operation is involved after login."}),"\n",(0,i.jsx)(t.h2,{id:"4-token-upper-limit",children:"4. Token upper limit"}),"\n",(0,i.jsx)(t.p,{children:"The upper limit of Token refers to the maximum number of Tokens that a user can own at the same time. To prevent unlimited logins, the upper limit of Token is 10000 by default. Since the token generation logic is strongly related to time, a token will be generated for storage every time you log in. The validity period of the token is 24 hours by default. Therefore, it is recommended to log out the unused token in time after login."})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/36b9e001.5ab6650e.js b/assets/js/36b9e001.5ab6650e.js
new file mode 100644
index 0000000000..8b02ecf04c
--- /dev/null
+++ b/assets/js/36b9e001.5ab6650e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3213],{8528:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var r=n(4848),s=n(8453);const l={},o="TuGraph Python SDK",i={id:"client-tools/python-client",title:"TuGraph Python SDK",description:"This document is the usage instruction of TuGraph Python SDK",source:"@site/../docs/en-US/source/7.client-tools/1.python-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/python-client",permalink:"/tugraph-db/en/client-tools/python-client",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Explorer",permalink:"/tugraph-db/en/utility-tools/tugraph-explorer"},next:{title:"TuGraph C++ SDK",permalink:"/tugraph-db/en/client-tools/cpp-client"}},c={},d=[{value:"1.Overview",id:"1overview",level:2},{value:"2.RESTful Client",id:"2restful-client",level:2},{value:"2.1. Install Client",id:"21-install-client",level:3},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3.Call stored procedure",id:"23call-stored-procedure",level:3},{value:"3.RPC Client",id:"3rpc-client",level:2},{value:"3.1.Instantiate the client object",id:"31instantiate-the-client-object",level:3},{value:"3.1.1.Instantiate a single node client object",id:"311instantiate-a-single-node-client-object",level:4},{value:"3.1.2.Instantiate the HA cluster to directly connect to the client object",id:"312instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"3.1.3.Instantiate the HA cluster to indirectly connect to the client object",id:"313instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"3.2.Call cypher",id:"32call-cypher",level:3},{value:"3.3.Send cypher request to leader",id:"33send-cypher-request-to-leader",level:3},{value:"3.4.Call GQL",id:"34call-gql",level:3},{value:"3.5.Send GQL request to leader",id:"35send-gql-request-to-leader",level:3},{value:"3.6.Calling stored procedures",id:"36calling-stored-procedures",level:3},{value:"3.7.Call the stored procedure to the leader",id:"37call-the-stored-procedure-to-the-leader",level:3},{value:"3.8.Load stored procedure",id:"38load-stored-procedure",level:3},{value:"3.9.List stored procedures",id:"39list-stored-procedures",level:3},{value:"3.10.Delete stored procedures",id:"310delete-stored-procedures",level:3},{value:"3.11.Import schema from byte stream",id:"311import-schema-from-byte-stream",level:3},{value:"3.12.Import edge data from byte stream",id:"312import-edge-data-from-byte-stream",level:3},{value:"3.13.Import schema from file",id:"313import-schema-from-file",level:3},{value:"3.14.Import point and edge data from file",id:"314import-point-and-edge-data-from-file",level:3}];function a(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tugraph-python-sdk",children:"TuGraph Python SDK"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document is the usage instruction of TuGraph Python SDK"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1overview",children:"1.Overview"}),"\n",(0,r.jsx)(t.p,{children:"There are two kinds of Python's TuGraph Client. One is the RESTful Client, which uses the HTTP method to send requests to the server. The other is the RPC Client, which uses the RPC method to call the server remote service. Both have their own advantages and disadvantages. The RESTful client is simple to use. You can find the source code file of the Client in the src/client/python/TuGraphClient directory of the project. You can install it directly into the user environment and use it. However, it supports fewer functions and its performance is not high. RPC Client supports both stand-alone servers and high-availability clusters and load balancing. It has many interfaces and powerful functions. However, the usage is more complicated. Users need to compile the TuGraph project themselves to obtain liblgraph_client_python.so, or directly find the dependent library in the /usr/local/lib64 directory when using the runtime image, and introduce it into the python project for normal use. Next, the usage of these two Clients will be introduced in detail."}),"\n",(0,r.jsx)(t.h2,{id:"2restful-client",children:"2.RESTful Client"}),"\n",(0,r.jsx)(t.h3,{id:"21-install-client",children:"2.1. Install Client"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph's Python RESTful client uses the setuptools tool for packaging and distribution. Users can install the client directly into the local environment and introduce it directly when using it."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-shell",children:"cd src/client/python/TuGraphClient\npython3 setup.py build\npython3 setup.py install\n"})}),"\n",(0,r.jsx)(t.p,{children:"Note: When using the setuptools tool to install the python client, dependencies such as httpx will be installed and need to be executed in an environment with external network access."}),"\n",(0,r.jsx)(t.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'from TuGraphClient import TuGraphClient, AsyncTuGraphClient\n\nclient = TuGraphClient("127.0.0.1:7071" , "admin", "73@TuGraph")\ncypher = "match (n) return properties(n) limit 1"\nres = client.call_cypher(cypher)\nprint(res)\n'})}),"\n",(0,r.jsx)(t.h3,{id:"23call-stored-procedure",children:"2.3.Call stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'from TuGraphClient import TuGraphClient, AsyncTuGraphClient\n\nclient = TuGraphClient("127.0.0.1:7071" , "admin", "73@TuGraph")\nplugin_type = "cpp"\nplugin_name = "khop"\nplugin_input = "{\\"root\\": 10, \\"hop\\": 3}"\nres = client.call_plugin(plugin_type, plguin_name, plugin_input)\nprint(res)\n'})}),"\n",(0,r.jsx)(t.h2,{id:"3rpc-client",children:"3.RPC Client"}),"\n",(0,r.jsx)(t.p,{children:"Python's TuGraph Rpc Client is a CPP Client SDK packaged using pybind11. The following table lists the correspondence between Python and CPP Client SDK."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Python Client SDK"}),(0,r.jsx)(t.th,{children:"CPP Client SDK"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)"}),(0,r.jsx)(t.td,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"client(self: liblgraph_client_python.client, urls: list, user: str, password: str)"}),(0,r.jsxs)(t.td,{children:["RpcClient(std::vector",(0,r.jsx)(t.a,{href:"std::string",children:"std::string"}),"& urls, std::string user, std::string password)"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callCypher(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallCypher(std::string& result, const std::string& cypher, const std::string& graph, bool json_format, double timeout, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callCypherToLeader(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallCypherToLeader(std::string& result, const std::string& cypher, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callGql(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallGql(std::string& result, const std::string& gql, const std::string& graph, bool json_format, double timeout, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callGqlToLeader(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:'bool CallGqlToLeader(std::string& result, const std::string& gql, const std::string& graph = "default", bool json_format = true, double timeout = 0)'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallProcedure(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& param, double procedure_time_out, bool in_process, const std::string& graph, bool json_format, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callProcedureToLeader(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"CallProcedureToLeader(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& param, double procedure_time_out, bool in_process, const std::string& graph, bool json_format)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"loadProcedure(self: liblgraph_client_python.client, source_file: str, procedure_type: str, procedure_name: str, code_type: str, procedure_description: str, read_only: bool, version: str, graph: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool LoadProcedure(std::string& result, const std::string& source_file, const std::string& procedure_type, const std::string& procedure_name, const std::string& code_type, const std::string& procedure_description, bool read_only, const std::string& version, const std::string& graph)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"listProcedures(self: liblgraph_client_python.client, procedure_type: str, version: str, graph: str, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool ListProcedures(std::string& result, const std::string& procedure_type, const std::string& version, const std::string& graph, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"deleteProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, graph: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool DeleteProcedure(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& graph)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importSchemaFromContent(self: liblgraph_client_python.client, schema: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool ImportSchemaFromContent(std::string& result, const std::string& schema, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importDataFromContent(self: liblgraph_client_python.client, desc: str, data: str, delimiter: str, continue_on_error: bool, thread_nums: int, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportDataFromContent(std::string& result, const std::string& desc, const std::string& data, const std::string& delimiter, bool continue_on_error, int thread_nums, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importSchemaFromFile(self: liblgraph_client_python.client, schema_file: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportSchemaFromFile(std::string& result, const std::string& schema_file, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importDataFromFile(self: liblgraph_client_python.client, conf_file: str, delimiter: str, continue_on_error: bool, thread_nums: int, skip_packages: int, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportDataFromFile(std::string& result, const std::string& conf_file, const std::string& delimiter, bool continue_on_error, int thread_nums, int skip_packages, const std::string& graph, bool json_format, double timeout)"})]})]})]}),"\n",(0,r.jsx)(t.p,{children:"The use of Python RPC Client is more complicated. Users can compile TuGraph in the local environment to get liblgraph_client_python.so, or they can use the official runtime image. The dependent library can be found directly in the /usr/local/lib64 directory in the image. It can be used after introducing the user project."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:"import liblgraph_client_python\n"})}),"\n",(0,r.jsx)(t.h3,{id:"31instantiate-the-client-object",children:"3.1.Instantiate the client object"}),"\n",(0,r.jsx)(t.h4,{id:"311instantiate-a-single-node-client-object",children:"3.1.1.Instantiate a single node client object"}),"\n",(0,r.jsx)(t.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client("127.0.0.1:19099", "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.h4,{id:"312instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"3.1.2.Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client("127.0.0.1:19099", "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,r.jsx)(t.h4,{id:"313instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"3.1.3.Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client(["189.33.97.23:9091","189.33.97.24:9091", "189.33.97.25:9091"], "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, urls: list, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,r.jsx)(t.h3,{id:"32call-cypher",children:"3.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callCypher("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callCypher(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"33send-cypher-request-to-leader",children:"3.3.Send cypher request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callCypherToLeader(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"34call-gql",children:"3.4.Call GQL"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callGql("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callGql(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"35send-gql-request-to-leader",children:"3.5.Send GQL request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callGqlToLeader(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"36calling-stored-procedures",children:"3.6.Calling stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callProcedure("CPP", "test_plugin1", "bcefg", 1000, False, "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"37call-the-stored-procedure-to-the-leader",children:"3.7.Call the stored procedure to the leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callProcedureToLeader(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format."}),"\n",(0,r.jsx)(t.h3,{id:"38load-stored-procedure",children:"3.8.Load stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"loadProcedure(self: liblgraph_client_python.client, source_file: str, procedure_type: str, procedure_name: str, code_type: str, procedure_description: str, read_only: bool, version: str, graph: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"39list-stored-procedures",children:"3.9.List stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.listProcedures("CPP", "any", "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"listProcedures(self: liblgraph_client_python.client, procedure_type: str, version: str, graph: str, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"310delete-stored-procedures",children:"3.10.Delete stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.deleteProcedure("CPP", "sortstr", "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"deleteProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, graph: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"311import-schema-from-byte-stream",children:"3.11.Import schema from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importSchemaFromContent(schema, "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importSchemaFromContent(self: liblgraph_client_python.client, schema: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"312import-edge-data-from-byte-stream",children:"3.12.Import edge data from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importDataFromContent(self: liblgraph_client_python.client, desc: str, data: str, delimiter: str, continue_on_error: bool, thread_nums: int, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"313import-schema-from-file",children:"3.13.Import schema from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importSchemaFromFile(self: liblgraph_client_python.client, schema_file: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"314import-point-and-edge-data-from-file",children:"3.14.Import point and edge data from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importDataFromFile(self: liblgraph_client_python.client, conf_file: str, delimiter: str, continue_on_error: bool, thread_nums: int, skip_packages: int, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>i});var r=n(6540);const s={},l=r.createContext(s);function o(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/36b9e001.dfb319d3.js b/assets/js/36b9e001.dfb319d3.js
deleted file mode 100644
index a491d81f16..0000000000
--- a/assets/js/36b9e001.dfb319d3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3213],{2354:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=n(4848),s=n(8453);const o={},l="TuGraph Python SDK",i={id:"en-US/source/client-tools/python-client",title:"TuGraph Python SDK",description:"This document is the usage instruction of TuGraph Python SDK",source:"@site/../docs/en-US/source/7.client-tools/1.python-client.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/python-client",permalink:"/tugraph-db/en-US/source/client-tools/python-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Explorer",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-explorer"},next:{title:"TuGraph C++ SDK",permalink:"/tugraph-db/en-US/source/client-tools/cpp-client"}},c={},d=[{value:"1.Overview",id:"1overview",level:2},{value:"2.RESTful Client",id:"2restful-client",level:2},{value:"2.1. Install Client",id:"21-install-client",level:3},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3.Call stored procedure",id:"23call-stored-procedure",level:3},{value:"3.RPC Client",id:"3rpc-client",level:2},{value:"3.1.Instantiate the client object",id:"31instantiate-the-client-object",level:3},{value:"3.1.1.Instantiate a single node client object",id:"311instantiate-a-single-node-client-object",level:4},{value:"3.1.2.Instantiate the HA cluster to directly connect to the client object",id:"312instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"3.1.3.Instantiate the HA cluster to indirectly connect to the client object",id:"313instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"3.2.Call cypher",id:"32call-cypher",level:3},{value:"3.3.Send cypher request to leader",id:"33send-cypher-request-to-leader",level:3},{value:"3.4.Call GQL",id:"34call-gql",level:3},{value:"3.5.Send GQL request to leader",id:"35send-gql-request-to-leader",level:3},{value:"3.6.Calling stored procedures",id:"36calling-stored-procedures",level:3},{value:"3.7.Call the stored procedure to the leader",id:"37call-the-stored-procedure-to-the-leader",level:3},{value:"3.8.Load stored procedure",id:"38load-stored-procedure",level:3},{value:"3.9.List stored procedures",id:"39list-stored-procedures",level:3},{value:"3.10.Delete stored procedures",id:"310delete-stored-procedures",level:3},{value:"3.11.Import schema from byte stream",id:"311import-schema-from-byte-stream",level:3},{value:"3.12.Import edge data from byte stream",id:"312import-edge-data-from-byte-stream",level:3},{value:"3.13.Import schema from file",id:"313import-schema-from-file",level:3},{value:"3.14.Import point and edge data from file",id:"314import-point-and-edge-data-from-file",level:3}];function a(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tugraph-python-sdk",children:"TuGraph Python SDK"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document is the usage instruction of TuGraph Python SDK"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1overview",children:"1.Overview"}),"\n",(0,r.jsx)(t.p,{children:"There are two kinds of Python's TuGraph Client. One is the RESTful Client, which uses the HTTP method to send requests to the server. The other is the RPC Client, which uses the RPC method to call the server remote service. Both have their own advantages and disadvantages. The RESTful client is simple to use. You can find the source code file of the Client in the src/client/python/TuGraphClient directory of the project. You can install it directly into the user environment and use it. However, it supports fewer functions and its performance is not high. RPC Client supports both stand-alone servers and high-availability clusters and load balancing. It has many interfaces and powerful functions. However, the usage is more complicated. Users need to compile the TuGraph project themselves to obtain liblgraph_client_python.so, or directly find the dependent library in the /usr/local/lib64 directory when using the runtime image, and introduce it into the python project for normal use. Next, the usage of these two Clients will be introduced in detail."}),"\n",(0,r.jsx)(t.h2,{id:"2restful-client",children:"2.RESTful Client"}),"\n",(0,r.jsx)(t.h3,{id:"21-install-client",children:"2.1. Install Client"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph's Python RESTful client uses the setuptools tool for packaging and distribution. Users can install the client directly into the local environment and introduce it directly when using it."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-shell",children:"cd src/client/python/TuGraphClient\npython3 setup.py build\npython3 setup.py install\n"})}),"\n",(0,r.jsx)(t.p,{children:"Note: When using the setuptools tool to install the python client, dependencies such as httpx will be installed and need to be executed in an environment with external network access."}),"\n",(0,r.jsx)(t.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'from TuGraphClient import TuGraphClient, AsyncTuGraphClient\n\nclient = TuGraphClient("127.0.0.1:7071" , "admin", "73@TuGraph")\ncypher = "match (n) return properties(n) limit 1"\nres = client.call_cypher(cypher)\nprint(res)\n'})}),"\n",(0,r.jsx)(t.h3,{id:"23call-stored-procedure",children:"2.3.Call stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'from TuGraphClient import TuGraphClient, AsyncTuGraphClient\n\nclient = TuGraphClient("127.0.0.1:7071" , "admin", "73@TuGraph")\nplugin_type = "cpp"\nplugin_name = "khop"\nplugin_input = "{\\"root\\": 10, \\"hop\\": 3}"\nres = client.call_plugin(plugin_type, plguin_name, plugin_input)\nprint(res)\n'})}),"\n",(0,r.jsx)(t.h2,{id:"3rpc-client",children:"3.RPC Client"}),"\n",(0,r.jsx)(t.p,{children:"Python's TuGraph Rpc Client is a CPP Client SDK packaged using pybind11. The following table lists the correspondence between Python and CPP Client SDK."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Python Client SDK"}),(0,r.jsx)(t.th,{children:"CPP Client SDK"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)"}),(0,r.jsx)(t.td,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"client(self: liblgraph_client_python.client, urls: list, user: str, password: str)"}),(0,r.jsxs)(t.td,{children:["RpcClient(std::vector",(0,r.jsx)(t.a,{href:"std::string",children:"std::string"}),"& urls, std::string user, std::string password)"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callCypher(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallCypher(std::string& result, const std::string& cypher, const std::string& graph, bool json_format, double timeout, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callCypherToLeader(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallCypherToLeader(std::string& result, const std::string& cypher, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callGql(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallGql(std::string& result, const std::string& gql, const std::string& graph, bool json_format, double timeout, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callGqlToLeader(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:'bool CallGqlToLeader(std::string& result, const std::string& gql, const std::string& graph = "default", bool json_format = true, double timeout = 0)'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool CallProcedure(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& param, double procedure_time_out, bool in_process, const std::string& graph, bool json_format, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"callProcedureToLeader(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"CallProcedureToLeader(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& param, double procedure_time_out, bool in_process, const std::string& graph, bool json_format)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"loadProcedure(self: liblgraph_client_python.client, source_file: str, procedure_type: str, procedure_name: str, code_type: str, procedure_description: str, read_only: bool, version: str, graph: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool LoadProcedure(std::string& result, const std::string& source_file, const std::string& procedure_type, const std::string& procedure_name, const std::string& code_type, const std::string& procedure_description, bool read_only, const std::string& version, const std::string& graph)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"listProcedures(self: liblgraph_client_python.client, procedure_type: str, version: str, graph: str, url: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool ListProcedures(std::string& result, const std::string& procedure_type, const std::string& version, const std::string& graph, const std::string& url)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"deleteProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, graph: str) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool DeleteProcedure(std::string& result, const std::string& procedure_type, const std::string& procedure_name, const std::string& graph)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importSchemaFromContent(self: liblgraph_client_python.client, schema: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"bool ImportSchemaFromContent(std::string& result, const std::string& schema, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importDataFromContent(self: liblgraph_client_python.client, desc: str, data: str, delimiter: str, continue_on_error: bool, thread_nums: int, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportDataFromContent(std::string& result, const std::string& desc, const std::string& data, const std::string& delimiter, bool continue_on_error, int thread_nums, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importSchemaFromFile(self: liblgraph_client_python.client, schema_file: str, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportSchemaFromFile(std::string& result, const std::string& schema_file, const std::string& graph, bool json_format, double timeout)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"importDataFromFile(self: liblgraph_client_python.client, conf_file: str, delimiter: str, continue_on_error: bool, thread_nums: int, skip_packages: int, graph: str, json_format: bool, timeout: float) -> (bool, str)"}),(0,r.jsx)(t.td,{children:"ImportDataFromFile(std::string& result, const std::string& conf_file, const std::string& delimiter, bool continue_on_error, int thread_nums, int skip_packages, const std::string& graph, bool json_format, double timeout)"})]})]})]}),"\n",(0,r.jsx)(t.p,{children:"The use of Python RPC Client is more complicated. Users can compile TuGraph in the local environment to get liblgraph_client_python.so, or they can use the official runtime image. The dependent library can be found directly in the /usr/local/lib64 directory in the image. It can be used after introducing the user project."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:"import liblgraph_client_python\n"})}),"\n",(0,r.jsx)(t.h3,{id:"31instantiate-the-client-object",children:"3.1.Instantiate the client object"}),"\n",(0,r.jsx)(t.h4,{id:"311instantiate-a-single-node-client-object",children:"3.1.1.Instantiate a single node client object"}),"\n",(0,r.jsx)(t.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client("127.0.0.1:19099", "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.h4,{id:"312instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"3.1.2.Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client("127.0.0.1:19099", "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, url: str, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,r.jsx)(t.h4,{id:"313instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"3.1.3.Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'client = liblgraph_client_python.client(["189.33.97.23:9091","189.33.97.24:9091", "189.33.97.25:9091"], "admin", "73@TuGraph")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"client(self: liblgraph_client_python.client, urls: list, user: str, password: str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,r.jsx)(t.h3,{id:"32call-cypher",children:"3.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callCypher("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callCypher(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"33send-cypher-request-to-leader",children:"3.3.Send cypher request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callCypherToLeader(self: liblgraph_client_python.client, cypher: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"34call-gql",children:"3.4.Call GQL"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callGql("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callGql(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"35send-gql-request-to-leader",children:"3.5.Send GQL request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callGqlToLeader(self: liblgraph_client_python.client, gql: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"36calling-stored-procedures",children:"3.6.Calling stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callProcedure("CPP", "test_plugin1", "bcefg", 1000, False, "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"37call-the-stored-procedure-to-the-leader",children:"3.7.Call the stored procedure to the leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"callProcedureToLeader(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, param: str, procedure_time_out: float, in_process: bool, graph: str, json_format: bool) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format."}),"\n",(0,r.jsx)(t.h3,{id:"38load-stored-procedure",children:"3.8.Load stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"loadProcedure(self: liblgraph_client_python.client, source_file: str, procedure_type: str, procedure_name: str, code_type: str, procedure_description: str, read_only: bool, version: str, graph: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"39list-stored-procedures",children:"3.9.List stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.listProcedures("CPP", "any", "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"listProcedures(self: liblgraph_client_python.client, procedure_type: str, version: str, graph: str, url: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"310delete-stored-procedures",children:"3.10.Delete stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.deleteProcedure("CPP", "sortstr", "default")\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"deleteProcedure(self: liblgraph_client_python.client, procedure_type: str, procedure_name: str, graph: str) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"311import-schema-from-byte-stream",children:"3.11.Import schema from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importSchemaFromContent(schema, "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importSchemaFromContent(self: liblgraph_client_python.client, schema: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"312import-edge-data-from-byte-stream",children:"3.12.Import edge data from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importDataFromContent(self: liblgraph_client_python.client, desc: str, data: str, delimiter: str, continue_on_error: bool, thread_nums: int, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"313import-schema-from-file",children:"3.13.Import schema from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importSchemaFromFile(self: liblgraph_client_python.client, schema_file: str, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"314import-point-and-edge-data-from-file",children:"3.14.Import point and edge data from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-python",children:'ret, res = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"importDataFromFile(self: liblgraph_client_python.client, conf_file: str, delimiter: str, continue_on_error: bool, thread_nums: int, skip_packages: int, graph: str, json_format: bool, timeout: float) -> (bool, str)\n"})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>l,x:()=>i});var r=n(6540);const s={},o=r.createContext(s);function l(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37536724.ea29d1e3.js b/assets/js/37536724.ea29d1e3.js
new file mode 100644
index 0000000000..a555d05460
--- /dev/null
+++ b/assets/js/37536724.ea29d1e3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8206],{1653:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var t=i(4848),a=i(8453);const r={},o="What is TuGraph",s={id:"introduction/what-is-tugraph",title:"What is TuGraph",description:"This document mainly introduces the main features and characteristics of TuGraph Community Edition, as well as the differences between TuGraph Enterprise Edition and Community Edition.",source:"@site/../docs/en-US/source/2.introduction/3.what-is-tugraph.md",sourceDirName:"2.introduction",slug:"/introduction/what-is-tugraph",permalink:"/tugraph-db/en/introduction/what-is-tugraph",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"What is a graph database",permalink:"/tugraph-db/en/introduction/what-is-gdbms"},next:{title:"TuGraph schema Instructions",permalink:"/tugraph-db/en/introduction/schema"}},l={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.TuGraph Community Edition",id:"2tugraph-community-edition",level:2},{value:"3.TuGraph features",id:"3tugraph-features",level:2},{value:"4.TuGraph Enterprise Edition",id:"4tugraph-enterprise-edition",level:2}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"what-is-tugraph",children:"What is TuGraph"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the main features and characteristics of TuGraph Community Edition, as well as the differences between TuGraph Enterprise Edition and Community Edition."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,t.jsx)(n.p,{children:"Graph database is a non-relational database that stores data by vertices and edges. It can be used to store complex data network models, such as social networks and transaction networks. TuGraph is a graph database developed by Ant Group. This manual introduces the functions and usage of TuGraph."}),"\n",(0,t.jsx)(n.h2,{id:"2tugraph-community-edition",children:"2.TuGraph Community Edition"}),"\n",(0,t.jsx)(n.p,{children:"The Community Edition is a fully functional version of TuGraph, suitable for single-instance deployment. It provides complete basic fuctions of graph database, such as ACID-compatible transactions, programming APIs, and associated tools. It is ideal for learning TuGraph and implementing small projects."}),"\n",(0,t.jsx)(n.h2,{id:"3tugraph-features",children:"3.TuGraph features"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph is a large-scale graph computing system independently developed by Ant Group, providing graph database engine and graph analysis engine. Its main features are large data storage and computation, high throughput, and flexible API, while supporting efficient online transaction processing (OLTP) and online analytical processing (OLAP). LightGraph and GeaGraph are former names of TuGraph."}),"\n",(0,t.jsx)(n.p,{children:"The main functional features include:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Labeled property graph model"}),"\n",(0,t.jsx)(n.li,{children:"Support multiple Graphs"}),"\n",(0,t.jsx)(n.li,{children:"Full ACID transaction processing"}),"\n",(0,t.jsx)(n.li,{children:"Built-in 34 graph analysis algorithm"}),"\n",(0,t.jsx)(n.li,{children:"Graph visualization tool based on Web client"}),"\n",(0,t.jsx)(n.li,{children:"RESTful API and RPC are supported"}),"\n",(0,t.jsx)(n.li,{children:"OpenCypher graph query language"}),"\n",(0,t.jsx)(n.li,{children:"Stored procedure based on C++/Python/Java"}),"\n",(0,t.jsx)(n.li,{children:"The Traversal API for efficient graph algorithm development"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Performance and scalability features include:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"TB large capacity"}),"\n",(0,t.jsx)(n.li,{children:"High throughput of ten million vertices per second"}),"\n",(0,t.jsx)(n.li,{children:"High Availability Support (Enterprise Edition)"}),"\n",(0,t.jsx)(n.li,{children:"High-performance Batch Import"}),"\n",(0,t.jsx)(n.li,{children:"Online/offline backup"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"4tugraph-enterprise-edition",children:"4.TuGraph Enterprise Edition"}),"\n",(0,t.jsx)(n.p,{children:"The Enterprise Edition has more comprehensive support for commercial features, including distributed cluster architecture, a one-stop graph platform covering exploration, research and development, service and operation and maintenance throughout the lifecycle, online, near-line, and offline graph computing engines, support for streaming and big data data sources, multi-site and multi-center deployment, making it an ideal choice for commercial solutions."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:" If you need to implement production-level high-availability cluster architecture, operation and maintenance and other enterprise-level services, please contact us to obtain commercial support:\n Email:tugraph@service.alipay.com\n Tel:0571-85022088,extension number 83789993#\n"})})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>s});var t=i(6540);const a={},r=t.createContext(a);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37536724.eae5fa8c.js b/assets/js/37536724.eae5fa8c.js
deleted file mode 100644
index 4b8646863b..0000000000
--- a/assets/js/37536724.eae5fa8c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8206],{423:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var t=i(4848),r=i(8453);const a={},o="What is TuGraph",s={id:"en-US/source/introduction/what-is-tugraph",title:"What is TuGraph",description:"This document mainly introduces the main features and characteristics of TuGraph Community Edition, as well as the differences between TuGraph Enterprise Edition and Community Edition.",source:"@site/../docs/en-US/source/2.introduction/3.what-is-tugraph.md",sourceDirName:"en-US/source/2.introduction",slug:"/en-US/source/introduction/what-is-tugraph",permalink:"/tugraph-db/en-US/source/introduction/what-is-tugraph",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"What is a graph database",permalink:"/tugraph-db/en-US/source/introduction/what-is-gdbms"},next:{title:"TuGraph schema Instructions",permalink:"/tugraph-db/en-US/source/introduction/schema"}},l={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.TuGraph Community Edition",id:"2tugraph-community-edition",level:2},{value:"3.TuGraph features",id:"3tugraph-features",level:2},{value:"4.TuGraph Enterprise Edition",id:"4tugraph-enterprise-edition",level:2}];function u(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"what-is-tugraph",children:"What is TuGraph"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the main features and characteristics of TuGraph Community Edition, as well as the differences between TuGraph Enterprise Edition and Community Edition."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,t.jsx)(n.p,{children:"Graph database is a non-relational database that stores data by vertices and edges. It can be used to store complex data network models, such as social networks and transaction networks. TuGraph is a graph database developed by Ant Group. This manual introduces the functions and usage of TuGraph."}),"\n",(0,t.jsx)(n.h2,{id:"2tugraph-community-edition",children:"2.TuGraph Community Edition"}),"\n",(0,t.jsx)(n.p,{children:"The Community Edition is a fully functional version of TuGraph, suitable for single-instance deployment. It provides complete basic fuctions of graph database, such as ACID-compatible transactions, programming APIs, and associated tools. It is ideal for learning TuGraph and implementing small projects."}),"\n",(0,t.jsx)(n.h2,{id:"3tugraph-features",children:"3.TuGraph features"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph is a large-scale graph computing system independently developed by Ant Group, providing graph database engine and graph analysis engine. Its main features are large data storage and computation, high throughput, and flexible API, while supporting efficient online transaction processing (OLTP) and online analytical processing (OLAP). LightGraph and GeaGraph are former names of TuGraph."}),"\n",(0,t.jsx)(n.p,{children:"The main functional features include:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Labeled property graph model"}),"\n",(0,t.jsx)(n.li,{children:"Support multiple Graphs"}),"\n",(0,t.jsx)(n.li,{children:"Full ACID transaction processing"}),"\n",(0,t.jsx)(n.li,{children:"Built-in 34 graph analysis algorithm"}),"\n",(0,t.jsx)(n.li,{children:"Graph visualization tool based on Web client"}),"\n",(0,t.jsx)(n.li,{children:"RESTful API and RPC are supported"}),"\n",(0,t.jsx)(n.li,{children:"OpenCypher graph query language"}),"\n",(0,t.jsx)(n.li,{children:"Stored procedure based on C++/Python/Java"}),"\n",(0,t.jsx)(n.li,{children:"The Traversal API for efficient graph algorithm development"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Performance and scalability features include:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"TB large capacity"}),"\n",(0,t.jsx)(n.li,{children:"High throughput of ten million vertices per second"}),"\n",(0,t.jsx)(n.li,{children:"High Availability Support (Enterprise Edition)"}),"\n",(0,t.jsx)(n.li,{children:"High-performance Batch Import"}),"\n",(0,t.jsx)(n.li,{children:"Online/offline backup"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"4tugraph-enterprise-edition",children:"4.TuGraph Enterprise Edition"}),"\n",(0,t.jsx)(n.p,{children:"The Enterprise Edition has more comprehensive support for commercial features, including distributed cluster architecture, a one-stop graph platform covering exploration, research and development, service and operation and maintenance throughout the lifecycle, online, near-line, and offline graph computing engines, support for streaming and big data data sources, multi-site and multi-center deployment, making it an ideal choice for commercial solutions."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:" If you need to implement production-level high-availability cluster architecture, operation and maintenance and other enterprise-level services, please contact us to obtain commercial support:\n Email:tugraph@service.alipay.com\n Tel:0571-85022088,extension number 83789993#\n"})})]})}function d(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>s});var t=i(6540);const r={},a=t.createContext(r);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37590f4c.569c3ae9.js b/assets/js/37590f4c.569c3ae9.js
deleted file mode 100644
index 7718029aa9..0000000000
--- a/assets/js/37590f4c.569c3ae9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8478],{7847:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=a(4848),n=a(8453);const i={},o="Performance Oriented",s={id:"en-US/source/introduction/characteristics/performance-oriented",title:"Performance Oriented",description:"This document mainly introduces TuGraph's performance-oriented design philosophy as an open-source graph database.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/1.performance-oriented.md",sourceDirName:"en-US/source/2.introduction/5.characteristics",slug:"/en-US/source/introduction/characteristics/performance-oriented",permalink:"/tugraph-db/en-US/source/introduction/characteristics/performance-oriented",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph schema Instructions",permalink:"/tugraph-db/en-US/source/introduction/schema"},next:{title:"Multi Level Interfaces",permalink:"/tugraph-db/en-US/source/introduction/characteristics/multi-level-Interfaces"}},c={},d=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Characteristics of Graph Operations",id:"2characteristics-of-graph-operations",level:2},{value:"3.Storage Data Structures",id:"3storage-data-structures",level:2},{value:"4.Data Encoding",id:"4data-encoding",level:2}];function h(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"performance-oriented",children:"Performance Oriented"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document mainly introduces TuGraph's performance-oriented design philosophy as an open-source graph database."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph is currently the fastest graph database in the world, ranking first in the LDBC SNB Interactive graph database standard evaluation (March 2023). The design of TuGraph is based on performance optimization, and is committed to building a high-performance single-machine graph database. This document describes the core design of TuGraph's storage layer based on performance optimization."}),"\n",(0,r.jsx)(t.h2,{id:"2characteristics-of-graph-operations",children:"2.Characteristics of Graph Operations"}),"\n",(0,r.jsx)(t.p,{children:"Operations on property graphs involve reading, writing, and their attributes, and the access patterns of some special attributes such as timestamps can also affect overall performance. Here, by summarizing the regularities of some graph operation characteristics, we can guide the final performance."}),"\n",(0,r.jsx)(t.p,{children:"We observe that many graph applications have similar data access patterns. For example, in credit risk control, we use recursive path filtering to search for many-to-one patterns to find suspicious credit fraud users and behaviors. For online gambling, we can identify gambling-related fund accounts by recognizing multiple fund transfers in a short period of time. The equity penetration scenario recursively calculates the equity relationship between entities. These scenarios have common patterns such as multi-hop entity and relationship access, time window constraints, and read/write transactions.\nFurthermore, from the discussion in the introduction and the analysis of graph workloads, the following characteristics can be summarized:"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 1"})," KHop is the most typical operation in a graph, based on the data access pattern of the graph topology of points and edges, and has essential differences from relational databases. The typicality of KHop is not only reflected in the different data access patterns, but it is also the performance point that graph databases need to pay attention to the most."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 2"})," Data access of graph workloads has a certain degree of locality on the topology, and the edges of the same point are usually accessed simultaneously. When the labels of these edges are the same, there is a greater probability of simultaneous access."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 3"})," When accessing points and edges in graph workloads, their corresponding attributes are usually accessed as a traversal filter condition."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 4"})," In time-based graph workloads, filtering of points and edges is usually within a certain time range, such as the past week."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 5"})," Write operations may be accompanied by a large number of read operations, which need to be processed in a single transaction cycle."]}),"\n",(0,r.jsx)(t.p,{children:"Through the analysis of actual online graph applications, the read/write ratio of graph workloads is about 20:1, although the scenarios are limited to the financial field and the number of clusters is also limited, the scale of the data involved and the number of users are very large, which is representative to some extent. The 20:1 read/write ratio of graph workloads indicates that the impact of read workload on overall performance is greater, and the performance of write workload cannot be ignored either."}),"\n",(0,r.jsx)(t.h2,{id:"3storage-data-structures",children:"3.Storage Data Structures"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph uses B+ trees as the underlying data structure to support real-time transactional operations for insertion, deletion, querying, and updating."}),"\n",(0,r.jsx)(t.p,{children:"In sorting tree data structures, B+ trees and LSM trees are the main representatives. B+ trees use a split and merge method to update sorted data in tree nodes, while LSM trees append updates to logs for delayed data merging. B+ trees were originally used in file system implementations, solving the problem of differences in performance between sequential and random operations on hard disks by storing data in adaptive-length leaf nodes, and have a relatively balanced read/write performance. The main advantage of LSM trees is to use WAL (Write Ahead Log) to perform updates, which turns update operations into sequential operations, especially in the case of small key-value pairs. WAL means that the update of data is deferred until it is merged in batches, which can improve the comprehensive efficiency of batch updates, but also makes the system scheduling more complicated. If the update merge is not completed, and the data is read again, LSM trees need to read several levels of locally merged logs, which will cause read amplification and space amplification, thereby affecting read efficiency."}),"\n",(0,r.jsx)(t.p,{children:"To sum up, B+ trees have better sequential read/write performance, while LSM trees have advantages in random write data. In addition, the way of LSM trees using background merging makes the performance fluctuation difficult to predict, and the correlation between performance fluctuation and upper-level storage and computation is weak, which increases the overall design cost. Considering the above factors, TuGraph chooses B+ trees as the implementation for read performance optimization."}),"\n",(0,r.jsx)(t.h2,{id:"4data-encoding",children:"4.Data Encoding"}),"\n",(0,r.jsx)(t.p,{children:"For property graph models, in addition to graph topology encoding, property data also greatly affects functionality and performance. We first discuss how property data can be encoded together with topology data. From current research, there are two ways of encoding properties: discrete encoding, which stores property data separately based on pointer indexes, and compact encoding, which packs property data and topology data together. Discrete encoding can store each property separately or pack each edge's properties separately, and the following discussion applies to both situations."}),"\n",(0,r.jsx)(t.p,{children:"Vertex Query: Property encoding mainly focuses on edges and does not involve vertex queries."}),"\n",(0,r.jsx)(t.p,{children:"Single-Edge Query: Discrete encoding locates edges through pointers, while compact encoding requires binary search to locate the edge position. Discrete encoding has a slight advantage."}),"\n",(0,r.jsx)(t.p,{children:"Edge Traversal: Discrete encoding requires constant random access through pointer jumps during edge traversal, while compact encoding arranges data together in advance, greatly improving efficiency due to its sequential access feature. Since edge traversal operations are common according to Rule 3, compact encoding has obvious advantages in edge traversal."}),"\n",(0,r.jsx)(t.p,{children:"Single-Edge Update: Discrete encoding only requires finding the corresponding pointer position and modifying the pointer's location before and after inserting data. Compact encoding needs to re-encode the compactly arranged data and rewrite the entire edge value, resulting in significant overhead compared to discrete encoding."}),"\n",(0,r.jsx)(t.p,{children:"Batch Edge Update: Batch updates can pre-build all edge properties for a vertex in memory and write them in one encoding, making both discrete encoding and compact encoding equivalent. However, compact encoding does not require storing pointer variables, so it has higher storage space efficiency."}),"\n",(0,r.jsx)(t.p,{children:"The performance issues of discrete encoding and compact encoding for a certain type of query discussed above can be alleviated through optimization. Overall, due to the 20:1 read-write load of graphs and the characteristics of property access revealed by Rule 3, TuGraph tends to use compact encoding to ensure read performance. Its main weakness is the overhead of re-encoding during single-edge updates, which can be solved using adaptive mapping technology."})]})}function l(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var r=a(6540);const n={},i=r.createContext(n);function o(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37590f4c.dffbc72f.js b/assets/js/37590f4c.dffbc72f.js
new file mode 100644
index 0000000000..d5e2f6640f
--- /dev/null
+++ b/assets/js/37590f4c.dffbc72f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8478],{1549:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=a(4848),n=a(8453);const i={},o="Performance Oriented",s={id:"introduction/characteristics/performance-oriented",title:"Performance Oriented",description:"This document mainly introduces TuGraph's performance-oriented design philosophy as an open-source graph database.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/1.performance-oriented.md",sourceDirName:"2.introduction/5.characteristics",slug:"/introduction/characteristics/performance-oriented",permalink:"/tugraph-db/en/introduction/characteristics/performance-oriented",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph schema Instructions",permalink:"/tugraph-db/en/introduction/schema"},next:{title:"Multi Level Interfaces",permalink:"/tugraph-db/en/introduction/characteristics/multi-level-Interfaces"}},c={},d=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Characteristics of Graph Operations",id:"2characteristics-of-graph-operations",level:2},{value:"3.Storage Data Structures",id:"3storage-data-structures",level:2},{value:"4.Data Encoding",id:"4data-encoding",level:2}];function h(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"performance-oriented",children:"Performance Oriented"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document mainly introduces TuGraph's performance-oriented design philosophy as an open-source graph database."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph is currently the fastest graph database in the world, ranking first in the LDBC SNB Interactive graph database standard evaluation (March 2023). The design of TuGraph is based on performance optimization, and is committed to building a high-performance single-machine graph database. This document describes the core design of TuGraph's storage layer based on performance optimization."}),"\n",(0,r.jsx)(t.h2,{id:"2characteristics-of-graph-operations",children:"2.Characteristics of Graph Operations"}),"\n",(0,r.jsx)(t.p,{children:"Operations on property graphs involve reading, writing, and their attributes, and the access patterns of some special attributes such as timestamps can also affect overall performance. Here, by summarizing the regularities of some graph operation characteristics, we can guide the final performance."}),"\n",(0,r.jsx)(t.p,{children:"We observe that many graph applications have similar data access patterns. For example, in credit risk control, we use recursive path filtering to search for many-to-one patterns to find suspicious credit fraud users and behaviors. For online gambling, we can identify gambling-related fund accounts by recognizing multiple fund transfers in a short period of time. The equity penetration scenario recursively calculates the equity relationship between entities. These scenarios have common patterns such as multi-hop entity and relationship access, time window constraints, and read/write transactions.\nFurthermore, from the discussion in the introduction and the analysis of graph workloads, the following characteristics can be summarized:"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 1"})," KHop is the most typical operation in a graph, based on the data access pattern of the graph topology of points and edges, and has essential differences from relational databases. The typicality of KHop is not only reflected in the different data access patterns, but it is also the performance point that graph databases need to pay attention to the most."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 2"})," Data access of graph workloads has a certain degree of locality on the topology, and the edges of the same point are usually accessed simultaneously. When the labels of these edges are the same, there is a greater probability of simultaneous access."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 3"})," When accessing points and edges in graph workloads, their corresponding attributes are usually accessed as a traversal filter condition."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 4"})," In time-based graph workloads, filtering of points and edges is usually within a certain time range, such as the past week."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Characteristic 5"})," Write operations may be accompanied by a large number of read operations, which need to be processed in a single transaction cycle."]}),"\n",(0,r.jsx)(t.p,{children:"Through the analysis of actual online graph applications, the read/write ratio of graph workloads is about 20:1, although the scenarios are limited to the financial field and the number of clusters is also limited, the scale of the data involved and the number of users are very large, which is representative to some extent. The 20:1 read/write ratio of graph workloads indicates that the impact of read workload on overall performance is greater, and the performance of write workload cannot be ignored either."}),"\n",(0,r.jsx)(t.h2,{id:"3storage-data-structures",children:"3.Storage Data Structures"}),"\n",(0,r.jsx)(t.p,{children:"TuGraph uses B+ trees as the underlying data structure to support real-time transactional operations for insertion, deletion, querying, and updating."}),"\n",(0,r.jsx)(t.p,{children:"In sorting tree data structures, B+ trees and LSM trees are the main representatives. B+ trees use a split and merge method to update sorted data in tree nodes, while LSM trees append updates to logs for delayed data merging. B+ trees were originally used in file system implementations, solving the problem of differences in performance between sequential and random operations on hard disks by storing data in adaptive-length leaf nodes, and have a relatively balanced read/write performance. The main advantage of LSM trees is to use WAL (Write Ahead Log) to perform updates, which turns update operations into sequential operations, especially in the case of small key-value pairs. WAL means that the update of data is deferred until it is merged in batches, which can improve the comprehensive efficiency of batch updates, but also makes the system scheduling more complicated. If the update merge is not completed, and the data is read again, LSM trees need to read several levels of locally merged logs, which will cause read amplification and space amplification, thereby affecting read efficiency."}),"\n",(0,r.jsx)(t.p,{children:"To sum up, B+ trees have better sequential read/write performance, while LSM trees have advantages in random write data. In addition, the way of LSM trees using background merging makes the performance fluctuation difficult to predict, and the correlation between performance fluctuation and upper-level storage and computation is weak, which increases the overall design cost. Considering the above factors, TuGraph chooses B+ trees as the implementation for read performance optimization."}),"\n",(0,r.jsx)(t.h2,{id:"4data-encoding",children:"4.Data Encoding"}),"\n",(0,r.jsx)(t.p,{children:"For property graph models, in addition to graph topology encoding, property data also greatly affects functionality and performance. We first discuss how property data can be encoded together with topology data. From current research, there are two ways of encoding properties: discrete encoding, which stores property data separately based on pointer indexes, and compact encoding, which packs property data and topology data together. Discrete encoding can store each property separately or pack each edge's properties separately, and the following discussion applies to both situations."}),"\n",(0,r.jsx)(t.p,{children:"Vertex Query: Property encoding mainly focuses on edges and does not involve vertex queries."}),"\n",(0,r.jsx)(t.p,{children:"Single-Edge Query: Discrete encoding locates edges through pointers, while compact encoding requires binary search to locate the edge position. Discrete encoding has a slight advantage."}),"\n",(0,r.jsx)(t.p,{children:"Edge Traversal: Discrete encoding requires constant random access through pointer jumps during edge traversal, while compact encoding arranges data together in advance, greatly improving efficiency due to its sequential access feature. Since edge traversal operations are common according to Rule 3, compact encoding has obvious advantages in edge traversal."}),"\n",(0,r.jsx)(t.p,{children:"Single-Edge Update: Discrete encoding only requires finding the corresponding pointer position and modifying the pointer's location before and after inserting data. Compact encoding needs to re-encode the compactly arranged data and rewrite the entire edge value, resulting in significant overhead compared to discrete encoding."}),"\n",(0,r.jsx)(t.p,{children:"Batch Edge Update: Batch updates can pre-build all edge properties for a vertex in memory and write them in one encoding, making both discrete encoding and compact encoding equivalent. However, compact encoding does not require storing pointer variables, so it has higher storage space efficiency."}),"\n",(0,r.jsx)(t.p,{children:"The performance issues of discrete encoding and compact encoding for a certain type of query discussed above can be alleviated through optimization. Overall, due to the 20:1 read-write load of graphs and the characteristics of property access revealed by Rule 3, TuGraph tends to use compact encoding to ensure read performance. Its main weakness is the overhead of re-encoding during single-edge updates, which can be solved using adaptive mapping technology."})]})}function l(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var r=a(6540);const n={},i=r.createContext(n);function o(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37a30462.49540f72.js b/assets/js/37a30462.49540f72.js
new file mode 100644
index 0000000000..936d24a8d2
--- /dev/null
+++ b/assets/js/37a30462.49540f72.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[689],{7302:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var r=n(4848),i=n(8453);const s={},o="\u4ec0\u4e48\u662f\u56fe",a={id:"introduction/what-is-graph",title:"\u4ec0\u4e48\u662f\u56fe",description:"\u672c\u6587\u9762\u5411\u521d\u5b66\u8005\uff0c\u4ecb\u7ecd\u56fe\uff08Graph\uff09\u7684\u57fa\u672c\u6982\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/1.what-is-graph.md",sourceDirName:"2.introduction",slug:"/introduction/what-is-graph",permalink:"/tugraph-db/zh/introduction/what-is-graph",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6587\u6863\u5730\u56fe",permalink:"/tugraph-db/zh/guide"},next:{title:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",permalink:"/tugraph-db/zh/introduction/what-is-gdbms"}},c={},d=[];function h(t){const e={blockquote:"blockquote",h1:"h1",header:"header",img:"img",p:"p",...(0,i.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u4ec0\u4e48\u662f\u56fe",children:"\u4ec0\u4e48\u662f\u56fe"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u9762\u5411\u521d\u5b66\u8005\uff0c\u4ecb\u7ecd\u56fe\uff08Graph\uff09\u7684\u57fa\u672c\u6982\u5ff5\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u4eca\u5929\u4ecb\u7ecd\u7684\u56fe\uff0c\u662f\u56fe\u8bba\u4e2d\u4f7f\u7528\u70b9\u548c\u8fb9\u8868\u793a\u7684\u56fe\uff08Graph\uff09\uff0c\u800c\u975e\u56fe\u50cf\u7684\u56fe\uff08Image\uff09\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.img,{alt:"alt what is graph",src:n(2506).A+"",width:"326",height:"189"})}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u7684\u57fa\u672c\u5143\u7d20\u662f\u70b9\u548c\u8fb9\uff0c\u5176\u4e2d\u70b9\u8868\u793a\u4e8b\u7269\u6216\u5b9e\u4f53\uff0c\u8fb9\u8868\u793a\u70b9\u4e4b\u95f4\u7684\u5173\u8054\u5173\u7cfb\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5982\u4e0a\u56fe\u5de6\u4fa7\u6240\u793a\uff0c\u70b9\u8868\u793a\u7684\u6709\u516c\u53f8\u3001\u5458\u5de5\u3001\u9879\u76ee\u3002\u8fb9\u8868\u793a\u7684\u662f\u4ed6\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5305\u62ec\uff1a\u516c\u53f8\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u96c7\u4f63\u5173\u7cfb\uff0c\u5458\u5de5\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u597d\u53cb\u5173\u7cfb\uff0c\u9879\u76ee\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u53c2\u4e0e\u5173\u7cfb\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u70b9\u548c\u8fb9\u4e0a\u53ef\u4ee5\u9644\u52a0\u5c5e\u6027\uff0c\u6bd4\u5982\u5458\u5de5\u7684\u5de5\u53f7\uff0c\u96c7\u4f63\u7684\u65f6\u95f4\uff0c\u8fd9\u6837\u7684\u56fe\u662f\u5c5e\u6027\u56fe\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u6211\u4eec\u53ef\u4ee5\u7528\u56fe\u7684\u65b9\u5f0f\u6765\u62bd\u8c61\u5730\u8868\u793a\u5b9e\u4f53\u53ca\u5176\u5173\u8054\u5173\u7cfb\uff0c\u56fe\u6709\u975e\u5e38\u4e30\u5bcc\u7684\u8868\u8fbe\u80fd\u529b\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u7684\u5458\u5de5\u56fe\u8c31\uff0c\u56fe\u8fd8\u53ef\u4ee5\u7528\u4e8e\u91d1\u878d\u3001\u5de5\u4e1a\u3001\u533b\u7597\u7b49\u5404\u4e2a\u9886\u57df\u3002\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u56fe\u7684\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\uff0c\u6bd4\u5982\u91d1\u878d\u4ea4\u6613\u56fe\uff0c\u70b9\u8fb9\u89c4\u6a21\u53ef\u80fd\u5230\u8fbe\u767e\u4ebf\uff0c\u4e0e\u5176\u540c\u65f6\uff0c\u57fa\u4e8e\u56fe\u7684\u67e5\u8be2\u901a\u5e38\u4f1a\u590d\u6742\uff0c\u6700\u5178\u578b\u7684\u662fK\u8df3\u67e5\u8be2\uff0c\u6bcf\u589e\u52a0\u4e00\u8df3\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u5448\u6307\u6570\u589e\u957f\u3002"})]})}function u(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(h,{...t})}):h(t)}},2506:(t,e,n)=>{n.d(e,{A:()=>r});const r=n.p+"assets/images/what-is-graph-6b293bb23abcbbf3f4e4642faed10f59.png"},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>a});var r=n(6540);const i={},s=r.createContext(i);function o(t){const e=r.useContext(s);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),r.createElement(s.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/37a30462.edf60c94.js b/assets/js/37a30462.edf60c94.js
deleted file mode 100644
index 3fadbe1934..0000000000
--- a/assets/js/37a30462.edf60c94.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[689],{7302:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(4848),s=n(8453);const o={},i="\u4ec0\u4e48\u662f\u56fe",c={id:"zh-CN/source/introduction/what-is-graph",title:"\u4ec0\u4e48\u662f\u56fe",description:"\u672c\u6587\u9762\u5411\u521d\u5b66\u8005\uff0c\u4ecb\u7ecd\u56fe\uff08Graph\uff09\u7684\u57fa\u672c\u6982\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/1.what-is-graph.md",sourceDirName:"zh-CN/source/2.introduction",slug:"/zh-CN/source/introduction/what-is-graph",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-graph",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6587\u6863\u5730\u56fe",permalink:"/tugraph-db/zh-CN/source/guide"},next:{title:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-gdbms"}},a={},u=[];function h(t){const e={blockquote:"blockquote",h1:"h1",header:"header",img:"img",p:"p",...(0,s.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u4ec0\u4e48\u662f\u56fe",children:"\u4ec0\u4e48\u662f\u56fe"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u9762\u5411\u521d\u5b66\u8005\uff0c\u4ecb\u7ecd\u56fe\uff08Graph\uff09\u7684\u57fa\u672c\u6982\u5ff5\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u4eca\u5929\u4ecb\u7ecd\u7684\u56fe\uff0c\u662f\u56fe\u8bba\u4e2d\u4f7f\u7528\u70b9\u548c\u8fb9\u8868\u793a\u7684\u56fe\uff08Graph\uff09\uff0c\u800c\u975e\u56fe\u50cf\u7684\u56fe\uff08Image\uff09\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.img,{alt:"alt what is graph",src:n(2506).A+"",width:"326",height:"189"})}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u7684\u57fa\u672c\u5143\u7d20\u662f\u70b9\u548c\u8fb9\uff0c\u5176\u4e2d\u70b9\u8868\u793a\u4e8b\u7269\u6216\u5b9e\u4f53\uff0c\u8fb9\u8868\u793a\u70b9\u4e4b\u95f4\u7684\u5173\u8054\u5173\u7cfb\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5982\u4e0a\u56fe\u5de6\u4fa7\u6240\u793a\uff0c\u70b9\u8868\u793a\u7684\u6709\u516c\u53f8\u3001\u5458\u5de5\u3001\u9879\u76ee\u3002\u8fb9\u8868\u793a\u7684\u662f\u4ed6\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5305\u62ec\uff1a\u516c\u53f8\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u96c7\u4f63\u5173\u7cfb\uff0c\u5458\u5de5\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u597d\u53cb\u5173\u7cfb\uff0c\u9879\u76ee\u548c\u5458\u5de5\u4e4b\u95f4\u7684\u53c2\u4e0e\u5173\u7cfb\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u70b9\u548c\u8fb9\u4e0a\u53ef\u4ee5\u9644\u52a0\u5c5e\u6027\uff0c\u6bd4\u5982\u5458\u5de5\u7684\u5de5\u53f7\uff0c\u96c7\u4f63\u7684\u65f6\u95f4\uff0c\u8fd9\u6837\u7684\u56fe\u662f\u5c5e\u6027\u56fe\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u6211\u4eec\u53ef\u4ee5\u7528\u56fe\u7684\u65b9\u5f0f\u6765\u62bd\u8c61\u5730\u8868\u793a\u5b9e\u4f53\u53ca\u5176\u5173\u8054\u5173\u7cfb\uff0c\u56fe\u6709\u975e\u5e38\u4e30\u5bcc\u7684\u8868\u8fbe\u80fd\u529b\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u7684\u5458\u5de5\u56fe\u8c31\uff0c\u56fe\u8fd8\u53ef\u4ee5\u7528\u4e8e\u91d1\u878d\u3001\u5de5\u4e1a\u3001\u533b\u7597\u7b49\u5404\u4e2a\u9886\u57df\u3002\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u56fe\u7684\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\uff0c\u6bd4\u5982\u91d1\u878d\u4ea4\u6613\u56fe\uff0c\u70b9\u8fb9\u89c4\u6a21\u53ef\u80fd\u5230\u8fbe\u767e\u4ebf\uff0c\u4e0e\u5176\u540c\u65f6\uff0c\u57fa\u4e8e\u56fe\u7684\u67e5\u8be2\u901a\u5e38\u4f1a\u590d\u6742\uff0c\u6700\u5178\u578b\u7684\u662fK\u8df3\u67e5\u8be2\uff0c\u6bcf\u589e\u52a0\u4e00\u8df3\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u5448\u6307\u6570\u589e\u957f\u3002"})]})}function d(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(h,{...t})}):h(t)}},2506:(t,e,n)=>{n.d(e,{A:()=>r});const r=n.p+"assets/images/what-is-graph-6b293bb23abcbbf3f4e4642faed10f59.png"},8453:(t,e,n)=>{n.d(e,{R:()=>i,x:()=>c});var r=n(6540);const s={},o=r.createContext(s);function i(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),r.createElement(o.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/388c432b.bdb1f719.js b/assets/js/388c432b.bdb1f719.js
new file mode 100644
index 0000000000..15c7483bc0
--- /dev/null
+++ b/assets/js/388c432b.bdb1f719.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2402],{8922:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>n,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=o(4848),i=o(8453);const a={},n="Data Export",s={id:"utility-tools/data-export",title:"Data Export",description:"This document mainly introduces the data export function of TuGraph.",source:"@site/../docs/en-US/source/6.utility-tools/2.data-export.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/data-export",permalink:"/tugraph-db/en/utility-tools/data-export",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Data Importing",permalink:"/tugraph-db/en/utility-tools/data-import"},next:{title:"Backup and Restore",permalink:"/tugraph-db/en/utility-tools/backup-and-restore"}},d={},l=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Data Export",id:"2data-export",level:2}];function c(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"data-export",children:"Data Export"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document mainly introduces the data export function of TuGraph."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsxs)(t.p,{children:["TuGraph can use the tool ",(0,r.jsx)(t.code,{children:"lgraph_export"})," to export data from the database that has been imported successfully. The 'lgraph_export' tool can export the data of the specified TuGraph database to the specified directory in the form of 'csv' or 'json' file, and export the configuration file 'import.config'. That required for re-importing the data."]}),"\n",(0,r.jsx)(t.h2,{id:"2data-export",children:"2.Data Export"}),"\n",(0,r.jsx)(t.p,{children:"The following is an example of a command for the tool:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"$ lgraph_export -d {database_dir} -e {export_destination_dir} -g {graph_to_use} -u {username} -p {password} -f {output_format}\n"})}),"\n",(0,r.jsx)(t.p,{children:"Details:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-d {database_dir}"})," specifies the directory of the database from which the data will be exported. The default value is./testdb '."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-e {export_destination_dir}"})," specifies the directory where the export file is stored. The default value is./exportdir."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-g {graph_to_use}"})," specifies the type of graph database. default is' default '."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-u {username}"})," Specifies the name of the user who performs the export operation."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-p {password}"})," Specifies the password of the user who performs the export operation."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-s {field_separator}"})," specifies the separator for the exported file. The default is comma."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-f {output_format}"})," specifies the format of the exported data. It can be 'json' or 'csv'."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-h"})," In addition to the specified parameters, you can also use this parameter to view the help of the tool."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>n,x:()=>s});var r=o(6540);const i={},a=r.createContext(i);function n(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/388c432b.e72bc729.js b/assets/js/388c432b.e72bc729.js
deleted file mode 100644
index 9f13f51ffb..0000000000
--- a/assets/js/388c432b.e72bc729.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2402],{7284:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>n,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var r=o(4848),i=o(8453);const s={},n="Data Export",a={id:"en-US/source/utility-tools/data-export",title:"Data Export",description:"This document mainly introduces the data export function of TuGraph.",source:"@site/../docs/en-US/source/6.utility-tools/2.data-export.md",sourceDirName:"en-US/source/6.utility-tools",slug:"/en-US/source/utility-tools/data-export",permalink:"/tugraph-db/en-US/source/utility-tools/data-export",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Data Importing",permalink:"/tugraph-db/en-US/source/utility-tools/data-import"},next:{title:"Backup and Restore",permalink:"/tugraph-db/en-US/source/utility-tools/backup-and-restore"}},d={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Data Export",id:"2data-export",level:2}];function l(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"data-export",children:"Data Export"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document mainly introduces the data export function of TuGraph."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsxs)(t.p,{children:["TuGraph can use the tool ",(0,r.jsx)(t.code,{children:"lgraph_export"})," to export data from the database that has been imported successfully. The 'lgraph_export' tool can export the data of the specified TuGraph database to the specified directory in the form of 'csv' or 'json' file, and export the configuration file 'import.config'. That required for re-importing the data."]}),"\n",(0,r.jsx)(t.h2,{id:"2data-export",children:"2.Data Export"}),"\n",(0,r.jsx)(t.p,{children:"The following is an example of a command for the tool:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"$ lgraph_export -d {database_dir} -e {export_destination_dir} -g {graph_to_use} -u {username} -p {password} -f {output_format}\n"})}),"\n",(0,r.jsx)(t.p,{children:"Details:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-d {database_dir}"})," specifies the directory of the database from which the data will be exported. The default value is./testdb '."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-e {export_destination_dir}"})," specifies the directory where the export file is stored. The default value is./exportdir."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-g {graph_to_use}"})," specifies the type of graph database. default is' default '."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-u {username}"})," Specifies the name of the user who performs the export operation."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-p {password}"})," Specifies the password of the user who performs the export operation."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-s {field_separator}"})," specifies the separator for the exported file. The default is comma."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-f {output_format}"})," specifies the format of the exported data. It can be 'json' or 'csv'."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"-h"})," In addition to the specified parameters, you can also use this parameter to view the help of the tool."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>n,x:()=>a});var r=o(6540);const i={},s=r.createContext(i);function n(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3904aa5b.2b2c68dc.js b/assets/js/3904aa5b.2b2c68dc.js
deleted file mode 100644
index db242cc0d9..0000000000
--- a/assets/js/3904aa5b.2b2c68dc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9924],{9443:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>j,frontMatter:()=>l,metadata:()=>t,toc:()=>h});var r=s(4848),d=s(8453);const l={},i="Cypher API",t={id:"zh-CN/source/query/cypher",title:"Cypher API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86TuGraph-Cypher\u7684\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/8.query/1.cypher.md",sourceDirName:"zh-CN/source/8.query",slug:"/zh-CN/source/query/cypher",permalink:"/tugraph-db/zh-CN/source/query/cypher",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RESTful API Legacy",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api-legacy"},next:{title:"ISO GQL",permalink:"/tugraph-db/zh-CN/source/query/gql"}},c={},h=[{value:"1.Operators",id:"1operators",level:2},{value:"1.1.Summary",id:"11summary",level:3},{value:"1.2.General operators",id:"12general-operators",level:3},{value:"1.3.Mathematical operators",id:"13mathematical-operators",level:3},{value:"1.4.Comparison operators",id:"14comparison-operators",level:3},{value:"1.5.String-specific comparison operators",id:"15string-specific-comparison-operators",level:3},{value:"1.6.Boolean operators",id:"16boolean-operators",level:3},{value:"1.7.String operators",id:"17string-operators",level:3},{value:"1.8.List operators",id:"18list-operators",level:3},{value:"2.Clauses",id:"2clauses",level:2},{value:"2.1.Summary",id:"21summary",level:3},{value:"2.2.MATCH",id:"22match",level:3},{value:"2.3.RETURN",id:"23return",level:3},{value:"2.4.WHERE",id:"24where",level:3},{value:"2.5.SKIP",id:"25skip",level:3},{value:"2.6.LIMIT",id:"26limit",level:3},{value:"2.7.CREATE",id:"27create",level:3},{value:"2.8.CALL[\u2026YIELD]",id:"28callyield",level:3},{value:"2.9.UNION",id:"29union",level:3},{value:"3.Functions",id:"3functions",level:2},{value:"3.1.Whole List Of Functions",id:"31whole-list-of-functions",level:3},{value:"3.2.Predicate functions",id:"32predicate-functions",level:3},{value:"3.3.Scalar functions",id:"33scalar-functions",level:3},{value:"3.4.Aggregating functions",id:"34aggregating-functions",level:3},{value:"3.5.List Funtions:",id:"35list-funtions",level:3},{value:"3.6.Mathematical functions",id:"36mathematical-functions",level:3},{value:"4.\u9644\u5f551. \u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",id:"4\u9644\u5f551-\u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",level:2},{value:"5.\u9644\u5f552. \u5185\u7f6eprocedures\u5217\u8868",id:"5\u9644\u5f552-\u5185\u7f6eprocedures\u5217\u8868",level:2},{value:"5.1.procedures\u6837\u4f8b",id:"51procedures\u6837\u4f8b",level:3},{value:"5.2.\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",id:"52\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",level:3}];function x(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"cypher-api",children:"Cypher API"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86TuGraph-Cypher\u7684\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1operators",children:"1.Operators"}),"\n",(0,r.jsx)(e.h3,{id:"11summary",children:"1.1.Summary"}),"\n",(0,r.jsx)(e.p,{children:"Operators\u652f\u6301\u8fdb\u5ea6\u4e00\u89c8\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(e.th,{children:"\u652f\u6301"}),(0,r.jsx)(e.th,{children:"\u5f85\u652f\u6301"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"General operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"DISTINCT"}),", ",(0,r.jsx)(e.code,{children:"."})," for property access"]}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"[]"})," for dynamic property access"]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Mathematical operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"}),", ",(0,r.jsx)(e.code,{children:"-"}),", ",(0,r.jsx)(e.code,{children:"*"}),", ",(0,r.jsx)(e.code,{children:"/"}),", ",(0,r.jsx)(e.code,{children:"%"}),", ",(0,r.jsx)(e.code,{children:"^"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Comparison operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"="}),", ",(0,r.jsx)(e.code,{children:"<>"}),", ",(0,r.jsx)(e.code,{children:"<"}),", ",(0,r.jsx)(e.code,{children:">"}),", ",(0,r.jsx)(e.code,{children:"<="}),", ",(0,r.jsx)(e.code,{children:">="}),", ",(0,r.jsx)(e.code,{children:"IS NULL"}),", ",(0,r.jsx)(e.code,{children:"IS NOT NULL"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String-specific comparison operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"STARTS WITH"}),", ",(0,r.jsx)(e.code,{children:"ENDS WITH"}),", ",(0,r.jsx)(e.code,{children:"CONTAINS"}),", ",(0,r.jsx)(e.code,{children:"REGEXP"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Boolean operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"AND"}),", ",(0,r.jsx)(e.code,{children:"OR"}),", ",(0,r.jsx)(e.code,{children:"XOR"}),", ",(0,r.jsx)(e.code,{children:"NOT"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"})," for concatenation"]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"List operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"})," for concatenation, ",(0,r.jsx)(e.code,{children:"IN"})," to check existence of an element in a list, ",(0,r.jsx)(e.code,{children:"[]"})," for accessing element(s)"]}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"12general-operators",children:"1.2.General operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using the DISTINCT operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (p:person) RETURN DISTINCT p.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u274f Accessing properties of a nested literal map using the ",(0,r.jsx)(e.code,{children:"."})," operator"]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH {person: {name: 'Anne', age: 25}} AS p\nRETURN p.person.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u274f Filtering on a dynamically-computed property key using the ",(0,r.jsx)(e.code,{children:"[]"})," operator"]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (a:Restaurant {name: 'Hungry Jo', rating_hygiene: 10, rating_food: 7}),\n (b:Restaurant {name: 'Buttercup Tea Rooms', rating_hygiene: 5, rating_food:6}),\n (c1:Category {name: 'hygiene'}), (c2:Category {name: 'food'})\n"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (restaurant:Restaurant), (category:Category)\nWHERE restaurant["rating_" + category.name] > 6\nRETURN DISTINCT restaurant.name\n'})}),"\n",(0,r.jsx)(e.h3,{id:"13mathematical-operators",children:"1.3.Mathematical operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 Using the exponentiation operator \xa0",(0,r.jsx)(e.code,{children:"^"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 2 AS number, 3 AS exponent\nRETURN number ^ exponent AS result\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 Using the unary minus operator ",(0,r.jsx)(e.code,{children:"-"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH -3 AS a, 4 AS b\nRETURN b - a AS result\n"})}),"\n",(0,r.jsx)(e.h3,{id:"14comparison-operators",children:"1.4.Comparison operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Comparing two numbers"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 4 AS one, 3 AS two\nRETURN one > two AS result\n"})}),"\n",(0,r.jsx)(e.h3,{id:"15string-specific-comparison-operators",children:"1.5.String-specific comparison operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using STARTS WITH to filter names"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['John', 'Mark', 'Jonathan', 'Bill'] AS somenames\nUNWIND somenames AS names\nWITH names AS candidate\nWHERE candidate STARTS WITH 'Jo'\nRETURN candidate\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using REGEXP to filter names"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['John', 'Mark', 'Jonathan', 'Bill'] AS somenames\nUNWIND somenames AS names\nWITH names AS candidate\nWHERE candidate REGEXP 'Jo.*n'\nRETURN candidate\n"})}),"\n",(0,r.jsx)(e.h3,{id:"16boolean-operators",children:"1.6.Boolean operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using boolean operators to filter numbers"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH [2, 4, 7, 9, 12] AS numberlist\nUNWIND numberlist AS number\nWITH number\nWHERE number = 4 OR (number > 6 AND number < 10)\nRETURN number\n"})}),"\n",(0,r.jsx)(e.h3,{id:"17string-operators",children:"1.7.String operators"}),"\n",(0,r.jsx)(e.p,{children:"String operators comprise:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 concatenating strings: ",(0,r.jsx)(e.code,{children:"+"})]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"18list-operators",children:"1.8.List operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Concatenating two lists using +"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN [1,2,3,4,5]+[6,7] AS myList\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using IN to check if a number is in a list"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH [2, 3, 4, 5] AS numberlist\nUNWIND numberlist AS number\nWITH number\nWHERE number IN [2, 3, 8]\nRETURN number\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Accessing elements in a list using the [] operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['Anne', 'John', 'Bill', 'Diane', 'Eve'] AS names\nRETURN names[1..3] AS result\n"})}),"\n",(0,r.jsx)(e.h2,{id:"2clauses",children:"2.Clauses"}),"\n",(0,r.jsx)(e.h3,{id:"21summary",children:"2.1.Summary"}),"\n",(0,r.jsx)(e.p,{children:"Clauses\u652f\u6301\u8fdb\u5ea6\u4e00\u89c8\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(e.th,{children:"\u8bed\u6cd5"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading clauses"}),(0,r.jsx)(e.td,{children:"MATCH"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"OPTIONAL MATCH"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"MANDATORY MATCH"}),(0,r.jsx)(e.td,{children:"\u5f85\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Projecting clauses"}),(0,r.jsx)(e.td,{children:"RETURN \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"WITH \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"UNWIND \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading sub-clauses"}),(0,r.jsx)(e.td,{children:"WHERE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"ORDER BY [ASC[ENDING] / DESC[ENDING]]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"SKIP"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"LIMIT"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Writing clauses"}),(0,r.jsx)(e.td,{children:"CREATE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"DELETE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"DETACH DELETE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"SET"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"REMOVE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading/Writing clauses"}),(0,r.jsx)(e.td,{children:"MERGE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"CALL [\u2026YIELD]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Set operations"}),(0,r.jsx)(e.td,{children:"UNION"}),(0,r.jsx)(e.td,{children:"\u5f85\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"UNION ALL"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"22match",children:"2.2.MATCH"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Basic node finding"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Get all nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Get all nodes with a label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (movie:movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Related nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (person {name: 'Laurence Fishburne'})-[]-(movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match with labels"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[]-(movie:movie)\nRETURN movie.title\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Relationship basics"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Outgoing relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[]->(movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Directed relationships and variable"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[r]->(movie)\nRETURN type(r)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on relationship type"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix:movie {title: 'The Matrix'})<-[:acted_in]-(actor)\nRETURN actor.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on multiple relationship types"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix {title: 'The Matrix'})<-[:acted_in|:directed]-(person)\nRETURN person.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on relationship type and use a variable"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix {title: 'The Matrix'})<-[r:acted_in]-(actor)\nRETURN r.role\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Relationships in depth"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Relationship types with uncommon characters"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Rob Reiner'})-[r:`TYPE WITH SPACE`]->()\nRETURN type(r)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Multiple relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (laurence {name: 'Laurence Fishburne'})-[:acted_in]->(movie)<-[:directed]-(director)\nRETURN movie.title, director.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Variable-length relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (laurence {name: 'Laurence Fishburne'})-[:acted_in*1..3]-(movie:movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Relationship variable in variable-length relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (laurence {name: 'Laurence Fishburne'})-[:acted_in*2]-(co_actor)\nRETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Match with properties on a variable-length path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (charlie:person)-[* {blocked:false}]-(martin:person)\nWHERE charlie.name = 'Charlie Sheen' AND martin.name = 'Martin Sheen'\nRETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Zero-length paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix:movie {title: 'The Matrix'})-[*0..1]-(x)\nRETURN x\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Named paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (michael {name: 'Michael Douglas'})-[]->() RETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Matching on a bound relationship"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (a)-[r]->(b)\nWHERE euid(r)="0_3937_0_0_0"\nRETURN a,b\n'})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Shortest path"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Single shortest path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (martin:person {name: 'Carrie-Anne Moss'}), (laurence:person {name: 'Laurence Fishburne'})\nCALL algo.shortestPath(martin, laurence) YIELD nodeCount,totalCost,path RETURN nodeCount,totalCost,path\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 All shortest paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (martin:person {name: 'Carrie-Anne Moss'}), (laurence:person {name: 'Laurence Fishburne'}) WITH martin, laurence\nCALL algo.allShortestPaths(martin, laurence) YIELD nodeIds,relationshipIds,cost RETURN nodeIds,relationshipIds,cost\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Get node or relationship by id"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Node by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE id(n)= 0\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Relationship by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH ()-[r]->()\nWHERE euid(r) = "0_3937_0_0_0"\nRETURN r\n'})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Multiple nodes by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE id(n) IN [0, 3, 5]\nRETURN n\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"23return",children:"2.3.RETURN"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'}) RETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'})-[r:acted_in]->(c)\nRETURN r\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'}) RETURN n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Return all elements"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (a {name: 'A'})-[r]->(b)\nRETURN *\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Variable with uncommon characters"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (`This isn\\'t a common variable`)\nWHERE `This isn\\'t a common variable`.name = 'A'\nRETURN `This isn\\'t a common variable`.happy\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Aliasing a field"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})\nRETURN a.born AS SomethingTotallyDifferent\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Optional properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Other expressions"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})\nRETURN a.born > 1900, \"I'm a literal\", (a)-[]->()\n"})}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"(a)-[]->()"})," \xa0not supported."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Unique results"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})-[]->(b)\nRETURN DISTINCT b\n"})}),"\n",(0,r.jsx)(e.h3,{id:"24where",children:"2.4.WHERE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Basic usage"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Boolean operations"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name = 'Laurence Fishburne' XOR (n.born > 1965 AND n.name = 'Carrie-Anne Moss')\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on node label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n:person\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on node property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.born > 2000\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on relationship property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (n)-[k:acted_in]->(f)\nWHERE k.role = "Trinity"\nRETURN f.title\n'})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on dynamically-computed property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 'AGE' AS propname\nMATCH (n)\nWHERE n[toLower(propname)]< 30\nRETURN n.name, n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Property existence checking"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE exists(n.born)\nRETURN n.name, n.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"String matching"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match the beginning of a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name STARTS WITH 'Pet'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match the ending of a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name ENDS WITH 'ter'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match anywhere within a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name CONTAINS 'ete'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 String matching negation"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE NOT n.name ENDS WITH 's'\nRETURN n.name, n.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["Using path patterns in ",(0,r.jsx)(e.code,{children:"WHERE"})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (tobias {name: 'Tobias'}), (others)\nWHERE others.name IN ['Andres', 'Peter'] AND (tobias)<-[]-(others)\nRETURN others.name, others.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns using NOT"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (persons), (peter {name: 'Peter'})\nWHERE NOT (persons)-[]->(peter)\nRETURN persons.name, persons.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns with properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE (n)-[:KNOWS]-({name: 'Tobias'})\nRETURN n.name, n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on relationship type"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)-[r]->()\nWHERE n.name='Laurence Fishburne' AND type(r) STARTS WITH 'ac'\nRETURN type(r), r.role\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Lists"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 IN operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name IN ['Laurence Fishburne', 'Tobias']\nRETURN a.name, a.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Missing properties and values"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Default to false if property is missing"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.belt = 'white'\nRETURN n.name, n.age, n.belt\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Default to true if property is missing"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.belt = 'white' OR n.belt IS NULL RETURN n.name, n.age, n.belt\nORDER BY n.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on null"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (person)\nWHERE person.name = 'Peter' AND person.belt IS NULL RETURN person.name, person.age,\nperson.belt\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Using ranges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Simple range"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name >= 'Peter'\nRETURN a.name, a.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Composite range"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name > 'Andres' AND a.name < 'Tobias'\nRETURN a.name, a.born\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"25skip",children:"2.5.SKIP"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Skip first three records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP 3\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return middle two records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP 1\nLIMIT 2\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Using an expression with SKIP to return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP toInteger(3*rand())+ 1\n"})}),"\n",(0,r.jsx)(e.h3,{id:"26limit",children:"2.6.LIMIT"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nLIMIT 3\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Using an expression with LIMIT to return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nLIMIT toInteger(3 * rand())+ 1\n"})}),"\n",(0,r.jsx)(e.h3,{id:"27create",children:"2.7.CREATE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"Create nodes"}),"\n"]}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Note"}),"\nTuGraph\u4e0d\u652f\u6301\u521b\u5efa\u7a7a\u7684nodes\uff0c\u4e0d\u652f\u6301\u591alabels\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create single node"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create multiple nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n), (m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create a node with a label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create a node with multiple labels"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:Person:Swedish)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create node and add labels and properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person {id:2001, name: 'Andres'})\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return created node"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person {id:2002, name: 'Andres'})\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Create relationships"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create a relationship between two nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person), (m:movie)\nWHERE n.name = 'Jada Pinkett Smith' AND m.title = 'The Matrix'\nCREATE (n)-[r:write]->(m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create a relationship and set properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person), (m:movie)\nWHERE n.name = 'Jada Pinkett Smith' AND m.title = 'The Matrix'\nCREATE (n)-[r:acted_in{role: 'Trinity'}]->(m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Create a full path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE p = (andres:person {id: 2005, name:'Andres'})-[:acted_in {role: 'Trinity'}]->\n(m:movie {id: 2006})<-[:acted_in {role: 'Trinity'}]-(michael {id: 2006, name:'Michael'})\nRETURN p\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Use parameters with CREATE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Create node with a parameter for the properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:Person $props)\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create multiple nodes with a parameter for their properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"UNWIND $props AS map\nCREATE (n)\nSET n = map\n"})}),"\n",(0,r.jsx)(e.p,{children:"cannot create vertex without label."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"28callyield",children:"2.8.CALL[\u2026YIELD]"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure using CALL"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 View the signature for a procedure"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.procedures() YIELD name, signature\nRETURN signature\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure using a quoted namespace and name"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL `db`.`vertexLabels`\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure with literal arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', 0, 'name')\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure with parameter arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex($indexName,$node,$propKey)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure with mixed literal and parameter arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', $node, 'name')\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure with literal and default arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', 0)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure within a complex query using CALL\u2026YIELD"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels() YIELD label\nRETURN count(label) AS numLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure and filter its results"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels() YIELD label\nWHERE label CONTAINS 'User'\nRETURN count(label) AS numLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure within a complex query and rename its outputs"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.propertyKeys() YIELD propertyKey AS prop\nMATCH (n)\nWHERE n[prop] IS NOT NULL RETURN prop, count(n) AS numNodes\n"})}),"\n",(0,r.jsx)(e.h3,{id:"29union",children:"2.9.UNION"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Combine two queries and retain duplicates"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name AS name\nUNION ALL MATCH (n:movie)\nRETURN n.title AS name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Combine two queries and remove duplicates"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:Actor)\nRETURN n.name AS name\nUNION\nMATCH (n:Movie)\nRETURN n.title AS name\n"})}),"\n",(0,r.jsx)(e.h2,{id:"3functions",children:"3.Functions"}),"\n",(0,r.jsx)(e.h3,{id:"31whole-list-of-functions",children:"3.1.Whole List Of Functions"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u79cd\u7c7b"}),(0,r.jsx)(e.th,{children:"\u529f\u80fd"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Predicate functions"}),(0,r.jsx)(e.td,{children:"exists()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"all()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"any()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"single()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"none()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Scalar functions"}),(0,r.jsx)(e.td,{children:"id()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"euid()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"properties()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"head()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"last()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toBoolean()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toFloat()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toInteger()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toString()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"type()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"startnode()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"endnode()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"size()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"length()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"substring()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"concat()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"label()"}),(0,r.jsx)(e.td,{children:"OpenCypher\u6269\u5c55\u65b9\u6cd5"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Aggregating functions"}),(0,r.jsx)(e.td,{children:"avg()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"collect()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"count()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"max()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"min()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"percentileCont()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"percentileDisc()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"stDev()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"stDevP()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"variance()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"varianceP()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"sum()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"List functions"}),(0,r.jsx)(e.td,{children:"keys()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"labels()"}),(0,r.jsx)(e.td,{children:"\u8fd4\u56de\u7ed3\u679c\u6709\u4e14\u53ea\u6709\u4e00\u4e2alabel"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"nodes()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"range()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"subscript()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Mathematical functions"}),(0,r.jsx)(e.td,{children:"abs()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"ceil()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"floor()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"rand()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"round()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"sign()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String functions"}),(0,r.jsx)(e.td,{children:"/"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"32predicate-functions",children:"3.2.Predicate functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["exists()\njudge it whether a vertex or edge has the field \xa0.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE exists(n.born)\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"exists(name)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n",(0,r.jsx)(e.h3,{id:"33scalar-functions",children:"3.3.Scalar functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["id()\nget the id of vertex.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN id(a)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"vid"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["properties()\nget \xa0a map containing all the properties of a node or relationship.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person {name: 'Laurence Fishburne'})\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["head()\nget the first element of a list.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['one','two','three'] AS coll RETURN coll, head(coll)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"coll"}),(0,r.jsx)(e.th,{children:"head(coll)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["one","two","three"]'}),(0,r.jsx)(e.td,{children:'"one"'})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["last()\nget the last element of a list.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['one','two','three'] AS coll RETURN coll, last(coll)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"coll"}),(0,r.jsx)(e.th,{children:"last(coll)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["one","two","three"]'}),(0,r.jsx)(e.td,{children:'"three"'})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toFloat()\nConverts an integer or string value to a floating point number.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toFloat('11.5')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"float"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"11.5"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toInteger()\nConverts a floating point or string value to an integer value.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toInteger('2.3') AS integer\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"integer"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toString()\nConverts an integer, float, boolean value to a string.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toString(2.3)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["type()\nget the string representation of the relationship type.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)-[r]->()\nWHERE n.name = 'Laurence Fishburne'\nRETURN type(r)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"type"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})})]})]}),"\n",(0,r.jsx)(e.h3,{id:"34aggregating-functions",children:"3.4.Aggregating functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["avg()\nReturns the average of a set of numeric values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN avg(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"avg(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1869.2661654135338"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["collect()\nReturns a list containing the values returned by an expression.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN collect(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"collect(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[1967,...]"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["count()\nReturns the number of values or records.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Laurence Fishburne'})-[]->(x)\nRETURN labels(n), n.born, count(*)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"labels(n)"}),(0,r.jsx)(e.th,{children:"n.born"}),(0,r.jsx)(e.th,{children:"count(*)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["person"]'}),(0,r.jsx)(e.td,{children:"1961"}),(0,r.jsx)(e.td,{children:"3"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["max()\nReturns the maximum value in a set of values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN max(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"max(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2003"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["min()\nReturns the minimum value in a set of values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN min(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"min(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1000"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["percentileCont()\nReturns the percentile of a value over a group using linear interpolation.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN percentileCont(n.born, 0.4)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"percentileCont(n.born, 0.4)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1953"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["percentileDisc()\nReturns the nearest value to the given percentile over a group using a rounding method.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Output:"})," the percentile of the given value over a group.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN percentileDisc(n.born, 0.5)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"percentileDisc(n.age, 0.5)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1959"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["stDev()\nReturns the standard deviation for the given value over a group for a sample of a population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN stDev(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"stDev(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"279.53117993401725"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["stDevP()\nReturns the standard deviation for the given value over a group for an entire population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN stDevP(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"stDevP(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"279.3209270423399"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["variance()\nReturns the variance for the given value over a group for a sample of a population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN variance(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"variance(n.age)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"78137.68055530392"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["varianceP()\nReturns the variance for the given value over a group for an entire population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN varianceP(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"varianceP(n.age)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"78020.18028379219"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["sum()\nReturns the sum of a set of numeric values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN sum(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"sum(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1243062"})})})]}),"\n",(0,r.jsx)(e.h3,{id:"35list-funtions",children:"3.5.List Funtions:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["keys()\nget the field names of some vertex.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN keys(a) LIMIT 1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"keys(a)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:'["name","age","eyes"]'})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["labels()/label()\nReturns a list containing the string representations for all the property names of a node, relationship, or map.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN labels(a) LIMIT 1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"labels"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:'["Person"]'})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"nodes()"}),"\n",(0,r.jsx)(e.p,{children:"Get vertex ids of a path"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (from {name: 'Bob'})-[*1..]->(to {name: 'Alice\"})\nRETURN nodes(p)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"nodes(p)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[0, 1, 10, 12]"})})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"36mathematical-functions",children:"3.6.Mathematical functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["abs()\nget the absolute value of some data.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a:person {name: 'Laurence Fishburne'}),(e:person {name: 'Carrie-Anne Moss'})\nRETURN a.born, e.born, abs(a.born-e.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"a.born"}),(0,r.jsx)(e.th,{children:"e.born"}),(0,r.jsx)(e.th,{children:"abs(a.born - e.born)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"1961"}),(0,r.jsx)(e.td,{children:"1967"}),(0,r.jsx)(e.td,{children:"6"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["ceil()\nReturns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN ceil(0.1)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"ceil(0.1)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1.0"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["floor()\nget the largest floating point number that is less than or equal to the given number and equal to a mathematical integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN floor(0.9)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"floor(0.9)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"0.0"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["round()\nReturns the value of a number rounded to the nearest integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN round(3.141592)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"round"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"3"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["rand()\nReturns returns a random floating point number in the range from 0 (inclusive) to 1 exclusive).\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN rand()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"rand()"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"0.9797131960534085"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["sign()\nGet the signum of the given number: 0 if the number is 0, -1 for any negative number, and 1 for any positive number.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN sign(-17), sign(0.1)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"sign(-17)"}),(0,r.jsx)(e.th,{children:"sign(0.1)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"-1"}),(0,r.jsx)(e.td,{children:"1"})]})})]}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u67e5\u8be2\u8bed\u8a00\u4e0e OpenCypher \u7684\u4e0d\u540c\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["Label \u6570\u91cf\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: Each node/relationship must have one and only one label. So error occurs when there is no label, and the 1st label will be picked as the label if there are more than one label."}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: One node/relationship may have 0 to many labels."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["Schema.\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: TuGraph has strong schema"}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: schema-less"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"4\u9644\u5f551-\u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",children:"4.\u9644\u5f551. \u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u67e5\u8be2\u8bed\u8a00\u4e0eOpenCypher\u7684\u4e0d\u540c\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["Label\u6570\u91cf\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: Each node/relationship must have one and only one label. So error occurs when there is no label, and the 1st label will be picked as the label if there are more than one label."}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: One node/relationship may have 0 to many labels."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["Schema.\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: TuGraph has strong schema"}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: schema-less"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"5\u9644\u5f552-\u5185\u7f6eprocedures\u5217\u8868",children:"5.\u9644\u5f552. \u5185\u7f6eprocedures\u5217\u8868"}),"\n",(0,r.jsx)(e.h3,{id:"51procedures\u6837\u4f8b",children:"5.1.procedures\u6837\u4f8b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.procedures()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available procedures."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {",(0,r.jsx)(e.code,{children:"signature"}),", ",(0,r.jsx)(e.code,{children:"name"}),"}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.procedures()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"signature"}),(0,r.jsx)(e.th,{children:"name"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.vertexLabels() :: (label::STRING)"}),(0,r.jsx)(e.td,{children:"db.vertexLabels"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.edgeLabels() :: (edgeLabels::STRING)"}),(0,r.jsx)(e.td,{children:"db.edgeLabels"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.indexes() :: (index::LIST)"}),(0,r.jsx)(e.td,{children:"db.indexes"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.subgraph()"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vids"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"list of vertex id"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"Get a json containing all the properties of nodes and relationships."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.subgraph([3937,4126,4066,4010])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"subgraph"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsxs)(e.td,{children:['{"nodes":[{"identity":3937,"label":"movie","properties":{"duration":136,"id":1,"poster_image":"',(0,r.jsx)(e.a,{href:"http://image.tmdb.org/t/p/w185/gynBNzwyaHKtXqlEKKLioNkjKgN.jpg%22,%22rated%22:%22R%22,%22summary%22:%22Thomas",children:'http://image.tmdb.org/t/p/w185/gynBNzwyaHKtXqlEKKLioNkjKgN.jpg","rated":"R","summary":"Thomas'}),' A. Anderson is a man living two lives. By day he is an average computer programmer and by night a malevolent hacker known as Neo who finds himself targeted by the police when he is contacted by Morpheus a legendary computer hacker who reveals the shocking truth about our reality.","tagline":"Welcome to the Real World.","title":"The Matrix"}},{"identity":4010,"label":"user","properties":{"id":44,"login":"Howard"}},{"identity":4066,"label":"user","properties":{"id":202,"login":"Enoch"}},{"identity":4126,"label":"user","properties":{"id":464,"login":"Wilburn"}}],"relationships":[{"dst":4126,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4010,"temporal_id":0},{"dst":4010,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4066,"temporal_id":0},{"dst":4066,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4126,"temporal_id":0}]}']})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.vertexLabels()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available vertex labels of vertex."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {",(0,r.jsx)(e.code,{children:"name"}),"}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"label"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"genre"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"keyword"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"movie"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.edgeLabels()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available labels of edges."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {edge labels}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.edgeLabels()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"relationshipType"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"directed"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createVertexLabel(label_name, primary_field, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create a vertex label."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of vertex label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary_field"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"primary field of vertex label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, true]"}),", where true is specified only for optional fields."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," If successful, it returns a success message."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createVertexLabel('Person', 'id', 'id', 'int64', false, 'name', 'string', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added label [Person]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.getLabelSchema(label_type, label_name)"}),"\n",(0,r.jsx)(e.p,{children:"Get the schema definition of the label in a subgraph."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," subgraph, as specified in the ",(0,r.jsx)(e.code,{children:"graph"})," parameter in REST or RPC request."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of label specifications, in which each element is a list of the following fields:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"type of the field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"whether the field is optional"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.getLabelSchema('vertex', 'Person')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"name"}),(0,r.jsx)(e.th,{children:"type"}),(0,r.jsx)(e.th,{children:"optional"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"id"}),(0,r.jsx)(e.td,{children:"INT32"}),(0,r.jsx)(e.td,{children:"false"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"born"}),(0,r.jsx)(e.td,{children:"INT32"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"STRING"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"poster_image"}),(0,r.jsx)(e.td,{children:"STRING"}),(0,r.jsx)(e.td,{children:"true"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createLabel(label_type, label_name, extra, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create a vertex or edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"extra"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"for edge, it means constraints; for vertex, it means primary property"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),".\nfor edge, ",(0,r.jsx)(e.code,{children:"extra"})," should be a json array string, like this ",(0,r.jsx)(e.code,{children:'[["label1","label2"], ["label3","label4"]]'}),", if edge has no constraints, give an empty json array, like this ",(0,r.jsx)(e.code,{children:"[]"})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createLabel('vertex', 'new_label', 'id', ['id','int32',false], ['name','string', true]);\nCALL db.createLabel('edge', 'new_edge', '[[\"id1\",\"id2\"]]', ['id','int32',false], ['name', 'string', true]);\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Vertex label [new_label] successfully added.\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.deleteLabel(label_type, label_name)"}),"\n",(0,r.jsx)(e.p,{children:"Delete a vertex or edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.deleteLabel('vertex', 'Person')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelDelFields(label_type, label_name, field_names)"}),"\n",(0,r.jsx)(e.p,{children:"Delete specified fields from the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_names"}),(0,r.jsx)(e.td,{children:"list of strings"}),(0,r.jsx)(e.td,{children:"names of the fields to delete"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelDelFields('vertex', 'Person', ['name', 'image'])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelAddFields(label_type, label_name, field_value_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Adds specified fields to the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_value_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_value_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, field_value, optional]"}),", where: ",(0,r.jsx)(e.code,{children:"field_value"})," is the default value of the field."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelAddFields(\n'vertex',\n'new_label',\n['birth_date', DATE, '', true],\n['img', BLOB, '', true])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelModFields(label_type, label_name, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Modifies the specified fields in the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),".The target field should exist."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelModFields(\n'vertex',\n'new_label',\n['birth_date', DATETIME, true],\n['gender', BOOL, true])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createEdgeLabel( label_name, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create an edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"edge constraints"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),", where optional is specified as true, only for optional fields."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," is a json array string, This parameter limits the combination of starting and ending vertex of the edge, for example: ",(0,r.jsx)(e.code,{children:'\'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]\''}),", which limits the edge direction can only be from ",(0,r.jsx)(e.code,{children:"vertex_label1"})," to ",(0,r.jsx)(e.code,{children:"vertex_label2"})," or from ",(0,r.jsx)(e.code,{children:"vertex_label3"})," to ",(0,r.jsx)(e.code,{children:"vertex_label4"}),". If you don't want to have any constraints, give an empty array string, like this ",(0,r.jsx)(e.code,{children:"'[]'"})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createEdgeLabel('KNOWS', '[]', 'name', 'int32', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added type [KNOWS]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.addIndex(label_name, field_name, unique)"}),"\n",(0,r.jsx)(e.p,{children:"create an index on some field of one vertex label ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"specification of a field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is unique"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.addIndex('Person', 'id', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added index [Perosn:id]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.addEdgeIndex(label_name, field_name, unique, pair_unique)"}),"\n",(0,r.jsx)(e.p,{children:"create an index on some field of one edge label ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"specification of a field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is unique"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"pair_unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is pair_unique"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.addEdgeIndex('BornIn', 'id', true, false)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added index [BornIn:id]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.changePassword(current_password ,new_password)"}),"\n",(0,r.jsx)(e.p,{children:"Change the current user's password."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the current password"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"new password"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.changePassword('73@TuGraph','admin')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.changeUserPassword(user_name, new_password)"}),"\n",(0,r.jsx)(e.p,{children:"Change the current user's password."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user's name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"new password"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.changeUserPassword('quest','73@TuGraph')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.createUser(user_name, password)"}),"\n",(0,r.jsx)(e.p,{children:"create new user on this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the new user name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the password of new user"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.createUser('quest',\"admin\")\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.deleteUser(user_name)"}),"\n",(0,r.jsx)(e.p,{children:"delete user on this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user name to be deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.deleteUser('quest')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.listUsers()"}),"\n",(0,r.jsx)(e.p,{children:"get all user's name of the graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of user names, in which each element is a list of the following fields:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user.name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is.admin"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"the permission of this user"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.listUsers()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"user.name"}),(0,r.jsx)(e.th,{children:"is.admin"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"admin"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.showCurrentUser()"}),"\n",(0,r.jsx)(e.p,{children:"get current user's name."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of user names, in which each element is a list of the following fields:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user.user"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the current user name"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.showCurrentUser()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"user.name"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"admin"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.listAllowedHosts()"}),"\n",(0,r.jsx)(e.p,{children:"get the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of ips which are allowed."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.listAllowedHosts()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"host"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"192.168.1.22"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.deleteAllowedHosts(hosts)"}),"\n",(0,r.jsx)(e.p,{children:"delete some ips from the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"the number of ip which been deleted."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.deleteAllowedHosts('192.168.1.22','192.168.1.23')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.addAllowedHosts(hosts)"}),"\n",(0,r.jsx)(e.p,{children:"add some ips from the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"the number of ip which been added."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.addAllowedHosts('192.168.1.22','192.168.1.23')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.createGraph(graph_name, description, max_size_GB)"}),"\n",(0,r.jsx)(e.p,{children:"create a new subgraph in this graph database ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of new subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"description of new subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"max_size_GB"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"Upper limit of subgraph capacity"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.createGraph('graph1', 'description', 2045)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.deleteGraph(graph_name)"}),"\n",(0,r.jsx)(e.p,{children:"delete a subgraph in this graph database ."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of subgraph to been deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.deleteGraph('graph1')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.modGraph(graph_name, config)"}),"\n",(0,r.jsx)(e.p,{children:"delete a subgraph in this graph database ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of subgraph to been deleted"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"map"}),(0,r.jsx)(e.td,{children:"the configuration to be modified"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.modGraph('graph1',{description:'this graph', max_size_GB:20})\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.listGraphs()"}),"\n",(0,r.jsx)(e.p,{children:"get all subgraphs in this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {subgraph and configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.listGraphs()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"graph.name"}),(0,r.jsx)(e.th,{children:"configuration"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default"}),(0,r.jsx)(e.td,{children:'{"description":"","max_size_GB":1024}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph1"}),(0,r.jsx)(e.td,{children:'{"description":"this graph","max_size_GB":20}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.listUserGraphs(user_name)"}),"\n",(0,r.jsx)(e.p,{children:"get subgraph list which specified user can read or write"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {subgraph and configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'CALL dbms.graph.listUserGraphs("test_user")\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"graph.name"}),(0,r.jsx)(e.th,{children:"configuration"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default"}),(0,r.jsx)(e.td,{children:'{"description":"","max_size_GB":1024}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph1"}),(0,r.jsx)(e.td,{children:'{"description":"this graph","max_size_GB":20}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.config.list()"}),"\n",(0,r.jsx)(e.p,{children:"get config of this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.config.list()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"name"}),(0,r.jsx)(e.th,{children:"value"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"bind_host"}),(0,r.jsx)(e.td,{children:"0.0.0.0"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"durable"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.config.update(updates)"}),"\n",(0,r.jsx)(e.p,{children:"get some config of this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.config.update({\n enable_ip_check:false,\n durable:true,\n optimistic_txn:true,\n enable_audit_log:true})\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Update succeeded.\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.takeSnapshot()"}),"\n",(0,r.jsx)(e.p,{children:"take the snapshot on this current graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.takeSnapshot()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"path"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"log/db/snapshot/2020-07-20_17.20.03"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.listBackupFiles()"}),"\n",(0,r.jsx)(e.p,{children:"get the path of backuped files."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.listBackupFiles()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"path"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"tugraph/db/binlog/binlog_0"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.shortestPath(startNode, endNode, config)"}),"\n",(0,r.jsx)(e.p,{children:"get one of the shortest paths between two vertexes."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"startNode"}),(0,r.jsx)(e.td,{children:"Node"}),(0,r.jsx)(e.td,{children:"the source node of paths"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"endNode"}),(0,r.jsx)(e.td,{children:"Node"}),(0,r.jsx)(e.td,{children:"the destination node paths"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"MAP"}),(0,r.jsx)(e.td,{children:"the filter of shortest paths, the formate as {maxHops:3, relationshipQuery:'HAS_CHILD'}"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it will returns one group result of the shortest path."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n1 {name:'Hugo Weaving'}),(n2 {title:'The Matrix'})\nCALL algo.shortestPath(n1,n2) YIELD nodeCount,totalCost RETURN nodeCount,totalCost\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"nodeCount"}),(0,r.jsx)(e.th,{children:"totalCost"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"2"}),(0,r.jsx)(e.td,{children:"1"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.allShortestPaths(startNode, endNode, config))"}),"\n",(0,r.jsx)(e.p,{children:"get the path of backuped files."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n1 {name:'Hugo Weaving'}),(n2 {title:'The Matrix'})\nCALL algo.allShortestPaths(n1,n2) YIELD nodeIds,cost RETURN nodeIds,cost\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"nodeIds"}),(0,r.jsx)(e.th,{children:"cost"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"[2,665]"}),(0,r.jsx)(e.td,{children:"1"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.algo.native.extract(id, config))"}),"\n",(0,r.jsx)(e.p,{children:"get the field values of a list of vertexes or edges."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"id"}),(0,r.jsx)(e.td,{children:"ANY"}),(0,r.jsx)(e.td,{children:"the id of vertexes or edges , the id must be variable"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"MAP"}),(0,r.jsx)(e.td,{children:"the configuration of this extraction of vertexes or edges"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"config"})," is a map in the form of ",(0,r.jsx)(e.code,{children:"{isNode:true, filed:'HAS_CHILD'}"}),", if ",(0,r.jsx)(e.code,{children:"isNode"})," is specified true, the ",(0,r.jsx)(e.code,{children:"id"})," is a vertex id, or it is an edge id."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a list of the value of vertexes or edges specified field ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"with [2,3] as vids CALL algo.native.extract(vids,{isNode:true, field:'id'})\nYIELD value RETURN value\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"value"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[4,5]"})})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"52\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",children:"5.2.\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Name"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Signature"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.subgraph"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u70b9\u7684\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"db.subgraph(vids::LIST) :: (subgraph::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.vertexLabels"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709Vertex Label"}),(0,r.jsx)(e.td,{children:"db.vertexLabels() :: (label::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.edgeLabels"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709Edge Label"}),(0,r.jsx)(e.td,{children:"db.edgeLabels() :: (edgeLabels::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.indexes"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.indexes() :: (label::STRING,field::STRING,label_type:STRING,unique::BOOLEAN,pair_unique::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.listLabelIndexes"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2aLabel\u76f8\u5173\u7684\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.listLabelIndexes(label_name:STRING,label_type:STRING) :: (label::STRING,field::STRING,unique::BOOLEAN,pair_unique::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.warmup"}),(0,r.jsx)(e.td,{children:"\u9884\u70ed\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.warmup() :: (time_used::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createVertexLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaVertex Label"}),(0,r.jsx)(e.td,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaVertex/Edge Label"}),(0,r.jsx)(e.td,{children:"db.createLabel(label_type::STRING,label_name::STRING,extra::STRING,field_specs::LIST) :: ()"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getLabelSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51falabel schema"}),(0,r.jsx)(e.td,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getVertexSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u70b9\u7684 schema"}),(0,r.jsx)(e.td,{children:"db.getVertexSchema(label::STRING) :: (schema::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getEdgeSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u8fb9\u7684 schema"}),(0,r.jsx)(e.td,{children:"db.getEdgeSchema(label::STRING) :: (schema::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteLabel"}),(0,r.jsx)(e.td,{children:"\u5220\u9664Vertex/Edge Label"}),(0,r.jsx)(e.td,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelDelFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label\u5220\u9664\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"db.alterLabelDelFields(label_type::STRING,label_name::STRING,del_fields::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelAddFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label\u6dfb\u52a0field"}),(0,r.jsx)(e.td,{children:"db.alterLabelAddFields(label_type::STRING,label_name::STRING,add_field_spec_values::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelModFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label field"}),(0,r.jsx)(e.td,{children:"db.alterLabelModFields(label_type::STRING,label_name::STRING,mod_field_specs::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createEdgeLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaEdge Label"}),(0,r.jsx)(e.td,{children:"db.createEdgeLabel(type_name::STRING,field_specs::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addIndex(label_name::STRING,field_name::STRING,unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addEdgeIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addEdgeIndex(label_name::STRING,field_name::STRING,unique::BOOLEAN,pair_unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addVertexCompositeIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7ec4\u5408\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addVertexCompositeIndex(label_name::STRING,field_names::LIST,unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteIndex(label_name::STRING,field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteCompositeIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7ec4\u5408\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteIndex(label_name::STRING,field_names::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.backup"}),(0,r.jsx)(e.td,{children:"\u5907\u4efd\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.backup(destination::STRING) :: ()"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.procedures"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709procedures"}),(0,r.jsx)(e.td,{children:"dbms.procedures() :: (name::STRING,signature::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.changePassword"}),(0,r.jsx)(e.td,{children:"\u66f4\u6539\u5f53\u524d\u7528\u6237\u7684\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"dbms.security.changePassword(current_password::STRING,new_password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.changeUserPassword"}),(0,r.jsx)(e.td,{children:"\u66f4\u6539\u6307\u5b9a\u7528\u6237\u7684\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"dbms.security.changeUserPassword(user_name::STRING,new_password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.createUser"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.createUser(user_name::STRING,password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteUser"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteUser(user_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listUsers"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.listUsers() :: (user_name::STRING,user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.showCurrentUser"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u5f53\u524d\u7528\u6237\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.showCurrentUser() :: (current_user::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserPermissions"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6307\u5b9a\u7528\u6237\u7684\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserPermissions(user_name::STRING) :: (user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.createGraph"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.modGraph"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u5b50\u56fe\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"dbms.graph.modGraph(graph_name::STRING,config::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.deleteGraph"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.deleteGraph(graph_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.listGraphs"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.listGraphs() :: (graph_name::STRING,configuration::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.getGraphInfo"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6307\u5b9a\u5b50\u56fe\u7684\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.graph.getGraphInfo(graph_name::STRING)::(graph_name::STRING,configuration::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.addAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u6dfb\u52a0ip\u5230\u4fe1\u4efb\u5217\u8868"}),(0,r.jsx)(e.td,{children:"dbms.security.addAllowedHosts(hosts::LIST) :: (num_new::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u4ece\u4fe1\u4efb\u5217\u8868\u5220\u9664ip"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteAllowedHosts(hosts::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u4fe1\u4efb\u5217\u8868\u4e2d\u7684\u4e3b\u673aip"}),(0,r.jsx)(e.td,{children:"dbms.security.listAllowedHosts() :: (host::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.config.update"}),(0,r.jsx)(e.td,{children:"\u66f4\u65b0TuGraph\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"dbms.config.update(updates::MAP) :: (message::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.config.list"}),(0,r.jsx)(e.td,{children:"\u5217\u51faTuGraph\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"dbms.config.list() :: (name::STRING,value::ANY)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.shortestPath"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u4e24\u4e2a\u70b9\u95f4\u7684\u6700\u77ed\u8def\u5f84"}),(0,r.jsx)(e.td,{children:"algo.shortestPath(startNode::NODE,endNode::NODE,config::MAP) :: (nodeCount::INTEGER,totalCost::FLOAT)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.allShortestPaths"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u4e24\u4e2a\u70b9\u95f4\u7684\u6240\u6709\u6700\u77ed\u8def\u5f84"}),(0,r.jsx)(e.td,{children:"algo.allShortestPaths(startNode::NODE,endNode::NODE,config::MAP) :: (nodeIds::LIST,relationshipIds::LIST,cost::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.native.extract"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u6307\u5b9aVertexId/EdgeUid\uff08\u5217\u8868\uff09\u6307\u5b9afield\u7684\u503c\uff08\u5217\u8868\uff09"}),(0,r.jsx)(e.td,{children:"algo.native.extract(id::ANY,config::MAP) :: (value::ANY)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.flushDB"}),(0,r.jsx)(e.td,{children:"\u5237\u65b0db"}),(0,r.jsx)(e.td,{children:"db.flushDB() :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listRoles"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.listRoles() :: (role_name::STRING,role_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.createRole"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.createRole(role_name::STRING,desc::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteRole"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteRole(role_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getRoleInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u89d2\u8272\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.getRoleInfo(role::STRING) :: (role_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.disableRole"}),(0,r.jsx)(e.td,{children:"\u7981\u7528/\u542f\u7528\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.disableRole(role::STRING,disable::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleDesc"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleDesc(role::STRING,description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.rebuildRoleAccessLevel"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u89d2\u8272\u6743\u9650\u5e76\u91cd\u5efa"}),(0,r.jsx)(e.td,{children:"dbms.security.rebuildRoleAccessLevel(role::STRING,access_level::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleAccessLevel"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u5bf9\u6307\u5b9a\u56fe\u7684\u8bbf\u95ee\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleAccessLevel(role::STRING,access_level::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleFieldAccessLevel"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u5bf9\u6307\u5b9a\u5c5e\u6027\u7684\u8bbf\u95ee\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleFieldAccessLevel(role::STRING,graph::STRING,label::STRING,field::STRING,label_type::STRING,field_access_level::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u7528\u6237\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserInfo(user::STRING) :: (user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.disableUser"}),(0,r.jsx)(e.td,{children:"\u7981\u7528/\u542f\u7528\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.disableUser(user::STRING,disable::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setCurrentDesc"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u5f53\u524d\u7528\u6237\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.setCurrentDesc(description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setUserDesc"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u7528\u6237\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.setUserDesc(user::STRING,description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserMemoryUsage"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u7528\u6237\u5185\u5b58\u7528\u91cf"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserMemoryUsage(user::STRING) :: (memory_usage::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setUserMemoryLimit"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u7528\u6237\u5185\u5b58\u9650\u5236"}),(0,r.jsx)(e.td,{children:"dbms.security.setUserMemoryLimit(user::STRING,memorylimit::INTEGER) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteUserRoles"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7528\u6237\u4e0e\u89d2\u8272\u7684\u8054\u7cfb"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.rebuildUserRoles"}),(0,r.jsx)(e.td,{children:"\u6e05\u7a7a\u7528\u6237\u89d2\u8272\u7684\u5173\u7cfb\u5e76\u91cd\u5efa"}),(0,r.jsx)(e.td,{children:"dbms.security.rebuildUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.addUserRoles"}),(0,r.jsx)(e.td,{children:"\u65b0\u589e\u7528\u6237\u4e0e\u89d2\u8272\u7684\u8054\u7cfb"}),(0,r.jsx)(e.td,{children:"dbms.security.addUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.loadPlugin"}),(0,r.jsx)(e.td,{children:"\u88c5\u8f7dplugin"}),(0,r.jsx)(e.td,{children:"db.plugin.loadPlugin(plugin_type::STRING,plugin_name::STRING,plugin_content::STRING or MAP,code_type::STRING,plugin_description::STRING,read_only::BOOLEAN,version::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.deletePlugin"}),(0,r.jsx)(e.td,{children:"\u5220\u9664plugin"}),(0,r.jsx)(e.td,{children:"db.plugin.deletePlugin(plugin_type::STRING,plugin_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.listPlugin"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u5df2\u88c5\u8f7d\u7684plugin"}),(0,r.jsx)(e.td,{children:"db.plugin.listPlugin(plugin_type::STRING,plugin_version::STRING) :: (plugin_description::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.getPluginInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6plugin\u7684\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"db.plugin.getPluginInfo(plugin_type::STRING,plugin_name::STRING,show_code::BOOLEAN)::(plugin_description::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.callPlugin"}),(0,r.jsx)(e.td,{children:"\u6267\u884cplugin"}),(0,r.jsx)(e.td,{children:"db.plugin.callPlugin(plugin_type::STRING,plugin_name::STRING,param::STRING,timeout::DOUBLE,in_process::BOOLEAN) :: (success::BOOLEAN,result::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.importor.dataImportor"}),(0,r.jsx)(e.td,{children:"\u5bfc\u5165\u70b9\u6216\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.importor.dataImportor(description::STRING,content::STRING,continue_on_error::BOOLEAN,thread_nums::INTEGER,delimiter::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.importor.schemaImportor"}),(0,r.jsx)(e.td,{children:"\u5bfc\u5165\u70b9\u6216\u8fb9schema"}),(0,r.jsx)(e.td,{children:"db.importor.schemaImportor(description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u6dfb\u52a0\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addFullTextIndex(is_vertex::BOOLEAN, label_name::STRING, field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteFullTextIndex(is_vertex::BOOLEAN, label_name::STRING, field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.rebuildFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u91cd\u5efa\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.rebuildFullTextIndex(vertex_labels::STRING, edge_labels::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.fullTextIndexes"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.fullTextIndexes() :: (is_vertex::BOOLEAN, label::STRING, field::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.count"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u70b9\u8fb9\u603b\u6570"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.count() :: (type::STRING, number::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.countDetail"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u70b9\u8fb9\u603b\u6570\u8be6\u60c5"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.countDetail() :: (is_vertex::BOOLEAN, label::STRING, count::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.refreshCount"}),(0,r.jsx)(e.td,{children:"\u91cd\u65b0\u7edf\u8ba1\u70b9\u8fb9\u6570\u91cf\uff0c\u7edf\u8ba1\u671f\u95f4\u505c\u5199\u3002"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.refreshCount() :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.task.listTasks"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1"}),(0,r.jsx)(e.td,{children:"dbms.task.listTasks()::(tasks::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.task.terminateTask"}),(0,r.jsx)(e.td,{children:"\u4e2d\u6b62\u4efb\u52a1"}),(0,r.jsx)(e.td,{children:"dbms.task.terminateTask(task_id::STRING)::(::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.ha.clusterInfo"}),(0,r.jsx)(e.td,{children:"HA\u6a21\u5f0f\u4e0b\u67e5\u770b\u96c6\u7fa4\u72b6\u6001"}),(0,r.jsx)(e.td,{children:"dbms.ha.clusterInfo() :: (cluster_info::LIST, is_master::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.dropDB"}),(0,r.jsx)(e.td,{children:"\u6e05\u7a7a\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"db.dropDB() :: (::VOID)"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,d.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(x,{...n})}):x(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>i,x:()=>t});var r=s(6540);const d={},l=r.createContext(d);function i(n){const e=r.useContext(l);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:i(n.components),r.createElement(l.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3904aa5b.c63dc026.js b/assets/js/3904aa5b.c63dc026.js
new file mode 100644
index 0000000000..95d0c3e88b
--- /dev/null
+++ b/assets/js/3904aa5b.c63dc026.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9924],{9443:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>j,frontMatter:()=>l,metadata:()=>t,toc:()=>h});var r=s(4848),d=s(8453);const l={},i="Cypher API",t={id:"query/cypher",title:"Cypher API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86TuGraph-Cypher\u7684\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/8.query/1.cypher.md",sourceDirName:"8.query",slug:"/query/cypher",permalink:"/tugraph-db/zh/query/cypher",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RESTful API Legacy",permalink:"/tugraph-db/zh/client-tools/restful-api-legacy"},next:{title:"ISO GQL",permalink:"/tugraph-db/zh/query/gql"}},c={},h=[{value:"1.Operators",id:"1operators",level:2},{value:"1.1.Summary",id:"11summary",level:3},{value:"1.2.General operators",id:"12general-operators",level:3},{value:"1.3.Mathematical operators",id:"13mathematical-operators",level:3},{value:"1.4.Comparison operators",id:"14comparison-operators",level:3},{value:"1.5.String-specific comparison operators",id:"15string-specific-comparison-operators",level:3},{value:"1.6.Boolean operators",id:"16boolean-operators",level:3},{value:"1.7.String operators",id:"17string-operators",level:3},{value:"1.8.List operators",id:"18list-operators",level:3},{value:"2.Clauses",id:"2clauses",level:2},{value:"2.1.Summary",id:"21summary",level:3},{value:"2.2.MATCH",id:"22match",level:3},{value:"2.3.RETURN",id:"23return",level:3},{value:"2.4.WHERE",id:"24where",level:3},{value:"2.5.SKIP",id:"25skip",level:3},{value:"2.6.LIMIT",id:"26limit",level:3},{value:"2.7.CREATE",id:"27create",level:3},{value:"2.8.CALL[\u2026YIELD]",id:"28callyield",level:3},{value:"2.9.UNION",id:"29union",level:3},{value:"3.Functions",id:"3functions",level:2},{value:"3.1.Whole List Of Functions",id:"31whole-list-of-functions",level:3},{value:"3.2.Predicate functions",id:"32predicate-functions",level:3},{value:"3.3.Scalar functions",id:"33scalar-functions",level:3},{value:"3.4.Aggregating functions",id:"34aggregating-functions",level:3},{value:"3.5.List Funtions:",id:"35list-funtions",level:3},{value:"3.6.Mathematical functions",id:"36mathematical-functions",level:3},{value:"4.\u9644\u5f551. \u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",id:"4\u9644\u5f551-\u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",level:2},{value:"5.\u9644\u5f552. \u5185\u7f6eprocedures\u5217\u8868",id:"5\u9644\u5f552-\u5185\u7f6eprocedures\u5217\u8868",level:2},{value:"5.1.procedures\u6837\u4f8b",id:"51procedures\u6837\u4f8b",level:3},{value:"5.2.\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",id:"52\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",level:3}];function x(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"cypher-api",children:"Cypher API"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86TuGraph-Cypher\u7684\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1operators",children:"1.Operators"}),"\n",(0,r.jsx)(e.h3,{id:"11summary",children:"1.1.Summary"}),"\n",(0,r.jsx)(e.p,{children:"Operators\u652f\u6301\u8fdb\u5ea6\u4e00\u89c8\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(e.th,{children:"\u652f\u6301"}),(0,r.jsx)(e.th,{children:"\u5f85\u652f\u6301"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"General operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"DISTINCT"}),", ",(0,r.jsx)(e.code,{children:"."})," for property access"]}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"[]"})," for dynamic property access"]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Mathematical operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"}),", ",(0,r.jsx)(e.code,{children:"-"}),", ",(0,r.jsx)(e.code,{children:"*"}),", ",(0,r.jsx)(e.code,{children:"/"}),", ",(0,r.jsx)(e.code,{children:"%"}),", ",(0,r.jsx)(e.code,{children:"^"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Comparison operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"="}),", ",(0,r.jsx)(e.code,{children:"<>"}),", ",(0,r.jsx)(e.code,{children:"<"}),", ",(0,r.jsx)(e.code,{children:">"}),", ",(0,r.jsx)(e.code,{children:"<="}),", ",(0,r.jsx)(e.code,{children:">="}),", ",(0,r.jsx)(e.code,{children:"IS NULL"}),", ",(0,r.jsx)(e.code,{children:"IS NOT NULL"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String-specific comparison operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"STARTS WITH"}),", ",(0,r.jsx)(e.code,{children:"ENDS WITH"}),", ",(0,r.jsx)(e.code,{children:"CONTAINS"}),", ",(0,r.jsx)(e.code,{children:"REGEXP"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Boolean operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"AND"}),", ",(0,r.jsx)(e.code,{children:"OR"}),", ",(0,r.jsx)(e.code,{children:"XOR"}),", ",(0,r.jsx)(e.code,{children:"NOT"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"})," for concatenation"]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"List operators"}),(0,r.jsxs)(e.td,{children:[(0,r.jsx)(e.code,{children:"+"})," for concatenation, ",(0,r.jsx)(e.code,{children:"IN"})," to check existence of an element in a list, ",(0,r.jsx)(e.code,{children:"[]"})," for accessing element(s)"]}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"12general-operators",children:"1.2.General operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using the DISTINCT operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (p:person) RETURN DISTINCT p.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u274f Accessing properties of a nested literal map using the ",(0,r.jsx)(e.code,{children:"."})," operator"]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH {person: {name: 'Anne', age: 25}} AS p\nRETURN p.person.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u274f Filtering on a dynamically-computed property key using the ",(0,r.jsx)(e.code,{children:"[]"})," operator"]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (a:Restaurant {name: 'Hungry Jo', rating_hygiene: 10, rating_food: 7}),\n (b:Restaurant {name: 'Buttercup Tea Rooms', rating_hygiene: 5, rating_food:6}),\n (c1:Category {name: 'hygiene'}), (c2:Category {name: 'food'})\n"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (restaurant:Restaurant), (category:Category)\nWHERE restaurant["rating_" + category.name] > 6\nRETURN DISTINCT restaurant.name\n'})}),"\n",(0,r.jsx)(e.h3,{id:"13mathematical-operators",children:"1.3.Mathematical operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 Using the exponentiation operator \xa0",(0,r.jsx)(e.code,{children:"^"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 2 AS number, 3 AS exponent\nRETURN number ^ exponent AS result\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 Using the unary minus operator ",(0,r.jsx)(e.code,{children:"-"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH -3 AS a, 4 AS b\nRETURN b - a AS result\n"})}),"\n",(0,r.jsx)(e.h3,{id:"14comparison-operators",children:"1.4.Comparison operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Comparing two numbers"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 4 AS one, 3 AS two\nRETURN one > two AS result\n"})}),"\n",(0,r.jsx)(e.h3,{id:"15string-specific-comparison-operators",children:"1.5.String-specific comparison operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using STARTS WITH to filter names"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['John', 'Mark', 'Jonathan', 'Bill'] AS somenames\nUNWIND somenames AS names\nWITH names AS candidate\nWHERE candidate STARTS WITH 'Jo'\nRETURN candidate\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using REGEXP to filter names"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['John', 'Mark', 'Jonathan', 'Bill'] AS somenames\nUNWIND somenames AS names\nWITH names AS candidate\nWHERE candidate REGEXP 'Jo.*n'\nRETURN candidate\n"})}),"\n",(0,r.jsx)(e.h3,{id:"16boolean-operators",children:"1.6.Boolean operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using boolean operators to filter numbers"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH [2, 4, 7, 9, 12] AS numberlist\nUNWIND numberlist AS number\nWITH number\nWHERE number = 4 OR (number > 6 AND number < 10)\nRETURN number\n"})}),"\n",(0,r.jsx)(e.h3,{id:"17string-operators",children:"1.7.String operators"}),"\n",(0,r.jsx)(e.p,{children:"String operators comprise:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u2713 concatenating strings: ",(0,r.jsx)(e.code,{children:"+"})]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"18list-operators",children:"1.8.List operators"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Concatenating two lists using +"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN [1,2,3,4,5]+[6,7] AS myList\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Using IN to check if a number is in a list"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH [2, 3, 4, 5] AS numberlist\nUNWIND numberlist AS number\nWITH number\nWHERE number IN [2, 3, 8]\nRETURN number\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Accessing elements in a list using the [] operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['Anne', 'John', 'Bill', 'Diane', 'Eve'] AS names\nRETURN names[1..3] AS result\n"})}),"\n",(0,r.jsx)(e.h2,{id:"2clauses",children:"2.Clauses"}),"\n",(0,r.jsx)(e.h3,{id:"21summary",children:"2.1.Summary"}),"\n",(0,r.jsx)(e.p,{children:"Clauses\u652f\u6301\u8fdb\u5ea6\u4e00\u89c8\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u7c7b\u522b"}),(0,r.jsx)(e.th,{children:"\u8bed\u6cd5"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading clauses"}),(0,r.jsx)(e.td,{children:"MATCH"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"OPTIONAL MATCH"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"MANDATORY MATCH"}),(0,r.jsx)(e.td,{children:"\u5f85\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Projecting clauses"}),(0,r.jsx)(e.td,{children:"RETURN \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"WITH \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"UNWIND \u2026 [AS]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading sub-clauses"}),(0,r.jsx)(e.td,{children:"WHERE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"ORDER BY [ASC[ENDING] / DESC[ENDING]]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"SKIP"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"LIMIT"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Writing clauses"}),(0,r.jsx)(e.td,{children:"CREATE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"DELETE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"DETACH DELETE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"SET"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"REMOVE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Reading/Writing clauses"}),(0,r.jsx)(e.td,{children:"MERGE"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"CALL [\u2026YIELD]"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Set operations"}),(0,r.jsx)(e.td,{children:"UNION"}),(0,r.jsx)(e.td,{children:"\u5f85\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"UNION ALL"}),(0,r.jsx)(e.td,{children:"\u652f\u6301"})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"22match",children:"2.2.MATCH"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Basic node finding"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Get all nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Get all nodes with a label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (movie:movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Related nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (person {name: 'Laurence Fishburne'})-[]-(movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match with labels"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[]-(movie:movie)\nRETURN movie.title\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Relationship basics"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Outgoing relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[]->(movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Directed relationships and variable"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (:person {name: 'Laurence Fishburne'})-[r]->(movie)\nRETURN type(r)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on relationship type"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix:movie {title: 'The Matrix'})<-[:acted_in]-(actor)\nRETURN actor.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on multiple relationship types"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix {title: 'The Matrix'})<-[:acted_in|:directed]-(person)\nRETURN person.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match on relationship type and use a variable"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix {title: 'The Matrix'})<-[r:acted_in]-(actor)\nRETURN r.role\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Relationships in depth"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Relationship types with uncommon characters"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Rob Reiner'})-[r:`TYPE WITH SPACE`]->()\nRETURN type(r)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Multiple relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (laurence {name: 'Laurence Fishburne'})-[:acted_in]->(movie)<-[:directed]-(director)\nRETURN movie.title, director.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Variable-length relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (laurence {name: 'Laurence Fishburne'})-[:acted_in*1..3]-(movie:movie)\nRETURN movie.title\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Relationship variable in variable-length relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (laurence {name: 'Laurence Fishburne'})-[:acted_in*2]-(co_actor)\nRETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Match with properties on a variable-length path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (charlie:person)-[* {blocked:false}]-(martin:person)\nWHERE charlie.name = 'Charlie Sheen' AND martin.name = 'Martin Sheen'\nRETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Zero-length paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (matrix:movie {title: 'The Matrix'})-[*0..1]-(x)\nRETURN x\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Named paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (michael {name: 'Michael Douglas'})-[]->() RETURN p\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Matching on a bound relationship"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (a)-[r]->(b)\nWHERE euid(r)="0_3937_0_0_0"\nRETURN a,b\n'})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Shortest path"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Single shortest path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (martin:person {name: 'Carrie-Anne Moss'}), (laurence:person {name: 'Laurence Fishburne'})\nCALL algo.shortestPath(martin, laurence) YIELD nodeCount,totalCost,path RETURN nodeCount,totalCost,path\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 All shortest paths"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (martin:person {name: 'Carrie-Anne Moss'}), (laurence:person {name: 'Laurence Fishburne'}) WITH martin, laurence\nCALL algo.allShortestPaths(martin, laurence) YIELD nodeIds,relationshipIds,cost RETURN nodeIds,relationshipIds,cost\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Get node or relationship by id"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Node by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE id(n)= 0\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Relationship by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH ()-[r]->()\nWHERE euid(r) = "0_3937_0_0_0"\nRETURN r\n'})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Multiple nodes by id"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE id(n) IN [0, 3, 5]\nRETURN n\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"23return",children:"2.3.RETURN"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'}) RETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return relationships"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'})-[r:acted_in]->(c)\nRETURN r\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Carrie-Anne Moss'}) RETURN n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Return all elements"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (a {name: 'A'})-[r]->(b)\nRETURN *\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Variable with uncommon characters"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (`This isn\\'t a common variable`)\nWHERE `This isn\\'t a common variable`.name = 'A'\nRETURN `This isn\\'t a common variable`.happy\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Aliasing a field"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})\nRETURN a.born AS SomethingTotallyDifferent\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Optional properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Other expressions"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})\nRETURN a.born > 1900, \"I'm a literal\", (a)-[]->()\n"})}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"(a)-[]->()"})," \xa0not supported."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Unique results"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a {name: 'Carrie-Anne Moss'})-[]->(b)\nRETURN DISTINCT b\n"})}),"\n",(0,r.jsx)(e.h3,{id:"24where",children:"2.4.WHERE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Basic usage"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Boolean operations"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name = 'Laurence Fishburne' XOR (n.born > 1965 AND n.name = 'Carrie-Anne Moss')\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on node label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n:person\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on node property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.born > 2000\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on relationship property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'MATCH (n)-[k:acted_in]->(f)\nWHERE k.role = "Trinity"\nRETURN f.title\n'})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on dynamically-computed property"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH 'AGE' AS propname\nMATCH (n)\nWHERE n[toLower(propname)]< 30\nRETURN n.name, n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Property existence checking"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE exists(n.born)\nRETURN n.name, n.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"String matching"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match the beginning of a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name STARTS WITH 'Pet'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match the ending of a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name ENDS WITH 'ter'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Match anywhere within a string"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.name CONTAINS 'ete'\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 String matching negation"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE NOT n.name ENDS WITH 's'\nRETURN n.name, n.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["Using path patterns in ",(0,r.jsx)(e.code,{children:"WHERE"})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (tobias {name: 'Tobias'}), (others)\nWHERE others.name IN ['Andres', 'Peter'] AND (tobias)<-[]-(others)\nRETURN others.name, others.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns using NOT"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (persons), (peter {name: 'Peter'})\nWHERE NOT (persons)-[]->(peter)\nRETURN persons.name, persons.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Filter on patterns with properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE (n)-[:KNOWS]-({name: 'Tobias'})\nRETURN n.name, n.age\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on relationship type"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)-[r]->()\nWHERE n.name='Laurence Fishburne' AND type(r) STARTS WITH 'ac'\nRETURN type(r), r.role\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Lists"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 IN operator"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name IN ['Laurence Fishburne', 'Tobias']\nRETURN a.name, a.born\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Missing properties and values"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Default to false if property is missing"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.belt = 'white'\nRETURN n.name, n.age, n.belt\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Default to true if property is missing"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE n.belt = 'white' OR n.belt IS NULL RETURN n.name, n.age, n.belt\nORDER BY n.name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Filter on null"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (person)\nWHERE person.name = 'Peter' AND person.belt IS NULL RETURN person.name, person.age,\nperson.belt\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Using ranges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Simple range"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name >= 'Peter'\nRETURN a.name, a.born\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Composite range"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nWHERE a.name > 'Andres' AND a.name < 'Tobias'\nRETURN a.name, a.born\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"25skip",children:"2.5.SKIP"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Skip first three records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP 3\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return middle two records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP 1\nLIMIT 2\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Using an expression with SKIP to return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nORDER BY n.name\nSKIP toInteger(3*rand())+ 1\n"})}),"\n",(0,r.jsx)(e.h3,{id:"26limit",children:"2.6.LIMIT"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nLIMIT 3\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Using an expression with LIMIT to return a subset of the records"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name\nLIMIT toInteger(3 * rand())+ 1\n"})}),"\n",(0,r.jsx)(e.h3,{id:"27create",children:"2.7.CREATE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"Create nodes"}),"\n"]}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Note"}),"\nTuGraph\u4e0d\u652f\u6301\u521b\u5efa\u7a7a\u7684nodes\uff0c\u4e0d\u652f\u6301\u591alabels\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create single node"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create multiple nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n), (m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create a node with a label"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create a node with multiple labels"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:Person:Swedish)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create node and add labels and properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person {id:2001, name: 'Andres'})\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Return created node"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:person {id:2002, name: 'Andres'})\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Create relationships"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create a relationship between two nodes"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person), (m:movie)\nWHERE n.name = 'Jada Pinkett Smith' AND m.title = 'The Matrix'\nCREATE (n)-[r:write]->(m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Create a relationship and set properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person), (m:movie)\nWHERE n.name = 'Jada Pinkett Smith' AND m.title = 'The Matrix'\nCREATE (n)-[r:acted_in{role: 'Trinity'}]->(m)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Create a full path"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE p = (andres:person {id: 2005, name:'Andres'})-[:acted_in {role: 'Trinity'}]->\n(m:movie {id: 2006})<-[:acted_in {role: 'Trinity'}]-(michael {id: 2006, name:'Michael'})\nRETURN p\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"Use parameters with CREATE"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Create node with a parameter for the properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CREATE (n:Person $props)\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2612 Create multiple nodes with a parameter for their properties"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"UNWIND $props AS map\nCREATE (n)\nSET n = map\n"})}),"\n",(0,r.jsx)(e.p,{children:"cannot create vertex without label."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"28callyield",children:"2.8.CALL[\u2026YIELD]"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure using CALL"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 View the signature for a procedure"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.procedures() YIELD name, signature\nRETURN signature\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure using a quoted namespace and name"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL `db`.`vertexLabels`\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure with literal arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', 0, 'name')\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure with parameter arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex($indexName,$node,$propKey)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure with mixed literal and parameter arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', $node, 'name')\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure with literal and default arguments"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL org.opencypher.procedure.example.addNodeToIndex('users', 0)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Call a procedure within a complex query using CALL\u2026YIELD"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels() YIELD label\nRETURN count(label) AS numLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure and filter its results"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels() YIELD label\nWHERE label CONTAINS 'User'\nRETURN count(label) AS numLabels\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Call a procedure within a complex query and rename its outputs"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.propertyKeys() YIELD propertyKey AS prop\nMATCH (n)\nWHERE n[prop] IS NOT NULL RETURN prop, count(n) AS numNodes\n"})}),"\n",(0,r.jsx)(e.h3,{id:"29union",children:"2.9.UNION"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u2713 Combine two queries and retain duplicates"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN n.name AS name\nUNION ALL MATCH (n:movie)\nRETURN n.title AS name\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u274f Combine two queries and remove duplicates"}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:Actor)\nRETURN n.name AS name\nUNION\nMATCH (n:Movie)\nRETURN n.title AS name\n"})}),"\n",(0,r.jsx)(e.h2,{id:"3functions",children:"3.Functions"}),"\n",(0,r.jsx)(e.h3,{id:"31whole-list-of-functions",children:"3.1.Whole List Of Functions"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u79cd\u7c7b"}),(0,r.jsx)(e.th,{children:"\u529f\u80fd"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Predicate functions"}),(0,r.jsx)(e.td,{children:"exists()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"all()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"any()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"single()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"none()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Scalar functions"}),(0,r.jsx)(e.td,{children:"id()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"euid()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"properties()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"head()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"last()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toBoolean()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toFloat()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toInteger()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"toString()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"type()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"startnode()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"endnode()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"size()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"length()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"substring()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"concat()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"label()"}),(0,r.jsx)(e.td,{children:"OpenCypher\u6269\u5c55\u65b9\u6cd5"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Aggregating functions"}),(0,r.jsx)(e.td,{children:"avg()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"collect()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"count()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"max()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"min()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"percentileCont()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"percentileDisc()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"stDev()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"stDevP()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"variance()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"varianceP()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"sum()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"List functions"}),(0,r.jsx)(e.td,{children:"keys()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"labels()"}),(0,r.jsx)(e.td,{children:"\u8fd4\u56de\u7ed3\u679c\u6709\u4e14\u53ea\u6709\u4e00\u4e2alabel"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"nodes()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"range()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"subscript()"}),(0,r.jsx)(e.td,{children:"\u4e0d\u652f\u6301"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Mathematical functions"}),(0,r.jsx)(e.td,{children:"abs()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"ceil()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"floor()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"rand()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"round()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{}),(0,r.jsx)(e.td,{children:"sign()"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"String functions"}),(0,r.jsx)(e.td,{children:"/"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.h3,{id:"32predicate-functions",children:"3.2.Predicate functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["exists()\njudge it whether a vertex or edge has the field \xa0.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nWHERE exists(n.born)\nRETURN n.name, n.born\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"exists(name)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n",(0,r.jsx)(e.h3,{id:"33scalar-functions",children:"3.3.Scalar functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["id()\nget the id of vertex.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN id(a)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"vid"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["properties()\nget \xa0a map containing all the properties of a node or relationship.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person {name: 'Laurence Fishburne'})\nRETURN n\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["head()\nget the first element of a list.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['one','two','three'] AS coll RETURN coll, head(coll)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"coll"}),(0,r.jsx)(e.th,{children:"head(coll)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["one","two","three"]'}),(0,r.jsx)(e.td,{children:'"one"'})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["last()\nget the last element of a list.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"WITH ['one','two','three'] AS coll RETURN coll, last(coll)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"coll"}),(0,r.jsx)(e.th,{children:"last(coll)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["one","two","three"]'}),(0,r.jsx)(e.td,{children:'"three"'})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toFloat()\nConverts an integer or string value to a floating point number.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toFloat('11.5')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"float"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"11.5"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toInteger()\nConverts a floating point or string value to an integer value.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toInteger('2.3') AS integer\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"integer"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["toString()\nConverts an integer, float, boolean value to a string.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN toString(2.3)\n"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["type()\nget the string representation of the relationship type.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)-[r]->()\nWHERE n.name = 'Laurence Fishburne'\nRETURN type(r)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"type"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})})]})]}),"\n",(0,r.jsx)(e.h3,{id:"34aggregating-functions",children:"3.4.Aggregating functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["avg()\nReturns the average of a set of numeric values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN avg(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"avg(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1869.2661654135338"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["collect()\nReturns a list containing the values returned by an expression.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN collect(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"collect(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[1967,...]"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["count()\nReturns the number of values or records.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n {name: 'Laurence Fishburne'})-[]->(x)\nRETURN labels(n), n.born, count(*)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"labels(n)"}),(0,r.jsx)(e.th,{children:"n.born"}),(0,r.jsx)(e.th,{children:"count(*)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:'["person"]'}),(0,r.jsx)(e.td,{children:"1961"}),(0,r.jsx)(e.td,{children:"3"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["max()\nReturns the maximum value in a set of values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN max(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"max(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2003"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["min()\nReturns the minimum value in a set of values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN min(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"min(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1000"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["percentileCont()\nReturns the percentile of a value over a group using linear interpolation.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN percentileCont(n.born, 0.4)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"percentileCont(n.born, 0.4)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1953"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["percentileDisc()\nReturns the nearest value to the given percentile over a group using a rounding method.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Output:"})," the percentile of the given value over a group.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN percentileDisc(n.born, 0.5)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"percentileDisc(n.age, 0.5)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1959"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["stDev()\nReturns the standard deviation for the given value over a group for a sample of a population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN stDev(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"stDev(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"279.53117993401725"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["stDevP()\nReturns the standard deviation for the given value over a group for an entire population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN stDevP(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"stDevP(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"279.3209270423399"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["variance()\nReturns the variance for the given value over a group for a sample of a population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN variance(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"variance(n.age)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"78137.68055530392"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["varianceP()\nReturns the variance for the given value over a group for an entire population.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n)\nRETURN varianceP(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"varianceP(n.age)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"78020.18028379219"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["sum()\nReturns the sum of a set of numeric values.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n:person)\nRETURN sum(n.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"sum(n.born)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1243062"})})})]}),"\n",(0,r.jsx)(e.h3,{id:"35list-funtions",children:"3.5.List Funtions:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["keys()\nget the field names of some vertex.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN keys(a) LIMIT 1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"keys(a)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:'["name","age","eyes"]'})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["labels()/label()\nReturns a list containing the string representations for all the property names of a node, relationship, or map.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a)\nRETURN labels(a) LIMIT 1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"labels"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:'["Person"]'})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"nodes()"}),"\n",(0,r.jsx)(e.p,{children:"Get vertex ids of a path"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH p = (from {name: 'Bob'})-[*1..]->(to {name: 'Alice\"})\nRETURN nodes(p)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"nodes(p)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[0, 1, 10, 12]"})})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"36mathematical-functions",children:"3.6.Mathematical functions"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["abs()\nget the absolute value of some data.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (a:person {name: 'Laurence Fishburne'}),(e:person {name: 'Carrie-Anne Moss'})\nRETURN a.born, e.born, abs(a.born-e.born)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"a.born"}),(0,r.jsx)(e.th,{children:"e.born"}),(0,r.jsx)(e.th,{children:"abs(a.born - e.born)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"1961"}),(0,r.jsx)(e.td,{children:"1967"}),(0,r.jsx)(e.td,{children:"6"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["ceil()\nReturns the smallest floating point number that is greater than or equal to a number and equal to a mathematical integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN ceil(0.1)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"ceil(0.1)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1.0"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["floor()\nget the largest floating point number that is less than or equal to the given number and equal to a mathematical integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN floor(0.9)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"floor(0.9)"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"0.0"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["round()\nReturns the value of a number rounded to the nearest integer.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN round(3.141592)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"round"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"3"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["rand()\nReturns returns a random floating point number in the range from 0 (inclusive) to 1 exclusive).\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN rand()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"rand()"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"0.9797131960534085"})})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["sign()\nGet the signum of the given number: 0 if the number is 0, -1 for any negative number, and 1 for any positive number.\n",(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance.\n",(0,r.jsx)(e.strong,{children:"Example input:"})]}),"\n"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"RETURN sign(-17), sign(0.1)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"sign(-17)"}),(0,r.jsx)(e.th,{children:"sign(0.1)"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"-1"}),(0,r.jsx)(e.td,{children:"1"})]})})]}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u67e5\u8be2\u8bed\u8a00\u4e0e OpenCypher \u7684\u4e0d\u540c\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["Label \u6570\u91cf\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: Each node/relationship must have one and only one label. So error occurs when there is no label, and the 1st label will be picked as the label if there are more than one label."}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: One node/relationship may have 0 to many labels."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["Schema.\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: TuGraph has strong schema"}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: schema-less"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"4\u9644\u5f551-\u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c",children:"4.\u9644\u5f551. \u8bed\u6cd5\u6269\u5145\u53ca\u4e0d\u540c"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u67e5\u8be2\u8bed\u8a00\u4e0eOpenCypher\u7684\u4e0d\u540c\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["Label\u6570\u91cf\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: Each node/relationship must have one and only one label. So error occurs when there is no label, and the 1st label will be picked as the label if there are more than one label."}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: One node/relationship may have 0 to many labels."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["Schema.\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"TuGraph: TuGraph has strong schema"}),"\n",(0,r.jsx)(e.li,{children:"OpenCypher: schema-less"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"5\u9644\u5f552-\u5185\u7f6eprocedures\u5217\u8868",children:"5.\u9644\u5f552. \u5185\u7f6eprocedures\u5217\u8868"}),"\n",(0,r.jsx)(e.h3,{id:"51procedures\u6837\u4f8b",children:"5.1.procedures\u6837\u4f8b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.procedures()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available procedures."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {",(0,r.jsx)(e.code,{children:"signature"}),", ",(0,r.jsx)(e.code,{children:"name"}),"}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.procedures()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"signature"}),(0,r.jsx)(e.th,{children:"name"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.vertexLabels() :: (label::STRING)"}),(0,r.jsx)(e.td,{children:"db.vertexLabels"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.edgeLabels() :: (edgeLabels::STRING)"}),(0,r.jsx)(e.td,{children:"db.edgeLabels"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.indexes() :: (index::LIST)"}),(0,r.jsx)(e.td,{children:"db.indexes"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.subgraph()"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vids"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"list of vertex id"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"Get a json containing all the properties of nodes and relationships."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.subgraph([3937,4126,4066,4010])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"subgraph"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsxs)(e.td,{children:['{"nodes":[{"identity":3937,"label":"movie","properties":{"duration":136,"id":1,"poster_image":"',(0,r.jsx)(e.a,{href:"http://image.tmdb.org/t/p/w185/gynBNzwyaHKtXqlEKKLioNkjKgN.jpg%22,%22rated%22:%22R%22,%22summary%22:%22Thomas",children:'http://image.tmdb.org/t/p/w185/gynBNzwyaHKtXqlEKKLioNkjKgN.jpg","rated":"R","summary":"Thomas'}),' A. Anderson is a man living two lives. By day he is an average computer programmer and by night a malevolent hacker known as Neo who finds himself targeted by the police when he is contacted by Morpheus a legendary computer hacker who reveals the shocking truth about our reality.","tagline":"Welcome to the Real World.","title":"The Matrix"}},{"identity":4010,"label":"user","properties":{"id":44,"login":"Howard"}},{"identity":4066,"label":"user","properties":{"id":202,"login":"Enoch"}},{"identity":4126,"label":"user","properties":{"id":464,"login":"Wilburn"}}],"relationships":[{"dst":4126,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4010,"temporal_id":0},{"dst":4010,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4066,"temporal_id":0},{"dst":4066,"forward":true,"identity":0,"label":"is_friend","label_id":3,"src":4126,"temporal_id":0}]}']})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.vertexLabels()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available vertex labels of vertex."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {",(0,r.jsx)(e.code,{children:"name"}),"}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.vertexLabels()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"label"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"genre"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"keyword"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"movie"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.edgeLabels()"}),"\n",(0,r.jsx)(e.p,{children:"Lists all available labels of edges."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of {edge labels}."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.edgeLabels()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"relationshipType"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"acted_in"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"directed"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createVertexLabel(label_name, primary_field, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create a vertex label."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," whole instance."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of vertex label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary_field"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"primary field of vertex label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, true]"}),", where true is specified only for optional fields."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," If successful, it returns a success message."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createVertexLabel('Person', 'id', 'id', 'int64', false, 'name', 'string', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added label [Person]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.getLabelSchema(label_type, label_name)"}),"\n",(0,r.jsx)(e.p,{children:"Get the schema definition of the label in a subgraph."}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Scope:"})," subgraph, as specified in the ",(0,r.jsx)(e.code,{children:"graph"})," parameter in REST or RPC request."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"Output:"})," a list of label specifications, in which each element is a list of the following fields:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"type of the field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"whether the field is optional"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.getLabelSchema('vertex', 'Person')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"name"}),(0,r.jsx)(e.th,{children:"type"}),(0,r.jsx)(e.th,{children:"optional"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"id"}),(0,r.jsx)(e.td,{children:"INT32"}),(0,r.jsx)(e.td,{children:"false"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"born"}),(0,r.jsx)(e.td,{children:"INT32"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"STRING"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"poster_image"}),(0,r.jsx)(e.td,{children:"STRING"}),(0,r.jsx)(e.td,{children:"true"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createLabel(label_type, label_name, extra, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create a vertex or edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"extra"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"for edge, it means constraints; for vertex, it means primary property"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),".\nfor edge, ",(0,r.jsx)(e.code,{children:"extra"})," should be a json array string, like this ",(0,r.jsx)(e.code,{children:'[["label1","label2"], ["label3","label4"]]'}),", if edge has no constraints, give an empty json array, like this ",(0,r.jsx)(e.code,{children:"[]"})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createLabel('vertex', 'new_label', 'id', ['id','int32',false], ['name','string', true]);\nCALL db.createLabel('edge', 'new_edge', '[[\"id1\",\"id2\"]]', ['id','int32',false], ['name', 'string', true]);\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Vertex label [new_label] successfully added.\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.deleteLabel(label_type, label_name)"}),"\n",(0,r.jsx)(e.p,{children:"Delete a vertex or edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.deleteLabel('vertex', 'Person')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelDelFields(label_type, label_name, field_names)"}),"\n",(0,r.jsx)(e.p,{children:"Delete specified fields from the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_names"}),(0,r.jsx)(e.td,{children:"list of strings"}),(0,r.jsx)(e.td,{children:"names of the fields to delete"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelDelFields('vertex', 'Person', ['name', 'image'])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelAddFields(label_type, label_name, field_value_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Adds specified fields to the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_value_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_value_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, field_value, optional]"}),", where: ",(0,r.jsx)(e.code,{children:"field_value"})," is the default value of the field."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelAddFields(\n'vertex',\n'new_label',\n['birth_date', DATE, '', true],\n['img', BLOB, '', true])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.alterLabelModFields(label_type, label_name, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Modifies the specified fields in the label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_type"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"either 'vertex' or 'edge'"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),".The target field should exist."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"field_name"}),(0,r.jsx)(e.th,{children:"field_type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"affected"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"number of vertexes/edges modified"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.alterLabelModFields(\n'vertex',\n'new_label',\n['birth_date', DATETIME, true],\n['gender', BOOL, true])\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"affected"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"1024"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.createEdgeLabel( label_name, field_spec...)"}),"\n",(0,r.jsx)(e.p,{children:"Create an edge label."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"edge constraints"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_spec"}),(0,r.jsx)(e.td,{children:"list"}),(0,r.jsx)(e.td,{children:"specification of a field"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"field_spec"})," is a list of string in the form of ",(0,r.jsx)(e.code,{children:"[field_name, field_type, optional]"}),", where optional is specified as true, only for optional fields."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," is a json array string, This parameter limits the combination of starting and ending vertex of the edge, for example: ",(0,r.jsx)(e.code,{children:'\'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]\''}),", which limits the edge direction can only be from ",(0,r.jsx)(e.code,{children:"vertex_label1"})," to ",(0,r.jsx)(e.code,{children:"vertex_label2"})," or from ",(0,r.jsx)(e.code,{children:"vertex_label3"})," to ",(0,r.jsx)(e.code,{children:"vertex_label4"}),". If you don't want to have any constraints, give an empty array string, like this ",(0,r.jsx)(e.code,{children:"'[]'"})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.createEdgeLabel('KNOWS', '[]', 'name', 'int32', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added type [KNOWS]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.addIndex(label_name, field_name, unique)"}),"\n",(0,r.jsx)(e.p,{children:"create an index on some field of one vertex label ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"specification of a field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is unique"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.addIndex('Person', 'id', true)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added index [Perosn:id]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"db.addEdgeIndex(label_name, field_name, unique, pair_unique)"}),"\n",(0,r.jsx)(e.p,{children:"create an index on some field of one edge label ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"name of the label"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"specification of a field"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is unique"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"pair_unique"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"Specifies whether the index is pair_unique"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL db.addEdgeIndex('BornIn', 'id', true, false)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Added index [BornIn:id]\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.changePassword(current_password ,new_password)"}),"\n",(0,r.jsx)(e.p,{children:"Change the current user's password."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the current password"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"new password"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.changePassword('73@TuGraph','admin')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.changeUserPassword(user_name, new_password)"}),"\n",(0,r.jsx)(e.p,{children:"Change the current user's password."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user's name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"new password"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.changeUserPassword('quest','73@TuGraph')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.createUser(user_name, password)"}),"\n",(0,r.jsx)(e.p,{children:"create new user on this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the new user name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the password of new user"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.createUser('quest',\"admin\")\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.deleteUser(user_name)"}),"\n",(0,r.jsx)(e.p,{children:"delete user on this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user name to be deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.deleteUser('quest')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"true\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.listUsers()"}),"\n",(0,r.jsx)(e.p,{children:"get all user's name of the graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of user names, in which each element is a list of the following fields:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user.name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the user name"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is.admin"}),(0,r.jsx)(e.td,{children:"boolean"}),(0,r.jsx)(e.td,{children:"the permission of this user"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.listUsers()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"user.name"}),(0,r.jsx)(e.th,{children:"is.admin"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"admin"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.showCurrentUser()"}),"\n",(0,r.jsx)(e.p,{children:"get current user's name."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of user names, in which each element is a list of the following fields:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user.user"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the current user name"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.showCurrentUser()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"user.name"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"admin"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.listAllowedHosts()"}),"\n",(0,r.jsx)(e.p,{children:"get the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of ips which are allowed."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.listAllowedHosts()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"host"})})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"192.168.1.22"})}),(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"..."})})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.deleteAllowedHosts(hosts)"}),"\n",(0,r.jsx)(e.p,{children:"delete some ips from the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"the number of ip which been deleted."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.deleteAllowedHosts('192.168.1.22','192.168.1.23')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.security.addAllowedHosts(hosts)"}),"\n",(0,r.jsx)(e.p,{children:"add some ips from the list of ips to be allowed ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"the number of ip which been added."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.security.addAllowedHosts('192.168.1.22','192.168.1.23')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"2"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.createGraph(graph_name, description, max_size_GB)"}),"\n",(0,r.jsx)(e.p,{children:"create a new subgraph in this graph database ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of new subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"description of new subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"max_size_GB"}),(0,r.jsx)(e.td,{children:"integer"}),(0,r.jsx)(e.td,{children:"Upper limit of subgraph capacity"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.createGraph('graph1', 'description', 2045)\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.deleteGraph(graph_name)"}),"\n",(0,r.jsx)(e.p,{children:"delete a subgraph in this graph database ."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of subgraph to been deleted"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.deleteGraph('graph1')\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.modGraph(graph_name, config)"}),"\n",(0,r.jsx)(e.p,{children:"delete a subgraph in this graph database ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph_name"}),(0,r.jsx)(e.td,{children:"string"}),(0,r.jsx)(e.td,{children:"the name of subgraph to been deleted"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"map"}),(0,r.jsx)(e.td,{children:"the configuration to be modified"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"if successful , it will return true."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.modGraph('graph1',{description:'this graph', max_size_GB:20})\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"success"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"true"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.listGraphs()"}),"\n",(0,r.jsx)(e.p,{children:"get all subgraphs in this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {subgraph and configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.graph.listGraphs()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"graph.name"}),(0,r.jsx)(e.th,{children:"configuration"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default"}),(0,r.jsx)(e.td,{children:'{"description":"","max_size_GB":1024}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph1"}),(0,r.jsx)(e.td,{children:'{"description":"this graph","max_size_GB":20}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.graph.listUserGraphs(user_name)"}),"\n",(0,r.jsx)(e.p,{children:"get subgraph list which specified user can read or write"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {subgraph and configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'CALL dbms.graph.listUserGraphs("test_user")\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"graph.name"}),(0,r.jsx)(e.th,{children:"configuration"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default"}),(0,r.jsx)(e.td,{children:'{"description":"","max_size_GB":1024}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph1"}),(0,r.jsx)(e.td,{children:'{"description":"this graph","max_size_GB":20}'})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.config.list()"}),"\n",(0,r.jsx)(e.p,{children:"get config of this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"a list of {configuration}."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.config.list()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"name"}),(0,r.jsx)(e.th,{children:"value"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"bind_host"}),(0,r.jsx)(e.td,{children:"0.0.0.0"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"durable"}),(0,r.jsx)(e.td,{children:"true"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{children:"..."})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.config.update(updates)"}),"\n",(0,r.jsx)(e.p,{children:"get some config of this graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a success message"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.config.update({\n enable_ip_check:false,\n durable:true,\n optimistic_txn:true,\n enable_audit_log:true})\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"Update succeeded.\n"})}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.takeSnapshot()"}),"\n",(0,r.jsx)(e.p,{children:"take the snapshot on this current graph database."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.takeSnapshot()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"path"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"log/db/snapshot/2020-07-20_17.20.03"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"dbms.listBackupFiles()"}),"\n",(0,r.jsx)(e.p,{children:"get the path of backuped files."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"CALL dbms.listBackupFiles()\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"path"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"tugraph/db/binlog/binlog_0"})})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.shortestPath(startNode, endNode, config)"}),"\n",(0,r.jsx)(e.p,{children:"get one of the shortest paths between two vertexes."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"startNode"}),(0,r.jsx)(e.td,{children:"Node"}),(0,r.jsx)(e.td,{children:"the source node of paths"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"endNode"}),(0,r.jsx)(e.td,{children:"Node"}),(0,r.jsx)(e.td,{children:"the destination node paths"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"MAP"}),(0,r.jsx)(e.td,{children:"the filter of shortest paths, the formate as {maxHops:3, relationshipQuery:'HAS_CHILD'}"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it will returns one group result of the shortest path."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n1 {name:'Hugo Weaving'}),(n2 {title:'The Matrix'})\nCALL algo.shortestPath(n1,n2) YIELD nodeCount,totalCost RETURN nodeCount,totalCost\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"nodeCount"}),(0,r.jsx)(e.th,{children:"totalCost"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"2"}),(0,r.jsx)(e.td,{children:"1"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.allShortestPaths(startNode, endNode, config))"}),"\n",(0,r.jsx)(e.p,{children:"get the path of backuped files."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns the path of snapshot."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"MATCH (n1 {name:'Hugo Weaving'}),(n2 {title:'The Matrix'})\nCALL algo.allShortestPaths(n1,n2) YIELD nodeIds,cost RETURN nodeIds,cost\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"nodeIds"}),(0,r.jsx)(e.th,{children:"cost"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"[2,665]"}),(0,r.jsx)(e.td,{children:"1"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"..."}),(0,r.jsx)(e.td,{})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsx)(e.p,{children:"algo.algo.native.extract(id, config))"}),"\n",(0,r.jsx)(e.p,{children:"get the field values of a list of vertexes or edges."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Parameters:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"parameter"}),(0,r.jsx)(e.th,{children:"parameter type"}),(0,r.jsx)(e.th,{children:"description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"id"}),(0,r.jsx)(e.td,{children:"ANY"}),(0,r.jsx)(e.td,{children:"the id of vertexes or edges , the id must be variable"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"MAP"}),(0,r.jsx)(e.td,{children:"the configuration of this extraction of vertexes or edges"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which each ",(0,r.jsx)(e.code,{children:"config"})," is a map in the form of ",(0,r.jsx)(e.code,{children:"{isNode:true, filed:'HAS_CHILD'}"}),", if ",(0,r.jsx)(e.code,{children:"isNode"})," is specified true, the ",(0,r.jsx)(e.code,{children:"id"})," is a vertex id, or it is an edge id."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Output:"})}),"\n",(0,r.jsx)(e.p,{children:"If successful, it returns a list of the value of vertexes or edges specified field ."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example input:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:"with [2,3] as vids CALL algo.native.extract(vids,{isNode:true, field:'id'})\nYIELD value RETURN value\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example output:"})}),"\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.th,{children:"value"})})}),(0,r.jsx)(e.tbody,{children:(0,r.jsx)(e.tr,{children:(0,r.jsx)(e.td,{children:"[4,5]"})})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"52\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868",children:"5.2.\u5185\u7f6eprocedures\u5b8c\u6574\u5217\u8868"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Name"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Signature"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.subgraph"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u70b9\u7684\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"db.subgraph(vids::LIST) :: (subgraph::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.vertexLabels"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709Vertex Label"}),(0,r.jsx)(e.td,{children:"db.vertexLabels() :: (label::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.edgeLabels"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709Edge Label"}),(0,r.jsx)(e.td,{children:"db.edgeLabels() :: (edgeLabels::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.indexes"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.indexes() :: (label::STRING,field::STRING,label_type:STRING,unique::BOOLEAN,pair_unique::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.listLabelIndexes"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2aLabel\u76f8\u5173\u7684\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.listLabelIndexes(label_name:STRING,label_type:STRING) :: (label::STRING,field::STRING,unique::BOOLEAN,pair_unique::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.warmup"}),(0,r.jsx)(e.td,{children:"\u9884\u70ed\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.warmup() :: (time_used::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createVertexLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaVertex Label"}),(0,r.jsx)(e.td,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaVertex/Edge Label"}),(0,r.jsx)(e.td,{children:"db.createLabel(label_type::STRING,label_name::STRING,extra::STRING,field_specs::LIST) :: ()"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getLabelSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51falabel schema"}),(0,r.jsx)(e.td,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getVertexSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u70b9\u7684 schema"}),(0,r.jsx)(e.td,{children:"db.getVertexSchema(label::STRING) :: (schema::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.getEdgeSchema"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u8fb9\u7684 schema"}),(0,r.jsx)(e.td,{children:"db.getEdgeSchema(label::STRING) :: (schema::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteLabel"}),(0,r.jsx)(e.td,{children:"\u5220\u9664Vertex/Edge Label"}),(0,r.jsx)(e.td,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelDelFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label\u5220\u9664\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"db.alterLabelDelFields(label_type::STRING,label_name::STRING,del_fields::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelAddFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label\u6dfb\u52a0field"}),(0,r.jsx)(e.td,{children:"db.alterLabelAddFields(label_type::STRING,label_name::STRING,add_field_spec_values::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.alterLabelModFields"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539label field"}),(0,r.jsx)(e.td,{children:"db.alterLabelModFields(label_type::STRING,label_name::STRING,mod_field_specs::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.createEdgeLabel"}),(0,r.jsx)(e.td,{children:"\u521b\u5efaEdge Label"}),(0,r.jsx)(e.td,{children:"db.createEdgeLabel(type_name::STRING,field_specs::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addIndex(label_name::STRING,field_name::STRING,unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addEdgeIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addEdgeIndex(label_name::STRING,field_name::STRING,unique::BOOLEAN,pair_unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addVertexCompositeIndex"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7ec4\u5408\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addVertexCompositeIndex(label_name::STRING,field_names::LIST,unique::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteIndex(label_name::STRING,field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteCompositeIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7ec4\u5408\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteIndex(label_name::STRING,field_names::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.backup"}),(0,r.jsx)(e.td,{children:"\u5907\u4efd\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.backup(destination::STRING) :: ()"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.procedures"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709procedures"}),(0,r.jsx)(e.td,{children:"dbms.procedures() :: (name::STRING,signature::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.changePassword"}),(0,r.jsx)(e.td,{children:"\u66f4\u6539\u5f53\u524d\u7528\u6237\u7684\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"dbms.security.changePassword(current_password::STRING,new_password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.changeUserPassword"}),(0,r.jsx)(e.td,{children:"\u66f4\u6539\u6307\u5b9a\u7528\u6237\u7684\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"dbms.security.changeUserPassword(user_name::STRING,new_password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.createUser"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.createUser(user_name::STRING,password::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteUser"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteUser(user_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listUsers"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.listUsers() :: (user_name::STRING,user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.showCurrentUser"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u5f53\u524d\u7528\u6237\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.showCurrentUser() :: (current_user::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserPermissions"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6307\u5b9a\u7528\u6237\u7684\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserPermissions(user_name::STRING) :: (user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.createGraph"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.modGraph"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u5b50\u56fe\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"dbms.graph.modGraph(graph_name::STRING,config::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.deleteGraph"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.deleteGraph(graph_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.listGraphs"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u5b50\u56fe"}),(0,r.jsx)(e.td,{children:"dbms.graph.listGraphs() :: (graph_name::STRING,configuration::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.graph.getGraphInfo"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6307\u5b9a\u5b50\u56fe\u7684\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.graph.getGraphInfo(graph_name::STRING)::(graph_name::STRING,configuration::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.addAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u6dfb\u52a0ip\u5230\u4fe1\u4efb\u5217\u8868"}),(0,r.jsx)(e.td,{children:"dbms.security.addAllowedHosts(hosts::LIST) :: (num_new::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u4ece\u4fe1\u4efb\u5217\u8868\u5220\u9664ip"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteAllowedHosts(hosts::LIST) :: (record_affected::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listAllowedHosts"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u4fe1\u4efb\u5217\u8868\u4e2d\u7684\u4e3b\u673aip"}),(0,r.jsx)(e.td,{children:"dbms.security.listAllowedHosts() :: (host::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.config.update"}),(0,r.jsx)(e.td,{children:"\u66f4\u65b0TuGraph\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"dbms.config.update(updates::MAP) :: (message::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.config.list"}),(0,r.jsx)(e.td,{children:"\u5217\u51faTuGraph\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"dbms.config.list() :: (name::STRING,value::ANY)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.shortestPath"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u4e24\u4e2a\u70b9\u95f4\u7684\u6700\u77ed\u8def\u5f84"}),(0,r.jsx)(e.td,{children:"algo.shortestPath(startNode::NODE,endNode::NODE,config::MAP) :: (nodeCount::INTEGER,totalCost::FLOAT)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.allShortestPaths"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u4e24\u4e2a\u70b9\u95f4\u7684\u6240\u6709\u6700\u77ed\u8def\u5f84"}),(0,r.jsx)(e.td,{children:"algo.allShortestPaths(startNode::NODE,endNode::NODE,config::MAP) :: (nodeIds::LIST,relationshipIds::LIST,cost::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"algo.native.extract"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u6307\u5b9aVertexId/EdgeUid\uff08\u5217\u8868\uff09\u6307\u5b9afield\u7684\u503c\uff08\u5217\u8868\uff09"}),(0,r.jsx)(e.td,{children:"algo.native.extract(id::ANY,config::MAP) :: (value::ANY)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.flushDB"}),(0,r.jsx)(e.td,{children:"\u5237\u65b0db"}),(0,r.jsx)(e.td,{children:"db.flushDB() :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.listRoles"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u6240\u6709\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.listRoles() :: (role_name::STRING,role_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.createRole"}),(0,r.jsx)(e.td,{children:"\u521b\u5efa\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.createRole(role_name::STRING,desc::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteRole"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteRole(role_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getRoleInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u89d2\u8272\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.getRoleInfo(role::STRING) :: (role_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.disableRole"}),(0,r.jsx)(e.td,{children:"\u7981\u7528/\u542f\u7528\u89d2\u8272"}),(0,r.jsx)(e.td,{children:"dbms.security.disableRole(role::STRING,disable::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleDesc"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleDesc(role::STRING,description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.rebuildRoleAccessLevel"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u89d2\u8272\u6743\u9650\u5e76\u91cd\u5efa"}),(0,r.jsx)(e.td,{children:"dbms.security.rebuildRoleAccessLevel(role::STRING,access_level::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleAccessLevel"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u5bf9\u6307\u5b9a\u56fe\u7684\u8bbf\u95ee\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleAccessLevel(role::STRING,access_level::MAP) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.modRoleFieldAccessLevel"}),(0,r.jsx)(e.td,{children:"\u4fee\u6539\u89d2\u8272\u5bf9\u6307\u5b9a\u5c5e\u6027\u7684\u8bbf\u95ee\u6743\u9650"}),(0,r.jsx)(e.td,{children:"dbms.security.modRoleFieldAccessLevel(role::STRING,graph::STRING,label::STRING,field::STRING,label_type::STRING,field_access_level::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u7528\u6237\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserInfo(user::STRING) :: (user_info::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.disableUser"}),(0,r.jsx)(e.td,{children:"\u7981\u7528/\u542f\u7528\u7528\u6237"}),(0,r.jsx)(e.td,{children:"dbms.security.disableUser(user::STRING,disable::BOOLEAN) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setCurrentDesc"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u5f53\u524d\u7528\u6237\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.setCurrentDesc(description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setUserDesc"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u7528\u6237\u63cf\u8ff0\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"dbms.security.setUserDesc(user::STRING,description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.getUserMemoryUsage"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6\u7528\u6237\u5185\u5b58\u7528\u91cf"}),(0,r.jsx)(e.td,{children:"dbms.security.getUserMemoryUsage(user::STRING) :: (memory_usage::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.setUserMemoryLimit"}),(0,r.jsx)(e.td,{children:"\u8bbe\u7f6e\u7528\u6237\u5185\u5b58\u9650\u5236"}),(0,r.jsx)(e.td,{children:"dbms.security.setUserMemoryLimit(user::STRING,memorylimit::INTEGER) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.deleteUserRoles"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u7528\u6237\u4e0e\u89d2\u8272\u7684\u8054\u7cfb"}),(0,r.jsx)(e.td,{children:"dbms.security.deleteUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.rebuildUserRoles"}),(0,r.jsx)(e.td,{children:"\u6e05\u7a7a\u7528\u6237\u89d2\u8272\u7684\u5173\u7cfb\u5e76\u91cd\u5efa"}),(0,r.jsx)(e.td,{children:"dbms.security.rebuildUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.security.addUserRoles"}),(0,r.jsx)(e.td,{children:"\u65b0\u589e\u7528\u6237\u4e0e\u89d2\u8272\u7684\u8054\u7cfb"}),(0,r.jsx)(e.td,{children:"dbms.security.addUserRoles(user::STRING,roles::LIST) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.loadPlugin"}),(0,r.jsx)(e.td,{children:"\u88c5\u8f7dplugin"}),(0,r.jsx)(e.td,{children:"db.plugin.loadPlugin(plugin_type::STRING,plugin_name::STRING,plugin_content::STRING or MAP,code_type::STRING,plugin_description::STRING,read_only::BOOLEAN,version::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.deletePlugin"}),(0,r.jsx)(e.td,{children:"\u5220\u9664plugin"}),(0,r.jsx)(e.td,{children:"db.plugin.deletePlugin(plugin_type::STRING,plugin_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.listPlugin"}),(0,r.jsx)(e.td,{children:"\u5217\u51fa\u5df2\u88c5\u8f7d\u7684plugin"}),(0,r.jsx)(e.td,{children:"db.plugin.listPlugin(plugin_type::STRING,plugin_version::STRING) :: (plugin_description::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.getPluginInfo"}),(0,r.jsx)(e.td,{children:"\u83b7\u53d6plugin\u7684\u8be6\u7ec6\u4fe1\u606f"}),(0,r.jsx)(e.td,{children:"db.plugin.getPluginInfo(plugin_type::STRING,plugin_name::STRING,show_code::BOOLEAN)::(plugin_description::MAP)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.plugin.callPlugin"}),(0,r.jsx)(e.td,{children:"\u6267\u884cplugin"}),(0,r.jsx)(e.td,{children:"db.plugin.callPlugin(plugin_type::STRING,plugin_name::STRING,param::STRING,timeout::DOUBLE,in_process::BOOLEAN) :: (success::BOOLEAN,result::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.importor.dataImportor"}),(0,r.jsx)(e.td,{children:"\u5bfc\u5165\u70b9\u6216\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"db.importor.dataImportor(description::STRING,content::STRING,continue_on_error::BOOLEAN,thread_nums::INTEGER,delimiter::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.importor.schemaImportor"}),(0,r.jsx)(e.td,{children:"\u5bfc\u5165\u70b9\u6216\u8fb9schema"}),(0,r.jsx)(e.td,{children:"db.importor.schemaImportor(description::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.addFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u6dfb\u52a0\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.addFullTextIndex(is_vertex::BOOLEAN, label_name::STRING, field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.deleteFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u5220\u9664\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.deleteFullTextIndex(is_vertex::BOOLEAN, label_name::STRING, field_name::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.rebuildFullTextIndex"}),(0,r.jsx)(e.td,{children:"\u91cd\u5efa\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.rebuildFullTextIndex(vertex_labels::STRING, edge_labels::STRING) :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.fullTextIndexes"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u5168\u6587\u7d22\u5f15"}),(0,r.jsx)(e.td,{children:"db.fullTextIndexes() :: (is_vertex::BOOLEAN, label::STRING, field::STRING)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.count"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u70b9\u8fb9\u603b\u6570"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.count() :: (type::STRING, number::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.countDetail"}),(0,r.jsx)(e.td,{children:"\u67e5\u770b\u70b9\u8fb9\u603b\u6570\u8be6\u60c5"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.countDetail() :: (is_vertex::BOOLEAN, label::STRING, count::INTEGER)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.meta.refreshCount"}),(0,r.jsx)(e.td,{children:"\u91cd\u65b0\u7edf\u8ba1\u70b9\u8fb9\u6570\u91cf\uff0c\u7edf\u8ba1\u671f\u95f4\u505c\u5199\u3002"}),(0,r.jsx)(e.td,{children:"db.dbms.meta.refreshCount() :: (::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.task.listTasks"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1"}),(0,r.jsx)(e.td,{children:"dbms.task.listTasks()::(tasks::LIST)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.task.terminateTask"}),(0,r.jsx)(e.td,{children:"\u4e2d\u6b62\u4efb\u52a1"}),(0,r.jsx)(e.td,{children:"dbms.task.terminateTask(task_id::STRING)::(::VOID)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"dbms.ha.clusterInfo"}),(0,r.jsx)(e.td,{children:"HA\u6a21\u5f0f\u4e0b\u67e5\u770b\u96c6\u7fa4\u72b6\u6001"}),(0,r.jsx)(e.td,{children:"dbms.ha.clusterInfo() :: (cluster_info::LIST, is_master::BOOLEAN)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db.dropDB"}),(0,r.jsx)(e.td,{children:"\u6e05\u7a7a\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"db.dropDB() :: (::VOID)"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,d.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(x,{...n})}):x(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>i,x:()=>t});var r=s(6540);const d={},l=r.createContext(d);function i(n){const e=r.useContext(l);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:i(n.components),r.createElement(l.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/39e34d9b.3e2e9ce4.js b/assets/js/39e34d9b.3e2e9ce4.js
new file mode 100644
index 0000000000..b0a122aa10
--- /dev/null
+++ b/assets/js/39e34d9b.3e2e9ce4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7742],{7759:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>a,default:()=>o,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var i=r(4848),l=r(8453);const s={},a="ISO GQL",d={id:"query/gql",title:"ISO GQL",description:"1.Introduction to ISO GQL",source:"@site/../docs/en-US/source/8.query/2.gql.md",sourceDirName:"8.query",slug:"/query/gql",permalink:"/tugraph-db/en/query/gql",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cypher API",permalink:"/tugraph-db/en/query/cypher"},next:{title:"TuGraph Stored Procedure Guide",permalink:"/tugraph-db/en/olap&procedure/procedure/"}},t={},c=[{value:"1.Introduction to ISO GQL",id:"1introduction-to-iso-gql",level:2},{value:"2.List of Clauses",id:"2list-of-clauses",level:2},{value:"2.1.MATCH",id:"21match",level:3},{value:"Vertex basics",id:"vertex-basics",level:4},{value:"Get all vertices",id:"get-all-vertices",level:5},{value:"Get all vertices with a label",id:"get-all-vertices-with-a-label",level:5},{value:"Vertex matching with property",id:"vertex-matching-with-property",level:5},{value:"Vertex matching with filter",id:"vertex-matching-with-filter",level:5},{value:"Edge basics",id:"edge-basics",level:4},{value:"Edge pointing right",id:"edge-pointing-right",level:5},{value:"Edge pointing left",id:"edge-pointing-left",level:5},{value:"Edge matching with filter",id:"edge-matching-with-filter",level:5},{value:"Path matching",id:"path-matching",level:4},{value:"Variable length",id:"variable-length",level:5},{value:"2.2.OPTIONAL MATCH",id:"22optional-match",level:3},{value:"Match found",id:"match-found",level:4},{value:"Match Not Found",id:"match-not-found",level:4},{value:"2.3.RETURN",id:"23return",level:3},{value:"Return vertices",id:"return-vertices",level:4},{value:"Return edges",id:"return-edges",level:4},{value:"Return property",id:"return-property",level:4},{value:"Uncommon string used as variable name",id:"uncommon-string-used-as-variable-name",level:4},{value:"Alias",id:"alias",level:4},{value:"Optional property",id:"optional-property",level:4},{value:"Other expressions",id:"other-expressions",level:4},{value:"Distinct",id:"distinct",level:4},{value:"2.4.NEXT",id:"24next",level:3},{value:"Connecting MATCH clauses",id:"connecting-match-clauses",level:4},{value:"2.5.WHERE",id:"25where",level:3},{value:"Filter vertex",id:"filter-vertex",level:4},{value:"Filter edge",id:"filter-edge",level:4},{value:"Boolean expressions",id:"boolean-expressions",level:4},{value:"2.6.ORDER BY",id:"26order-by",level:3},{value:"Sorting the Result",id:"sorting-the-result",level:4},{value:"2.7.SKIP",id:"27skip",level:3},{value:"Without SKIP",id:"without-skip",level:4},{value:"Using SKIP",id:"using-skip",level:4},{value:"2.8.LIMIT",id:"28limit",level:3},{value:"Using LIMIT",id:"using-limit",level:4}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"iso-gql",children:"ISO GQL"})}),"\n",(0,i.jsx)(n.h2,{id:"1introduction-to-iso-gql",children:"1.Introduction to ISO GQL"}),"\n",(0,i.jsxs)(n.p,{children:["Graph Query Language (GQL) is an upcoming International Standard language for property graph querying. It builds on the foundations of SQL and integrates proven ideas from the existing ",(0,i.jsx)(n.a,{href:"https://gql.today/comparing-cypher-pgql-and-g-core/",children:"openCypher, PGQL, GSQL, and G-CORE"})," languages. The standard is currently in the draft stage."]}),"\n",(0,i.jsxs)(n.p,{children:["TuGraph has implemented GQL based on the ",(0,i.jsx)(n.a,{href:"https://github.com/TuGraph-family/gql-grammar",children:"ISO GQL (ISO/IEC 39075) Antlr4 grammar file"}),". It includes some extensions and modifications. Not all GQL syntax is fully supported at the moment, but we will continue to improve and enhance it in the future."]}),"\n",(0,i.jsx)(n.h2,{id:"2list-of-clauses",children:"2.List of Clauses"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Category"}),(0,i.jsx)(n.th,{children:"Clauses"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Reading clauses"}),(0,i.jsx)(n.td,{children:"MATCH"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"OPTIONAL MATCH"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Projecting clauses"}),(0,i.jsx)(n.td,{children:"RETURN"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"NEXT"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Reading sub-clauses"}),(0,i.jsx)(n.td,{children:"WHERE"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"ORDER BY"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"SKIP"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"LIMIT"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"21match",children:"2.1.MATCH"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"MATCH"})," clause is the most basic clause in GQL, and almost all queries are expanded through ",(0,i.jsx)(n.code,{children:"MATCH"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"MATCH"})," clause is used to specify the matching pattern to search in the graph, to match vertices or paths that meet certain conditions."]}),"\n",(0,i.jsx)(n.h4,{id:"vertex-basics",children:"Vertex basics"}),"\n",(0,i.jsx)(n.h5,{id:"get-all-vertices",children:"Get all vertices"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN n\n"})}),"\n",(0,i.jsx)(n.h5,{id:"get-all-vertices-with-a-label",children:"Get all vertices with a label"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n\n"})}),"\n",(0,i.jsx)(n.h5,{id:"vertex-matching-with-property",children:"Vertex matching with property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person{name:'Michael Redgrave'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":1908}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"vertex-matching-with-filter",children:"Vertex matching with filter"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1910)\nRETURN n.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"edge-basics",children:"Edge basics"}),"\n",(0,i.jsx)(n.h5,{id:"edge-pointing-right",children:"Edge pointing right"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear = 1970)-[e]->(m)\nRETURN n.name, label(e), m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label(e)":"BORN_IN","m.name":"London","n.name":"Christopher Nolan"},{"label(e)":"DIRECTED","m.name":null,"n.name":"Christopher Nolan"}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"edge-pointing-left",children:"Edge pointing left"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear = 1939)<-[e]-(m)\nRETURN n.name, label(e), m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label(e)":"HAS_CHILD","m.name":"Rachel Kempson","n.name":"Corin Redgrave"},{"label(e)":"HAS_CHILD","m.name":"Michael Redgrave","n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"edge-matching-with-filter",children:"Edge matching with filter"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)-[e:BORN_IN WHERE e.weight > 20]->(m)\nRETURN n.name, e.weight, m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"e.weight":20.549999237060547,"m.name":"New York","n.name":"John Williams"},{"e.weight":20.6200008392334,"m.name":"New York","n.name":"Lindsay Lohan"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"path-matching",children:"Path matching"}),"\n",(0,i.jsx)(n.h5,{id:"variable-length",children:"Variable length"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)-[e]->{2,3}(m:Person)\nRETURN m.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.name":"Liam Neeson"},{"m.name":"Natasha Richardson"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"22optional-match",children:"2.2.OPTIONAL MATCH"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"OPTIONAL MATCH"})," clause matches a graph pattern and returns ",(0,i.jsx)(n.code,{children:"null"})," if there is no match."]}),"\n",(0,i.jsx)(n.h4,{id:"match-found",children:"Match found"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"OPTIONAL MATCH (n:Person{name:'Michael Redgrave'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":1908}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"match-not-found",children:"Match Not Found"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"OPTIONAL MATCH (n:Person{name:'Redgrave Michael'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":null}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"23return",children:"2.3.RETURN"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"RETURN"})," clause specifies the results to be returned, including vertices, edges, paths, properties, etc."]}),"\n",(0,i.jsx)(n.h4,{id:"return-vertices",children:"Return vertices"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN n LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n":{"identity":0,"label":"Person","properties":{"birthyear":1910,"name":"Rachel Kempson"}}},{"n":{"identity":1,"label":"Person","properties":{"birthyear":1908,"name":"Michael Redgrave"}}}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"return-edges",children:"Return edges"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)-[e]->(m)\nRETURN e LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"e":{"dst":2,"forward":false,"identity":0,"label":"HAS_CHILD","label_id":0,"src":0,"temporal_id":0}},{"e":{"dst":3,"forward":false,"identity":0,"label":"HAS_CHILD","label_id":0,"src":0,"temporal_id":0}}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"return-property",children:"Return property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"uncommon-string-used-as-variable-name",children:"Uncommon string used as variable name"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (`/uncommon variable`:Person)\nRETURN `/uncommon variable`.name LIMIT 3\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"`/uncommon variable`.name":"Christopher Nolan"},{"`/uncommon variable`.name":"Corin Redgrave"},{"`/uncommon variable`.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"alias",children:"Alias"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name AS nname LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"nname":"Christopher Nolan"},{"nname":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"optional-property",children:"Optional property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.age LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.age":null},{"n.age":null}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"other-expressions",children:"Other expressions"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'MATCH (n:Person)\nRETURN n.birthyear > 1970, "I\'m a literal", 1 + 2, abs(-2)\nLIMIT 2\n'})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"\\"I\'m a literal\\"":"I\'m a literal","1 + 2":3,"abs(-2)":2,"n.birthyear > 1970":false},{"\\"I\'m a literal\\"":"I\'m a literal","1 + 2":3,"abs(-2)":2,"n.birthyear > 1970":false}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"distinct",children:"Distinct"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN DISTINCT label(n) AS label\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label":"Person"},{"label":"City"},{"label":"Film"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"24next",children:"2.4.NEXT"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"NEXT"})," clause is used to connect multiple clauses."]}),"\n",(0,i.jsx)(n.h4,{id:"connecting-match-clauses",children:"Connecting MATCH clauses"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person) WHERE n.birthyear = 1970\nRETURN n\nNEXT\nMATCH (m:Person) WHERE m.birthyear < 1968\nRETURN n.name, n.birthyear, m.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.name":"Rachel Kempson","n.birthyear":1970,"n.name":"Christopher Nolan"},{"m.name":"Michael Redgrave","n.birthyear":1970,"n.name":"Christopher Nolan"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"25where",children:"2.5.WHERE"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"WHERE"})," clause is used to filter records."]}),"\n",(0,i.jsx)(n.h4,{id:"filter-vertex",children:"Filter vertex"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1965)\nRETURN n.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Lindsay Lohan"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"filter-edge",children:"Filter edge"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1965)-[e:ACTED_IN]->(m:Film)\nWHERE e.charactername = 'Halle/Annie'\nRETURN m.title\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.title":"The Parent Trap"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"boolean-expressions",children:"Boolean expressions"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AND"}),", ",(0,i.jsx)(n.code,{children:"OR"}),", ",(0,i.jsx)(n.code,{children:"XOR"}),", and ",(0,i.jsx)(n.code,{children:"NOT"})," Boolean expressions can be used in the ",(0,i.jsx)(n.code,{children:"WHERE"})," clause to filter data."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nWHERE\n\tn.birthyear > 1930 AND (n.birthyear < 1950 OR n.name = 'Corin Redgrave')\nRETURN n LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n":{"identity":3,"label":"Person","properties":{"birthyear":1939,"name":"Corin Redgrave"}}},{"n":{"identity":11,"label":"Person","properties":{"birthyear":1932,"name":"John Williams"}}}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"26order-by",children:"2.6.ORDER BY"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ORDER BY"})," is a clause of ",(0,i.jsx)(n.code,{children:"RETURN"})," that sorts the output result."]}),"\n",(0,i.jsx)(n.h4,{id:"sorting-the-result",children:"Sorting the Result"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear < 1970)\nRETURN n.birthyear AS q\nORDER BY q ASC\nLIMIT 5\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"q":1873},{"q":1908},{"q":1910},{"q":1930},{"q":1932}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"27skip",children:"2.7.SKIP"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"SKIP"})," specifies the offset of the result rows."]}),"\n",(0,i.jsx)(n.h4,{id:"without-skip",children:"Without SKIP"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 3\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"},{"n.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"using-skip",children:"Using SKIP"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name SKIP 1 LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Corin Redgrave"},{"n.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"28limit",children:"2.8.LIMIT"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"LIMIT"})," clause is used to limit the number of rows in the result."]}),"\n",(0,i.jsx)(n.h4,{id:"using-limit",children:"Using LIMIT"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 2;\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>d});var i=r(6540);const l={},s=i.createContext(l);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/39e34d9b.9c58b987.js b/assets/js/39e34d9b.9c58b987.js
deleted file mode 100644
index 6159b14ccf..0000000000
--- a/assets/js/39e34d9b.9c58b987.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7742],{1801:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>t,contentTitle:()=>a,default:()=>o,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var i=r(4848),l=r(8453);const s={},a="ISO GQL",d={id:"en-US/source/query/gql",title:"ISO GQL",description:"1.Introduction to ISO GQL",source:"@site/../docs/en-US/source/8.query/2.gql.md",sourceDirName:"en-US/source/8.query",slug:"/en-US/source/query/gql",permalink:"/tugraph-db/en-US/source/query/gql",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cypher API",permalink:"/tugraph-db/en-US/source/query/cypher"},next:{title:"TuGraph Stored Procedure Guide",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/"}},t={},c=[{value:"1.Introduction to ISO GQL",id:"1introduction-to-iso-gql",level:2},{value:"2.List of Clauses",id:"2list-of-clauses",level:2},{value:"2.1.MATCH",id:"21match",level:3},{value:"Vertex basics",id:"vertex-basics",level:4},{value:"Get all vertices",id:"get-all-vertices",level:5},{value:"Get all vertices with a label",id:"get-all-vertices-with-a-label",level:5},{value:"Vertex matching with property",id:"vertex-matching-with-property",level:5},{value:"Vertex matching with filter",id:"vertex-matching-with-filter",level:5},{value:"Edge basics",id:"edge-basics",level:4},{value:"Edge pointing right",id:"edge-pointing-right",level:5},{value:"Edge pointing left",id:"edge-pointing-left",level:5},{value:"Edge matching with filter",id:"edge-matching-with-filter",level:5},{value:"Path matching",id:"path-matching",level:4},{value:"Variable length",id:"variable-length",level:5},{value:"2.2.OPTIONAL MATCH",id:"22optional-match",level:3},{value:"Match found",id:"match-found",level:4},{value:"Match Not Found",id:"match-not-found",level:4},{value:"2.3.RETURN",id:"23return",level:3},{value:"Return vertices",id:"return-vertices",level:4},{value:"Return edges",id:"return-edges",level:4},{value:"Return property",id:"return-property",level:4},{value:"Uncommon string used as variable name",id:"uncommon-string-used-as-variable-name",level:4},{value:"Alias",id:"alias",level:4},{value:"Optional property",id:"optional-property",level:4},{value:"Other expressions",id:"other-expressions",level:4},{value:"Distinct",id:"distinct",level:4},{value:"2.4.NEXT",id:"24next",level:3},{value:"Connecting MATCH clauses",id:"connecting-match-clauses",level:4},{value:"2.5.WHERE",id:"25where",level:3},{value:"Filter vertex",id:"filter-vertex",level:4},{value:"Filter edge",id:"filter-edge",level:4},{value:"Boolean expressions",id:"boolean-expressions",level:4},{value:"2.6.ORDER BY",id:"26order-by",level:3},{value:"Sorting the Result",id:"sorting-the-result",level:4},{value:"2.7.SKIP",id:"27skip",level:3},{value:"Without SKIP",id:"without-skip",level:4},{value:"Using SKIP",id:"using-skip",level:4},{value:"2.8.LIMIT",id:"28limit",level:3},{value:"Using LIMIT",id:"using-limit",level:4}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"iso-gql",children:"ISO GQL"})}),"\n",(0,i.jsx)(n.h2,{id:"1introduction-to-iso-gql",children:"1.Introduction to ISO GQL"}),"\n",(0,i.jsxs)(n.p,{children:["Graph Query Language (GQL) is an upcoming International Standard language for property graph querying. It builds on the foundations of SQL and integrates proven ideas from the existing ",(0,i.jsx)(n.a,{href:"https://gql.today/comparing-cypher-pgql-and-g-core/",children:"openCypher, PGQL, GSQL, and G-CORE"})," languages. The standard is currently in the draft stage."]}),"\n",(0,i.jsxs)(n.p,{children:["TuGraph has implemented GQL based on the ",(0,i.jsx)(n.a,{href:"https://github.com/TuGraph-family/gql-grammar",children:"ISO GQL (ISO/IEC 39075) Antlr4 grammar file"}),". It includes some extensions and modifications. Not all GQL syntax is fully supported at the moment, but we will continue to improve and enhance it in the future."]}),"\n",(0,i.jsx)(n.h2,{id:"2list-of-clauses",children:"2.List of Clauses"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Category"}),(0,i.jsx)(n.th,{children:"Clauses"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Reading clauses"}),(0,i.jsx)(n.td,{children:"MATCH"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"OPTIONAL MATCH"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Projecting clauses"}),(0,i.jsx)(n.td,{children:"RETURN"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"NEXT"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Reading sub-clauses"}),(0,i.jsx)(n.td,{children:"WHERE"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"ORDER BY"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"SKIP"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"LIMIT"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"21match",children:"2.1.MATCH"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"MATCH"})," clause is the most basic clause in GQL, and almost all queries are expanded through ",(0,i.jsx)(n.code,{children:"MATCH"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"MATCH"})," clause is used to specify the matching pattern to search in the graph, to match vertices or paths that meet certain conditions."]}),"\n",(0,i.jsx)(n.h4,{id:"vertex-basics",children:"Vertex basics"}),"\n",(0,i.jsx)(n.h5,{id:"get-all-vertices",children:"Get all vertices"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN n\n"})}),"\n",(0,i.jsx)(n.h5,{id:"get-all-vertices-with-a-label",children:"Get all vertices with a label"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n\n"})}),"\n",(0,i.jsx)(n.h5,{id:"vertex-matching-with-property",children:"Vertex matching with property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person{name:'Michael Redgrave'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":1908}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"vertex-matching-with-filter",children:"Vertex matching with filter"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1910)\nRETURN n.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"edge-basics",children:"Edge basics"}),"\n",(0,i.jsx)(n.h5,{id:"edge-pointing-right",children:"Edge pointing right"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear = 1970)-[e]->(m)\nRETURN n.name, label(e), m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label(e)":"BORN_IN","m.name":"London","n.name":"Christopher Nolan"},{"label(e)":"DIRECTED","m.name":null,"n.name":"Christopher Nolan"}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"edge-pointing-left",children:"Edge pointing left"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear = 1939)<-[e]-(m)\nRETURN n.name, label(e), m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label(e)":"HAS_CHILD","m.name":"Rachel Kempson","n.name":"Corin Redgrave"},{"label(e)":"HAS_CHILD","m.name":"Michael Redgrave","n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h5,{id:"edge-matching-with-filter",children:"Edge matching with filter"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)-[e:BORN_IN WHERE e.weight > 20]->(m)\nRETURN n.name, e.weight, m.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"e.weight":20.549999237060547,"m.name":"New York","n.name":"John Williams"},{"e.weight":20.6200008392334,"m.name":"New York","n.name":"Lindsay Lohan"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"path-matching",children:"Path matching"}),"\n",(0,i.jsx)(n.h5,{id:"variable-length",children:"Variable length"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)-[e]->{2,3}(m:Person)\nRETURN m.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.name":"Liam Neeson"},{"m.name":"Natasha Richardson"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"22optional-match",children:"2.2.OPTIONAL MATCH"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"OPTIONAL MATCH"})," clause matches a graph pattern and returns ",(0,i.jsx)(n.code,{children:"null"})," if there is no match."]}),"\n",(0,i.jsx)(n.h4,{id:"match-found",children:"Match found"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"OPTIONAL MATCH (n:Person{name:'Michael Redgrave'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":1908}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"match-not-found",children:"Match Not Found"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"OPTIONAL MATCH (n:Person{name:'Redgrave Michael'})\nRETURN n.birthyear\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.birthyear":null}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"23return",children:"2.3.RETURN"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"RETURN"})," clause specifies the results to be returned, including vertices, edges, paths, properties, etc."]}),"\n",(0,i.jsx)(n.h4,{id:"return-vertices",children:"Return vertices"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN n LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n":{"identity":0,"label":"Person","properties":{"birthyear":1910,"name":"Rachel Kempson"}}},{"n":{"identity":1,"label":"Person","properties":{"birthyear":1908,"name":"Michael Redgrave"}}}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"return-edges",children:"Return edges"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)-[e]->(m)\nRETURN e LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"e":{"dst":2,"forward":false,"identity":0,"label":"HAS_CHILD","label_id":0,"src":0,"temporal_id":0}},{"e":{"dst":3,"forward":false,"identity":0,"label":"HAS_CHILD","label_id":0,"src":0,"temporal_id":0}}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"return-property",children:"Return property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"uncommon-string-used-as-variable-name",children:"Uncommon string used as variable name"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (`/uncommon variable`:Person)\nRETURN `/uncommon variable`.name LIMIT 3\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"`/uncommon variable`.name":"Christopher Nolan"},{"`/uncommon variable`.name":"Corin Redgrave"},{"`/uncommon variable`.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"alias",children:"Alias"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name AS nname LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"nname":"Christopher Nolan"},{"nname":"Corin Redgrave"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"optional-property",children:"Optional property"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.age LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.age":null},{"n.age":null}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"other-expressions",children:"Other expressions"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'MATCH (n:Person)\nRETURN n.birthyear > 1970, "I\'m a literal", 1 + 2, abs(-2)\nLIMIT 2\n'})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"\\"I\'m a literal\\"":"I\'m a literal","1 + 2":3,"abs(-2)":2,"n.birthyear > 1970":false},{"\\"I\'m a literal\\"":"I\'m a literal","1 + 2":3,"abs(-2)":2,"n.birthyear > 1970":false}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"distinct",children:"Distinct"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n)\nRETURN DISTINCT label(n) AS label\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"label":"Person"},{"label":"City"},{"label":"Film"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"24next",children:"2.4.NEXT"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"NEXT"})," clause is used to connect multiple clauses."]}),"\n",(0,i.jsx)(n.h4,{id:"connecting-match-clauses",children:"Connecting MATCH clauses"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person) WHERE n.birthyear = 1970\nRETURN n\nNEXT\nMATCH (m:Person) WHERE m.birthyear < 1968\nRETURN n.name, n.birthyear, m.name LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.name":"Rachel Kempson","n.birthyear":1970,"n.name":"Christopher Nolan"},{"m.name":"Michael Redgrave","n.birthyear":1970,"n.name":"Christopher Nolan"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"25where",children:"2.5.WHERE"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"WHERE"})," clause is used to filter records."]}),"\n",(0,i.jsx)(n.h4,{id:"filter-vertex",children:"Filter vertex"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1965)\nRETURN n.name\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Lindsay Lohan"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"filter-edge",children:"Filter edge"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear > 1965)-[e:ACTED_IN]->(m:Film)\nWHERE e.charactername = 'Halle/Annie'\nRETURN m.title\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"m.title":"The Parent Trap"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"boolean-expressions",children:"Boolean expressions"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AND"}),", ",(0,i.jsx)(n.code,{children:"OR"}),", ",(0,i.jsx)(n.code,{children:"XOR"}),", and ",(0,i.jsx)(n.code,{children:"NOT"})," Boolean expressions can be used in the ",(0,i.jsx)(n.code,{children:"WHERE"})," clause to filter data."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nWHERE\n\tn.birthyear > 1930 AND (n.birthyear < 1950 OR n.name = 'Corin Redgrave')\nRETURN n LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"returns"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n":{"identity":3,"label":"Person","properties":{"birthyear":1939,"name":"Corin Redgrave"}}},{"n":{"identity":11,"label":"Person","properties":{"birthyear":1932,"name":"John Williams"}}}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"26order-by",children:"2.6.ORDER BY"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ORDER BY"})," is a clause of ",(0,i.jsx)(n.code,{children:"RETURN"})," that sorts the output result."]}),"\n",(0,i.jsx)(n.h4,{id:"sorting-the-result",children:"Sorting the Result"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person WHERE n.birthyear < 1970)\nRETURN n.birthyear AS q\nORDER BY q ASC\nLIMIT 5\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"q":1873},{"q":1908},{"q":1910},{"q":1930},{"q":1932}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"27skip",children:"2.7.SKIP"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"SKIP"})," specifies the offset of the result rows."]}),"\n",(0,i.jsx)(n.h4,{id:"without-skip",children:"Without SKIP"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 3\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"},{"n.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h4,{id:"using-skip",children:"Using SKIP"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name SKIP 1 LIMIT 2\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Corin Redgrave"},{"n.name":"Dennis Quaid"}]\n'})}),"\n",(0,i.jsx)(n.h3,{id:"28limit",children:"2.8.LIMIT"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"LIMIT"})," clause is used to limit the number of rows in the result."]}),"\n",(0,i.jsx)(n.h4,{id:"using-limit",children:"Using LIMIT"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"MATCH (n:Person)\nRETURN n.name LIMIT 2;\n"})}),"\n",(0,i.jsx)(n.p,{children:"return"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-JSON",children:'[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]\n'})})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>d});var i=r(6540);const l={},s=i.createContext(l);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3a0e1708.b19296d6.js b/assets/js/3a0e1708.b19296d6.js
deleted file mode 100644
index 9255e5b316..0000000000
--- a/assets/js/3a0e1708.b19296d6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5614],{1499:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>t,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var h=r(4848),i=r(8453);const l={},s="\u529f\u80fd\u6982\u89c8",d={id:"zh-CN/source/introduction/functionality",title:"\u529f\u80fd\u6982\u89c8",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\u3002",source:"@site/../docs/zh-CN/source/2.introduction/7.functionality.md",sourceDirName:"zh-CN/source/2.introduction",slug:"/zh-CN/source/introduction/functionality",permalink:"/tugraph-db/zh-CN/source/introduction/functionality",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph\u4ea7\u54c1\u67b6\u6784",permalink:"/tugraph-db/zh-CN/source/introduction/architecture"},next:{title:"\u5e94\u7528\u573a\u666f",permalink:"/tugraph-db/zh-CN/source/introduction/scenarios"}},c={},a=[{value:"1.\u5b89\u88c5\u90e8\u7f72",id:"1\u5b89\u88c5\u90e8\u7f72",level:2},{value:"1.1.\u90e8\u7f72\u65b9\u5f0f",id:"11\u90e8\u7f72\u65b9\u5f0f",level:2},{value:"1.2.\u8f6f\u786c\u4ef6\u73af\u5883",id:"12\u8f6f\u786c\u4ef6\u73af\u5883",level:2},{value:"2.\u5b58\u50a8\u5c42",id:"2\u5b58\u50a8\u5c42",level:2},{value:"3.\u8ba1\u7b97\u5c42",id:"3\u8ba1\u7b97\u5c42",level:2},{value:"4.\u6838\u5fc3\u529f\u80fd",id:"4\u6838\u5fc3\u529f\u80fd",level:2},{value:"4.1.\u67e5\u8be2\u8bed\u8a00",id:"41\u67e5\u8be2\u8bed\u8a00",level:3},{value:"4.2.\u5b58\u50a8\u8fc7\u7a0b",id:"42\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.3.\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",id:"43\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",level:3},{value:"4.4.\u5907\u4efd\u6062\u590d",id:"44\u5907\u4efd\u6062\u590d",level:3},{value:"4.5 \u6570\u636e\u9884\u70ed",id:"45-\u6570\u636e\u9884\u70ed",level:3},{value:"4.6 \u9ad8\u53ef\u7528",id:"46-\u9ad8\u53ef\u7528",level:3},{value:"5.\u5ba2\u6237\u7aef\u5de5\u5177",id:"5\u5ba2\u6237\u7aef\u5de5\u5177",level:2},{value:"6.\u751f\u6001\u5de5\u5177",id:"6\u751f\u6001\u5de5\u5177",level:2},{value:"6.1.TuGraph DataX",id:"61tugraph-datax",level:3},{value:"6.2.\u53ef\u89c6\u5316\u4ea4\u4e92",id:"62\u53ef\u89c6\u5316\u4ea4\u4e92",level:3},{value:"6.3.\u8fd0\u7ef4\u76d1\u63a7",id:"63\u8fd0\u7ef4\u76d1\u63a7",level:3}];function u(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(n.header,{children:(0,h.jsx)(n.h1,{id:"\u529f\u80fd\u6982\u89c8",children:"\u529f\u80fd\u6982\u89c8"})}),"\n",(0,h.jsxs)(n.blockquote,{children:["\n",(0,h.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\u3002"}),"\n"]}),"\n",(0,h.jsx)(n.h2,{id:"1\u5b89\u88c5\u90e8\u7f72",children:"1.\u5b89\u88c5\u90e8\u7f72"}),"\n",(0,h.jsx)(n.h2,{id:"11\u90e8\u7f72\u65b9\u5f0f",children:"1.1.\u90e8\u7f72\u65b9\u5f0f"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u63d0\u4f9b\u4e91\u90e8\u7f72\u3001Docker\u90e8\u7f72\u4ee5\u53ca\u5b89\u88c5\u5305\u90e8\u7f72\u4e09\u79cd\u90e8\u7f72\u65b9\u5f0f\uff0c\u7528\u6237\u53ef\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u9009\u62e9\u9002\u5408\u7684\u90e8\u7f72\u65b9\u5f0f\u3002"}),"\n",(0,h.jsx)(n.h2,{id:"12\u8f6f\u786c\u4ef6\u73af\u5883",children:"1.2.\u8f6f\u786c\u4ef6\u73af\u5883"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph\u6838\u5fc3\u662f\u7531C++\u5f00\u53d1\uff0c\u9ed8\u8ba4\u4f7f\u7528\u7684\u7f16\u8bd1\u5668\u4e3aGCC8.4\uff0c\u4f7f\u7528c++17\u6807\u51c6\u3002\u6b64\u5916\uff0c\u5b58\u50a8\u8fc7\u7a0b\u4e2d\u989d\u5916\u63d0\u4f9b\u4e86Python Procedure API\uff0c\u8be5\u529f\u80fd\u9700\u8981Python\u73af\u5883\u3002TuGraph\u4e0d\u9700\u8981\u7279\u6b8a\u7684\u786c\u4ef6\u6bd4\u5982GPU\uff0c\u5bf9RDMA\u3001HBM\u7b49\u9ad8\u5ef6\u8fdf\u4f4e\u5e26\u5bbd\u7684\u901a\u7528\u786c\u4ef6\u5347\u7ea7\u53ef\u4ee5\u5929\u7136\u9002\u914d\u3002"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph\u6d4b\u8bd5\u8fc7\u57fa\u4e8eX86\u548cARM\u7684CPU\uff0c\u5305\u62ecIntel\u3001AMD\u3001Kunpeng\u3001Hygon\u3001\u98de\u817e\u7b49\uff0c\u4e5f\u540c\u65f6\u5728\u591a\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u8fd0\u884c\uff0c\u5305\u62ecUbuntu\u3001CentOS\u3001SUSE\u3001\u94f6\u6cb3\u9e92\u9e9f\u3001\u4e2d\u6807\u9e92\u9e9f\u3001UOS\u7684\u4e3b\u6d41\u7248\u672c\uff0c\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u548cCPU\u6ca1\u6709\u7279\u6b8a\u7684\u8981\u6c42\u3002"}),"\n",(0,h.jsx)(n.p,{children:"\u8f6f\u786c\u4ef6\u73af\u5883\u4e5f\u5305\u62ec\u4f9d\u8d56\u5e93\u7684\u73af\u5883\uff0c\u7531\u4e8eTuGraph\u7684\u5b58\u50a8\u5c42\u4e2d\u9ed8\u8ba4\u7684KV\u5b58\u50a8\u662fLMDB\uff0c\u9700\u8981\u6587\u4ef6\u7cfb\u7edf\u80fd\u591f\u652f\u6301POSIX\u63a5\u53e3\u3002\u5728\u4e0d\u540c\u7684\u73af\u5883\u4e0b\u7f16\u8bd1\u548c\u53c2\u6570\u914d\u7f6e\u4f1a\u7565\u6709\u4e0d\u540c\uff0c\u6bd4\u5982\u5728\u56fe\u5b58\u50a8\u7684\u70b9\u8fb9\u6570\u636e\u6253\u5305\u4e2d\uff0c\u5e94\u548c\u64cd\u4f5c\u7cfb\u7edf\u7684\u9875\u8868\u5927\u5c0f\u5339\u914d\uff0c\u9ed8\u8ba4\u4e3a4KB\uff0c\u5efa\u8bae\u5c06\u7cfb\u7edf\u7684\u9875\u8868\u5927\u5c0f\u4e5f\u8bbe\u7f6e\u4e3a4KB\u3002"}),"\n",(0,h.jsx)(n.h2,{id:"2\u5b58\u50a8\u5c42",children:"2.\u5b58\u50a8\u5c42"}),"\n",(0,h.jsx)(n.p,{children:"\u5728\u56fe\u6570\u636e\u6a21\u578b\u4e0a\uff0cTuGraph\u652f\u6301\u5c5e\u6027\u56fe\u6a21\u578b\uff0c\u6309\u7167\u5c42\u6b21\u53ef\u4ee5\u5206\u4e3a\u5b50\u56fe\u3001\u6807\u7b7e\uff08\u5305\u62ec\u70b9\u6807\u7b7e\u548c\u8fb9\u6807\u7b7e\uff09\u3001\u5c5e\u6027\u3002\u4ece\u5b58\u50a8\u5c42\u770b\uff0cTuGraph\u4f7f\u7528\u4f7f\u7528\u76f4\u89c2\u7684\u591a\u5c42\u7684\u6811\u72b6\u6a21\u578b\uff0c\u6ca1\u6709\u8de8\u5b50\u56fe\u7684\u6807\u7b7e\uff0c\u4e5f\u6ca1\u6709\u8de8\u6807\u7b7e\u7684\u5c5e\u6027\uff0c\u4ec5\u4fdd\u7559\u56fe\u6a21\u578b\u7684\u6838\u5fc3\u903b\u8f91\u3002"}),"\n",(0,h.jsx)(n.p,{children:"\u5728\u5b50\u56fe\u7684\u5b58\u50a8\u4e0a\uff0cTuGraph\u5bf9\u591a\u56fe\u505a\u4e86\u6570\u636e\u7684\u7269\u7406\u9694\u79bb\uff0c\u6bcf\u4e2a\u56fe\u5bf9\u5e94\u4e00\u4e2aLMDB\u7684\u5b9e\u4f8b\u3002\u591a\u56fe\u7684\u5143\u6570\u636e\u63cf\u8ff0\u4fe1\u606f\uff0c\u4fdd\u5b58\u5728meta\u7684\u7279\u6b8a\u7684\u516c\u5171LMDB\u5b9e\u4f8b\u4e2d\u3002\u70b9\u8fb9\u6807\u7b7e\u53ca\u5176\u5c5e\u6027\u7684\u5b58\u50a8\uff0c\u901a\u8fc7\u5c06\u56fe\u6570\u636e\u81ea\u9002\u5e94\u5730\u6620\u5c04\u5230KV\u952e\u503c\u5bf9\uff0c\u6700\u5927\u7a0b\u5ea6\u53d1\u6325\u8bfb\u6027\u80fd\u3002\u540c\u65f6\u5728KV\u5c42\u5b9e\u73b0\u4e86\u591a\u7ebf\u7a0b\u5199\uff0c\u89e3\u51b3\u4e86LMDB\u5199\u6027\u80fd\u8f83\u4f4e\u7684\u52a3\u52bf\u3002\u4e3b\u952e\u7d22\u5f15\u548c\u4e8c\u7ea7\u7d22\u5f15\uff0c\u5bf9\u5e94LMDB\u4e2dB+\u7684\u8868\uff0c\u652f\u6301\u57fa\u4e8e\u6bd4\u8f83\u7684\u7d22\u5f15\u503c\u589e\u5220\u67e5\u6539\u3002"}),"\n",(0,h.jsx)(n.p,{children:"\u5b58\u50a8\u5c42\u8fd8\u4fdd\u7559\u4e86\u4e00\u4e9b\u5176\u4ed6\u975e\u6838\u5fc3\u529f\u80fd\u7684\u6570\u636e\uff0c\u5305\u62ec\u6743\u9650\u6570\u636e\u3001\u9884\u7f16\u8bd1\u7684\u63d2\u4ef6\u6570\u636e\u3001\u76d1\u63a7\u6570\u636e\u7b49\u3002"}),"\n",(0,h.jsx)(n.h2,{id:"3\u8ba1\u7b97\u5c42",children:"3.\u8ba1\u7b97\u5c42"}),"\n",(0,h.jsx)(n.p,{children:"\u8ba1\u7b97\u5c42\u5728\u529f\u80fd\u4e0a\u5206\u6210\u4e09\u4e2a\u90e8\u5206\uff0c\u5305\u62ecTP\u7c7b\u7684\u56fe\u4e8b\u52a1\u5f15\u64ce\uff0cAP\u7c7b\u7684\u56fe\u5206\u6790\u5f15\u64ce\u548c\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u3002"}),"\n",(0,h.jsxs)(n.ul,{children:["\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsxs)(n.p,{children:[(0,h.jsx)(n.strong,{children:"\u56fe\u4e8b\u52a1\u5f15\u64ce"}),"\uff0c\u4e3b\u8981\u7528\u6765\u5904\u7406\u5e76\u53d1\u7684\u56fe\u64cd\u4f5c\uff0c\u5305\u62ec\u5355\u70b9\u67e5\u8be2\u3001\u90bb\u5c45\u67e5\u8be2\u3001\u8def\u5f84\u904d\u5386\u3002\u56fe\u4e8b\u52a1\u5f15\u64ce\u4fa7\u91cd\u5e76\u53d1\u64cd\u4f5c\u7684ACID\u4e8b\u52a1\uff0c\u786e\u4fdd\u64cd\u4f5c\u903b\u8f91\u4e0d\u4f1a\u4e92\u76f8\u5e72\u6270\uff0c\u4e3b\u8981\u6027\u80fd\u6307\u6807\u4e3a QPS\uff0c\u5373\u6bcf\u79d2\u5b8c\u6210\u7684\u67e5\u8be2\u6570\u91cf\u3002"]}),"\n"]}),"\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsxs)(n.p,{children:[(0,h.jsx)(n.strong,{children:"\u56fe\u5206\u6790\u5f15\u64ce"}),"\uff0c\u64cd\u4f5c\u7c7b\u578b\u901a\u5e38\u4e3a\u5168\u56fe\u8fed\u4ee3\u3002\u90e8\u5206\u7b80\u5355\u7684\u5206\u6790\u4efb\u52a1\uff08\u6bd4\u5982SPSP\uff09\u53ef\u4ee5\u7531\u56fe\u4e8b\u52a1\u5f15\u64ce\u5b8c\u6210\uff0c\u590d\u6742\u7684\u5206\u6790\u4efb\u52a1\u5747\u7531\u56fe\u5206\u6790\u5f15\u64ce\u5b8c\u6210\uff0c\u5355\u4e2a\u4efb\u52a1\u901a\u5e38\u9700\u8981\u6570\u79d2\u81f3\u6570\u5c0f\u65f6\u3002\u56e0\u6b64\u5355\u4e2a\u56fe\u5206\u6790\u4efb\u52a1\u8981\u5e76\u53d1\u5229\u7528\u6240\u6709\u7684\u786c\u4ef6\u8d44\u6e90\uff0c\u6027\u80fd\u6307\u6807\u4e3a\u4efb\u52a1\u5b8c\u6210\u7684\u603b\u65f6\u957f\u3002"]}),"\n"]}),"\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsxs)(n.p,{children:[(0,h.jsx)(n.strong,{children:"\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce"}),"\uff0c\u901a\u5e38\u4e5f\u4e3a\u5168\u56fe\u8fed\u4ee3\u3002\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u9664\u4e86\u57fa\u4e8e\u56fe\u62d3\u6251\u7684\u64cd\u4f5c\uff0c\u4e5f\u9700\u8981\u96c6\u6210\u4e00\u4e2a\u673a\u5668\u5b66\u4e60\u7684\u6846\u67b6\u6765\u5904\u7406\u5411\u91cf\u64cd\u4f5c\uff0c\u6bd4\u5982 PyTorch\u3001MXNet\u3001TenserFlow\u3002"]}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(n.p,{children:"\u4e09\u4e2a\u5f15\u64ce\u7684\u64cd\u4f5c\u903b\u8f91\u4e0d\u5c3d\u76f8\u540c\uff0c\u72ec\u7acb\u914d\u7f6e\u8d44\u6e90\u6c60\u3002\u4e8b\u56fe\u4e8b\u52a1\u5f15\u64ce\u57fa\u4e8eRPC\u64cd\u4f5c\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u7ebf\u7a0b\u6c60\uff0c\u6bcf\u63a5\u53d7\u5ba2\u6237\u7aef\u7684\u4e00\u4e2a\u64cd\u4f5c\uff0c\u4ece\u7ebf\u7a0b\u4e2d\u53d6\u4e00\u4e2a\u7ebf\u7a0b\u6765\u5904\u7406\uff0c\u5e76\u53d1\u6267\u884c\u7684\u6570\u91cf\u7b49\u4e8eRPC\u7ebf\u7a0b\u6c60\u7684\u5bb9\u91cf\uff0c\u901a\u5e38\u914d\u7f6e\u4e3a\u670d\u52a1\u5668\u7684\u6838\u6570\u3002\u56fe\u5206\u6790\u5f15\u64ce\u6709\u4e00\u4e2a\u5206\u6790\u7ebf\u7a0b\u6c60\uff0c\u6bcf\u4e2a\u56fe\u5206\u6790\u4efb\u52a1\u4f1a\u5e76\u53d1\u6267\u884c\uff0c\u5373\u7528\u6240\u6709\u7684\u7ebf\u7a0b\u6765\u6267\u884c\u4e00\u4e2a\u4efb\u52a1\uff0c\u6765\u52a0\u901f\u64cd\u4f5c\u7684\u6027\u80fd\u3002TuGraph\u56fe\u5206\u6790\u64cd\u4f5c\u4e32\u884c\u6267\u884c\u7684\u7279\u6027\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u9650\u5236\u7528\u6237\u7684\u4f7f\u7528\u4f53\u9a8c\uff0c\u5e76\u53d1\u7684\u56fe\u5206\u6790\u7684\u9700\u6c42\u53ef\u4ee5\u901a\u8fc7\u9ad8\u53ef\u7528\u90e8\u7f72\u7684\u65b9\u5f0f\uff0c\u589e\u52a0\u673a\u5668\u8d44\u6e90\u6765\u5904\u7406\uff0c\u6216\u8005\u63a5\u5165\u5916\u90e8\u7684\u4efb\u52a1\u8c03\u5ea6\u5668\uff0c\u5c06\u6570\u636e\u4f20\u5230\u5b9e\u65f6\u8c03\u5ea6\u7684\u5bb9\u5668\u6765\u8ba1\u7b97\u3002\u56fe\u795e\u7ecf\u7f51\u7edc\u64cd\u4f5c\u5728\u56fe\u4e0a\u7684\u64cd\u4f5c\u4f1a\u590d\u7528\u56fe\u4e8b\u52a1\u5f15\u64ce\u6216\u56fe\u5206\u6790\u5f15\u64ce\u7684\u8d44\u6e90\uff0c\u5411\u91cf\u7684\u64cd\u4f5c\u4f1a\u8d77\u5355\u72ec\u7684\u8d44\u6e90\uff0c\u5728\u673a\u5668\u5b66\u4e60\u6846\u67b6\u4e2d\u53ef\u4ee5\u4f7f\u7528GPU\u7b49\u5355\u72ec\u7684\u52a0\u901f\u786c\u4ef6\u3002"}),"\n",(0,h.jsx)(n.h2,{id:"4\u6838\u5fc3\u529f\u80fd",children:"4.\u6838\u5fc3\u529f\u80fd"}),"\n",(0,h.jsx)(n.h3,{id:"41\u67e5\u8be2\u8bed\u8a00",children:"4.1.\u67e5\u8be2\u8bed\u8a00"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u63d0\u4f9b Cypher \u56fe\u67e5\u8be2\u8bed\u8a00\uff0c\u9075\u5faaOpenCypher\u6807\u51c6\u3002"}),"\n",(0,h.jsxs)(n.ul,{children:["\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsx)(n.p,{children:(0,h.jsx)(n.strong,{children:"\u652f\u6301Procedure\u5d4c\u5165"})}),"\n"]}),"\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsxs)(n.p,{children:[(0,h.jsx)(n.strong,{children:"\u53ef\u63d2\u62d4\u4f18\u5316\u6846\u67b6"})," \u5404\u7c7b\u4f18\u5316\u529f\u80fd"]}),"\n"]}),"\n",(0,h.jsxs)(n.li,{children:["\n",(0,h.jsxs)(n.p,{children:[(0,h.jsx)(n.strong,{children:"\u53ef\u6269\u5c55\u5b89\u5168\u6027\u68c0\u67e5\u6846\u67b6"})," \u5bf9\u4e8ecypher\u8fdb\u884c"]}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(n.h3,{id:"42\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,h.jsx)(n.p,{children:"\u5f53\u7528\u6237\u9700\u8981\u8868\u8fbe\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\u8f83\u4e3a\u590d\u6742\uff08\u4f8b\u5982 Cypher \u65e0\u6cd5\u63cf\u8ff0\uff0c\u6216\u662f\u5bf9\u6027\u80fd\u8981\u6c42\u8f83\u9ad8\uff09\u65f6\uff0c\u76f8\u6bd4\u8c03\u7528\u591a\u4e2a REST \u8bf7\u6c42\u5e76\u5728\u5ba2\u6237\u7aef\u5b8c\u6210\u6574\u4e2a\n\u5904\u7406\u6d41\u7a0b\u7684\u65b9\u5f0f\uff0cTuGraph \u63d0\u4f9b\u7684\u5b58\u50a8\u8fc7\u7a0b\uff08Procedure\uff09\u662f\u66f4\u7b80\u6d01\u548c\u9ad8\u6548\u7684\u9009\u62e9\u3002"}),"\n",(0,h.jsx)(n.p,{children:"\u4ece 3.5 \u7248\u672c\u5f00\u59cb\uff0cTuGraph \u91cd\u65b0\u8bbe\u8ba1\u4e86\u65b0\u7684\u5b58\u50a8\u8fc7\u7a0b\u7f16\u7a0b\u8303\u5f0f\uff0c\u652f\u6301\u5b9a\u4e49\u6807\u51c6\u7684\u7b7e\u540d\u548c\u7ed3\u679c\uff0c\u652f\u6301POG\u7f16\u7a0b\u3002"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u652f\u6301 POG (Procedres on Graph Query Languages) \u7f16\u7a0b\u548c POG \u5e93\uff0c\u5176\u4e2d\u201cGraph Query Languages\u201d\u5305\u542b Cypher \u4ee5\u53ca\n\u5236\u5b9a\u4e2d\u7684 ISO GQL \u7b49\u56fe\u67e5\u8be2\u8bed\u8a00\u3002POG \u5e93\u63d0\u4f9b\u5728\u67e5\u8be2\u8bed\u8a00\u4e2d\u5bf9\u7528\u6237\u5b9a\u4e49\u7684\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bbf\u95ee\uff0c\u6253\u7834\u4e86\u67e5\u8be2\u8bed\u8a00\u548c\u5b58\u50a8\u8fc7\u7a0b\u4e4b\u95f4\u7684\u754c\u9650\uff0c\u6269\u5c55\u4e86\u67e5\u8be2\n\u8bed\u8a00\u7684\u4f7f\u7528\u8303\u56f4\u3002"}),"\n",(0,h.jsxs)(n.blockquote,{children:["\n",(0,h.jsxs)(n.p,{children:["\u8fd9\u4e2a\u6587\u6863\u63cf\u8ff0\u4e86 ",(0,h.jsx)(n.a,{href:"/tugraph-db/zh-CN/source/olap&procedure/procedure/",children:"\u65b0\u7684 Procedure \u7f16\u7a0b\u8303\u5f0f\u4ee5\u53ca POG"}),"\u3002"]}),"\n"]}),"\n",(0,h.jsx)(n.h3,{id:"43\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",children:"4.3.\u6570\u636e\u5bfc\u5165\u5bfc\u51fa"}),"\n",(0,h.jsx)(n.p,{children:"\u5c3d\u7ba1TuGraph\u672c\u8eab\u652f\u6301\u6570\u636e\u7684\u63d2\u5165\uff0c\u4f46\u6279\u91cf\u5bfc\u5165\u80fd\u591f\u5927\u5e45\u63d0\u5347\u7684\u6548\u7387\u3002\u5bfc\u5165\u7684\u529f\u80fd\u53ef\u4ee5\u5206\u4e3a\u7a7a\u5e93\u5bfc\u5165\uff08\u79bb\u7ebf\u5bfc\u5165\uff09\u548c\u589e\u91cf\u5bfc\u5165\uff0c\u524d\u8005\u6307\u5b50\u56fe\u662f\u7a7a\u7684\u65f6\u5019\u8fdb\u884c\u5bfc\u5165\uff0c\u989d\u5916\u7684\u5047\u8bbe\u80fd\u591f\u5927\u5e45\u63d0\u5347\u5bfc\u5165\u7684\u6027\u80fd\uff0c\u5728 TuGraph \u4e2d\uff0c\u7a7a\u5e93\u5bfc\u5165\u548c\u589e\u91cf\u5bfc\u5165\u7684\u541e\u5410\u7387\u5dee\u4e8610 \u500d\u3002\u5728\u6570\u636e\u5bfc\u51fa\u4e2d\uff0c\u9700\u8981\u8003\u8651\u5bfc\u51fa\u6570\u636e\u7684\u4e00\u81f4\u6027\uff0c\u5373\u662f\u57fa\u4e8e\u4e00\u4e2a\u5feb\u7167\u6570\u636e\u5bfc\u51fa\u7684\u3002"}),"\n",(0,h.jsxs)(n.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 \u547d\u4ee4\u884c\u5de5\u5177",(0,h.jsx)(n.code,{children:"lgraph_export"})," \u6765\u5bf9\u5df2\u7ecf\u5b58\u653e\u5728TuGraph\u7684\u56fe\u6570\u636e\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301CSV\u548cJSON\u3002"]}),"\n",(0,h.jsx)(n.h3,{id:"44\u5907\u4efd\u6062\u590d",children:"4.4.\u5907\u4efd\u6062\u590d"}),"\n",(0,h.jsx)(n.p,{children:"TUGraph\u7684\u5907\u4efd\u5728\u529f\u80fd\u4e0a\u53ef\u5206\u4e3a\u4e3b\u52a8/\u5b9a\u65f6\u3001\u79bb\u7ebf/\u5728\u7ebf\u3001\u5168\u91cf/\u589e\u91cf\u5907\u4efd\uff0c\u7528\u5c3d\u91cf\u5c0f\u7684\u5b58\u50a8\u548c\u8ba1\u7b97\u4ee3\u4ef7\u6765\u5b8c\u6210\u5907\u4efd\u3002\u6062\u590d\u529f\u80fd\u53ef\u4ee5\u6062\u590d\u5230\u6700\u65b0\u7684\u72b6\u6001\uff0c\u6216\u8005\u5386\u53f2\u6807\u6ce8\u7684\u65f6\u95f4\u70b9\uff0c\u9700\u8981\u4fdd\u8bc1\u6570\u636e\u5e93\u662f\u4e00\u81f4\u7684\u72b6\u6001\u3002"}),"\n",(0,h.jsx)(n.h3,{id:"45-\u6570\u636e\u9884\u70ed",children:"4.5 \u6570\u636e\u9884\u70ed"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u662f\u57fa\u4e8e\u78c1\u76d8\u7684\u56fe\u6570\u636e\u5e93\uff0c\u4ec5\u5f53\u8bbf\u95ee\u6570\u636e\u65f6\uff0c\u6570\u636e\u624d\u4f1a\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\u3002\u56e0\u6b64\u5728\u670d\u52a1\u5668\u521a\u5f00\u542f\u540e\u7684\u4e00\u6bb5\u65f6\u95f4\u5185\uff0c\u7cfb\u7edf\u6027\u80fd\u53ef\u80fd\u4f1a\u7531\u4e8e\u9891\u7e41\u7684 IO \u64cd\u4f5c\u800c\u53d8\u5dee\u3002\u6b64\u65f6\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e8b\u5148\u8fdb\u884c\u6570\u636e\u9884\u70ed\u6765\u6539\u5584\u8fd9\u4e00\u95ee\u9898\u3002"}),"\n",(0,h.jsx)(n.h3,{id:"46-\u9ad8\u53ef\u7528",children:"4.6 \u9ad8\u53ef\u7528"}),"\n",(0,h.jsx)(n.p,{children:"\u9ad8\u53ef\u7528\u662f\u6307\u901a\u8fc7\u901a\u8fc7\u96c6\u7fa4\u914d\u7f6e\uff0c\u505a\u5230\u5b9e\u65f6\u591a\u526f\u672c\u6570\u636e\u70ed\u5907\uff0c\u5728\u90e8\u5206\u526f\u672c\u4e0d\u7528\u65f6\uff0c\u96c6\u7fa4\u4ecd\u7136\u80fd\u6b63\u5e38\u63d0\u4f9b\u670d\u52a1\uff0cTuGraph\u91c7\u7528 RAFT \u534f\u8bae\u7684\u591a\u673a\u70ed\u5907\u673a\u5236\uff0c\u80fd\u591f\u5c06 RPO \u964d\u4f4e\u5230\u63a5\u8fd1 0 \u7684\u7a0b\u5ea6\u3002TuGraph \u9009\u62e9\u5728\u8ba1\u7b97\u5c42\u8fdb\u884c\u6570\u636e\u540c\u6b65\uff0c\u540c\u6b65\u7684\u5bf9\u8c61\u662f\u5199\u64cd\u4f5c\uff0c\u901a\u8fc7 RPC \u63a5\u53e3\u5feb\u901f\u540c\u6b65\u3002TuGraph \u7684\u9ad8\u53ef\u7528\u96c6\u7fa4\u91c7\u7528\u4e3b\u4ece\u6a21\u5f0f\uff0c\u53ea\u6709\u4e3b\u8282\u70b9\u5904\u7406\u5199\u8bf7\u6c42\uff0c\u4e3b\u4ece\u8282\u70b9\u5747\u80fd\u5904\u7406\u8bfb\u8bf7\u6c42\u3002\u4e3b\u8282\u70b9\u7684\u5199\u8bf7\u6c42\u5904\u7406\u9700\u8981\u540c\u6b65\u5230\u591a\u4e8e\u4e8c\u5206\u4e4b\u4e00\u7684\u603b\u8282\u70b9\u4e0a\uff0c\u591a\u6570\u8282\u70b9\u5199\u6210\u529f\uff0c\u8be5\u5199\u8bf7\u6c42\u624d\u7b97\u5b8c\u6210\u3002"}),"\n",(0,h.jsx)(n.h2,{id:"5\u5ba2\u6237\u7aef\u5de5\u5177",children:"5.\u5ba2\u6237\u7aef\u5de5\u5177"}),"\n",(0,h.jsx)(n.p,{children:"\u5ba2\u6237\u7aef\u4e3b\u8981\u5206\u4e3a\u5404\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684SDK\uff0cOGM\u4ee5\u53ca\u547d\u4ee4\u884c\u5de5\u5177\u3002"}),"\n",(0,h.jsx)(n.p,{children:"\u5ba2\u6237\u7aef SDK \u4e3b\u8981\u7528\u4e8e\u4e8c\u6b21\u5f00\u53d1\uff0c\u53ef\u4ee5\u901a\u8fc7 RPC \u6216 REST \u534f\u8bae\u94fe\u63a5\u670d\u52a1\u7aef\u3002RPC \u57fa\u4e8e\u957f\u94fe\u63a5\u6709\u8f83\u597d\u7684\u6027\u80fd\uff0c\u6570\u636e\u9700\u8981\u901a\u8fc7 protobuf \u7edf\u4e00\u5e8f\u5217\u5316\u3002TuGraph \u4f7f\u7528brpc\uff0c\u652f\u6301 Java\u3001Python\u3001C++ \u7684 rpc \u5ba2\u6237\u7aef\u3002REST \u7684\u534f\u8bae\u6bd4\u8f83\u5bbd\u6cdb\uff0c\u80fd\u591f\u7b80\u5355\u9002\u914d\u66f4\u52a0\u591a\u6837\u7684\u73af\u5883\uff0c\u4e0d\u540c\u7684\u7f16\u7a0b\u8bed\u8a00\u80fd\u591f\u7b80\u5355\u5bf9\u63a5\u3002TuGraph \u7ed9\u51fa\u4e86 Python \u7684REST \u5ba2\u6237\u7aef\u5b9e\u4f8b\uff0c\u547d\u4ee4\u884c\u7684\u4ea4\u4e92\u4e5f\u662f\u7528 REST \u5b9e\u73b0\u3002"}),"\n",(0,h.jsx)(n.p,{children:"OGM(Object Graph Mapping)\u4e3a\u9762\u5411 TuGraph \u7684\u56fe\u5bf9\u8c61\u6620\u5c04\u5de5\u5177\uff0c\u652f\u6301\u5c06 JAVA \u5bf9\u8c61\uff08POJO\uff09\u6620\u5c04\u5230 TuGraph \u4e2d\uff0cJAVA \u4e2d\u7684\u7c7b\u6620\u5c04\u4e3a\u56fe\u4e2d\u7684\u8282\u70b9\u3001\u7c7b\u4e2d\u7684\u96c6\u5408\u6620\u5c04\u4e3a\u8fb9\u3001\u7c7b\u7684\u5c5e\u6027\u6620\u5c04\u4e3a\u56fe\u5bf9\u8c61\u7684\u5c5e\u6027\uff0c\u5e76\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u51fd\u6570\u64cd\u4f5c\u56fe\u6570\u636e\u5e93\uff0c\u56e0\u6b64 JAVA \u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5728\u719f\u6089\u7684\u751f\u6001\u4e2d\u8f7b\u677e\u5730\u4f7f\u7528 TuGraph \u6570\u636e\u5e93\u3002"}),"\n",(0,h.jsxs)(n.p,{children:["\u547d\u4ee4\u884c\u5de5\u5177",(0,h.jsx)(n.code,{children:"lgraph_cypher"}),"\u662f\u67e5\u8be2\u5ba2\u6237\u7aef\uff0c\u53ef\u7528\u4e8e\u5411 TuGraph \u670d\u52a1\u5668\u63d0\u4ea4 OpenCypher \u8bf7\u6c42\u3002",(0,h.jsx)(n.code,{children:"lgraph_cypher"}),"\u5ba2\u6237\u7aef\u6709\u4e24\u79cd\u6267\u884c\u6a21\u5f0f\uff1a\u5355\u547d\u4ee4\u6a21\u5f0f\u548c\u4ea4\u4e92\u5f0f\u6a21\u5f0f\u3002"]}),"\n",(0,h.jsx)(n.h2,{id:"6\u751f\u6001\u5de5\u5177",children:"6.\u751f\u6001\u5de5\u5177"}),"\n",(0,h.jsx)(n.p,{children:"\u751f\u6001\u5de5\u5177\u662f\u4f01\u4e1a\u7ea7\u6570\u636e\u5e93\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u7ec4\u6210\u90e8\u5206\uff0c\u4e30\u5bcc\u7684\u751f\u6001\u5de5\u5177\u80fd\u591f\u5927\u5927\u63d0\u5347\u56fe\u6570\u636e\u5e93\u7684\u53ef\u7528\u6027\uff0c\u7a33\u5b9a\u6027\u3002"}),"\n",(0,h.jsx)(n.h3,{id:"61tugraph-datax",children:"6.1.TuGraph DataX"}),"\n",(0,h.jsx)(n.p,{children:(0,h.jsx)(n.img,{alt:"\u5bfc\u5165\u5bfc\u51fa",src:r(5018).A+"",width:"1288",height:"404"})}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u6838\u5fc3\u652f\u6301 CSV \u548c JSON \u5408\u9002\u7684\u5bfc\u5165\u5bfc\u51fa\uff0c\u63d0\u4f9b\u7a7a\u5e93\u5bfc\u5165\u548c\u589e\u91cf\u5bfc\u5165\u7684\u6a21\u5f0f\u3002\u5b9e\u9645\u4e2d\u4f1a\u5b58\u5728 MySQL\u3001Kafka\u3001Hive \u7b49\u591a\u6570\u636e\u6e90\u5bfc\u5165\u7684\u9700\u6c42\uff0cTuGraph \u901a\u8fc7 DataX \u505a\u591a\u6570\u636e\u6e90\u7684\u5bf9\u63a5\u3002\u7531\u4e8e\u5173\u7cfb\u6a21\u578b\u548c\u56fe\u6a21\u578b\u5b58\u5728\u7684\u5dee\u5f02\uff0c\u6570\u636e\u6e05\u6d17\u7684\u6d41\u7a0b\u53ef\u4ee5\u4f7f\u7528 SparkSQL \u5feb\u901f\u5904\u7406\uff0cTuGraph \u672c\u8eab\u4ec5\u5173\u6ce8 CSV \u548c JSON \u7684\u7b80\u5355\u573a\u666f\u5bfc\u5165\u53ef\u9760\u6027\u548c\u6027\u80fd\u3002"}),"\n",(0,h.jsx)(n.h3,{id:"62\u53ef\u89c6\u5316\u4ea4\u4e92",children:"6.2.\u53ef\u89c6\u5316\u4ea4\u4e92"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph Browser \u662f\u9762\u5411\u56fe\u6570\u636e\u5e93\u76f4\u63a5\u4f7f\u7528\u8005\u7684\u53ef\u89c6\u5316\u4ea4\u4e92\u754c\u9762\uff0c\u529f\u80fd\u4e0a\u8986\u76d6\u4e86 TuGraph \u7684\u7edd\u5927\u90e8\u5206\u80fd\u529b\uff0c\u5305\u62ec\u6570\u636e\u5bfc\u5165\u3001\u56fe\u6a21\u578b\u5efa\u7acb\u3001\u6570\u636e\u589e\u5220\u67e5\u6539\u3001\u76d1\u63a7\u8fd0\u7ef4\u7b49\u64cd\u4f5c\u94fe\u8def\u3002"}),"\n",(0,h.jsx)(n.h3,{id:"63\u8fd0\u7ef4\u76d1\u63a7",children:"6.3.\u8fd0\u7ef4\u76d1\u63a7"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u4f7f\u7528 Prometheus \u52a0 Grafana \u7684\u76d1\u63a7\u6846\u67b6\uff0c\u91c7\u7528\u677e\u8026\u5408\u7684\u65b9\u5f0f\u3002Prometheus \u4ece TuGraph \u7684\u76d1\u63a7\u63a5\u53e3\u83b7\u53d6\u76d1\u63a7\u4fe1\u606f\uff0c\u5b58\u50a8\u5728\u672c\u5730\u65f6\u5e8f\u6570\u636e\u5e93\u4e2d\uff0c\u7136\u540e\u901a\u8fc7 Grafana \u5728\u7f51\u9875\u7aef\u4ea4\u4e92\u5c55\u793a\u3002"}),"\n",(0,h.jsx)(n.p,{children:"TuGraph \u63d0\u4f9b\u7684\u76d1\u63a7\u7684\u72b6\u6001\u5305\u62ec\u56fe\u6570\u636e\u5e93\u7684\u72b6\u6001\u548c\u670d\u52a1\u5668\u7684\u72b6\u6001\uff0c\u524d\u8005\u5305\u62ec\u8bfb\u5199\u8d1f\u8f7d\u3001\u70b9\u8fb9\u6570\u91cf\u7b49\u6570\u636e\u5e93\u7aef\u7684\u72b6\u6001\uff0c\u540e\u8005\u5305\u62ec\u5185\u5b58\u3001CPU\u3001\u786c\u76d8\u7b49\u670d\u52a1\u5668\u7684\u5b9e\u65f6\u72b6\u6001\u3002\u5982\u679c\u67d0\u4e9b\u76d1\u63a7\u72b6\u6001\u8d85\u8fc7\u4e86\u9884\u671f\u7684\u9608\u503c\uff0c\u5c31\u9700\u8981\u4e3b\u52a8\u544a\u8b66\uff0c\u901a\u5e38\u9700\u8981\u5bf9\u63a5\u5176\u4ed6\u8fd0\u7ef4\u7ba1\u63a7\u7cfb\u7edf\uff0c\u6bd4\u5982\u7fa4\u6d88\u606f\u3001\u90ae\u4ef6\u544a\u8b66\u7b49\u3002"})]})}function t(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,h.jsx)(n,{...e,children:(0,h.jsx)(u,{...e})}):u(e)}},5018:(e,n,r)=>{r.d(n,{A:()=>h});const h=r.p+"assets/images/tugraph-datax-0f6f140ea310beb2c90460c3d6d0c08d.png"},8453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>d});var h=r(6540);const i={},l=h.createContext(i);function s(e){const n=h.useContext(l);return h.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),h.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3a0e1708.f0d51845.js b/assets/js/3a0e1708.f0d51845.js
new file mode 100644
index 0000000000..b65b529eab
--- /dev/null
+++ b/assets/js/3a0e1708.f0d51845.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5614],{1499:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>c,contentTitle:()=>d,default:()=>u,frontMatter:()=>l,metadata:()=>s,toc:()=>a});var h=r(4848),i=r(8453);const l={},d="\u529f\u80fd\u6982\u89c8",s={id:"introduction/functionality",title:"\u529f\u80fd\u6982\u89c8",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\u3002",source:"@site/../docs/zh-CN/source/2.introduction/7.functionality.md",sourceDirName:"2.introduction",slug:"/introduction/functionality",permalink:"/tugraph-db/zh/introduction/functionality",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph\u4ea7\u54c1\u67b6\u6784",permalink:"/tugraph-db/zh/introduction/architecture"},next:{title:"\u5e94\u7528\u573a\u666f",permalink:"/tugraph-db/zh/introduction/scenarios"}},c={},a=[{value:"1.\u5b89\u88c5\u90e8\u7f72",id:"1\u5b89\u88c5\u90e8\u7f72",level:2},{value:"1.1.\u90e8\u7f72\u65b9\u5f0f",id:"11\u90e8\u7f72\u65b9\u5f0f",level:2},{value:"1.2.\u8f6f\u786c\u4ef6\u73af\u5883",id:"12\u8f6f\u786c\u4ef6\u73af\u5883",level:2},{value:"2.\u5b58\u50a8\u5c42",id:"2\u5b58\u50a8\u5c42",level:2},{value:"3.\u8ba1\u7b97\u5c42",id:"3\u8ba1\u7b97\u5c42",level:2},{value:"4.\u6838\u5fc3\u529f\u80fd",id:"4\u6838\u5fc3\u529f\u80fd",level:2},{value:"4.1.\u67e5\u8be2\u8bed\u8a00",id:"41\u67e5\u8be2\u8bed\u8a00",level:3},{value:"4.2.\u5b58\u50a8\u8fc7\u7a0b",id:"42\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.3.\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",id:"43\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",level:3},{value:"4.4.\u5907\u4efd\u6062\u590d",id:"44\u5907\u4efd\u6062\u590d",level:3},{value:"4.5 \u6570\u636e\u9884\u70ed",id:"45-\u6570\u636e\u9884\u70ed",level:3},{value:"4.6 \u9ad8\u53ef\u7528",id:"46-\u9ad8\u53ef\u7528",level:3},{value:"5.\u5ba2\u6237\u7aef\u5de5\u5177",id:"5\u5ba2\u6237\u7aef\u5de5\u5177",level:2},{value:"6.\u751f\u6001\u5de5\u5177",id:"6\u751f\u6001\u5de5\u5177",level:2},{value:"6.1.TuGraph DataX",id:"61tugraph-datax",level:3},{value:"6.2.\u53ef\u89c6\u5316\u4ea4\u4e92",id:"62\u53ef\u89c6\u5316\u4ea4\u4e92",level:3},{value:"6.3.\u8fd0\u7ef4\u76d1\u63a7",id:"63\u8fd0\u7ef4\u76d1\u63a7",level:3}];function t(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...n.components};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(e.header,{children:(0,h.jsx)(e.h1,{id:"\u529f\u80fd\u6982\u89c8",children:"\u529f\u80fd\u6982\u89c8"})}),"\n",(0,h.jsxs)(e.blockquote,{children:["\n",(0,h.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\u3002"}),"\n"]}),"\n",(0,h.jsx)(e.h2,{id:"1\u5b89\u88c5\u90e8\u7f72",children:"1.\u5b89\u88c5\u90e8\u7f72"}),"\n",(0,h.jsx)(e.h2,{id:"11\u90e8\u7f72\u65b9\u5f0f",children:"1.1.\u90e8\u7f72\u65b9\u5f0f"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph\u76ee\u524d\u63d0\u4f9b\u4e91\u90e8\u7f72\u3001Docker\u90e8\u7f72\u4ee5\u53ca\u5b89\u88c5\u5305\u90e8\u7f72\u4e09\u79cd\u90e8\u7f72\u65b9\u5f0f\uff0c\u7528\u6237\u53ef\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u9009\u62e9\u9002\u5408\u7684\u90e8\u7f72\u65b9\u5f0f\u3002"}),"\n",(0,h.jsx)(e.h2,{id:"12\u8f6f\u786c\u4ef6\u73af\u5883",children:"1.2.\u8f6f\u786c\u4ef6\u73af\u5883"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph\u6838\u5fc3\u662f\u7531C++\u5f00\u53d1\uff0c\u9ed8\u8ba4\u4f7f\u7528\u7684\u7f16\u8bd1\u5668\u4e3aGCC8.4\uff0c\u4f7f\u7528c++17\u6807\u51c6\u3002\u6b64\u5916\uff0c\u5b58\u50a8\u8fc7\u7a0b\u4e2d\u989d\u5916\u63d0\u4f9b\u4e86Python Procedure API\uff0c\u8be5\u529f\u80fd\u9700\u8981Python\u73af\u5883\u3002TuGraph\u4e0d\u9700\u8981\u7279\u6b8a\u7684\u786c\u4ef6\u6bd4\u5982GPU\uff0c\u5bf9RDMA\u3001HBM\u7b49\u9ad8\u5ef6\u8fdf\u4f4e\u5e26\u5bbd\u7684\u901a\u7528\u786c\u4ef6\u5347\u7ea7\u53ef\u4ee5\u5929\u7136\u9002\u914d\u3002"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph\u6d4b\u8bd5\u8fc7\u57fa\u4e8eX86\u548cARM\u7684CPU\uff0c\u5305\u62ecIntel\u3001AMD\u3001Kunpeng\u3001Hygon\u3001\u98de\u817e\u7b49\uff0c\u4e5f\u540c\u65f6\u5728\u591a\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u8fd0\u884c\uff0c\u5305\u62ecUbuntu\u3001CentOS\u3001SUSE\u3001\u94f6\u6cb3\u9e92\u9e9f\u3001\u4e2d\u6807\u9e92\u9e9f\u3001UOS\u7684\u4e3b\u6d41\u7248\u672c\uff0c\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u548cCPU\u6ca1\u6709\u7279\u6b8a\u7684\u8981\u6c42\u3002"}),"\n",(0,h.jsx)(e.p,{children:"\u8f6f\u786c\u4ef6\u73af\u5883\u4e5f\u5305\u62ec\u4f9d\u8d56\u5e93\u7684\u73af\u5883\uff0c\u7531\u4e8eTuGraph\u7684\u5b58\u50a8\u5c42\u4e2d\u9ed8\u8ba4\u7684KV\u5b58\u50a8\u662fLMDB\uff0c\u9700\u8981\u6587\u4ef6\u7cfb\u7edf\u80fd\u591f\u652f\u6301POSIX\u63a5\u53e3\u3002\u5728\u4e0d\u540c\u7684\u73af\u5883\u4e0b\u7f16\u8bd1\u548c\u53c2\u6570\u914d\u7f6e\u4f1a\u7565\u6709\u4e0d\u540c\uff0c\u6bd4\u5982\u5728\u56fe\u5b58\u50a8\u7684\u70b9\u8fb9\u6570\u636e\u6253\u5305\u4e2d\uff0c\u5e94\u548c\u64cd\u4f5c\u7cfb\u7edf\u7684\u9875\u8868\u5927\u5c0f\u5339\u914d\uff0c\u9ed8\u8ba4\u4e3a4KB\uff0c\u5efa\u8bae\u5c06\u7cfb\u7edf\u7684\u9875\u8868\u5927\u5c0f\u4e5f\u8bbe\u7f6e\u4e3a4KB\u3002"}),"\n",(0,h.jsx)(e.h2,{id:"2\u5b58\u50a8\u5c42",children:"2.\u5b58\u50a8\u5c42"}),"\n",(0,h.jsx)(e.p,{children:"\u5728\u56fe\u6570\u636e\u6a21\u578b\u4e0a\uff0cTuGraph\u652f\u6301\u5c5e\u6027\u56fe\u6a21\u578b\uff0c\u6309\u7167\u5c42\u6b21\u53ef\u4ee5\u5206\u4e3a\u5b50\u56fe\u3001\u6807\u7b7e\uff08\u5305\u62ec\u70b9\u6807\u7b7e\u548c\u8fb9\u6807\u7b7e\uff09\u3001\u5c5e\u6027\u3002\u4ece\u5b58\u50a8\u5c42\u770b\uff0cTuGraph\u4f7f\u7528\u4f7f\u7528\u76f4\u89c2\u7684\u591a\u5c42\u7684\u6811\u72b6\u6a21\u578b\uff0c\u6ca1\u6709\u8de8\u5b50\u56fe\u7684\u6807\u7b7e\uff0c\u4e5f\u6ca1\u6709\u8de8\u6807\u7b7e\u7684\u5c5e\u6027\uff0c\u4ec5\u4fdd\u7559\u56fe\u6a21\u578b\u7684\u6838\u5fc3\u903b\u8f91\u3002"}),"\n",(0,h.jsx)(e.p,{children:"\u5728\u5b50\u56fe\u7684\u5b58\u50a8\u4e0a\uff0cTuGraph\u5bf9\u591a\u56fe\u505a\u4e86\u6570\u636e\u7684\u7269\u7406\u9694\u79bb\uff0c\u6bcf\u4e2a\u56fe\u5bf9\u5e94\u4e00\u4e2aLMDB\u7684\u5b9e\u4f8b\u3002\u591a\u56fe\u7684\u5143\u6570\u636e\u63cf\u8ff0\u4fe1\u606f\uff0c\u4fdd\u5b58\u5728meta\u7684\u7279\u6b8a\u7684\u516c\u5171LMDB\u5b9e\u4f8b\u4e2d\u3002\u70b9\u8fb9\u6807\u7b7e\u53ca\u5176\u5c5e\u6027\u7684\u5b58\u50a8\uff0c\u901a\u8fc7\u5c06\u56fe\u6570\u636e\u81ea\u9002\u5e94\u5730\u6620\u5c04\u5230KV\u952e\u503c\u5bf9\uff0c\u6700\u5927\u7a0b\u5ea6\u53d1\u6325\u8bfb\u6027\u80fd\u3002\u540c\u65f6\u5728KV\u5c42\u5b9e\u73b0\u4e86\u591a\u7ebf\u7a0b\u5199\uff0c\u89e3\u51b3\u4e86LMDB\u5199\u6027\u80fd\u8f83\u4f4e\u7684\u52a3\u52bf\u3002\u4e3b\u952e\u7d22\u5f15\u548c\u4e8c\u7ea7\u7d22\u5f15\uff0c\u5bf9\u5e94LMDB\u4e2dB+\u7684\u8868\uff0c\u652f\u6301\u57fa\u4e8e\u6bd4\u8f83\u7684\u7d22\u5f15\u503c\u589e\u5220\u67e5\u6539\u3002"}),"\n",(0,h.jsx)(e.p,{children:"\u5b58\u50a8\u5c42\u8fd8\u4fdd\u7559\u4e86\u4e00\u4e9b\u5176\u4ed6\u975e\u6838\u5fc3\u529f\u80fd\u7684\u6570\u636e\uff0c\u5305\u62ec\u6743\u9650\u6570\u636e\u3001\u9884\u7f16\u8bd1\u7684\u63d2\u4ef6\u6570\u636e\u3001\u76d1\u63a7\u6570\u636e\u7b49\u3002"}),"\n",(0,h.jsx)(e.h2,{id:"3\u8ba1\u7b97\u5c42",children:"3.\u8ba1\u7b97\u5c42"}),"\n",(0,h.jsx)(e.p,{children:"\u8ba1\u7b97\u5c42\u5728\u529f\u80fd\u4e0a\u5206\u6210\u4e09\u4e2a\u90e8\u5206\uff0c\u5305\u62ecTP\u7c7b\u7684\u56fe\u4e8b\u52a1\u5f15\u64ce\uff0cAP\u7c7b\u7684\u56fe\u5206\u6790\u5f15\u64ce\u548c\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u3002"}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"\u56fe\u4e8b\u52a1\u5f15\u64ce"}),"\uff0c\u4e3b\u8981\u7528\u6765\u5904\u7406\u5e76\u53d1\u7684\u56fe\u64cd\u4f5c\uff0c\u5305\u62ec\u5355\u70b9\u67e5\u8be2\u3001\u90bb\u5c45\u67e5\u8be2\u3001\u8def\u5f84\u904d\u5386\u3002\u56fe\u4e8b\u52a1\u5f15\u64ce\u4fa7\u91cd\u5e76\u53d1\u64cd\u4f5c\u7684ACID\u4e8b\u52a1\uff0c\u786e\u4fdd\u64cd\u4f5c\u903b\u8f91\u4e0d\u4f1a\u4e92\u76f8\u5e72\u6270\uff0c\u4e3b\u8981\u6027\u80fd\u6307\u6807\u4e3a QPS\uff0c\u5373\u6bcf\u79d2\u5b8c\u6210\u7684\u67e5\u8be2\u6570\u91cf\u3002"]}),"\n"]}),"\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"\u56fe\u5206\u6790\u5f15\u64ce"}),"\uff0c\u64cd\u4f5c\u7c7b\u578b\u901a\u5e38\u4e3a\u5168\u56fe\u8fed\u4ee3\u3002\u90e8\u5206\u7b80\u5355\u7684\u5206\u6790\u4efb\u52a1\uff08\u6bd4\u5982SPSP\uff09\u53ef\u4ee5\u7531\u56fe\u4e8b\u52a1\u5f15\u64ce\u5b8c\u6210\uff0c\u590d\u6742\u7684\u5206\u6790\u4efb\u52a1\u5747\u7531\u56fe\u5206\u6790\u5f15\u64ce\u5b8c\u6210\uff0c\u5355\u4e2a\u4efb\u52a1\u901a\u5e38\u9700\u8981\u6570\u79d2\u81f3\u6570\u5c0f\u65f6\u3002\u56e0\u6b64\u5355\u4e2a\u56fe\u5206\u6790\u4efb\u52a1\u8981\u5e76\u53d1\u5229\u7528\u6240\u6709\u7684\u786c\u4ef6\u8d44\u6e90\uff0c\u6027\u80fd\u6307\u6807\u4e3a\u4efb\u52a1\u5b8c\u6210\u7684\u603b\u65f6\u957f\u3002"]}),"\n"]}),"\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce"}),"\uff0c\u901a\u5e38\u4e5f\u4e3a\u5168\u56fe\u8fed\u4ee3\u3002\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u9664\u4e86\u57fa\u4e8e\u56fe\u62d3\u6251\u7684\u64cd\u4f5c\uff0c\u4e5f\u9700\u8981\u96c6\u6210\u4e00\u4e2a\u673a\u5668\u5b66\u4e60\u7684\u6846\u67b6\u6765\u5904\u7406\u5411\u91cf\u64cd\u4f5c\uff0c\u6bd4\u5982 PyTorch\u3001MXNet\u3001TenserFlow\u3002"]}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(e.p,{children:"\u4e09\u4e2a\u5f15\u64ce\u7684\u64cd\u4f5c\u903b\u8f91\u4e0d\u5c3d\u76f8\u540c\uff0c\u72ec\u7acb\u914d\u7f6e\u8d44\u6e90\u6c60\u3002\u4e8b\u56fe\u4e8b\u52a1\u5f15\u64ce\u57fa\u4e8eRPC\u64cd\u4f5c\u8bbe\u7f6e\u4e86\u4e00\u4e2a\u7ebf\u7a0b\u6c60\uff0c\u6bcf\u63a5\u53d7\u5ba2\u6237\u7aef\u7684\u4e00\u4e2a\u64cd\u4f5c\uff0c\u4ece\u7ebf\u7a0b\u4e2d\u53d6\u4e00\u4e2a\u7ebf\u7a0b\u6765\u5904\u7406\uff0c\u5e76\u53d1\u6267\u884c\u7684\u6570\u91cf\u7b49\u4e8eRPC\u7ebf\u7a0b\u6c60\u7684\u5bb9\u91cf\uff0c\u901a\u5e38\u914d\u7f6e\u4e3a\u670d\u52a1\u5668\u7684\u6838\u6570\u3002\u56fe\u5206\u6790\u5f15\u64ce\u6709\u4e00\u4e2a\u5206\u6790\u7ebf\u7a0b\u6c60\uff0c\u6bcf\u4e2a\u56fe\u5206\u6790\u4efb\u52a1\u4f1a\u5e76\u53d1\u6267\u884c\uff0c\u5373\u7528\u6240\u6709\u7684\u7ebf\u7a0b\u6765\u6267\u884c\u4e00\u4e2a\u4efb\u52a1\uff0c\u6765\u52a0\u901f\u64cd\u4f5c\u7684\u6027\u80fd\u3002TuGraph\u56fe\u5206\u6790\u64cd\u4f5c\u4e32\u884c\u6267\u884c\u7684\u7279\u6027\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u9650\u5236\u7528\u6237\u7684\u4f7f\u7528\u4f53\u9a8c\uff0c\u5e76\u53d1\u7684\u56fe\u5206\u6790\u7684\u9700\u6c42\u53ef\u4ee5\u901a\u8fc7\u9ad8\u53ef\u7528\u90e8\u7f72\u7684\u65b9\u5f0f\uff0c\u589e\u52a0\u673a\u5668\u8d44\u6e90\u6765\u5904\u7406\uff0c\u6216\u8005\u63a5\u5165\u5916\u90e8\u7684\u4efb\u52a1\u8c03\u5ea6\u5668\uff0c\u5c06\u6570\u636e\u4f20\u5230\u5b9e\u65f6\u8c03\u5ea6\u7684\u5bb9\u5668\u6765\u8ba1\u7b97\u3002\u56fe\u795e\u7ecf\u7f51\u7edc\u64cd\u4f5c\u5728\u56fe\u4e0a\u7684\u64cd\u4f5c\u4f1a\u590d\u7528\u56fe\u4e8b\u52a1\u5f15\u64ce\u6216\u56fe\u5206\u6790\u5f15\u64ce\u7684\u8d44\u6e90\uff0c\u5411\u91cf\u7684\u64cd\u4f5c\u4f1a\u8d77\u5355\u72ec\u7684\u8d44\u6e90\uff0c\u5728\u673a\u5668\u5b66\u4e60\u6846\u67b6\u4e2d\u53ef\u4ee5\u4f7f\u7528GPU\u7b49\u5355\u72ec\u7684\u52a0\u901f\u786c\u4ef6\u3002"}),"\n",(0,h.jsx)(e.h2,{id:"4\u6838\u5fc3\u529f\u80fd",children:"4.\u6838\u5fc3\u529f\u80fd"}),"\n",(0,h.jsx)(e.h3,{id:"41\u67e5\u8be2\u8bed\u8a00",children:"4.1.\u67e5\u8be2\u8bed\u8a00"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b Cypher \u56fe\u67e5\u8be2\u8bed\u8a00\uff0c\u9075\u5faaOpenCypher\u6807\u51c6\u3002"}),"\n",(0,h.jsxs)(e.ul,{children:["\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsx)(e.p,{children:(0,h.jsx)(e.strong,{children:"\u652f\u6301Procedure\u5d4c\u5165"})}),"\n"]}),"\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"\u53ef\u63d2\u62d4\u4f18\u5316\u6846\u67b6"})," \u5404\u7c7b\u4f18\u5316\u529f\u80fd"]}),"\n"]}),"\n",(0,h.jsxs)(e.li,{children:["\n",(0,h.jsxs)(e.p,{children:[(0,h.jsx)(e.strong,{children:"\u53ef\u6269\u5c55\u5b89\u5168\u6027\u68c0\u67e5\u6846\u67b6"})," \u5bf9\u4e8ecypher\u8fdb\u884c"]}),"\n"]}),"\n"]}),"\n",(0,h.jsx)(e.h3,{id:"42\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,h.jsx)(e.p,{children:"\u5f53\u7528\u6237\u9700\u8981\u8868\u8fbe\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\u8f83\u4e3a\u590d\u6742\uff08\u4f8b\u5982 Cypher \u65e0\u6cd5\u63cf\u8ff0\uff0c\u6216\u662f\u5bf9\u6027\u80fd\u8981\u6c42\u8f83\u9ad8\uff09\u65f6\uff0c\u76f8\u6bd4\u8c03\u7528\u591a\u4e2a REST \u8bf7\u6c42\u5e76\u5728\u5ba2\u6237\u7aef\u5b8c\u6210\u6574\u4e2a\n\u5904\u7406\u6d41\u7a0b\u7684\u65b9\u5f0f\uff0cTuGraph \u63d0\u4f9b\u7684\u5b58\u50a8\u8fc7\u7a0b\uff08Procedure\uff09\u662f\u66f4\u7b80\u6d01\u548c\u9ad8\u6548\u7684\u9009\u62e9\u3002"}),"\n",(0,h.jsx)(e.p,{children:"\u4ece 3.5 \u7248\u672c\u5f00\u59cb\uff0cTuGraph \u91cd\u65b0\u8bbe\u8ba1\u4e86\u65b0\u7684\u5b58\u50a8\u8fc7\u7a0b\u7f16\u7a0b\u8303\u5f0f\uff0c\u652f\u6301\u5b9a\u4e49\u6807\u51c6\u7684\u7b7e\u540d\u548c\u7ed3\u679c\uff0c\u652f\u6301POG\u7f16\u7a0b\u3002"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u652f\u6301 POG (Procedres on Graph Query Languages) \u7f16\u7a0b\u548c POG \u5e93\uff0c\u5176\u4e2d\u201cGraph Query Languages\u201d\u5305\u542b Cypher \u4ee5\u53ca\n\u5236\u5b9a\u4e2d\u7684 ISO GQL \u7b49\u56fe\u67e5\u8be2\u8bed\u8a00\u3002POG \u5e93\u63d0\u4f9b\u5728\u67e5\u8be2\u8bed\u8a00\u4e2d\u5bf9\u7528\u6237\u5b9a\u4e49\u7684\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bbf\u95ee\uff0c\u6253\u7834\u4e86\u67e5\u8be2\u8bed\u8a00\u548c\u5b58\u50a8\u8fc7\u7a0b\u4e4b\u95f4\u7684\u754c\u9650\uff0c\u6269\u5c55\u4e86\u67e5\u8be2\n\u8bed\u8a00\u7684\u4f7f\u7528\u8303\u56f4\u3002"}),"\n",(0,h.jsxs)(e.blockquote,{children:["\n",(0,h.jsxs)(e.p,{children:["\u8fd9\u4e2a\u6587\u6863\u63cf\u8ff0\u4e86 ",(0,h.jsx)(e.a,{href:"/tugraph-db/zh/olap&procedure/procedure/",children:"\u65b0\u7684 Procedure \u7f16\u7a0b\u8303\u5f0f\u4ee5\u53ca POG"}),"\u3002"]}),"\n"]}),"\n",(0,h.jsx)(e.h3,{id:"43\u6570\u636e\u5bfc\u5165\u5bfc\u51fa",children:"4.3.\u6570\u636e\u5bfc\u5165\u5bfc\u51fa"}),"\n",(0,h.jsx)(e.p,{children:"\u5c3d\u7ba1TuGraph\u672c\u8eab\u652f\u6301\u6570\u636e\u7684\u63d2\u5165\uff0c\u4f46\u6279\u91cf\u5bfc\u5165\u80fd\u591f\u5927\u5e45\u63d0\u5347\u7684\u6548\u7387\u3002\u5bfc\u5165\u7684\u529f\u80fd\u53ef\u4ee5\u5206\u4e3a\u7a7a\u5e93\u5bfc\u5165\uff08\u79bb\u7ebf\u5bfc\u5165\uff09\u548c\u589e\u91cf\u5bfc\u5165\uff0c\u524d\u8005\u6307\u5b50\u56fe\u662f\u7a7a\u7684\u65f6\u5019\u8fdb\u884c\u5bfc\u5165\uff0c\u989d\u5916\u7684\u5047\u8bbe\u80fd\u591f\u5927\u5e45\u63d0\u5347\u5bfc\u5165\u7684\u6027\u80fd\uff0c\u5728 TuGraph \u4e2d\uff0c\u7a7a\u5e93\u5bfc\u5165\u548c\u589e\u91cf\u5bfc\u5165\u7684\u541e\u5410\u7387\u5dee\u4e8610 \u500d\u3002\u5728\u6570\u636e\u5bfc\u51fa\u4e2d\uff0c\u9700\u8981\u8003\u8651\u5bfc\u51fa\u6570\u636e\u7684\u4e00\u81f4\u6027\uff0c\u5373\u662f\u57fa\u4e8e\u4e00\u4e2a\u5feb\u7167\u6570\u636e\u5bfc\u51fa\u7684\u3002"}),"\n",(0,h.jsxs)(e.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 \u547d\u4ee4\u884c\u5de5\u5177",(0,h.jsx)(e.code,{children:"lgraph_export"})," \u6765\u5bf9\u5df2\u7ecf\u5b58\u653e\u5728TuGraph\u7684\u56fe\u6570\u636e\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301CSV\u548cJSON\u3002"]}),"\n",(0,h.jsx)(e.h3,{id:"44\u5907\u4efd\u6062\u590d",children:"4.4.\u5907\u4efd\u6062\u590d"}),"\n",(0,h.jsx)(e.p,{children:"TUGraph\u7684\u5907\u4efd\u5728\u529f\u80fd\u4e0a\u53ef\u5206\u4e3a\u4e3b\u52a8/\u5b9a\u65f6\u3001\u79bb\u7ebf/\u5728\u7ebf\u3001\u5168\u91cf/\u589e\u91cf\u5907\u4efd\uff0c\u7528\u5c3d\u91cf\u5c0f\u7684\u5b58\u50a8\u548c\u8ba1\u7b97\u4ee3\u4ef7\u6765\u5b8c\u6210\u5907\u4efd\u3002\u6062\u590d\u529f\u80fd\u53ef\u4ee5\u6062\u590d\u5230\u6700\u65b0\u7684\u72b6\u6001\uff0c\u6216\u8005\u5386\u53f2\u6807\u6ce8\u7684\u65f6\u95f4\u70b9\uff0c\u9700\u8981\u4fdd\u8bc1\u6570\u636e\u5e93\u662f\u4e00\u81f4\u7684\u72b6\u6001\u3002"}),"\n",(0,h.jsx)(e.h3,{id:"45-\u6570\u636e\u9884\u70ed",children:"4.5 \u6570\u636e\u9884\u70ed"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u662f\u57fa\u4e8e\u78c1\u76d8\u7684\u56fe\u6570\u636e\u5e93\uff0c\u4ec5\u5f53\u8bbf\u95ee\u6570\u636e\u65f6\uff0c\u6570\u636e\u624d\u4f1a\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\u3002\u56e0\u6b64\u5728\u670d\u52a1\u5668\u521a\u5f00\u542f\u540e\u7684\u4e00\u6bb5\u65f6\u95f4\u5185\uff0c\u7cfb\u7edf\u6027\u80fd\u53ef\u80fd\u4f1a\u7531\u4e8e\u9891\u7e41\u7684 IO \u64cd\u4f5c\u800c\u53d8\u5dee\u3002\u6b64\u65f6\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e8b\u5148\u8fdb\u884c\u6570\u636e\u9884\u70ed\u6765\u6539\u5584\u8fd9\u4e00\u95ee\u9898\u3002"}),"\n",(0,h.jsx)(e.h3,{id:"46-\u9ad8\u53ef\u7528",children:"4.6 \u9ad8\u53ef\u7528"}),"\n",(0,h.jsx)(e.p,{children:"\u9ad8\u53ef\u7528\u662f\u6307\u901a\u8fc7\u901a\u8fc7\u96c6\u7fa4\u914d\u7f6e\uff0c\u505a\u5230\u5b9e\u65f6\u591a\u526f\u672c\u6570\u636e\u70ed\u5907\uff0c\u5728\u90e8\u5206\u526f\u672c\u4e0d\u7528\u65f6\uff0c\u96c6\u7fa4\u4ecd\u7136\u80fd\u6b63\u5e38\u63d0\u4f9b\u670d\u52a1\uff0cTuGraph\u91c7\u7528 RAFT \u534f\u8bae\u7684\u591a\u673a\u70ed\u5907\u673a\u5236\uff0c\u80fd\u591f\u5c06 RPO \u964d\u4f4e\u5230\u63a5\u8fd1 0 \u7684\u7a0b\u5ea6\u3002TuGraph \u9009\u62e9\u5728\u8ba1\u7b97\u5c42\u8fdb\u884c\u6570\u636e\u540c\u6b65\uff0c\u540c\u6b65\u7684\u5bf9\u8c61\u662f\u5199\u64cd\u4f5c\uff0c\u901a\u8fc7 RPC \u63a5\u53e3\u5feb\u901f\u540c\u6b65\u3002TuGraph \u7684\u9ad8\u53ef\u7528\u96c6\u7fa4\u91c7\u7528\u4e3b\u4ece\u6a21\u5f0f\uff0c\u53ea\u6709\u4e3b\u8282\u70b9\u5904\u7406\u5199\u8bf7\u6c42\uff0c\u4e3b\u4ece\u8282\u70b9\u5747\u80fd\u5904\u7406\u8bfb\u8bf7\u6c42\u3002\u4e3b\u8282\u70b9\u7684\u5199\u8bf7\u6c42\u5904\u7406\u9700\u8981\u540c\u6b65\u5230\u591a\u4e8e\u4e8c\u5206\u4e4b\u4e00\u7684\u603b\u8282\u70b9\u4e0a\uff0c\u591a\u6570\u8282\u70b9\u5199\u6210\u529f\uff0c\u8be5\u5199\u8bf7\u6c42\u624d\u7b97\u5b8c\u6210\u3002"}),"\n",(0,h.jsx)(e.h2,{id:"5\u5ba2\u6237\u7aef\u5de5\u5177",children:"5.\u5ba2\u6237\u7aef\u5de5\u5177"}),"\n",(0,h.jsx)(e.p,{children:"\u5ba2\u6237\u7aef\u4e3b\u8981\u5206\u4e3a\u5404\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684SDK\uff0cOGM\u4ee5\u53ca\u547d\u4ee4\u884c\u5de5\u5177\u3002"}),"\n",(0,h.jsx)(e.p,{children:"\u5ba2\u6237\u7aef SDK \u4e3b\u8981\u7528\u4e8e\u4e8c\u6b21\u5f00\u53d1\uff0c\u53ef\u4ee5\u901a\u8fc7 RPC \u6216 REST \u534f\u8bae\u94fe\u63a5\u670d\u52a1\u7aef\u3002RPC \u57fa\u4e8e\u957f\u94fe\u63a5\u6709\u8f83\u597d\u7684\u6027\u80fd\uff0c\u6570\u636e\u9700\u8981\u901a\u8fc7 protobuf \u7edf\u4e00\u5e8f\u5217\u5316\u3002TuGraph \u4f7f\u7528brpc\uff0c\u652f\u6301 Java\u3001Python\u3001C++ \u7684 rpc \u5ba2\u6237\u7aef\u3002REST \u7684\u534f\u8bae\u6bd4\u8f83\u5bbd\u6cdb\uff0c\u80fd\u591f\u7b80\u5355\u9002\u914d\u66f4\u52a0\u591a\u6837\u7684\u73af\u5883\uff0c\u4e0d\u540c\u7684\u7f16\u7a0b\u8bed\u8a00\u80fd\u591f\u7b80\u5355\u5bf9\u63a5\u3002TuGraph \u7ed9\u51fa\u4e86 Python \u7684REST \u5ba2\u6237\u7aef\u5b9e\u4f8b\uff0c\u547d\u4ee4\u884c\u7684\u4ea4\u4e92\u4e5f\u662f\u7528 REST \u5b9e\u73b0\u3002"}),"\n",(0,h.jsx)(e.p,{children:"OGM(Object Graph Mapping)\u4e3a\u9762\u5411 TuGraph \u7684\u56fe\u5bf9\u8c61\u6620\u5c04\u5de5\u5177\uff0c\u652f\u6301\u5c06 JAVA \u5bf9\u8c61\uff08POJO\uff09\u6620\u5c04\u5230 TuGraph \u4e2d\uff0cJAVA \u4e2d\u7684\u7c7b\u6620\u5c04\u4e3a\u56fe\u4e2d\u7684\u8282\u70b9\u3001\u7c7b\u4e2d\u7684\u96c6\u5408\u6620\u5c04\u4e3a\u8fb9\u3001\u7c7b\u7684\u5c5e\u6027\u6620\u5c04\u4e3a\u56fe\u5bf9\u8c61\u7684\u5c5e\u6027\uff0c\u5e76\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u51fd\u6570\u64cd\u4f5c\u56fe\u6570\u636e\u5e93\uff0c\u56e0\u6b64 JAVA \u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5728\u719f\u6089\u7684\u751f\u6001\u4e2d\u8f7b\u677e\u5730\u4f7f\u7528 TuGraph \u6570\u636e\u5e93\u3002"}),"\n",(0,h.jsxs)(e.p,{children:["\u547d\u4ee4\u884c\u5de5\u5177",(0,h.jsx)(e.code,{children:"lgraph_cypher"}),"\u662f\u67e5\u8be2\u5ba2\u6237\u7aef\uff0c\u53ef\u7528\u4e8e\u5411 TuGraph \u670d\u52a1\u5668\u63d0\u4ea4 OpenCypher \u8bf7\u6c42\u3002",(0,h.jsx)(e.code,{children:"lgraph_cypher"}),"\u5ba2\u6237\u7aef\u6709\u4e24\u79cd\u6267\u884c\u6a21\u5f0f\uff1a\u5355\u547d\u4ee4\u6a21\u5f0f\u548c\u4ea4\u4e92\u5f0f\u6a21\u5f0f\u3002"]}),"\n",(0,h.jsx)(e.h2,{id:"6\u751f\u6001\u5de5\u5177",children:"6.\u751f\u6001\u5de5\u5177"}),"\n",(0,h.jsx)(e.p,{children:"\u751f\u6001\u5de5\u5177\u662f\u4f01\u4e1a\u7ea7\u6570\u636e\u5e93\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u7ec4\u6210\u90e8\u5206\uff0c\u4e30\u5bcc\u7684\u751f\u6001\u5de5\u5177\u80fd\u591f\u5927\u5927\u63d0\u5347\u56fe\u6570\u636e\u5e93\u7684\u53ef\u7528\u6027\uff0c\u7a33\u5b9a\u6027\u3002"}),"\n",(0,h.jsx)(e.h3,{id:"61tugraph-datax",children:"6.1.TuGraph DataX"}),"\n",(0,h.jsx)(e.p,{children:(0,h.jsx)(e.img,{alt:"\u5bfc\u5165\u5bfc\u51fa",src:r(5018).A+"",width:"1288",height:"404"})}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u6838\u5fc3\u652f\u6301 CSV \u548c JSON \u5408\u9002\u7684\u5bfc\u5165\u5bfc\u51fa\uff0c\u63d0\u4f9b\u7a7a\u5e93\u5bfc\u5165\u548c\u589e\u91cf\u5bfc\u5165\u7684\u6a21\u5f0f\u3002\u5b9e\u9645\u4e2d\u4f1a\u5b58\u5728 MySQL\u3001Kafka\u3001Hive \u7b49\u591a\u6570\u636e\u6e90\u5bfc\u5165\u7684\u9700\u6c42\uff0cTuGraph \u901a\u8fc7 DataX \u505a\u591a\u6570\u636e\u6e90\u7684\u5bf9\u63a5\u3002\u7531\u4e8e\u5173\u7cfb\u6a21\u578b\u548c\u56fe\u6a21\u578b\u5b58\u5728\u7684\u5dee\u5f02\uff0c\u6570\u636e\u6e05\u6d17\u7684\u6d41\u7a0b\u53ef\u4ee5\u4f7f\u7528 SparkSQL \u5feb\u901f\u5904\u7406\uff0cTuGraph \u672c\u8eab\u4ec5\u5173\u6ce8 CSV \u548c JSON \u7684\u7b80\u5355\u573a\u666f\u5bfc\u5165\u53ef\u9760\u6027\u548c\u6027\u80fd\u3002"}),"\n",(0,h.jsx)(e.h3,{id:"62\u53ef\u89c6\u5316\u4ea4\u4e92",children:"6.2.\u53ef\u89c6\u5316\u4ea4\u4e92"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph Browser \u662f\u9762\u5411\u56fe\u6570\u636e\u5e93\u76f4\u63a5\u4f7f\u7528\u8005\u7684\u53ef\u89c6\u5316\u4ea4\u4e92\u754c\u9762\uff0c\u529f\u80fd\u4e0a\u8986\u76d6\u4e86 TuGraph \u7684\u7edd\u5927\u90e8\u5206\u80fd\u529b\uff0c\u5305\u62ec\u6570\u636e\u5bfc\u5165\u3001\u56fe\u6a21\u578b\u5efa\u7acb\u3001\u6570\u636e\u589e\u5220\u67e5\u6539\u3001\u76d1\u63a7\u8fd0\u7ef4\u7b49\u64cd\u4f5c\u94fe\u8def\u3002"}),"\n",(0,h.jsx)(e.h3,{id:"63\u8fd0\u7ef4\u76d1\u63a7",children:"6.3.\u8fd0\u7ef4\u76d1\u63a7"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u4f7f\u7528 Prometheus \u52a0 Grafana \u7684\u76d1\u63a7\u6846\u67b6\uff0c\u91c7\u7528\u677e\u8026\u5408\u7684\u65b9\u5f0f\u3002Prometheus \u4ece TuGraph \u7684\u76d1\u63a7\u63a5\u53e3\u83b7\u53d6\u76d1\u63a7\u4fe1\u606f\uff0c\u5b58\u50a8\u5728\u672c\u5730\u65f6\u5e8f\u6570\u636e\u5e93\u4e2d\uff0c\u7136\u540e\u901a\u8fc7 Grafana \u5728\u7f51\u9875\u7aef\u4ea4\u4e92\u5c55\u793a\u3002"}),"\n",(0,h.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u7684\u76d1\u63a7\u7684\u72b6\u6001\u5305\u62ec\u56fe\u6570\u636e\u5e93\u7684\u72b6\u6001\u548c\u670d\u52a1\u5668\u7684\u72b6\u6001\uff0c\u524d\u8005\u5305\u62ec\u8bfb\u5199\u8d1f\u8f7d\u3001\u70b9\u8fb9\u6570\u91cf\u7b49\u6570\u636e\u5e93\u7aef\u7684\u72b6\u6001\uff0c\u540e\u8005\u5305\u62ec\u5185\u5b58\u3001CPU\u3001\u786c\u76d8\u7b49\u670d\u52a1\u5668\u7684\u5b9e\u65f6\u72b6\u6001\u3002\u5982\u679c\u67d0\u4e9b\u76d1\u63a7\u72b6\u6001\u8d85\u8fc7\u4e86\u9884\u671f\u7684\u9608\u503c\uff0c\u5c31\u9700\u8981\u4e3b\u52a8\u544a\u8b66\uff0c\u901a\u5e38\u9700\u8981\u5bf9\u63a5\u5176\u4ed6\u8fd0\u7ef4\u7ba1\u63a7\u7cfb\u7edf\uff0c\u6bd4\u5982\u7fa4\u6d88\u606f\u3001\u90ae\u4ef6\u544a\u8b66\u7b49\u3002"})]})}function u(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,h.jsx)(e,{...n,children:(0,h.jsx)(t,{...n})}):t(n)}},5018:(n,e,r)=>{r.d(e,{A:()=>h});const h=r.p+"assets/images/tugraph-datax-0f6f140ea310beb2c90460c3d6d0c08d.png"},8453:(n,e,r)=>{r.d(e,{R:()=>d,x:()=>s});var h=r(6540);const i={},l=h.createContext(i);function d(n){const e=h.useContext(l);return h.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:d(n.components),h.createElement(l.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3cecd61e.b43c0df5.js b/assets/js/3cecd61e.b43c0df5.js
new file mode 100644
index 0000000000..4ec0083a26
--- /dev/null
+++ b/assets/js/3cecd61e.b43c0df5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7525],{4487:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u6587\u6863\u5730\u56fe","href":"/tugraph-db/zh/guide","docId":"guide","unlisted":false},{"type":"category","label":"introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ec0\u4e48\u662f\u56fe","href":"/tugraph-db/zh/introduction/what-is-graph","docId":"introduction/what-is-graph","unlisted":false},{"type":"link","label":"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93","href":"/tugraph-db/zh/introduction/what-is-gdbms","docId":"introduction/what-is-gdbms","unlisted":false},{"type":"link","label":"\u4ec0\u4e48\u662fTuGraph","href":"/tugraph-db/zh/introduction/what-is-tugraph","docId":"introduction/what-is-tugraph","unlisted":false},{"type":"link","label":"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e","href":"/tugraph-db/zh/introduction/schema","docId":"introduction/schema","unlisted":false},{"type":"category","label":"characteristics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u6027\u80fd\u4f18\u5148","href":"/tugraph-db/zh/introduction/characteristics/performance-oriented","docId":"introduction/characteristics/performance-oriented","unlisted":false},{"type":"link","label":"\u591a\u5c42\u7ea7\u63a5\u53e3","href":"/tugraph-db/zh/introduction/characteristics/multi-level-Interfaces","docId":"introduction/characteristics/multi-level-Interfaces","unlisted":false},{"type":"link","label":"HTAP","href":"/tugraph-db/zh/introduction/characteristics/htap","docId":"introduction/characteristics/htap","unlisted":false}]},{"type":"link","label":"TuGraph\u4ea7\u54c1\u67b6\u6784","href":"/tugraph-db/zh/introduction/architecture","docId":"introduction/architecture","unlisted":false},{"type":"link","label":"\u529f\u80fd\u6982\u89c8","href":"/tugraph-db/zh/introduction/functionality","docId":"introduction/functionality","unlisted":false},{"type":"link","label":"\u5e94\u7528\u573a\u666f","href":"/tugraph-db/zh/introduction/scenarios","docId":"introduction/scenarios","unlisted":false},{"type":"link","label":"\u540d\u8bcd\u89e3\u91ca","href":"/tugraph-db/zh/introduction/glossary","docId":"introduction/glossary","unlisted":false}]},{"type":"category","label":"quick-start","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/tugraph-db/zh/quick-start/preparation","docId":"quick-start/preparation","unlisted":false},{"type":"category","label":"demo","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u573a\u666f\uff1a\u5f71\u89c6","href":"/tugraph-db/zh/quick-start/demo/movie","docId":"quick-start/demo/movie","unlisted":false},{"type":"link","label":"\u573a\u666f\uff1a\u6d41\u6d6a\u5730\u7403","href":"/tugraph-db/zh/quick-start/demo/wandering-earth","docId":"quick-start/demo/wandering-earth","unlisted":false},{"type":"link","label":"\u573a\u666f\uff1a\u4e09\u4f53","href":"/tugraph-db/zh/quick-start/demo/the-three-body","docId":"quick-start/demo/the-three-body","unlisted":false},{"type":"link","label":"\u573a\u666f\uff1a\u4e09\u56fd","href":"/tugraph-db/zh/quick-start/demo/three-kingdoms","docId":"quick-start/demo/three-kingdoms","unlisted":false},{"type":"link","label":"Round The World Demo","href":"/tugraph-db/zh/quick-start/demo/round-the-world","docId":"quick-start/demo/round-the-world","unlisted":false}]}]},{"type":"category","label":"user-guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c","href":"/tugraph-db/zh/user-guide/tugraph-browser","docId":"user-guide/tugraph-browser","unlisted":false},{"type":"link","label":"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09","href":"/tugraph-db/zh/user-guide/tugraph-browser-legacy","docId":"user-guide/tugraph-browser-legacy","unlisted":false}]},{"type":"category","label":"installation&running","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u73af\u5883\u51c6\u5907","href":"/tugraph-db/zh/installation&running/environment","docId":"installation&running/environment","unlisted":false},{"type":"link","label":"\u73af\u5883\u5206\u7c7b","href":"/tugraph-db/zh/installation&running/environment-mode","docId":"installation&running/environment-mode","unlisted":false},{"type":"link","label":"Docker\u90e8\u7f72","href":"/tugraph-db/zh/installation&running/docker-deployment","docId":"installation&running/docker-deployment","unlisted":false},{"type":"link","label":"\u672c\u5730\u5305\u90e8\u7f72","href":"/tugraph-db/zh/installation&running/local-package-deployment","docId":"installation&running/local-package-deployment","unlisted":false},{"type":"link","label":"\u4e91\u90e8\u7f72","href":"/tugraph-db/zh/installation&running/cloud-deployment","docId":"installation&running/cloud-deployment","unlisted":false},{"type":"link","label":"\u4ece\u6e90\u7801\u7f16\u8bd1","href":"/tugraph-db/zh/installation&running/compile","docId":"installation&running/compile","unlisted":false},{"type":"link","label":"\u6570\u636e\u5e93\u8fd0\u884c","href":"/tugraph-db/zh/installation&running/tugraph-running","docId":"installation&running/tugraph-running","unlisted":false},{"type":"link","label":"\u90e8\u7f72\u9ad8\u53ef\u7528\u6a21\u5f0f","href":"/tugraph-db/zh/installation&running/high-availability-mode","docId":"installation&running/high-availability-mode","unlisted":false}]},{"type":"category","label":"utility-tools","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u6570\u636e\u5bfc\u5165","href":"/tugraph-db/zh/utility-tools/data-import","docId":"utility-tools/data-import","unlisted":false},{"type":"link","label":"\u6570\u636e\u5bfc\u51fa","href":"/tugraph-db/zh/utility-tools/data-export","docId":"utility-tools/data-export","unlisted":false},{"type":"link","label":"\u5907\u4efd\u6062\u590d","href":"/tugraph-db/zh/utility-tools/backup-and-restore","docId":"utility-tools/backup-and-restore","unlisted":false},{"type":"link","label":"\u6570\u636e\u9884\u70ed","href":"/tugraph-db/zh/utility-tools/data-warmup","docId":"utility-tools/data-warmup","unlisted":false},{"type":"link","label":"\u96c6\u7fa4\u7ba1\u7406","href":"/tugraph-db/zh/utility-tools/ha-cluster-management","docId":"utility-tools/ha-cluster-management","unlisted":false},{"type":"link","label":"\u547d\u4ee4\u884c\u5de5\u5177","href":"/tugraph-db/zh/utility-tools/tugraph-cli","docId":"utility-tools/tugraph-cli","unlisted":false},{"type":"link","label":"TuGraph-DataX","href":"/tugraph-db/zh/utility-tools/tugraph-datax","docId":"utility-tools/tugraph-datax","unlisted":false},{"type":"link","label":"TuGraph-Explorer","href":"/tugraph-db/zh/utility-tools/tugraph-explorer","docId":"utility-tools/tugraph-explorer","unlisted":false},{"type":"link","label":"TuGraph-Restful-Server","href":"/tugraph-db/zh/utility-tools/restful","docId":"utility-tools/restful","unlisted":false}]},{"type":"category","label":"client-tools","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Python\u5ba2\u6237\u7aef","href":"/tugraph-db/zh/client-tools/python-client","docId":"client-tools/python-client","unlisted":false},{"type":"link","label":"C++\u5ba2\u6237\u7aef","href":"/tugraph-db/zh/client-tools/cpp-client","docId":"client-tools/cpp-client","unlisted":false},{"type":"link","label":"Java\u5ba2\u6237\u7aef","href":"/tugraph-db/zh/client-tools/java-client","docId":"client-tools/java-client","unlisted":false},{"type":"link","label":"TuGraph-OGM","href":"/tugraph-db/zh/client-tools/tugraph-ogm","docId":"client-tools/tugraph-ogm","unlisted":false},{"type":"link","label":"Bolt\u5ba2\u6237\u7aef","href":"/tugraph-db/zh/client-tools/bolt-client","docId":"client-tools/bolt-client","unlisted":false},{"type":"link","label":"TuGraph console client","href":"/tugraph-db/zh/client-tools/bolt-console-client","docId":"client-tools/bolt-console-client","unlisted":false},{"type":"link","label":"RESTful API","href":"/tugraph-db/zh/client-tools/restful-api","docId":"client-tools/restful-api","unlisted":false},{"type":"link","label":"RPC API","href":"/tugraph-db/zh/client-tools/rpc-api","docId":"client-tools/rpc-api","unlisted":false},{"type":"link","label":"RESTful API Legacy","href":"/tugraph-db/zh/client-tools/restful-api-legacy","docId":"client-tools/restful-api-legacy","unlisted":false}]},{"type":"category","label":"query","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cypher API","href":"/tugraph-db/zh/query/cypher","docId":"query/cypher","unlisted":false},{"type":"link","label":"ISO GQL","href":"/tugraph-db/zh/query/gql","docId":"query/gql","unlisted":false},{"type":"link","label":"Vector index","href":"/tugraph-db/zh/query/vector_index","docId":"query/vector_index","unlisted":false}]},{"type":"category","label":"olap&procedure","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Procedure API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Traversal API","href":"/tugraph-db/zh/olap&procedure/procedure/traversal","docId":"olap&procedure/procedure/traversal","unlisted":false},{"type":"link","label":"Rust \u5b58\u50a8\u8fc7\u7a0b","href":"/tugraph-db/zh/olap&procedure/procedure/Rust-procedure","docId":"olap&procedure/procedure/Rust-procedure","unlisted":false}],"href":"/tugraph-db/zh/olap&procedure/procedure/"},{"type":"category","label":"olap","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"OLAP API","href":"/tugraph-db/zh/olap&procedure/olap/tutorial","docId":"olap&procedure/olap/tutorial","unlisted":false},{"type":"link","label":"OlapBase API","href":"/tugraph-db/zh/olap&procedure/olap/olap-base-api","docId":"olap&procedure/olap/olap-base-api","unlisted":false},{"type":"link","label":"OlapOnDB API","href":"/tugraph-db/zh/olap&procedure/olap/olap-on-db-api","docId":"olap&procedure/olap/olap-on-db-api","unlisted":false},{"type":"link","label":"OlapOnDisk API","href":"/tugraph-db/zh/olap&procedure/olap/olap-on-disk-api","docId":"olap&procedure/olap/olap-on-disk-api","unlisted":false},{"type":"link","label":"Python Olap API","href":"/tugraph-db/zh/olap&procedure/olap/python-api","docId":"olap&procedure/olap/python-api","unlisted":false},{"type":"link","label":"\u5185\u7f6e\u7b97\u6cd5","href":"/tugraph-db/zh/olap&procedure/olap/algorithms","docId":"olap&procedure/olap/algorithms","unlisted":false}]},{"type":"category","label":"learn","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Learn Tutorial","href":"/tugraph-db/zh/olap&procedure/learn/tutorial","docId":"olap&procedure/learn/tutorial","unlisted":false},{"type":"link","label":"Sampling API","href":"/tugraph-db/zh/olap&procedure/learn/sampling_api","docId":"olap&procedure/learn/sampling_api","unlisted":false},{"type":"link","label":"Training","href":"/tugraph-db/zh/olap&procedure/learn/training","docId":"olap&procedure/learn/training","unlisted":false},{"type":"link","label":"Heterogeneous Graph","href":"/tugraph-db/zh/olap&procedure/learn/heterogeneous_graph","docId":"olap&procedure/learn/heterogeneous_graph","unlisted":false}]}]},{"type":"category","label":"permission","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7528\u6237\u6743\u9650","href":"/tugraph-db/zh/permission/privilege","docId":"permission/privilege","unlisted":false},{"type":"link","label":"Token\u4f7f\u7528\u8bf4\u660e","href":"/tugraph-db/zh/permission/token","docId":"permission/token","unlisted":false},{"type":"link","label":"\u5fd8\u8bb0\'admin\'\u5bc6\u7801","href":"/tugraph-db/zh/permission/reset_admin_password","docId":"permission/reset_admin_password","unlisted":false},{"type":"link","label":"\u8fd0\u7ef4\u76d1\u63a7","href":"/tugraph-db/zh/permission/monitoring","docId":"permission/monitoring","unlisted":false},{"type":"link","label":"\u65e5\u5fd7\u4fe1\u606f","href":"/tugraph-db/zh/permission/log","docId":"permission/log","unlisted":false}]},{"type":"category","label":"quality","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5355\u5143\u6d4b\u8bd5","href":"/tugraph-db/zh/quality/unit-testing","docId":"quality/unit-testing","unlisted":false},{"type":"link","label":"\u96c6\u6210\u6d4b\u8bd5","href":"/tugraph-db/zh/quality/integration-testing","docId":"quality/integration-testing","unlisted":false}]},{"type":"category","label":"contributor-manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5982\u4f55\u8d21\u732e","href":"/tugraph-db/zh/contributor-manual/contributing","docId":"contributor-manual/contributing","unlisted":false},{"type":"link","label":"\u793e\u533a\u89d2\u8272","href":"/tugraph-db/zh/contributor-manual/community-roles","docId":"contributor-manual/community-roles","unlisted":false},{"type":"link","label":"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae","href":"/tugraph-db/zh/contributor-manual/individual-cla","docId":"contributor-manual/individual-cla","unlisted":false},{"type":"link","label":"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae","href":"/tugraph-db/zh/contributor-manual/corporate-cla","docId":"contributor-manual/corporate-cla","unlisted":false},{"type":"link","label":"\u6280\u672f\u89c4\u5212","href":"/tugraph-db/zh/contributor-manual/roadmap","docId":"contributor-manual/roadmap","unlisted":false}]},{"type":"category","label":"best-practices","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ece\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bfc\u5165TuGraph","href":"/tugraph-db/zh/best-practices/rdbms-to-tugraph","docId":"best-practices/rdbms-to-tugraph","unlisted":false},{"type":"link","label":"\u4f7f\u7528 TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u8fdb\u884c\u70b9\u5206\u7c7b","href":"/tugraph-db/zh/best-practices/learn_practices","docId":"best-practices/learn_practices","unlisted":false},{"type":"link","label":"\u6570\u636e\u8fc1\u79fb","href":"/tugraph-db/zh/best-practices/data_migration","docId":"best-practices/data_migration","unlisted":false},{"type":"link","label":"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9","href":"/tugraph-db/zh/best-practices/selection","docId":"best-practices/selection","unlisted":false},{"type":"link","label":"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b","href":"/tugraph-db/zh/best-practices/spatial","docId":"best-practices/spatial","unlisted":false}]},{"type":"link","label":"FAQ","href":"/tugraph-db/zh/faq","docId":"faq","unlisted":false},{"type":"link","label":"\u8054\u7cfb\u65b9\u5f0f","href":"/tugraph-db/zh/contacts","docId":"contacts","unlisted":false},{"type":"link","label":"\u4e1a\u52a1\u5f00\u53d1\u6307\u5357","href":"/tugraph-db/zh/development_guide","docId":"development_guide","unlisted":false}]},"docs":{"best-practices/data_migration":{"id":"best-practices/data_migration","title":"\u6570\u636e\u8fc1\u79fb","description":"1. \u7b80\u4ecb","sidebar":"tutorialSidebar"},"best-practices/learn_practices":{"id":"best-practices/learn_practices","title":"\u4f7f\u7528 TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u8fdb\u884c\u70b9\u5206\u7c7b","description":"1.\u7b80\u4ecb","sidebar":"tutorialSidebar"},"best-practices/rdbms-to-tugraph":{"id":"best-practices/rdbms-to-tugraph","title":"\u4ece\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bfc\u5165TuGraph","description":"\u4f7f\u7528 DataX\uff0c\u5f85\u5b8c\u5584","sidebar":"tutorialSidebar"},"best-practices/selection":{"id":"best-practices/selection","title":"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9","description":"\u8be5\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u9009\u62e9\u7cfb\u7edf\u73af\u5883\uff0c\u4ee5\u53ca\u90e8\u7f72\u65b9\u5f0f","sidebar":"tutorialSidebar"},"best-practices/spatial":{"id":"best-practices/spatial","title":"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b","description":"1. \u7b80\u4ecb","sidebar":"tutorialSidebar"},"client-tools/bolt-client":{"id":"client-tools/bolt-client","title":"Bolt\u5ba2\u6237\u7aef","description":"TuGraph\u76ee\u524d\u517c\u5bb9\u4e86Neo4j\u7684Bolt\u534f\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Neo4j\u7684\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\u3002","sidebar":"tutorialSidebar"},"client-tools/bolt-console-client":{"id":"client-tools/bolt-console-client","title":"TuGraph console client","description":"lgraph_cli \u662f\u57fa\u4e8ebolt\u534f\u8bae\u7684 console client\uff0cc++\u7f16\u5199\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u8fde\u63a5tugraph\u7684bolt\u7aef\u53e3\u3002","sidebar":"tutorialSidebar"},"client-tools/cpp-client":{"id":"client-tools/cpp-client","title":"C++\u5ba2\u6237\u7aef","description":"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph C++ SDK\u7684\u4f7f\u7528\u8bf4\u660e\u3002","sidebar":"tutorialSidebar"},"client-tools/java-client":{"id":"client-tools/java-client","title":"Java\u5ba2\u6237\u7aef","description":"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Java SDK\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662fTuGraph Java SDK\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 bolt\u5ba2\u6237\u7aef","sidebar":"tutorialSidebar"},"client-tools/python-client":{"id":"client-tools/python-client","title":"Python\u5ba2\u6237\u7aef","description":"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Python SDK\u7684\u4f7f\u7528\u8bf4\u660e, \u6ce8\u610f\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 bolt\u5ba2\u6237\u7aef","sidebar":"tutorialSidebar"},"client-tools/restful-api":{"id":"client-tools/restful-api","title":"RESTful API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002","sidebar":"tutorialSidebar"},"client-tools/restful-api-legacy":{"id":"client-tools/restful-api-legacy","title":"RESTful API Legacy","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002","sidebar":"tutorialSidebar"},"client-tools/rpc-api":{"id":"client-tools/rpc-api","title":"RPC API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684 RPC API \u7684\u8c03\u7528\u8be6\u60c5\u3002","sidebar":"tutorialSidebar"},"client-tools/tugraph-ogm":{"id":"client-tools/tugraph-ogm","title":"TuGraph-OGM","description":"1.\u7b80\u4ecb","sidebar":"tutorialSidebar"},"contacts":{"id":"contacts","title":"\u8054\u7cfb\u65b9\u5f0f","description":"\u60a8\u6709\u4efb\u4f55\u5bf9\u4ea7\u54c1\u7684\u610f\u89c1\u548c\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u8054\u7cfb\u65b9\u5f0f\u52a0\u5165\u8ba8\u8bba\uff0c\u6216\u63d0\u51fa\u5efa\u8bae\u3002","sidebar":"tutorialSidebar"},"contributor-manual/community-roles":{"id":"contributor-manual/community-roles","title":"\u793e\u533a\u89d2\u8272","description":"1. \u524d\u8a00","sidebar":"tutorialSidebar"},"contributor-manual/contributing":{"id":"contributor-manual/contributing","title":"\u5982\u4f55\u8d21\u732e","description":"1. \u524d\u8a00","sidebar":"tutorialSidebar"},"contributor-manual/corporate-cla":{"id":"contributor-manual/corporate-cla","title":"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae","description":"AntGroupOpenSourceCorporateCLAEnglishChinese2021","sidebar":"tutorialSidebar"},"contributor-manual/individual-cla":{"id":"contributor-manual/individual-cla","title":"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae","description":"AntGroupOpenSourceIndividualCLAEnglishChinese2021","sidebar":"tutorialSidebar"},"contributor-manual/roadmap":{"id":"contributor-manual/roadmap","title":"\u6280\u672f\u89c4\u5212","description":"1. \u7b80\u4ecb","sidebar":"tutorialSidebar"},"development_guide":{"id":"development_guide","title":"\u4e1a\u52a1\u5f00\u53d1\u6307\u5357","description":"\u8fde\u63a5tugraph-db","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"FAQ","description":"\u5728 TuGraph \u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u5982\u679c\u9047\u5230\u95ee\u9898\u53ef\u4f18\u5148\u67e5\u770b\u7528\u6237\u6587\u6863 \u3002\u5176\u6b21\uff0c\u8bf7\u67e5\u770b\u5982\u4e0b FAQ \u5217\u8868\u662f\u5426\u80fd\u591f\u5339\u914d\u60a8\u7684\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"guide":{"id":"guide","title":"\u6587\u6863\u5730\u56fe","description":"\u8fd9\u91cc\u662f\u6587\u6863\u5730\u56fe\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5b66\u4e60\u548c\u4f7f\u7528TuGraph\u793e\u533a\u7248\u3002","sidebar":"tutorialSidebar"},"installation&running/cloud-deployment":{"id":"installation&running/cloud-deployment","title":"\u4e91\u90e8\u7f72","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e91\u90e8\u7f72\uff0c\u4e5f\u53ef\u53c2\u89c1\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u90e8\u7f72\u6587\u6863\u3002","sidebar":"tutorialSidebar"},"installation&running/compile":{"id":"installation&running/compile","title":"\u4ece\u6e90\u7801\u7f16\u8bd1","description":"\u672c\u6587\u6863\u4e3b\u8981\u63cf\u8ff0 TuGraph \u4ece\u6e90\u7801\u8fdb\u884c\u7f16\u8bd1\u3002","sidebar":"tutorialSidebar"},"installation&running/docker-deployment":{"id":"installation&running/docker-deployment","title":"Docker\u90e8\u7f72","description":"\u672c\u6587\u6863\u4ecb\u7ecdTuGraph Compile\u53caTuGraph Runtime\u7684Docker\u955c\u50cf\u7684\u521b\u5efa\u3001\u4e0b\u8f7d\u3002","sidebar":"tutorialSidebar"},"installation&running/environment":{"id":"installation&running/environment","title":"\u73af\u5883\u51c6\u5907","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u90e8\u7f72\u65f6\u6240\u9700\u7684\u8f6f\u786c\u4ef6\u73af\u5883\u3002","sidebar":"tutorialSidebar"},"installation&running/environment-mode":{"id":"installation&running/environment-mode","title":"\u73af\u5883\u5206\u7c7b","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6d89\u53ca\u7684\u4e09\u79cd\u73af\u5883\u3002","sidebar":"tutorialSidebar"},"installation&running/high-availability-mode":{"id":"installation&running/high-availability-mode","title":"\u90e8\u7f72\u9ad8\u53ef\u7528\u6a21\u5f0f","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u9ad8\u53ef\u7528\u6a21\u5f0f\u7684\u539f\u7406\u3001\u51c6\u5907\u5de5\u4f5c\u3001\u4ee5\u53ca\u670d\u52a1\u5668\u7684\u64cd\u4f5c\u8bf4\u660e","sidebar":"tutorialSidebar"},"installation&running/local-package-deployment":{"id":"installation&running/local-package-deployment","title":"\u672c\u5730\u5305\u90e8\u7f72","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u672c\u5730\u5305\u90e8\u7f72\u3002","sidebar":"tutorialSidebar"},"installation&running/tugraph-running":{"id":"installation&running/tugraph-running","title":"\u6570\u636e\u5e93\u8fd0\u884c","description":"\u672c\u6587\u6863\u4e3b\u8981\u63cf\u8ff0 TuGraph \u670d\u52a1\u7684\u8fd0\u884c\u6a21\u5f0f\u3001\u542f\u52a8\u3001\u505c\u6b62\u548c\u91cd\u542f\u7684\u64cd\u4f5c,\u4ee5\u53ca TuGraph \u7684\u670d\u52a1\u914d\u7f6e\u53c2\u6570\u3001\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u548c\u547d\u4ee4\u884c\u914d\u7f6e\u53c2\u6570\u3002","sidebar":"tutorialSidebar"},"introduction/architecture":{"id":"introduction/architecture","title":"TuGraph\u4ea7\u54c1\u67b6\u6784","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4ea7\u54c1\u67b6\u6784\u3002","sidebar":"tutorialSidebar"},"introduction/characteristics/htap":{"id":"introduction/characteristics/htap","title":"HTAP","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684HTAP\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002","sidebar":"tutorialSidebar"},"introduction/characteristics/multi-level-Interfaces":{"id":"introduction/characteristics/multi-level-Interfaces","title":"\u591a\u5c42\u7ea7\u63a5\u53e3","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u591a\u5c42\u7ea7\u63a5\u53e3\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002","sidebar":"tutorialSidebar"},"introduction/characteristics/performance-oriented":{"id":"introduction/characteristics/performance-oriented","title":"\u6027\u80fd\u4f18\u5148","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6027\u80fd\u4f18\u5148\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002","sidebar":"tutorialSidebar"},"introduction/functionality":{"id":"introduction/functionality","title":"\u529f\u80fd\u6982\u89c8","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\u3002","sidebar":"tutorialSidebar"},"introduction/glossary":{"id":"introduction/glossary","title":"\u540d\u8bcd\u89e3\u91ca","description":"1.\u56fe\u6280\u672f","sidebar":"tutorialSidebar"},"introduction/scenarios":{"id":"introduction/scenarios","title":"\u5e94\u7528\u573a\u666f","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u56fe\u6570\u636e\u5e93\u9002\u7528\u7684\u5e94\u7528\u573a\u666f\u3002","sidebar":"tutorialSidebar"},"introduction/schema":{"id":"introduction/schema","title":"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e","description":"1. \u6570\u636e\u6a21\u578b","sidebar":"tutorialSidebar"},"introduction/what-is-gdbms":{"id":"introduction/what-is-gdbms","title":"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93","description":"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93\uff0c\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf\uff0c\u4ee5\u53ca\u4e24\u8005\u7279\u70b9\u7684\u5bf9\u6bd4\u3002","sidebar":"tutorialSidebar"},"introduction/what-is-graph":{"id":"introduction/what-is-graph","title":"\u4ec0\u4e48\u662f\u56fe","description":"\u672c\u6587\u9762\u5411\u521d\u5b66\u8005\uff0c\u4ecb\u7ecd\u56fe\uff08Graph\uff09\u7684\u57fa\u672c\u6982\u5ff5\u3002","sidebar":"tutorialSidebar"},"introduction/what-is-tugraph":{"id":"introduction/what-is-tugraph","title":"\u4ec0\u4e48\u662fTuGraph","description":"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecdTuGraph\u793e\u533a\u7248\u7684\u4e3b\u8981\u529f\u80fd\u548c\u7279\u6027\uff0c\u4ee5\u53caTuGraph\u4f01\u4e1a\u7248\u548c\u793e\u533a\u7248\u7684\u5dee\u5f02\u3002","sidebar":"tutorialSidebar"},"olap&procedure/learn/heterogeneous_graph":{"id":"olap&procedure/learn/heterogeneous_graph","title":"Heterogeneous Graph","description":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u5f02\u8d28\u56fe\u8fdb\u884c\u8bad\u7ec3\u3002","sidebar":"tutorialSidebar"},"olap&procedure/learn/sampling_api":{"id":"olap&procedure/learn/sampling_api","title":"Sampling API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86Sampling API\u7684\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"olap&procedure/learn/training":{"id":"olap&procedure/learn/training","title":"Training","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u4f7f\u7528TuGraph\u8fdb\u884c\u56fe\u795e\u7ecf\u7f51\u7edc\uff08GNN\uff09\u7684\u8bad\u7ec3\u3002","sidebar":"tutorialSidebar"},"olap&procedure/learn/tutorial":{"id":"olap&procedure/learn/tutorial","title":"Learn Tutorial","description":"\u672c\u6587\u6863\u662f\u4e3a TuGraph \u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9 TuGraph \u7684\u56fe\u5b66\u4e60\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8e Tugraph \u7684\u4e00\u4e2a\u7b80\u5355\u7684\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002","sidebar":"tutorialSidebar"},"olap&procedure/olap/algorithms":{"id":"olap&procedure/olap/algorithms","title":"\u5185\u7f6e\u7b97\u6cd5","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86TuGraph\u5185\u7f6e\u7684\u7b97\u6cd5\u7a0b\u5e8f\uff0c\u793e\u533a\u72486\u79cd\u7b97\u6cd5\u53ef\u53c2\u8003\u57fa\u7840\u7b97\u6cd5\u62a5","sidebar":"tutorialSidebar"},"olap&procedure/olap/olap-base-api":{"id":"olap&procedure/olap/olap-base-api","title":"OlapBase API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapBase API\u7684\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"olap&procedure/olap/olap-on-db-api":{"id":"olap&procedure/olap/olap-on-db-api","title":"OlapOnDB API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDB API\u7684\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"olap&procedure/olap/olap-on-disk-api":{"id":"olap&procedure/olap/olap-on-disk-api","title":"OlapOnDisk API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDisk API\u7684\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"olap&procedure/olap/python-api":{"id":"olap&procedure/olap/python-api","title":"Python Olap API","description":"\u672c\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd OlapBase OlapOnDB \u548c OlapOnDisk \u5728Python\u4e2d\u7684API\u7528\u6cd5","sidebar":"tutorialSidebar"},"olap&procedure/olap/tutorial":{"id":"olap&procedure/olap/tutorial","title":"OLAP API","description":"\u672c\u6587\u6863\u662f\u4e3aTuGraph\u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9TuGraph\u7684\u56fe\u8ba1\u7b97\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8eTugraph\u7684\u4e00\u4e2a\u7b80\u5355\u7684BFS(\u5bbd\u5ea6\u4f18\u5148\u641c\u7d22)\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002","sidebar":"tutorialSidebar"},"olap&procedure/procedure/procedure":{"id":"olap&procedure/procedure/procedure","title":"Procedure API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"olap&procedure/procedure/Rust-procedure":{"id":"olap&procedure/procedure/Rust-procedure","title":"Rust \u5b58\u50a8\u8fc7\u7a0b","description":"1. \u4ecb\u7ecd","sidebar":"tutorialSidebar"},"olap&procedure/procedure/traversal":{"id":"olap&procedure/procedure/traversal","title":"Traversal API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4e2d\u7684Traversal API","sidebar":"tutorialSidebar"},"permission/log":{"id":"permission/log","title":"\u65e5\u5fd7\u4fe1\u606f","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u65e5\u5fd7\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"permission/monitoring":{"id":"permission/monitoring","title":"\u8fd0\u7ef4\u76d1\u63a7","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u53ef\u89c6\u5316\u8fd0\u7ef4\u76d1\u63a7","sidebar":"tutorialSidebar"},"permission/privilege":{"id":"permission/privilege","title":"\u7528\u6237\u6743\u9650","description":"1.\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"permission/reset_admin_password":{"id":"permission/reset_admin_password","title":"\u5fd8\u8bb0\'admin\'\u5bc6\u7801","description":"TuGraph \u63d0\u4f9b\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u529f\u80fd\uff0c\u5f53\u7528\u6237\u5fd8\u8bb0\u7ba1\u7406\u8005\u8d26\u53f7admin\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u91cd\u7f6e\u5bc6\u7801\u7684\u65b9\u5f0f\u6765\u4fee\u6539\u5bc6\u7801\u3002","sidebar":"tutorialSidebar"},"permission/token":{"id":"permission/token","title":"Token\u4f7f\u7528\u8bf4\u660e","description":"1.Token\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"quality/integration-testing":{"id":"quality/integration-testing","title":"\u96c6\u6210\u6d4b\u8bd5","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u5982\u4f55\u4f7f\u7528","sidebar":"tutorialSidebar"},"quality/unit-testing":{"id":"quality/unit-testing","title":"\u5355\u5143\u6d4b\u8bd5","description":"\u8be5\u6587\u6863\u662fTuGraph\u7684\u5355\u5143\u6d4b\u8bd5\u6587\u6863","sidebar":"tutorialSidebar"},"query/cypher":{"id":"query/cypher","title":"Cypher API","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86TuGraph-Cypher\u7684\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e","sidebar":"tutorialSidebar"},"query/gql":{"id":"query/gql","title":"ISO GQL","description":"1.GQL\u7b80\u4ecb","sidebar":"tutorialSidebar"},"query/vector_index":{"id":"query/vector_index","title":"Vector index","description":"\u521b\u5efa\u5411\u91cf\u7d22\u5f15","sidebar":"tutorialSidebar"},"quick-start/demo/movie":{"id":"quick-start/demo/movie","title":"\u573a\u666f\uff1a\u5f71\u89c6","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd \u5f71\u89c6\u573a\u666fDemo \u7684\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"quick-start/demo/round-the-world":{"id":"quick-start/demo/round-the-world","title":"Round The World Demo","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u57fa\u4e8etugraph-db\u5f00\u53d1\u7684\u73af\u7403\u65c5\u884c\uff08Round The World\uff09demo","sidebar":"tutorialSidebar"},"quick-start/demo/the-three-body":{"id":"quick-start/demo/the-three-body","title":"\u573a\u666f\uff1a\u4e09\u4f53","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd \u4e09\u4f53 demo\u7684\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"quick-start/demo/three-kingdoms":{"id":"quick-start/demo/three-kingdoms","title":"\u573a\u666f\uff1a\u4e09\u56fd","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd \u4e09\u56fd demo\u7684\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"quick-start/demo/wandering-earth":{"id":"quick-start/demo/wandering-earth","title":"\u573a\u666f\uff1a\u6d41\u6d6a\u5730\u7403","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd \u6d41\u6d6a\u5730\u7403 demo\u7684\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"quick-start/preparation":{"id":"quick-start/preparation","title":"\u5feb\u901f\u4e0a\u624b","description":"\u6b64\u6587\u6863\u4e3b\u8981\u7528\u4e8e\u65b0\u7528\u6237\u5feb\u901f\u4e0a\u624b\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u7684\u7b80\u4ecb\u3001\u7279\u5f81\u3001\u5b89\u88c5\u548c\u4f7f\u7528\u3002","sidebar":"tutorialSidebar"},"user-guide/tugraph-browser":{"id":"user-guide/tugraph-browser","title":"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"user-guide/tugraph-browser-legacy":{"id":"user-guide/tugraph-browser-legacy","title":"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528","sidebar":"tutorialSidebar"},"utility-tools/backup-and-restore":{"id":"utility-tools/backup-and-restore","title":"\u5907\u4efd\u6062\u590d","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5907\u4efd\u548c\u6062\u590d\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"utility-tools/data-export":{"id":"utility-tools/data-export","title":"\u6570\u636e\u5bfc\u51fa","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u51fa\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"utility-tools/data-import":{"id":"utility-tools/data-import","title":"\u6570\u636e\u5bfc\u5165","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u5165\u529f\u80fd\u3002\u5176\u4e2d\u5305\u62ec CSV \u683c\u5f0f\u7684\u5206\u9694\u7b26\uff0cjsonline \u7684\u683c\u5f0f\u793a\u4f8b\uff0c\u4ee5\u53ca\u5bfc\u5165\u5728\u7ebf\u548c\u79bb\u7ebf\u7684\u4e24\u79cd\u6a21\u5f0f\u3002","sidebar":"tutorialSidebar"},"utility-tools/data-warmup":{"id":"utility-tools/data-warmup","title":"\u6570\u636e\u9884\u70ed","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u9884\u70ed\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"utility-tools/ha-cluster-management":{"id":"utility-tools/ha-cluster-management","title":"\u96c6\u7fa4\u7ba1\u7406","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph HA \u96c6\u7fa4\u7684\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u5305\u62ec\u5220\u9664\u8282\u70b9\u3001leader\u8f6c\u79fb\u548c\u751f\u6210snapshot\u529f\u80fd","sidebar":"tutorialSidebar"},"utility-tools/restful":{"id":"utility-tools/restful","title":"TuGraph-Restful-Server","description":"TuGraph Restful Server \u5f3a\u4f9d\u8d56 TuGraph\uff0cRestful Server \u4e0e Tugraph \u5171\u5b58","sidebar":"tutorialSidebar"},"utility-tools/tugraph-cli":{"id":"utility-tools/tugraph-cli","title":"\u547d\u4ee4\u884c\u5de5\u5177","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd lgraphcypher \u6587\u6863\u7684\u4f7f\u7528\uff0c\u6ce8\u610f\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u8bf7\u4f7f\u7528 lgraphcli","sidebar":"tutorialSidebar"},"utility-tools/tugraph-datax":{"id":"utility-tools/tugraph-datax","title":"TuGraph-DataX","description":"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph DataX \u7684\u5b89\u88c5\u7f16\u8bd1\u548c\u4f7f\u7528\u793a\u4f8b","sidebar":"tutorialSidebar"},"utility-tools/tugraph-explorer":{"id":"utility-tools/tugraph-explorer","title":"TuGraph-Explorer","description":"TuGraph Explorer \u5df2\u7ecf\u5408\u5e76\u5230 TuGraph Browser","sidebar":"tutorialSidebar"}}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/3f6905d4.013f3411.js b/assets/js/3f6905d4.013f3411.js
deleted file mode 100644
index 23c6446a82..0000000000
--- a/assets/js/3f6905d4.013f3411.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5882],{6362:(A,s,e)=>{e.r(s),e.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>g,frontMatter:()=>d,metadata:()=>h,toc:()=>r});var n=e(4848),i=e(8453);const d={},c="\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",h={id:"zh-CN/source/user-guide/tugraph-browser",title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u65b9\u6cd5\u3002",source:"@site/../docs/zh-CN/source/4.user-guide/1.tugraph-browser.md",sourceDirName:"zh-CN/source/4.user-guide",slug:"/zh-CN/source/user-guide/tugraph-browser",permalink:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Round The World Demo",permalink:"/tugraph-db/zh-CN/source/quick-start/demo/round-the-world"},next:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09",permalink:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser-legacy"}},l={},r=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u64cd\u4f5c\u6307\u5357",id:"2\u64cd\u4f5c\u6307\u5357",level:2},{value:"2.1.\u8bbf\u95ee",id:"21\u8bbf\u95ee",level:3},{value:"2.2.\u767b\u5f55",id:"22\u767b\u5f55",level:3},{value:"2.3.\u5feb\u901f\u4e0a\u624b",id:"23\u5feb\u901f\u4e0a\u624b",level:3},{value:"2.3.1.\u521b\u5efa\u56fe\u9879\u76ee",id:"231\u521b\u5efa\u56fe\u9879\u76ee",level:4},{value:"2.3.2.\u5f00\u59cb\u56fe\u9879\u76ee",id:"232\u5f00\u59cb\u56fe\u9879\u76ee",level:4},{value:"2.4.\u56fe\u9879\u76ee",id:"24\u56fe\u9879\u76ee",level:3},{value:"2.4.1.\u56fe\u9879\u76ee\u7ba1\u7406",id:"241\u56fe\u9879\u76ee\u7ba1\u7406",level:4},{value:"2.4.1.1.\u65b0\u5efa\u56fe\u9879\u76ee",id:"2411\u65b0\u5efa\u56fe\u9879\u76ee",level:5},{value:"2.4.1.2.\u7f16\u8f91\u56fe\u9879\u76ee",id:"2412\u7f16\u8f91\u56fe\u9879\u76ee",level:5},{value:"2.4.1.3.\u5220\u9664\u56fe\u9879\u76ee",id:"2413\u5220\u9664\u56fe\u9879\u76ee",level:5},{value:"2.4.1.4.\u70b9\u8fb9\u7edf\u8ba1",id:"2414\u70b9\u8fb9\u7edf\u8ba1",level:5},{value:"2.4.1.5.\u5b58\u50a8\u8fc7\u7a0b",id:"2415\u5b58\u50a8\u8fc7\u7a0b",level:5},{value:"2.4.2.\u56fe\u6784\u5efa",id:"242\u56fe\u6784\u5efa",level:4},{value:"2.4.2.1.\u6a21\u578b\u5b9a\u4e49",id:"2421\u6a21\u578b\u5b9a\u4e49",level:5},{value:"a.\u6d4f\u89c8\u56fe\u6a21\u578b",id:"a\u6d4f\u89c8\u56fe\u6a21\u578b",level:6},{value:"b.\u6dfb\u52a0\u70b9",id:"b\u6dfb\u52a0\u70b9",level:6},{value:"c.\u6dfb\u52a0\u8fb9",id:"c\u6dfb\u52a0\u8fb9",level:6},{value:"d.\u5bfc\u5165\u6a21\u578b",id:"d\u5bfc\u5165\u6a21\u578b",level:6},{value:"e.\u5bfc\u51fa\u6a21\u578b",id:"e\u5bfc\u51fa\u6a21\u578b",level:6},{value:"2.4.2.2.\u6570\u636e\u5bfc\u5165",id:"2422\u6570\u636e\u5bfc\u5165",level:5},{value:"a.\u6570\u636e\u51c6\u5907",id:"a\u6570\u636e\u51c6\u5907",level:6},{value:"b.\u4e0a\u4f20\u6587\u4ef6",id:"b\u4e0a\u4f20\u6587\u4ef6",level:6},{value:"c.\u6570\u636e\u6620\u5c04",id:"c\u6570\u636e\u6620\u5c04",level:6},{value:"2.4.3.\u56fe\u67e5\u8be2",id:"243\u56fe\u67e5\u8be2",level:4},{value:"2.4.3.1.\u5207\u6362\u56fe\u9879\u76ee",id:"2431\u5207\u6362\u56fe\u9879\u76ee",level:5},{value:"2.4.3.2.\u8bed\u53e5\u67e5\u8be2",id:"2432\u8bed\u53e5\u67e5\u8be2",level:5},{value:"a.\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",id:"a\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",level:6},{value:"b.\u6536\u85cf\u5217\u8868",id:"b\u6536\u85cf\u5217\u8868",level:6},{value:"c.\u67e5\u770b\u56fe\u6a21\u578b",id:"c\u67e5\u770b\u56fe\u6a21\u578b",level:6},{value:"2.4.3.3.\u8def\u5f84\u67e5\u8be2",id:"2433\u8def\u5f84\u67e5\u8be2",level:5},{value:"2.4.3.4.\u70b9\u67e5\u8be2",id:"2434\u70b9\u67e5\u8be2",level:5},{value:"2.4.3.5.\u6267\u884c\u7ed3\u679c\u9875\u7b7e",id:"2435\u6267\u884c\u7ed3\u679c\u9875\u7b7e",level:5},{value:"a.\u8868\u683c\u6587\u672c",id:"a\u8868\u683c\u6587\u672c",level:6},{value:"b.\u70b9\u8fb9\u89c6\u56fe",id:"b\u70b9\u8fb9\u89c6\u56fe",level:6},{value:"c.\u63d2\u5165\u6570\u636e",id:"c\u63d2\u5165\u6570\u636e",level:6},{value:"d.\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",id:"d\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",level:6},{value:"e.\u5168\u5c4f\u5c55\u793a",id:"e\u5168\u5c4f\u5c55\u793a",level:6},{value:"2.4.4.\u56fe\u5206\u6790",id:"244\u56fe\u5206\u6790",level:4},{value:"2.4.4.1.\u8bed\u53e5\u67e5\u8be2",id:"2441\u8bed\u53e5\u67e5\u8be2",level:5},{value:"2.4.4.2.\u914d\u7f6e\u67e5\u8be2",id:"2442\u914d\u7f6e\u67e5\u8be2",level:5},{value:"2.4.4.3.\u753b\u5e03\u5206\u6790",id:"2443\u753b\u5e03\u5206\u6790",level:5},{value:"a.\u6269\u5c55\u67e5\u8be2",id:"a\u6269\u5c55\u67e5\u8be2",level:6},{value:"b.\u6536\u8d77/\u5c55\u5f00\u8282\u70b9",id:"b\u6536\u8d77\u5c55\u5f00\u8282\u70b9",level:6},{value:"c.\u5220\u9664\u8282\u70b9",id:"c\u5220\u9664\u8282\u70b9",level:6},{value:"d.\u6e05\u7a7a\u753b\u5e03",id:"d\u6e05\u7a7a\u753b\u5e03",level:6},{value:"e.\u70b9/\u8fb9\u68c0\u7d22",id:"e\u70b9\u8fb9\u68c0\u7d22",level:6},{value:"f.\u753b\u5e03\u56fe\u4f8b",id:"f\u753b\u5e03\u56fe\u4f8b",level:6},{value:"g.\u7f29\u653e/\u5c45\u4e2d",id:"g\u7f29\u653e\u5c45\u4e2d",level:6},{value:"2.4.4.4.\u5c5e\u6027\u7b5b\u9009",id:"2444\u5c5e\u6027\u7b5b\u9009",level:5},{value:"2.4.4.5.\u7edf\u8ba1\u7b5b\u9009",id:"2445\u7edf\u8ba1\u7b5b\u9009",level:5},{value:"2.4.4.6.\u70b9\u8fb9\u5e03\u5c40",id:"2446\u70b9\u8fb9\u5e03\u5c40",level:5},{value:"2.4.4.7.\u5916\u89c2\u6837\u5f0f",id:"2447\u5916\u89c2\u6837\u5f0f",level:5},{value:"2.4.4.8.\u89c6\u56fe\u5207\u6362",id:"2448\u89c6\u56fe\u5207\u6362",level:5},{value:"2.4.4.9.\u6807\u7b7e/\u5361\u7247\u5e03\u5c40\u5207\u6362",id:"2449\u6807\u7b7e\u5361\u7247\u5e03\u5c40\u5207\u6362",level:5},{value:"2.5.\u63a7\u5236\u53f0",id:"25\u63a7\u5236\u53f0",level:3},{value:"2.5.1.\u8d26\u6237\u7ba1\u7406",id:"251\u8d26\u6237\u7ba1\u7406",level:4},{value:"2.5.1.1.\u8d26\u6237\u7ba1\u7406",id:"2511\u8d26\u6237\u7ba1\u7406",level:5},{value:"a.\u6dfb\u52a0\u8d26\u6237",id:"a\u6dfb\u52a0\u8d26\u6237",level:6},{value:"b.\u7f16\u8f91\u8d26\u6237",id:"b\u7f16\u8f91\u8d26\u6237",level:6},{value:"c.\u7981\u7528\u8d26\u6237",id:"c\u7981\u7528\u8d26\u6237",level:6},{value:"d.\u5220\u9664\u8d26\u6237",id:"d\u5220\u9664\u8d26\u6237",level:6},{value:"2.5.1.2.\u89d2\u8272\u7ba1\u7406",id:"2512\u89d2\u8272\u7ba1\u7406",level:5},{value:"a.\u6dfb\u52a0\u89d2\u8272",id:"a\u6dfb\u52a0\u89d2\u8272",level:6},{value:"b.\u7f16\u8f91\u89d2\u8272",id:"b\u7f16\u8f91\u89d2\u8272",level:6},{value:"c.\u7981\u7528\u89d2\u8272",id:"c\u7981\u7528\u89d2\u8272",level:6},{value:"d.\u5220\u9664\u89d2\u8272",id:"d\u5220\u9664\u89d2\u8272",level:6},{value:"2.5.2.\u6570\u636e\u5e93\u4fe1\u606f",id:"252\u6570\u636e\u5e93\u4fe1\u606f",level:4},{value:"2.5.2.1.\u57fa\u7840\u4fe1\u606f",id:"2521\u57fa\u7840\u4fe1\u606f",level:5},{value:"2.5.2.2.\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",id:"2522\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",level:5}];function x(A){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c"})}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsx)(s.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u65b9\u6cd5\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,n.jsx)(s.p,{children:"TuGraph Browser\uff08\u4ee5\u4e0b\u7b80\u79f0Browser\uff09\u662f\u4e00\u6b3e\u529f\u80fd\u5f3a\u5927\u7684\u4ea7\u54c1\u53ef\u89c6\u5316\u5f00\u53d1\u5de5\u5177\uff0c\u5b83\u4ee5\u76f4\u89c2\u7684\u53ef\u89c6\u5316\u65b9\u5f0f\u5448\u73b0\u56fe\u6570\u636e\uff0c\u4f7f\u7528\u6237\u53ef\u4ee5\u8f7b\u677e\u5730\u7ba1\u7406\u3001\u7ef4\u62a4\u548c\u67e5\u770b\u6570\u636e\u5e93\u8fd0\u884c\u72b6\u6001\u3002\u6b64\u5de5\u5177\u4e0d\u4ec5\u652f\u6301\u56fe\u6570\u636e\u7684\u7ba1\u7406\u548c\u53ef\u89c6\u5316\uff0c\u8fd8\u652f\u6301\u5bf9\u7cfb\u7edf\u8d26\u6237\u7684\u7ba1\u7406\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u5168\u9762\u7684\u64cd\u4f5c\u548c\u7ba1\u7406\u4f53\u9a8c\uff0c\u8ba9\u7528\u6237\u80fd\u591f\u66f4\u52a0\u9ad8\u6548\u5730\u7ba1\u7406\u548c\u5229\u7528\u56fe\u6570\u636e\u5e93\u3002"}),"\n",(0,n.jsx)(s.h2,{id:"2\u64cd\u4f5c\u6307\u5357",children:"2.\u64cd\u4f5c\u6307\u5357"}),"\n",(0,n.jsx)(s.h3,{id:"21\u8bbf\u95ee",children:"2.1.\u8bbf\u95ee"}),"\n",(0,n.jsx)(s.p,{children:"\u5f53\u7528\u6237\u5b8c\u6210\u56fe\u6570\u636e\u5e93\u7684\u5b89\u88c5\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeBrowser\u3002\u7528\u6237\u53ea\u9700\u8981\u5728\u6d4f\u89c8\u5668\u5730\u5740\u680f\u8f93\u5165\uff1aTuGraph \u6240\u5728\u670d\u52a1\u5668\u7684 IP:Port\u3002\u9ed8\u8ba4\u7684\u7aef\u53e3\u4f7f\u7528\u7684\u662f 7070\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4f8b\u5982\uff1a127.0.0.1:7070\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u63a8\u8350\u4f7f\u7528Chrome\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"22\u767b\u5f55",children:"2.2.\u767b\u5f55"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"login",src:e(5e3).A+"",width:"2856",height:"1492"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6d4f\u89c8\u5668\u6210\u529f\u8bbf\u95eeBrowser\u540e\uff0c\u9996\u5148\u8fdb\u5165\u7684\u662f\u767b\u5f55\u9875\u9762\uff08\u5982\u4e0a\u56fe\u6240\u793a\uff09\uff0c\u7528\u6237\u9700\u8981\u586b\u5199\u8d26\u53f7\u548c\u5bc6\u7801\u8fdb\u884c\u767b\u5f55\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u5e93\u5730\u5740\u683c\u5f0f\u4e3a\uff1aip:bolt_port\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ed8\u8ba4\u8d26\u53f7\uff1aadmin\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ed8\u8ba4\u5bc6\u7801\uff1a73@TuGraph\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u7528\u6237\u9996\u6b21\u767b\u5f55\u540e\uff0c\u4f1a\u8df3\u8f6c\u81f3\u4fee\u6539\u5bc6\u7801\u9875\u9762\uff0c\u5bc6\u7801\u4fee\u6539\u6210\u529f\u540e\uff0c\u4f7f\u7528\u65b0\u5bc6\u7801\u91cd\u65b0\u767b\u5f55\u5373\u53ef\u4f7f\u7528\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"23\u5feb\u901f\u4e0a\u624b",children:"2.3.\u5feb\u901f\u4e0a\u624b"}),"\n",(0,n.jsx)(s.p,{children:"\u5bf9\u4e8e\u9996\u6b21\u4f7f\u7528TuGraph\u7684\u7528\u6237\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\u5feb\u901f\u6784\u5efa\u4e00\u4e2a\u56fe\u9879\u76ee\uff0c\u5feb\u901f\u4e0a\u624b\u56fe\u6570\u636e\u9879\u76ee\u3002"}),"\n",(0,n.jsx)(s.h4,{id:"231\u521b\u5efa\u56fe\u9879\u76ee",children:"2.3.1.\u521b\u5efa\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9996\u9875\u7684\u9009\u9879\u5361\u4e2d\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u65b0\u5efa\u56fe\u9879\u76ee"}),"\u521b\u5efa\u65b0\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u65b0\u5efa\u56fe\u9879\u76ee",src:e(7991).A+"",width:"1290",height:"184"})}),"\n",(0,n.jsxs)(s.p,{children:["\u9009\u62e9\u4e00\u4e2a\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u4e00\u6b65"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u9009\u62e9\u4e00\u4e2ademo",src:e(5666).A+"",width:"1136",height:"908"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u586b\u5199\u914d\u7f6e"}),"\u754c\u9762\u8f93\u5165\u56fe\u9879\u76ee\u4fe1\u606f\uff0cdemo\u6570\u636e\u91cf\u90fd\u76f8\u5bf9\u8f83\u5c0f\uff0c",(0,n.jsx)(s.code,{children:"\u6700\u5927\u5b58\u50a8\u7a7a\u95f4"}),"\u8bbe\u7f6e\u4e3a1G\u5373\u53ef\u3002\u8f93\u5165\u5b8c\u56fe\u9879\u76ee\u4fe1\u606f\u540e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u521b\u5efa"}),"\u6309\u94ae\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u521b\u5efademo\u6570\u636e\u7684\u56fe\u6a21\u578b\u3001\u5bfc\u5165\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u586b\u5199\u914d\u7f6e",src:e(4595).A+"",width:"1135",height:"807"})}),"\n",(0,n.jsx)(s.h4,{id:"232\u5f00\u59cb\u56fe\u9879\u76ee",children:"2.3.2.\u5f00\u59cb\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["demo\u6570\u636e\u7684\u56fe\u9879\u76ee\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u7684\u9009\u9879\u5361\u4e2d\u627e\u5230\u76f8\u5e94\u7684\u56fe\u9879\u76ee\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u67e5\u8be2\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u56fe\u9879\u76ee\u9009\u9879\u5361",src:e(3462).A+"",width:"800",height:"326"})}),"\n",(0,n.jsx)(s.p,{children:"\u6267\u884c\u9ed8\u8ba4\u7684\u67e5\u8be2\u8bed\u53e5\uff0c\u6d4f\u89c8demo\u91cc\u7684\u56fe\u6570\u636e\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u9a8c\u8bc1\u7ed3\u679c",src:e(6836).A+"",width:"2555",height:"1291"})}),"\n",(0,n.jsxs)(s.p,{children:["\u66f4\u591aMovieDemo\u7684\u64cd\u4f5c\u8bf7\u6d4f\u89c8",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/movie",children:"\u5f71\u89c6\u573a\u666f"})]}),"\n",(0,n.jsx)(s.h3,{id:"24\u56fe\u9879\u76ee",children:"2.4.\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u56fe\u9879\u76ee\u7ba1\u7406\u548c\u56fe\u6570\u636e\u7814\u53d1\u529f\u80fd\uff0c\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u4fbf\u6377\u7684\u56fe\u6570\u636e\u53ef\u89c6\u5316\u64cd\u4f5c\uff0c\u5305\u62ec\u56fe\u9879\u76ee\u7684\u521b\u5efa\u3001\u4fee\u6539\u3001\u5220\u9664\u7b49\u7ba1\u7406\u64cd\u4f5c\uff0c\u4ee5\u53ca\u56fe\u6570\u636e\u7684\u67e5\u8be2\u3001\u70b9\u8fb9\u7edf\u8ba1\u7b49\u64cd\u4f5c\u3002\u6b64\u5916\uff0c\u5b83\u4e5f\u652f\u6301\u56fe\u6a21\u578b\u7684\u7ba1\u7406\uff0c\u4f7f\u7528\u6237\u53ef\u4ee5\u66f4\u52a0\u65b9\u4fbf\u5730\u8fdb\u884c\u56fe\u6570\u636e\u7684\u7ba1\u7406\u548c\u7ef4\u62a4\u3002"]}),"\n",(0,n.jsx)(s.h4,{id:"241\u56fe\u9879\u76ee\u7ba1\u7406",children:"2.4.1.\u56fe\u9879\u76ee\u7ba1\u7406"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u53ef\u4ee5\u770b\u5230\u5f53\u524d\u56fe\u6570\u636e\u5e93\u4e2d\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u9996\u9875",src:e(5377).A+"",width:"2846",height:"1462"})}),"\n",(0,n.jsx)(s.h5,{id:"2411\u65b0\u5efa\u56fe\u9879\u76ee",children:"2.4.1.1.\u65b0\u5efa\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u65b0\u5efa\u56fe\u9879\u76ee"}),"\u6309\u94ae\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u65b0\u5efa\u56fe\u9879\u76ee\u6309\u94ae",src:e(2926).A+"",width:"2502",height:"362"})}),"\n",(0,n.jsxs)(s.p,{children:["\u65b0\u5efa\u56fe\u9879\u76ee\u9700\u8981\u901a\u8fc7",(0,n.jsx)(s.code,{children:"\u9009\u62e9\u6a21\u677f"}),"\u548c",(0,n.jsx)(s.code,{children:"\u586b\u5199\u914d\u7f6e"}),"\u4e24\u4e2a\u9875\u9762\u5b8c\u6210\u56fe\u9879\u76ee\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"\u9009\u62e9\u6a21\u677f"}),"\uff1a\u4ea7\u54c1\u63d0\u4f9b\u7a7a\u6a21\u677f\u548cdemo\u6a21\u677f\u4e24\u7c7b\u6a21\u677f\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u7a7a\u6a21\u677f\uff1a\u5168\u65b0\u7684\u56fe\u9879\u76ee\uff0c\u7528\u6237\u9700\u8981\u81ea\u5df1\u521b\u5efa\u56fe\u6a21\u578b\u548c\u5bfc\u5165\u56fe\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u9879\u76ee\u5f00\u53d1\u3002"}),"\n",(0,n.jsx)(s.li,{children:"demo\u6a21\u677f\uff1a\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\uff0c\u56fe\u9879\u76ee\u521b\u5efa\u6210\u529f\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u521b\u5efademo\u56fe\u6a21\u578b\u5e76\u5bfc\u5165demo\u56fe\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u8bd5\u7528\u548c\u5b66\u4e60\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u9009\u62e9\u6a21\u677f",src:e(8479).A+"",width:"1142",height:"915"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"\u586b\u5199\u914d\u7f6e"}),"\uff1a\u7528\u6237\u9700\u8981\u586b\u5199\u56fe\u9879\u76ee\u57fa\u672c\u4fe1\u606f\uff0c\u5e76\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u521b\u5efa"}),"\u6309\u94ae\u521b\u5efa\u56fe\u9879\u76ee\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u56fe\u540d\u79f0\uff1a\u65b0\u5efa\u56fe\u9879\u76ee\u7684\u540d\u79f0\uff0c\u540c\u65f6\u4f5c\u4e3a\u8be5\u56fe\u9879\u76ee\u7684\u552f\u4e00\u4e3b\u952e\u3002\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u56fe\u63cf\u8ff0\uff1a\u65b0\u5efa\u56fe\u9879\u76ee\u7684\u63cf\u8ff0\uff0c\u53ef\u7528\u4e8e\u8be6\u7ec6\u8bf4\u660e\u8be5\u9879\u76ee\u7684\u80cc\u666f\u548c\u76ee\u6807\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e-\u6700\u5927\u5b58\u50a8\u7a7a\u95f4\uff1a\u8bbe\u7f6e\u56fe\u9879\u76ee\u6700\u5927\u53ef\u5360\u7528\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u5b9e\u9645\u5e76\u4e0d\u4f1a\u63d0\u524d\u5360\u7528\u7269\u7406\u5b58\u50a8\u7a7a\u95f4\uff0c\u5b9e\u9645\u6570\u636e\u91cf\u8fbe\u5230\u6700\u5927\u5b58\u50a8\u7a7a\u95f4\u9608\u503c\u540e\u4e0d\u53ef\u518d\u5199\u5165\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u586b\u5199\u914d\u7f6e",src:e(9709).A+"",width:"1136",height:"818"})}),"\n",(0,n.jsxs)(s.p,{children:["\u521b\u5efa\u6210\u529f\u540e\uff0c\u53ef\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9875\u9762\u7684\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u67e5\u770b\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2412\u7f16\u8f91\u56fe\u9879\u76ee",children:"2.4.1.2.\u7f16\u8f91\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u7f16\u8f91"}),"\u6309\u94ae\uff08\u7b14\u5f62\u56fe\u6807\uff09\uff0c\u7f16\u8f91\u5bf9\u5e94\u56fe\u9879\u76ee\u7684\u57fa\u7840\u4fe1\u606f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u7f16\u8f91\u56fe\u9879\u76ee\u6309\u94ae",src:e(1204).A+"",width:"808",height:"330"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7f16\u8f91\u56fe\u9879\u76ee\u529f\u80fd\u53ef\u4ee5\u4fee\u6539",(0,n.jsx)(s.code,{children:"\u56fe\u63cf\u8ff0"}),"\u548c",(0,n.jsx)(s.code,{children:"\u6700\u5927\u5b58\u50a8\u7a7a\u95f4"}),"\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u7f16\u8f91\u56fe\u9879\u76ee",src:e(8249).A+"",width:"691",height:"577"})}),"\n",(0,n.jsx)(s.h5,{id:"2413\u5220\u9664\u56fe\u9879\u76ee",children:"2.4.1.3.\u5220\u9664\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\uff08\u5783\u573e\u6876\u56fe\u6807\uff09\uff0c\u5220\u9664\u5bf9\u5e94\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5220\u9664\u56fe\u9879\u76ee\u6309\u94ae",src:e(4313).A+"",width:"798",height:"324"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.em,{children:"\u9700\u8981\u6ce8\u610f\uff1a\u56fe\u9879\u76ee\u5220\u9664\u540e\u65e0\u6cd5\u6062\u590d"}),"\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2414\u70b9\u8fb9\u7edf\u8ba1",children:"2.4.1.4.\u70b9\u8fb9\u7edf\u8ba1"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u70b9\u8fb9\u7edf\u8ba1"}),"\u6309\u94ae\uff08\u5237\u65b0\u56fe\u6807\uff09\uff0c\u7edf\u8ba1\u5bf9\u5e94\u56fe\u9879\u76ee\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u70b9\u8fb9\u6570\u91cf\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u70b9\u8fb9\u7edf\u8ba1\u6309\u94ae",src:e(1599).A+"",width:"802",height:"326"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7edf\u8ba1\u7ed3\u679c\u5c06\u5c55\u793a\u5728\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e0a\uff0c\u5df2\u7ecf\u7edf\u8ba1\u8fc7\u70b9\u8fb9\u6570\u636e\u7684\u56fe\u9879\u76ee\u518d\u6b21\u7edf\u8ba1\u9700\u8981\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5237\u65b0"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u70b9\u8fb9\u7edf\u8ba1",src:e(7740).A+"",width:"798",height:"330"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5237\u65b0\u70b9\u8fb9\u7edf\u8ba1\u6309\u94ae",src:e(1133).A+"",width:"814",height:"402"})}),"\n",(0,n.jsx)(s.h5,{id:"2415\u5b58\u50a8\u8fc7\u7a0b",children:"2.4.1.5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u5b58\u50a8\u8fc7\u7a0b"}),"\u6309\u94ae\uff08\u5361\u7247\u6700\u53f3\u4fa7\u56fe\u6807\uff09\uff0c\u8df3\u8f6c\u5230\u64cd\u4f5c\u5b58\u50a8\u8fc7\u7a0b\u7684\u56fe\u9875\u9762\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5b58\u50a8\u8fc7\u7a0b\u6309\u94ae",src:e(7877).A+"",width:"806",height:"332"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u5b58\u50a8\u8fc7\u7a0b"}),'\u9875\u9762\uff0c\u53ef\u4ee5\u65b0\u5efa\u5b58\u50a8\u8fc7\u7a0b\uff0c\u65b0\u5efa\u65f6\u9700\u8981\u586b\u5199"\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"\u3001"\u5b58\u50a8\u8fc7\u7a0b\u7c7b\u578b"\u3001"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"\uff0c\u7136\u540e\u9009\u62e9"\u7248\u672c"\u548c"\u6267\u884c\u65f6\u662f\u5426\u4fee\u6539\u6570\u636e\u5e93"']}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5b58\u50a8\u8fc7\u7a0b",src:e(1178).A+"",width:"2834",height:"1472"})}),"\n",(0,n.jsxs)(s.p,{children:["\u66f4\u591a\u5b58\u50a8\u8fc7\u7a0b\u7684\u76f8\u5173\u64cd\u4f5c\u53ef\u89c1 ",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/olap&procedure/procedure/",children:"\u5b58\u50a8\u8fc7\u7a0b"})]}),"\n",(0,n.jsx)(s.h4,{id:"242\u56fe\u6784\u5efa",children:"2.4.2.\u56fe\u6784\u5efa"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u6784\u5efa"}),"\u529f\u80fd\u4e3b\u8981\u7528\u4e8e\u56fe\u9879\u76ee\u7684\u6a21\u578b\u5b9a\u4e49\u548c\u6570\u636e\u5bfc\u5165\u3002\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u6784\u5efa"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6309\u94ae",src:e(1270).A+"",width:"802",height:"326"})}),"\n",(0,n.jsx)(s.h5,{id:"2421\u6a21\u578b\u5b9a\u4e49",children:"2.4.2.1.\u6a21\u578b\u5b9a\u4e49"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u521b\u5efa\u548c\u7ef4\u62a4\u56fe\u6a21\u578b\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u4e5f\u53ef\u7528\u901a\u8fc7",(0,n.jsx)(s.code,{children:"cypher"}),"\u5de5\u5177\u548c",(0,n.jsx)(s.code,{children:"lgraph_import"}),"\u5de5\u5177\u521b\u5efa\u548c\u7ef4\u62a4\u56fe\u6a21\u578b\uff0c\u8be6\u89c1",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/query/cypher",children:"Cypher API"}),"\u548c",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"}),"\u6587\u6863\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"a\u6d4f\u89c8\u56fe\u6a21\u578b",children:"a.\u6d4f\u89c8\u56fe\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u53ef\u4ee5\u67e5\u770b\u8be6\u7ec6\u7684\u56fe\u6a21\u578b\u8bbe\u7f6e\uff0c\u652f\u6301\u5217\u8868\u548c\u753b\u5e03\u65b9\u5f0f\u67e5\u770b\u56fe\u6a21\u578b\uff0c\u652f\u6301\u5217\u8868\u5c55\u793a\u70b9\u7c7b\u578b\u7684\u5c5e\u6027\u548c\u7d22\u5f15\u3001\u8fb9\u7c7b\u578b\u7684\u5c5e\u6027\u548c\u8d77\u70b9/\u7ec8\u70b9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b",src:e(7411).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u652f\u6301\u5217\u8868\u67e5\u770b\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u4e2a\u6570\u5c55\u793a\uff0c\u5728\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\u9875\u7b7e\u4e2d\u5c55\u793a\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u6570\u91cf\u3002"}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u540d\u79f0\u5173\u952e\u5b57\u641c\u7d22\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u641c\u7d22\u6846"}),"\u8f93\u5165\u5173\u952e\u5b57\u53ef\u5c55\u793a\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u641c\u7d22",src:e(7993).A+"",width:"292",height:"182"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u540d\u79f0\u590d\u5236\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u590d\u5236"}),"\u6309\u94ae\u53ef\u4ee5\u590d\u5236\u70b9\u6216\u8fb9\u7684\u540d\u79f0\u81f3\u7c98\u8d34\u677f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u590d\u5236",src:e(3514).A+"",width:"289",height:"196"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u5220\u9664\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u53ef\u4ee5\u5220\u9664\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u5220\u9664",src:e(2240).A+"",width:"280",height:"187"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u753b\u5e03\u65b9\u5f0f\u67e5\u770b\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5728\u5217\u8868\u6216\u753b\u5e03\u4e2d\u70b9\u51fb\u76f8\u5e94\u7684\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\uff0c\u53ef\u4ee5\u5c55\u793a\u6a21\u578b\u8be6\u60c5\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u5220\u9664",src:e(8766).A+"",width:"1653",height:"956"})]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"b\u6dfb\u52a0\u70b9",children:"b.\u6dfb\u52a0\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0\u70b9"}),"\u6309\u94ae\uff0c\u5728\u53f3\u4fa7\u6ed1\u52a8\u7a97\u53e3\u4e2d\u6dfb\u52a0\u70b9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u70b9\u6309\u94ae",src:e(446).A+"",width:"2852",height:"1484"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u9700\u8981\u8f93\u5165\u70b9\u7c7b\u578b\u540d\u79f0\u3001\u5c5e\u6027\u548c\u7d22\u5f15\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5b8c\u6210"}),"\u6309\u94ae\u5b8c\u6210\u70b9\u7c7b\u578b\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u70b9\u7c7b\u578b\u540d\u79f0\uff1a\u70b9\u7684\u540d\u79f0\uff0c\u4e5f\u662f\u8be5\u70b9\u7684\u552f\u4e00\u6807\u8bc6\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5c5e\u6027\uff1a\u70b9\u7684\u5c5e\u6027\uff0c\u9700\u8981\u4e00\u4e2a\u5c5e\u6027\u4f5c\u4e3a\u4e3b\u952e\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u7c7b\u578b\uff1a\u5c5e\u6027\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\uff0c\u652f\u6301INT\u3001STRING\u3001DOUBLE\u3001DATE\u3001DATETIME\u3001BLOB\u3001BOOL\u7b49\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9009\u586b\uff1a\u8be5\u5c5e\u6027\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\u503c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u70b9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u5c5e\u6027\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u7d22\u5f15\uff1a\u70b9\u7684\u7d22\u5f15\u5c5e\u6027\uff0c\u9700\u8981\u5148\u521b\u5efa\u5c5e\u6027\u518d\u8bbe\u7f6e\u8be5\u5c5e\u6027\u4e3a\u7d22\u5f15\uff0c\u7d22\u5f15\u521b\u5efa\u6210\u529f\u540e\u65e0\u6cd5\u4fee\u6539\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\uff1a\u9700\u8981\u914d\u7f6e\u7d22\u5f15\u7684\u5c5e\u6027\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u552f\u4e00\uff1a\u8bbe\u7f6e\u8be5\u5c5e\u6027\u5b57\u6bb5\u4e3a\u552f\u4e00\u503c\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u4e3b\u952e\uff1a\u5bf9\u5e94\u5c5e\u6027\u662f\u5426\u4e3a\u4e3b\u952e\uff0c\u9009\u62e9",(0,n.jsx)(s.code,{children:"\u662f"}),"\u540e",(0,n.jsx)(s.code,{children:"\u552f\u4e00"}),"\u9009\u9879\u5fc5\u987b\u4e3a",(0,n.jsx)(s.code,{children:"\u662f"}),"\u3002"]}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u70b9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u7d22\u5f15\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u70b9\u6309\u94ae",src:e(5131).A+"",width:"1634",height:"1131"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7f16\u8f91\u70b9\uff1a\u53ef\u4ee5\u589e\u52a0\u70b9\u7684\u5c5e\u6027\u548c\u4fee\u6539\u5df2\u6709\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\uff0c\u65b0\u589e\u6216\u5220\u9664\u7d22\u5f15\u3002\u9700\u8981\u5bf9\u6bcf\u4e2a\u65b0\u589e\u6216\u4fee\u6539\u7684\u5c5e\u6027\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4fdd\u5b58"}),"\u6309\u94ae\u624d\u53ef\u4ee5\u751f\u6548\u3002\n",(0,n.jsx)(s.em,{children:"\u6ce8\uff1a\u4e3b\u952e\u5b57\u6bb5\u7684\u5c5e\u6027\u521b\u5efa\u540e\u65e0\u4fee\u6539"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u7f16\u8f91\u70b9",src:e(7572).A+"",width:"576",height:"944"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u6dfb\u52a0\u8fb9",children:"c.\u6dfb\u52a0\u8fb9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0\u8fb9"}),"\u6309\u94ae\uff0c\u5728\u53f3\u4fa7\u6ed1\u52a8\u7a97\u53e3\u4e2d\u6dfb\u52a0\u8fb9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u8fb9\u6309\u94ae",src:e(8341).A+"",width:"1636",height:"1126"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u9700\u8981\u8f93\u5165\u8fb9\u7c7b\u578b\u540d\u79f0\u3001\u5c5e\u6027\u3001\u9009\u62e9\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5b8c\u6210"}),"\u6309\u94ae\u5b8c\u6210\u8fb9\u7c7b\u578b\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8fb9\u7c7b\u578b\u540d\u79f0\uff1a\u8fb9\u7684\u540d\u79f0\uff0c\u4e5f\u662f\u8be5\u8fb9\u7684\u552f\u4e00\u6807\u8bc6\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5c5e\u6027\uff1a\u8fb9\u7684\u5c5e\u6027\uff0c\u8fb9\u4e0a\u53ef\u4ee5\u6ca1\u6709\u5c5e\u6027\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u7c7b\u578b\uff1a\u5c5e\u6027\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\uff0c\u652f\u6301INT\u3001STRING\u3001DOUBLE\u3001DATE\u3001DATETIME\u3001BLOB\u3001BOOL\u7b49\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9009\u586b\uff1a\u8be5\u5c5e\u6027\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\u503c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u8fb9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u5c5e\u6027\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u9009\u62e9\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u8fb9\u7684\u8d77\u70b9\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u70b9\u7c7b\u578b\uff0c\u652f\u6301\u591a\u4e2a\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8d77\u70b9\uff1a\u9009\u62e9\u8d77\u70b9\u7684\u70b9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u7ec8\u70b9\uff1a\u9009\u62e9\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9700\u8981\u63d0\u524d\u521b\u5efa\u81f3\u5c11\u4e00\u4e2a\u70b9\u7c7b\u578b\u624d\u80fd\u8bbe\u7f6e\u8fb9\u7684\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5982\u679c\u4e0d\u9009\u62e9\u5219\u8868\u793a\u8d77\u70b9\u548c\u7ec8\u70b9\u53ef\u4ee5\u4e3a\u4efb\u610f\u70b9\u7c7b\u578b\uff0c\u540c\u65f6\u753b\u5e03\u4e0a\u4e0d\u5c55\u793a\u5bf9\u5e94\u7684\u8fb9\uff0c\u9700\u8981\u5728\u5de6\u4fa7\u5217\u8868\u67e5\u770b\u8fb9\u7c7b\u578b\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u8fb9",src:e(6314).A+"",width:"586",height:"693"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7f16\u8f91\u8fb9\uff1a\u53ef\u4ee5\u589e\u52a0\u8fb9\u7684\u5c5e\u6027\u548c\u4fee\u6539\u5df2\u6709\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\u3002\u9700\u8981\u5bf9\u6bcf\u4e2a\u65b0\u589e\u6216\u4fee\u6539\u7684\u5c5e\u6027\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4fdd\u5b58"}),"\u6309\u94ae\u624d\u53ef\u4ee5\u751f\u6548\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u7f16\u8f91\u8fb9",src:e(6537).A+"",width:"582",height:"806"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u5bfc\u5165\u6a21\u578b",children:"d.\u5bfc\u5165\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5bfc\u5165\u6a21\u578b"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u4e0a\u4f20\u6a21\u578b\u6587\u4ef6\u5feb\u901f\u521b\u5efa\u6a21\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u5165\u6a21\u578b\u6309\u94ae",src:e(2349).A+"",width:"474",height:"47"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u5bfc\u5165\u6a21\u578b"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0a\u4f20\u6587\u4ef6"}),"\u6309\u94ae\uff0c\u4e0a\u4f20\u6a21\u578b\u6587\u4ef6\u6210\u529f\u540e\uff0c\u70b9\u51fb\u786e\u5b9a\u53ef\u4ee5\u5bfc\u5165\u56fe\u6a21\u578b\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8986\u76d6\u5f53\u524d\u753b\u5e03\u4e2d\u7684\u6a21\u578b\uff1a\u9009\u4e2d\u8be5\u9009\u9879\uff0c\u5bfc\u5165\u65f6\u4f1a\u5148\u6e05\u7a7a\u5df2\u6709\u56fe\u6a21\u578b\u518d\u5bfc\u5165\u6a21\u578b\u6587\u4ef6\u4e2d\u7684\u56fe\u6a21\u578b\uff1b\u4e0d\u9009\u62e9\uff0c\u4f1a\u5bfc\u5165\u6a21\u578b\u6587\u4ef6\u4e2d\u65b0\u589e\u7684\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\uff0c\u4f46\u4e0d\u4f1a\u4fee\u6539\u5df2\u6709\u7684\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u5165\u6a21\u578b",src:e(5522).A+"",width:"948",height:"514"})}),"\n",(0,n.jsx)(s.h6,{id:"e\u5bfc\u51fa\u6a21\u578b",children:"e.\u5bfc\u51fa\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5bfc\u51fa\u6a21\u578b"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u5c06\u5f53\u524d\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6a21\u578b\u5bfc\u51fa\u6210json\u6587\u4ef6\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u51fa\u6a21\u578b\u6309\u94ae",src:e(3056).A+"",width:"456",height:"53"})}),"\n",(0,n.jsx)(s.p,{children:"\u6a21\u578b\u6587\u4ef6\u4e3ajson\u683c\u5f0f\uff0c\u4e0d\u5efa\u8bae\u624b\u52a8\u4fee\u6539\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u51fa\u6a21\u578b\u6309\u94ae",src:e(6605).A+"",width:"1408",height:"144"})}),"\n",(0,n.jsx)(s.h5,{id:"2422\u6570\u636e\u5bfc\u5165",children:"2.4.2.2.\u6570\u636e\u5bfc\u5165"}),"\n",(0,n.jsxs)(s.p,{children:["\u5b8c\u6210",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u4e4b\u540e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u6309\u94ae\u8fdb\u5165\u6570\u636e\u5bfc\u5165\u9875\u9762\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6570\u636e\u5bfc\u5165",src:e(3553).A+"",width:"2848",height:"1468"})}),"\n",(0,n.jsx)(s.h6,{id:"a\u6570\u636e\u51c6\u5907",children:"a.\u6570\u636e\u51c6\u5907"}),"\n",(0,n.jsx)(s.p,{children:"\u5728\u6570\u636e\u5bfc\u5165\u524d\u9700\u8981\u63d0\u524d\u51c6\u5907\u6570\u636e\uff0c\u5f53\u524dBrowser\u652f\u6301CSV\u6587\u4ef6\u7684\u4e0a\u4f20\uff0c\u9700\u8981\u4fdd\u8bc1\u6570\u636e\u6587\u4ef6\u540e\u7f00\u4e3acsv\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4e0d\u5f3a\u5236\u8981\u6c42\u5305\u542b\u8868\u5934\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u6587\u672c\u9650\u5b9a\u7b26\uff0c\u6587\u672c\u9650\u5b9a\u7b26\u4e3a\u53cc\u5f15\u53f7\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-csv",src:e(3034).A+"",width:"258",height:"256"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u4e0a\u4f20\u6587\u4ef6",children:"b.\u4e0a\u4f20\u6587\u4ef6"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u9875\u9762\u4e0a\u4f20\u9700\u8981\u5bfc\u5165\u7684\u6570\u636e\u6587\u4ef6\uff0c\u5c06\u6570\u636e\u5bfc\u5165\u5230\u56fe\u9879\u76ee\u4e2d\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u4e0a\u4f20\u6587\u4ef6",src:e(857).A+"",width:"586",height:"378"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5206\u9694\u7b26\uff1a\u6570\u636e\u6587\u4ef6\u7684\u5217\u5206\u9694\u7b26\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u6587\u4ef6\u4e0a\u4f20\uff1a\u652f\u6301\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u5f39\u7a97\u4e2d\u9009\u62e9\u591a\u4e2a\u4e0a\u4f20\u6587\u4ef6\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u5c06\u6587\u4ef6\u62d6\u62fd\u81f3\u9875\u9762\u4e2d\u4e0a\u4f20\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u540c\u65f6\u4e0a\u4f20\u70b9\u6587\u4ef6\u548c\u8fb9\u6587\u4ef6\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"c\u6570\u636e\u6620\u5c04",children:"c.\u6570\u636e\u6620\u5c04"}),"\n",(0,n.jsxs)(s.p,{children:["\u6587\u4ef6\u4e0a\u4f20\u6210\u529f\u540e\uff0c\u9700\u8981\u5728",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u9875\u9762\u8bbe\u7f6e",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bf9\u5e94\u8868"}),"\uff0c\u5c06\u6570\u636e\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5217\u548c\u76ee\u6807\u70b9/\u8fb9\u3001\u5bf9\u5e94\u5c5e\u6027\u5efa\u7acb\u6620\u5c04\u5173\u7cfb\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6570\u636e\u5bf9\u5e94\u8868\uff1a\u5c55\u793a\u5df2\u7ecf\u4e0a\u4f20\u7684\u6570\u636e\u95ee\u9898\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6587\u4ef6\u540d\u79f0\uff1a\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u540d\u79f0\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6587\u4ef6\u5927\u5c0f\uff1a\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u5927\u5c0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8bfb\u53d6\u7ed3\u679c\uff1a\u6570\u636e\u6587\u4ef6\u4e0a\u4f20\u7ed3\u679c\uff0csuccess\u4e3a\u8bfb\u53d6\u6210\u529f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u9875\u9762\u4e2d\u5220\u9664\uff0c\u4e0d\u4f1a\u5220\u9664\u672c\u5730\u6587\u4ef6\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u6570\u636e\u6587\u4ef6\u6620\u5c04\uff1a\u6bcf\u4e2a\u5df2\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u90fd\u9700\u8981\u914d\u7f6e\u6620\u5c04\u5173\u7cfb\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6807\u7b7e\uff1a\u9009\u62e9\u8be5\u6587\u4ef6\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u53ea\u80fd\u9009\u62e9\u4e00\u7c7b\u70b9\u6216\u4e00\u7c7b\u8fb9\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4ece\u7b2cN\u884c\uff0c\u5f00\u59cb\uff1a\u4ece\u7b2cN\u884c\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4ece\u7b2c0\u884c\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\uff0c\u5982\u9700\u8df3\u8fc7\u8868\u5934\u53ef\u8f93\u51651\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\u6620\u5c04\uff1a\u4e0b\u62c9\u9009\u62e9\u6570\u636e\u5217\u5bf9\u5e94\u7684\u5c5e\u6027\u5b57\u6bb5\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u9884\u89c8\uff1a\u7cfb\u7edf\u4f1a\u9884\u8bfb\u6570\u636e\u6587\u4ef6\u7684\u524d5\u884c\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u6570\u636e\u6620\u5c04",src:e(2184).A+"",width:"573",height:"1268"})}),"\n",(0,n.jsxs)(s.p,{children:["\u6587\u4ef6\u4e0a\u4f20\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7ee7\u7eed\u5bfc\u5165"}),"\u6309\u94ae\u7ee7\u7eed\u5bfc\u5165\u5176\u4ed6\u6570\u636e\uff0c\u6216\u8005\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u524d\u5f80\u56fe\u67e5\u8be2"}),"\u6309\u94ae\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u9875\u9762\u67e5\u8be2\u5df2\u5bfc\u5165\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u5bfc\u5165\u6210\u529f",src:e(8247).A+"",width:"278",height:"239"})}),"\n",(0,n.jsx)(s.h4,{id:"243\u56fe\u67e5\u8be2",children:"2.4.3.\u56fe\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u67e5\u8be2\u548c\u8bbf\u95ee\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6570\u636e\uff0c\u4ea7\u54c1\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u3001",(0,n.jsx)(s.code,{children:"\u8def\u5f84\u67e5\u8be2"}),"\u3001",(0,n.jsx)(s.code,{children:"\u70b9\u67e5\u8be2"}),"\u7b49\u591a\u79cd\u6a21\u5f0f\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u652f\u6301\u5207\u6362\u56fe\u9879\u76ee\u548c\u67e5\u8be2\u7ed3\u679c\u5c55\u793a\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6309\u94ae",src:e(6838).A+"",width:"1686",height:"730"})}),"\n",(0,n.jsx)(s.h5,{id:"2431\u5207\u6362\u56fe\u9879\u76ee",children:"2.4.3.1.\u5207\u6362\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u529f\u80fd\u53ea\u80fd\u8bbf\u95ee\u4e00\u4e2a\u56fe\u9879\u76ee\u6570\u636e\uff0c\u7528\u6237\u53ef\u4ee5\u5728",(0,n.jsx)(s.code,{children:"\u5207\u6362\u56fe\u9879\u76ee"}),"\u4e0b\u62c9\u6846\u4e2d\u9009\u62e9\u5e76\u5207\u6362\u81f3\u5176\u4ed6\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u5207\u6362\u56fe\u9879\u76ee",src:e(2471).A+"",width:"221",height:"321"})}),"\n",(0,n.jsx)(s.h5,{id:"2432\u8bed\u53e5\u67e5\u8be2",children:"2.4.3.2.\u8bed\u53e5\u67e5\u8be2"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u65b9\u5f0f\u5f00\u53d1\u548c\u8c03\u8bd5\u56fe\u67e5\u8be2\u8bed\u53e5\uff0c\u7528\u6237\u53ef\u4ee5\u8f93\u5165\u56fe\u67e5\u8be2\u8bed\u53e5\u3001\u6267\u884c\u5e76\u8fd4\u56de\u7ed3\u679c\uff0c\u652f\u6301\u6536\u85cf\u8bed\u53e5\u548c\u67e5\u770b\u56fe\u6a21\u578b\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u53e5\u67e5\u8be2",src:e(1349).A+"",width:"2868",height:"1482"})}),"\n",(0,n.jsx)(s.h6,{id:"a\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",children:"a.\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3"}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u5728",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3"}),"\u8f93\u5165\u56fe\u67e5\u8be2\u8bed\u53e5\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\u53ef\u4ee5\u8fd0\u884c\u5bf9\u5e94\u8bed\u53e5\uff0c\u5e76\u5728",(0,n.jsx)(s.code,{children:"\u6267\u884c\u7ed3\u679c\u9875\u7b7e"}),"\u5c55\u793a\u7ed3\u679c\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u5207\u6362\u67e5\u8be2\u8bed\u8a00\uff1a\u63d0\u4f9b\u4e0d\u540c\u56fe\u67e5\u8be2\u8bed\u8a00\u6a21\u5f0f\u7684\u5207\u6362\u3002",(0,n.jsx)(s.em,{children:"\u5f53\u524d\u53ea\u652f\u6301Cypher\u8bed\u6cd5"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u5207\u6362\u8bed\u8a00",src:e(8948).A+"",width:"144",height:"128"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\uff1a\u63d0\u4f9b\u5f53\u524d\u67e5\u8be2\u8bed\u8a00\u7684\u8bed\u6cd5\u63d0\u793a\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u6cd5\u63d0\u793a",src:e(522).A+"",width:"1118",height:"376"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6267\u884c\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\uff0c\u53d1\u9001\u8f93\u5165\u7684\u67e5\u8be2\u8bed\u53e5\u81f3\u540e\u53f0\u8fd0\u884c\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6267\u884c\u6309\u94ae",src:e(9464).A+"",width:"91",height:"40"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6536\u85cf\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6536\u85cf"}),"\u6309\u94ae\uff0c\u5c06\u5f53\u524d\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\u7684\u5185\u5bb9\u4fdd\u5b58\u6210\u6a21\u677f\uff0c\u4ee5\u4fbf\u4e0b\u6b21\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6536\u85cf\u6309\u94ae",src:e(885).A+"",width:"60",height:"24"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u4e0b\u8f7d\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u8f7d"}),"\u6309\u94ae\uff0c\u5c06\u5f53\u524d\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\u7684\u5185\u5bb9\u4fdd\u5b58\u6210\u6587\u672c\u6587\u4ef6\u5e76\u4e0b\u8f7d\u81f3\u672c\u5730\uff0c\u4ee5\u4fbf\u4e0b\u6b21\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u4e0b\u8f7d\u6309\u94ae",src:e(3453).A+"",width:"60",height:"24"})}),"\n",(0,n.jsxs)(s.p,{children:["\u8be6\u7ec6Cypher\u4f7f\u7528\u6307\u5357\u8bf7\u53c2\u8003\u6587\u6863\uff1a",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/query/cypher",children:"Cypher API"})]}),"\n",(0,n.jsx)(s.h6,{id:"b\u6536\u85cf\u5217\u8868",children:"b.\u6536\u85cf\u5217\u8868"}),"\n",(0,n.jsx)(s.p,{children:"\u4ee5\u5217\u8868\u65b9\u5f0f\u5c55\u793a\u5df2\u7ecf\u6536\u85cf\u7684\u67e5\u8be2\u8bed\u53e5\uff0c\u70b9\u51fb\u5217\u8868\u4e2d\u7684\u6536\u85cf\u6a21\u677f\u53ef\u4ee5\u4f7f\u7528\u5176\u4e2d\u7684\u8bed\u53e5\u3002\u652f\u6301\u5173\u952e\u5b57\u641c\u7d22\u3001\u540d\u79f0\u4fee\u6539\u4ee5\u53ca\u5220\u9664\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u53e5\u6536\u85cf",src:e(1658).A+"",width:"267",height:"196"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u67e5\u770b\u56fe\u6a21\u578b",children:"c.\u67e5\u770b\u56fe\u6a21\u578b"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u5f53\u524d\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6a21\u578b\u67e5\u8be2\uff0c\u65b9\u4fbf\u7528\u6237\u6e05\u6670\u70b9\u8fb9\u7c7b\u578b\u6a21\u578b\uff0c\u652f\u6301\u5217\u8868\u5c55\u793a\u548c\u753b\u5e03\u56fe\u8c31\u5c55\u793a\u65b9\u5f0f\uff0c\u652f\u6301\u9690\u85cf\u67e5\u770b\u56fe\u6a21\u578b\u7a97\u53e3\u3002"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u56fe\u6a21\u578b\u5217\u8868",src:e(7566).A+"",width:"342",height:"409"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u56fe\u6a21\u578b\u56fe\u8c31",src:e(3532).A+"",width:"345",height:"411"})]}),"\n",(0,n.jsx)(s.h5,{id:"2433\u8def\u5f84\u67e5\u8be2",children:"2.4.3.3.\u8def\u5f84\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8def\u5f84\u67e5\u8be2"}),"\u6a21\u677f\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u9009\u62e9\u8def\u5f84\u7684\u65b9\u5f0f\uff0c\u67e5\u627e\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6570\u636e\u662f\u5426\u5b58\u5728\u76f8\u5e94\u7684\u8def\u5f84\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2",src:e(5684).A+"",width:"1412",height:"866"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u8def\u5f84\uff1a\u5728\u8def\u5f84\u9009\u62e9\u4e0b\u62c9\u6846\u5185\u9009\u62e9\u9700\u8981\u67e5\u627e\u7684\u8def\u5f84\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u9009\u62e9\u8def\u5f84\uff1a\u6839\u636e\u56fe\u6a21\u578b\u7684\u5b9a\u4e49\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5339\u914d\u51fa\u5bf9\u5e94\u7684\u4e00\u5ea6\u5173\u7cfb\u8def\u5f84\uff1b\u518d\u6b21\u70b9\u51fb\u8def\u5f84\u4e0b\u62c9\u6846\u4f1a\uff0c\u7cfb\u7edf\u4f1a\u6839\u636e\u8def\u5f84\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u81ea\u52a8\u5339\u914d\u4e0b\u4e00\u5ea6\u5173\u7cfb\u8def\u5f84\u3002\n",(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2-\u9009\u62e9\u8def\u5f84",src:e(9143).A+"",width:"1412",height:"384"})]}),"\n",(0,n.jsxs)(s.li,{children:["\u6267\u884c\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\u8fd4\u56de\u56fe\u9879\u76ee\u4e2d\u5339\u914d\u7684\u8def\u5f84\u3002"]}),"\n",(0,n.jsxs)(s.li,{children:["\u9ad8\u7ea7\u914d\u7f6e\uff1a\u8bbe\u7f6e\u626b\u63cf\u7684\u8def\u5f84\u6570\u76ee\uff0c\u9ed8\u8ba4\u4e3a100\u6761\u8def\u5f84\u3002\n",(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2-\u9ad8\u7ea7\u914d\u7f6e",src:e(5801).A+"",width:"976",height:"229"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"\u6ce8\uff1a\u9700\u8981\u56fe\u6a21\u578b\u4e2d\u7684\u8fb9\u8bbe\u7f6e\u8d77\u70b9\u548c\u7ec8\u70b9\uff0c\u5982\u679c\u56fe\u9879\u76ee\u4e2d\u7684\u8fb9\u5747\u672a\u8bbe\u7f6e\u8d77\u70b9\u548c\u7ec8\u70b9\uff0c\u4e0b\u62c9\u9009\u9879\u65e0\u7ed3\u679c"})}),"\n",(0,n.jsx)(s.h5,{id:"2434\u70b9\u67e5\u8be2",children:"2.4.3.4.\u70b9\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u70b9\u67e5\u8be2"}),"\u6a21\u677f\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u9009\u62e9\u70b9\u5c5e\u6027\u8fdb\u884c\u67e5\u8be2\uff0c\u67e5\u627e\u56fe\u9879\u76ee\u4e2d\u7684\u70b9\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u70b9\u67e5\u8be2",src:e(3353).A+"",width:"2844",height:"1490"})}),"\n",(0,n.jsx)(s.h5,{id:"2435\u6267\u884c\u7ed3\u679c\u9875\u7b7e",children:"2.4.3.5.\u6267\u884c\u7ed3\u679c\u9875\u7b7e"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u8868\u683c\u6587\u672c\u3001\u70b9\u8fb9\u89c6\u56fe\u7b49\u591a\u79cd\u65b9\u5f0f\u5c55\u793a\u56fe\u67e5\u8be2\u7ed3\u679c\uff0c\u652f\u6301\u7ed3\u679c\u4e0b\u8f7d\u3001\u63d2\u5165\u6570\u636e\u3001\u5168\u5c4f\u5c55\u793a\u3002"}),"\n",(0,n.jsx)(s.h6,{id:"a\u8868\u683c\u6587\u672c",children:"a.\u8868\u683c\u6587\u672c"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u4ee5\u8868\u683c\u6587\u672c\u65b9\u5f0f\u5c55\u793a\u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"JSON\u89c6\u56fe",src:e(6074).A+"",width:"2868",height:"1502"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u70b9\u8fb9\u89c6\u56fe",children:"b.\u70b9\u8fb9\u89c6\u56fe"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u4ee5\u753b\u5e03\u65b9\u5f0f\u5c55\u793a\u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u70b9\u8fb9\u89c6\u56fe",src:e(7362).A+"",width:"2850",height:"1496"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u63d2\u5165\u6570\u636e",children:"c.\u63d2\u5165\u6570\u636e"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u65b9\u5f0f\u5728\u5bf9\u5e94\u56fe\u9879\u76ee\u4e2d\u63d2\u5165\u70b9\u6216\u8fb9\u6570\u636e\u3002\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u63d2\u5165\u6570\u636e"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u63d2\u5165\u6570\u636e"}),"\u9875\u7b7e\u9009\u62e9\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\uff0c\u8f93\u5165\u5c5e\u6027\u503c\uff0c\u70b9\u51fb\u786e\u5b9a\u5b8c\u6210\u6570\u636e\u63d2\u5165\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u63d2\u5165\u6570\u636e-\u6309\u94ae",src:e(9290).A+"",width:"108",height:"114"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u63d2\u5165\u6570\u636e",src:e(7231).A+"",width:"514",height:"931"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",children:"d.\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u56fe\u67e5\u8be2\u7ed3\u679c\u5bfc\u51fa\u6210\u6587\u672c\u6587\u4ef6\u529f\u80fd\u3002\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c"}),"\u6309\u94ae\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5c06\u7ed3\u679c\u4fdd\u5b58\u6210\u6587\u672c\u6587\u4ef6\u5e76\u4e0b\u8f7d\u81f3\u672c\u5730\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c-\u6309\u94ae",src:e(9420).A+"",width:"124",height:"117"}),"\n",(0,n.jsx)(s.img,{alt:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c-\u6309\u94ae",src:e(4534).A+"",width:"546",height:"77"})]}),"\n",(0,n.jsx)(s.h6,{id:"e\u5168\u5c4f\u5c55\u793a",children:"e.\u5168\u5c4f\u5c55\u793a"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u5168\u5c4f\u65b9\u5f0f\u5c55\u793a\u56fe\u67e5\u8be2\u7ed3\u679c\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5168\u5c4f\u663e\u793a"}),"\u6309\u94ae\u5168\u5c4f\u5c55\u793a\u7ed3\u679c\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u9000\u51fa\u5168\u5c4f"}),"\u6309\u94ae\u9000\u51fa\u5168\u5c4f\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a-\u6309\u94ae",src:e(6490).A+"",width:"96",height:"107"}),"\n",(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a",src:e(5359).A+"",width:"2844",height:"1502"}),"\n",(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a-\u6309\u94ae",src:e(6488).A+"",width:"58",height:"41"})]}),"\n",(0,n.jsx)(s.h4,{id:"244\u56fe\u5206\u6790",children:"2.4.4.\u56fe\u5206\u6790"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u5206\u6790"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u5728\u753b\u5e03\u4e2d\u5c55\u793a\u548c\u5206\u6790\u56fe\u6570\u636e\uff0c\u4ea7\u54c1\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u548c",(0,n.jsx)(s.code,{children:"\u914d\u7f6e\u67e5\u8be2"}),"\u5c06\u56fe\u9879\u76ee\u4e2d\u7684\u6570\u636e\u67e5\u8be2\u5e76\u52a0\u8f7d\u81f3\u753b\u5e03\uff0c\u652f\u6301\u753b\u5e03\u6570\u636e\u7684\u7b5b\u9009\u3001\u5e03\u5c40\u6837\u5f0f\u8c03\u6574\u4ee5\u53ca\u753b\u5e03\u64cd\u4f5c\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6309\u94ae",src:e(2576).A+"",width:"808",height:"324"})}),"\n",(0,n.jsx)(s.p,{children:"\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u56fe\u5206\u6790\u529f\u80fd\u4e3b\u8981\u5305\u62ec\uff1a"}),"\n",(0,n.jsx)(s.p,{children:"1\u3001\u64cd\u4f5c\u680f\uff1a\u56fe\u5206\u6790\u4e3b\u8981\u64cd\u4f5c\u529f\u80fd\uff0c\u5305\u62ec\u5e03\u5c40\u5207\u6362\u3001\u67e5\u8be2\u8fc7\u6ee4\u3001\u5e03\u5c40\u3001\u6837\u5f0f\u4ee5\u53ca\u753b\u5e03\u64cd\u4f5c\uff1b\n2\u3001\u5de6\u8fb9\u680f\uff1a\u67e5\u8be2\u3001\u7b5b\u9009\u3001\u5916\u89c2\u529f\u80fd\u64cd\u4f5c\u533a\u57df\uff1b\n3\u3001\u753b\u5e03\u533a\u57df\uff1a\u5c55\u793a\u56fe\u6570\u636e\u7684\u533a\u57df\uff0c\u5c55\u793a\u70b9\u548c\u8fb9\u6570\u636e\uff0c\u652f\u6301\u70b9\u6269\u5c55\u67e5\u8be2\u3001\u6536\u8d77\u8282\u70b9\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u5220\u9664\u8282\u70b9\u3001\u753b\u5e03\u56fe\u6570\u636e\u7edf\u8ba1\u3001\u7f29\u653e\u3001\u5c45\u4e2d\u7b49\u529f\u80fd\uff1b\n4\u3001\u53f3\u8fb9\u680f\uff1a\u9009\u4e2d\u4e00\u4e2a\u70b9\u6570\u636e\u6216\u8fb9\u6570\u636e\u540e\uff0c\u4f1a\u5c55\u793a\u5bf9\u5e94\u7684\u5c5e\u6027\u4fe1\u606f\uff1b\n5\u3001\u5e03\u5c40\u5207\u6362\uff1a\u6807\u7b7e\u5e03\u5c40\u548c\u5361\u7247\u5e03\u5c40\u7684\u5207\u6362\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u64cd\u4f5c\u533a\u57df",src:e(3355).A+"",width:"2866",height:"1498"})}),"\n",(0,n.jsx)(s.h5,{id:"2441\u8bed\u53e5\u67e5\u8be2",children:"2.4.4.1.\u8bed\u53e5\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u8f93\u5165\u67e5\u8be2\u8bed\u53e5\u6765\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u5e76\u52a0\u8f7d\u6570\u636e\u81f3\u753b\u5e03\u533a\u57df\u8fdb\u884c\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u8bed\u6cd5\u8bf4\u660e\uff1aTuGraph\u7684",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/query/cypher",children:"\u67e5\u8be2\u8bed\u8a00\u53ca\u8bed\u6cd5\u8bf4\u660e\u6587\u6863"}),"\u3002"]}),"\n",(0,n.jsx)(s.li,{children:"\u6e05\u7a7a\u753b\u5e03\u6570\u636e\uff1a\u672a\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u7684\u7ed3\u679c\u4f1a\u8ffd\u52a0\u81f3\u753b\u5e03\u533a\u57df\uff1b\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u524d\u4f1a\u5148\u6e05\u7a7a\u753b\u5e03\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u8bed\u53e5\u67e5\u8be2",src:e(5615).A+"",width:"690",height:"1246"})}),"\n",(0,n.jsx)(s.h5,{id:"2442\u914d\u7f6e\u67e5\u8be2",children:"2.4.4.2.\u914d\u7f6e\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u914d\u7f6e\u67e5\u8be2"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8282\u70b9\u7c7b\u578b\u548c\u8f93\u5165\u5c5e\u6027\u6761\u4ef6\u6765\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u5e76\u52a0\u8f7d\u6570\u636e\u81f3\u753b\u5e03\u533a\u57df\u8fdb\u884c\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6e05\u7a7a\u753b\u5e03\u6570\u636e\uff1a\u672a\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u7684\u7ed3\u679c\u4f1a\u8ffd\u52a0\u81f3\u753b\u5e03\u533a\u57df\uff1b\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u524d\u4f1a\u5148\u6e05\u7a7a\u753b\u5e03\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6a21\u677f\u67e5\u8be2",src:e(243).A+"",width:"2878",height:"1226"})}),"\n",(0,n.jsx)(s.h5,{id:"2443\u753b\u5e03\u5206\u6790",children:"2.4.4.3.\u753b\u5e03\u5206\u6790"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03\u5206\u6790"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u5bf9\u753b\u5e03\u4e2d\u7684\u8282\u70b9\u6216\u8fb9\u6570\u636e\u8fdb\u884c\u64cd\u4f5c\u548c\u5206\u6790\uff0c\u4e3b\u8981\u5305\u62ec\uff1a\u9009\u4e2d\u8282\u70b9\u8fdb\u884c\u6269\u5c55\u67e5\u8be2\u3001\u6536\u8d77/\u5c55\u5f00\u8282\u70b9\u3001\u56fa\u5b9a\u8282\u70b9\uff0c\u6e05\u7a7a\u753b\u5e03\uff0c\u5957\u7d22\uff0c\u70b9/\u8fb9\u68c0\u7d22\uff0c\u753b\u5e03\u56fe\u4f8b\u7b49\u3002\u753b\u5e03\u4e0a\u7684\u6700\u57fa\u7840\u64cd\u4f5c\u662f\u62d6\u62fd\u70b9\u6570\u636e\uff0c\u9f20\u6807\u5de6\u952e\u9009\u4f4f\u4e00\u4e2a\u8282\u70b9\u5e76\u79fb\u52a8\u9f20\u6807\uff0c\u53ef\u4ee5\u5b8c\u6210\u70b9\u6570\u636e\u4f4d\u7f6e\u7684\u79fb\u52a8\u3002"]}),"\n",(0,n.jsx)(s.h6,{id:"a\u6269\u5c55\u67e5\u8be2",children:"a.\u6269\u5c55\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u9f20\u6807\u79fb\u81f3",(0,n.jsx)(s.code,{children:"\u6269\u5c55\u67e5\u8be2"}),"\u5904\u5f39\u51fa\u4e8c\u7ea7\u60ac\u7a97\uff0c\u70b9\u51fb\u5bf9\u5e94\u7684\u6269\u5c55\u5ea6\u6570\u8fdb\u884c\u67e5\u8be2\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4e00\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e00\u5ea6\u5173\u7cfb\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4e8c\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e8c\u5ea6\u5173\u7cfb\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4e09\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e09\u5ea6\u5173\u7cfb\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6269\u5c55\u67e5\u8be2-\u6309\u94ae",src:e(8199).A+"",width:"920",height:"698"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6269\u5c55\u67e5\u8be2-\u67e5\u8be2\u540e",src:e(4426).A+"",width:"330",height:"338"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u6536\u8d77\u5c55\u5f00\u8282\u70b9",children:"b.\u6536\u8d77/\u5c55\u5f00\u8282\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6536\u8d77\u8282\u70b9"}),"\u4f1a\u9690\u85cf\u6240\u9009\u8282\u70b9\u7684\u4e00\u5ea6\u5173\u7cfb\u8282\u70b9\uff1b\u518d\u6b21\u53f3\u952e\u5df2",(0,n.jsx)(s.code,{children:"\u6536\u8d77\u8282\u70b9"}),"\u7684\u70b9\u6570\u636e\u53ef\u4ee5\u8fdb\u884c",(0,n.jsx)(s.code,{children:"\u5c55\u5f00\u8282\u70b9"}),"\u64cd\u4f5c\uff0c\u5c55\u793a\u5df2\u9690\u85cf\u7684\u4e00\u5ea6\u5173\u7cfb\u8282\u70b9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6536\u8d77\u8282\u70b9",src:e(6938).A+"",width:"880",height:"736"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5c55\u5f00\u8282\u70b9",src:e(8999).A+"",width:"854",height:"682"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u5220\u9664\u8282\u70b9",children:"c.\u5220\u9664\u8282\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664\u8282\u70b9"}),"\u4f1a\u5c06\u6240\u9009\u8282\u70b9\u79fb\u51fa\u753b\u5e03\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5220\u9664\u8282\u70b9",src:e(8014).A+"",width:"754",height:"604"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u6e05\u7a7a\u753b\u5e03",children:"d.\u6e05\u7a7a\u753b\u5e03"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6e05\u7a7a\u753b\u5e03"}),"\u6309\u94ae\uff0c\u4f1a\u6e05\u9664\u6240\u6709\u753b\u5e03\u4e2d\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6e05\u7a7a\u753b\u5e03",src:e(5080).A+"",width:"1496",height:"122"})}),"\n",(0,n.jsx)(s.h6,{id:"e\u70b9\u8fb9\u68c0\u7d22",children:"e.\u70b9/\u8fb9\u68c0\u7d22"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u70b9/\u8fb9\u68c0\u7d22"}),"\u7a97\u53e3\u9009\u62e9\u70b9\u6216\u8fb9\uff0c\u5e76\u8f93\u5165\u5173\u952e\u5b57\uff0c\u4f1a\u6a21\u7cca\u68c0\u7d22\u753b\u5e03\u4e2d\u7684\u5c5e\u6027\u6570\u636e\uff0c\u68c0\u7d22\u540e\u53ef\u5b9a\u4f4d\u81f3\u6570\u636e\u4f4d\u7f6e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u68c0\u7d22",src:e(171).A+"",width:"1832",height:"1230"})}),"\n",(0,n.jsx)(s.h6,{id:"f\u753b\u5e03\u56fe\u4f8b",children:"f.\u753b\u5e03\u56fe\u4f8b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u7684\u56fe\u4f8b\u4f4d\u7f6e\uff0c\u4f1a\u5c55\u793a\u753b\u5e03\u4e2d\u7684\u70b9\u7c7b\u578b\uff0c\u70b9\u51fb\u70b9\u7c7b\u578b\u53ef\u4ee5\u9009\u4e2d\u5bf9\u5e94\u7684\u70b9\u6570\u636e\uff0c\u70b9\u51fb\u66f4\u591a\u6309\u94ae\u53ef\u4ee5\u5c55\u793a\u7edf\u8ba1\u60c5\u51b5\uff0c\u652f\u6301\u5217\u8868\u6216\u56fe\u8868\u65b9\u5f0f\u5c55\u793a\u70b9\u6216\u8fb9\u7684\u6570\u91cf\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5217\u8868",src:e(6283).A+"",width:"1870",height:"1106"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u56fe\u8868",src:e(6171).A+"",width:"1948",height:"1116"})]}),"\n",(0,n.jsx)(s.h6,{id:"g\u7f29\u653e\u5c45\u4e2d",children:"g.\u7f29\u653e/\u5c45\u4e2d"}),"\n",(0,n.jsxs)(s.p,{children:["\u53ef\u4ee5\u4f7f\u7528\u9f20\u6807\u6eda\u8f6e\u548c\u7f29\u653e\u6309\u94ae\u8fdb\u884c\u7f29\u653e\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u7f29\u653e",src:e(7038).A+"",width:"2092",height:"1112"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u7f29\u653e",src:e(8628).A+"",width:"2132",height:"1242"})]}),"\n",(0,n.jsx)(s.h5,{id:"2444\u5c5e\u6027\u7b5b\u9009",children:"2.4.4.4.\u5c5e\u6027\u7b5b\u9009"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7b5b\u9009"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5c5e\u6027\u7b5b\u9009"}),"\u8fdb\u884c\u7b5b\u9009\u8fc7\u6ee4\u3002\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8981\u7b5b\u9009\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u4ee5\u53ca\u5bf9\u5e94\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u8bbe\u7f6e\uff0c\u68c0\u7d22\u5230\u7b5b\u9009\u7ec4\u6761\u4ef6\u7684\u6570\u636e\u540e\u4f1a\u5728\u753b\u5e03\u4e0a\u9ad8\u4eae\u9009\u4e2d\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u6570\u636e\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8bf7\u9009\u62e9\u70b9/\u8fb9\u7c7b\u578b\uff1a\u9009\u62e9\u9700\u8981\u68c0\u7d22\u7684\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\u6761\u4ef6\uff1a\u8bbe\u7f6e\u9700\u8981\u68c0\u7d22\u7684\u5c5e\u6027\u6761\u4ef6\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u591a\u7ec4\uff0c\u53d6\u5e76\u96c6\u7b5b\u9009\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6dfb\u52a0\u7b5b\u9009\u7ec4\uff1a\u53ef\u4ee5\u591a\u7ec4\u7b5b\u9009\u6761\u4ef6\uff0c\u53d6\u5e76\u96c6\u7b5b\u9009\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u91cd\u7f6e\uff1a\u53ef\u4ee5\u6e05\u7a7a\u7b5b\u9009\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7b5b\u9009-\u5c5e\u6027\u7b5b\u9009",src:e(7869).A+"",width:"2852",height:"1336"})}),"\n",(0,n.jsx)(s.h5,{id:"2445\u7edf\u8ba1\u7b5b\u9009",children:"2.4.4.5.\u7edf\u8ba1\u7b5b\u9009"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7b5b\u9009"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7edf\u8ba1\u7b5b\u9009"}),"\u8fdb\u884c\u753b\u5e03\u6570\u636e\u7edf\u8ba1\u3002\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8981\u7edf\u8ba1\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u4ee5\u53ca\u5bf9\u5e94\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6839\u636e\u7528\u6237\u9009\u62e9\u7684\u70b9/\u8fb9\u7c7b\u578b\u548c\u5c5e\u6027\u8fdb\u884c\u5206\u7ec4\u7edf\u8ba1\uff0c\u652f\u6301\u6309\u7167\u56fe\u8868\u548c\u5217\u8868\u4e24\u79cd\u65b9\u5f0f\u5c55\u793a\u7ed3\u679c\uff0c\u540c\u65f6\u70b9\u51fb\u56fe\u8868\u6216\u5217\u8868\u533a\u57df\u7684\u6570\u503c\u53ef\u4ee5\u9ad8\u4eae\u9009\u4e2d\u753b\u5e03\u4e2d\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7b5b\u9009-\u7edf\u8ba1\u7b5b\u9009",src:e(9288).A+"",width:"2864",height:"1234"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7edf\u8ba1\u7b5b\u9009-\u56fe\u8868\u5207\u6362",src:e(8371).A+"",width:"2860",height:"1386"})]}),"\n",(0,n.jsx)(s.h5,{id:"2446\u70b9\u8fb9\u5e03\u5c40",children:"2.4.4.6.\u70b9\u8fb9\u5e03\u5c40"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5e03\u5c40"}),"\u6309\u94ae\uff0c\u9009\u62e9\u5bf9\u5e94\u7684\u5e03\u5c40\u65b9\u5f0f\u4f1a\u5c06\u753b\u5e03\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u91cd\u65b0\u6392\u5e03\uff0c\u652f\u6301\u529b\u5bfc\u5411\u5e03\u5c40\u3001\u540c\u5fc3\u5706\u5e03\u5c40\u3001\u5706\u5f62\u5e03\u5c40\u3001\u8f90\u5c04\u5e03\u5c40\u3001Dagre\u5e03\u5c40\u4ee5\u53ca\u7f51\u683c\u5e03\u5c40\uff0c\u6bcf\u79cd\u5e03\u5c40\u65b9\u5f0f\u5747\u6709\u4e0d\u540c\u5e03\u5c40\u53c2\u6570\uff0c\u8c03\u6574\u53c2\u6570\u540e\u753b\u5e03\u4e2d\u7684\u6570\u636e\u4f1a\u8fdb\u884c\u91cd\u65b0\u6392\u5e03\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5e03\u5c40\u6837\u5f0f-\u6309\u94ae",src:e(2213).A+"",width:"1832",height:"1326"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5e03\u5c40\u6837\u5f0f-\u5e03\u5c40\u53c2\u6570",src:e(661).A+"",width:"2040",height:"1248"})]}),"\n",(0,n.jsxs)(s.p,{children:["\u8be6\u7ec6\u5e03\u5c40\u53c2\u6570\u53ef\u53c2\u8003",(0,n.jsx)(s.a,{href:"https://g6.antv.antgroup.com/api/graph-layout/guide",children:"AntV-G6"}),"\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2447\u5916\u89c2\u6837\u5f0f",children:"2.4.4.7.\u5916\u89c2\u6837\u5f0f"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5916\u89c2"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u70b9\u6837\u5f0f"}),"\u6216",(0,n.jsx)(s.code,{children:"\u8fb9\u6837\u5f0f"}),"\u8fdb\u884c\u5916\u89c2\u6837\u5f0f\u914d\u7f6e\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u70b9\u6837\u5f0f\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5e94\u7528\u70b9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u6837\u5f0f\uff0c\u652f\u6301\u540c\u65f6\u914d\u7f6e\u591a\u4e2a\u70b9\u7c7b\u578b\u5916\u89c2\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5927\u5c0f\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u5927\u5c0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u989c\u8272\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u989c\u8272\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u56fe\u6807\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u56fe\u6807\u6837\u5f0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u663e\u793a\u6587\u672c\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u663e\u793a\u7684\u6587\u672c\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e3aid\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e\uff1a\u6839\u636e\u8bbe\u7f6e\u7684\u6761\u4ef6\u6807\u8bb0\u5bf9\u5e94\u7684\u70b9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u8fb9\u6837\u5f0f\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5e94\u7528\u8fb9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u5bf9\u5e94\u8fb9\u7c7b\u578b\u7684\u5c55\u793a\u6837\u5f0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u989c\u8272\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u989c\u8272\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8fb9\u5bbd\uff1a\u5bf9\u5e94\u8fb9\u7c7b\u578b\u7684\u5c55\u793a\u5bbd\u5ea6\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u663e\u793a\u6587\u672c\uff1a\u5bf9\u5e94\u8fb9\u7c7b\u578b\u663e\u793a\u7684\u6587\u672c\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e0d\u663e\u793a\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e\uff1a\u6839\u636e\u8bbe\u7f6e\u7684\u6761\u4ef6\u6309\u989c\u8272\u5c55\u793a\u5bf9\u5e94\u7684\u8fb9\u6570\u636e\uff0c\u652f\u6301\u540c\u65f6\u914d\u7f6e\u591a\u4e2a\u8fb9\u7c7b\u578b\u5916\u89c2\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5916\u89c2",src:e(7354).A+"",width:"1209",height:"1180"})}),"\n",(0,n.jsx)(s.h5,{id:"2448\u89c6\u56fe\u5207\u6362",children:"2.4.4.8.\u89c6\u56fe\u5207\u6362"}),"\n",(0,n.jsxs)(s.p,{children:["\u56fe\u5206\u6790\u4e2d\u652f\u63012D\u56fe\u8c31\u89c6\u56fe\u3001\u5217\u8868\u89c6\u56fe\u4ee5\u53caJSON\u89c6\u56fe\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-2D",src:e(2416).A+"",width:"1826",height:"1322"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-list",src:e(7688).A+"",width:"2046",height:"1374"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-json",src:e(5084).A+"",width:"1918",height:"1330"})]}),"\n",(0,n.jsx)(s.h5,{id:"2449\u6807\u7b7e\u5361\u7247\u5e03\u5c40\u5207\u6362",children:"2.4.4.9.\u6807\u7b7e/\u5361\u7247\u5e03\u5c40\u5207\u6362"}),"\n",(0,n.jsxs)(s.p,{children:["\u56fe\u5206\u6790\u652f\u6301\u6807\u7b7e\u5e03\u5c40\u548c\u5361\u7247\u5e03\u5c40\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6807\u7b7e",src:e(4122).A+"",width:"1453",height:"837"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5361\u7247",src:e(2118).A+"",width:"1496",height:"1250"})]}),"\n",(0,n.jsx)(s.h3,{id:"25\u63a7\u5236\u53f0",children:"2.5.\u63a7\u5236\u53f0"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u63a7\u5236\u53f0"}),"\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u7684\u8d26\u6237\u7ba1\u7406\u548c\u6570\u636e\u5e93\u4fe1\u606f\u67e5\u770b\u529f\u80fd\uff0c\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u5168\u9762\u7684\u8d26\u6237\u548c\u89d2\u8272\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u8d26\u6237\u7684\u589e\u5220\u6539\u67e5\u4ee5\u53ca\u7981\u7528\uff0c\u89d2\u8272\u7684\u589e\u5220\u6539\u67e5\u4ee5\u53ca\u7981\u7528\u3002\u6b64\u5916\uff0c\u5b83\u4e5f\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4fbf\u6377\u7684\u6570\u636e\u5e93\u4fe1\u606f\u67e5\u770b\u529f\u80fd\uff0c\u8ba9\u7528\u6237\u53ef\u4ee5\u8f7b\u677e\u5730\u67e5\u770b\u56fe\u6570\u636e\u5e93\u7684\u57fa\u7840\u4fe1\u606f\u548c\u914d\u7f6e\u4fe1\u606f\u3002\u5176\u4e2d\uff0c\u57fa\u7840\u4fe1\u606f\u4e3b\u8981\u5305\u62ec\u7248\u672c\u53f7\u3001\u8fd0\u884c\u65f6\u95f4\u3001CPP\u7f16\u8bd1\u7248\u672c\u53f7\u7b49\uff0c\u800c\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f\u5219\u5305\u62ec\u7aef\u53e3\u53f7\u3001\u7cfb\u7edf\u529f\u80fd\u53c2\u6570\u914d\u7f6e\u7b49\u3002"]}),"\n",(0,n.jsx)(s.h4,{id:"251\u8d26\u6237\u7ba1\u7406",children:"2.5.1.\u8d26\u6237\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h5,{id:"2511\u8d26\u6237\u7ba1\u7406",children:"2.5.1.1.\u8d26\u6237\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h6,{id:"a\u6dfb\u52a0\u8d26\u6237",children:"a.\u6dfb\u52a0\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u8d26\u6237\uff0c\u7528\u6237\u9700\u8981\u8f93\u5165\u8d26\u6237\u540d\u79f0\u3001\u8d26\u6237\u63cf\u8ff0\u3001\u8d26\u6237\u5bc6\u7801\u4ee5\u53ca\u76f8\u5173\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u6dfb\u52a0\u8d26\u6237\u6309\u94ae",src:e(8315).A+"",width:"1175",height:"399"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8d26\u6237\u540d\u79f0\uff1a\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u76f8\u5173\u89d2\u8272\uff1a\u65b0\u5efa\u8d26\u6237\u65f6\u5fc5\u987b\u8981\u9009\u62e9\u4e00\u4e2a\u89d2\u8272\uff0c\u5728\u8d26\u6237\u6dfb\u52a0\u6210\u529f\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u4e0e\u8d26\u6237\u540d\u79f0\u4e00\u6837\u7684\u89d2\u8272\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u6dfb\u52a0\u8d26\u6237",src:e(4064).A+"",width:"699",height:"618"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u7f16\u8f91\u8d26\u6237",children:"b.\u7f16\u8f91\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u8d26\u6237\uff0c\u7528\u6237\u53ef\u4ee5\u7f16\u8f91\u8d26\u6237\u63cf\u8ff0\u3001\u8d26\u6237\u5bc6\u7801\u4ee5\u53ca\u76f8\u5173\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u7f16\u8f91\u8d26\u6237",src:e(2289).A+"",width:"696",height:"623"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u7981\u7528\u8d26\u6237",children:"c.\u7981\u7528\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7981\u7528"}),"\u6309\u94ae\u7981\u6b62\u5bf9\u5e94\u7684\u8d26\u6237\u767b\u5f55\u548c\u8bbf\u95ee\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u542f\u7528"}),"\u6309\u94ae\u5f00\u542f\u5bf9\u5e94\u7684\u8d26\u6237\u767b\u5f55\u548c\u8bbf\u95ee\u6743\u9650\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u7981\u7528",src:e(7269).A+"",width:"1548",height:"80"}),"\n",(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u542f\u7528",src:e(544).A+"",width:"1545",height:"77"})]}),"\n",(0,n.jsx)(s.h6,{id:"d\u5220\u9664\u8d26\u6237",children:"d.\u5220\u9664\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u5220\u9664\u5bf9\u5e94\u7684\u8d26\u6237\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u5220\u9664",src:e(9020).A+"",width:"1550",height:"74"})}),"\n",(0,n.jsx)(s.h5,{id:"2512\u89d2\u8272\u7ba1\u7406",children:"2.5.1.2.\u89d2\u8272\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h6,{id:"a\u6dfb\u52a0\u89d2\u8272",children:"a.\u6dfb\u52a0\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u89d2\u8272\uff0c\u7528\u6237\u9700\u8981\u8f93\u5165\u89d2\u8272\u540d\u79f0\u3001\u89d2\u8272\u63cf\u8ff0\u4ee5\u53ca\u56fe\u6743\u9650\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u6dfb\u52a0\u89d2\u8272\u6309\u94ae",src:e(9956).A+"",width:"1188",height:"406"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u89d2\u8272\u540d\u79f0\uff1a\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u56fe\u6743\u9650\uff1abrowser\u652f\u6301\u5168\u90e8\u3001\u8bfb\u3001\u5199\u548c\u65e0\u5171\u56db\u7c7b\u56fe\u6743\u9650\u914d\u7f6e\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5168\u90e8\uff1a\u5bf9\u5e94\u56fe\u7684\u8bfb\u548c\u5199\u6743\u9650\uff0c\u5305\u542b\u7f16\u8f91\u56fe\u6a21\u578b\u6743\u9650\uff08schema\uff09\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8bfb\u5199\uff1a\u5bf9\u5e94\u56fe\u7684\u5199\u6743\u9650\uff0c\u4e0d\u5305\u542b\u7f16\u8f91\u56fe\u6a21\u578b\u6743\u9650\uff08schema\uff09\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u53ea\u8bfb\uff1a\u5bf9\u5e94\u56fe\u7684\u8bfb\u6743\u9650\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u65e0\uff1a\u65e0\u6cd5\u8bbf\u95ee\u548c\u64cd\u4f5c\u5bf9\u5e94\u56fe\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"\u89d2\u8272\u51b2\u7a81\uff1a\u5f53\u4e24\u4e2a\u89d2\u8272\u5bf9\u540c\u4e00\u4e2a\u56fe\u6709\u4e0d\u540c\u56fe\u6743\u9650\uff0c\u540c\u65f6\u5bf9\u4e00\u4e2a\u8d26\u6237\u6388\u6743\u4e86\u8fd9\u4e24\u4e2a\u89d2\u8272\uff0c\u8be5\u8d26\u6237\u5bf9\u8be5\u56fe\u7684\u56fe\u6743\u9650\u4e3a\u4e24\u4e2a\u89d2\u8272\u7684\u5e76\u96c6\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u6dfb\u52a0\u89d2\u8272",src:e(873).A+"",width:"693",height:"802"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u7f16\u8f91\u89d2\u8272",children:"b.\u7f16\u8f91\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7f16\u8f91"}),"\u6309\u94ae\u7f16\u8f91\u5df2\u6709\u89d2\u8272\uff0c\u7528\u6237\u53ef\u4ee5\u7f16\u8f91\u89d2\u8272\u63cf\u8ff0\u4ee5\u53ca\u56fe\u6743\u9650\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u7f16\u8f91\u89d2\u8272",src:e(222).A+"",width:"689",height:"802"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u7981\u7528\u89d2\u8272",children:"c.\u7981\u7528\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7981\u7528"}),"\u6309\u94ae\u7981\u6b62\u5bf9\u5e94\u7684\u89d2\u8272\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u542f\u7528"}),"\u6309\u94ae\u5f00\u542f\u5bf9\u5e94\u7684\u89d2\u8272\u3002\u7981\u7528\u89d2\u8272\u540e\uff0c\u5bf9\u5e94\u89d2\u8272\u56fe\u8bbf\u95ee\u6743\u9650\u5931\u6548\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7981\u7528\u89d2\u8272\uff1a\u7981\u7528\u4e4b\u540e\uff0c\u5bf9\u5e94\u89d2\u8272\u56fe\u8bbf\u95ee\u6743\u9650\u5931\u6548\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5f53\u4e00\u4e2a\u7528\u6237\u62e5\u6709\u4e24\u4e2a\u89d2\u8272\u5bf9\u540c\u4e00\u4e2a\u56fe\u6709\u64cd\u4f5c\u6743\u9650\u65f6\uff0c\u5f53\u7981\u7528\u5176\u4e2d\u4e00\u4e2a\u89d2\u8272\u65f6\uff0c\u53e6\u4e00\u4e2a\u89d2\u8272\u6743\u9650\u540c\u6837\u6709\u6548\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u7981\u7528",src:e(1892).A+"",width:"1555",height:"85"}),"\n",(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u542f\u7528",src:e(1295).A+"",width:"1552",height:"88"})]}),"\n",(0,n.jsx)(s.h6,{id:"d\u5220\u9664\u89d2\u8272",children:"d.\u5220\u9664\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u5220\u9664\u5bf9\u5e94\u7684\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u5220\u9664",src:e(3075).A+"",width:"1548",height:"82"})}),"\n",(0,n.jsx)(s.h4,{id:"252\u6570\u636e\u5e93\u4fe1\u606f",children:"2.5.2.\u6570\u636e\u5e93\u4fe1\u606f"}),"\n",(0,n.jsx)(s.h5,{id:"2521\u57fa\u7840\u4fe1\u606f",children:"2.5.2.1.\u57fa\u7840\u4fe1\u606f"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u57fa\u7840\u4fe1\u606f"}),"\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u7684\u72b6\u6001\uff0c\u5e76\u5c55\u793a\u5173\u952e\u4fe1\u606f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5e93\u4fe1\u606f-\u57fa\u7840\u4fe1\u606f",src:e(8298).A+"",width:"2406",height:"530"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"\u53c2\u6570"}),(0,n.jsx)(s.th,{children:"\u542b\u4e49"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"TuGraph\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u5f53\u524dTuGraph\u7684\u7248\u672c\u53f7\uff0cx.x.x"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u8fd0\u884c\u65f6\u95f4"}),(0,n.jsx)(s.td,{children:"TuGraph\u670d\u52a1\u542f\u52a8\u5230\u73b0\u5728\u7684\u65f6\u95f4"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u7248\u672c"}),(0,n.jsx)(s.td,{children:"tugraph-db\u4ed3\u5e93\u7684\u5f53\u524dcommit"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u524d\u7aef\u4ee3\u7801\u7248\u672c"}),(0,n.jsx)(s.td,{children:"tugraph-web\u4ed3\u5e93\u7684\u5f53\u524dcommit"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"CPP\u7f16\u8bd1\u5668\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684CPP\u7248\u672c\u53f7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Python\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684Python\u7248\u672c\u53f7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"CPP\u7f16\u8bd1\u5668ID"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684CPP\u7c7b\u578b"})]})]})]}),"\n",(0,n.jsx)(s.p,{children:"\u4e5f\u53ef\u4ee5\u901a\u8fc7\u547d\u4ee4\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u72b6\u6001\u3002"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"CALL dbms.system.info()\n"})}),"\n",(0,n.jsx)(s.h5,{id:"2522\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",children:"2.5.2.2.\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u7684\u914d\u7f6e\u53c2\u6570\uff0c\u5e76\u5c55\u793a\u5173\u952e\u4fe1\u606f\u3002\u8c03\u6574\u914d\u7f6e\u53c2\u6570\u6216\u4e86\u89e3\u8be6\u7ec6\u914d\u7f6e\u53c2\u6570\u8bf7\u53c2\u8003",(0,n.jsx)(s.a,{href:"/tugraph-db/zh-CN/source/installation&running/tugraph-running",children:"\u6570\u636e\u5e93\u8fd0\u884c-\u670d\u52a1\u914d\u7f6e"}),"\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5e93\u4fe1\u606f-\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",src:e(6610).A+"",width:"2406",height:"944"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"\u53c2\u6570"}),(0,n.jsx)(s.th,{children:"\u542b\u4e49"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"bind_host"}),(0,n.jsx)(s.td,{children:"\u7cfb\u7edf\u542f\u52a8\u65f6\u8bbe\u7f6e\u7684host\uff0c\u4e00\u822c\u4e3a0.0.0.0"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"browser.credential_timeout"}),(0,n.jsx)(s.td,{children:"\u6d4f\u89c8\u5668\u7f13\u5b58\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u8fc7\u671f\u65f6\u95f4"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"browser.retain_connection_credentials"}),(0,n.jsx)(s.td,{children:"\u6d4f\u89c8\u5668\u662f\u5426\u7f13\u5b58\u7528\u6237\u540d\u548c\u5bc6\u7801"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"disable_auth"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5173\u95edtoken\u8ba4\u8bc1\u7684\u5b9a\u671f\u66f4\u65b0\uff0c\u5982\u4e3atrue\u5219token\u53ef\u4ee5\u6c38\u4e45\u4f7f\u7528"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"durable"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5b58\u50a8\u5e95\u5c42\u6301\u4e45\u5316\uff0c\u5982\u4e3afalse\uff0c\u6570\u636e\u5f02\u6b65\u66f4\u65b0\u5230\u78c1\u76d8"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_audit_log"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5ba1\u8ba1\u65e5\u5fd7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_backup_log"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5b9e\u65f6\u589e\u91cf\u5907\u4efd"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_fulltext_index"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5168\u6587\u7d22\u5f15"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ha"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u9ad8\u53ef\u7528"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ip_check"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fIP\u767d\u540d\u5355"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_rpc"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fRPC\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ssl"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fssl\u52a0\u5bc6\u4f20\u8f93"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"optimistic_txn"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u4e50\u89c2\u591a\u7ebf\u7a0b\u5199\u5165\u4e8b\u52a1"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"port"}),(0,n.jsx)(s.td,{children:"\u5f53\u524d\u7cfb\u7edf\u7684REST\u8bbf\u95ee\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"rpc_port"}),(0,n.jsx)(s.td,{children:"RPC \u53ca HA \u670d\u52a1\u6240\u7528\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"subprocess_max_idle_seconds"}),(0,n.jsx)(s.td,{children:"\u81ea\u8fdb\u7a0b\u6700\u5927\u7a7a\u95f2\u65f6\u95f4\uff0c\u7ebf\u7a0b\u6c60\u53c2\u6570"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"thread_limit"}),(0,n.jsx)(s.td,{children:"\u670d\u52a1\u7aef\u540c\u65f6\u4f7f\u7528\u7684\u6700\u5927\u7ebf\u7a0b\u6570"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"verbose"}),(0,n.jsx)(s.td,{children:"\u65e5\u5fd7\u8f93\u51fa\u4fe1\u606f\u7684\u8be6\u7ec6\u7a0b\u5ea6\u3002\u53ef\u8bbe\u4e3a 0\uff0c1\uff0c2\uff0c\u503c\u8d8a\u5927\u5219\u8f93\u51fa\u4fe1\u606f\u8d8a\u8be6\u7ec6"})]})]})]})]})}function g(A={}){const{wrapper:s}={...(0,i.R)(),...A.components};return s?(0,n.jsx)(s,{...A,children:(0,n.jsx)(x,{...A})}):x(A)}},8315:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-add-button-683250813410981afa36089239b2bb3b.png"},4064:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-add-be840e6001b8e71242a6856550e25c5a.png"},9020:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABg4AAABKCAYAAABjNK/oAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAx0SURBVHhe7d1BjttGFgbgHGMu4HP4KlkOjKxmn8kJAgTudS5gIOgDGFln0RufwWh47bUTmyFZpFgk60mUmi2Lze8BHyyLZKkk0aD4fkr+oVJKKaWUUkoppZRSSimllOpKcKCUUkoppZRSSimllFJKqUMJDpRSSimllFJKKaWUUkopdagwOPj8+TMAAAAAAPBCRRUGB1++fAEAAAAAAF6oqAQHAAAAAACwQ1EJDgAAAAAAYIeiEhwAAAAAAMAORSU4AAAAAACAHYpKcAAAAAAAADsUleAAAAAAAAB2KCrBAQAAAAAA7FBUggMAAAAAANihqAQHAAAAAACwQ1EJDgAAAAAAYIeiEhwAAAAAAMAORSU4AAAAAACAHYpKcAAAAAAAADsUleAAAAAAAAB2KCrBAQAAAAAA7FBUggMAAAAAANihqAQHAAAAAACwQ1EJDgAAAAAAYIeiEhwAAAAAAGzE3+/fV19//nkTmrmWngO3IyrBAQAAAADARjQN+eqHHzahmWvpOXA7oqrfwXKVBgEAAAAA4Pvpg4Ovr18fruy/OfXcBAfbEJXgAAAAAABgI5pm/K035bcwR5KoBAcAAAAAABshOGBNUQkOAAAAAAA2QnDAmqISHAAAAAAAz+Lxz6r6z2/fqr8Ky758+Vr9+ltV/fqhtIyI4IA1RSU4gAt8un9T3T2Ulx33UN29etVt+6m6/+mueiiuN/FwV7161azbbL9wGwAAAIDv6p/q3e9V9eOf/xSW1R7r5X8cCxYGfzXr/fG1uOxZPH6rfvytqt49FpY1PnxbNO/nsE5T/oLQpntNwvczIzjYjqgEB2xL20B/db6f7qtPTx3j1Zvq/mMaowkOmvuGAKC0fq173Ie39e23D/W60+BgWGf0PKf64OBjvU0zVjYXAAAAgJs0aa6nbx8sM25OpwBi1OTumtilbQ+eEjQ8MThog47pfBY4vymfXpt8jHbO7fyy+2evRR4czMdojJ97vs7pwERwsB1R7Sw4aBq1pxuuTZP35NXkH++rN0savqzrcOX9dFnekB9rm/wL36u2wb9w3RQeNPtTCgDe3H+aLz8aHDTS39OyYduZyfNuxps+HgAAANuzZg9i0VhwNanRnDfC2+Dg92/V42i9qfl2xSb+icb+Jd9QOBVsvPtwIqzInlv4+GHgUHjegVJwkAKAFAYcgoNuPu3z6uYyzGseHBweuzDH4Sen0rqnXlvBwXZEdfXgYGiglpdfrDmIHrsKu11+6krtrokbNKB7/dXmSxvMrOiGgoM+iLp7eHhCcFDr9s2jH+7C5w0AAMCTnOonPMHxHsiaPYhlY8FVZY3rvhH97szg4Fgj/2QTv3FmcDDomuP1GMVgIvu2Q9To33JwMJ37EBqkv/fbHpur4GA7otpBcDAcPJPSOt1PxmTrFQ+0bfM2W09wcH03FRz0sm8cZPvh4uDgYLqvnuYDIQAAwBNdPThYswexcCy4unlTumlEHwsCpoamdNBQf4ZvHCTd3P/Mgok87Ogft17ehyGlBvp2g4NsjObxsnHyOfSvQzRfwcF2RPXyg4P8/hPhQjq4LmtAn9OMZkW3EBzM5rBWcHBE+LwBAAB4kqsHB2v2IJaNBVeXXZHfaxrRbQP7jG8ctH/vG/Ufmj9LDfcVtU39rpmeBxPN7Wbe3fJDY76bz/yK/A0HB9Ptmvvr9fL3cqbwPAUH2xHV9YKDaVLeGjdC2wNqtnx6sGsPlNnydNCcp+uN4u+/L/owsOxAe04zmhUV96MFFr5Xi4KDWtpX+33pkuBgvN8W99ec4AAAAGBlp/sJ0z7E/NwtnePl67T9hAU9kHz7dXoQggNuUWpI943lZcHB2GGbtpHfN9xT07vYxJ4qNe9L8qBgyd+nAUC3PDXiuwZ98/hn+t7BQbN8GiAMj50FDNn97ZiTdQUH2xHVjXzjoDtY5wfB7iDbH/DSwXpylffbbP0loYDgYPvCBnr8vg3vVflD4bn6D4rTcc8LDvr5Zdt28y1qxxUcAAAArC7oFaQLxrLzsHa9/Pwtnd+Nzufqc9b8vLTcA8mt2YNYNhZcVdtcH5rtfQjwaxMmdI3yUNvczhrVo+CgkTe+p8oN7msaGvSTZdPA4WD5nJ8vOPja/jkPDHqXzrG8DrchqtsIDtpmcHCQnjVex+scLAkFlqyz6kGb1T0pOJgvm8r3udLysrWCgzjYuLtfsu8CAABwtlKvoAsJpueY7Xlef066oMdwspchOOBFS03mvHmeBwdDo7tromeN7kNzO7/K/2rBQRq3GGYcMZ3HVYKD//4ym8dx9Wt/NDioH3vyzYkxwcFLFNVNBAfRgTQ/IKfbR67MXhIKLFlHcHDbXnRwkI05e57Ndqf2XQDotMeR+tiTCT9DAcDeFXoF4Xnk6MLHdH5XPkdNBAfsWRsSTBrk6cr3b23zeVFw0DbZm3Gmmm1ON/gvCw7Wsc1vHKTHbtept/2rfQ+XmD8fwcF2RHUDwUF8lXWSHYDzk+DpAVNwsA+3FBw0c2n35WlwkOa3bnCQ1vMBEAAAYGWFXkF7Dtf3H2bydcc9jek5m+CA/UqN6FFz+fdv1bu2aX1GcJCP6aeKDp47OFh/juV1uA1R3fQ3DmLpYDhqrAoOdqF93dv3/kzPEBykuTT74ND8z/eL/Pawjx8LDurb992/g0JA0ozhalEAAICVFXoFl5zz9+er+Xnb6X6H4IA96ZvO3e/o94FC5OrBQdqmOJczpP/P4fKxLg0O0uNOgoPuNXxacNCs19/O16vv74KJfl45wcF2RHUTwUE6uI6bpCdND+yCg12IG/vx+3bOexWPP5U3/Mf3lfblYb+Pg4PRv41CcNA+j8O/ndLjAwAAcLZSr6A9JzvVP5ib9jymf58THLAjh9/OT83n4Qr5rimdXSFfulo//fTR4N1janzn902dFxycMmmuH5XmVlx39av502NNg4M8LDg3OGjXL3xbYbRe8/rXt6fvU09wsB1RXT04KIcE6eA2OwjWB+r+gPfwttBEHY2TxjjaSBUcbFzXmC9+6Irft3Peq+XBQeHxug+Wb4LwIJlu14cNjWzfLAQH4/sEBwAAAOso9RP6c7XJednH++quXy+/3ZqPU+6B5OJz2dyy89plY8FVdWHB0MxvGubLg4P2z27bH/+48k8VtQ3+viHfGI+Z5lYKAGrH/oPhtYOD0TcxhuCgmd8oCJg1+OfBwfA+dfd3zyN6DfoxSnMWHGxHVFcPDvoDWWqU5gfPvIHayQ6KbUM3X1Y48KYDclpebKgKDratbZxH7038vj1LcDBt7Lf71rDfpf219OFwOs9hvx/NvXuuB+2c8m3TduXXAgAAgHNE/YSjvYjuPDBfPu9FRD2Q8fJT53aCAzanDwwOP2XTNabb5nW6vSQ4mI95heCgn3v7WP9Uj2HTPF83b66fCBVWDg7ybwcMwUH+Gi8PDsaPXQoFCuvNApZEcLAdUX2H4AAu0TXYww9K8QekYx+w8g+HvSUfstoPj903H/oxph8Qy+HBZJ6jwCH/QFn6wNk/VjNms+75X5sFAAAAuLpRczlval8WHLSN8Hq8RQ5N9VPSvMKGf7GR3ukChHZZfnu6XmPV4OD/h21SWNE938ljXBQcNGME20zn2Iw/vU9wsB1RCQ7YiFON8rwhP//2yrpXXAxX+w+N/Hi9N/cP4/nkIUYTHJy8amTsEHacuR0AAADA95D/bM44OJiv1zf8Z8uz4GB0f9HyJvwp+ZziUCGTBSDh8n6c7BsLi8evHZry//ul+JocXu/2sdLYeUAwf7zjr9c4qDlzjoKDmxeV4AAAAAAAYCO20JQXHGxHVIIDAAAAAICNEBywpqgEBwAAAAAAGyE4YE1RCQ4AAAAAADbi0JR//bq9fZPquQkOtiEqwQEAAAAAwEY0zfimKb8FgoPbF1X9DparNAgAAAAAAN/P3+/fD1f237hmrqXnwO2ISnAAAAAAAAA7FJXgAAAAAAAAdigqwQEAAAAAAOxQVIIDAAAAAADYoagEBwAAAAAAsENRCQ4AAAAAAGCHohIcAAAAAADADkUlOAAAAAAAgB2KSnAAAAAAAAA7FJXgAAAAAAAAdigqwQEAAAAAAOxQVIIDAAAAAADYoagEBwAAAAAAsENRCQ4AAAAAAGCHohIcAAAAAADADkUlOAAAAAAAgB2KSnAAAAAAAAA7FJXgAAAAAAAAdigqwQEAAAAAAOxQVGFw8PnzZwAAAAAA4IWKKgwOlFJKKaWUUkoppZRSSim1t6qqfwH800k+WMFIEAAAAABJRU5ErkJggg=="},7269:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},2289:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-edit-1950aa50b4b758c617286b1bc6564d9c.png"},544:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgkAAABNCAYAAACc7YQpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAxbSURBVHhe7d1PjptmGAfgHqMXyDlyla6jXqFHiFRl1r1ApGoOEHXdxWx6hmiUddZpEwp8YD5ePmz8ZzzGPD/pUSdjwNgmwrw/O/2pEhERERERERERERGRTUZJICIiIiIiIiIiIiKy0SgJREREREREREREREQ2mlFJ8PXrVwAAAAAA4E7FjEqCb9++AQAAAAAAdypGSQAAAAAAABsRoyQAAAAAAICNiFESAAAAAADARsQoCQAAAAAAYCNilAQAAAAAALARMUoCAAAAAADYiBglAQAAAAAAbESMkgAAAAAAADYiRkkAAAAAAAAbEaMkAAAAAACAjYhREgAAAAAAwEbEKAkAAAAAAGAjYpQEAAAAAACwETFKAgAAAAAA2IgYJQEAAAAAAGxEjJIAAAAAAAA2IkZJAAAAAAAAGxGjJAAAAAAA7tK/nz5V33/7bbWa/S89LjhHjJIAAAAAALhLzaC9+umn1Wr2v/S44Bwx9dE2pLQCAAAAAMAa9SXB97dvd5/OX4V6f5UEvJQYJQEAAAAAcJeaIfsah+1r3W/WIUZJAAAAAADcJSUBTMUoCQAAAACAu6QkgKkYJQEAAAAAcJeUBDAVoyQAAAAAAC7m+a+q+vn3H9Xfhdu+fftevf+9qt7/U7rt8pQEMBWjJICFvjy+qx6eyrft91Q9vHnTrfulevz1oXoqLhc8PVRv3jTLNusvXAcAAADgVf1Xffyjqn7567/CbbXn+vY/95UIg7+b5f78XrxtqbOG7f/8qH7+40f1XLrthb1MSXBCQfP8o/qlXmf29WSVYpQE3L52WP7meL8+Vl/O3cabd9Xj57SNpiRofjcM+0vL17r7ffpQ//zhqV42lgTDMqPHGfUlwed6nWZb2b4AAAAA3KRmsJ4VAOlbBcuMB9GpbBgNtLuBdWndnVAqnDNsf67vrxmqLy0q2lIj7s8CpQH8/v1Oz02+jY/P9e/b5z77/WS/85Jguo1Gu53i/RwudViPmA2UBM1Q9vBwtRnoHvyU+OfH6t2S4S6XtftEfbwtH76PtQP9ha9VO8xfuGwqCprjKQ373z1+md6+tyRopD+n24Z1J8LjbrYX7w8AAID1ueQMYtG24GrSUDkferclwcFP40/X6wuB0dC69LtM6ZsHi0qCOFw/Qr4vs998CMXJoPC4O0tKgjTsT4P/XUnQPdft897ty7Bf05Jgd9+FfRz+2ai0bPGxsUoxVykJhmFp+faTNSfMfZ+ubm8/9AnsbmA7M2zu9Z8iXzpM5oJuqCToS6eHp6czSoJad2zufSM3+7gBAAA4y6F5whn2z0AuOYNYti24qmxI3Q+dPx5ZEuz75sHHepsv8k2CwoD8oEJhseaSIO77UBCkP/frlvaV9Ym505JgOFEmpWW6f/YlW654Um0HtdlySoLru6mSoJd9kyA7DheXBDvxWD3Mmz8AAIAzXb0kuOQMYuG24OqmA+hm6Lxv6B8NA+iZ4fmLfpNgyyVBto1m+9l2RvfbPWZFwfrF3GdJkP/+QJGQTqTLhs3HDJ65oFsoCSb7cKmSYI/Zxw0AAMBZrl4SXHIGsWxbcHXdADkf+jdD53ZYfcQ3Cdo/9wP4f5r/Hjm8D5QEC0qCuF7z+3q5/LWcKD1OViPmZUuC2IC3xkPP9uSZ3R5PbO1JMbs9nSCnrXmj+O+1LzrxLzupHjN45oKKx9ECC1+rRSVBLR2r/bF0SkkwPm6Lx2tOSQAAAHBhh+cJcQ4xvXZL13j5Mu08YcEMJF//MjMIJQG3KA2f+yHyspJgbLdOO4jvh+tpwF0cWEfZAHt5SVDYzgKTkqCwzCGvXRI0t8eyIN5X3Md2m0e+rtyOmFf8JkF3Ys5PeN0JtT+5pRNz+PT2h2z5JQWAkmD9Zofl86/b8FqV3wAeq39TGLd7XEnQ71+2bre/Re12lQQAAAAXNzMrSB8Oy67D2uXy67d0fTe6nquvWfPr0vIMJHfJGcSybcFVdQP3fnjeD/zfN8VBNxSf1Q6ys6H0qCRo5EPuqDzMXl4SbPWbBN/b/84P/Of3kfWKeb2SoB38zpyQJ0PW8TI7SwqAJctc9ATNxZ1VEkxvi/JjrnR72aVKgvkS4+FxybELAADA0Uqzgq4QiNeY7XVef026YMZwcJahJOCupYFyPijPS4JhqN0NzLOh9m6QnQ/fb7kkKLhKSdBuq76fxernfm9JUN9395wf87yybjGvVhLMnTTzk2/6ec8nrpcUAEuWURLctrsuCbJtTh5ns96hYxcAOu15pD73ZGbfQwHA1hVmBbPXkaMPOabru/I1aqIkYMvaQiAMw9Mn2n+0g+ZFJcHsELxZJw25y7cnd18StNJ6w/N53j83tFumXvfv9jVc4vzni9cT80olwfynp5PsZJtf8MaTo5JgG26pJGj2pT2WY0mQ9u+yJUFazps9AACACyvMCtpruH7+MJEvO55pxGs2JQHblYbOo0HyHz+qj+2A+oiSIN/mNb9JkA/X88ew13hQvuaS4JR9ZL1ibu6bBPPSiW80RFUSbEL7vLev/ZFeoCRI+9Icg8OgPz8u8p+HY3xfSVD//Nj9PSiUIc02fAoUAADgwgqzglOu+fvr1fy67fC8Q0nAlvQD5u7fvR8N2AteqSRoB+r5cL37ubTszmSonu6/+LgOOLUkSP8/hFASdM/heSVBs1z/c75c/fslzw03L+bVSoJ0Ih0PRA+KJ3ElwSbMD/HnX7djXqv57Uf5cH/8u9KxPBz38yXB6O9GoSRoH8fu707p/gEAADhaaVbQXpMdmh9MxZlH/POUkoAN2f1b92nQPHzyvRtAZ598L30KP36q/+NzGnLnv4tOKQny+z69JEj7Vhr4T5fthUF9Zv9+p/uKJUFeDBxbEuSPO193tFzz/Nc/D7exVjFXKQnKhUA6kU1OePVJuT+5PX0oDExH20nb2Ds0VRKsXDeEL77Bmn/djnmtlpcEhfvr3kS+mykKkrheXyw0smOzUBKMf6ckAAAAuIzSPKG/VgvXZZ8fq4d+ufzn1nQ75RlIbv5aNrfsunbZtuCqumJgGNw3w/HlJUH7327dX/68xjcJxts8uSTY9z//vXRJMPqGRdr/piRonrvR0H8yzM8fa7rv4XXqft89jlRADMsN+5i2Udpn1iPmKiVBf9JKQ9H8RJkPSzvZCbAd3ua3FU6y6eSbbi8OT5UE69YOyedem/nX7UVKgjjEb4+t4bhLx2vpjWDcz+G4H+1791h32n3K103rlZ8LAAAAjjE3T9g7i+iuA/Pbp7OIuRnI+PZD13ZKAlanLwd2A/ZuCN0OqtPPaTjdDJnnS4LpNl+4JAgD/FNLglRu5PuauXBJMN7HviTIn+PlJcH4vksFQGG59vHkRQJrE3OlkgBO0Q3TZ98Uzb8Z2vdmKn8j2Fvyhqp9o9h9o6HfRnwzWC4Kwn6OyoX8zWPpzWV/X802m2WP/+orAAAAwNWNBsn5APu0kqAdetfbWyQb8u8vCdJ+5fd71P30j6MrSErD/tZFS4Jhnd23LprHG+7jpJKg2cbMOnEfm+3PPl5uXoySgBt2aCieD9+n30q57Ccphk/xD0P7+eXePT6N9ycvLJqS4OCnQcZ2xcaR6wEAAAC8hvyfvhmXBNPl+qH75PbJNwn2KQ/c95YEhe23w/Vjv0mQlR0Hl+0KhUnREMzu98xzsnu+2/vKn8/0vEzvr/x89cZlSXkfWa8YJQEAAAAAcJf2lgQ3bK37zTrEKAkAAAAAgLukJICpGCUBAAAAAHCXlAQwFaMkAAAAAADukpIApmKUBAAAAADAXVISwFSMkgAAAAAAuEtKApiKURIAAAAAAHdJSQBTMUoCAAAAAOAu7Ybtb9+2P69Gvb9KAl5KjJIAAAAAALhLzZC9GbavlZKAlxBTH21DSisAAAAAAKzRv58+DZ/OX6Fm/0uPC84RoyQAAAAAAICNiFESAAAAAADARsQoCQAAAAAAYCNilAQAAAAAALARMUoCAAAAAADYiBglAQAAAAAAbESMkgAAAAAAADYiRkkAAAAAAAAbEaMkAAAAAACAjYhREgAAAAAAwEbEKAkAAAAAAGAjYpQEAAAAAACwETFKAgAAAAAA2IgYJQEAAAAAAGxEjJIAAAAAAAA2ImZUEnz9+hUAAAAAALhTMaOSQEREREREREREREREthMlgYiIiIiIiIiIiIjIRqMkEBERERERERERERHZaJQEIiIiIiIiIiIiIiKbTFX9DwbQaQMZnQkAAAAAAElFTkSuQmCC"},8298:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/db_basic-dc1066458d3d42de4aced1c7b8144673.png"},6610:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/db_configuration-a88b7309b68405887b1a288ba889fa1c.png"},2576:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-button-855a294366b4ee1119025db0f065257a.png"},8628:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-center-135a2a82ee9cc2fe800925109d392fc2.png"},5080:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-clear-7f6caa6d9ef38c8abb3575c5b548a464.png"},6938:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-collapse-c21a138871b822da899d95ad0c1baa65.png"},8014:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-delete-be5cdd2ce769f082834a26e0cdb0aed9.png"},4426:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-after-a910929725d5cdfb42f61a0f59c069ec.png"},8199:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-before-58f5b97437ee1a585f2c27d5e00c771e.png"},8999:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-1ddcc096d3711c46421094dae76b5729.png"},6171:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-legend-chart-1eaf61d2a88497f793e73302af33d1bf.png"},6283:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-legend-list-aadc8ef90347771d32531cbcb3d4a0e9.png"},171:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-retrieval-627cf4590f0ae8471b910266591dd68d.png"},7038:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-zoom-7a196209fc075eac58133db0b8ab00c6.png"},2118:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-card-4db4fd6f24ffc6083a05ecbf0ce0c276.png"},3355:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-operation-area-02c651380d565f7614eefea76b6a0e42.png"},7869:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-attributefilter-299748df1e431a7cb8a79e6402bd0bb0.png"},243:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-configurequery-a64b68a8f008e19d792a6c48f153d460.png"},5615:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-query-30010e88b7815589917266b31fb94e6e.png"},8371:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-statisticalfilter-chartswitch-732f211f09d7a70e01c7b220b2f4daf2.png"},9288:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-statisticalfilter-1efba6f11b16b0e9a8908f71e33e7730.png"},7354:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-appearance-330e9eccab92995ad9d00e4a450d5dce.png"},2213:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-layout-button-e3d4d8fe31188f4efc97181306e92c2c.png"},661:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-layout-parameters-868f9ae4cabfc6e7129946b003dbe0b1.png"},4122:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-tag-591f29b0662d2cc8a639eec19fbb343c.png"},2416:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-2D-47bd08ad54434bc4cc0f611a5d7f4159.png"},5084:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-json-bbb80ca39f95c215289d611eef5bad28.png"},7688:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-list-1f8c26fd94eff4ce66e4fbc7058c0740.png"},8341:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addedge-button-e43520dabc74086da68727e0b46f6566.png"},6314:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addedge-d67971b25c2b65660ca03870725aed1c.png"},446:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addvertex-button-f7f92dd1692cf3dfe76976d5b2a7df10.png"},5131:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addvertex-b36fb3cb480a229f2ae132b4c0f6d5fa.png"},1270:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-button-286535ad0da868e4de57d8bbe00d1133.png"},3553:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-dataimport-7bac0ba5aa6ff6ffa5a7dc4ba86d9883.png"},6537:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-editedge-4027fc7f32b0b7bfa58e8c0e7bdf752e.png"},7572:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-editvertex-68735f4833c4cc6a681f8016169be69f.png"},3056:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6605:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-exportmodel-a64ae5c9d99160d12eee76950b25541e.png"},3034:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-csv-c7ce18e6226804ce059b39ec4e9e8d64.png"},2184:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-datamapping-549be862085a921489324ce1197308a6.png"},8247:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},857:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-3540ce84c6831833796008344dfd4fdc.png"},2349:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5522:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-importmodel-87a1ba2b08d64920445486c4caedca40.png"},3514:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-list-copy-f5d6fc9da40ba43cdcd95427d70570ed.png"},2240:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAC7CAYAAAC+cYF4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABYzSURBVHhe7Z3NbxxHesb3r9A/4VN820MA33wJjL1EyEFG4BgBslKAhbxBAi8CaxkEjpCDhWCjZew1sgiiIEEkBzC12I0cJNKuw0hemYYEQ7QTWJZkwdYHV7RFckiKpFippz56qnqqu6u7p4Y9088PeNBTXV89o36ffqt7qPmWIL1mf1+Ip0+F2NsTYmc3p9A+V6wP77divaDBkAyYzZ40m115YlDUOESDIR7KZOSJYa9A+SsSyyzXKdNgyAiuyTxxTxiWWa5ZpsGQIE+lyeBkebJjtlYss1yjTIMhhQRv/FJUDdFgSCF4upRdkbjltsGWBkMKwb2Y0FWJomJFgyGlbO/sS3HLbbMtDYaUolJdK3lFYpnlOmUaDClFX40oqploMKQU78rELbc1tzQYUop7NcJJE9qynvVF9TQYUop7AlFUXdFgSClbT/aluOW22ZYGQ0rZlieJd1VimeUaZRpMAnZ3d8Xm5qbY2NgQa2trI8J+1KNd18FVCCcNt5Pfbgx2xeo3m+LR6oZ4+Js1sSLlbrEf9WgXM95BbGkwY2Rvb08MBoOgqRQJ7dGvq7hXI2oyGmztSeMYiJVH0kwihfboFxrvINUJg3nnT4U4dc0UynggxEvfEeKqKSpkv0Oyv6zyOJVvV5fQXCUgGwkZSKy6ms1sbu9nwrr64Mv3xMLcSbHwRbj+g7eOi7mFe057v16/xhjHxfyHbv01MX9Mj+u2x3jzV4flYfvY8nDcmPZrGzvi4cpjrd+YbY0y+peNP+lyZwzmkAzmImXmI4P+lGmb7csbDMro93dyn+M6V2XZHXNEst4bq4bBIAMJmUZddTGTQarbNd0+f1IcnXtP3A7U/RoGc/7+yH5f92U7Ocax4+LoW9fNvuvKCM7ftW1QlvXHfir3DcdTc6v9BcJx3X1PzMl+vw6OW6yNzT219GkrjBMa/yA0XRmM4cHPHCPIGQwyl7KxvLlyfZsaTN1lUZEwTtfY3NYnyqY5YbpRvq8yEBhJvl5lMNjvtc/3N2VlBDr4N40RLHyh6zEOzKeofzYPyo6hjJbNuMZgisZD+dHXA5mJ5AyjQRnjBN/vAZSn0mA88iZRwbgNJmpp9PWW+Ohf9sWz398TN0P1jrq2VMJJ0kl9+FOTxdhMo0IFGc9Q8ZkG5GVKXsaSL8eNuz7Y9Y1iRFfEj5z386P3Q22GwniheSatiRtM1XIoLxvgyExC9ZXC0seYRbDe0TtuZhRpMHgaFDIKrYFY/sVT8fKLZo4Ig8F4XSK7Ik3FVmc28x/6+9WyxiyFVGbiBGq8YBhxZjZ/PpDBmMwofNzIXja1OdiMxNveFOdOHBcnzt3U5U/PixPHXhfnPs23G24xXtl8k9oeiMFEZSsRAY6xPFOIAEb1jm08hgym6FG01rY4+9q+OPmzXXH6e3EGg/G6BE6U6ZE2gHn5j+buv7WgDcbd5wr1cwvvZUYQauPLGJmd5wttKB/Yeq88NBh/DF8rjza0OYT0CQzlJ+KXzr5fnnYMJyCMF5pn0ppKg1H3YKxRGFOwN3/LDMG7dwPyBuMSaTAhkxjVtvin78u5IgwG6hID9USgO9srTgYyt3Dfr5eB/UMTzO5+fT/l2uh4qr0dRz/tmTc3f/WTo1x7u70ql2fGQIbjOGVv6z6dCtXr7QP1JGgtuL1x7nVx9PQVf/+v3hJHT5wXN0r6lc03qe1UGYxdXr0kjSIDJgGzkVu0V0sRI6+dGc+bmwZTCU6STCb17ULZvclqdcs8Xbpl95n2qq00EVtWGQ1Mym1rsp+5hesqO7Em5rVT/W274XhZxuIcn1LW3mQwwXotmEK2xLEy5cxg3Ppf/cQYjLMv179svkmVp+MejAl2dT8lFtvHGAjm9QynAO/4IuYrXyJZxRtM15ZIA3OydG2LTEZnHna/DvwfIvCddtjCYPR+vbRB9nHFqS/f2j7aJFQGJZdbVf3cTMs1sqL2don0wJiDu/UzGLM/ZzD5fnaJVDTfpLZTfQ9GYTKYynZFlGUxEZTf5LWKN5gu3uTNZK9Q+e0B1PsZzNA41H0Pr79zv8Tb72yVtEEF21mV9XfvuzToX3aTdySDwRYG82NtOpmceoxXZ/5U9RM3mKY0forkmEfd7Ckmg4n7Bm+8wXTtMfVga99Rd8pX3tRZyWAL9zhgLjLDuBNof+eCvi9zR5fRz1v+RGs4fu0x5i6IW/Z48sdnXj9e3xEPHsoM5OFjR6Zs77c49ZdOHxevnb2ZlbWG9RivbL5JlSdrMG5WYl57T3RsHYjMLGA8L8E46iyfXFpmMKD6i3ZxBtPFL9qpk0ZejQp1QPVYgsBgdLDrJY+ty+6xGCkjcuo9mfHVkmbupLpZ644VfXzmRq/X160vklO/sjpQSxxPMI0V/Zj6tXPSULDvk/PiNTym/sTW+8I4ofGDSlw/UYNRX9d3jCBfzn8Lt3Q5ZQzK9rd/ClB7qTQGg6n+U4E4g+ninwpsmCvRBk4kte1A+Y5++nP0zetx7UvL+u+SlEmhrJ4QHRc/lidSXH9TVseEMSLbB8prG3vivslE7qtsBFtbdr9o97o4u5yvH5YxTpP5U5QnZzAI5LwB5PblDSfUx/2bohHzsaaTrzPjNFWMacUtlYrVtaWRBSeJd1U64LLNTuav+jdsi9oXlo2RKJmbtsN6O7aUNLGszjzWzvrVkr5JXHV8j9d3/YwExlGjjP7ueFXzpS5PzGCKshE3axn5nooE/d655AS8a0AluEaULcMSgwyk7t8loX0XMxeLOmE6JBgMbsRm+1yjqNKbC+Z+DaQzFnfsoJzx9T2fQJsxCxnIyiO5XDJZSYzQHv1C4x2kpuYm7zSBbARPg4oeYWM/6ruatbgg1c1LnTzy6rQlZZ8g4LW9goX6UPX1jcxGVlbxdGlDLYHywn7Uo12ofxdEgyGlrG/ui41NebKYLUzEmkqR0Ea1lydYvr+3Zf3M19NgSCk4SaxCZlImty/VT9FgSCnqaiRPlJCBxMj2H9lasX6m62kwpBScJDHLoiKp5ZJzwrmqul/D+vB+q2mop8GQUgZyLR0yjjrCtzrXB1JyLG77taXBkFLaZC9WGGNdps5U/0SDIaWEDKOJQicfNfuiwZBSQmbRRDjZsC53Tz6WZ79MgyGlhMyiidwTj+qPaDCkFPz8Z8gw6mptICVPuODWivUzV0+DIaU82Q0bRh0hVV4b7JsTkds+bWkwpJSnT8OmUUf4PgSuZkiZR7byJAzut1vWT3U9DYZUgh8xDxlHjPCIGich1U/RYEglbbKYdZxo5oqm5JTtFZD1jmasngZDothrYDJYhz/eoPosGgyJBplMzHLJXRY95rbXWxoMqQ2MBk+X8o+w1RetVNYiT7BMtpzfsr4P9TQYQkgyaDCEkGTQYAghyaDBEEKSQYMhhCSDBkMISQYNhhCSDBoMISQZNBhCSDJoMISQZNBgCCHJoMEQQpJBgyGEJIMGQwhJBg2GEJIMGgwhJBk0GEJIMmgwhJBk0GAIIcmgwRBCkkGDIYQkgwZDCEkGDYYQkoxGBrOxMRAPH66IO3fuis8/vy1u3rxFUdQUCvGLOEY8I67HTS2D2d7eFl9++ZXUPbG2tiZ2dnbE/v6+qSWETBuIX8Qx4hlxjfhGnI+LaIOBu8HtcCCEkNkE8Y04H1c2E2UwcDRMOhhsmj2EkFkFcY54H0cmE2UwSJuYuRDSH/SS6StTak6lwSBVwtqMENIvEPdtl0qVBoO7y8xeCOkfiHvEfxsqDQaPsHCXmRDSLxD3iP82VBoMbvbwUTQh/QNxj/hvQ6XB4Ms4ZEysLovFi0ui3T8ZIZOjbfynMxgE0+KyWDXFUW6LpYuLYrm4QWVA3l66KC5WjdEYHN9FsXTHFHOsLi+Ki0s1raKuwdxZKp2j+BjKj11R91hojp3h81t3xPKn/yf+89J/i8XLV5VQ/urefdNifHTXYCTaAHBSrorlRbyO0fAkLgvirK4iCBUqOOoakR+kaj7nGJfV/Mv++7LHgWPK2sYrbwirq7fN+IHAVnMUvCdVV2EGtQ1G/htm/57kINja2hYfXfs4Mxa8hrHYfRDMZ5x02mAATGYxGAUlGUxBgGYBiPosO9LmVX61XhW3lUHUCY6AwThGVlUO0igLMObsjq3GKX7Pythzn4/+DOXcReZnxzdjB9uUisaTEpiLNZbVr78xe4egHuZi24yLzhtMRtGJndPQjAoMyDMXQ2SGogKvygS8gLSyGcuwb1KDaRLk2WeijXFkf/5zc47FO/bYY3Rp0ofUwmYpVWCZhHbIbMbB9BjMCCUZDAgYiQqExcVg8C0uLcn9VSbjZyXlBDKYbL6h4Xj7TZDqpWEDRRlU+XvUn1HOgLPPOmc+eaEfDaZzWNMIZS4h7P2Z2PZldNNg1AnnnLSR2YsVgtourew2HDg5qgLQHkfVOIqAwTgGUFa2x+yi6kuCMD9ekAiDyZub+xl6OKYQnrvCjIzizJq0wRpGLHY5NY77Md3OYELLmSjsFdcP1lDwDKm+F6P6mxuz1YExNJjby8v6Hk4TgzFm6x+rCd6S8YJEGIxm+PllcylJQyky+6q5XWoZNWmLfUpUBxgMllVtmSKDCd3byMtc4U1QenVyHDzFcDMKFbRoq+aoMBgzpqqPMr5hYKKPMgB7LEXKB2nofRj5huPiGkJNZe/JNRiL3Oe+Z3VsZRlMmMzk6xgSaUWTbKSJKYWYOoMpDCx1VRxdQuQzmKYGowIjdyxVZoRAKmpTJygV5qqfvX/X8KKwBl1vieSZtnz/+lFzQM5nGKyPULFpkjYgE6mbjcCUemkwoRNzqGqDcdtHG0womAsMTR2nXEatyhq7RAKjgZtXaCxMbTIfY0bhcSKWPeo9yDlw3JXG5mQw9t8g38+OZ4ox1DZVMhZgFHUePePmLgxmHF+860UGo4NwSSzJ1zbg4zMYY2yBwHDNaxTfYBTe+7EUjG9MbdRMio6xzGT8zw7HPTqGi7tEMscn511cXlbvKX88WtVmQ4M5GKxhxGYksY+0Y5gOg0Gw5b/1GpQ5yZXZDPe7gTWyv8JgdJ+i4AmYSEa4Lh9kavwR0ykifIzlGIPw5ig7bmANRm5xrMrscgam9jGDmRZgLjH3YqwZjesbvd03GGUGOJH9q/AIJRlM6MqdZTAZo8GrAqJq+aHmDbUpDmI1bvZ9nPIgVQaUBaV7jHr88oA1bYIGpuvCn6fpZ96X/hxQduZrYDD+eyGTBI+esUyymUz+Oy7unxH0xmBcc7DB5QWEOsnNie+e/A5NDUYFQ2wAGSP0zSRkMHqO7HiVwnPo+aW89zQ65jD4/XFs/7CBWOzx5AzSNWsvewkdv6OAkXnmVGXWJCnunwNAMBzXVFBGvW0zDpPpdgYzBkYNxl6dTaB6JqWDSgVn9LLFYMbBXJk5uOOZOXzDAcPjgRavXdPH4xiL27/ouHQgywD+wryfOplC9hmMmp3+zEyBzAQwGtzARSYDg7Gm4jIuk5l5gyGENAPmUvfxdh4aDCEkGckNhv9lJiH9ZCL/ZSb/029C+slE/tNv/mwJIf1kIj9bwh9eI6SfTOSH1wB/OpaQfoF4n8hPxwL++D0h/WHiP34PkCphUmYyhMwuiG/EedulkSXaYAAcDWkT1mY4ENxl5iNsQqYXxC/iWC+J7qn4HkfmYqllMBa4G+4u4xEW3A5fxqEoavqE+EUcI57HlbW4NDIYQgiJgQZDCEkGDYYQkgwaDCEkGTQYQkgyaDCEkGTQYAghyaDBEEKSQYMhhCSDBkMISQYNhhCSDBoMISQZNBhCSDJoMISQZNBgCCHJoMEQQpJBgyGEJIMGQwhJRi2D2XsqxNYTIdY3hXg8oChqloS4RnwjzsdFtMFs74QPiqKo2RPifRxEGQzNhaL6p3GYTKXBIF0KTU5R1Oyr7XKp0mCwJgtNTFHU7Avx34ZKg+ENXYrqrxD/bag0mNCkFEX1R22gwVAUVao20GAoasIa/PtFsf2DE8mE8UPzNlUbaDAUNWHBBMS3ZOglEsYPzdtUbZBHVE5oQoqimssazM5vP5dlHeMQxqPBUFTPBQNIYQSpxm0DDYaiJiwajENoQorqq5ZvC/H3v4hTqD8UawSYK6RQW4gGQ1FTrvc+FOK3/rBah75TbDIxRvA7r+oxQsL4oT40GIrqiWACbQwGRoL++ewFBoe6UB8aDEVNoRDof/mPcbJLmCYGA/P47htaMBH72pXNbGwZc1aN21ZtoMFQVIUQ1HbpUyYEvg14lOsaDAzDjoU5y2TboU/VuG3VBhoMRVUIAe0GcpEQ8G0MBsI8mC+/Py+0yx9TvwzmA+3oR/5NiBs/F+Lw7+nyt/9MiEt3/bafvS/Esd/X9c+8KMSrss9DWydfY/+Js3L/d/XrM0hDV4Q4+zdCPG/GfVb2P/O//piv/LEcT9ah/vkfyPYfD+vd41uSssd3+K/l8a457ajea5IGg/4xBoM27vII6qXBvCCD/AUEtwz4M9IQnkXA/4EQl00Q35DBDRM48pYQF2Sbs/O6/PK7ut4azKHflf0/G47/rvwsse+ErEe/M6eEOCnndMd89hW5/z9kW1k+AgPBGDfNGOb4npPHcvivZBvZ7sT39L7D/zqch6JoMM1JbjCH/lyIu87+y9JIsP+N67L8SAa1DPrn5D6379t/JNtI3ZCvrcG8cMZvc1L2Q5slN9vAazPmIWlsXibykZxHjvPM35qyOb5nZMZis6XHMjM6gmOW/07uMVP91qQNBn3z+/Ny57LqpcFgCeLt/x+9X2UoV3WmgXJIl2R7azA2O7Fa+mfTV2Ymx2RmdMncvbdjHpFLKrc9dBLt/0SOiXLB8XltKEpqkgaDPrEGkx+fBiN194Le/+p/OW2kWdy9Pyq0LzIY6KFc7mDZ9W1kLLYNDYYas2gwzUluMN4SROqCLGP/27ifIk3kFRPQRTdWCw3GbX9XZjEYR36+MKbgmB/LZZbcny3HaDBUpJoYDILfficmrzIjKPsinSu0ocHID+EZmV0cPiXEu+8LcVq+f2QXrulcntft7A1Z3LB9W9a/ITMR1BcZzEn5j3n65/6N4ef/wYwptyiP3OSVevdLMwYNhopUE4Mp07gMBm3dfb00GCxVLsmsQS1jpF6Wrz9zMwv5+rJcIh1+UbdHGzx1umDcv8hgzv7FcGmER9uvSFO564y7JM3HPvrGmIdle+/xOA2GihQMBuYBkykTzqdxGYz75wEhoQ0NJhDAFDVtgmnAZGKUD/qQyozAmkeVQvdpaDAURVUaQT5bCSnUjwZDUVQyI6DBUBRFg3EJTUhRVHPRYBxCE1IU1VzWCPirApLQhBRFNRcMAEaQSjQYiuqx+MuODqEJKYrqj9pQaTDrm+FJKYqafSH+21BpMFtPwhNTFDX7Qvy3odJg9p6GJ6YoavaF+G9DpcGA7Z3w5BRFza4Q922JMhhAk6Go/mgc5gKiDQYgXcKajDd+KWr2hLhGfLddFrnUMhhCCKkDDYYQkgwaDCEkGTQYQkgyaDCEkGTQYAghyaDBEEKSQYMhhCSDBkMISQYNhhCSDBoMISQZNBhCSDJoMISQZNBgCCHJoMEQQpJBgyGEJIMGQwhJhBD/D9jjqMa6ZJAcAAAAAElFTkSuQmCC"},7993:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},8766:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-select-c420f68b574e9f355d1d18d2da0fd9b3.png"},7411:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-ab4c8508939419e073bde6be4ab2f4ec.png"},9709:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-configure-9d77facae2ee79b94521a4ef2cd44576.png"},2926:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-creategraph-422152d6fe55f2d86de3b80372f7ed27.png"},4313:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-deletegraph-button-8e8c56b4a4e4256d8609c7eb57bcbb3d.png"},1204:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-editgraph-button-3e899eb3940627bcd27f497d7bc49162.png"},8249:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-editgraph-bd4363c6715cd640bad159382e20456a.png"},5377:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-homepage-9c8ae8efdc08a7e9e32be01d9723d790.png"},7877:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-procedure-button-aaa2d9a9c3350d04ac011d8febe051be.png"},1178:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-procedure-83887e7d82291ff35c0642aed64df2fd.png"},8479:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-selecttemplate-d91aeb2d17bf756312bd2e0f2777072c.png"},1599:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-button-35d9187ca5035bc23d4d1f7c683ad950.png"},1133:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-refresh-button-a21fc107f5c66852187f1fe4d7cd5fd9.png"},7740:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-7ec245055270f838d9737aeddab56b0f.png"},5e3:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/login-56e8acdb4881eb493358a8901eba2354.png"},5801:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5684:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/pathquery-result-3c4cd19162f517a2e47133ce81f72ad2.png"},9143:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/pathquery-select-65741dbc0e473ccd094f692dd1342f80.png"},885:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAYCAYAAACmwZ5SAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHtSURBVFhH7ZVBboMwEEV7Gu6Rg3ADlHXuEeFbsIEDdJ0Vl4iURQ8x9bf5dBzGLqSVKlG+NAo2E8dv/th5k3+mA3jvOoD3rgOYul6vUtd1El3Xye12W8wjd6s+hkaqduRI+nMljsNvNLYq99FLc+79CuuUBSYIAAmJMeJyuczzLMxWJcDFTY/iqkqqrTEXM1URGEAUIAmMoOD6amAFpoHhmLlpH82wLIPpMD6x3uiysNDfA2OuaqR/xJQgbFo77scBHPNGUaywCgUVgQHJOJ1OM6x+h+fXgftwdrHB5Pw+u6SAcyBh7YKzVBYYzmlHEfrc6kDuKi2AnTg/HvV59kLLJmDKWcxbR8ANBMYF+NQxSlngnH4XeIIMbe389QThkspseHJ4bPne586tPz2r37BUBAYI2lYLgGhhwm5uae2M5SrcTDac3tK2wyhWBO71hWboJWAEhZy1wHGj0Z3EYUgVY7FhvEPuwmEILQzg+F8e1mS+IRMYELik8OP4RBDqJ8BaeWCjneF6AhwLkzgcvj99l/mGTOD7/R6CMHimAAvX8Q7Bm3qrNDABgrMEV22NXIIiZ3mG0fZ+bkgLY2lzS7MIOrTjaxWB/S3t4czNEbx9n1qWcF8F0sE19LGxVASm03tSEXiPOoD3rgN43xL5BE26iMM2oTYfAAAAAElFTkSuQmCC"},1658:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6838:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-button-d5dbaa0a86444fbfd07b59765a4646bf.png"},3453:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAYCAYAAACmwZ5SAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF3SURBVFhH7ZbBjYMwEEVTjfugEDqwcqYPBF1wgSo40QRSDhTh5Q/GDDCYGCFtQniRJYMGJc/fY/IwP8YtfHVu4atzC+9RFIWp69pehdKZ8qmMUmFDV519fqCrtFFZY696XqXRKjdN/8mFek6wcJIkNM6EBJ5lvxwemlxcDKW0KV8QhbAtzfr7fEEY3yPMWCVMyU7CPr5E+FgrSCl/kLDu+1D+kTNcv3KwINja9tJDkHDbtiQbxzHNz4KESWJMcv3jhxqWHhu6aui53K4Cenjr4AoSTtPUfQnmZ7Ha0uMBtUib6nBPSBmSJEzPbvezVxgp8iQxR7oYHNw//qoShIkhbZcUSc6THYbdDRDNylnSEl7hKIrovcuRtjJqUHsUWdiD1MfjguycAcHCEv8jPKWMROnda+fAbf8Fu8IY4zbeGmPdUd4RphomOfWpPegWve16eoFXGH2Jw+mdcX4Pe3Biiz4H7h+ZfHB5ha/ILXx1buGr82PCxvwBeQoaIMYc5FgAAAAASUVORK5CYII="},9464:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAAoCAYAAACRgIb2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVGhD7ZoxTxRBFMf9EHCY0MsXUD8CCSGIdiQ2VnZaYGuQ3saIUWIiFRdILGxsCNh4sRessCE5LO6qQ26PjcfePt9/dueYnZ1l5zgY4jkv+QV2dmYIv3n7ZjbZG+TDWXjZDsPLdhhetsMolF3/TbT4mejmK48tU2+IHn5M3JnCKBud774jmlyMaeK+x5qFWDibWjELN8rG6kw+M0zmsQLC4VAPo2ysDFbJNJHHAnYHh3oYZaP+GCfxWAOHeuRkx3HS0TSBxx44hEs1fGZfEVaZjfCyh8fLdsi1yX65EdO3H8nc9SbR5hcSbaa+5YRUmW5RRW2716KxmbbSp5jK7AGNz53SxHybxqcPaMyE5Vzn4Vz2g+exkAsgF9fg6etEPtpxbRpbTEQ/KaKq2rYTEQURLattJuaatF4nOtrj39f4Z/r/5iKg8rlKcCobEhFFGXz7cZLxiMGEX0w2Mnppl//eJYi0walsmc3yukgo+qCv6V6WU6rM4DFv0z51aR2P+yyXE/zc6hK1Q1pSS8FseDYWGX3I/xhEo+So964IZ7IhEGVCbZNlAxmttuMa94qeAJUay8rEL+IsL4jDqD9ueS8tHajTW6finlik8xhyQZzJNm2AUqie8cC0OMWkZYQzVGx0aBNlpNcvD8sslg57yhjAG+tqKOp0jet14SLJ4IXMjh8MZ7IhFJug2gaZKCUyk9UsR7t9KUnLyHbM2crXyEKUkUwm454iW5w8MI4l78i5ND5EdGSzyVriVLZeo3XZaiZjYRBq/zyJ6H4pQebN984ytH5Clfmkb1Y2j3v/p3/yGDnZEFlURhCmMoLSo7aZgOjamnIaWWOxLLPWxqwxfV1NztBC9m5aYvrjYqryJjlyspGpelmAbFPGy3v6AhSjHf3mTrg8sNCd5NyMjTCp2VxWtJedkZSNUgGxqkC9hkvQx65eSxTZfKRb+p4/OwvZ9S5VtvnkESD7k/aRlA3kpndexuIewpTtJvBikpyze1TlTe8FRHOgRGT6slAKQlrn++LIl7bnZKuv7DipKAszLE5lA5nhUjqkApnNwFY0qPKmKAKZnL5u50SnyI1UvY/xGdnaK7u6MMPiXDaAcJQQbIBS8GA1+t/kWmT/r3jZDvGyHeJlO8TLdoi17DtvezTxyDyJxw5r2Qubkf/8bAjw+dnCRpTaPIucbHxYst84oVsrySCf4QOQflgJd51Ox+4jnTAMWXhHZDhKCh4JTzlTLPnJpy4FQSAc6nHj+PiYdFqtFjWbTWo0Gp4LAHdwqHs1ZjYiiiKxOngcsFKecuAKzuDOFIWyZeh1x0dxlLkqle3jsoLoL0TwmrSKrdVsAAAAAElFTkSuQmCC"},522:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-gqltips-f6456645ec5de1c6156593a5943e3445.png"},9420:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},4534:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6490:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6488:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5359:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-fullscreen-80bd40b9f2fde8e179dea8715da6b154.png"},7362:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-graph-210a81aa1c33957cee2ca78986d2467f.png"},9290:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},7231:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-insert-cf8a6f5e1e90288c556ff64e24867136.png"},6074:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-txt-1a0942ba6f27638a9063892078f138c4.png"},3532:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-schema-graph-5da210a3624e2ba4c19ae24b6b5073ec.png"},7566:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},8948:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},2471:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},1349:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-view-7858448691b2d7c071f369241ddd8452.png"},4595:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-configure-9c721fc928ba3c57bb940677c505d11a.png"},7991:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-creategraph-89fe62a333531733bded84b027814085.png"},3462:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-graphtab-fd626c045a446d6bb14ecbc799f31bb9.png"},6836:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-result-655453a1a1525c3c07821d771d2a3590.png"},5666:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-selectdemo-167c546ad18ab13e66f9c650c5ca91e4.png"},9956:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-add-button-8a67f028fbac72bb45acd3d6ebde3bb0.png"},873:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-add-df88eaac42ad0351ebff1c01d45b2597.png"},3075:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgwAAABSCAYAAACIRP8jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA2QSURBVHhe7d2/jtzWFQdgP4SLIP0+RIAgeoc8gWvBeQQ/ggFDqg3ErQFBZRAI7gK42BROn8oQVKuNbIkZ8pIz95L3zJCj3dmdvd8BPuzu8M9wyBnt5fmRqy86pZRSSimllFJKKaWUUko1XwIDpZRSSimllFJKKaWUUkoJDJRSSimllFJKKaWUUkopJTBQSimllFJKKaWUUkoppdSuFoHB+/fvAQAAAACAJyqqRWDw4cMHAAAAAADgiYpKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAMDgtzdvuo/ffHO1+u2vvS5KUQkMAAAAAAAY9E337osvrla//bXXRSmq3V4sq7YwAAAAAABP3xQYfHz2bH/V/lXYba/AYL2oBAYAAAAAAAz6hvs1Nt6vdbsfSlQCAwAAAAAABgKDNkQlMAAAAAAAYCAwaENUAgMAAAAAAAYCgzZEJTAAAABozm338uame/76XWVa7l33+uub7ubFbWUa9NJ76eVtbRoA10hg0IaoBAYAAADNERhwV9YGBmvfc1ze1mPjWPK4/fyq6/7w/afubWXah7efuq++67of31amsScwaENUAgMAAIDm3F9gcPvingKGX193z2+ed69/rUzjAQkMrp/AgKfkY/ftd1337S+1aTtvd9O/PxIo7P3e/bib76uffq9Mu4y3P+2289XH6rT7di+N93PCml8+dX84djxnBAbbRPVkAoN3r593N1+/7t5VpgEPZe3JAwAAl7W24Scw4BRjfuDxGJrsWRgw3G3w3TplUzoFD0Vze2xeH3OXAcPb3fP1DfZ160wBR22bTqk144833tO+OazjU/fz7vFh32ePL7a7CAzm6+il9VSf52TAkwgMtomqucBgGLwKFuBC1p48uEIFAOCyBAbcFYEB8FikBnPeAB8Cg5NX6S+XS+HArIFde2zv/DsS5o329fJtiZ9/HqIcVF73aE1gMDT+hxAgCwzGfd3v97Qt2XZVAoPpuWvbePjTUmneNftWYLBNVAID4B4JDAAAVvvv37v//fNP3YdXX6avu5+r8+VuX3Y3u3FUrjb2Gs6Dinnq46/hvCqb7/nr2/WBQWVbbm5edrf7edJz1qcl8+dP525jaJE/vtPi2PEfb3/o/vbvv3R//dcfB/33/WO1eUuVfVgc01PHZrn8Yf8fxvzl8ZuHO8b8l/LDf37v/vxDuhK6/9r/XJvvoDw2838vlsfUseRxyhvWUwP6x42BQXxHwqfu53u6wyBu6B+xCC+uOTBYbvshLEg/T8vWtjUnMNgmKn+SCLhHh5OH+nQAAAZ9OPDqy6WjoUHfxC0bu6lhmzdqx0Zvca6Uxmh9AzBv+KUmYb6+rEn8uXcYDHcHHH++tO2z53+RbXfjdxj0wcAUFMwdDw3G4z1/D0zH6OSxGd8H+THdLfNyP//a91OaT5P5fvXhQK2JeTw0OHFsFu8Rx5JHqNKM7hvQcQCwdGhGB430+7zDoOXAIFtHv2y+nsIY2BwLDQQG20QlMADuURpICgwAAI6b7iyYGx6vzB+bjb+Gq/7zpu1o3gAMm/FpfZ8bGAyPLc7XyqZjbblCuI1tyO8smOun1Zbp1ff9qen5sTk1pg/eI+N77LBceby5H9OdBXP947X5k2PHphIYOZY8Rour/1MDeggMNtxhMPw8NeP7r1sb+WdoPTBYLLebvzyWS7XX2RMYbBPVRQOD8vbEXjlwHQYq2fTFgGRxi+th+UNgMA5WJqsGqtCy7Mqx6udm9planHAulz8MHNOy/We5/PzPT/QMOAGAxlXCgr3a/LmxMVsbj8VN+HL8FV+AVWsWHrd8zsOYMJ9vvu5pvBiOCRsPDGpBQa62zOlx9ppjM433o30frWP+3Ke2hbtQa6xNavMn8bFJfZr5OaBjyWOWGtFTQ3ldYFDaL5MHBmOzu/bZmoua2ZGhYV5Zz2nLwKA+33EPGxik6fPgYP5c5TaOr7VyXAUG20R1scAg/ZIpBxi3L6ZfOuMAJB+gjuHAftAx/Bwtnzcjs19k48A5/yUmMIBcGuiVn4ndY9MJXvQZ2n/OKieQu2XcngwAsM15dxhMY638PCkfV1XGarNlp/FXfJ50bB11w7pm48N5oFHI580vEptvT+OBwVl3GIz7ftnMH204NmkMn5Tj9vReEhg8Dnd6h8G8L7PnWPJ4peb7oZGemv+fhqZz7bORSw3urEE9v8OgaHjP1Rrb6wzb3OwdBulrrfmfbNuvAoNtorpMYFBp9q+Zng9a4ytekhQYHF9H7Wdo2anPQ316PjhM34cnIOP0xQnm4sTFgBMAaNwZ/4fB6bHaOE+12V/O9zB3GBwzjiMXF4S1Gxic938YnNr3ZxybKdTZH+NoHenxwxh//jP34e7+D4P02Jp/P+DxSM3lvGmeBwb7BvfYPD80uLOmdt6If8yBwcJlAoNhXbtlVts977dHA4Pd98M+v5v9KjDYJqqLBAarmpKVX0IpBBgHiItBSWXeynMU69g5tS3QjlODvDR9OfDPTxrH78MTt2gd8+c24AQA6MOB6U6D4evR//A4OLcZz5umcdX8fCiaL7qIa38FenAeVrM8v9seOgzmAUHjgUGvDwbyOw3674//h8en9v15x6Y8/zbmf2z6cGC606D/ejws6C2PzfA5rv3bMXAseZyGcGDWGE9Xuq8PDMKGeL/M2PCuTh899cAgScvt9+dn3WHQf5/m6ZcdjuHu8ZOC/SUw2CaqCwQGKwcou182dfMrSiqP7wgMYKPx8xReTVR83iqyz3QaTCbloNHJAwDAfUnnOnkDPY2pyjHZ+FhxDlSbbzovy8+zsnO1DQ3lakgxDyhG+Z+Zzb/vLddjzHiWaVxfHMPdvpx+PnlssnkH83P8dFyM+a/Z7NiM74nwXNGx5FFKDeiiqfzq09is3nCHQb7OS95hkDXai9dwTNE0v+bA4LxtrBEYbBPV5e4wODLAPDV9aRq4HgbHAgPYKhrYT05NrxgHlk4eAAAuI79wI5331MZV6bHT880v5urPt+bN4TXy58sa/pULUvLnL19LL1t2lM7vlstyyvw9MBujHz02y2XL90Oabsx/zbJjc/TCsakH41hyLaZmc/pabbpnHiowGEKCPDAYvz9m2WBf9xprzgsMxj/bNAsMpn34WYFBP9/+tWXz9Y+f2DcCg22iukhgUL3CJHNqel05KBEYwFanTv7OOTmcfxbLz+nBfIBpwAkAAPAwovO2yNb54YHs/zZ+ajrvr4gfm9GHK+LrV+eXV/t/6n4eG96Hx5a2Bwblc58dGIzbVnv+ZbgwKZv2uaON9+G5loHBISTYHhjkrztfzyIw2H1/mLYkMNgmqsv8p8f7K1XKUKC4xXH3y2bRyL99mQUCL8u/VTlcyewOA/gsbk8GAABo23BemP95sxO2zg+XNIYEe0OjfG1g8HH4um/+v7rAHQazdZ4dGBz5j4PvPDDI77wYtr8PDNI+zAOARWO/eK3puffHaXp8eB1jGDGYbeO4jmg/Cwy2iepCgUGyuMW01mjMp2eN/dT4z6eXv5wEBnCu1KzPP19Fg9/tyQAADCpjv4yxHFynrX0SfRUepSko2DfbU6M5Na3T90NDum84h4HBrMGdN8Z7s+Z+KW6+HzNv5p8XGKTtr4cCdx8YFNu4DwyyfTzOsyYwKJ67GgYs5xteTxEqHAgMtonqooEBAAAAAA8svzBsTfN/6/zwwMqmctbMPjMwGJrku3WssqLhn6Ttyp930/NMIcAYlkRhxd0GBtMyY0jRb8fu9c6f45zAoF9HtMx8G/v1b9tuaqISGAAAAAAAT0T553GKwKAy39SAX0yf32FwVNx8D1XWPwQGG+8wOAQfp+edwoW94PWFjffqPjns7+G5xnXnwcDy+Y7vryI4CbaxRmCwTVQCAwAAAAAABtfaeBcYbBOVwAAAAAAAgIHAoA1RCQwAAAAAABgIDNoQlcAAAAAAAIDBvvH+7Nnw/dXYba/AYL2oBAYAAAAAAAz6hnvfeL9WAoN1otrtxbJqCwMAAAAA8PT99ubN4ar9K9Rvf+11UYpKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JSmAAAAAAAAANiUpgAAAAAAAADYlKYAAAAAAAAA2JahEYvH//HgAAAAAAeKKiWgQGSimllFJKKaWUUkoppZRqrwQGSimllFJKKaWUUkoppVTz1XX/BzEa8o3lea5TAAAAAElFTkSuQmCC"},1892:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},222:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-edit-42d82c9c13ee49128966a8f77d6da59e.png"},1295:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},3353:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/vertexquery-2fb20c2bc90ac608c65ca49cd5c3d706.png"},8453:(A,s,e)=>{e.d(s,{R:()=>c,x:()=>h});var n=e(6540);const i={},d=n.createContext(i);function c(A){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof A?A(s):{...s,...A}}),[s,A])}function h(A){let s;return s=A.disableParentContext?"function"==typeof A.components?A.components(i):A.components||i:c(A.components),n.createElement(d.Provider,{value:s},A.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3f6905d4.a07374a7.js b/assets/js/3f6905d4.a07374a7.js
new file mode 100644
index 0000000000..774bab0a61
--- /dev/null
+++ b/assets/js/3f6905d4.a07374a7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5882],{6362:(A,s,e)=>{e.r(s),e.d(s,{assets:()=>l,contentTitle:()=>c,default:()=>g,frontMatter:()=>d,metadata:()=>h,toc:()=>r});var n=e(4848),i=e(8453);const d={},c="\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",h={id:"user-guide/tugraph-browser",title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u65b9\u6cd5\u3002",source:"@site/../docs/zh-CN/source/4.user-guide/1.tugraph-browser.md",sourceDirName:"4.user-guide",slug:"/user-guide/tugraph-browser",permalink:"/tugraph-db/zh/user-guide/tugraph-browser",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Round The World Demo",permalink:"/tugraph-db/zh/quick-start/demo/round-the-world"},next:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09",permalink:"/tugraph-db/zh/user-guide/tugraph-browser-legacy"}},l={},r=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u64cd\u4f5c\u6307\u5357",id:"2\u64cd\u4f5c\u6307\u5357",level:2},{value:"2.1.\u8bbf\u95ee",id:"21\u8bbf\u95ee",level:3},{value:"2.2.\u767b\u5f55",id:"22\u767b\u5f55",level:3},{value:"2.3.\u5feb\u901f\u4e0a\u624b",id:"23\u5feb\u901f\u4e0a\u624b",level:3},{value:"2.3.1.\u521b\u5efa\u56fe\u9879\u76ee",id:"231\u521b\u5efa\u56fe\u9879\u76ee",level:4},{value:"2.3.2.\u5f00\u59cb\u56fe\u9879\u76ee",id:"232\u5f00\u59cb\u56fe\u9879\u76ee",level:4},{value:"2.4.\u56fe\u9879\u76ee",id:"24\u56fe\u9879\u76ee",level:3},{value:"2.4.1.\u56fe\u9879\u76ee\u7ba1\u7406",id:"241\u56fe\u9879\u76ee\u7ba1\u7406",level:4},{value:"2.4.1.1.\u65b0\u5efa\u56fe\u9879\u76ee",id:"2411\u65b0\u5efa\u56fe\u9879\u76ee",level:5},{value:"2.4.1.2.\u7f16\u8f91\u56fe\u9879\u76ee",id:"2412\u7f16\u8f91\u56fe\u9879\u76ee",level:5},{value:"2.4.1.3.\u5220\u9664\u56fe\u9879\u76ee",id:"2413\u5220\u9664\u56fe\u9879\u76ee",level:5},{value:"2.4.1.4.\u70b9\u8fb9\u7edf\u8ba1",id:"2414\u70b9\u8fb9\u7edf\u8ba1",level:5},{value:"2.4.1.5.\u5b58\u50a8\u8fc7\u7a0b",id:"2415\u5b58\u50a8\u8fc7\u7a0b",level:5},{value:"2.4.2.\u56fe\u6784\u5efa",id:"242\u56fe\u6784\u5efa",level:4},{value:"2.4.2.1.\u6a21\u578b\u5b9a\u4e49",id:"2421\u6a21\u578b\u5b9a\u4e49",level:5},{value:"a.\u6d4f\u89c8\u56fe\u6a21\u578b",id:"a\u6d4f\u89c8\u56fe\u6a21\u578b",level:6},{value:"b.\u6dfb\u52a0\u70b9",id:"b\u6dfb\u52a0\u70b9",level:6},{value:"c.\u6dfb\u52a0\u8fb9",id:"c\u6dfb\u52a0\u8fb9",level:6},{value:"d.\u5bfc\u5165\u6a21\u578b",id:"d\u5bfc\u5165\u6a21\u578b",level:6},{value:"e.\u5bfc\u51fa\u6a21\u578b",id:"e\u5bfc\u51fa\u6a21\u578b",level:6},{value:"2.4.2.2.\u6570\u636e\u5bfc\u5165",id:"2422\u6570\u636e\u5bfc\u5165",level:5},{value:"a.\u6570\u636e\u51c6\u5907",id:"a\u6570\u636e\u51c6\u5907",level:6},{value:"b.\u4e0a\u4f20\u6587\u4ef6",id:"b\u4e0a\u4f20\u6587\u4ef6",level:6},{value:"c.\u6570\u636e\u6620\u5c04",id:"c\u6570\u636e\u6620\u5c04",level:6},{value:"2.4.3.\u56fe\u67e5\u8be2",id:"243\u56fe\u67e5\u8be2",level:4},{value:"2.4.3.1.\u5207\u6362\u56fe\u9879\u76ee",id:"2431\u5207\u6362\u56fe\u9879\u76ee",level:5},{value:"2.4.3.2.\u8bed\u53e5\u67e5\u8be2",id:"2432\u8bed\u53e5\u67e5\u8be2",level:5},{value:"a.\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",id:"a\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",level:6},{value:"b.\u6536\u85cf\u5217\u8868",id:"b\u6536\u85cf\u5217\u8868",level:6},{value:"c.\u67e5\u770b\u56fe\u6a21\u578b",id:"c\u67e5\u770b\u56fe\u6a21\u578b",level:6},{value:"2.4.3.3.\u8def\u5f84\u67e5\u8be2",id:"2433\u8def\u5f84\u67e5\u8be2",level:5},{value:"2.4.3.4.\u70b9\u67e5\u8be2",id:"2434\u70b9\u67e5\u8be2",level:5},{value:"2.4.3.5.\u6267\u884c\u7ed3\u679c\u9875\u7b7e",id:"2435\u6267\u884c\u7ed3\u679c\u9875\u7b7e",level:5},{value:"a.\u8868\u683c\u6587\u672c",id:"a\u8868\u683c\u6587\u672c",level:6},{value:"b.\u70b9\u8fb9\u89c6\u56fe",id:"b\u70b9\u8fb9\u89c6\u56fe",level:6},{value:"c.\u63d2\u5165\u6570\u636e",id:"c\u63d2\u5165\u6570\u636e",level:6},{value:"d.\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",id:"d\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",level:6},{value:"e.\u5168\u5c4f\u5c55\u793a",id:"e\u5168\u5c4f\u5c55\u793a",level:6},{value:"2.4.4.\u56fe\u5206\u6790",id:"244\u56fe\u5206\u6790",level:4},{value:"2.4.4.1.\u8bed\u53e5\u67e5\u8be2",id:"2441\u8bed\u53e5\u67e5\u8be2",level:5},{value:"2.4.4.2.\u914d\u7f6e\u67e5\u8be2",id:"2442\u914d\u7f6e\u67e5\u8be2",level:5},{value:"2.4.4.3.\u753b\u5e03\u5206\u6790",id:"2443\u753b\u5e03\u5206\u6790",level:5},{value:"a.\u6269\u5c55\u67e5\u8be2",id:"a\u6269\u5c55\u67e5\u8be2",level:6},{value:"b.\u6536\u8d77/\u5c55\u5f00\u8282\u70b9",id:"b\u6536\u8d77\u5c55\u5f00\u8282\u70b9",level:6},{value:"c.\u5220\u9664\u8282\u70b9",id:"c\u5220\u9664\u8282\u70b9",level:6},{value:"d.\u6e05\u7a7a\u753b\u5e03",id:"d\u6e05\u7a7a\u753b\u5e03",level:6},{value:"e.\u70b9/\u8fb9\u68c0\u7d22",id:"e\u70b9\u8fb9\u68c0\u7d22",level:6},{value:"f.\u753b\u5e03\u56fe\u4f8b",id:"f\u753b\u5e03\u56fe\u4f8b",level:6},{value:"g.\u7f29\u653e/\u5c45\u4e2d",id:"g\u7f29\u653e\u5c45\u4e2d",level:6},{value:"2.4.4.4.\u5c5e\u6027\u7b5b\u9009",id:"2444\u5c5e\u6027\u7b5b\u9009",level:5},{value:"2.4.4.5.\u7edf\u8ba1\u7b5b\u9009",id:"2445\u7edf\u8ba1\u7b5b\u9009",level:5},{value:"2.4.4.6.\u70b9\u8fb9\u5e03\u5c40",id:"2446\u70b9\u8fb9\u5e03\u5c40",level:5},{value:"2.4.4.7.\u5916\u89c2\u6837\u5f0f",id:"2447\u5916\u89c2\u6837\u5f0f",level:5},{value:"2.4.4.8.\u89c6\u56fe\u5207\u6362",id:"2448\u89c6\u56fe\u5207\u6362",level:5},{value:"2.4.4.9.\u6807\u7b7e/\u5361\u7247\u5e03\u5c40\u5207\u6362",id:"2449\u6807\u7b7e\u5361\u7247\u5e03\u5c40\u5207\u6362",level:5},{value:"2.5.\u63a7\u5236\u53f0",id:"25\u63a7\u5236\u53f0",level:3},{value:"2.5.1.\u8d26\u6237\u7ba1\u7406",id:"251\u8d26\u6237\u7ba1\u7406",level:4},{value:"2.5.1.1.\u8d26\u6237\u7ba1\u7406",id:"2511\u8d26\u6237\u7ba1\u7406",level:5},{value:"a.\u6dfb\u52a0\u8d26\u6237",id:"a\u6dfb\u52a0\u8d26\u6237",level:6},{value:"b.\u7f16\u8f91\u8d26\u6237",id:"b\u7f16\u8f91\u8d26\u6237",level:6},{value:"c.\u7981\u7528\u8d26\u6237",id:"c\u7981\u7528\u8d26\u6237",level:6},{value:"d.\u5220\u9664\u8d26\u6237",id:"d\u5220\u9664\u8d26\u6237",level:6},{value:"2.5.1.2.\u89d2\u8272\u7ba1\u7406",id:"2512\u89d2\u8272\u7ba1\u7406",level:5},{value:"a.\u6dfb\u52a0\u89d2\u8272",id:"a\u6dfb\u52a0\u89d2\u8272",level:6},{value:"b.\u7f16\u8f91\u89d2\u8272",id:"b\u7f16\u8f91\u89d2\u8272",level:6},{value:"c.\u7981\u7528\u89d2\u8272",id:"c\u7981\u7528\u89d2\u8272",level:6},{value:"d.\u5220\u9664\u89d2\u8272",id:"d\u5220\u9664\u89d2\u8272",level:6},{value:"2.5.2.\u6570\u636e\u5e93\u4fe1\u606f",id:"252\u6570\u636e\u5e93\u4fe1\u606f",level:4},{value:"2.5.2.1.\u57fa\u7840\u4fe1\u606f",id:"2521\u57fa\u7840\u4fe1\u606f",level:5},{value:"2.5.2.2.\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",id:"2522\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",level:5}];function x(A){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...A.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c"})}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsx)(s.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph Browser \u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u65b9\u6cd5\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,n.jsx)(s.p,{children:"TuGraph Browser\uff08\u4ee5\u4e0b\u7b80\u79f0Browser\uff09\u662f\u4e00\u6b3e\u529f\u80fd\u5f3a\u5927\u7684\u4ea7\u54c1\u53ef\u89c6\u5316\u5f00\u53d1\u5de5\u5177\uff0c\u5b83\u4ee5\u76f4\u89c2\u7684\u53ef\u89c6\u5316\u65b9\u5f0f\u5448\u73b0\u56fe\u6570\u636e\uff0c\u4f7f\u7528\u6237\u53ef\u4ee5\u8f7b\u677e\u5730\u7ba1\u7406\u3001\u7ef4\u62a4\u548c\u67e5\u770b\u6570\u636e\u5e93\u8fd0\u884c\u72b6\u6001\u3002\u6b64\u5de5\u5177\u4e0d\u4ec5\u652f\u6301\u56fe\u6570\u636e\u7684\u7ba1\u7406\u548c\u53ef\u89c6\u5316\uff0c\u8fd8\u652f\u6301\u5bf9\u7cfb\u7edf\u8d26\u6237\u7684\u7ba1\u7406\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u5168\u9762\u7684\u64cd\u4f5c\u548c\u7ba1\u7406\u4f53\u9a8c\uff0c\u8ba9\u7528\u6237\u80fd\u591f\u66f4\u52a0\u9ad8\u6548\u5730\u7ba1\u7406\u548c\u5229\u7528\u56fe\u6570\u636e\u5e93\u3002"}),"\n",(0,n.jsx)(s.h2,{id:"2\u64cd\u4f5c\u6307\u5357",children:"2.\u64cd\u4f5c\u6307\u5357"}),"\n",(0,n.jsx)(s.h3,{id:"21\u8bbf\u95ee",children:"2.1.\u8bbf\u95ee"}),"\n",(0,n.jsx)(s.p,{children:"\u5f53\u7528\u6237\u5b8c\u6210\u56fe\u6570\u636e\u5e93\u7684\u5b89\u88c5\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeBrowser\u3002\u7528\u6237\u53ea\u9700\u8981\u5728\u6d4f\u89c8\u5668\u5730\u5740\u680f\u8f93\u5165\uff1aTuGraph \u6240\u5728\u670d\u52a1\u5668\u7684 IP:Port\u3002\u9ed8\u8ba4\u7684\u7aef\u53e3\u4f7f\u7528\u7684\u662f 7070\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4f8b\u5982\uff1a127.0.0.1:7070\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u63a8\u8350\u4f7f\u7528Chrome\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"22\u767b\u5f55",children:"2.2.\u767b\u5f55"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"login",src:e(5e3).A+"",width:"2856",height:"1492"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6d4f\u89c8\u5668\u6210\u529f\u8bbf\u95eeBrowser\u540e\uff0c\u9996\u5148\u8fdb\u5165\u7684\u662f\u767b\u5f55\u9875\u9762\uff08\u5982\u4e0a\u56fe\u6240\u793a\uff09\uff0c\u7528\u6237\u9700\u8981\u586b\u5199\u8d26\u53f7\u548c\u5bc6\u7801\u8fdb\u884c\u767b\u5f55\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u5e93\u5730\u5740\u683c\u5f0f\u4e3a\uff1aip:bolt_port\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ed8\u8ba4\u8d26\u53f7\uff1aadmin\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ed8\u8ba4\u5bc6\u7801\uff1a73@TuGraph\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u7528\u6237\u9996\u6b21\u767b\u5f55\u540e\uff0c\u4f1a\u8df3\u8f6c\u81f3\u4fee\u6539\u5bc6\u7801\u9875\u9762\uff0c\u5bc6\u7801\u4fee\u6539\u6210\u529f\u540e\uff0c\u4f7f\u7528\u65b0\u5bc6\u7801\u91cd\u65b0\u767b\u5f55\u5373\u53ef\u4f7f\u7528\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"23\u5feb\u901f\u4e0a\u624b",children:"2.3.\u5feb\u901f\u4e0a\u624b"}),"\n",(0,n.jsx)(s.p,{children:"\u5bf9\u4e8e\u9996\u6b21\u4f7f\u7528TuGraph\u7684\u7528\u6237\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\u5feb\u901f\u6784\u5efa\u4e00\u4e2a\u56fe\u9879\u76ee\uff0c\u5feb\u901f\u4e0a\u624b\u56fe\u6570\u636e\u9879\u76ee\u3002"}),"\n",(0,n.jsx)(s.h4,{id:"231\u521b\u5efa\u56fe\u9879\u76ee",children:"2.3.1.\u521b\u5efa\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9996\u9875\u7684\u9009\u9879\u5361\u4e2d\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u65b0\u5efa\u56fe\u9879\u76ee"}),"\u521b\u5efa\u65b0\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u65b0\u5efa\u56fe\u9879\u76ee",src:e(7991).A+"",width:"1290",height:"184"})}),"\n",(0,n.jsxs)(s.p,{children:["\u9009\u62e9\u4e00\u4e2a\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u4e00\u6b65"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u9009\u62e9\u4e00\u4e2ademo",src:e(5666).A+"",width:"1136",height:"908"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u586b\u5199\u914d\u7f6e"}),"\u754c\u9762\u8f93\u5165\u56fe\u9879\u76ee\u4fe1\u606f\uff0cdemo\u6570\u636e\u91cf\u90fd\u76f8\u5bf9\u8f83\u5c0f\uff0c",(0,n.jsx)(s.code,{children:"\u6700\u5927\u5b58\u50a8\u7a7a\u95f4"}),"\u8bbe\u7f6e\u4e3a1G\u5373\u53ef\u3002\u8f93\u5165\u5b8c\u56fe\u9879\u76ee\u4fe1\u606f\u540e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u521b\u5efa"}),"\u6309\u94ae\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u521b\u5efademo\u6570\u636e\u7684\u56fe\u6a21\u578b\u3001\u5bfc\u5165\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u586b\u5199\u914d\u7f6e",src:e(4595).A+"",width:"1135",height:"807"})}),"\n",(0,n.jsx)(s.h4,{id:"232\u5f00\u59cb\u56fe\u9879\u76ee",children:"2.3.2.\u5f00\u59cb\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["demo\u6570\u636e\u7684\u56fe\u9879\u76ee\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u7684\u9009\u9879\u5361\u4e2d\u627e\u5230\u76f8\u5e94\u7684\u56fe\u9879\u76ee\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u67e5\u8be2\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u56fe\u9879\u76ee\u9009\u9879\u5361",src:e(3462).A+"",width:"800",height:"326"})}),"\n",(0,n.jsx)(s.p,{children:"\u6267\u884c\u9ed8\u8ba4\u7684\u67e5\u8be2\u8bed\u53e5\uff0c\u6d4f\u89c8demo\u91cc\u7684\u56fe\u6570\u636e\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u5feb\u901f\u4e0a\u624b-\u9a8c\u8bc1\u7ed3\u679c",src:e(6836).A+"",width:"2555",height:"1291"})}),"\n",(0,n.jsxs)(s.p,{children:["\u66f4\u591aMovieDemo\u7684\u64cd\u4f5c\u8bf7\u6d4f\u89c8",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/quick-start/demo/movie",children:"\u5f71\u89c6\u573a\u666f"})]}),"\n",(0,n.jsx)(s.h3,{id:"24\u56fe\u9879\u76ee",children:"2.4.\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u56fe\u9879\u76ee\u7ba1\u7406\u548c\u56fe\u6570\u636e\u7814\u53d1\u529f\u80fd\uff0c\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u4fbf\u6377\u7684\u56fe\u6570\u636e\u53ef\u89c6\u5316\u64cd\u4f5c\uff0c\u5305\u62ec\u56fe\u9879\u76ee\u7684\u521b\u5efa\u3001\u4fee\u6539\u3001\u5220\u9664\u7b49\u7ba1\u7406\u64cd\u4f5c\uff0c\u4ee5\u53ca\u56fe\u6570\u636e\u7684\u67e5\u8be2\u3001\u70b9\u8fb9\u7edf\u8ba1\u7b49\u64cd\u4f5c\u3002\u6b64\u5916\uff0c\u5b83\u4e5f\u652f\u6301\u56fe\u6a21\u578b\u7684\u7ba1\u7406\uff0c\u4f7f\u7528\u6237\u53ef\u4ee5\u66f4\u52a0\u65b9\u4fbf\u5730\u8fdb\u884c\u56fe\u6570\u636e\u7684\u7ba1\u7406\u548c\u7ef4\u62a4\u3002"]}),"\n",(0,n.jsx)(s.h4,{id:"241\u56fe\u9879\u76ee\u7ba1\u7406",children:"2.4.1.\u56fe\u9879\u76ee\u7ba1\u7406"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u53ef\u4ee5\u770b\u5230\u5f53\u524d\u56fe\u6570\u636e\u5e93\u4e2d\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u9996\u9875",src:e(5377).A+"",width:"2846",height:"1462"})}),"\n",(0,n.jsx)(s.h5,{id:"2411\u65b0\u5efa\u56fe\u9879\u76ee",children:"2.4.1.1.\u65b0\u5efa\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u65b0\u5efa\u56fe\u9879\u76ee"}),"\u6309\u94ae\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u65b0\u5efa\u56fe\u9879\u76ee\u6309\u94ae",src:e(2926).A+"",width:"2502",height:"362"})}),"\n",(0,n.jsxs)(s.p,{children:["\u65b0\u5efa\u56fe\u9879\u76ee\u9700\u8981\u901a\u8fc7",(0,n.jsx)(s.code,{children:"\u9009\u62e9\u6a21\u677f"}),"\u548c",(0,n.jsx)(s.code,{children:"\u586b\u5199\u914d\u7f6e"}),"\u4e24\u4e2a\u9875\u9762\u5b8c\u6210\u56fe\u9879\u76ee\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"\u9009\u62e9\u6a21\u677f"}),"\uff1a\u4ea7\u54c1\u63d0\u4f9b\u7a7a\u6a21\u677f\u548cdemo\u6a21\u677f\u4e24\u7c7b\u6a21\u677f\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u7a7a\u6a21\u677f\uff1a\u5168\u65b0\u7684\u56fe\u9879\u76ee\uff0c\u7528\u6237\u9700\u8981\u81ea\u5df1\u521b\u5efa\u56fe\u6a21\u578b\u548c\u5bfc\u5165\u56fe\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u6b63\u5f0f\u9879\u76ee\u5f00\u53d1\u3002"}),"\n",(0,n.jsx)(s.li,{children:"demo\u6a21\u677f\uff1a\u4ea7\u54c1\u5185\u7f6e\u7684demo\u6570\u636e\uff0c\u56fe\u9879\u76ee\u521b\u5efa\u6210\u529f\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u521b\u5efademo\u56fe\u6a21\u578b\u5e76\u5bfc\u5165demo\u56fe\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u8bd5\u7528\u548c\u5b66\u4e60\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u9009\u62e9\u6a21\u677f",src:e(8479).A+"",width:"1142",height:"915"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"\u586b\u5199\u914d\u7f6e"}),"\uff1a\u7528\u6237\u9700\u8981\u586b\u5199\u56fe\u9879\u76ee\u57fa\u672c\u4fe1\u606f\uff0c\u5e76\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u521b\u5efa"}),"\u6309\u94ae\u521b\u5efa\u56fe\u9879\u76ee\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u56fe\u540d\u79f0\uff1a\u65b0\u5efa\u56fe\u9879\u76ee\u7684\u540d\u79f0\uff0c\u540c\u65f6\u4f5c\u4e3a\u8be5\u56fe\u9879\u76ee\u7684\u552f\u4e00\u4e3b\u952e\u3002\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u56fe\u63cf\u8ff0\uff1a\u65b0\u5efa\u56fe\u9879\u76ee\u7684\u63cf\u8ff0\uff0c\u53ef\u7528\u4e8e\u8be6\u7ec6\u8bf4\u660e\u8be5\u9879\u76ee\u7684\u80cc\u666f\u548c\u76ee\u6807\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e-\u6700\u5927\u5b58\u50a8\u7a7a\u95f4\uff1a\u8bbe\u7f6e\u56fe\u9879\u76ee\u6700\u5927\u53ef\u5360\u7528\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u5b9e\u9645\u5e76\u4e0d\u4f1a\u63d0\u524d\u5360\u7528\u7269\u7406\u5b58\u50a8\u7a7a\u95f4\uff0c\u5b9e\u9645\u6570\u636e\u91cf\u8fbe\u5230\u6700\u5927\u5b58\u50a8\u7a7a\u95f4\u9608\u503c\u540e\u4e0d\u53ef\u518d\u5199\u5165\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u586b\u5199\u914d\u7f6e",src:e(9709).A+"",width:"1136",height:"818"})}),"\n",(0,n.jsxs)(s.p,{children:["\u521b\u5efa\u6210\u529f\u540e\uff0c\u53ef\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9875\u9762\u7684\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u67e5\u770b\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2412\u7f16\u8f91\u56fe\u9879\u76ee",children:"2.4.1.2.\u7f16\u8f91\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u7f16\u8f91"}),"\u6309\u94ae\uff08\u7b14\u5f62\u56fe\u6807\uff09\uff0c\u7f16\u8f91\u5bf9\u5e94\u56fe\u9879\u76ee\u7684\u57fa\u7840\u4fe1\u606f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u7f16\u8f91\u56fe\u9879\u76ee\u6309\u94ae",src:e(1204).A+"",width:"808",height:"330"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7f16\u8f91\u56fe\u9879\u76ee\u529f\u80fd\u53ef\u4ee5\u4fee\u6539",(0,n.jsx)(s.code,{children:"\u56fe\u63cf\u8ff0"}),"\u548c",(0,n.jsx)(s.code,{children:"\u6700\u5927\u5b58\u50a8\u7a7a\u95f4"}),"\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u7f16\u8f91\u56fe\u9879\u76ee",src:e(8249).A+"",width:"691",height:"577"})}),"\n",(0,n.jsx)(s.h5,{id:"2413\u5220\u9664\u56fe\u9879\u76ee",children:"2.4.1.3.\u5220\u9664\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\uff08\u5783\u573e\u6876\u56fe\u6807\uff09\uff0c\u5220\u9664\u5bf9\u5e94\u7684\u56fe\u9879\u76ee\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5220\u9664\u56fe\u9879\u76ee\u6309\u94ae",src:e(4313).A+"",width:"798",height:"324"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.em,{children:"\u9700\u8981\u6ce8\u610f\uff1a\u56fe\u9879\u76ee\u5220\u9664\u540e\u65e0\u6cd5\u6062\u590d"}),"\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2414\u70b9\u8fb9\u7edf\u8ba1",children:"2.4.1.4.\u70b9\u8fb9\u7edf\u8ba1"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u70b9\u8fb9\u7edf\u8ba1"}),"\u6309\u94ae\uff08\u5237\u65b0\u56fe\u6807\uff09\uff0c\u7edf\u8ba1\u5bf9\u5e94\u56fe\u9879\u76ee\u5f53\u524d\u65f6\u95f4\u8282\u70b9\u7684\u70b9\u8fb9\u6570\u91cf\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u70b9\u8fb9\u7edf\u8ba1\u6309\u94ae",src:e(1599).A+"",width:"802",height:"326"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7edf\u8ba1\u7ed3\u679c\u5c06\u5c55\u793a\u5728\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e0a\uff0c\u5df2\u7ecf\u7edf\u8ba1\u8fc7\u70b9\u8fb9\u6570\u636e\u7684\u56fe\u9879\u76ee\u518d\u6b21\u7edf\u8ba1\u9700\u8981\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5237\u65b0"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u70b9\u8fb9\u7edf\u8ba1",src:e(7740).A+"",width:"798",height:"330"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5237\u65b0\u70b9\u8fb9\u7edf\u8ba1\u6309\u94ae",src:e(1133).A+"",width:"814",height:"402"})}),"\n",(0,n.jsx)(s.h5,{id:"2415\u5b58\u50a8\u8fc7\u7a0b",children:"2.4.1.5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u5b58\u50a8\u8fc7\u7a0b"}),"\u6309\u94ae\uff08\u5361\u7247\u6700\u53f3\u4fa7\u56fe\u6807\uff09\uff0c\u8df3\u8f6c\u5230\u64cd\u4f5c\u5b58\u50a8\u8fc7\u7a0b\u7684\u56fe\u9875\u9762\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5b58\u50a8\u8fc7\u7a0b\u6309\u94ae",src:e(7877).A+"",width:"806",height:"332"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u5b58\u50a8\u8fc7\u7a0b"}),'\u9875\u9762\uff0c\u53ef\u4ee5\u65b0\u5efa\u5b58\u50a8\u8fc7\u7a0b\uff0c\u65b0\u5efa\u65f6\u9700\u8981\u586b\u5199"\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"\u3001"\u5b58\u50a8\u8fc7\u7a0b\u7c7b\u578b"\u3001"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"\uff0c\u7136\u540e\u9009\u62e9"\u7248\u672c"\u548c"\u6267\u884c\u65f6\u662f\u5426\u4fee\u6539\u6570\u636e\u5e93"']}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u9879\u76ee-\u5b58\u50a8\u8fc7\u7a0b",src:e(1178).A+"",width:"2834",height:"1472"})}),"\n",(0,n.jsxs)(s.p,{children:["\u66f4\u591a\u5b58\u50a8\u8fc7\u7a0b\u7684\u76f8\u5173\u64cd\u4f5c\u53ef\u89c1 ",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/olap&procedure/procedure/",children:"\u5b58\u50a8\u8fc7\u7a0b"})]}),"\n",(0,n.jsx)(s.h4,{id:"242\u56fe\u6784\u5efa",children:"2.4.2.\u56fe\u6784\u5efa"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u6784\u5efa"}),"\u529f\u80fd\u4e3b\u8981\u7528\u4e8e\u56fe\u9879\u76ee\u7684\u6a21\u578b\u5b9a\u4e49\u548c\u6570\u636e\u5bfc\u5165\u3002\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u6784\u5efa"}),"\u6309\u94ae\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6309\u94ae",src:e(1270).A+"",width:"802",height:"326"})}),"\n",(0,n.jsx)(s.h5,{id:"2421\u6a21\u578b\u5b9a\u4e49",children:"2.4.2.1.\u6a21\u578b\u5b9a\u4e49"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u521b\u5efa\u548c\u7ef4\u62a4\u56fe\u6a21\u578b\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u4e5f\u53ef\u7528\u901a\u8fc7",(0,n.jsx)(s.code,{children:"cypher"}),"\u5de5\u5177\u548c",(0,n.jsx)(s.code,{children:"lgraph_import"}),"\u5de5\u5177\u521b\u5efa\u548c\u7ef4\u62a4\u56fe\u6a21\u578b\uff0c\u8be6\u89c1",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/query/cypher",children:"Cypher API"}),"\u548c",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"}),"\u6587\u6863\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"a\u6d4f\u89c8\u56fe\u6a21\u578b",children:"a.\u6d4f\u89c8\u56fe\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u53ef\u4ee5\u67e5\u770b\u8be6\u7ec6\u7684\u56fe\u6a21\u578b\u8bbe\u7f6e\uff0c\u652f\u6301\u5217\u8868\u548c\u753b\u5e03\u65b9\u5f0f\u67e5\u770b\u56fe\u6a21\u578b\uff0c\u652f\u6301\u5217\u8868\u5c55\u793a\u70b9\u7c7b\u578b\u7684\u5c5e\u6027\u548c\u7d22\u5f15\u3001\u8fb9\u7c7b\u578b\u7684\u5c5e\u6027\u548c\u8d77\u70b9/\u7ec8\u70b9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b",src:e(7411).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u652f\u6301\u5217\u8868\u67e5\u770b\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsx)(s.p,{children:"\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u4e2a\u6570\u5c55\u793a\uff0c\u5728\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\u9875\u7b7e\u4e2d\u5c55\u793a\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u6570\u91cf\u3002"}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u540d\u79f0\u5173\u952e\u5b57\u641c\u7d22\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u641c\u7d22\u6846"}),"\u8f93\u5165\u5173\u952e\u5b57\u53ef\u5c55\u793a\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u641c\u7d22",src:e(7993).A+"",width:"292",height:"182"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u540d\u79f0\u590d\u5236\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u590d\u5236"}),"\u6309\u94ae\u53ef\u4ee5\u590d\u5236\u70b9\u6216\u8fb9\u7684\u540d\u79f0\u81f3\u7c98\u8d34\u677f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u590d\u5236",src:e(3514).A+"",width:"289",height:"196"})}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\n",(0,n.jsxs)(s.p,{children:["\u652f\u6301\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u7684\u5220\u9664\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u53ef\u4ee5\u5220\u9664\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u5220\u9664",src:e(2240).A+"",width:"280",height:"187"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u753b\u5e03\u65b9\u5f0f\u67e5\u770b\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5728\u5217\u8868\u6216\u753b\u5e03\u4e2d\u70b9\u51fb\u76f8\u5e94\u7684\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\uff0c\u53ef\u4ee5\u5c55\u793a\u6a21\u578b\u8be6\u60c5\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6d4f\u89c8\u56fe\u6a21\u578b-\u5220\u9664",src:e(8766).A+"",width:"1653",height:"956"})]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"b\u6dfb\u52a0\u70b9",children:"b.\u6dfb\u52a0\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0\u70b9"}),"\u6309\u94ae\uff0c\u5728\u53f3\u4fa7\u6ed1\u52a8\u7a97\u53e3\u4e2d\u6dfb\u52a0\u70b9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u70b9\u6309\u94ae",src:e(446).A+"",width:"2852",height:"1484"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u9700\u8981\u8f93\u5165\u70b9\u7c7b\u578b\u540d\u79f0\u3001\u5c5e\u6027\u548c\u7d22\u5f15\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5b8c\u6210"}),"\u6309\u94ae\u5b8c\u6210\u70b9\u7c7b\u578b\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u70b9\u7c7b\u578b\u540d\u79f0\uff1a\u70b9\u7684\u540d\u79f0\uff0c\u4e5f\u662f\u8be5\u70b9\u7684\u552f\u4e00\u6807\u8bc6\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5c5e\u6027\uff1a\u70b9\u7684\u5c5e\u6027\uff0c\u9700\u8981\u4e00\u4e2a\u5c5e\u6027\u4f5c\u4e3a\u4e3b\u952e\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u7c7b\u578b\uff1a\u5c5e\u6027\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\uff0c\u652f\u6301INT\u3001STRING\u3001DOUBLE\u3001DATE\u3001DATETIME\u3001BLOB\u3001BOOL\u7b49\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9009\u586b\uff1a\u8be5\u5c5e\u6027\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\u503c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u70b9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u5c5e\u6027\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u7d22\u5f15\uff1a\u70b9\u7684\u7d22\u5f15\u5c5e\u6027\uff0c\u9700\u8981\u5148\u521b\u5efa\u5c5e\u6027\u518d\u8bbe\u7f6e\u8be5\u5c5e\u6027\u4e3a\u7d22\u5f15\uff0c\u7d22\u5f15\u521b\u5efa\u6210\u529f\u540e\u65e0\u6cd5\u4fee\u6539\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\uff1a\u9700\u8981\u914d\u7f6e\u7d22\u5f15\u7684\u5c5e\u6027\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u552f\u4e00\uff1a\u8bbe\u7f6e\u8be5\u5c5e\u6027\u5b57\u6bb5\u4e3a\u552f\u4e00\u503c\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u4e3b\u952e\uff1a\u5bf9\u5e94\u5c5e\u6027\u662f\u5426\u4e3a\u4e3b\u952e\uff0c\u9009\u62e9",(0,n.jsx)(s.code,{children:"\u662f"}),"\u540e",(0,n.jsx)(s.code,{children:"\u552f\u4e00"}),"\u9009\u9879\u5fc5\u987b\u4e3a",(0,n.jsx)(s.code,{children:"\u662f"}),"\u3002"]}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u70b9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u7d22\u5f15\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u70b9\u6309\u94ae",src:e(5131).A+"",width:"1634",height:"1131"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7f16\u8f91\u70b9\uff1a\u53ef\u4ee5\u589e\u52a0\u70b9\u7684\u5c5e\u6027\u548c\u4fee\u6539\u5df2\u6709\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\uff0c\u65b0\u589e\u6216\u5220\u9664\u7d22\u5f15\u3002\u9700\u8981\u5bf9\u6bcf\u4e2a\u65b0\u589e\u6216\u4fee\u6539\u7684\u5c5e\u6027\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4fdd\u5b58"}),"\u6309\u94ae\u624d\u53ef\u4ee5\u751f\u6548\u3002\n",(0,n.jsx)(s.em,{children:"\u6ce8\uff1a\u4e3b\u952e\u5b57\u6bb5\u7684\u5c5e\u6027\u521b\u5efa\u540e\u65e0\u4fee\u6539"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u7f16\u8f91\u70b9",src:e(7572).A+"",width:"576",height:"944"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u6dfb\u52a0\u8fb9",children:"c.\u6dfb\u52a0\u8fb9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0\u8fb9"}),"\u6309\u94ae\uff0c\u5728\u53f3\u4fa7\u6ed1\u52a8\u7a97\u53e3\u4e2d\u6dfb\u52a0\u8fb9\u7c7b\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u8fb9\u6309\u94ae",src:e(8341).A+"",width:"1636",height:"1126"})}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u9700\u8981\u8f93\u5165\u8fb9\u7c7b\u578b\u540d\u79f0\u3001\u5c5e\u6027\u3001\u9009\u62e9\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5b8c\u6210"}),"\u6309\u94ae\u5b8c\u6210\u8fb9\u7c7b\u578b\u7684\u521b\u5efa\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8fb9\u7c7b\u578b\u540d\u79f0\uff1a\u8fb9\u7684\u540d\u79f0\uff0c\u4e5f\u662f\u8be5\u8fb9\u7684\u552f\u4e00\u6807\u8bc6\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u5c5e\u6027\uff1a\u8fb9\u7684\u5c5e\u6027\uff0c\u8fb9\u4e0a\u53ef\u4ee5\u6ca1\u6709\u5c5e\u6027\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u7c7b\u578b\uff1a\u5c5e\u6027\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\uff0c\u652f\u6301INT\u3001STRING\u3001DOUBLE\u3001DATE\u3001DATETIME\u3001BLOB\u3001BOOL\u7b49\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9009\u586b\uff1a\u8be5\u5c5e\u6027\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\u503c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u521b\u5efa\u8fb9\u65f6\u53ef\u4ee5\u4efb\u610f\u5220\u9664\u5c5e\u6027\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u9009\u62e9\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u8fb9\u7684\u8d77\u70b9\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u70b9\u7c7b\u578b\uff0c\u652f\u6301\u591a\u4e2a\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u7c7b\u578b\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8d77\u70b9\uff1a\u9009\u62e9\u8d77\u70b9\u7684\u70b9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u7ec8\u70b9\uff1a\u9009\u62e9\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9700\u8981\u63d0\u524d\u521b\u5efa\u81f3\u5c11\u4e00\u4e2a\u70b9\u7c7b\u578b\u624d\u80fd\u8bbe\u7f6e\u8fb9\u7684\u8d77\u70b9\u7c7b\u578b\u548c\u7ec8\u70b9\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5982\u679c\u4e0d\u9009\u62e9\u5219\u8868\u793a\u8d77\u70b9\u548c\u7ec8\u70b9\u53ef\u4ee5\u4e3a\u4efb\u610f\u70b9\u7c7b\u578b\uff0c\u540c\u65f6\u753b\u5e03\u4e0a\u4e0d\u5c55\u793a\u5bf9\u5e94\u7684\u8fb9\uff0c\u9700\u8981\u5728\u5de6\u4fa7\u5217\u8868\u67e5\u770b\u8fb9\u7c7b\u578b\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6dfb\u52a0\u8fb9",src:e(6314).A+"",width:"586",height:"693"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7f16\u8f91\u8fb9\uff1a\u53ef\u4ee5\u589e\u52a0\u8fb9\u7684\u5c5e\u6027\u548c\u4fee\u6539\u5df2\u6709\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\u3002\u9700\u8981\u5bf9\u6bcf\u4e2a\u65b0\u589e\u6216\u4fee\u6539\u7684\u5c5e\u6027\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4fdd\u5b58"}),"\u6309\u94ae\u624d\u53ef\u4ee5\u751f\u6548\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u7f16\u8f91\u8fb9",src:e(6537).A+"",width:"582",height:"806"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u5bfc\u5165\u6a21\u578b",children:"d.\u5bfc\u5165\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5bfc\u5165\u6a21\u578b"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u4e0a\u4f20\u6a21\u578b\u6587\u4ef6\u5feb\u901f\u521b\u5efa\u6a21\u578b\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u5165\u6a21\u578b\u6309\u94ae",src:e(2349).A+"",width:"474",height:"47"})}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u5bfc\u5165\u6a21\u578b"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0a\u4f20\u6587\u4ef6"}),"\u6309\u94ae\uff0c\u4e0a\u4f20\u6a21\u578b\u6587\u4ef6\u6210\u529f\u540e\uff0c\u70b9\u51fb\u786e\u5b9a\u53ef\u4ee5\u5bfc\u5165\u56fe\u6a21\u578b\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8986\u76d6\u5f53\u524d\u753b\u5e03\u4e2d\u7684\u6a21\u578b\uff1a\u9009\u4e2d\u8be5\u9009\u9879\uff0c\u5bfc\u5165\u65f6\u4f1a\u5148\u6e05\u7a7a\u5df2\u6709\u56fe\u6a21\u578b\u518d\u5bfc\u5165\u6a21\u578b\u6587\u4ef6\u4e2d\u7684\u56fe\u6a21\u578b\uff1b\u4e0d\u9009\u62e9\uff0c\u4f1a\u5bfc\u5165\u6a21\u578b\u6587\u4ef6\u4e2d\u65b0\u589e\u7684\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\uff0c\u4f46\u4e0d\u4f1a\u4fee\u6539\u5df2\u6709\u7684\u70b9\u7c7b\u578b\u548c\u8fb9\u7c7b\u578b\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u5165\u6a21\u578b",src:e(5522).A+"",width:"948",height:"514"})}),"\n",(0,n.jsx)(s.h6,{id:"e\u5bfc\u51fa\u6a21\u578b",children:"e.\u5bfc\u51fa\u6a21\u578b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5bfc\u51fa\u6a21\u578b"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u5c06\u5f53\u524d\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6a21\u578b\u5bfc\u51fa\u6210json\u6587\u4ef6\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u51fa\u6a21\u578b\u6309\u94ae",src:e(3056).A+"",width:"456",height:"53"})}),"\n",(0,n.jsx)(s.p,{children:"\u6a21\u578b\u6587\u4ef6\u4e3ajson\u683c\u5f0f\uff0c\u4e0d\u5efa\u8bae\u624b\u52a8\u4fee\u6539\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u5bfc\u51fa\u6a21\u578b\u6309\u94ae",src:e(6605).A+"",width:"1408",height:"144"})}),"\n",(0,n.jsx)(s.h5,{id:"2422\u6570\u636e\u5bfc\u5165",children:"2.4.2.2.\u6570\u636e\u5bfc\u5165"}),"\n",(0,n.jsxs)(s.p,{children:["\u5b8c\u6210",(0,n.jsx)(s.code,{children:"\u6a21\u578b\u5b9a\u4e49"}),"\u4e4b\u540e\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u6309\u94ae\u8fdb\u5165\u6570\u636e\u5bfc\u5165\u9875\u9762\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u6784\u5efa-\u6570\u636e\u5bfc\u5165",src:e(3553).A+"",width:"2848",height:"1468"})}),"\n",(0,n.jsx)(s.h6,{id:"a\u6570\u636e\u51c6\u5907",children:"a.\u6570\u636e\u51c6\u5907"}),"\n",(0,n.jsx)(s.p,{children:"\u5728\u6570\u636e\u5bfc\u5165\u524d\u9700\u8981\u63d0\u524d\u51c6\u5907\u6570\u636e\uff0c\u5f53\u524dBrowser\u652f\u6301CSV\u6587\u4ef6\u7684\u4e0a\u4f20\uff0c\u9700\u8981\u4fdd\u8bc1\u6570\u636e\u6587\u4ef6\u540e\u7f00\u4e3acsv\u3002"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4e0d\u5f3a\u5236\u8981\u6c42\u5305\u542b\u8868\u5934\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u6587\u672c\u9650\u5b9a\u7b26\uff0c\u6587\u672c\u9650\u5b9a\u7b26\u4e3a\u53cc\u5f15\u53f7\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-csv",src:e(3034).A+"",width:"258",height:"256"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u4e0a\u4f20\u6587\u4ef6",children:"b.\u4e0a\u4f20\u6587\u4ef6"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u9875\u9762\u4e0a\u4f20\u9700\u8981\u5bfc\u5165\u7684\u6570\u636e\u6587\u4ef6\uff0c\u5c06\u6570\u636e\u5bfc\u5165\u5230\u56fe\u9879\u76ee\u4e2d\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u4e0a\u4f20\u6587\u4ef6",src:e(857).A+"",width:"586",height:"378"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5206\u9694\u7b26\uff1a\u6570\u636e\u6587\u4ef6\u7684\u5217\u5206\u9694\u7b26\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u6587\u4ef6\u4e0a\u4f20\uff1a\u652f\u6301\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u5f39\u7a97\u4e2d\u9009\u62e9\u591a\u4e2a\u4e0a\u4f20\u6587\u4ef6\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u5c06\u6587\u4ef6\u62d6\u62fd\u81f3\u9875\u9762\u4e2d\u4e0a\u4f20\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u652f\u6301\u540c\u65f6\u4e0a\u4f20\u70b9\u6587\u4ef6\u548c\u8fb9\u6587\u4ef6\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h6,{id:"c\u6570\u636e\u6620\u5c04",children:"c.\u6570\u636e\u6620\u5c04"}),"\n",(0,n.jsxs)(s.p,{children:["\u6587\u4ef6\u4e0a\u4f20\u6210\u529f\u540e\uff0c\u9700\u8981\u5728",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bfc\u5165"}),"\u9875\u9762\u8bbe\u7f6e",(0,n.jsx)(s.code,{children:"\u6570\u636e\u5bf9\u5e94\u8868"}),"\uff0c\u5c06\u6570\u636e\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5217\u548c\u76ee\u6807\u70b9/\u8fb9\u3001\u5bf9\u5e94\u5c5e\u6027\u5efa\u7acb\u6620\u5c04\u5173\u7cfb\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6570\u636e\u5bf9\u5e94\u8868\uff1a\u5c55\u793a\u5df2\u7ecf\u4e0a\u4f20\u7684\u6570\u636e\u95ee\u9898\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6587\u4ef6\u540d\u79f0\uff1a\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u540d\u79f0\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6587\u4ef6\u5927\u5c0f\uff1a\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u5927\u5c0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8bfb\u53d6\u7ed3\u679c\uff1a\u6570\u636e\u6587\u4ef6\u4e0a\u4f20\u7ed3\u679c\uff0csuccess\u4e3a\u8bfb\u53d6\u6210\u529f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5220\u9664\uff1a\u5728\u9875\u9762\u4e2d\u5220\u9664\uff0c\u4e0d\u4f1a\u5220\u9664\u672c\u5730\u6587\u4ef6\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u6570\u636e\u6587\u4ef6\u6620\u5c04\uff1a\u6bcf\u4e2a\u5df2\u4e0a\u4f20\u7684\u6570\u636e\u6587\u4ef6\u90fd\u9700\u8981\u914d\u7f6e\u6620\u5c04\u5173\u7cfb\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6807\u7b7e\uff1a\u9009\u62e9\u8be5\u6587\u4ef6\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u53ea\u80fd\u9009\u62e9\u4e00\u7c7b\u70b9\u6216\u4e00\u7c7b\u8fb9\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4ece\u7b2cN\u884c\uff0c\u5f00\u59cb\uff1a\u4ece\u7b2cN\u884c\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4ece\u7b2c0\u884c\u5f00\u59cb\u8bfb\u53d6\u6570\u636e\uff0c\u5982\u9700\u8df3\u8fc7\u8868\u5934\u53ef\u8f93\u51651\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\u6620\u5c04\uff1a\u4e0b\u62c9\u9009\u62e9\u6570\u636e\u5217\u5bf9\u5e94\u7684\u5c5e\u6027\u5b57\u6bb5\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6570\u636e\u9884\u89c8\uff1a\u7cfb\u7edf\u4f1a\u9884\u8bfb\u6570\u636e\u6587\u4ef6\u7684\u524d5\u884c\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u6570\u636e\u6620\u5c04",src:e(2184).A+"",width:"573",height:"1268"})}),"\n",(0,n.jsxs)(s.p,{children:["\u6587\u4ef6\u4e0a\u4f20\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7ee7\u7eed\u5bfc\u5165"}),"\u6309\u94ae\u7ee7\u7eed\u5bfc\u5165\u5176\u4ed6\u6570\u636e\uff0c\u6216\u8005\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u524d\u5f80\u56fe\u67e5\u8be2"}),"\u6309\u94ae\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u9875\u9762\u67e5\u8be2\u5df2\u5bfc\u5165\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5bfc\u5165-\u5bfc\u5165\u6210\u529f",src:e(8247).A+"",width:"278",height:"239"})}),"\n",(0,n.jsx)(s.h4,{id:"243\u56fe\u67e5\u8be2",children:"2.4.3.\u56fe\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u67e5\u8be2\u548c\u8bbf\u95ee\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6570\u636e\uff0c\u4ea7\u54c1\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u3001",(0,n.jsx)(s.code,{children:"\u8def\u5f84\u67e5\u8be2"}),"\u3001",(0,n.jsx)(s.code,{children:"\u70b9\u67e5\u8be2"}),"\u7b49\u591a\u79cd\u6a21\u5f0f\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u652f\u6301\u5207\u6362\u56fe\u9879\u76ee\u548c\u67e5\u8be2\u7ed3\u679c\u5c55\u793a\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6309\u94ae",src:e(6838).A+"",width:"1686",height:"730"})}),"\n",(0,n.jsx)(s.h5,{id:"2431\u5207\u6362\u56fe\u9879\u76ee",children:"2.4.3.1.\u5207\u6362\u56fe\u9879\u76ee"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u56fe\u67e5\u8be2"}),"\u529f\u80fd\u53ea\u80fd\u8bbf\u95ee\u4e00\u4e2a\u56fe\u9879\u76ee\u6570\u636e\uff0c\u7528\u6237\u53ef\u4ee5\u5728",(0,n.jsx)(s.code,{children:"\u5207\u6362\u56fe\u9879\u76ee"}),"\u4e0b\u62c9\u6846\u4e2d\u9009\u62e9\u5e76\u5207\u6362\u81f3\u5176\u4ed6\u56fe\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u5207\u6362\u56fe\u9879\u76ee",src:e(2471).A+"",width:"221",height:"321"})}),"\n",(0,n.jsx)(s.h5,{id:"2432\u8bed\u53e5\u67e5\u8be2",children:"2.4.3.2.\u8bed\u53e5\u67e5\u8be2"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u65b9\u5f0f\u5f00\u53d1\u548c\u8c03\u8bd5\u56fe\u67e5\u8be2\u8bed\u53e5\uff0c\u7528\u6237\u53ef\u4ee5\u8f93\u5165\u56fe\u67e5\u8be2\u8bed\u53e5\u3001\u6267\u884c\u5e76\u8fd4\u56de\u7ed3\u679c\uff0c\u652f\u6301\u6536\u85cf\u8bed\u53e5\u548c\u67e5\u770b\u56fe\u6a21\u578b\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u53e5\u67e5\u8be2",src:e(1349).A+"",width:"2868",height:"1482"})}),"\n",(0,n.jsx)(s.h6,{id:"a\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3",children:"a.\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3"}),"\n",(0,n.jsxs)(s.p,{children:["\u7528\u6237\u5728",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3"}),"\u8f93\u5165\u56fe\u67e5\u8be2\u8bed\u53e5\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\u53ef\u4ee5\u8fd0\u884c\u5bf9\u5e94\u8bed\u53e5\uff0c\u5e76\u5728",(0,n.jsx)(s.code,{children:"\u6267\u884c\u7ed3\u679c\u9875\u7b7e"}),"\u5c55\u793a\u7ed3\u679c\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u5207\u6362\u67e5\u8be2\u8bed\u8a00\uff1a\u63d0\u4f9b\u4e0d\u540c\u56fe\u67e5\u8be2\u8bed\u8a00\u6a21\u5f0f\u7684\u5207\u6362\u3002",(0,n.jsx)(s.em,{children:"\u5f53\u524d\u53ea\u652f\u6301Cypher\u8bed\u6cd5"})]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u5207\u6362\u8bed\u8a00",src:e(6567).A+"",width:"144",height:"128"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\uff1a\u63d0\u4f9b\u5f53\u524d\u67e5\u8be2\u8bed\u8a00\u7684\u8bed\u6cd5\u63d0\u793a\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u6cd5\u63d0\u793a",src:e(522).A+"",width:"1118",height:"376"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6267\u884c\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\uff0c\u53d1\u9001\u8f93\u5165\u7684\u67e5\u8be2\u8bed\u53e5\u81f3\u540e\u53f0\u8fd0\u884c\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6267\u884c\u6309\u94ae",src:e(9464).A+"",width:"91",height:"40"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u6536\u85cf\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6536\u85cf"}),"\u6309\u94ae\uff0c\u5c06\u5f53\u524d\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\u7684\u5185\u5bb9\u4fdd\u5b58\u6210\u6a21\u677f\uff0c\u4ee5\u4fbf\u4e0b\u6b21\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u6536\u85cf\u6309\u94ae",src:e(885).A+"",width:"60",height:"24"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u4e0b\u8f7d\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u8f7d"}),"\u6309\u94ae\uff0c\u5c06\u5f53\u524d\u8bed\u53e5\u67e5\u8be2\u7a97\u53e3\u7684\u5185\u5bb9\u4fdd\u5b58\u6210\u6587\u672c\u6587\u4ef6\u5e76\u4e0b\u8f7d\u81f3\u672c\u5730\uff0c\u4ee5\u4fbf\u4e0b\u6b21\u4f7f\u7528\u3002"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u4e0b\u8f7d\u6309\u94ae",src:e(3453).A+"",width:"60",height:"24"})}),"\n",(0,n.jsxs)(s.p,{children:["\u8be6\u7ec6Cypher\u4f7f\u7528\u6307\u5357\u8bf7\u53c2\u8003\u6587\u6863\uff1a",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/query/cypher",children:"Cypher API"})]}),"\n",(0,n.jsx)(s.h6,{id:"b\u6536\u85cf\u5217\u8868",children:"b.\u6536\u85cf\u5217\u8868"}),"\n",(0,n.jsx)(s.p,{children:"\u4ee5\u5217\u8868\u65b9\u5f0f\u5c55\u793a\u5df2\u7ecf\u6536\u85cf\u7684\u67e5\u8be2\u8bed\u53e5\uff0c\u70b9\u51fb\u5217\u8868\u4e2d\u7684\u6536\u85cf\u6a21\u677f\u53ef\u4ee5\u4f7f\u7528\u5176\u4e2d\u7684\u8bed\u53e5\u3002\u652f\u6301\u5173\u952e\u5b57\u641c\u7d22\u3001\u540d\u79f0\u4fee\u6539\u4ee5\u53ca\u5220\u9664\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u8bed\u53e5\u6536\u85cf",src:e(1658).A+"",width:"267",height:"196"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u67e5\u770b\u56fe\u6a21\u578b",children:"c.\u67e5\u770b\u56fe\u6a21\u578b"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u5f53\u524d\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6a21\u578b\u67e5\u8be2\uff0c\u65b9\u4fbf\u7528\u6237\u6e05\u6670\u70b9\u8fb9\u7c7b\u578b\u6a21\u578b\uff0c\u652f\u6301\u5217\u8868\u5c55\u793a\u548c\u753b\u5e03\u56fe\u8c31\u5c55\u793a\u65b9\u5f0f\uff0c\u652f\u6301\u9690\u85cf\u67e5\u770b\u56fe\u6a21\u578b\u7a97\u53e3\u3002"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u56fe\u6a21\u578b\u5217\u8868",src:e(7566).A+"",width:"342",height:"409"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u67e5\u8be2-\u56fe\u6a21\u578b\u56fe\u8c31",src:e(3532).A+"",width:"345",height:"411"})]}),"\n",(0,n.jsx)(s.h5,{id:"2433\u8def\u5f84\u67e5\u8be2",children:"2.4.3.3.\u8def\u5f84\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8def\u5f84\u67e5\u8be2"}),"\u6a21\u677f\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u9009\u62e9\u8def\u5f84\u7684\u65b9\u5f0f\uff0c\u67e5\u627e\u56fe\u9879\u76ee\u4e2d\u7684\u56fe\u6570\u636e\u662f\u5426\u5b58\u5728\u76f8\u5e94\u7684\u8def\u5f84\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2",src:e(5684).A+"",width:"1412",height:"866"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u8def\u5f84\uff1a\u5728\u8def\u5f84\u9009\u62e9\u4e0b\u62c9\u6846\u5185\u9009\u62e9\u9700\u8981\u67e5\u627e\u7684\u8def\u5f84\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u9009\u62e9\u8def\u5f84\uff1a\u6839\u636e\u56fe\u6a21\u578b\u7684\u5b9a\u4e49\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5339\u914d\u51fa\u5bf9\u5e94\u7684\u4e00\u5ea6\u5173\u7cfb\u8def\u5f84\uff1b\u518d\u6b21\u70b9\u51fb\u8def\u5f84\u4e0b\u62c9\u6846\u4f1a\uff0c\u7cfb\u7edf\u4f1a\u6839\u636e\u8def\u5f84\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u81ea\u52a8\u5339\u914d\u4e0b\u4e00\u5ea6\u5173\u7cfb\u8def\u5f84\u3002\n",(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2-\u9009\u62e9\u8def\u5f84",src:e(9143).A+"",width:"1412",height:"384"})]}),"\n",(0,n.jsxs)(s.li,{children:["\u6267\u884c\uff1a\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6267\u884c"}),"\u6309\u94ae\u8fd4\u56de\u56fe\u9879\u76ee\u4e2d\u5339\u914d\u7684\u8def\u5f84\u3002"]}),"\n",(0,n.jsxs)(s.li,{children:["\u9ad8\u7ea7\u914d\u7f6e\uff1a\u8bbe\u7f6e\u626b\u63cf\u7684\u8def\u5f84\u6570\u76ee\uff0c\u9ed8\u8ba4\u4e3a100\u6761\u8def\u5f84\u3002\n",(0,n.jsx)(s.img,{alt:"\u8def\u5f84\u67e5\u8be2-\u9ad8\u7ea7\u914d\u7f6e",src:e(5801).A+"",width:"976",height:"229"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.em,{children:"\u6ce8\uff1a\u9700\u8981\u56fe\u6a21\u578b\u4e2d\u7684\u8fb9\u8bbe\u7f6e\u8d77\u70b9\u548c\u7ec8\u70b9\uff0c\u5982\u679c\u56fe\u9879\u76ee\u4e2d\u7684\u8fb9\u5747\u672a\u8bbe\u7f6e\u8d77\u70b9\u548c\u7ec8\u70b9\uff0c\u4e0b\u62c9\u9009\u9879\u65e0\u7ed3\u679c"})}),"\n",(0,n.jsx)(s.h5,{id:"2434\u70b9\u67e5\u8be2",children:"2.4.3.4.\u70b9\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u70b9\u67e5\u8be2"}),"\u6a21\u677f\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u9009\u62e9\u70b9\u5c5e\u6027\u8fdb\u884c\u67e5\u8be2\uff0c\u67e5\u627e\u56fe\u9879\u76ee\u4e2d\u7684\u70b9\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u70b9\u67e5\u8be2",src:e(3353).A+"",width:"2844",height:"1490"})}),"\n",(0,n.jsx)(s.h5,{id:"2435\u6267\u884c\u7ed3\u679c\u9875\u7b7e",children:"2.4.3.5.\u6267\u884c\u7ed3\u679c\u9875\u7b7e"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u8868\u683c\u6587\u672c\u3001\u70b9\u8fb9\u89c6\u56fe\u7b49\u591a\u79cd\u65b9\u5f0f\u5c55\u793a\u56fe\u67e5\u8be2\u7ed3\u679c\uff0c\u652f\u6301\u7ed3\u679c\u4e0b\u8f7d\u3001\u63d2\u5165\u6570\u636e\u3001\u5168\u5c4f\u5c55\u793a\u3002"}),"\n",(0,n.jsx)(s.h6,{id:"a\u8868\u683c\u6587\u672c",children:"a.\u8868\u683c\u6587\u672c"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u4ee5\u8868\u683c\u6587\u672c\u65b9\u5f0f\u5c55\u793a\u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"JSON\u89c6\u56fe",src:e(6074).A+"",width:"2868",height:"1502"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u70b9\u8fb9\u89c6\u56fe",children:"b.\u70b9\u8fb9\u89c6\u56fe"}),"\n",(0,n.jsx)(s.p,{children:"Browser\u63d0\u4f9b\u4ee5\u753b\u5e03\u65b9\u5f0f\u5c55\u793a\u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u70b9\u8fb9\u89c6\u56fe",src:e(7362).A+"",width:"2850",height:"1496"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u63d2\u5165\u6570\u636e",children:"c.\u63d2\u5165\u6570\u636e"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u53ef\u89c6\u5316\u65b9\u5f0f\u5728\u5bf9\u5e94\u56fe\u9879\u76ee\u4e2d\u63d2\u5165\u70b9\u6216\u8fb9\u6570\u636e\u3002\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u63d2\u5165\u6570\u636e"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u63d2\u5165\u6570\u636e"}),"\u9875\u7b7e\u9009\u62e9\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\uff0c\u8f93\u5165\u5c5e\u6027\u503c\uff0c\u70b9\u51fb\u786e\u5b9a\u5b8c\u6210\u6570\u636e\u63d2\u5165\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u63d2\u5165\u6570\u636e-\u6309\u94ae",src:e(9290).A+"",width:"108",height:"114"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u63d2\u5165\u6570\u636e",src:e(7231).A+"",width:"514",height:"931"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c",children:"d.\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u56fe\u67e5\u8be2\u7ed3\u679c\u5bfc\u51fa\u6210\u6587\u672c\u6587\u4ef6\u529f\u80fd\u3002\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c"}),"\u6309\u94ae\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5c06\u7ed3\u679c\u4fdd\u5b58\u6210\u6587\u672c\u6587\u4ef6\u5e76\u4e0b\u8f7d\u81f3\u672c\u5730\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c-\u6309\u94ae",src:e(9420).A+"",width:"124",height:"117"}),"\n",(0,n.jsx)(s.img,{alt:"\u4e0b\u8f7d\u6267\u884c\u7ed3\u679c-\u6309\u94ae",src:e(4534).A+"",width:"546",height:"77"})]}),"\n",(0,n.jsx)(s.h6,{id:"e\u5168\u5c4f\u5c55\u793a",children:"e.\u5168\u5c4f\u5c55\u793a"}),"\n",(0,n.jsxs)(s.p,{children:["Browser\u63d0\u4f9b\u5168\u5c4f\u65b9\u5f0f\u5c55\u793a\u56fe\u67e5\u8be2\u7ed3\u679c\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5168\u5c4f\u663e\u793a"}),"\u6309\u94ae\u5168\u5c4f\u5c55\u793a\u7ed3\u679c\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u9000\u51fa\u5168\u5c4f"}),"\u6309\u94ae\u9000\u51fa\u5168\u5c4f\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a-\u6309\u94ae",src:e(6490).A+"",width:"96",height:"107"}),"\n",(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a",src:e(5359).A+"",width:"2844",height:"1502"}),"\n",(0,n.jsx)(s.img,{alt:"\u5168\u5c4f\u5c55\u793a-\u6309\u94ae",src:e(6488).A+"",width:"58",height:"41"})]}),"\n",(0,n.jsx)(s.h4,{id:"244\u56fe\u5206\u6790",children:"2.4.4.\u56fe\u5206\u6790"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u56fe\u9879\u76ee"}),"\u754c\u9762\u70b9\u51fb\u56fe\u9879\u76ee\u9009\u9879\u5361\u4e2d\u7684",(0,n.jsx)(s.code,{children:"\u56fe\u5206\u6790"}),"\u6309\u94ae\uff0c\u53ef\u4ee5\u5728\u753b\u5e03\u4e2d\u5c55\u793a\u548c\u5206\u6790\u56fe\u6570\u636e\uff0c\u4ea7\u54c1\u63d0\u4f9b",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u548c",(0,n.jsx)(s.code,{children:"\u914d\u7f6e\u67e5\u8be2"}),"\u5c06\u56fe\u9879\u76ee\u4e2d\u7684\u6570\u636e\u67e5\u8be2\u5e76\u52a0\u8f7d\u81f3\u753b\u5e03\uff0c\u652f\u6301\u753b\u5e03\u6570\u636e\u7684\u7b5b\u9009\u3001\u5e03\u5c40\u6837\u5f0f\u8c03\u6574\u4ee5\u53ca\u753b\u5e03\u64cd\u4f5c\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6309\u94ae",src:e(2576).A+"",width:"808",height:"324"})}),"\n",(0,n.jsx)(s.p,{children:"\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u56fe\u5206\u6790\u529f\u80fd\u4e3b\u8981\u5305\u62ec\uff1a"}),"\n",(0,n.jsx)(s.p,{children:"1\u3001\u64cd\u4f5c\u680f\uff1a\u56fe\u5206\u6790\u4e3b\u8981\u64cd\u4f5c\u529f\u80fd\uff0c\u5305\u62ec\u5e03\u5c40\u5207\u6362\u3001\u67e5\u8be2\u8fc7\u6ee4\u3001\u5e03\u5c40\u3001\u6837\u5f0f\u4ee5\u53ca\u753b\u5e03\u64cd\u4f5c\uff1b\n2\u3001\u5de6\u8fb9\u680f\uff1a\u67e5\u8be2\u3001\u7b5b\u9009\u3001\u5916\u89c2\u529f\u80fd\u64cd\u4f5c\u533a\u57df\uff1b\n3\u3001\u753b\u5e03\u533a\u57df\uff1a\u5c55\u793a\u56fe\u6570\u636e\u7684\u533a\u57df\uff0c\u5c55\u793a\u70b9\u548c\u8fb9\u6570\u636e\uff0c\u652f\u6301\u70b9\u6269\u5c55\u67e5\u8be2\u3001\u6536\u8d77\u8282\u70b9\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u5220\u9664\u8282\u70b9\u3001\u753b\u5e03\u56fe\u6570\u636e\u7edf\u8ba1\u3001\u7f29\u653e\u3001\u5c45\u4e2d\u7b49\u529f\u80fd\uff1b\n4\u3001\u53f3\u8fb9\u680f\uff1a\u9009\u4e2d\u4e00\u4e2a\u70b9\u6570\u636e\u6216\u8fb9\u6570\u636e\u540e\uff0c\u4f1a\u5c55\u793a\u5bf9\u5e94\u7684\u5c5e\u6027\u4fe1\u606f\uff1b\n5\u3001\u5e03\u5c40\u5207\u6362\uff1a\u6807\u7b7e\u5e03\u5c40\u548c\u5361\u7247\u5e03\u5c40\u7684\u5207\u6362\u3002"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u64cd\u4f5c\u533a\u57df",src:e(3355).A+"",width:"2866",height:"1498"})}),"\n",(0,n.jsx)(s.h5,{id:"2441\u8bed\u53e5\u67e5\u8be2",children:"2.4.4.1.\u8bed\u53e5\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8bed\u53e5\u67e5\u8be2"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u8f93\u5165\u67e5\u8be2\u8bed\u53e5\u6765\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u5e76\u52a0\u8f7d\u6570\u636e\u81f3\u753b\u5e03\u533a\u57df\u8fdb\u884c\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u8bed\u6cd5\u8bf4\u660e\uff1aTuGraph\u7684",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/query/cypher",children:"\u67e5\u8be2\u8bed\u8a00\u53ca\u8bed\u6cd5\u8bf4\u660e\u6587\u6863"}),"\u3002"]}),"\n",(0,n.jsx)(s.li,{children:"\u6e05\u7a7a\u753b\u5e03\u6570\u636e\uff1a\u672a\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u7684\u7ed3\u679c\u4f1a\u8ffd\u52a0\u81f3\u753b\u5e03\u533a\u57df\uff1b\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u524d\u4f1a\u5148\u6e05\u7a7a\u753b\u5e03\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u8bed\u53e5\u67e5\u8be2",src:e(5615).A+"",width:"690",height:"1246"})}),"\n",(0,n.jsx)(s.h5,{id:"2442\u914d\u7f6e\u67e5\u8be2",children:"2.4.4.2.\u914d\u7f6e\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u914d\u7f6e\u67e5\u8be2"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8282\u70b9\u7c7b\u578b\u548c\u8f93\u5165\u5c5e\u6027\u6761\u4ef6\u6765\u67e5\u8be2\u56fe\u6570\u636e\uff0c\u5e76\u52a0\u8f7d\u6570\u636e\u81f3\u753b\u5e03\u533a\u57df\u8fdb\u884c\u5c55\u793a\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u6e05\u7a7a\u753b\u5e03\u6570\u636e\uff1a\u672a\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u7684\u7ed3\u679c\u4f1a\u8ffd\u52a0\u81f3\u753b\u5e03\u533a\u57df\uff1b\u9009\u62e9\u6b64\u6309\u94ae\uff0c\u6bcf\u6b21\u6267\u884c\u67e5\u8be2\u524d\u4f1a\u5148\u6e05\u7a7a\u753b\u5e03\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6a21\u677f\u67e5\u8be2",src:e(243).A+"",width:"2878",height:"1226"})}),"\n",(0,n.jsx)(s.h5,{id:"2443\u753b\u5e03\u5206\u6790",children:"2.4.4.3.\u753b\u5e03\u5206\u6790"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03\u5206\u6790"}),"\u529f\u80fd\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u5bf9\u753b\u5e03\u4e2d\u7684\u8282\u70b9\u6216\u8fb9\u6570\u636e\u8fdb\u884c\u64cd\u4f5c\u548c\u5206\u6790\uff0c\u4e3b\u8981\u5305\u62ec\uff1a\u9009\u4e2d\u8282\u70b9\u8fdb\u884c\u6269\u5c55\u67e5\u8be2\u3001\u6536\u8d77/\u5c55\u5f00\u8282\u70b9\u3001\u56fa\u5b9a\u8282\u70b9\uff0c\u6e05\u7a7a\u753b\u5e03\uff0c\u5957\u7d22\uff0c\u70b9/\u8fb9\u68c0\u7d22\uff0c\u753b\u5e03\u56fe\u4f8b\u7b49\u3002\u753b\u5e03\u4e0a\u7684\u6700\u57fa\u7840\u64cd\u4f5c\u662f\u62d6\u62fd\u70b9\u6570\u636e\uff0c\u9f20\u6807\u5de6\u952e\u9009\u4f4f\u4e00\u4e2a\u8282\u70b9\u5e76\u79fb\u52a8\u9f20\u6807\uff0c\u53ef\u4ee5\u5b8c\u6210\u70b9\u6570\u636e\u4f4d\u7f6e\u7684\u79fb\u52a8\u3002"]}),"\n",(0,n.jsx)(s.h6,{id:"a\u6269\u5c55\u67e5\u8be2",children:"a.\u6269\u5c55\u67e5\u8be2"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u9f20\u6807\u79fb\u81f3",(0,n.jsx)(s.code,{children:"\u6269\u5c55\u67e5\u8be2"}),"\u5904\u5f39\u51fa\u4e8c\u7ea7\u60ac\u7a97\uff0c\u70b9\u51fb\u5bf9\u5e94\u7684\u6269\u5c55\u5ea6\u6570\u8fdb\u884c\u67e5\u8be2\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u4e00\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e00\u5ea6\u5173\u7cfb\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4e8c\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e8c\u5ea6\u5173\u7cfb\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u4e09\u5ea6\u67e5\u8be2\uff1a\u53cc\u5411\u6269\u5c55\u4e09\u5ea6\u5173\u7cfb\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6269\u5c55\u67e5\u8be2-\u6309\u94ae",src:e(8199).A+"",width:"920",height:"698"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6269\u5c55\u67e5\u8be2-\u67e5\u8be2\u540e",src:e(4426).A+"",width:"330",height:"338"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u6536\u8d77\u5c55\u5f00\u8282\u70b9",children:"b.\u6536\u8d77/\u5c55\u5f00\u8282\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6536\u8d77\u8282\u70b9"}),"\u4f1a\u9690\u85cf\u6240\u9009\u8282\u70b9\u7684\u4e00\u5ea6\u5173\u7cfb\u8282\u70b9\uff1b\u518d\u6b21\u53f3\u952e\u5df2",(0,n.jsx)(s.code,{children:"\u6536\u8d77\u8282\u70b9"}),"\u7684\u70b9\u6570\u636e\u53ef\u4ee5\u8fdb\u884c",(0,n.jsx)(s.code,{children:"\u5c55\u5f00\u8282\u70b9"}),"\u64cd\u4f5c\uff0c\u5c55\u793a\u5df2\u9690\u85cf\u7684\u4e00\u5ea6\u5173\u7cfb\u8282\u70b9\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6536\u8d77\u8282\u70b9",src:e(6938).A+"",width:"880",height:"736"})}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5c55\u5f00\u8282\u70b9",src:e(8999).A+"",width:"854",height:"682"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u5220\u9664\u8282\u70b9",children:"c.\u5220\u9664\u8282\u70b9"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u53f3\u952e\u70b9\u51fb\u4e00\u4e2a\u8282\u70b9\u6570\u636e\uff0c\u5f39\u51fa\u64cd\u4f5c\u60ac\u7a97\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664\u8282\u70b9"}),"\u4f1a\u5c06\u6240\u9009\u8282\u70b9\u79fb\u51fa\u753b\u5e03\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5220\u9664\u8282\u70b9",src:e(8014).A+"",width:"754",height:"604"})}),"\n",(0,n.jsx)(s.h6,{id:"d\u6e05\u7a7a\u753b\u5e03",children:"d.\u6e05\u7a7a\u753b\u5e03"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6e05\u7a7a\u753b\u5e03"}),"\u6309\u94ae\uff0c\u4f1a\u6e05\u9664\u6240\u6709\u753b\u5e03\u4e2d\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u6e05\u7a7a\u753b\u5e03",src:e(5080).A+"",width:"1496",height:"122"})}),"\n",(0,n.jsx)(s.h6,{id:"e\u70b9\u8fb9\u68c0\u7d22",children:"e.\u70b9/\u8fb9\u68c0\u7d22"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u70b9/\u8fb9\u68c0\u7d22"}),"\u7a97\u53e3\u9009\u62e9\u70b9\u6216\u8fb9\uff0c\u5e76\u8f93\u5165\u5173\u952e\u5b57\uff0c\u4f1a\u6a21\u7cca\u68c0\u7d22\u753b\u5e03\u4e2d\u7684\u5c5e\u6027\u6570\u636e\uff0c\u68c0\u7d22\u540e\u53ef\u5b9a\u4f4d\u81f3\u6570\u636e\u4f4d\u7f6e\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u68c0\u7d22",src:e(171).A+"",width:"1832",height:"1230"})}),"\n",(0,n.jsx)(s.h6,{id:"f\u753b\u5e03\u56fe\u4f8b",children:"f.\u753b\u5e03\u56fe\u4f8b"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u753b\u5e03"}),"\u533a\u57df\u7684\u56fe\u4f8b\u4f4d\u7f6e\uff0c\u4f1a\u5c55\u793a\u753b\u5e03\u4e2d\u7684\u70b9\u7c7b\u578b\uff0c\u70b9\u51fb\u70b9\u7c7b\u578b\u53ef\u4ee5\u9009\u4e2d\u5bf9\u5e94\u7684\u70b9\u6570\u636e\uff0c\u70b9\u51fb\u66f4\u591a\u6309\u94ae\u53ef\u4ee5\u5c55\u793a\u7edf\u8ba1\u60c5\u51b5\uff0c\u652f\u6301\u5217\u8868\u6216\u56fe\u8868\u65b9\u5f0f\u5c55\u793a\u70b9\u6216\u8fb9\u7684\u6570\u91cf\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u5217\u8868",src:e(6283).A+"",width:"1870",height:"1106"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u56fe\u8868",src:e(6171).A+"",width:"1948",height:"1116"})]}),"\n",(0,n.jsx)(s.h6,{id:"g\u7f29\u653e\u5c45\u4e2d",children:"g.\u7f29\u653e/\u5c45\u4e2d"}),"\n",(0,n.jsxs)(s.p,{children:["\u53ef\u4ee5\u4f7f\u7528\u9f20\u6807\u6eda\u8f6e\u548c\u7f29\u653e\u6309\u94ae\u8fdb\u884c\u7f29\u653e\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u7f29\u653e",src:e(7038).A+"",width:"2092",height:"1112"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u753b\u5e03\u5206\u6790-\u7f29\u653e",src:e(8628).A+"",width:"2132",height:"1242"})]}),"\n",(0,n.jsx)(s.h5,{id:"2444\u5c5e\u6027\u7b5b\u9009",children:"2.4.4.4.\u5c5e\u6027\u7b5b\u9009"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7b5b\u9009"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5c5e\u6027\u7b5b\u9009"}),"\u8fdb\u884c\u7b5b\u9009\u8fc7\u6ee4\u3002\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8981\u7b5b\u9009\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u4ee5\u53ca\u5bf9\u5e94\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u8bbe\u7f6e\uff0c\u68c0\u7d22\u5230\u7b5b\u9009\u7ec4\u6761\u4ef6\u7684\u6570\u636e\u540e\u4f1a\u5728\u753b\u5e03\u4e0a\u9ad8\u4eae\u9009\u4e2d\u5bf9\u5e94\u7684\u70b9\u6216\u8fb9\u6570\u636e\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8bf7\u9009\u62e9\u70b9/\u8fb9\u7c7b\u578b\uff1a\u9009\u62e9\u9700\u8981\u68c0\u7d22\u7684\u70b9\u7c7b\u578b\u6216\u8fb9\u7c7b\u578b\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5c5e\u6027\u6761\u4ef6\uff1a\u8bbe\u7f6e\u9700\u8981\u68c0\u7d22\u7684\u5c5e\u6027\u6761\u4ef6\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u591a\u7ec4\uff0c\u53d6\u5e76\u96c6\u7b5b\u9009\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u6dfb\u52a0\u7b5b\u9009\u7ec4\uff1a\u53ef\u4ee5\u591a\u7ec4\u7b5b\u9009\u6761\u4ef6\uff0c\u53d6\u5e76\u96c6\u7b5b\u9009\u7ed3\u679c\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u91cd\u7f6e\uff1a\u53ef\u4ee5\u6e05\u7a7a\u7b5b\u9009\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7b5b\u9009-\u5c5e\u6027\u7b5b\u9009",src:e(7869).A+"",width:"2852",height:"1336"})}),"\n",(0,n.jsx)(s.h5,{id:"2445\u7edf\u8ba1\u7b5b\u9009",children:"2.4.4.5.\u7edf\u8ba1\u7b5b\u9009"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7b5b\u9009"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7edf\u8ba1\u7b5b\u9009"}),"\u8fdb\u884c\u753b\u5e03\u6570\u636e\u7edf\u8ba1\u3002\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u8981\u7edf\u8ba1\u7684\u70b9\u6216\u8fb9\u7c7b\u578b\uff0c\u4ee5\u53ca\u5bf9\u5e94\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6839\u636e\u7528\u6237\u9009\u62e9\u7684\u70b9/\u8fb9\u7c7b\u578b\u548c\u5c5e\u6027\u8fdb\u884c\u5206\u7ec4\u7edf\u8ba1\uff0c\u652f\u6301\u6309\u7167\u56fe\u8868\u548c\u5217\u8868\u4e24\u79cd\u65b9\u5f0f\u5c55\u793a\u7ed3\u679c\uff0c\u540c\u65f6\u70b9\u51fb\u56fe\u8868\u6216\u5217\u8868\u533a\u57df\u7684\u6570\u503c\u53ef\u4ee5\u9ad8\u4eae\u9009\u4e2d\u753b\u5e03\u4e2d\u7684\u6570\u636e\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7b5b\u9009-\u7edf\u8ba1\u7b5b\u9009",src:e(9288).A+"",width:"2864",height:"1234"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u7edf\u8ba1\u7b5b\u9009-\u56fe\u8868\u5207\u6362",src:e(8371).A+"",width:"2860",height:"1386"})]}),"\n",(0,n.jsx)(s.h5,{id:"2446\u70b9\u8fb9\u5e03\u5c40",children:"2.4.4.6.\u70b9\u8fb9\u5e03\u5c40"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5e03\u5c40"}),"\u6309\u94ae\uff0c\u9009\u62e9\u5bf9\u5e94\u7684\u5e03\u5c40\u65b9\u5f0f\u4f1a\u5c06\u753b\u5e03\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u91cd\u65b0\u6392\u5e03\uff0c\u652f\u6301\u529b\u5bfc\u5411\u5e03\u5c40\u3001\u540c\u5fc3\u5706\u5e03\u5c40\u3001\u5706\u5f62\u5e03\u5c40\u3001\u8f90\u5c04\u5e03\u5c40\u3001Dagre\u5e03\u5c40\u4ee5\u53ca\u7f51\u683c\u5e03\u5c40\uff0c\u6bcf\u79cd\u5e03\u5c40\u65b9\u5f0f\u5747\u6709\u4e0d\u540c\u5e03\u5c40\u53c2\u6570\uff0c\u8c03\u6574\u53c2\u6570\u540e\u753b\u5e03\u4e2d\u7684\u6570\u636e\u4f1a\u8fdb\u884c\u91cd\u65b0\u6392\u5e03\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5e03\u5c40\u6837\u5f0f-\u6309\u94ae",src:e(2213).A+"",width:"1832",height:"1326"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5e03\u5c40\u6837\u5f0f-\u5e03\u5c40\u53c2\u6570",src:e(661).A+"",width:"2040",height:"1248"})]}),"\n",(0,n.jsxs)(s.p,{children:["\u8be6\u7ec6\u5e03\u5c40\u53c2\u6570\u53ef\u53c2\u8003",(0,n.jsx)(s.a,{href:"https://g6.antv.antgroup.com/api/graph-layout/guide",children:"AntV-G6"}),"\u3002"]}),"\n",(0,n.jsx)(s.h5,{id:"2447\u5916\u89c2\u6837\u5f0f",children:"2.4.4.7.\u5916\u89c2\u6837\u5f0f"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u64cd\u4f5c\u680f"}),"\u533a\u57df\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5916\u89c2"}),"\u6309\u94ae\uff0c\u5728",(0,n.jsx)(s.code,{children:"\u5de6\u8fb9\u680f"}),"\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u70b9\u6837\u5f0f"}),"\u6216",(0,n.jsx)(s.code,{children:"\u8fb9\u6837\u5f0f"}),"\u8fdb\u884c\u5916\u89c2\u6837\u5f0f\u914d\u7f6e\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u70b9\u6837\u5f0f\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5e94\u7528\u70b9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u6837\u5f0f\uff0c\u652f\u6301\u540c\u65f6\u914d\u7f6e\u591a\u4e2a\u70b9\u7c7b\u578b\u5916\u89c2\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u5927\u5c0f\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u5927\u5c0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u989c\u8272\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u989c\u8272\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u56fe\u6807\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u56fe\u6807\u6837\u5f0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u663e\u793a\u6587\u672c\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u663e\u793a\u7684\u6587\u672c\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e3aid\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e\uff1a\u6839\u636e\u8bbe\u7f6e\u7684\u6761\u4ef6\u6807\u8bb0\u5bf9\u5e94\u7684\u70b9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["\u8fb9\u6837\u5f0f\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5e94\u7528\u8fb9\u7c7b\u578b\uff1a\u8bbe\u7f6e\u5bf9\u5e94\u8fb9\u7c7b\u578b\u7684\u5c55\u793a\u6837\u5f0f\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u989c\u8272\uff1a\u5bf9\u5e94\u70b9\u7c7b\u578b\u7684\u5c55\u793a\u989c\u8272\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8fb9\u5bbd\uff1a\u5bf9\u5e94\u8fb9\u7c7b\u578b\u7684\u5c55\u793a\u5bbd\u5ea6\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u663e\u793a\u6587\u672c\uff1a\u5bf9\u5e94\u8fb9\u7c7b\u578b\u663e\u793a\u7684\u6587\u672c\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e0d\u663e\u793a\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u9ad8\u7ea7\u914d\u7f6e\uff1a\u6839\u636e\u8bbe\u7f6e\u7684\u6761\u4ef6\u6309\u989c\u8272\u5c55\u793a\u5bf9\u5e94\u7684\u8fb9\u6570\u636e\uff0c\u652f\u6301\u540c\u65f6\u914d\u7f6e\u591a\u4e2a\u8fb9\u7c7b\u578b\u5916\u89c2\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5916\u89c2",src:e(7354).A+"",width:"1209",height:"1180"})}),"\n",(0,n.jsx)(s.h5,{id:"2448\u89c6\u56fe\u5207\u6362",children:"2.4.4.8.\u89c6\u56fe\u5207\u6362"}),"\n",(0,n.jsxs)(s.p,{children:["\u56fe\u5206\u6790\u4e2d\u652f\u63012D\u56fe\u8c31\u89c6\u56fe\u3001\u5217\u8868\u89c6\u56fe\u4ee5\u53caJSON\u89c6\u56fe\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-2D",src:e(2416).A+"",width:"1826",height:"1322"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-list",src:e(7688).A+"",width:"2046",height:"1374"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u89c6\u56fe-json",src:e(5084).A+"",width:"1918",height:"1330"})]}),"\n",(0,n.jsx)(s.h5,{id:"2449\u6807\u7b7e\u5361\u7247\u5e03\u5c40\u5207\u6362",children:"2.4.4.9.\u6807\u7b7e/\u5361\u7247\u5e03\u5c40\u5207\u6362"}),"\n",(0,n.jsxs)(s.p,{children:["\u56fe\u5206\u6790\u652f\u6301\u6807\u7b7e\u5e03\u5c40\u548c\u5361\u7247\u5e03\u5c40\u3002\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u6807\u7b7e",src:e(4122).A+"",width:"1453",height:"837"}),"\n",(0,n.jsx)(s.img,{alt:"\u56fe\u5206\u6790-\u5361\u7247",src:e(2118).A+"",width:"1496",height:"1250"})]}),"\n",(0,n.jsx)(s.h3,{id:"25\u63a7\u5236\u53f0",children:"2.5.\u63a7\u5236\u53f0"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u63a7\u5236\u53f0"}),"\u63d0\u4f9b\u53ef\u89c6\u5316\u7684\u7684\u8d26\u6237\u7ba1\u7406\u548c\u6570\u636e\u5e93\u4fe1\u606f\u67e5\u770b\u529f\u80fd\uff0c\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u5168\u9762\u7684\u8d26\u6237\u548c\u89d2\u8272\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u62ec\u8d26\u6237\u7684\u589e\u5220\u6539\u67e5\u4ee5\u53ca\u7981\u7528\uff0c\u89d2\u8272\u7684\u589e\u5220\u6539\u67e5\u4ee5\u53ca\u7981\u7528\u3002\u6b64\u5916\uff0c\u5b83\u4e5f\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4fbf\u6377\u7684\u6570\u636e\u5e93\u4fe1\u606f\u67e5\u770b\u529f\u80fd\uff0c\u8ba9\u7528\u6237\u53ef\u4ee5\u8f7b\u677e\u5730\u67e5\u770b\u56fe\u6570\u636e\u5e93\u7684\u57fa\u7840\u4fe1\u606f\u548c\u914d\u7f6e\u4fe1\u606f\u3002\u5176\u4e2d\uff0c\u57fa\u7840\u4fe1\u606f\u4e3b\u8981\u5305\u62ec\u7248\u672c\u53f7\u3001\u8fd0\u884c\u65f6\u95f4\u3001CPP\u7f16\u8bd1\u7248\u672c\u53f7\u7b49\uff0c\u800c\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f\u5219\u5305\u62ec\u7aef\u53e3\u53f7\u3001\u7cfb\u7edf\u529f\u80fd\u53c2\u6570\u914d\u7f6e\u7b49\u3002"]}),"\n",(0,n.jsx)(s.h4,{id:"251\u8d26\u6237\u7ba1\u7406",children:"2.5.1.\u8d26\u6237\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h5,{id:"2511\u8d26\u6237\u7ba1\u7406",children:"2.5.1.1.\u8d26\u6237\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h6,{id:"a\u6dfb\u52a0\u8d26\u6237",children:"a.\u6dfb\u52a0\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u8d26\u6237\uff0c\u7528\u6237\u9700\u8981\u8f93\u5165\u8d26\u6237\u540d\u79f0\u3001\u8d26\u6237\u63cf\u8ff0\u3001\u8d26\u6237\u5bc6\u7801\u4ee5\u53ca\u76f8\u5173\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u6dfb\u52a0\u8d26\u6237\u6309\u94ae",src:e(8315).A+"",width:"1175",height:"399"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u8d26\u6237\u540d\u79f0\uff1a\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u76f8\u5173\u89d2\u8272\uff1a\u65b0\u5efa\u8d26\u6237\u65f6\u5fc5\u987b\u8981\u9009\u62e9\u4e00\u4e2a\u89d2\u8272\uff0c\u5728\u8d26\u6237\u6dfb\u52a0\u6210\u529f\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u4e0e\u8d26\u6237\u540d\u79f0\u4e00\u6837\u7684\u89d2\u8272\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u6dfb\u52a0\u8d26\u6237",src:e(4064).A+"",width:"699",height:"618"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u7f16\u8f91\u8d26\u6237",children:"b.\u7f16\u8f91\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u8d26\u6237\uff0c\u7528\u6237\u53ef\u4ee5\u7f16\u8f91\u8d26\u6237\u63cf\u8ff0\u3001\u8d26\u6237\u5bc6\u7801\u4ee5\u53ca\u76f8\u5173\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u7f16\u8f91\u8d26\u6237",src:e(2289).A+"",width:"696",height:"623"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u7981\u7528\u8d26\u6237",children:"c.\u7981\u7528\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7981\u7528"}),"\u6309\u94ae\u7981\u6b62\u5bf9\u5e94\u7684\u8d26\u6237\u767b\u5f55\u548c\u8bbf\u95ee\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u542f\u7528"}),"\u6309\u94ae\u5f00\u542f\u5bf9\u5e94\u7684\u8d26\u6237\u767b\u5f55\u548c\u8bbf\u95ee\u6743\u9650\u3002"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u7981\u7528",src:e(7269).A+"",width:"1548",height:"80"}),"\n",(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u542f\u7528",src:e(544).A+"",width:"1545",height:"77"})]}),"\n",(0,n.jsx)(s.h6,{id:"d\u5220\u9664\u8d26\u6237",children:"d.\u5220\u9664\u8d26\u6237"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u8d26\u6237\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u5220\u9664\u5bf9\u5e94\u7684\u8d26\u6237\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u8d26\u6237\u7ba1\u7406-\u5220\u9664",src:e(9020).A+"",width:"1550",height:"74"})}),"\n",(0,n.jsx)(s.h5,{id:"2512\u89d2\u8272\u7ba1\u7406",children:"2.5.1.2.\u89d2\u8272\u7ba1\u7406"}),"\n",(0,n.jsx)(s.h6,{id:"a\u6dfb\u52a0\u89d2\u8272",children:"a.\u6dfb\u52a0\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u6dfb\u52a0"}),"\u6309\u94ae\u521b\u5efa\u65b0\u7684\u89d2\u8272\uff0c\u7528\u6237\u9700\u8981\u8f93\u5165\u89d2\u8272\u540d\u79f0\u3001\u89d2\u8272\u63cf\u8ff0\u4ee5\u53ca\u56fe\u6743\u9650\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u6dfb\u52a0\u89d2\u8272\u6309\u94ae",src:e(9956).A+"",width:"1188",height:"406"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u89d2\u8272\u540d\u79f0\uff1a\u652f\u6301\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\uff0c\u4e0d\u652f\u6301\u7a7a\u683c\u4ee5\u53ca\u5176\u4ed6\u7279\u6b8a\u7b26\u53f7\u3002"}),"\n",(0,n.jsxs)(s.li,{children:["\u56fe\u6743\u9650\uff1abrowser\u652f\u6301\u5168\u90e8\u3001\u8bfb\u3001\u5199\u548c\u65e0\u5171\u56db\u7c7b\u56fe\u6743\u9650\u914d\u7f6e\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5168\u90e8\uff1a\u5bf9\u5e94\u56fe\u7684\u8bfb\u548c\u5199\u6743\u9650\uff0c\u5305\u542b\u7f16\u8f91\u56fe\u6a21\u578b\u6743\u9650\uff08schema\uff09\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u8bfb\u5199\uff1a\u5bf9\u5e94\u56fe\u7684\u5199\u6743\u9650\uff0c\u4e0d\u5305\u542b\u7f16\u8f91\u56fe\u6a21\u578b\u6743\u9650\uff08schema\uff09\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u53ea\u8bfb\uff1a\u5bf9\u5e94\u56fe\u7684\u8bfb\u6743\u9650\u3002"}),"\n",(0,n.jsx)(s.li,{children:"\u65e0\uff1a\u65e0\u6cd5\u8bbf\u95ee\u548c\u64cd\u4f5c\u5bf9\u5e94\u56fe\u3002"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:"\u89d2\u8272\u51b2\u7a81\uff1a\u5f53\u4e24\u4e2a\u89d2\u8272\u5bf9\u540c\u4e00\u4e2a\u56fe\u6709\u4e0d\u540c\u56fe\u6743\u9650\uff0c\u540c\u65f6\u5bf9\u4e00\u4e2a\u8d26\u6237\u6388\u6743\u4e86\u8fd9\u4e24\u4e2a\u89d2\u8272\uff0c\u8be5\u8d26\u6237\u5bf9\u8be5\u56fe\u7684\u56fe\u6743\u9650\u4e3a\u4e24\u4e2a\u89d2\u8272\u7684\u5e76\u96c6\u3002"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u6dfb\u52a0\u89d2\u8272",src:e(873).A+"",width:"693",height:"802"})}),"\n",(0,n.jsx)(s.h6,{id:"b\u7f16\u8f91\u89d2\u8272",children:"b.\u7f16\u8f91\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7f16\u8f91"}),"\u6309\u94ae\u7f16\u8f91\u5df2\u6709\u89d2\u8272\uff0c\u7528\u6237\u53ef\u4ee5\u7f16\u8f91\u89d2\u8272\u63cf\u8ff0\u4ee5\u53ca\u56fe\u6743\u9650\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u7f16\u8f91\u89d2\u8272",src:e(222).A+"",width:"689",height:"802"})}),"\n",(0,n.jsx)(s.h6,{id:"c\u7981\u7528\u89d2\u8272",children:"c.\u7981\u7528\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u7981\u7528"}),"\u6309\u94ae\u7981\u6b62\u5bf9\u5e94\u7684\u89d2\u8272\uff0c\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u542f\u7528"}),"\u6309\u94ae\u5f00\u542f\u5bf9\u5e94\u7684\u89d2\u8272\u3002\u7981\u7528\u89d2\u8272\u540e\uff0c\u5bf9\u5e94\u89d2\u8272\u56fe\u8bbf\u95ee\u6743\u9650\u5931\u6548\u3002"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["\u7981\u7528\u89d2\u8272\uff1a\u7981\u7528\u4e4b\u540e\uff0c\u5bf9\u5e94\u89d2\u8272\u56fe\u8bbf\u95ee\u6743\u9650\u5931\u6548\u3002\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"\u5f53\u4e00\u4e2a\u7528\u6237\u62e5\u6709\u4e24\u4e2a\u89d2\u8272\u5bf9\u540c\u4e00\u4e2a\u56fe\u6709\u64cd\u4f5c\u6743\u9650\u65f6\uff0c\u5f53\u7981\u7528\u5176\u4e2d\u4e00\u4e2a\u89d2\u8272\u65f6\uff0c\u53e6\u4e00\u4e2a\u89d2\u8272\u6743\u9650\u540c\u6837\u6709\u6548\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u7981\u7528",src:e(1892).A+"",width:"1555",height:"85"}),"\n",(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u542f\u7528",src:e(1295).A+"",width:"1552",height:"88"})]}),"\n",(0,n.jsx)(s.h6,{id:"d\u5220\u9664\u89d2\u8272",children:"d.\u5220\u9664\u89d2\u8272"}),"\n",(0,n.jsxs)(s.p,{children:["\u5728",(0,n.jsx)(s.code,{children:"\u89d2\u8272\u7ba1\u7406"}),"\u754c\u9762\u70b9\u51fb",(0,n.jsx)(s.code,{children:"\u5220\u9664"}),"\u6309\u94ae\u5220\u9664\u5bf9\u5e94\u7684\u89d2\u8272\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u89d2\u8272\u7ba1\u7406-\u5220\u9664",src:e(3075).A+"",width:"1548",height:"82"})}),"\n",(0,n.jsx)(s.h4,{id:"252\u6570\u636e\u5e93\u4fe1\u606f",children:"2.5.2.\u6570\u636e\u5e93\u4fe1\u606f"}),"\n",(0,n.jsx)(s.h5,{id:"2521\u57fa\u7840\u4fe1\u606f",children:"2.5.2.1.\u57fa\u7840\u4fe1\u606f"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u57fa\u7840\u4fe1\u606f"}),"\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u7684\u72b6\u6001\uff0c\u5e76\u5c55\u793a\u5173\u952e\u4fe1\u606f\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5e93\u4fe1\u606f-\u57fa\u7840\u4fe1\u606f",src:e(8298).A+"",width:"2406",height:"530"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"\u53c2\u6570"}),(0,n.jsx)(s.th,{children:"\u542b\u4e49"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"TuGraph\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u5f53\u524dTuGraph\u7684\u7248\u672c\u53f7\uff0cx.x.x"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u8fd0\u884c\u65f6\u95f4"}),(0,n.jsx)(s.td,{children:"TuGraph\u670d\u52a1\u542f\u52a8\u5230\u73b0\u5728\u7684\u65f6\u95f4"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u7248\u672c"}),(0,n.jsx)(s.td,{children:"tugraph-db\u4ed3\u5e93\u7684\u5f53\u524dcommit"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"\u524d\u7aef\u4ee3\u7801\u7248\u672c"}),(0,n.jsx)(s.td,{children:"tugraph-web\u4ed3\u5e93\u7684\u5f53\u524dcommit"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"CPP\u7f16\u8bd1\u5668\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684CPP\u7248\u672c\u53f7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Python\u7248\u672c\u53f7"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684Python\u7248\u672c\u53f7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"CPP\u7f16\u8bd1\u5668ID"}),(0,n.jsx)(s.td,{children:"\u7f16\u8bd1TuGraph\u65f6\u7684CPP\u7c7b\u578b"})]})]})]}),"\n",(0,n.jsx)(s.p,{children:"\u4e5f\u53ef\u4ee5\u901a\u8fc7\u547d\u4ee4\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u72b6\u6001\u3002"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"CALL dbms.system.info()\n"})}),"\n",(0,n.jsx)(s.h5,{id:"2522\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",children:"2.5.2.2.\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.code,{children:"\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\u83b7\u53d6\u5f53\u524d\u7cfb\u7edf\u8fd0\u884c\u7684\u914d\u7f6e\u53c2\u6570\uff0c\u5e76\u5c55\u793a\u5173\u952e\u4fe1\u606f\u3002\u8c03\u6574\u914d\u7f6e\u53c2\u6570\u6216\u4e86\u89e3\u8be6\u7ec6\u914d\u7f6e\u53c2\u6570\u8bf7\u53c2\u8003",(0,n.jsx)(s.a,{href:"/tugraph-db/zh/installation&running/tugraph-running",children:"\u6570\u636e\u5e93\u8fd0\u884c-\u670d\u52a1\u914d\u7f6e"}),"\u3002"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{alt:"\u6570\u636e\u5e93\u4fe1\u606f-\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",src:e(6610).A+"",width:"2406",height:"944"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"\u53c2\u6570"}),(0,n.jsx)(s.th,{children:"\u542b\u4e49"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"bind_host"}),(0,n.jsx)(s.td,{children:"\u7cfb\u7edf\u542f\u52a8\u65f6\u8bbe\u7f6e\u7684host\uff0c\u4e00\u822c\u4e3a0.0.0.0"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"browser.credential_timeout"}),(0,n.jsx)(s.td,{children:"\u6d4f\u89c8\u5668\u7f13\u5b58\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u8fc7\u671f\u65f6\u95f4"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"browser.retain_connection_credentials"}),(0,n.jsx)(s.td,{children:"\u6d4f\u89c8\u5668\u662f\u5426\u7f13\u5b58\u7528\u6237\u540d\u548c\u5bc6\u7801"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"disable_auth"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5173\u95edtoken\u8ba4\u8bc1\u7684\u5b9a\u671f\u66f4\u65b0\uff0c\u5982\u4e3atrue\u5219token\u53ef\u4ee5\u6c38\u4e45\u4f7f\u7528"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"durable"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5b58\u50a8\u5e95\u5c42\u6301\u4e45\u5316\uff0c\u5982\u4e3afalse\uff0c\u6570\u636e\u5f02\u6b65\u66f4\u65b0\u5230\u78c1\u76d8"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_audit_log"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5ba1\u8ba1\u65e5\u5fd7"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_backup_log"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5b9e\u65f6\u589e\u91cf\u5907\u4efd"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_fulltext_index"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u5168\u6587\u7d22\u5f15"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ha"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u9ad8\u53ef\u7528"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ip_check"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fIP\u767d\u540d\u5355"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_rpc"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fRPC\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"enable_ssl"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542fssl\u52a0\u5bc6\u4f20\u8f93"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"optimistic_txn"}),(0,n.jsx)(s.td,{children:"\u662f\u5426\u5f00\u542f\u4e50\u89c2\u591a\u7ebf\u7a0b\u5199\u5165\u4e8b\u52a1"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"port"}),(0,n.jsx)(s.td,{children:"\u5f53\u524d\u7cfb\u7edf\u7684REST\u8bbf\u95ee\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"rpc_port"}),(0,n.jsx)(s.td,{children:"RPC \u53ca HA \u670d\u52a1\u6240\u7528\u7aef\u53e3"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"subprocess_max_idle_seconds"}),(0,n.jsx)(s.td,{children:"\u81ea\u8fdb\u7a0b\u6700\u5927\u7a7a\u95f2\u65f6\u95f4\uff0c\u7ebf\u7a0b\u6c60\u53c2\u6570"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"thread_limit"}),(0,n.jsx)(s.td,{children:"\u670d\u52a1\u7aef\u540c\u65f6\u4f7f\u7528\u7684\u6700\u5927\u7ebf\u7a0b\u6570"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"verbose"}),(0,n.jsx)(s.td,{children:"\u65e5\u5fd7\u8f93\u51fa\u4fe1\u606f\u7684\u8be6\u7ec6\u7a0b\u5ea6\u3002\u53ef\u8bbe\u4e3a 0\uff0c1\uff0c2\uff0c\u503c\u8d8a\u5927\u5219\u8f93\u51fa\u4fe1\u606f\u8d8a\u8be6\u7ec6"})]})]})]})]})}function g(A={}){const{wrapper:s}={...(0,i.R)(),...A.components};return s?(0,n.jsx)(s,{...A,children:(0,n.jsx)(x,{...A})}):x(A)}},8315:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-add-button-683250813410981afa36089239b2bb3b.png"},4064:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-add-be840e6001b8e71242a6856550e25c5a.png"},9020:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},7269:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},2289:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/account-edit-1950aa50b4b758c617286b1bc6564d9c.png"},544:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},8298:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/db_basic-dc1066458d3d42de4aced1c7b8144673.png"},6610:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/db_configuration-a88b7309b68405887b1a288ba889fa1c.png"},2576:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-button-855a294366b4ee1119025db0f065257a.png"},8628:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-center-135a2a82ee9cc2fe800925109d392fc2.png"},5080:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-clear-7f6caa6d9ef38c8abb3575c5b548a464.png"},6938:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-collapse-c21a138871b822da899d95ad0c1baa65.png"},8014:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-delete-be5cdd2ce769f082834a26e0cdb0aed9.png"},4426:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-after-a910929725d5cdfb42f61a0f59c069ec.png"},8199:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-before-58f5b97437ee1a585f2c27d5e00c771e.png"},8999:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-expand-1ddcc096d3711c46421094dae76b5729.png"},6171:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-legend-chart-1eaf61d2a88497f793e73302af33d1bf.png"},6283:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-legend-list-aadc8ef90347771d32531cbcb3d4a0e9.png"},171:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-retrieval-627cf4590f0ae8471b910266591dd68d.png"},7038:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-canvas-zoom-7a196209fc075eac58133db0b8ab00c6.png"},2118:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-card-4db4fd6f24ffc6083a05ecbf0ce0c276.png"},3355:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-operation-area-02c651380d565f7614eefea76b6a0e42.png"},7869:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-attributefilter-299748df1e431a7cb8a79e6402bd0bb0.png"},243:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-configurequery-a64b68a8f008e19d792a6c48f153d460.png"},5615:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-query-30010e88b7815589917266b31fb94e6e.png"},8371:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-statisticalfilter-chartswitch-732f211f09d7a70e01c7b220b2f4daf2.png"},9288:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-queryfilter-statisticalfilter-1efba6f11b16b0e9a8908f71e33e7730.png"},7354:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-appearance-330e9eccab92995ad9d00e4a450d5dce.png"},2213:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-layout-button-e3d4d8fe31188f4efc97181306e92c2c.png"},661:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-style-layout-parameters-868f9ae4cabfc6e7129946b003dbe0b1.png"},4122:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-tag-591f29b0662d2cc8a639eec19fbb343c.png"},2416:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-2D-47bd08ad54434bc4cc0f611a5d7f4159.png"},5084:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-json-bbb80ca39f95c215289d611eef5bad28.png"},7688:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphanalysis-view-list-1f8c26fd94eff4ce66e4fbc7058c0740.png"},8341:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addedge-button-e43520dabc74086da68727e0b46f6566.png"},6314:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addedge-d67971b25c2b65660ca03870725aed1c.png"},446:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addvertex-button-f7f92dd1692cf3dfe76976d5b2a7df10.png"},5131:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-addvertex-b36fb3cb480a229f2ae132b4c0f6d5fa.png"},1270:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-button-286535ad0da868e4de57d8bbe00d1133.png"},3553:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-dataimport-7bac0ba5aa6ff6ffa5a7dc4ba86d9883.png"},6537:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-editedge-4027fc7f32b0b7bfa58e8c0e7bdf752e.png"},7572:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-editvertex-68735f4833c4cc6a681f8016169be69f.png"},3056:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcgAAAA1CAYAAADF2nuZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAscSURBVHhe7ZzNjxTXFcX9n5m/B1YsDQRPsGSxSJQoUhACEiuJlOUYhAwRm5GyACsbZraOZ+FsmIWzYQSMHTOVPu+9233r1n318ap6qrvn/KSj6frufrfuPe9WN3xSEUIIIaQBDZIQQghxoEESQgghDjRIQgghxIEGSQghhDjQIAkhhBAHGiQhhBDiQIMkhBBCHGiQhBBCiAMNkhBCCHGgQRJCCCEONEhCCCHEgQZJCCEeBwdV9fnn1K4K8e2ABkkIIR4oop8sSiS1m0J8O1jsRQghpEEyyI+fflr9fONG9dNnn1Fbqv/dvLnsHM+vXKFBEkLIKJJB/nLrVvX27Vtqy3V2dlaLKw2SEEJKSYUU3aNXcKnt0unpaS2uNEgymB9//G96RcglJxVSPKLzCi61fTo/P99ug3z16l/VN9/8o/rd7/8Y9Ne//T2sI+sDpoixvnrtehBe0yjnA/f/r25/USQcSyZiAoP805//Ut289esi7e8/cc9JlUvHdasMEgUZCS5FWr+W5e+++3fam0yJmCMmI5CMPU1yHmT88XeI5BgyERMYJIwOcbHm1yU5xjsnVS4d160xSHSIktx2BowijXXYDo2bIR9VD67drZ6fpMVCXj+6Xj04TAtTcPhVdfXOi+pNWrxIML52XCUe6+1G5o3Fm2d3qzvPMhefMR5ADG8opcdtBCcvqjvXvqpep0UB8V3F6aR6fmd87iH2Vx8dpaUWJjLIEqMrPW5tevVwURMeVi+9bUbff/1ldfX+t2b9t9W9a19Wj4/T8vHTaq/n+dr08v71au/rY3ebJx3XrTBIdIUoxuhi2kAhxz4oAMWd5MlJ9RrJsbheTLKYcFhuky2kazFI57pLrbFYy/jrx9himtDaHrfOHYtQkDMGPbNBIhYl9/gogwzj4Y95U+0TG8SklwFpig0SEy37/urC/vo822CQBwf/rA4Pj9xtXQoG5YyDq72n1ffmeJhOw+BcgzyuHu81DarYIMM68/5qwvHxmvdexWN23iDl8Z4uwniN7gWFwq7HvqNnycGQmsmYXW/IFuWM0dmi3mDGgowxxXhqI8RjVrxvrMdfLK+NGWMRCqU37jPGowvkRK6zH2+QfTr6rs7/pHpzEk2r877XaIPsbdbq/jAGWzfW7TFIfGf5ww//cbf1VTAox/gagumt2SB7m7W+Xu191Q3RLu+0QcqjPN29yDoREt57/LeO7yORRPnEaZuppsR0CqtNVJeZCzLGVz6LmKJ09GKWeqJyEVxMLFbFPlzPPZ9WHwOZBsQEY69zA4gJeve/bCtiMoNM9D5fwhicUI9ZyyPWHTBIGCPuM+w/xiQ3ySBXGvCIlQYZ8YovlpHk0kHagiBdZG4W3YaXNLHwdahWaGOSLs+jE7NPUcY+3jUyqh27RjDWMEVId4zrmpBsRCwyuAU0U8DXgTxVEel4SMevc0KQ9UWEz6fGuVUwPjP2DtkOXePmQ87omgYZrtE43mjxHp6r82xyB4lHq3jPQ46x6t21QTCiYFYr8yo1yHCcPf/yPN0G6R5vdf/p5TFIKQSCFGM9a0YRwDptiLaI9+OkenOYikAjaWPixaSJ3Yk7Sw1MYJBdRSPRt6Cvk/UY5IbEIgP2m9MgMd64x2GG+CvGJ8J2CK/15FK2FxE+35AOsquTTHFsjd+KaHSr8e02PhMLE28ba728CQYp6z3JZ8TjVntcHw3uIE0nWWqQet3q+LRci52RuVa9A613jHZ55w1SJ7Q86tPF2DPNccSiq5PHJmec1eaK4eUySC8m0zFTLMI5U3I2YmHOKbS+j+mQJyTaILEs5gfJe7dmKNvL6DI8Q9d4iOE+a8ahiZjp6nzhPsgd15isNGPWljubYJC/+e0faqaoJfHFPva4XjKG1yVriL06OaWaQckPbYzB5Uys+TgWnWbeEK122iCl+MosWIoDkhyGiO1SEPRMeVJSsbSz3HyCxmRc7n9JDFKPP7p3FG5oUuPchFhIYbfDPiBuY5ExF2FZkByB7NiPM8g4Pvq6XWrrDMO5wniZGHlgzO/cXYz76rxxolS/Xl3GTGuG2Z47m2CQOeGXq/h8xeYYFE2mOWY5Zb4L1OrZQcLw9vbkES/2j/s0r6lkzblm7pfYIJHgGCBdAKRj1JLuEX+HP1rNI0koyWsTJxaMeuI1HvuF5E6Fs29RVp+tS3MbpMQDsUJxlgmLlo5fKbPFwtnHNcILNEiMs0wQ7dhKR+lNTMYaZDc9u8wwyVBx6Rg7jPmDZzgG8YWh3q0ePFrEP3dMOH+6F8Lr/u9J7tnle2vjgg1S/0jH2z6pBnaZvkFawZgfVo+lK0Q3ufewute3g+x1jYXCfhJL9b1mD+m4brxBohAg4ZHUukPRBUKvhzliUPS6wUhC4dGPSSx3ZhkMTe1nE1Inf6bgdnYtGRrHzgDGWgqvjL9MWFCksb44JhsWC2vSGvf9zAByQsbfInEaRpxkxGJTIGdMmpOM5iPQJYgh9g2xXE2AJBZ52clSk9H5M4NB7u8/Kf73j3XjGK7QpZkf7NTP3TQv/X1n6B4XRlh/bDqsg/TV3kUOkY7rxhskkC4SiZ0rsigIKM5SjPG6uJMMRVYn16oLiUXwRUrmIzepwz46+YcW5S0ERVnG3hbgUZOWuWOh9glFfXFtP1YtBX4NICdyJtgGYmPjMy09OsgQU2cfY4BLFvuHCUlue6DjuuFYU3Q7tIkdpBZMEr9o9bZNIhie10GOMMiX9+P2ukEa5a4rGmzyO9xBCijA+LBIbts1AinCViVFORRCNevVRTYW5SO1LhbsVWF0CuXAoqyX6+/Fnjsu90rkCwBFWx7v6XEX4yxh7lgs98HfxblrY22LrjnXOik1utLjNCEm2c/az6hqY6zQ8W2gDDLsp8c+q5yhRhrxHsqMBll63Erxe8js93NrMMjaumCQPbpHUWsXeYk7SAFFV4otpBMd2yAxSu/7l35Y04lFV5alKMdkTYUgFM/0Wq9PLI8BqdBaLZPUHm+WGwXEKfJzIt0+hImMGCZeD2fmWKTr93lUd9GI0Q0VPh/+loP/BSeNoxnbSJtBxvgtx98ljbm3T4inH4s4kVp0mgNzYZMMcqgQS/z1ztlLx8cL00oG5RnhhRjkal1U+oXqotMc8sMaGmQCJiiPU1F8LaMe5wFTVO1sOSYiktfpTnRyh/MsXgepguEY2ipJ8+dcrmsUfe+YeYFJSjGGEJMi5oyFHLM4PpqB6R5nRh5pl6hsstKCnWh4JpXGs999mmJnzxPOYQwyXbueH/XrhPtE3ttQhfurhQkMcn//ScP8+qr030HmZP/5hmtSwSDr+3Wqh0HGa6+MN+xTM+IB3aajvoar47p1BtlFsTEmGh1aICVsGuhsoXQK7iAyx9ffU72LCuC4rkTeQmaNBQptbUxT99NLm9dxzkoyraETjGhsaiyXBqnugcx9L5OatcdiAoPcdbV2kMps/e5PmWLrI9bppOO6cwZJCCEXBg1y53R+fk6DJISQ0aRC+vONG26xpbZL7969o0ESQsgkpEL6y61bbsGltktnZ2e1uNIgCSGklFRIz2/frt6/f+8WXWo79OHDh+rjx4+1uNIgCSGkFFVIUVzRgZyenroFmNpM4bEq4rY0R0CDJISQkWQKafgei2w8iJMbKxokIYSMZEAhJVsEDZIQQkaSCun5lSvxNbUTCvGkQRJCyAhQQFFIqd0UDZIQQgo5OFh2HdQOCvHtgAZJCCGEONAgCSGEEAcaJCGEEOJAgySEEEIcaJCEEEKIAw2SEEIIcaBBEkIIIQ40SEIIIaRBVf0fbZJo0k8omdAAAAAASUVORK5CYII="},6605:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-exportmodel-a64ae5c9d99160d12eee76950b25541e.png"},3034:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-csv-c7ce18e6226804ce059b39ec4e9e8d64.png"},2184:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-datamapping-549be862085a921489324ce1197308a6.png"},8247:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},857:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-import-3540ce84c6831833796008344dfd4fdc.png"},2349:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5522:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-importmodel-87a1ba2b08d64920445486c4caedca40.png"},3514:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-list-copy-f5d6fc9da40ba43cdcd95427d70570ed.png"},2240:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},7993:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},8766:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-select-c420f68b574e9f355d1d18d2da0fd9b3.png"},7411:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphbuild-ab4c8508939419e073bde6be4ab2f4ec.png"},9709:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-configure-9d77facae2ee79b94521a4ef2cd44576.png"},2926:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-creategraph-422152d6fe55f2d86de3b80372f7ed27.png"},4313:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-deletegraph-button-8e8c56b4a4e4256d8609c7eb57bcbb3d.png"},1204:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-editgraph-button-3e899eb3940627bcd27f497d7bc49162.png"},8249:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-editgraph-bd4363c6715cd640bad159382e20456a.png"},5377:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-homepage-9c8ae8efdc08a7e9e32be01d9723d790.png"},7877:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-procedure-button-aaa2d9a9c3350d04ac011d8febe051be.png"},1178:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-procedure-83887e7d82291ff35c0642aed64df2fd.png"},8479:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-selecttemplate-d91aeb2d17bf756312bd2e0f2777072c.png"},1599:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-button-35d9187ca5035bc23d4d1f7c683ad950.png"},1133:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-refresh-button-a21fc107f5c66852187f1fe4d7cd5fd9.png"},7740:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/graphmanagement-statistics-7ec245055270f838d9737aeddab56b0f.png"},5e3:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/login-56e8acdb4881eb493358a8901eba2354.png"},5801:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5684:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/pathquery-result-3c4cd19162f517a2e47133ce81f72ad2.png"},9143:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/pathquery-select-65741dbc0e473ccd094f692dd1342f80.png"},885:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAYCAYAAACmwZ5SAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHtSURBVFhH7ZVBboMwEEV7Gu6Rg3ADlHXuEeFbsIEDdJ0Vl4iURQ8x9bf5dBzGLqSVKlG+NAo2E8dv/th5k3+mA3jvOoD3rgOYul6vUtd1El3Xye12W8wjd6s+hkaqduRI+nMljsNvNLYq99FLc+79CuuUBSYIAAmJMeJyuczzLMxWJcDFTY/iqkqqrTEXM1URGEAUIAmMoOD6amAFpoHhmLlpH82wLIPpMD6x3uiysNDfA2OuaqR/xJQgbFo77scBHPNGUaywCgUVgQHJOJ1OM6x+h+fXgftwdrHB5Pw+u6SAcyBh7YKzVBYYzmlHEfrc6kDuKi2AnTg/HvV59kLLJmDKWcxbR8ANBMYF+NQxSlngnH4XeIIMbe389QThkspseHJ4bPne586tPz2r37BUBAYI2lYLgGhhwm5uae2M5SrcTDac3tK2wyhWBO71hWboJWAEhZy1wHGj0Z3EYUgVY7FhvEPuwmEILQzg+F8e1mS+IRMYELik8OP4RBDqJ8BaeWCjneF6AhwLkzgcvj99l/mGTOD7/R6CMHimAAvX8Q7Bm3qrNDABgrMEV22NXIIiZ3mG0fZ+bkgLY2lzS7MIOrTjaxWB/S3t4czNEbx9n1qWcF8F0sE19LGxVASm03tSEXiPOoD3rgN43xL5BE26iMM2oTYfAAAAAElFTkSuQmCC"},1658:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQsAAADECAYAAACInASHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABEvSURBVHhe7d3BjtxWdsbxPJW0nRdIlnmBBBgYTj/B7LITpEYDs8ksEiCLGcOjjoAAQWAEGEdjyxml0M5IMAy37Exa6UAYOAo8IwO2tww/kpd1eXmKPJdFVhfV/8UPYvOySHapzlfnshrFP/nhhx8KABhDWABwISwAuBAWAFwICwAuhAUAF8ICgAthAcCFsADgQlgAcCEsALgQFgBcCAsALoQFsCKvX/9fNms/UxAWwIr87Gd/l+3nP39/ltDIDIunxenJw+JVtXxVnJ/8qLhzd9jpJtnH5kFxp93HNK8evVOcPLoyx2rxeUbr7r5TnF/H64D1UMGr+K+uXnY6hzF6jP619pkju7NQod65+6C4iNdfPyxOXAFQB8xwoUcULEYADQn7rs4zOqeLM3v7oBdqwJGZUvg3GhaiwlNR1sFhF98d4118ePvI2dPO47bUHTwozqvO4mG13AmthM5TIVAdd+c+6wAjLHDshgpf69RxWOtvNCxSoSi364yWX91HGQRjRWkWdtth1OGgbeoOQsfR+oHpxei0R2HB9ATHb6jwf/Wrx5V0/Q2FRXSNolN8VrGlYVEXtWf6EYfF2NTBdPbP2/NsO4/o3CN1cBEWWIcVhUWjvT4R3tVHlNt+qKIvA2DnNCQKn23XsD1mv3NJWN1D1cl0w2K7j/hnwgLrkBa+ph0hJPSJh4Sfw5TkSMLCGBthBUFa6LvCwgyZmCMs0sfUYWFMmYAjtPKwsIswSIveExYKhsN2FoQF1mGo8ENIpOuPLiysQraCYZ+wsMKog7DAW269YaF/zx5mh8VYoVtdxF6dRfnv6aOn1Xmmx92GRQgV4HgNFb6mHdb6mw+LqthUYPU7dFqEgauz6JjxXd44TzNwFDSEBVZgSuHfaFhU3UH7dxB505CeqlB3B4xr+pEK56Z9p3+vESTHHexagCMRCj90ER7a9uY6CwA3QgWvwp+CsABumdAx5LD2MwVhAcCFsADgQlgAcCEsALgQFgBcCAsALoQFABfCAoALYQHAhbAA4EJYAHAhLAC4EBYAXAgLAC6EBQAXwgKAy+Sw+P7774vvvvuu+Pbbb4s//vFN8c03fwBww1SLqknVpmrUqt2pJoWFTkInZJ0sgOOgGp0zMLLDQgd/84agANZAtTpXYGSHBR0FsC6qWauWc2WFheZB1skAOG6qXaumc2SFBdMPYJ1Uu1ZN53CHheY9fOoBrJNqd99rF1mdhXUSAOb1+99/XbHG9mHVdA7CAjgSv332WfH4o38r/vGfPqh88C//WtF6a/tcVk3nWDAs/qd4/mRTXJpj1+XY42LzwhoTjT8pnl8bYy82xePHQ4+Vev9Pnl0bY5bLYvM4OdfqOJvi+bMnGfv5Q3Ht3f76efHkyfPiOmdM57TrMSX3savfd8fzi4NTFxFCQsEg/3X138UXl18WTzefVus1vm+3YdV0jmU7i6bgLpviVZEPaV/oKpa0eOP1u8Y7VBBjoRLEYVE/Lpz35UYF+LxZF9bH23n1z/dyY63fHaTaPjxHCoZ6v2XRP6sDtGMgVCrt/40xhoNSEKiD2BUGCg6Naztr3Muq6RyLT0Psd7vhgkhf+NV26bvtrnffmCNU0uPVwbB9TPf841Cx+d/dpd8BVeezuYy2CeJwarqC5Dlojx2vr56D7e/n4QtYzEFdhDoHBYI1HqjL0Hb61xr3sGo6x+GuWTTTh922bbEKpvOC3fHYJ5vNSGA0BWYWXywOgbgowzTkMuqMmu1Gf5++8DtZgbhT8/tZIVQ/T/H5JvRYT6i2doc4lqGOQVMNayylzmKf7sKq6RyLhcW2IKx34qEXZVO4KkYVefi3t11D47uKoRori2x0fp6Gxfacd3YW6XGTn6vfv/15vAjHOpJuwETPT7SN2VkE2r59vGX7O+NwcroFdSEKF2vMw6rpHAt3FlHhmy/QhF7goQiiYugVSrt/FeGuINi2+CqiwcCJzrN7fcLSHF/nVxWkHmts1zne/mFRaY8ZPycTr1kE2me5Pd3E4Wnq4ZmCBGEqMvVCp1XTOQ4TFu2yXdhxMVfLyYv++SY8Luwv/DsQFlURjB9b2sIzAsVVxA1PN9H7/Rx0/G5ghv3Gz2/euUq1z8EQxZJU9Cp+70ejISysMQ+rpnMcOCy6L/iO9EWrYm/WdQvFExZGoUbvyvG22nc972/Oc+SCoFWMIQD6787hd94WtK3ZbqwbaH+H8HuXjyt/vjQDqD5mGjIuY+eB2eRch9B23usbFqumcxxdZ9Fq2mO96DeZnUVVIL0XfB0g9jtvfJ7h52S/VYikx6r32Ss2y0AB6nyr8yp/58HOIAq8tkOJnreszmJHeOKwQrcwNhXJnbJYrJrOcZiwKAttM3YtwOoiJnQWdRHFhR/T43Z1AOljttvW++yHUtAWu36OirA67zQEO5qwSQp+ZxE3+74sn8v6d9f57Qqs3edbISyOhjqGob/UDEGxz8VNsWo6x7Jh0bb0ocDtF3BVIGlR6cXchkV4XFrU3bCoQ2VXUDSac+q+A1thERfhwHmn+2qL8Lq4Lh8TtkkLMwRgP7hK2kfvHLfr9by0+42207reY3aJnl/cLF27CH9voWmGlhUQ+jf8BaeCQv96r29YrJrOsWxYdF6QaVjU79zhBd8rmuixVViEK/5NIW4LuS7yqvjc75TNseOiqx4bn1N8rsm7d7nt887xuuNWwYYuYzAkEu25Nc9D9bOWq9DYhlvYZ0/v+Rh5znGjNCVRl6FQCAEhYeoRAmVqYFg1nWPhaQiAXEMfjSooFCBTPj61ajoHYQGszNH/nQVffgOs18G//Iav1QPW6aBfqyd8YS+wTgf/wl7hVgDAutzIrQBE8x6mI8A6qFb3vVYRZIeF6OB0GMBxU43OFRQyKSxEJ6F5kE6IT0mA46BaVE2qNucMCpkcFgBuF8ICgAthAcCFsADgQlgAcCEsALgQFgBcCAsALoQFABfCAoALYQHAhbAA4EJYAHAhLAC4EBYAXAgLAC6EBQAXwgKAC2EBwIWwAOAyOSz4wl7g+BzdF/bqJHRC1skCOA6q0TkDIzssdHBuMgSsw43eZIiOAlgX1axVy7mywkLzIOtkABw31a5V0zmywoLpB7BOql2rpnO4w0LzHj71ANZJtbvvtYuszsI6CQDrYNV0DsICuCWsms4xe1i8evUqi7UPAPOzajrHrGGh4v/Nb/69uLj4DxdtS2AAh2HVdI7Zw0IhYI1ZtG1WWHz5i+Le+5fV8u/e/3Fx5+6Pdrr3cfzYj4p7d+8Vn7Q/A8t7/5f/YK6f4osvXlT7i/361x+b2+6S1nOuxcLi66//t/jqq/+shHEtf/75ZTWmn7PDovTJ/SQIygB59/5HnW1SY8Fy591fFL8L22t/1nogw09+8tfFn/7Znxc//enfmOO59HrUPmPav7XtLmk951osLBQKCodnzz6r1ouWQ2Bomylh8c03l8V798sijos6kRUmGm9DQR3Ij4v3vqzHFEzvNp0M4BUKWd2A/t2nwwhdhF7XYdlaZz02ldZzrsXC4uXLl9WyAkIUEGFZY9pmWlh0fXJ/W9yiLmIbFt3iN8Vh8vG94k4cLJ0gAcbF7/iaJqigc6cLgcIm7E8dikVj2kbbWvuIpfWca9FrFppuKCQCBUWYgkhuWLz3bt056N3eM7X4oJqyKDD6423HEIWF9tntJLjWAb85gyJQCPzFX/6VOSYa8wSFpPWca/GwCF1FEIfDlM6iX9BjjIIvOwjCAnNaIigkTGWsMdHY6sNCU40w7QhdhWg8XPTcNyx2dhedqQNhgWXpmsESQSG3IiwUEOkFzhAUGtM2c4RF9yPSUu86w0hYxNcpuGaBCdRVKDDmDopgLCys9Za4lqdYLCzC9YrQRYiWZZ+PTkNYfHL/XvGeOyz63YcZFtW2fBqCPLpuoNeUCnfuoBDt21ovQ2OptJ5zLXrNYszUsAjFHpZ7xjqLSC8QFB5hP3GXAezgnQZMpdeitV6GxlJpPedaJCy89Ofe8acjHvEfZfmmIYk4DIRpBiZSSGgK4rFPoKhzsfYpq52GiALDKzcogGOiAAh/FDVmn7AYOk7Ofq2azjF7WAA4TlZN5yAsgFvCqukc7rDga/WA9Tr41+rxhb3AOh30C3uFWwEA63TwWwEINxkC1uVGbjIkmvcwHQHWQbW677WKIDssRAenwwCOm2p0rqCQSWEhOgnNg3RCfEoCHAfVompStTlnUMjksABwuxAWAFwICwAuhAUAF8ICgAthAcCFsADgQlgAcCEsALjMHhavX7/OYu0DwPGZNSxU/PoS3k8//a2LtiUwgHWYPSwUAtaYRdtOC4ur4vzkQXHR/Hxx9k5xfp1uk7h+WJycPCxepcvJNqePrqrlV4/e6X4LeOJ0Ez/2aXF6d3s+wNtosbB48+ZNcXX1shLGtfzixVfVmH6eJSx2FX61jV3opmYfF2dJEGj/Z0+j/faNBUvYt/VYYC0WCwuFgsLhs88+r9aLlkNgaJvssGgLdxsWKm6zQNMCj0OlEzDlvh7F25Y/n5Vj2sbabykrTDrHAtZrsbDQfUG0rIAQBURY1pi22TssNg96xduZkmh8oJDVEZyU045Xjx7snMakUxw9Zns8TT9GpkBjYQKsxKLXLDTdUEgECoowBZF9w+JUhVwWugq+3kbr+2ExOk2Qk78t/r6ZttQBMj61+LCasigw+uPtOREWeEssHhahqwjicNi7s6jWl8XaFmO5HLf8TechVVGHx2qa0YyrqOPuIXQb7TFHKSySi5vNfqtlwgJviUWnIWHaEboK0Xi46DlPWERThbhII/XUIekAFCra/ky2xRyHxc7uonMNgrDA7XDQC5whKDSmbaaFRTn9qIo2KtB2fXz9QIGyLfBtZ9GMRRcx42seaVh0LmaKHpMTFuXy0HUTYC0WC4twvSJ0EaJlmfrRaf1Or8LsdhZ1wZahkBZl865eF32/s7jQ/qrC305NQlhclOFz7g6LaL8NwgJvm0WvWYzJ7ixa27CoA2Q7DWmXtV3zDl//7UToLKKuoiz68zDWBEC9v5GLnL2wSDqLiI7dBgewYouEhZf+3Dv+dMSvDotT/Y1F711bY/X66lrGJnQC/Q6g6hqaqUgo6PiPsuqOJN53s30nLBJVYEXHGdoWWJFZw0IUGF7TggLATZg9LAC8nQgLAC6EBQAXwgKAC2EBwIWwAOBCWABwISwAuBAWAFwICwAuhAUAF8ICgAthAcCFsADgQlgAcCEsALgQFgBcCAsALrOHhfX1eUOsfQA4PrOGhYpfX8JrfTmvRdsSGMA6zB4WCgFrzKJts8Li+mFx2nwL986v6W90v5V7+Ov6AYxbLCz0zd3hpkJhXMu68dDUmwxJ/FX9FX01/8hNfMaCJf66fu2/Xc/NgYDWYmFh3b5QyyEwtM2UsEhvPdgp+kZWmHTuA/K0OI9uCMQNgoCtxcJCN0bWcrghsgIiLGtM20wLi674DujSvTGQph/d8Z6BMNG+CAugtug1C003FBKBgiK+sVBuWIQbHQ/eWjAou4UPqylL/05k0obAQFj0pjzALbZ4WISuIojDYUpnkf9ub1zcbO6BWi3vCgvdhpBbDwKtRachYdoRugrReLjouW9Y7OwuOkWeHxbVRc6h6xzALXTQC5whKDSmbeYIi940oXPBUkbCQh1EFAxMPQDbYmERrleELkK0LPt8dBrC4uLsQXHuDouk8yiZYTFw/QK47Ra9ZjFmaliEYp88DYl0Ph5VcAzuC7i9FgkLL/25d/zpiEc8TfBNQxJpIBAGgMusYSEKDK/coABwc2YPCwBvJ8ICgAthAcCFsADgQlgAcCEsALgQFgBcCAsALoQFABfCAoALYQHAhbAA4EJYAHAhLAA4/FD8PwWnCeHNyT6HAAAAAElFTkSuQmCC"},6838:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-button-d5dbaa0a86444fbfd07b59765a4646bf.png"},3453:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAYCAYAAACmwZ5SAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF3SURBVFhH7ZbBjYMwEEVTjfugEDqwcqYPBF1wgSo40QRSDhTh5Q/GDDCYGCFtQniRJYMGJc/fY/IwP8YtfHVu4atzC+9RFIWp69pehdKZ8qmMUmFDV519fqCrtFFZY696XqXRKjdN/8mFek6wcJIkNM6EBJ5lvxwemlxcDKW0KV8QhbAtzfr7fEEY3yPMWCVMyU7CPr5E+FgrSCl/kLDu+1D+kTNcv3KwINja9tJDkHDbtiQbxzHNz4KESWJMcv3jhxqWHhu6aui53K4Cenjr4AoSTtPUfQnmZ7Ha0uMBtUib6nBPSBmSJEzPbvezVxgp8iQxR7oYHNw//qoShIkhbZcUSc6THYbdDRDNylnSEl7hKIrovcuRtjJqUHsUWdiD1MfjguycAcHCEv8jPKWMROnda+fAbf8Fu8IY4zbeGmPdUd4RphomOfWpPegWve16eoFXGH2Jw+mdcX4Pe3Biiz4H7h+ZfHB5ha/ILXx1buGr82PCxvwBeQoaIMYc5FgAAAAASUVORK5CYII="},9464:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAAoCAYAAACRgIb2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVGhD7ZoxTxRBFMf9EHCY0MsXUD8CCSGIdiQ2VnZaYGuQ3saIUWIiFRdILGxsCNh4sRessCE5LO6qQ26PjcfePt9/dueYnZ1l5zgY4jkv+QV2dmYIv3n7ZjbZG+TDWXjZDsPLdhhetsMolF3/TbT4mejmK48tU2+IHn5M3JnCKBud774jmlyMaeK+x5qFWDibWjELN8rG6kw+M0zmsQLC4VAPo2ysDFbJNJHHAnYHh3oYZaP+GCfxWAOHeuRkx3HS0TSBxx44hEs1fGZfEVaZjfCyh8fLdsi1yX65EdO3H8nc9SbR5hcSbaa+5YRUmW5RRW2716KxmbbSp5jK7AGNz53SxHybxqcPaMyE5Vzn4Vz2g+exkAsgF9fg6etEPtpxbRpbTEQ/KaKq2rYTEQURLattJuaatF4nOtrj39f4Z/r/5iKg8rlKcCobEhFFGXz7cZLxiMGEX0w2Mnppl//eJYi0walsmc3yukgo+qCv6V6WU6rM4DFv0z51aR2P+yyXE/zc6hK1Q1pSS8FseDYWGX3I/xhEo+So964IZ7IhEGVCbZNlAxmttuMa94qeAJUay8rEL+IsL4jDqD9ueS8tHajTW6finlik8xhyQZzJNm2AUqie8cC0OMWkZYQzVGx0aBNlpNcvD8sslg57yhjAG+tqKOp0jet14SLJ4IXMjh8MZ7IhFJug2gaZKCUyk9UsR7t9KUnLyHbM2crXyEKUkUwm454iW5w8MI4l78i5ND5EdGSzyVriVLZeo3XZaiZjYRBq/zyJ6H4pQebN984ytH5Clfmkb1Y2j3v/p3/yGDnZEFlURhCmMoLSo7aZgOjamnIaWWOxLLPWxqwxfV1NztBC9m5aYvrjYqryJjlyspGpelmAbFPGy3v6AhSjHf3mTrg8sNCd5NyMjTCp2VxWtJedkZSNUgGxqkC9hkvQx65eSxTZfKRb+p4/OwvZ9S5VtvnkESD7k/aRlA3kpndexuIewpTtJvBikpyze1TlTe8FRHOgRGT6slAKQlrn++LIl7bnZKuv7DipKAszLE5lA5nhUjqkApnNwFY0qPKmKAKZnL5u50SnyI1UvY/xGdnaK7u6MMPiXDaAcJQQbIBS8GA1+t/kWmT/r3jZDvGyHeJlO8TLdoi17DtvezTxyDyJxw5r2Qubkf/8bAjw+dnCRpTaPIucbHxYst84oVsrySCf4QOQflgJd51Ox+4jnTAMWXhHZDhKCh4JTzlTLPnJpy4FQSAc6nHj+PiYdFqtFjWbTWo0Gp4LAHdwqHs1ZjYiiiKxOngcsFKecuAKzuDOFIWyZeh1x0dxlLkqle3jsoLoL0TwmrSKrdVsAAAAAElFTkSuQmCC"},522:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-gqltips-f6456645ec5de1c6156593a5943e3445.png"},9420:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},4534:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6490:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABrCAYAAACIX4f7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA0ISURBVHhe7ZzJrxXHFcb5vzAWf4K3sEUsQjZhGUbZVlgwLpxNohgHyQ5ZIIGigCPLhEFCMkhsgEViMd/HPLzpDm8AOvVV9+mcrvtV9+m+t99j6Cv9dF51VZ+q+r5TdeHhZMO7d++SSXn79m1HANPpwsmvx2hsAJu0Iw40u3DyyzFqGcASd9hpZABL1NGMWgawBJPw5s2bjwq2xypMBrAX66AXubq6+tGj9wuYJkLllzB7qYpPRei6MDOiBoQDq2ATTouVlZV1g61nWsAQagATmMGSWmAb/Vhg+y2jkQF1r5hwkcvLyx8t4V4B00SobQBLEiITswV+yjAzzAZYqn4S0ZeWlj4o2B6saCNMBmiRGWySEFn4aDT66KljUqUBTHChrOI/JcGrKDOk1IDYtVMlPFvEcDisZDAYfDCw9YcwHUIjogbUEf/y5cvJ1q1bk82bN3cYgV7Qjf4qoo74cLQTvxnQzWxATHwcK5a8wwY1wCK+vtdY4g4blQZUiY8vG5a4wwb9EtbihwaE4ncGTMa///bVGN4Aq/iLi4s0cYeNi38/MAY1QP/5XovfGTAZ57//Q3L+h68LcYOl+vGXkc6AyTn7l32OvYU4ZkBY/RC/3+978RcWFmjiDhv/+NPuMbwBTHwxAOIDiD8/P08Td9j455/3jxE1QFe/GDA7O0sTd9goNQDiawPkF1Fy/aD6JzFg586dyYsXL3zOAwcO0DHC2bNnkzof5EV+vIvcmMPywR9ATpw4kc8ra7R+LHvRVBog4osBUv0wYG5urrEBsjHw+PHjgmAMGFA1RgjHQhCsVQvLsI6bJlEDqqof1w8W+/r1a5q4DKlILdL9+/dLBZ7UAMxn+YQnoG2oAVXXD8RvaoBcJdevXx/rw7OYAPKe9fNBn4DQAPbli/u/jgFShQA/szEAm4cJOBH6eVjV6NdjJD87JU0NqGu6/uDdMD+DGiDiVxmA+//Vq1c0sUY2cuXKFZ+n6gMRb926VTgNoQGIaMtJQmTiAzHH8rFeQRiDnJaxZdQ2QO5/MeDly5c0sRVUsaVaxAB8YVs+2oymJ0CDZ5hbcmoD8Ax9VfkZpQZo8cUAuf9hAK6ftTZACwCxIBraeI5+Sy7MKScnzBtDvwO0AWiXncAy1tQALNL6CYXEu/rOr2NAaHKZAeE8Mgb7l7lAaIDML3mt1DJArp/1OAEYV/cjQkI4rF/EiRnAhJZ3wzWGBsSeVdHIAIiP6lsrA5gI2GSdKwjj5H5nBpw6dYqKh7FipCYmNvLqE1XFB2FAuCkxREQEVQZomAFMMMyDPjFZEzMAeep8IZcaAPGnYYCIU/cDoXTlIpeIHwodMwA5mnxY1SO3/rAxdVkTAzridAasM50B60wjA0BnwHToDFhnOgPWmVIDyv4m3BkwHUwGiAkwQEwQAyy/ju6IM5EB1n8P6IhTagDQBrB/D8ApYIk7bDQ2AIgBW7Zsock7yoFu1AD9b8LagNg19PPPP3cm1AR6QbdKA8q+B/Q1hO+C58+fJ0+fPk2ePHmSPHr0KJmZmUkePnyYPHjwIOfevXs5d+/e9dy5c8fM7du3k/PnzyeHDh1KduzY4f93VpMAIQ4ePJicPHnS52ZzliF70PvS+8X+oQP0gC7QBzrhT4/QrbYBcg2FpwDJkBTJnz175ifCr2XFCKHX6+WE5ljAbyABNnrt2rXk8OHDyaZNmxrxxRdfJFevXs2FQ142ZxXYh96X3i+ADtADukAf/NYWekG3SgNAmQH690IAyQEmC40oI1w0Q5smJoAjR44kn332GRWZgbHbt2/PK1eE10Ky+UPYPjRaeCDaiFbQjRrA/tvQqlOgTcBJwERwW58IAUexDCw8BjaGzYdmHD16lIrNgPgQXosugrI5NWy9Gr1P7Fs0gB5y7Yj4ZgOspyA0QRDngVRDiF54GdgkhAiNEBPKToJUvogv1S7ChwJWwfYB9H61Dvie1OJDt1ID6pwCbQLQ3wuCLEqqQmCbiIGNMxMgaNV1FFY+3gVafDZnGeFemPBSlNBEi19qQNk1BGCANkESaiPEBAD3Q7QpVsSw0IiykyCVL3e9VD3QwmsB68L2J3sHookWH7qZDWhqAtALEcLF6oopA5uVamOnQb4Xjh07lmzcuNGLv23btrzq2ZWjxWdzxgj3wPapddD6iGalBjQxQa4jQS8AJ0KfiirCDQLZvBghpwGCArmSAP7LB4guwqNPi8+EZ3MCtj6G7BEw4aGPaAXdTAaEVxH7PtBGYJLQCEEb0QTZqAgD0bQR+lRopNpZxWuB2Zx1YfsWTbT4JgOamAC0EWVmNEE2KkawE8GICS/52FxW2P70/kPhAXSjBuA/0WYGlJlgNSIkXDTbXIgIFpoQGqER4WPiAzZXDL1mti9NqAl0AtAsasAkJjAjgFQBW2RdtBhiRGhGiIguwuscFiGtsGoHWniBGqD//4KsJmgjZCIhXIgscFL0pqUatSkaLXQoNsvdlHCvoRaikWgWNaCpCQIzIgbbiBUtJBCBtRn6GdDjWc46sP0wQuEFasDS0hsnbMpotOoZDldyBoPlAv3+klvMKMr8/GAi5ub6lczOLhZ4/XqhQNgPWB4GW5MVpocA3agBIy98asBw6MT3BqQmDAYOF/t9Ed8h0SVcWBglCy45IiYJ2/Pzw2R+weHiQhbRnptLF4w4l8W6bYg1O+vIYqzdND9rs/2U7V/aoh81QJ8AfQqqToJQdSJCsPA2SAUa0L5pwvbEgC6hVtQAVH9IegL+jz8JGWn1cxYXYUaKd78BvsrWCbYeC3rfTBeBG4Cqz6s//Vna3gCchOw05FdS5qhPjEja6clwIDqatoc//pQs79qTrDiWf+9AnFJ7eO6nyvktbYse0I8asLT01gmcVT6J/gTISchOQz87DYuYwGGJWOwCFlwzQrRkw4ZWQG7rOnS07Fei1itqAPDVH0GuohB/IjIw4aT4zQWIAaubPk8reAoglzZAw9bVBNFF60UNGEF8YZSehpyh+tkxGGSnQIi04bxnMYsTtHFdeLFcnEY+xDwnDCD9TdpplXM9BGqAr36HjhDbV34kIpk/AcYoR7BJXNm114uFaBlviTqnZTyLln3rCN2oAah6hq/+CrzDU6Tfd5sLKBhA+ptQlZOtrSlaL24AKh+iRyKq3ieoiHDZTzrluLI7E8tFy3hL1AZYxteNMZ24AV5kEZvHARJ4ke0Ri+ljQRPGQrWS/iaxYADprxsteiBSA5aW3nmR88oXIm0k8oizNdt+wX7RWaxo52LJCXD0es+S3ozDxXB8Pibrz8eo/tCAsD/WZvup06YGjLwB79wAiJtWvSXC1UuXfklOnznnFpi63EZc2b0vM2Bf/vzQ4W+S3+z4nWf3ni/pe3heGKP6V3ZlOV0M32sjim5xAxReYCPH//qDx0/WEgUDXLs38zwXFkagHb4j47797vt8rO4Lc7YB04sb4KtfxM9OQ+bYANFXe7Et/ce/cwY4wn5xvo/o8FG16/Tn1erEQrvXSw2QU3D69Dn6Pk4n+r89npqg+wsnwLXZ+7pd1R/TJ9cja3MDghOgwUtlyAlgfWVg8VbYCZDKx/UHcSG2fufGzf/kz/FzfgVlND0BbC91oAag6i3AxRB9AtqiKNZ4/5kzPzqR/1t41pt5kVz0phTHClU526LUALmKqtqSDEercAVlz3X/NNoi1mog1iT5mQGT5LO2Sw2wMvPoZbLjtzt9FANQcTjyZVXXlDaqtY2cMbR2UzEA4NjDhMNH/uiRn9HHFjEJH5IBoU4h1IDBEKIR3Av0ecbpzAQRf2xM5P3+4G2KW3D+MyPr139iYf0XLv6SPOy9KPShfcGdRv1ME82pIesr7KVCH9ZPDYAzGNwk4vrx4gfPpxlXd+/3YiHK8z17v0pu3vo1uXj5qi8ARP2ePEeR4KrEeN2/kuVE1M/bjtSA0KWQ3kx659+4+SvtZ8g7iKy/DlostCU3zPfiX7o69g6QEypXpO4Lc64V1IDhUuLccbjoB8IxFXvZl+4NV3Gsn8WCAYbxZXHMgGw9ACbE1oVxIj7Q/YWcwXttRm6AE38AA1Ts4wUHooiJikK1WcE7D7MToPPVjVostGU9AkRm72nxge4vGKCetx2jBsTASyDcjAW8I+9PQijWNGgjpwVqAKp+MEyrvyzCxf4gdXMtoxbLMt4SV3ZlOV20jJ9WpAb4Snc0iUgKZ9uMBQNIf5Ooc1rGTxpFL2pAWt1O1CnGRTjumEbU1WoZb4nLWU5Ey3hrrNKFG4CKxoB1jqiWdBPFWDgBpL9JrLqCLOttEqkBcOd9pmAA6W9CGzktUAPgDjp1FMLn69EvYq1+vtn/PA2QSwyomn+a/dQAdPYH6aD3MUIkiNUG6RXE520jxg14jxn960KheqcJcrM524Ib4NxZhENdbD1yA4hTHe1ADYA7HWtDZ8A6ww1wR2PR/eWji+3HcQP2J/8DKUgw0INOlMkAAAAASUVORK5CYII="},6488:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},5359:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-fullscreen-80bd40b9f2fde8e179dea8715da6b154.png"},7362:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-graph-210a81aa1c33957cee2ca78986d2467f.png"},9290:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},7231:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-insert-cf8a6f5e1e90288c556ff64e24867136.png"},6074:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-result-txt-1a0942ba6f27638a9063892078f138c4.png"},3532:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-schema-graph-5da210a3624e2ba4c19ae24b6b5073ec.png"},7566:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},6567:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},2471:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},1349:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/query-view-7858448691b2d7c071f369241ddd8452.png"},4595:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-configure-9c721fc928ba3c57bb940677c505d11a.png"},7991:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-creategraph-89fe62a333531733bded84b027814085.png"},3462:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-graphtab-fd626c045a446d6bb14ecbc799f31bb9.png"},6836:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-result-655453a1a1525c3c07821d771d2a3590.png"},5666:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/quickstart-selectdemo-167c546ad18ab13e66f9c650c5ca91e4.png"},9956:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-add-button-8a67f028fbac72bb45acd3d6ebde3bb0.png"},873:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-add-df88eaac42ad0351ebff1c01d45b2597.png"},3075:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},1892:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},222:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/role-edit-42d82c9c13ee49128966a8f77d6da59e.png"},1295:(A,s,e)=>{e.d(s,{A:()=>n});const n="data:image/png;base64,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"},3353:(A,s,e)=>{e.d(s,{A:()=>n});const n=e.p+"assets/images/vertexquery-2fb20c2bc90ac608c65ca49cd5c3d706.png"},8453:(A,s,e)=>{e.d(s,{R:()=>c,x:()=>h});var n=e(6540);const i={},d=n.createContext(i);function c(A){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof A?A(s):{...s,...A}}),[s,A])}function h(A){let s;return s=A.disableParentContext?"function"==typeof A.components?A.components(i):A.components||i:c(A.components),n.createElement(d.Provider,{value:s},A.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3fac061c.4ad0106f.js b/assets/js/3fac061c.4ad0106f.js
deleted file mode 100644
index 9e306d3564..0000000000
--- a/assets/js/3fac061c.4ad0106f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8054],{837:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var t=n(4848),r=n(8453);const i={},o="Functionality",s={id:"en-US/source/introduction/functionality",title:"Functionality",description:"This document mainly introduces the main functions and features of TuGraph.",source:"@site/../docs/en-US/source/2.introduction/7.functionality.md",sourceDirName:"en-US/source/2.introduction",slug:"/en-US/source/introduction/functionality",permalink:"/tugraph-db/en-US/source/introduction/functionality",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Architecture",permalink:"/tugraph-db/en-US/source/introduction/architecture"},next:{title:"Scenarios",permalink:"/tugraph-db/en-US/source/introduction/scenarios"}},l={},d=[{value:"1.Installation",id:"1installation",level:2},{value:"1.1.Installation",id:"11installation",level:2},{value:"1.2.Software and Hardware Environment",id:"12software-and-hardware-environment",level:2},{value:"2.Storage layer",id:"2storage-layer",level:2},{value:"3.Calculation layer",id:"3calculation-layer",level:2},{value:"4.Core Features",id:"4core-features",level:2},{value:"4.1.Query Language",id:"41query-language",level:3},{value:"4.2.Stored Procedures",id:"42stored-procedures",level:3},{value:"4.3.Data Import/Export",id:"43data-importexport",level:3},{value:"4.4.Backup and Restore",id:"44backup-and-restore",level:3},{value:"4.5 Data Warmup",id:"45-data-warmup",level:3},{value:"4.6 High Availability Mode",id:"46-high-availability-mode",level:3},{value:"5.Client Tools",id:"5client-tools",level:2},{value:"6.Ecological Tools",id:"6ecological-tools",level:2},{value:"6.1.TuGraph DataX",id:"61tugraph-datax",level:3},{value:"6.2.Visual Interaction",id:"62visual-interaction",level:3},{value:"6.3.Monitoring",id:"63monitoring",level:3}];function c(e){const a={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.header,{children:(0,t.jsx)(a.h1,{id:"functionality",children:"Functionality"})}),"\n",(0,t.jsxs)(a.blockquote,{children:["\n",(0,t.jsx)(a.p,{children:"This document mainly introduces the main functions and features of TuGraph."}),"\n"]}),"\n",(0,t.jsx)(a.h2,{id:"1installation",children:"1.Installation"}),"\n",(0,t.jsx)(a.h2,{id:"11installation",children:"1.1.Installation"}),"\n",(0,t.jsx)(a.p,{children:"Deployment methods TuGraph currently provides three deployment methods: cloud deployment, Docker deployment, and local package deployment. Users can choose the appropriate deployment method according to their actual situation."}),"\n",(0,t.jsx)(a.h2,{id:"12software-and-hardware-environment",children:"1.2.Software and Hardware Environment"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph core is developed in C++, and the default compiler used is GCC8.4, using c++14 standard. Some functions use other compilers, such as ApacheLucene-based full-text indexing, which uses JNI interface and requires a Java compiler. In addition, the Python Procedure API is provided in the stored procedure, which requires a Python environment. TuGraph does not require special hardware such as GPUs, and can naturally adapt to general hardware upgrades such as RDMA and HBM with high latency and low bandwidth."}),"\n",(0,t.jsx)(a.p,{children:"TuGraph has been tested on CPUs based on X86 and ARM, including Intel, AMD, Kunpeng, Hygon, Feiteng, etc., and also runs on multiple operating systems, including mainstream versions of Ubuntu, CentOS, SUSE, Galaxy Kylin, Zhongbiao Kylin, and UOS, without special requirements for operating systems and CPUs."}),"\n",(0,t.jsx)(a.p,{children:"The software and hardware environment also includes the environment of dependent libraries. Since the default KV storage in TuGraph's storage layer is LMDB, the file system needs to support POSIX interfaces. The compilation and parameter configuration in different environments will be slightly different. For example, in the packaging of point-edge data in graph storage, it should match the page table size of the operating system, which is 4KB by default, and it is recommended to set the system's page table size to 4KB."}),"\n",(0,t.jsx)(a.h2,{id:"2storage-layer",children:"2.Storage layer"}),"\n",(0,t.jsx)(a.p,{children:"In the graph data model, TUGraph supports the attribute graph model, which can be divided into subgraphs, tags (including vertex tags and edge tags), and attributes according to the hierarchy."}),"\n",(0,t.jsx)(a.p,{children:"From the perspective of the storage layer, TuGraph uses an intuitive multi-layered tree model, without tags across subgraphs or attributes across tags, and only retains the core logic of the graph model. In terms of subgraph storage, TuGraph has performed data physical isolation for multiple graphs, and each graph corresponds to an instance of LMDB. The metadata description information of multiple graphs is saved in a special public LMDB instance called meta. The storage of vertex and edge tags and their attributes maps graph data adaptively to KV key-value pairs, maximizing read performance. At the same time, multi-threaded writing is implemented at the KV layer, solving the disadvantage of low write performance of LMDB. Primary key indexes and secondary indexes correspond to B+ tables in LMDB, supporting index value addition, deletion, query, and modification based on comparison."}),"\n",(0,t.jsx)(a.p,{children:"The storage layer also retains some other non-core functional data, including permission data, pre-compiled plugin data, and monitoring data."}),"\n",(0,t.jsx)(a.h2,{id:"3calculation-layer",children:"3.Calculation layer"}),"\n",(0,t.jsx)(a.p,{children:"The calculation layer is divided into three parts in terms of function, including the TP-class graph transaction engine, the AP-class graph analysis engine, and the graph neural network engine."}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph transaction engine"})," is mainly used to process concurrent graph operations, including single-point queries, neighbor queries, and path traversal. The graph transaction engine focuses on ACID transactions of concurrent operations, ensuring that the operation logic will not interfere with each other. The main performance indicator is QPS, which is the number of completed queries per second."]}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph analysis engine"})," usually operates as a full-graph iteration. Some simple analysis tasks (such as SPSP) can be completed by the graph transaction engine, and complex analysis tasks are completed by the graph analysis engine, which usually takes several seconds to several hours for a single task. Therefore, a single graph analysis task should use all hardware resources in parallel, and the performance indicator is the total time for completing the task."]}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph neural network engine"})," usually operates as a full-graph iteration. In addition to graph topology-based operations, the graph neural network engine also needs to integrate a machine learning framework to handle vector operations, such as PyTorch, MXNet, and TenserFlow."]}),"\n",(0,t.jsx)(a.p,{children:"The logic of the three engines is different and independently configured for resource pools. The graph transaction engine sets up a thread pool based on RPC operations. For each operation received from the client, a thread is taken from the pool to process it, and the number of concurrent executions is equal to the capacity of the RPC thread pool, which is usually configured as the number of server cores. The graph analysis engine has an analysis thread pool, and each graph analysis task is executed concurrently, that is, all threads are used to execute a task to speed up the performance of the operation. The serial execution feature of TuGraph graph analysis operations will restrict the user experience to a certain extent. The demand for concurrent graph analysis can be processed by deploying high-availability, increasing machine resources, or connecting to an external task scheduler to transfer data to a container for real-time scheduling and calculation. Graph neural network operations will reuse the resources of the graph transaction"}),"\n",(0,t.jsx)(a.h2,{id:"4core-features",children:"4.Core Features"}),"\n",(0,t.jsx)(a.h3,{id:"41query-language",children:"4.1.Query Language"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph provides Cypher graph query language that follows the OpenCypher standard."}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsx)(a.li,{children:"Supports Procedure embedding."}),"\n",(0,t.jsx)(a.li,{children:"Supports pluggable optimization frameworks with various optimization features."}),"\n",(0,t.jsx)(a.li,{children:"Supports extensible security check framework for Cypher."}),"\n"]}),"\n",(0,t.jsx)(a.h3,{id:"42stored-procedures",children:"4.2.Stored Procedures"}),"\n",(0,t.jsx)(a.p,{children:"When users need to express complex query/update logic that Cypher cannot describe, or when high performance is required, TuGraph's stored procedures (Procedure) is a more concise and efficient choice than calling multiple REST requests and completing the entire processing flow on the client-side."}),"\n",(0,t.jsx)(a.h3,{id:"43data-importexport",children:"4.3.Data Import/Export"}),"\n",(0,t.jsx)(a.p,{children:"Although TuGraph supports data insertion, batch import can greatly improve efficiency. The import function can be divided into importing into an empty database (offline import) and incremental import. The former refers to importing when the subgraph is empty, and the additional assumption can greatly improve the import performance. In TuGraph, the throughput rate of empty database import and incremental import differs by 10 times. Data consistency needs to be considered in data export, which is based on exporting data based on a snapshot."}),"\n",(0,t.jsxs)(a.p,{children:["TuGraph can perform data export on graph data already stored in TuGraph using the command-line tool ",(0,t.jsx)(a.code,{children:"lgraph_export"}),". The export format supports CSV and JSON."]}),"\n",(0,t.jsx)(a.h3,{id:"44backup-and-restore",children:"4.4.Backup and Restore"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph's backup function can be divided into active/scheduled, offline/online, and full/incremental backup. The goal is to complete the backup with the smallest storage and computing costs possible. The Restore function can restore to the latest state or a historical marked time point, ensuring that the database is in a consistent state."}),"\n",(0,t.jsx)(a.h3,{id:"45-data-warmup",children:"4.5 Data Warmup"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph is a disk-based graph database, and data is loaded into memory only when it is accessed. Therefore, system performance may deteriorate due to frequent IO operations in the first period after the server is opened. We can improve this problem by preheating the data in advance."}),"\n",(0,t.jsx)(a.h3,{id:"46-high-availability-mode",children:"4.6 High Availability Mode"}),"\n",(0,t.jsx)(a.p,{children:"High availability means that by configuring a cluster, real-time multi-replica data hot backup can be achieved, and the cluster can still provide services when some replicas are not in use. TuGraph uses the multi-machine hot backup mechanism of the RAFT protocol, which can reduce RPO to near 0. Data synchronization is performed at the computation layer through RPC interfaces for write operations. The high availability cluster of TuGraph adopts a master-slave mode, where only the master node processes write requests, and both master and slave nodes can process read requests. The write request processing of the master node needs to be synchronized to more than half of the total nodes. The write request is considered complete when the majority of the nodes have written successfully."}),"\n",(0,t.jsx)(a.h2,{id:"5client-tools",children:"5.Client Tools"}),"\n",(0,t.jsx)(a.p,{children:"Client Tools Client tools mainly include SDKs for various programming languages, OGM, and command-line tools."}),"\n",(0,t.jsx)(a.p,{children:"The client SDK is mainly used for secondary development and can be linked to the server through RPC or REST protocols. RPC has better performance based on long links, and data needs to be uniformly serialized through protobuf. TuGraph uses brpc, which supports rpc clients in Java, Python, and C++. REST's protocol is more flexible and can be easily adapted to more diverse environments, and different programming languages can easily connect. TuGraph provides a Python REST client instance, and command-line interaction is also implemented using REST."}),"\n",(0,t.jsx)(a.p,{children:"OGM (Object Graph Mapping) is a graph object mapping tool for TuGraph, which supports mapping JAVA objects (POJO) to TuGraph. Classes in JAVA are mapped to nodes in the graph, collections in classes are mapped to edges, and properties of classes are mapped to properties of graph objects. It also provides corresponding function to operate the graph database. Therefore, JAVA developers can easily use TuGraph database in a familiar ecosystem."}),"\n",(0,t.jsxs)(a.p,{children:["The command-line tool ",(0,t.jsx)(a.code,{children:"lgraph_cypher"})," is a query client that can be used to submit OpenCypher requests to the TuGraph server. ",(0,t.jsx)(a.code,{children:"lgraph_cypher"})," client has two execution modes: single-command mode and interactive mode."]}),"\n",(0,t.jsx)(a.h2,{id:"6ecological-tools",children:"6.Ecological Tools"}),"\n",(0,t.jsx)(a.p,{children:"Ecological tools are a crucial component of enterprise-level databases, and a rich array of ecological tools can greatly enhance the usability and stability of graph databases."}),"\n",(0,t.jsx)(a.h3,{id:"61tugraph-datax",children:"6.1.TuGraph DataX"}),"\n",(0,t.jsx)(a.p,{children:(0,t.jsx)(a.img,{alt:"Import&Export",src:n(5018).A+"",width:"1288",height:"404"})}),"\n",(0,t.jsx)(a.p,{children:"TuGraph's core supports importing and exporting CSV and JSON data, offering both full database and incremental importing modes. In practice, there may be a need to import from multiple data sources such as MySQL, Kafka, and Hive, and TuGraph connects to these sources using DataX. Due to the differences between relational and graph models, data cleaning processes can be quickly processed using SparkSQL. TuGraph focuses only on the reliability and performance of simple CSV and JSON scenario imports."}),"\n",(0,t.jsx)(a.h3,{id:"62visual-interaction",children:"6.2.Visual Interaction"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph Browser is a visual interface for direct users of graph databases, covering most of TuGraph's capabilities, including data import, graph model building, data addition/deletion/query/modify, and monitoring and maintenance operations."}),"\n",(0,t.jsx)(a.h3,{id:"63monitoring",children:"6.3.Monitoring"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph uses the Prometheus + Grafana monitoring framework in a loosely coupled manner. Prometheus obtains monitoring information from TuGraph's monitoring interface, stores it in a local time-series database, and then displays it interactively on the web using Grafana."}),"\n",(0,t.jsx)(a.p,{children:"The monitoring states provided by TuGraph include the state of the graph database and the state of the server. The former includes the database-side status such as read/write load and number of vertices/edges, while the latter includes the real-time status of the server's memory, CPU, and hard disk. If some monitoring state exceeds the expected threshold, proactive alerts are necessary, usually requiring integration with other operations and control systems such as group messaging and email alerts."})]})}function h(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},5018:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/tugraph-datax-0f6f140ea310beb2c90460c3d6d0c08d.png"},8453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>s});var t=n(6540);const r={},i=t.createContext(r);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3fac061c.c7403e38.js b/assets/js/3fac061c.c7403e38.js
new file mode 100644
index 0000000000..2899801d99
--- /dev/null
+++ b/assets/js/3fac061c.c7403e38.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8054],{9479:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var t=n(4848),r=n(8453);const i={},o="Functionality",s={id:"introduction/functionality",title:"Functionality",description:"This document mainly introduces the main functions and features of TuGraph.",source:"@site/../docs/en-US/source/2.introduction/7.functionality.md",sourceDirName:"2.introduction",slug:"/introduction/functionality",permalink:"/tugraph-db/en/introduction/functionality",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Architecture",permalink:"/tugraph-db/en/introduction/architecture"},next:{title:"Scenarios",permalink:"/tugraph-db/en/introduction/scenarios"}},l={},d=[{value:"1.Installation",id:"1installation",level:2},{value:"1.1.Installation",id:"11installation",level:2},{value:"1.2.Software and Hardware Environment",id:"12software-and-hardware-environment",level:2},{value:"2.Storage layer",id:"2storage-layer",level:2},{value:"3.Calculation layer",id:"3calculation-layer",level:2},{value:"4.Core Features",id:"4core-features",level:2},{value:"4.1.Query Language",id:"41query-language",level:3},{value:"4.2.Stored Procedures",id:"42stored-procedures",level:3},{value:"4.3.Data Import/Export",id:"43data-importexport",level:3},{value:"4.4.Backup and Restore",id:"44backup-and-restore",level:3},{value:"4.5 Data Warmup",id:"45-data-warmup",level:3},{value:"4.6 High Availability Mode",id:"46-high-availability-mode",level:3},{value:"5.Client Tools",id:"5client-tools",level:2},{value:"6.Ecological Tools",id:"6ecological-tools",level:2},{value:"6.1.TuGraph DataX",id:"61tugraph-datax",level:3},{value:"6.2.Visual Interaction",id:"62visual-interaction",level:3},{value:"6.3.Monitoring",id:"63monitoring",level:3}];function c(e){const a={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.header,{children:(0,t.jsx)(a.h1,{id:"functionality",children:"Functionality"})}),"\n",(0,t.jsxs)(a.blockquote,{children:["\n",(0,t.jsx)(a.p,{children:"This document mainly introduces the main functions and features of TuGraph."}),"\n"]}),"\n",(0,t.jsx)(a.h2,{id:"1installation",children:"1.Installation"}),"\n",(0,t.jsx)(a.h2,{id:"11installation",children:"1.1.Installation"}),"\n",(0,t.jsx)(a.p,{children:"Deployment methods TuGraph currently provides three deployment methods: cloud deployment, Docker deployment, and local package deployment. Users can choose the appropriate deployment method according to their actual situation."}),"\n",(0,t.jsx)(a.h2,{id:"12software-and-hardware-environment",children:"1.2.Software and Hardware Environment"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph core is developed in C++, and the default compiler used is GCC8.4, using c++14 standard. Some functions use other compilers, such as ApacheLucene-based full-text indexing, which uses JNI interface and requires a Java compiler. In addition, the Python Procedure API is provided in the stored procedure, which requires a Python environment. TuGraph does not require special hardware such as GPUs, and can naturally adapt to general hardware upgrades such as RDMA and HBM with high latency and low bandwidth."}),"\n",(0,t.jsx)(a.p,{children:"TuGraph has been tested on CPUs based on X86 and ARM, including Intel, AMD, Kunpeng, Hygon, Feiteng, etc., and also runs on multiple operating systems, including mainstream versions of Ubuntu, CentOS, SUSE, Galaxy Kylin, Zhongbiao Kylin, and UOS, without special requirements for operating systems and CPUs."}),"\n",(0,t.jsx)(a.p,{children:"The software and hardware environment also includes the environment of dependent libraries. Since the default KV storage in TuGraph's storage layer is LMDB, the file system needs to support POSIX interfaces. The compilation and parameter configuration in different environments will be slightly different. For example, in the packaging of point-edge data in graph storage, it should match the page table size of the operating system, which is 4KB by default, and it is recommended to set the system's page table size to 4KB."}),"\n",(0,t.jsx)(a.h2,{id:"2storage-layer",children:"2.Storage layer"}),"\n",(0,t.jsx)(a.p,{children:"In the graph data model, TUGraph supports the attribute graph model, which can be divided into subgraphs, tags (including vertex tags and edge tags), and attributes according to the hierarchy."}),"\n",(0,t.jsx)(a.p,{children:"From the perspective of the storage layer, TuGraph uses an intuitive multi-layered tree model, without tags across subgraphs or attributes across tags, and only retains the core logic of the graph model. In terms of subgraph storage, TuGraph has performed data physical isolation for multiple graphs, and each graph corresponds to an instance of LMDB. The metadata description information of multiple graphs is saved in a special public LMDB instance called meta. The storage of vertex and edge tags and their attributes maps graph data adaptively to KV key-value pairs, maximizing read performance. At the same time, multi-threaded writing is implemented at the KV layer, solving the disadvantage of low write performance of LMDB. Primary key indexes and secondary indexes correspond to B+ tables in LMDB, supporting index value addition, deletion, query, and modification based on comparison."}),"\n",(0,t.jsx)(a.p,{children:"The storage layer also retains some other non-core functional data, including permission data, pre-compiled plugin data, and monitoring data."}),"\n",(0,t.jsx)(a.h2,{id:"3calculation-layer",children:"3.Calculation layer"}),"\n",(0,t.jsx)(a.p,{children:"The calculation layer is divided into three parts in terms of function, including the TP-class graph transaction engine, the AP-class graph analysis engine, and the graph neural network engine."}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph transaction engine"})," is mainly used to process concurrent graph operations, including single-point queries, neighbor queries, and path traversal. The graph transaction engine focuses on ACID transactions of concurrent operations, ensuring that the operation logic will not interfere with each other. The main performance indicator is QPS, which is the number of completed queries per second."]}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph analysis engine"})," usually operates as a full-graph iteration. Some simple analysis tasks (such as SPSP) can be completed by the graph transaction engine, and complex analysis tasks are completed by the graph analysis engine, which usually takes several seconds to several hours for a single task. Therefore, a single graph analysis task should use all hardware resources in parallel, and the performance indicator is the total time for completing the task."]}),"\n",(0,t.jsxs)(a.p,{children:[(0,t.jsx)(a.strong,{children:"The graph neural network engine"})," usually operates as a full-graph iteration. In addition to graph topology-based operations, the graph neural network engine also needs to integrate a machine learning framework to handle vector operations, such as PyTorch, MXNet, and TenserFlow."]}),"\n",(0,t.jsx)(a.p,{children:"The logic of the three engines is different and independently configured for resource pools. The graph transaction engine sets up a thread pool based on RPC operations. For each operation received from the client, a thread is taken from the pool to process it, and the number of concurrent executions is equal to the capacity of the RPC thread pool, which is usually configured as the number of server cores. The graph analysis engine has an analysis thread pool, and each graph analysis task is executed concurrently, that is, all threads are used to execute a task to speed up the performance of the operation. The serial execution feature of TuGraph graph analysis operations will restrict the user experience to a certain extent. The demand for concurrent graph analysis can be processed by deploying high-availability, increasing machine resources, or connecting to an external task scheduler to transfer data to a container for real-time scheduling and calculation. Graph neural network operations will reuse the resources of the graph transaction"}),"\n",(0,t.jsx)(a.h2,{id:"4core-features",children:"4.Core Features"}),"\n",(0,t.jsx)(a.h3,{id:"41query-language",children:"4.1.Query Language"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph provides Cypher graph query language that follows the OpenCypher standard."}),"\n",(0,t.jsxs)(a.ul,{children:["\n",(0,t.jsx)(a.li,{children:"Supports Procedure embedding."}),"\n",(0,t.jsx)(a.li,{children:"Supports pluggable optimization frameworks with various optimization features."}),"\n",(0,t.jsx)(a.li,{children:"Supports extensible security check framework for Cypher."}),"\n"]}),"\n",(0,t.jsx)(a.h3,{id:"42stored-procedures",children:"4.2.Stored Procedures"}),"\n",(0,t.jsx)(a.p,{children:"When users need to express complex query/update logic that Cypher cannot describe, or when high performance is required, TuGraph's stored procedures (Procedure) is a more concise and efficient choice than calling multiple REST requests and completing the entire processing flow on the client-side."}),"\n",(0,t.jsx)(a.h3,{id:"43data-importexport",children:"4.3.Data Import/Export"}),"\n",(0,t.jsx)(a.p,{children:"Although TuGraph supports data insertion, batch import can greatly improve efficiency. The import function can be divided into importing into an empty database (offline import) and incremental import. The former refers to importing when the subgraph is empty, and the additional assumption can greatly improve the import performance. In TuGraph, the throughput rate of empty database import and incremental import differs by 10 times. Data consistency needs to be considered in data export, which is based on exporting data based on a snapshot."}),"\n",(0,t.jsxs)(a.p,{children:["TuGraph can perform data export on graph data already stored in TuGraph using the command-line tool ",(0,t.jsx)(a.code,{children:"lgraph_export"}),". The export format supports CSV and JSON."]}),"\n",(0,t.jsx)(a.h3,{id:"44backup-and-restore",children:"4.4.Backup and Restore"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph's backup function can be divided into active/scheduled, offline/online, and full/incremental backup. The goal is to complete the backup with the smallest storage and computing costs possible. The Restore function can restore to the latest state or a historical marked time point, ensuring that the database is in a consistent state."}),"\n",(0,t.jsx)(a.h3,{id:"45-data-warmup",children:"4.5 Data Warmup"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph is a disk-based graph database, and data is loaded into memory only when it is accessed. Therefore, system performance may deteriorate due to frequent IO operations in the first period after the server is opened. We can improve this problem by preheating the data in advance."}),"\n",(0,t.jsx)(a.h3,{id:"46-high-availability-mode",children:"4.6 High Availability Mode"}),"\n",(0,t.jsx)(a.p,{children:"High availability means that by configuring a cluster, real-time multi-replica data hot backup can be achieved, and the cluster can still provide services when some replicas are not in use. TuGraph uses the multi-machine hot backup mechanism of the RAFT protocol, which can reduce RPO to near 0. Data synchronization is performed at the computation layer through RPC interfaces for write operations. The high availability cluster of TuGraph adopts a master-slave mode, where only the master node processes write requests, and both master and slave nodes can process read requests. The write request processing of the master node needs to be synchronized to more than half of the total nodes. The write request is considered complete when the majority of the nodes have written successfully."}),"\n",(0,t.jsx)(a.h2,{id:"5client-tools",children:"5.Client Tools"}),"\n",(0,t.jsx)(a.p,{children:"Client Tools Client tools mainly include SDKs for various programming languages, OGM, and command-line tools."}),"\n",(0,t.jsx)(a.p,{children:"The client SDK is mainly used for secondary development and can be linked to the server through RPC or REST protocols. RPC has better performance based on long links, and data needs to be uniformly serialized through protobuf. TuGraph uses brpc, which supports rpc clients in Java, Python, and C++. REST's protocol is more flexible and can be easily adapted to more diverse environments, and different programming languages can easily connect. TuGraph provides a Python REST client instance, and command-line interaction is also implemented using REST."}),"\n",(0,t.jsx)(a.p,{children:"OGM (Object Graph Mapping) is a graph object mapping tool for TuGraph, which supports mapping JAVA objects (POJO) to TuGraph. Classes in JAVA are mapped to nodes in the graph, collections in classes are mapped to edges, and properties of classes are mapped to properties of graph objects. It also provides corresponding function to operate the graph database. Therefore, JAVA developers can easily use TuGraph database in a familiar ecosystem."}),"\n",(0,t.jsxs)(a.p,{children:["The command-line tool ",(0,t.jsx)(a.code,{children:"lgraph_cypher"})," is a query client that can be used to submit OpenCypher requests to the TuGraph server. ",(0,t.jsx)(a.code,{children:"lgraph_cypher"})," client has two execution modes: single-command mode and interactive mode."]}),"\n",(0,t.jsx)(a.h2,{id:"6ecological-tools",children:"6.Ecological Tools"}),"\n",(0,t.jsx)(a.p,{children:"Ecological tools are a crucial component of enterprise-level databases, and a rich array of ecological tools can greatly enhance the usability and stability of graph databases."}),"\n",(0,t.jsx)(a.h3,{id:"61tugraph-datax",children:"6.1.TuGraph DataX"}),"\n",(0,t.jsx)(a.p,{children:(0,t.jsx)(a.img,{alt:"Import&Export",src:n(5018).A+"",width:"1288",height:"404"})}),"\n",(0,t.jsx)(a.p,{children:"TuGraph's core supports importing and exporting CSV and JSON data, offering both full database and incremental importing modes. In practice, there may be a need to import from multiple data sources such as MySQL, Kafka, and Hive, and TuGraph connects to these sources using DataX. Due to the differences between relational and graph models, data cleaning processes can be quickly processed using SparkSQL. TuGraph focuses only on the reliability and performance of simple CSV and JSON scenario imports."}),"\n",(0,t.jsx)(a.h3,{id:"62visual-interaction",children:"6.2.Visual Interaction"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph Browser is a visual interface for direct users of graph databases, covering most of TuGraph's capabilities, including data import, graph model building, data addition/deletion/query/modify, and monitoring and maintenance operations."}),"\n",(0,t.jsx)(a.h3,{id:"63monitoring",children:"6.3.Monitoring"}),"\n",(0,t.jsx)(a.p,{children:"TuGraph uses the Prometheus + Grafana monitoring framework in a loosely coupled manner. Prometheus obtains monitoring information from TuGraph's monitoring interface, stores it in a local time-series database, and then displays it interactively on the web using Grafana."}),"\n",(0,t.jsx)(a.p,{children:"The monitoring states provided by TuGraph include the state of the graph database and the state of the server. The former includes the database-side status such as read/write load and number of vertices/edges, while the latter includes the real-time status of the server's memory, CPU, and hard disk. If some monitoring state exceeds the expected threshold, proactive alerts are necessary, usually requiring integration with other operations and control systems such as group messaging and email alerts."})]})}function h(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,t.jsx)(a,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},5018:(e,a,n)=>{n.d(a,{A:()=>t});const t=n.p+"assets/images/tugraph-datax-0f6f140ea310beb2c90460c3d6d0c08d.png"},8453:(e,a,n)=>{n.d(a,{R:()=>o,x:()=>s});var t=n(6540);const r={},i=t.createContext(r);function o(e){const a=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(i.Provider,{value:a},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/417a7f4f.5f7475ba.js b/assets/js/417a7f4f.5f7475ba.js
deleted file mode 100644
index 17b66c8a22..0000000000
--- a/assets/js/417a7f4f.5f7475ba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9855],{1551:(r,e,n)=>{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var t=n(4848),h=n(8453);const s={},i="\u6587\u6863\u5730\u56fe",c={id:"zh-CN/source/guide",title:"\u6587\u6863\u5730\u56fe",description:"\u8fd9\u91cc\u662f\u6587\u6863\u5730\u56fe\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5b66\u4e60\u548c\u4f7f\u7528TuGraph\u793e\u533a\u7248\u3002",source:"@site/../docs/zh-CN/source/1.guide.md",sourceDirName:"zh-CN/source",slug:"/zh-CN/source/guide",permalink:"/tugraph-db/zh-CN/source/guide",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Contacts",permalink:"/tugraph-db/en-US/source/contacts"},next:{title:"\u4ec0\u4e48\u662f\u56fe",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-graph"}},u={},a=[{value:"\u5feb\u901f\u4e0a\u624b",id:"\u5feb\u901f\u4e0a\u624b",level:2},{value:"\u5f00\u53d1\u6307\u5357",id:"\u5f00\u53d1\u6307\u5357",level:2},{value:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",id:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",level:2},{value:"\u4e3b\u8981\u4ed3\u5e93",id:"\u4e3b\u8981\u4ed3\u5e93",level:2},{value:"\u89c6\u9891\u4e2d\u5fc3",id:"\u89c6\u9891\u4e2d\u5fc3",level:2},{value:"TuGraph\u6700\u65b0\u7248\u672c",id:"tugraph\u6700\u65b0\u7248\u672c",level:2}];function d(r){const e={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,h.R)(),...r.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u6587\u6863\u5730\u56fe",children:"\u6587\u6863\u5730\u56fe"})}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:"\u8fd9\u91cc\u662f\u6587\u6863\u5730\u56fe\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5b66\u4e60\u548c\u4f7f\u7528TuGraph\u793e\u533a\u7248\u3002"}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"\u5feb\u901f\u4e0a\u624b",children:"\u5feb\u901f\u4e0a\u624b"}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u53ef\u4ee5\u5148\u4e86\u89e3",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/introduction/what-is-graph",children:"\u4ec0\u4e48\u662f\u56fe"}),"\u3001\u56fe",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/introduction/scenarios",children:"\u53ef\u4ee5\u505a\u4ec0\u4e48"}),"\u3001\u4ee5\u53ca",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/introduction/what-is-tugraph",children:"\u4ec0\u4e48\u662fTuGraph"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u57fa\u4e8e",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/cloud-deployment",children:"\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2"}),"\u6216",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/docker-deployment",children:"Docker\u65b9\u5f0f"}),"\u5feb\u901f\u90e8\u7f72TuGraph\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u901a\u8fc7\u4ea7\u54c1\u5185\u7f6e\u7684\u573a\u666f\u4e0a\u624b\u4f53\u9a8c\uff1a",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/movie",children:"\u7535\u5f71"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/wandering-earth",children:"\u6d41\u6d6a\u5730\u7403"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/the-three-body",children:"\u4e09\u4f53"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/three-kingdoms",children:"\u4e09\u56fd"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser-legacy",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"\u5f00\u53d1\u6307\u5357",children:"\u5f00\u53d1\u6307\u5357"}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u901a\u8fc7\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\uff1a",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/client-tools/bolt-client",children:"Bolt Client"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u67e5\u8be2\u8bed\u8a00\u3001\u8bed\u53e5\u521b\u5efa\u56fe\u6a21\u578b\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/query/cypher",children:"Cypher API"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u5b58\u50a8\u8fc7\u7a0b\u548c\u7b97\u6cd5\u4ecb\u7ecd\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/olap&procedure/procedure/",children:"Procedure API (POG API)"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/olap&procedure/olap/tutorial",children:"OLAP API"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["C++/Python\u5f00\u53d1\u5b58\u50a8\u8fc7\u7a0b\u63a5\u53e3\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(e.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(9123).A+"",children:"C++/Python Procedure API"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",children:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e"}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u5728\u5f00\u59cb\u8d21\u732e\u524d\uff0c\u53ef\u4ee5\u5148\u4e86\u89e3",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/contributor-manual/contributing",children:"\u5982\u4f55\u8d21\u732e"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u5982\u679c\u60f3\u4e86\u89e3\u793e\u533a\u89d2\u8272\u7684\u5212\u5206\uff0c\u8bf7\u8bbf\u95ee",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/contributor-manual/community-roles",children:"\u793e\u533a\u89d2\u8272"})]}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"\u4e3b\u8981\u4ed3\u5e93",children:"\u4e3b\u8981\u4ed3\u5e93"}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["TuGraph-DB \u4ed3\u5e93: ",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db",children:"https://github.com/TuGraph-family/tugraph-db"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u53ef\u89c6\u5316\u754c\u9762: ",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db-browser",children:"https://github.com/TuGraph-family/tugraph-db-browser"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u57fa\u4e8etwitter\u6570\u636e\u7684\u7b80\u5355\u6d4b\u8bd5\u65b9\u6cd5: ",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/gdbms-microbenchmark",children:"https://github.com/TuGraph-family/gdbms-microbenchmark"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["\u57fa\u4e8e\u6807\u51c6LDBC-SNB\u7684\u6d4b\u8bd5\u65b9\u6cd5: ",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-snb-interactive",children:"https://github.com/TuGraph-family/tugraph-snb-interactive"})]}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsxs)(e.p,{children:["TuGraph-Analytics \u4ed3\u5e93: ",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-analytics",children:"https://github.com/TuGraph-family/tugraph-analytics"})]}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"\u89c6\u9891\u4e2d\u5fc3",children:"\u89c6\u9891\u4e2d\u5fc3"}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:(0,t.jsx)(e.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=2593741",children:"TuGraph\u5feb\u901f\u4e0a\u624b"})}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:(0,t.jsx)(e.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=3009777",children:"TuGraph\u6280\u672f\u5206\u4eab\u96c6\u5408"})}),"\n"]}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:(0,t.jsx)(e.a,{href:"https://www.bilibili.com/video/BV15U4y1r7AW/",children:"3\u5206\u949f\u8bfb\u61c2\u56fe\u8ba1\u7b97"})}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"tugraph\u6700\u65b0\u7248\u672c",children:"TuGraph\u6700\u65b0\u7248\u672c"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{children:"\u63cf\u8ff0"}),(0,t.jsx)(e.th,{children:"\u6587\u4ef6"}),(0,t.jsx)(e.th,{children:"\u94fe\u63a5"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS7 \u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el7.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS8 \u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el8.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Ubuntu18.04 \u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-4.5.0-1.x86_64.deb"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.x86_64.deb",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS7 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos7-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS8 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos8-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Ubuntu18.04 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-ubuntu18.04-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-ubuntu18.04",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS7 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-mini-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el7.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS8 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-mini-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el8.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Ubuntu18.04 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"tugraph-mini-4.5.0-1.x86_64.deb"}),(0,t.jsx)(e.td,{children:(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.x86_64.deb",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS7 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-mini-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos7-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS8 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-mini-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos8-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Ubuntu18.04 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-mini-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-ubuntu18.04-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-ubuntu18.04",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS7 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-compile-centos7-1.3.2.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos7-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"CentOS8 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-compile-centos8-1.3.2.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos8-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Ubuntu18.04 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(e.td,{children:"tugraph-compile-ubuntu18.04-1.3.2.tar"}),(0,t.jsxs)(e.td,{children:[(0,t.jsx)(e.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-ubuntu18.04-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(e.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-ubuntu18.04",children:"\u8bbf\u95ee"})]})]})]})]}),"\n",(0,t.jsxs)(e.p,{children:["\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\u89c1\uff1a",(0,t.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/blob/master/release/CHANGELOG_CN.md",children:"\u94fe\u63a5"}),"\u3002"]}),"\n",(0,t.jsxs)(e.p,{children:["\u5982\u679c\u60a8\u4e0d\u6e05\u695a\u4f7f\u7528\u5b89\u88c5\u5305\u548c\u955c\u50cf\uff0c\u8bf7\u53c2\u8003 ",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/best-practices/selection",children:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9"}),"\u3002"]})]})}function l(r={}){const{wrapper:e}={...(0,h.R)(),...r.components};return e?(0,t.jsx)(e,{...r,children:(0,t.jsx)(d,{...r})}):d(r)}},9123:(r,e,n)=>{n.d(e,{A:()=>t});const t=n.p+"assets/files/index-07adf872280840868ada97d8aeecb891.rst"},8453:(r,e,n)=>{n.d(e,{R:()=>i,x:()=>c});var t=n(6540);const h={},s=t.createContext(h);function i(r){const e=t.useContext(s);return t.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function c(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(h):r.components||h:i(r.components),t.createElement(s.Provider,{value:e},r.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/417a7f4f.eade77d2.js b/assets/js/417a7f4f.eade77d2.js
new file mode 100644
index 0000000000..b99df1e3e5
--- /dev/null
+++ b/assets/js/417a7f4f.eade77d2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9855],{1551:(r,n,e)=>{e.r(n),e.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var t=e(4848),h=e(8453);const s={},i="\u6587\u6863\u5730\u56fe",c={id:"guide",title:"\u6587\u6863\u5730\u56fe",description:"\u8fd9\u91cc\u662f\u6587\u6863\u5730\u56fe\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5b66\u4e60\u548c\u4f7f\u7528TuGraph\u793e\u533a\u7248\u3002",source:"@site/../docs/zh-CN/source/1.guide.md",sourceDirName:".",slug:"/guide",permalink:"/tugraph-db/zh/guide",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",next:{title:"\u4ec0\u4e48\u662f\u56fe",permalink:"/tugraph-db/zh/introduction/what-is-graph"}},a={},d=[{value:"\u5feb\u901f\u4e0a\u624b",id:"\u5feb\u901f\u4e0a\u624b",level:2},{value:"\u5f00\u53d1\u6307\u5357",id:"\u5f00\u53d1\u6307\u5357",level:2},{value:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",id:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",level:2},{value:"\u4e3b\u8981\u4ed3\u5e93",id:"\u4e3b\u8981\u4ed3\u5e93",level:2},{value:"\u89c6\u9891\u4e2d\u5fc3",id:"\u89c6\u9891\u4e2d\u5fc3",level:2},{value:"TuGraph\u6700\u65b0\u7248\u672c",id:"tugraph\u6700\u65b0\u7248\u672c",level:2}];function u(r){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,h.R)(),...r.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u6587\u6863\u5730\u56fe",children:"\u6587\u6863\u5730\u56fe"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u8fd9\u91cc\u662f\u6587\u6863\u5730\u56fe\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5b66\u4e60\u548c\u4f7f\u7528TuGraph\u793e\u533a\u7248\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u5feb\u901f\u4e0a\u624b",children:"\u5feb\u901f\u4e0a\u624b"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u53ef\u4ee5\u5148\u4e86\u89e3",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/introduction/what-is-graph",children:"\u4ec0\u4e48\u662f\u56fe"}),"\u3001\u56fe",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/introduction/scenarios",children:"\u53ef\u4ee5\u505a\u4ec0\u4e48"}),"\u3001\u4ee5\u53ca",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/introduction/what-is-tugraph",children:"\u4ec0\u4e48\u662fTuGraph"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u57fa\u4e8e",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/installation&running/cloud-deployment",children:"\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2"}),"\u6216",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/installation&running/docker-deployment",children:"Docker\u65b9\u5f0f"}),"\u5feb\u901f\u90e8\u7f72TuGraph\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u901a\u8fc7\u4ea7\u54c1\u5185\u7f6e\u7684\u573a\u666f\u4e0a\u624b\u4f53\u9a8c\uff1a",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/quick-start/demo/movie",children:"\u7535\u5f71"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/quick-start/demo/wandering-earth",children:"\u6d41\u6d6a\u5730\u7403"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/quick-start/demo/the-three-body",children:"\u4e09\u4f53"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/quick-start/demo/three-kingdoms",children:"\u4e09\u56fd"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/user-guide/tugraph-browser",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/user-guide/tugraph-browser-legacy",children:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u5f00\u53d1\u6307\u5357",children:"\u5f00\u53d1\u6307\u5357"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u901a\u8fc7\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\uff1a",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/client-tools/bolt-client",children:"Bolt Client"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u67e5\u8be2\u8bed\u8a00\u3001\u8bed\u53e5\u521b\u5efa\u56fe\u6a21\u578b\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/query/cypher",children:"Cypher API"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u5b58\u50a8\u8fc7\u7a0b\u548c\u7b97\u6cd5\u4ecb\u7ecd\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/olap&procedure/procedure/",children:"Procedure API (POG API)"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/olap&procedure/olap/tutorial",children:"OLAP API"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["C++/Python\u5f00\u53d1\u5b58\u50a8\u8fc7\u7a0b\u63a5\u53e3\u770b\u8fd9\u91cc\uff1a",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:e(9123).A+"",children:"C++/Python Procedure API"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e",children:"\u53c2\u4e0e\u793e\u533a\u8d21\u732e"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u5728\u5f00\u59cb\u8d21\u732e\u524d\uff0c\u53ef\u4ee5\u5148\u4e86\u89e3",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/contributor-manual/contributing",children:"\u5982\u4f55\u8d21\u732e"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u5982\u679c\u60f3\u4e86\u89e3\u793e\u533a\u89d2\u8272\u7684\u5212\u5206\uff0c\u8bf7\u8bbf\u95ee",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/contributor-manual/community-roles",children:"\u793e\u533a\u89d2\u8272"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u4e3b\u8981\u4ed3\u5e93",children:"\u4e3b\u8981\u4ed3\u5e93"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["TuGraph-DB \u4ed3\u5e93: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db",children:"https://github.com/TuGraph-family/tugraph-db"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u53ef\u89c6\u5316\u754c\u9762: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db-browser",children:"https://github.com/TuGraph-family/tugraph-db-browser"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u57fa\u4e8etwitter\u6570\u636e\u7684\u7b80\u5355\u6d4b\u8bd5\u65b9\u6cd5: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/gdbms-microbenchmark",children:"https://github.com/TuGraph-family/gdbms-microbenchmark"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["\u57fa\u4e8e\u6807\u51c6LDBC-SNB\u7684\u6d4b\u8bd5\u65b9\u6cd5: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-snb-interactive",children:"https://github.com/TuGraph-family/tugraph-snb-interactive"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["TuGraph-Analytics \u4ed3\u5e93: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-analytics",children:"https://github.com/TuGraph-family/tugraph-analytics"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\u89c6\u9891\u4e2d\u5fc3",children:"\u89c6\u9891\u4e2d\u5fc3"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=2593741",children:"TuGraph\u5feb\u901f\u4e0a\u624b"})}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=3009777",children:"TuGraph\u6280\u672f\u5206\u4eab\u96c6\u5408"})}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://www.bilibili.com/video/BV15U4y1r7AW/",children:"3\u5206\u949f\u8bfb\u61c2\u56fe\u8ba1\u7b97"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"tugraph\u6700\u65b0\u7248\u672c",children:"TuGraph\u6700\u65b0\u7248\u672c"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,t.jsx)(n.th,{children:"\u6587\u4ef6"}),(0,t.jsx)(n.th,{children:"\u94fe\u63a5"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 \u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el7.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 \u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el8.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 \u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.x86_64.deb"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.x86_64.deb",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos7-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos8-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 \u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-ubuntu18.04-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-ubuntu18.04",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el7.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el8.x86_64.rpm",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 \u7cbe\u7b80\u5b89\u88c5\u5305"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.x86_64.deb"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.x86_64.deb",children:"\u4e0b\u8f7d"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos7-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos8-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 \u7cbe\u7b80\u9884\u5b89\u88c5\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-ubuntu18.04-4.5.0.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-ubuntu18.04",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-compile-centos7-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos7-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos7",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-compile-centos8-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos8-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos8",children:"\u8bbf\u95ee"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 \u7f16\u8bd1\u955c\u50cf"}),(0,t.jsx)(n.td,{children:"tugraph-compile-ubuntu18.04-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-ubuntu18.04-1.3.2.tar",children:"\u4e0b\u8f7d"})," \u3001",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-ubuntu18.04",children:"\u8bbf\u95ee"})]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\u89c1\uff1a",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/blob/master/release/CHANGELOG_CN.md",children:"\u94fe\u63a5"}),"\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:["\u5982\u679c\u60a8\u4e0d\u6e05\u695a\u4f7f\u7528\u5b89\u88c5\u5305\u548c\u955c\u50cf\uff0c\u8bf7\u53c2\u8003 ",(0,t.jsx)(n.a,{href:"/tugraph-db/zh/best-practices/selection",children:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9"}),"\u3002"]})]})}function l(r={}){const{wrapper:n}={...(0,h.R)(),...r.components};return n?(0,t.jsx)(n,{...r,children:(0,t.jsx)(u,{...r})}):u(r)}},9123:(r,n,e)=>{e.d(n,{A:()=>t});const t=e.p+"assets/files/index-07adf872280840868ada97d8aeecb891.rst"},8453:(r,n,e)=>{e.d(n,{R:()=>i,x:()=>c});var t=e(6540);const h={},s=t.createContext(h);function i(r){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof r?r(n):{...n,...r}}),[n,r])}function c(r){let n;return n=r.disableParentContext?"function"==typeof r.components?r.components(h):r.components||h:i(r.components),t.createElement(s.Provider,{value:n},r.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/418c52d8.77a12efe.js b/assets/js/418c52d8.77a12efe.js
deleted file mode 100644
index cf2535e47d..0000000000
--- a/assets/js/418c52d8.77a12efe.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5932],{3961:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>h,toc:()=>o});var n=i(4848),r=i(8453);const a={},l="TuGraph Built-in Algorithm Description",h={id:"en-US/source/olap&procedure/olap/algorithms",title:"TuGraph Built-in Algorithm Description",description:"This document mainly introduces the TuGraph built-in algorithm program in detail, the community version of 6 algorithms can refer to the basic algorithm newspaper",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/6.algorithms.md",sourceDirName:"en-US/source/9.olap&procedure/2.olap",slug:"/en-US/source/olap&procedure/olap/algorithms",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/algorithms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python Olap API",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/python-api"},next:{title:"Learning Tutorial",permalink:"/tugraph-db/en-US/source/olap&procedure/learn/tutorial"}},s={},o=[{value:"1.Introduction",id:"1introduction",level:2},{value:"1.1.Basic algorithms:",id:"11basic-algorithms",level:3},{value:"1.2.Extended algorithms:",id:"12extended-algorithms",level:3},{value:"2.Basic algorithms",id:"2basic-algorithms",level:2},{value:"2.1.Breadth-First Search",id:"21breadth-first-search",level:3},{value:"2.2.Pagerank",id:"22pagerank",level:3},{value:"2.3.Single-Source Shortest Path",id:"23single-source-shortest-path",level:3},{value:"2.4.Weakly Connected Components",id:"24weakly-connected-components",level:3},{value:"2.5.Local Clustering Coefficient",id:"25local-clustering-coefficient",level:3},{value:"2.6.Label Propagation Algorithm",id:"26label-propagation-algorithm",level:3},{value:"3.Extended algorithms",id:"3extended-algorithms",level:2},{value:"3.1.All-Pair Shortest Path",id:"31all-pair-shortest-path",level:3},{value:"3.2.Betweenness Centrality",id:"32betweenness-centrality",level:3},{value:"3.3.Belief Propagation",id:"33belief-propagation",level:3},{value:"3.4.Closeness Centrality",id:"34closeness-centrality",level:3},{value:"3.5.Common Neighborhood",id:"35common-neighborhood",level:3},{value:"3.6.Degree Correlation",id:"36degree-correlation",level:3},{value:"3.7.Dimension Estimation",id:"37dimension-estimation",level:3},{value:"3.8.EgoNet",id:"38egonet",level:3},{value:"3.9.Hyperlink-Induced Topic Search",id:"39hyperlink-induced-topic-search",level:3},{value:"3.10.Jaccard Index",id:"310jaccard-index",level:3},{value:"3.11.K-core",id:"311k-core",level:3},{value:"3.12.Louvain",id:"312louvain",level:3},{value:"3.13.Multiple-source Shortest Paths",id:"313multiple-source-shortest-paths",level:3},{value:"3.14.Personalized PageRank",id:"314personalized-pagerank",level:3},{value:"3.15.Strongly Connected Components",id:"315strongly-connected-components",level:3},{value:"3.16.Speaker-listener Label Propagation Algorithm",id:"316speaker-listener-label-propagation-algorithm",level:3},{value:"3.17.Single-Pair Shortest Path",id:"317single-pair-shortest-path",level:3},{value:"3.18.Triangle Counting",id:"318triangle-counting",level:3},{value:"3.19.Trustrank",id:"319trustrank",level:3},{value:"3.20.Weighted Label Propagation Algorithm",id:"320weighted-label-propagation-algorithm",level:3},{value:"3.21.Weighted Pagerank Algorithm",id:"321weighted-pagerank-algorithm",level:3},{value:"3.22.Maximal independent set",id:"322maximal-independent-set",level:3},{value:"3.23.Sybil Rank",id:"323sybil-rank",level:3},{value:"3.24.Subgraph Isomorphism",id:"324subgraph-isomorphism",level:3},{value:"3.25.Motif",id:"325motif",level:3},{value:"3.26.Kcliques",id:"326kcliques",level:3},{value:"3.27.Ktruss",id:"327ktruss",level:3},{value:"3.28.Leiden",id:"328leiden",level:3}];function c(e){const t={a:"a",blockquote:"blockquote",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"tugraph-built-in-algorithm-description",children:"TuGraph Built-in Algorithm Description"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the TuGraph built-in algorithm program in detail, the community version of 6 algorithms can refer to the basic algorithm newspaper"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,n.jsx)(t.p,{children:"TuGraph currently contains the following 6 basic algorithms and 28 extended algorithms, a total of 34 graph algorithms:"}),"\n",(0,n.jsx)(t.h3,{id:"11basic-algorithms",children:"1.1.Basic algorithms:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"Algorithm name"}),(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"The program name"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Breadth-First Search"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bfs"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Pagerank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"pagerank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Single-Source Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"sssp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weakly Connected Components"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wcc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Local Clustering Coefficient"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"lcc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"lpa"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"12extended-algorithms",children:"1.2.Extended algorithms:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"Algorithm name"}),(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"The program name"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"All-Pair Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"apsp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Betweenness Centrality"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Belief Propagation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Closeness Centrality"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"clce"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Common Neighborhood"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"cn"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Degree Correlation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"dc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Dimension Estimation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"de"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"EgoNet"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"en"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Hyperlink-Induced Topic Search"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"hits"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Jaccard Index"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ji"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"K-core"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"kcore"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Louvain"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"louvain"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Multiple-source Shortest Paths"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"mssp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Personalized PageRank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ppr"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Strongly Connected Components"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"scc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Speaker-listener Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"slpa"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Single-Pair Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"spsp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Triangle Counting"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"triangle"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Trustrank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"trustrank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weighted Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wlpa"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weighted Pagerank Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wpagerank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Maximal independent set"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"mis"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Sybil Rank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"sybilrank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Subgraph Isomorphism"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"subgraph_isomorphism"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Motif"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"motif"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Kcliques"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"kcliques"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Ktruss"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ktruss"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Leiden"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"leiden"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"2basic-algorithms",children:"2.Basic algorithms"}),"\n",(0,n.jsx)(t.h3,{id:"21breadth-first-search",children:"2.1.Breadth-First Search"}),"\n",(0,n.jsxs)(t.p,{children:["Breadth first Search implements the Breadth-first Search algorithm, which starts from the root vertex and traverses all accessible vertices along the width of the graph. Returns the number of vertices traversed. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Breadth-first_search",title:"bfs wiki",children:"https://en.wikipedia.org/wiki/Breadth-first_search"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"22pagerank",children:"2.2.Pagerank"}),"\n",(0,n.jsxs)(t.p,{children:["Web page sorting program to achieve the commonly used Pagerank algorithm. The algorithm calculates the importance ranking of all vertices according to the edge and edge weight in the graph. The higher the PageRank value, the higher the importance of the vertex in the graph. The reciprocal of the number of vertices is used as the initial Rank value of each vertex, and then the Rank value of the vertices is transferred to the adjacent vertices on average according to the outgoing edges, and the transfer process is repeated until the given convergence threshold is met or the given number of iterations is reached. At the end of each pass round, a certain proportion of the Rank values of all vertices will be randomly transferred to any vertex. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/PageRank",title:"pagerank wiki",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"23single-source-shortest-path",children:"2.3.Single-Source Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The Single Source Shortest Path algorithm realizes the Single Source Shortest Path algorithm. It calculates the shortest path length from a given source vertex to any other vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"24weakly-connected-components",children:"2.4.Weakly Connected Components"}),"\n",(0,n.jsxs)(t.p,{children:["The program of Weakly Connected Components has implemented the algorithm. It can calculate all the weakly connected components in the graph. A weakly connected component is a subgraph of a graph in which reachable paths exist between any two points. Please refer to the algorithm content",(0,n.jsxs)(t.a,{href:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)",title:"scc wiki",children:["https://en.wikipedia.org/wiki/Connected",(0,n.jsx)(t.em,{children:"component"}),"(graph_theory)"]}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"25local-clustering-coefficient",children:"2.5.Local Clustering Coefficient"}),"\n",(0,n.jsxs)(t.p,{children:["The average Clustering Coefficient program implements the Local Clustering Coefficient algorithm to calculate the coefficient of the degree of clustering between vertices in the graph. The returned results include the overall clustering coefficient and the vertex clustering coefficient. The overall agglomeration coefficient reflects the evaluation of the overall agglomeration degree in the graph, and the vertex agglomeration coefficient includes the agglomeration coefficient of any vertex, which reflects the agglomeration degree near the vertex. The higher the agglomeration coefficient, the higher the agglomeration degree. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Clustering_coefficient",title:"lcc wiki",children:"https://en.wikipedia.org/wiki/Clustering_coefficient"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"26label-propagation-algorithm",children:"2.6.Label Propagation Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["The program implements Label Propagation Algorithm. This algorithm is a community discovery algorithm based on tag propagation and computes unauthorised graphs. In label passing, each vertex adds up all the labels received, and randomly selects one of the labels with the highest sum. The iteration converges or the algorithm terminates after a given number of rounds. The final output is a label for each vertex, and vertices with the same label value are considered to be in the same community. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h2,{id:"3extended-algorithms",children:"3.Extended algorithms"}),"\n",(0,n.jsx)(t.h3,{id:"31all-pair-shortest-path",children:"3.1.All-Pair Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The All-Pair Shortest Path program realizes the all-pair Shortest Path algorithm and calculates the shortest path between any two points in the graph. Returns the shortest path length between any pair of vertices where the path exists. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm",title:"Floyd-Warshall algorighm wiki",children:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm"})]}),"\n",(0,n.jsx)(t.h3,{id:"32betweenness-centrality",children:"3.2.Betweenness Centrality"}),"\n",(0,n.jsxs)(t.p,{children:["Betweenness Centrality algorithm is implemented in Betweenness centrality program to estimate the betweenness centrality value of all vertices in a graph. The value of intermediate centrality reflects the possibility that any shortest path in the graph passes through the vertex, and the higher the value, the more shortest paths pass through the vertex. During calculation, the number of sampling points should be given, and the calculation should be carried out based on these sampling points. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Betweenness_centrality",title:"bc wiki",children:"https://en.wikipedia.org/wiki/Betweenness_centrality"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"33belief-propagation",children:"3.3.Belief Propagation"}),"\n",(0,n.jsxs)(t.p,{children:["The Belief Propagation algorithm is implemented in the confidence propagation program. Given the edge distribution of the observed vertices, the algorithm estimates the edge distribution of the unobserved vertices by using the mechanism of passing messages among vertices. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Belief_propagation",children:"https://en.wikipedia.org/wiki/Belief_propagation"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"34closeness-centrality",children:"3.4.Closeness Centrality"}),"\n",(0,n.jsxs)(t.p,{children:["The Distance Centrality program implements the Closeness Centrality algorithm, which estimates the average shortest path length from any node to other nodes in the graph. A smaller distance centrality value indicates that the node has a smaller average shortest distance to other nodes, meaning it is more centrally located in the graph from a geometric perspective. The calculation requires specifying the number of sampling points, and the algorithm computes the centrality values for each of these sampling points. For the algorithm content, please refer to ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Closeness_centrality",title:"clce wiki",children:"https://en.wikipedia.org/wiki/Closeness_centrality"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"35common-neighborhood",children:"3.5.Common Neighborhood"}),"\n",(0,n.jsx)(t.p,{children:"The Common Neighborhood program implements the common Neighborhood algorithm to count the number of common neighbors between any given pair of neighboring vertices. Given several pairs of vertices to be queried, the result is the number of common neighbors of any pair of vertices to be queried."}),"\n",(0,n.jsx)(t.h3,{id:"36degree-correlation",children:"3.6.Degree Correlation"}),"\n",(0,n.jsxs)(t.p,{children:["The Degree Correlation algorithm is implemented in the degree correlation program. It calculates the degree correlation degree of a graph by calculating the Pearson correlation coefficient between any adjacent vertex pairs, which can be used to characterize the correlation degree between high-degree vertices in the graph. A higher degree of correlation indicates a higher degree of correlation between vertices of higher degree in the graph. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient",title:"dc wiki",children:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient"})]}),"\n",(0,n.jsx)(t.h3,{id:"37dimension-estimation",children:"3.7.Dimension Estimation"}),"\n",(0,n.jsxs)(t.p,{children:["The diameter Estimation program implements the Dimension Estimation algorithm. The algorithm calculates the length of the longest shortest path in the graph, which is used to characterize the diameter of the graph. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"http://mathworld.wolfram.com/GraphDiameter.html",title:"graph diameter",children:"http://mathworld.wolfram.com/GraphDiameter.html"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"38egonet",children:"3.8.EgoNet"}),"\n",(0,n.jsx)(t.p,{children:"The EgoNet algorithm requires a given root vertex and K value, and takes the root vertex as the source vertex to conduct a width-first search to find the subgraph composed of all neighbors within K degrees. The found subgraph is called the EgoNet of the root vertex."}),"\n",(0,n.jsx)(t.h3,{id:"39hyperlink-induced-topic-search",children:"3.9.Hyperlink-Induced Topic Search"}),"\n",(0,n.jsxs)(t.p,{children:["The Hyperlink Topic Search algorithm implements the Hyperlink-induced topic search algorithm, which assumes that each vertex has two attributes: Authority and Hub. A good hub vertex should point to many vertices with high authority. And a good authority vertex should be pointed to by many vertices of high pivot type. The algorithm returns the authority value and the hub value for each vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/HITS_algorithm",title:"HITS algorithm",children:"https://en.wikipedia.org/wiki/HITS_algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"310jaccard-index",children:"3.10.Jaccard Index"}),"\n",(0,n.jsxs)(t.p,{children:["The Jaccard coefficient program implements the Jaccard Index algorithm. The algorithm calculates the Jaccard coefficient between a given pair of vertices, which can be used to represent the similarity of the two vertices. A higher Jaccard coefficient indicates a higher degree of similarity between pairs of vertices. Given several pairs of vertices with the query, the Jaccard coefficients of these pairs are returned. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Jaccard_index",title:"ji wiki",children:"https://en.wikipedia.org/wiki/Jaccard_index"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"311k-core",children:"3.11.K-core"}),"\n",(0,n.jsxs)(t.p,{children:["k accounting method implements k-core algorithm. The algorithm computes the number of kernels of all vertices, or finds all K-nucleon graphs in the graph. K-nucleon graph is a special subgraph in which the degree of any vertex is not less than a given K value. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)",title:"kcore wiki",children:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"312louvain",children:"3.12.Louvain"}),"\n",(0,n.jsxs)(t.p,{children:["The Louvain community discovery program implements the Fast-unfolding algorithm. The algorithm is a community discovery algorithm based on modularity. It maximizes the modularity of the graph by constantly merging vertex communities, and can discover the hierarchical community structure. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Louvain_Modularity",title:"louvain modularity wiki",children:"https://en.wikipedia.org/wiki/Louvain_Modularity"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"313multiple-source-shortest-paths",children:"3.13.Multiple-source Shortest Paths"}),"\n",(0,n.jsxs)(t.p,{children:["The multisource Shortest Paths program implements the multiple-source Shortest Paths algorithm to calculate the shortest path value to any vertex from the given Multiple source vertices. Where, the shortest path value of multiple source vertices to a vertex is the minimum value of the shortest path from each source vertex to the vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"314personalized-pagerank",children:"3.14.Personalized PageRank"}),"\n",(0,n.jsxs)(t.p,{children:["Personalized web ranking program has Personalized PageRank algorithm. According to the given source vertex, the algorithm calculates the importance ranking of all vertices to the source vertex based on the source vertex. The higher the Rank value, the more important the vertex is to the source vertex. Unlike PageRank, the source vertex Rank value is 1, the rest of the vertex Rank value is 0; And a certain proportion of Rank value will be immediately transferred back to the source vertex after each round of transmission. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf",children:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"315strongly-connected-components",children:"3.15.Strongly Connected Components"}),"\n",(0,n.jsxs)(t.p,{children:["Strongly Connected component program realizes the Strongly Connected Components algorithm. The algorithm computes all strongly connected components of the graph, which is a subgraph of the graph that can start from any vertex to any other vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Strongly_connected_component",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Strongly_connected_component"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"316speaker-listener-label-propagation-algorithm",children:"3.16.Speaker-listener Label Propagation Algorithm"}),"\n",(0,n.jsx)(t.p,{children:"The program realizes the Speaker-listener Label Propagation Algorithm. This algorithm is a community discovery algorithm based on tag propagation and historical tag record, which is an extension of tag propagation algorithm. Different from the label propagation algorithm, this algorithm records the historical labels of all vertices. When the labels are accumulated in the iteration, the historical labels are also counted. The final output is all the historical label records for each vertex. Please refer to the paper for the algorithm content:\u201cSLPA: Uncovering Overlapping Communities in Social Networks via a Speaker-Listener Interaction Dynamic Process\u201d\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"317single-pair-shortest-path",children:"3.17.Single-Pair Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The program of the shortest path between two points implements the Bidirectional point-first Search algorithm. It searches forward width First along the outgoing edge from the starting point and reverse width first along the incoming edge from the end point on the directed undirected graph. The shortest path length from the starting point to the ending point is determined by traversing the vertices of the starting point and the ending point together. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Bidirectional_search",title:"Bidirectional search",children:"https://en.wikipedia.org/wiki/Bidirectional_search"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"318triangle-counting",children:"3.18.Triangle Counting"}),"\n",(0,n.jsx)(t.p,{children:'The Triangle-counting algorithm is implemented to calculate the number of triangles in an undirected graph, which can be used to characterize the correlation degree of the vertices in the graph. The higher the number of triangles, the higher the degree of correlation of the vertices in the graph. For the algorithm content, please refer to the paper, "Finding, Counting and Listing All Triangles in Large Graphs, an Experimental Study".'}),"\n",(0,n.jsx)(t.h3,{id:"319trustrank",children:"3.19.Trustrank"}),"\n",(0,n.jsxs)(t.p,{children:["The Trust Index Sorting Algorithm implements the Trustrank algorithm, which can calculate the Trust Index of any vertex based on a given whitelist. The higher the trust score, the less likely the vertex is to be illegal. Please refer to the algorithm content for details. ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/TrustRank",title:"trustrank wiki",children:"https://en.wikipedia.org/wiki/TrustRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"320weighted-label-propagation-algorithm",children:"3.20.Weighted Label Propagation Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["Weighted Label Propagation Algorithm is implemented in the program. = Different from the label propagation algorithm, the label transmission is related to the weight of the edge. During label transmission, the weight of each vertex will be accumulated according to the incoming edge of the label, and the label with the highest sum will be randomly selected. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"321weighted-pagerank-algorithm",children:"3.21.Weighted Pagerank Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["Weighted Pagerank is implemented in the weighted Pagerank algorithm. Different from PageRank algorithm, the transfer of Rank value is related to the weight of the edge. The Rank value of the vertex will be transferred to the adjacent vertices according to the weight of the edge. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/PageRank",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"322maximal-independent-set",children:"3.22.Maximal independent set"}),"\n",(0,n.jsxs)(t.p,{children:["Maximal independent set algorithm implements Maximal Independent Set algorithm. A maximum independent set means that there are no vertices outside the independent set that can join it. A graph may have many MIS that vary greatly in size, and the algorithm finds one of them. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm",title:"Maximal independent set wiki",children:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"323sybil-rank",children:"3.23.Sybil Rank"}),"\n",(0,n.jsx)(t.p,{children:"Sybil detection algorithm implements Sybil Rank algorithm. The SybilRank algorithm starts from non-Sybil nodes and performs a random walk with premature termination. Please refer to the paper for the algorithm content:\u201cAiding the Detection of Fake Accounts in Large Scale Social Online Services\u201d\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"324subgraph-isomorphism",children:"3.24.Subgraph Isomorphism"}),"\n",(0,n.jsxs)(t.p,{children:["The subgraph matching algorithm implements the subgraph_isomorphism algorithm. The subgraph_isomorphism algorithm matches all nodes in the whole graph and outputs the number of times each node is matched. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105",children:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105"})]}),"\n",(0,n.jsx)(t.h3,{id:"325motif",children:"3.25.Motif"}),"\n",(0,n.jsxs)(t.p,{children:["Pattern matching algorithm implements motif algorithm. motif algorithm matches k-order subgraphs for the specified nodes, and finally outputs the number of each kind of K-order subgraphs for each specified node. Each K-order subgraph is represented by a 64-bit integer, and the $i \\times k + j$bit is 1, indicating that there is an edge i->j in the subgraph. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Network_motif#mfinder",children:"https://en.wikipedia.org/wiki/Network_motif#mfinder"})]}),"\n",(0,n.jsx)(t.h3,{id:"326kcliques",children:"3.26.Kcliques"}),"\n",(0,n.jsxs)(t.p,{children:["The K-order clique counting algorithm implements the k-cliques algorithm. The k-cliques algorithm calculates the number of all K-order complete subgraphs in the graph, and finally outputs the number of k-order complete subgraphs of each node. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size",children:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size"})]}),"\n",(0,n.jsx)(t.h3,{id:"327ktruss",children:"3.27.Ktruss"}),"\n",(0,n.jsxs)(t.p,{children:["The k-order truss counting algorithm implements the k-truss algorithm. A k-truss is a subgraph in which each edge is the edge of at least k-2 triangles. The k-truss algorithm finds out the k-truss subgraph of the graph, and finally outputs the neighbor node list of each node in the subgraph. Algorithm Content Reference",(0,n.jsx)(t.a,{href:"https://louridas.github.io/rwa/assignments/finding-trusses/",children:"https://louridas.github.io/rwa/assignments/finding-trusses/"})]}),"\n",(0,n.jsx)(t.h3,{id:"328leiden",children:"3.28.Leiden"}),"\n",(0,n.jsxs)(t.p,{children:["Leiden algorithm implements Leiden's algorithm. leiden algorithm is a community discovery algorithm based on modularity. Compared with louvain algorithm, leiden algorithm has the advantage that Leiden algorithm detects the broken links in the community to ensure that each community has good connectivity. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://www.nature.com/articles/s41598-019-41695-z#Sec4",children:"https://www.nature.com/articles/s41598-019-41695-z#Sec4"})]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>l,x:()=>h});var n=i(6540);const r={},a=n.createContext(r);function l(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/418c52d8.d2d5a54f.js b/assets/js/418c52d8.d2d5a54f.js
new file mode 100644
index 0000000000..659b8876d6
--- /dev/null
+++ b/assets/js/418c52d8.d2d5a54f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5932],{7928:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>h,toc:()=>o});var n=i(4848),r=i(8453);const a={},l="TuGraph Built-in Algorithm Description",h={id:"olap&procedure/olap/algorithms",title:"TuGraph Built-in Algorithm Description",description:"This document mainly introduces the TuGraph built-in algorithm program in detail, the community version of 6 algorithms can refer to the basic algorithm newspaper",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/6.algorithms.md",sourceDirName:"9.olap&procedure/2.olap",slug:"/olap&procedure/olap/algorithms",permalink:"/tugraph-db/en/olap&procedure/olap/algorithms",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python Olap API",permalink:"/tugraph-db/en/olap&procedure/olap/python-api"},next:{title:"Learning Tutorial",permalink:"/tugraph-db/en/olap&procedure/learn/tutorial"}},s={},o=[{value:"1.Introduction",id:"1introduction",level:2},{value:"1.1.Basic algorithms:",id:"11basic-algorithms",level:3},{value:"1.2.Extended algorithms:",id:"12extended-algorithms",level:3},{value:"2.Basic algorithms",id:"2basic-algorithms",level:2},{value:"2.1.Breadth-First Search",id:"21breadth-first-search",level:3},{value:"2.2.Pagerank",id:"22pagerank",level:3},{value:"2.3.Single-Source Shortest Path",id:"23single-source-shortest-path",level:3},{value:"2.4.Weakly Connected Components",id:"24weakly-connected-components",level:3},{value:"2.5.Local Clustering Coefficient",id:"25local-clustering-coefficient",level:3},{value:"2.6.Label Propagation Algorithm",id:"26label-propagation-algorithm",level:3},{value:"3.Extended algorithms",id:"3extended-algorithms",level:2},{value:"3.1.All-Pair Shortest Path",id:"31all-pair-shortest-path",level:3},{value:"3.2.Betweenness Centrality",id:"32betweenness-centrality",level:3},{value:"3.3.Belief Propagation",id:"33belief-propagation",level:3},{value:"3.4.Closeness Centrality",id:"34closeness-centrality",level:3},{value:"3.5.Common Neighborhood",id:"35common-neighborhood",level:3},{value:"3.6.Degree Correlation",id:"36degree-correlation",level:3},{value:"3.7.Dimension Estimation",id:"37dimension-estimation",level:3},{value:"3.8.EgoNet",id:"38egonet",level:3},{value:"3.9.Hyperlink-Induced Topic Search",id:"39hyperlink-induced-topic-search",level:3},{value:"3.10.Jaccard Index",id:"310jaccard-index",level:3},{value:"3.11.K-core",id:"311k-core",level:3},{value:"3.12.Louvain",id:"312louvain",level:3},{value:"3.13.Multiple-source Shortest Paths",id:"313multiple-source-shortest-paths",level:3},{value:"3.14.Personalized PageRank",id:"314personalized-pagerank",level:3},{value:"3.15.Strongly Connected Components",id:"315strongly-connected-components",level:3},{value:"3.16.Speaker-listener Label Propagation Algorithm",id:"316speaker-listener-label-propagation-algorithm",level:3},{value:"3.17.Single-Pair Shortest Path",id:"317single-pair-shortest-path",level:3},{value:"3.18.Triangle Counting",id:"318triangle-counting",level:3},{value:"3.19.Trustrank",id:"319trustrank",level:3},{value:"3.20.Weighted Label Propagation Algorithm",id:"320weighted-label-propagation-algorithm",level:3},{value:"3.21.Weighted Pagerank Algorithm",id:"321weighted-pagerank-algorithm",level:3},{value:"3.22.Maximal independent set",id:"322maximal-independent-set",level:3},{value:"3.23.Sybil Rank",id:"323sybil-rank",level:3},{value:"3.24.Subgraph Isomorphism",id:"324subgraph-isomorphism",level:3},{value:"3.25.Motif",id:"325motif",level:3},{value:"3.26.Kcliques",id:"326kcliques",level:3},{value:"3.27.Ktruss",id:"327ktruss",level:3},{value:"3.28.Leiden",id:"328leiden",level:3}];function c(e){const t={a:"a",blockquote:"blockquote",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"tugraph-built-in-algorithm-description",children:"TuGraph Built-in Algorithm Description"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the TuGraph built-in algorithm program in detail, the community version of 6 algorithms can refer to the basic algorithm newspaper"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,n.jsx)(t.p,{children:"TuGraph currently contains the following 6 basic algorithms and 28 extended algorithms, a total of 34 graph algorithms:"}),"\n",(0,n.jsx)(t.h3,{id:"11basic-algorithms",children:"1.1.Basic algorithms:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"Algorithm name"}),(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"The program name"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Breadth-First Search"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bfs"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Pagerank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"pagerank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Single-Source Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"sssp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weakly Connected Components"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wcc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Local Clustering Coefficient"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"lcc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"lpa"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"12extended-algorithms",children:"1.2.Extended algorithms:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"Algorithm name"}),(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"The program name"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"All-Pair Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"apsp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Betweenness Centrality"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Belief Propagation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"bp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Closeness Centrality"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"clce"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Common Neighborhood"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"cn"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Degree Correlation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"dc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Dimension Estimation"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"de"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"EgoNet"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"en"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Hyperlink-Induced Topic Search"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"hits"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Jaccard Index"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ji"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"K-core"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"kcore"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Louvain"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"louvain"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Multiple-source Shortest Paths"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"mssp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Personalized PageRank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ppr"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Strongly Connected Components"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"scc"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Speaker-listener Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"slpa"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Single-Pair Shortest Path"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"spsp"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Triangle Counting"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"triangle"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Trustrank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"trustrank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weighted Label Propagation Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wlpa"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Weighted Pagerank Algorithm"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"wpagerank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Maximal independent set"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"mis"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Sybil Rank"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"sybilrank"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Subgraph Isomorphism"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"subgraph_isomorphism"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Motif"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"motif"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Kcliques"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"kcliques"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Ktruss"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"ktruss"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Leiden"}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"leiden"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"2basic-algorithms",children:"2.Basic algorithms"}),"\n",(0,n.jsx)(t.h3,{id:"21breadth-first-search",children:"2.1.Breadth-First Search"}),"\n",(0,n.jsxs)(t.p,{children:["Breadth first Search implements the Breadth-first Search algorithm, which starts from the root vertex and traverses all accessible vertices along the width of the graph. Returns the number of vertices traversed. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Breadth-first_search",title:"bfs wiki",children:"https://en.wikipedia.org/wiki/Breadth-first_search"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"22pagerank",children:"2.2.Pagerank"}),"\n",(0,n.jsxs)(t.p,{children:["Web page sorting program to achieve the commonly used Pagerank algorithm. The algorithm calculates the importance ranking of all vertices according to the edge and edge weight in the graph. The higher the PageRank value, the higher the importance of the vertex in the graph. The reciprocal of the number of vertices is used as the initial Rank value of each vertex, and then the Rank value of the vertices is transferred to the adjacent vertices on average according to the outgoing edges, and the transfer process is repeated until the given convergence threshold is met or the given number of iterations is reached. At the end of each pass round, a certain proportion of the Rank values of all vertices will be randomly transferred to any vertex. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/PageRank",title:"pagerank wiki",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"23single-source-shortest-path",children:"2.3.Single-Source Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The Single Source Shortest Path algorithm realizes the Single Source Shortest Path algorithm. It calculates the shortest path length from a given source vertex to any other vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"24weakly-connected-components",children:"2.4.Weakly Connected Components"}),"\n",(0,n.jsxs)(t.p,{children:["The program of Weakly Connected Components has implemented the algorithm. It can calculate all the weakly connected components in the graph. A weakly connected component is a subgraph of a graph in which reachable paths exist between any two points. Please refer to the algorithm content",(0,n.jsxs)(t.a,{href:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)",title:"scc wiki",children:["https://en.wikipedia.org/wiki/Connected",(0,n.jsx)(t.em,{children:"component"}),"(graph_theory)"]}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"25local-clustering-coefficient",children:"2.5.Local Clustering Coefficient"}),"\n",(0,n.jsxs)(t.p,{children:["The average Clustering Coefficient program implements the Local Clustering Coefficient algorithm to calculate the coefficient of the degree of clustering between vertices in the graph. The returned results include the overall clustering coefficient and the vertex clustering coefficient. The overall agglomeration coefficient reflects the evaluation of the overall agglomeration degree in the graph, and the vertex agglomeration coefficient includes the agglomeration coefficient of any vertex, which reflects the agglomeration degree near the vertex. The higher the agglomeration coefficient, the higher the agglomeration degree. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Clustering_coefficient",title:"lcc wiki",children:"https://en.wikipedia.org/wiki/Clustering_coefficient"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"26label-propagation-algorithm",children:"2.6.Label Propagation Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["The program implements Label Propagation Algorithm. This algorithm is a community discovery algorithm based on tag propagation and computes unauthorised graphs. In label passing, each vertex adds up all the labels received, and randomly selects one of the labels with the highest sum. The iteration converges or the algorithm terminates after a given number of rounds. The final output is a label for each vertex, and vertices with the same label value are considered to be in the same community. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h2,{id:"3extended-algorithms",children:"3.Extended algorithms"}),"\n",(0,n.jsx)(t.h3,{id:"31all-pair-shortest-path",children:"3.1.All-Pair Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The All-Pair Shortest Path program realizes the all-pair Shortest Path algorithm and calculates the shortest path between any two points in the graph. Returns the shortest path length between any pair of vertices where the path exists. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm",title:"Floyd-Warshall algorighm wiki",children:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm"})]}),"\n",(0,n.jsx)(t.h3,{id:"32betweenness-centrality",children:"3.2.Betweenness Centrality"}),"\n",(0,n.jsxs)(t.p,{children:["Betweenness Centrality algorithm is implemented in Betweenness centrality program to estimate the betweenness centrality value of all vertices in a graph. The value of intermediate centrality reflects the possibility that any shortest path in the graph passes through the vertex, and the higher the value, the more shortest paths pass through the vertex. During calculation, the number of sampling points should be given, and the calculation should be carried out based on these sampling points. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Betweenness_centrality",title:"bc wiki",children:"https://en.wikipedia.org/wiki/Betweenness_centrality"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"33belief-propagation",children:"3.3.Belief Propagation"}),"\n",(0,n.jsxs)(t.p,{children:["The Belief Propagation algorithm is implemented in the confidence propagation program. Given the edge distribution of the observed vertices, the algorithm estimates the edge distribution of the unobserved vertices by using the mechanism of passing messages among vertices. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Belief_propagation",children:"https://en.wikipedia.org/wiki/Belief_propagation"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"34closeness-centrality",children:"3.4.Closeness Centrality"}),"\n",(0,n.jsxs)(t.p,{children:["The Distance Centrality program implements the Closeness Centrality algorithm, which estimates the average shortest path length from any node to other nodes in the graph. A smaller distance centrality value indicates that the node has a smaller average shortest distance to other nodes, meaning it is more centrally located in the graph from a geometric perspective. The calculation requires specifying the number of sampling points, and the algorithm computes the centrality values for each of these sampling points. For the algorithm content, please refer to ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Closeness_centrality",title:"clce wiki",children:"https://en.wikipedia.org/wiki/Closeness_centrality"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"35common-neighborhood",children:"3.5.Common Neighborhood"}),"\n",(0,n.jsx)(t.p,{children:"The Common Neighborhood program implements the common Neighborhood algorithm to count the number of common neighbors between any given pair of neighboring vertices. Given several pairs of vertices to be queried, the result is the number of common neighbors of any pair of vertices to be queried."}),"\n",(0,n.jsx)(t.h3,{id:"36degree-correlation",children:"3.6.Degree Correlation"}),"\n",(0,n.jsxs)(t.p,{children:["The Degree Correlation algorithm is implemented in the degree correlation program. It calculates the degree correlation degree of a graph by calculating the Pearson correlation coefficient between any adjacent vertex pairs, which can be used to characterize the correlation degree between high-degree vertices in the graph. A higher degree of correlation indicates a higher degree of correlation between vertices of higher degree in the graph. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient",title:"dc wiki",children:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient"})]}),"\n",(0,n.jsx)(t.h3,{id:"37dimension-estimation",children:"3.7.Dimension Estimation"}),"\n",(0,n.jsxs)(t.p,{children:["The diameter Estimation program implements the Dimension Estimation algorithm. The algorithm calculates the length of the longest shortest path in the graph, which is used to characterize the diameter of the graph. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"http://mathworld.wolfram.com/GraphDiameter.html",title:"graph diameter",children:"http://mathworld.wolfram.com/GraphDiameter.html"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"38egonet",children:"3.8.EgoNet"}),"\n",(0,n.jsx)(t.p,{children:"The EgoNet algorithm requires a given root vertex and K value, and takes the root vertex as the source vertex to conduct a width-first search to find the subgraph composed of all neighbors within K degrees. The found subgraph is called the EgoNet of the root vertex."}),"\n",(0,n.jsx)(t.h3,{id:"39hyperlink-induced-topic-search",children:"3.9.Hyperlink-Induced Topic Search"}),"\n",(0,n.jsxs)(t.p,{children:["The Hyperlink Topic Search algorithm implements the Hyperlink-induced topic search algorithm, which assumes that each vertex has two attributes: Authority and Hub. A good hub vertex should point to many vertices with high authority. And a good authority vertex should be pointed to by many vertices of high pivot type. The algorithm returns the authority value and the hub value for each vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/HITS_algorithm",title:"HITS algorithm",children:"https://en.wikipedia.org/wiki/HITS_algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"310jaccard-index",children:"3.10.Jaccard Index"}),"\n",(0,n.jsxs)(t.p,{children:["The Jaccard coefficient program implements the Jaccard Index algorithm. The algorithm calculates the Jaccard coefficient between a given pair of vertices, which can be used to represent the similarity of the two vertices. A higher Jaccard coefficient indicates a higher degree of similarity between pairs of vertices. Given several pairs of vertices with the query, the Jaccard coefficients of these pairs are returned. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Jaccard_index",title:"ji wiki",children:"https://en.wikipedia.org/wiki/Jaccard_index"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"311k-core",children:"3.11.K-core"}),"\n",(0,n.jsxs)(t.p,{children:["k accounting method implements k-core algorithm. The algorithm computes the number of kernels of all vertices, or finds all K-nucleon graphs in the graph. K-nucleon graph is a special subgraph in which the degree of any vertex is not less than a given K value. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)",title:"kcore wiki",children:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"312louvain",children:"3.12.Louvain"}),"\n",(0,n.jsxs)(t.p,{children:["The Louvain community discovery program implements the Fast-unfolding algorithm. The algorithm is a community discovery algorithm based on modularity. It maximizes the modularity of the graph by constantly merging vertex communities, and can discover the hierarchical community structure. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Louvain_Modularity",title:"louvain modularity wiki",children:"https://en.wikipedia.org/wiki/Louvain_Modularity"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"313multiple-source-shortest-paths",children:"3.13.Multiple-source Shortest Paths"}),"\n",(0,n.jsxs)(t.p,{children:["The multisource Shortest Paths program implements the multiple-source Shortest Paths algorithm to calculate the shortest path value to any vertex from the given Multiple source vertices. Where, the shortest path value of multiple source vertices to a vertex is the minimum value of the shortest path from each source vertex to the vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"314personalized-pagerank",children:"3.14.Personalized PageRank"}),"\n",(0,n.jsxs)(t.p,{children:["Personalized web ranking program has Personalized PageRank algorithm. According to the given source vertex, the algorithm calculates the importance ranking of all vertices to the source vertex based on the source vertex. The higher the Rank value, the more important the vertex is to the source vertex. Unlike PageRank, the source vertex Rank value is 1, the rest of the vertex Rank value is 0; And a certain proportion of Rank value will be immediately transferred back to the source vertex after each round of transmission. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf",children:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"315strongly-connected-components",children:"3.15.Strongly Connected Components"}),"\n",(0,n.jsxs)(t.p,{children:["Strongly Connected component program realizes the Strongly Connected Components algorithm. The algorithm computes all strongly connected components of the graph, which is a subgraph of the graph that can start from any vertex to any other vertex. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Strongly_connected_component",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Strongly_connected_component"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"316speaker-listener-label-propagation-algorithm",children:"3.16.Speaker-listener Label Propagation Algorithm"}),"\n",(0,n.jsx)(t.p,{children:"The program realizes the Speaker-listener Label Propagation Algorithm. This algorithm is a community discovery algorithm based on tag propagation and historical tag record, which is an extension of tag propagation algorithm. Different from the label propagation algorithm, this algorithm records the historical labels of all vertices. When the labels are accumulated in the iteration, the historical labels are also counted. The final output is all the historical label records for each vertex. Please refer to the paper for the algorithm content:\u201cSLPA: Uncovering Overlapping Communities in Social Networks via a Speaker-Listener Interaction Dynamic Process\u201d\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"317single-pair-shortest-path",children:"3.17.Single-Pair Shortest Path"}),"\n",(0,n.jsxs)(t.p,{children:["The program of the shortest path between two points implements the Bidirectional point-first Search algorithm. It searches forward width First along the outgoing edge from the starting point and reverse width first along the incoming edge from the end point on the directed undirected graph. The shortest path length from the starting point to the ending point is determined by traversing the vertices of the starting point and the ending point together. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Bidirectional_search",title:"Bidirectional search",children:"https://en.wikipedia.org/wiki/Bidirectional_search"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"318triangle-counting",children:"3.18.Triangle Counting"}),"\n",(0,n.jsx)(t.p,{children:'The Triangle-counting algorithm is implemented to calculate the number of triangles in an undirected graph, which can be used to characterize the correlation degree of the vertices in the graph. The higher the number of triangles, the higher the degree of correlation of the vertices in the graph. For the algorithm content, please refer to the paper, "Finding, Counting and Listing All Triangles in Large Graphs, an Experimental Study".'}),"\n",(0,n.jsx)(t.h3,{id:"319trustrank",children:"3.19.Trustrank"}),"\n",(0,n.jsxs)(t.p,{children:["The Trust Index Sorting Algorithm implements the Trustrank algorithm, which can calculate the Trust Index of any vertex based on a given whitelist. The higher the trust score, the less likely the vertex is to be illegal. Please refer to the algorithm content for details. ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/TrustRank",title:"trustrank wiki",children:"https://en.wikipedia.org/wiki/TrustRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"320weighted-label-propagation-algorithm",children:"3.20.Weighted Label Propagation Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["Weighted Label Propagation Algorithm is implemented in the program. = Different from the label propagation algorithm, the label transmission is related to the weight of the edge. During label transmission, the weight of each vertex will be accumulated according to the incoming edge of the label, and the label with the highest sum will be randomly selected. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"321weighted-pagerank-algorithm",children:"3.21.Weighted Pagerank Algorithm"}),"\n",(0,n.jsxs)(t.p,{children:["Weighted Pagerank is implemented in the weighted Pagerank algorithm. Different from PageRank algorithm, the transfer of Rank value is related to the weight of the edge. The Rank value of the vertex will be transferred to the adjacent vertices according to the weight of the edge. Please refer to the algorithm content",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/PageRank",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"322maximal-independent-set",children:"3.22.Maximal independent set"}),"\n",(0,n.jsxs)(t.p,{children:["Maximal independent set algorithm implements Maximal Independent Set algorithm. A maximum independent set means that there are no vertices outside the independent set that can join it. A graph may have many MIS that vary greatly in size, and the algorithm finds one of them. Please refer to the algorithm content ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm",title:"Maximal independent set wiki",children:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm"}),"\u3002"]}),"\n",(0,n.jsx)(t.h3,{id:"323sybil-rank",children:"3.23.Sybil Rank"}),"\n",(0,n.jsx)(t.p,{children:"Sybil detection algorithm implements Sybil Rank algorithm. The SybilRank algorithm starts from non-Sybil nodes and performs a random walk with premature termination. Please refer to the paper for the algorithm content:\u201cAiding the Detection of Fake Accounts in Large Scale Social Online Services\u201d\u3002"}),"\n",(0,n.jsx)(t.h3,{id:"324subgraph-isomorphism",children:"3.24.Subgraph Isomorphism"}),"\n",(0,n.jsxs)(t.p,{children:["The subgraph matching algorithm implements the subgraph_isomorphism algorithm. The subgraph_isomorphism algorithm matches all nodes in the whole graph and outputs the number of times each node is matched. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105",children:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105"})]}),"\n",(0,n.jsx)(t.h3,{id:"325motif",children:"3.25.Motif"}),"\n",(0,n.jsxs)(t.p,{children:["Pattern matching algorithm implements motif algorithm. motif algorithm matches k-order subgraphs for the specified nodes, and finally outputs the number of each kind of K-order subgraphs for each specified node. Each K-order subgraph is represented by a 64-bit integer, and the $i \\times k + j$bit is 1, indicating that there is an edge i->j in the subgraph. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Network_motif#mfinder",children:"https://en.wikipedia.org/wiki/Network_motif#mfinder"})]}),"\n",(0,n.jsx)(t.h3,{id:"326kcliques",children:"3.26.Kcliques"}),"\n",(0,n.jsxs)(t.p,{children:["The K-order clique counting algorithm implements the k-cliques algorithm. The k-cliques algorithm calculates the number of all K-order complete subgraphs in the graph, and finally outputs the number of k-order complete subgraphs of each node. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size",children:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size"})]}),"\n",(0,n.jsx)(t.h3,{id:"327ktruss",children:"3.27.Ktruss"}),"\n",(0,n.jsxs)(t.p,{children:["The k-order truss counting algorithm implements the k-truss algorithm. A k-truss is a subgraph in which each edge is the edge of at least k-2 triangles. The k-truss algorithm finds out the k-truss subgraph of the graph, and finally outputs the neighbor node list of each node in the subgraph. Algorithm Content Reference",(0,n.jsx)(t.a,{href:"https://louridas.github.io/rwa/assignments/finding-trusses/",children:"https://louridas.github.io/rwa/assignments/finding-trusses/"})]}),"\n",(0,n.jsx)(t.h3,{id:"328leiden",children:"3.28.Leiden"}),"\n",(0,n.jsxs)(t.p,{children:["Leiden algorithm implements Leiden's algorithm. leiden algorithm is a community discovery algorithm based on modularity. Compared with louvain algorithm, leiden algorithm has the advantage that Leiden algorithm detects the broken links in the community to ensure that each community has good connectivity. Algorithm Content Reference ",(0,n.jsx)(t.a,{href:"https://www.nature.com/articles/s41598-019-41695-z#Sec4",children:"https://www.nature.com/articles/s41598-019-41695-z#Sec4"})]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>l,x:()=>h});var n=i(6540);const r={},a=n.createContext(r);function l(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4198fd89.8ecba845.js b/assets/js/4198fd89.8ecba845.js
deleted file mode 100644
index 08a0f70d76..0000000000
--- a/assets/js/4198fd89.8ecba845.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4470],{9960:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>h,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=t(4848),d=t(8453);const i={},s="\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",c={id:"zh-CN/source/introduction/what-is-gdbms",title:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",description:"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93\uff0c\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf\uff0c\u4ee5\u53ca\u4e24\u8005\u7279\u70b9\u7684\u5bf9\u6bd4\u3002",source:"@site/../docs/zh-CN/source/2.introduction/2.what-is-gdbms.md",sourceDirName:"zh-CN/source/2.introduction",slug:"/zh-CN/source/introduction/what-is-gdbms",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-gdbms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4ec0\u4e48\u662f\u56fe",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-graph"},next:{title:"\u4ec0\u4e48\u662fTuGraph",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-tugraph"}},h={},l=[{value:"1. \u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",id:"1-\u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",level:2},{value:"2. \u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",id:"2-\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",level:2},{value:"2.1. \u6027\u80fd",id:"21-\u6027\u80fd",level:3},{value:"2.2. \u517c\u5bb9\u6027",id:"22-\u517c\u5bb9\u6027",level:3},{value:"2.3. \u76f4\u89c2\u6027",id:"23-\u76f4\u89c2\u6027",level:3},{value:"3. \u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",id:"3-\u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",level:2}];function o(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",children:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93\uff0c\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf\uff0c\u4ee5\u53ca\u4e24\u8005\u7279\u70b9\u7684\u5bf9\u6bd4\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1-\u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",children:"1. \u56fe\u6570\u636e\u5e93\u4ecb\u7ecd"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u662f\u57fa\u4e8e\u56fe\u6a21\u578b\u7684\u6570\u636e\u5e93\u3002\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u56fe\u6570\u636e\u5e93\u771f\u6b63\u6ce8\u91cd\u201c\u5173\u7cfb\u201d\u3002\u56fe\u6570\u636e\u5e93\u7684\u4e3b\u8981\u529f\u80fd\u662f\u7ba1\u7406\u56fe\u6570\u636e\uff0c\u56e0\u6b64\u9700\u8981\u652f\u6301\u9ad8\u6548\u7684\u70b9\u3001\u8fb9\u67e5\u8be2\u548c\u66f4\u65b0\uff1b\u4e3a\u65b9\u4fbf\u7528\u6237\u4f7f\u7528\uff0c\u901a\u5e38\u8fd8\u9700\u8981\u589e\u52a0\u5bf9\u4e8b\u52a1\uff08transaction\uff09\u7684\u652f\u6301\uff0c\u4ee5\u786e\u4fdd\u5e76\u53d1\u64cd\u4f5c\u4e0b\u7684\u6b63\u5e38\u8fd0\u884c\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"2-\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",children:"2. \u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u7684\u529f\u80fd\u662f\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6269\u5c55\u3002\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4ec5\u652f\u6301\u7684\u201c\u8868\u7ed3\u6784\u201d\u76f8\u6bd4\uff0c\u56fe\u6570\u636e\u5e93\u6240\u652f\u6301\u7684\u201c\u56fe\u7ed3\u6784\u201d\u66f4\u4e3a\u7075\u6d3b\u3002\u56fe\u6570\u636e\u5e93\u5728\u57fa\u4e8e\u56fe\u7684\u589e\u52a0\u3001\u5220\u9664\u3001\u67e5\u8be2\u548c\u4fee\u6539\u65b9\u9762\u91c7\u7528\u4e0d\u540c\u4e8e\u5176\u4ed6\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002\u5728\u56fe\u6570\u636e\u64cd\u4f5c\u62bd\u8c61\u4e0a\uff0c\u91c7\u7528\u57fa\u4e8e\u70b9\u7684\u89c6\u89d2\uff0c\u4f8b\u5982\u70b9\u901a\u8fc7\u5176\u6240\u6709\u201c\u51fa\u8fb9\u201d\uff08\u4ece\u4e00\u4e2a\u70b9\u51fa\u53d1\uff0c\u8fde\u63a5\u5230\u5176\u4ed6\u70b9\u7684\u8fb9\uff09\u8bbf\u95ee\u5176\u90bb\u63a5\u70b9\u3002\u8fd9\u662f\u56fe\u6570\u636e\u5e93\u7cfb\u7edf\u8bbe\u8ba1\u7684\u6838\u5fc3\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u7684\u72ec\u7279\u6027\u4f53\u73b0\u5728\u4ee5\u4e0b\u4e09\u4e2a\u65b9\u9762:"}),"\n",(0,r.jsx)(e.h3,{id:"21-\u6027\u80fd",children:"2.1. \u6027\u80fd"}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u5173\u8054\u5173\u7cfb\u5904\u7406\u4e0a\uff0c\u4f7f\u7528\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0d\u53ef\u907f\u514d\u5730\u8981\u4f7f\u7528\u8868\u7684JOIN\u64cd\u4f5c\uff0c\u8fd9\u4f1a\u5bf9\u6027\u80fd\u4ea7\u751f\u8f83\u5927\u5f71\u54cd\uff1b\u800c\u56fe\u6570\u636e\u5e93\u5219\u76f4\u63a5\u8df3\u8f6c\u8bbf\u95ee\u7c7b\u6307\u9488\uff0c\u64cd\u4f5c\u5173\u8054\u6570\u636e\u7684\u6548\u7387\u66f4\u9ad8\uff0c\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u63d0\u9ad82\u52304\u4e2a\u6570\u91cf\u7ea7\u7684\u6027\u80fd\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"22-\u517c\u5bb9\u6027",children:"2.2. \u517c\u5bb9\u6027"}),"\n",(0,r.jsx)(e.p,{children:"\u73b0\u5b9e\u4e2d\uff0c\u9879\u76ee\u8fdb\u7a0b\u901a\u5e38\u4e0d\u65ad\u6f14\u53d8\uff0c\u6570\u636e\u7684\u5185\u5bb9\u751a\u81f3\u6570\u636e\u683c\u5f0f\u4e5f\u5728\u4e0d\u65ad\u53d8\u5316\u3002\u5728\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\uff0c\u8fd9\u610f\u5473\u7740\u8868\u7ed3\u6784\u7684\u53d8\u5316\u6216\u5efa\u7acb\u591a\u4e2a\u65b0\u8868\uff0c\u5bf9\u6e90\u6570\u636e\u7684\u4fee\u6539\u975e\u5e38\u5927\u3002\u800c\u5728\u56fe\u6570\u636e\u5e93\u4e2d\uff0c\u4ec5\u9700\u6dfb\u52a0\u65b0\u7684\u70b9\u3001\u8fb9\u548c\u5c5e\u6027\uff0c\u5e76\u5c06\u5176\u8bbe\u7f6e\u4e3a\u5bf9\u5e94\u7684\u7c7b\u578b\u5373\u53ef\u3002\u4ece\u672c\u8d28\u4e0a\u8bf4\uff0c\u4e00\u4e2a\u8868\u4ee3\u8868\u4e00\u79cd\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4e00\u4e2a\u70b9\u4ee3\u8868\u4e00\u4e2a\u7279\u5b9a\u7684\u6570\u636e\u3002\u8fd9\u610f\u5473\u7740\u5173\u7cfb\u578b\u6570\u636e\u5e93\u66f4\u5173\u6ce8\u6570\u636e\u7c7b\u578b\uff0c\u800c\u56fe\u6570\u636e\u5e93\u66f4\u5173\u6ce8\u6570\u636e\u4e2a\u4f53\u53ca\u5176\u5173\u8054\u5173\u7cfb\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"23-\u76f4\u89c2\u6027",children:"2.3. \u76f4\u89c2\u6027"}),"\n",(0,r.jsx)(e.p,{children:"\u4f7f\u7528\u56fe\u7684\u65b9\u5f0f\u8868\u8fbe\u73b0\u5b9e\u4e16\u754c\u7684\u5173\u7cfb\u66f4\u76f4\u63a5\u548c\u81ea\u7136\uff0c\u5728\u4e07\u7269\u4e92\u8054\u7684\u65f6\u4ee3\u5c24\u4e3a\u7a81\u51fa\u3002\u5982\u679c\u4f7f\u7528\u5173\u7cfb\u578b\u6570\u636e\uff0c\u5148\u5efa\u7acb\u5b9e\u4f53\u8868\uff0c\u518d\u5efa\u7acb\u5173\u7cfb\u8868\uff0c\u6700\u540e\u6620\u5c04\u6570\u636e\uff0c\u9700\u8981\u9ad8\u5ea6\u7684\u62bd\u8c61\u601d\u7ef4\u3002\u5728\u56fe\u6570\u636e\u4e0a\u8fdb\u884c\u5206\u6790\u67e5\u8be2\u65f6\uff0c\u53ef\u4ee5\u76f4\u89c2\u5730\u901a\u8fc7\u70b9\u8fb9\u8fde\u63a5\u7684\u62d3\u6251\u7ed3\u6784\u627e\u5230\u6240\u9700\u6570\u636e\uff0c\u65e0\u9700\u4efb\u4f55\u4e13\u4e1a\u77e5\u8bc6\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"3-\u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",children:"3. \u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u5206\u7c7b"}),(0,r.jsx)(e.th,{children:"\u6a21\u578b"}),(0,r.jsx)(e.th,{children:"\u4f18\u52bf"}),(0,r.jsx)(e.th,{children:"\u52a3\u52bf"}),(0,r.jsx)(e.th,{children:"\u4e3e\u4f8b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5173\u7cfb\u578b\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u8868\u7ed3\u6784"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u9ad8\u5ea6\u7ed3\u6784\u5316\uff0c\u4e00\u81f4\u6027\u5f3a\uff0c\u8f6f\u4ef6\u6210\u719f\u5ea6\u9ad8"}),(0,r.jsx)(e.td,{children:"\u9762\u5411\u591a\u8df3\u7684\u5173\u8054\u5173\u7cfb\u67e5\u8be2\u4f4e\u6548\u6216\u4e0d\u652f\u6301"}),(0,r.jsx)(e.td,{children:"MySQL\u3001Oracle"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u56fe\u7ed3\u6784"}),(0,r.jsx)(e.td,{children:"\u9488\u5bf9\u5173\u8054\u5173\u7cfb\u7684\u5efa\u6a21\u5efa\u6a21\u548c\u64cd\u4f5c\u6548\u7387\u975e\u5e38\u9ad8"}),(0,r.jsx)(e.td,{children:"\u9ad8\u5ea6\u7ed3\u6784\u5316\u7684\u6570\u636e\u5904\u7406\u80fd\u529b\u4e0d\u53ca\u5173\u7cfb\u578b\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"Neo4j\u3001TuGraph"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u603b\u4e4b\uff0c\u9762\u5bf9\u6d77\u91cf\u6570\u636e\u7684\u5b58\u50a8\u548c\u5904\u7406\u95ee\u9898\uff0c\u4f20\u7edf\u7684\u5173\u7cfb\u6570\u636e\u5e93\u5df2\u7ecf\u65e0\u6cd5\u6ee1\u8db3\u5927\u90e8\u5206\u7684\u65e5\u5e38\u6570\u636e\u5b58\u50a8\u9700\u6c42\u3002\u56fe\u6570\u636e\u5e93\u6280\u672f\u53ef\u4ee5\u5c06\u5173\u7cfb\u4fe1\u606f\u5b58\u50a8\u4e3a\u5b9e\u4f53\uff0c\u7075\u6d3b\u62d3\u5c55\u6570\u636e\u6a21\u578b\u3002\u7531\u4e8e\u63d0\u4f9b\u4e86\u5bf9\u5173\u8054\u6570\u636e\u6700\u76f4\u63a5\u7684\u8868\u8fbe\u65b9\u5f0f\u548c\u56fe\u6a21\u578b\u5bf9\u5f02\u6784\u6570\u636e\u7684\u5929\u7136\u5305\u5bb9\u6027\uff0c\u56fe\u6570\u636e\u5e93\u6280\u672f\u5fc5\u5c06\u6210\u4e3a\u672a\u6765\u6700\u70ed\u70b9\u7684\u6280\u672f\u4e4b\u4e00\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b\u5b58\u50a8\u548c\u5206\u6790\u5927\u89c4\u6a21\u56fe\u6570\u636e\u7684\u6709\u529b\u652f\u6301\u3002"})]})}function u(n={}){const{wrapper:e}={...(0,d.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(o,{...n})}):o(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>s,x:()=>c});var r=t(6540);const d={},i=r.createContext(d);function s(n){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:s(n.components),r.createElement(i.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4198fd89.a8bccad1.js b/assets/js/4198fd89.a8bccad1.js
new file mode 100644
index 0000000000..b812e289f9
--- /dev/null
+++ b/assets/js/4198fd89.a8bccad1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4470],{9960:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>a,frontMatter:()=>i,metadata:()=>h,toc:()=>l});var r=t(4848),d=t(8453);const i={},s="\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",h={id:"introduction/what-is-gdbms",title:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",description:"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93\uff0c\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf\uff0c\u4ee5\u53ca\u4e24\u8005\u7279\u70b9\u7684\u5bf9\u6bd4\u3002",source:"@site/../docs/zh-CN/source/2.introduction/2.what-is-gdbms.md",sourceDirName:"2.introduction",slug:"/introduction/what-is-gdbms",permalink:"/tugraph-db/zh/introduction/what-is-gdbms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4ec0\u4e48\u662f\u56fe",permalink:"/tugraph-db/zh/introduction/what-is-graph"},next:{title:"\u4ec0\u4e48\u662fTuGraph",permalink:"/tugraph-db/zh/introduction/what-is-tugraph"}},c={},l=[{value:"1. \u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",id:"1-\u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",level:2},{value:"2. \u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",id:"2-\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",level:2},{value:"2.1. \u6027\u80fd",id:"21-\u6027\u80fd",level:3},{value:"2.2. \u517c\u5bb9\u6027",id:"22-\u517c\u5bb9\u6027",level:3},{value:"2.3. \u76f4\u89c2\u6027",id:"23-\u76f4\u89c2\u6027",level:3},{value:"3. \u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",id:"3-\u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",level:2}];function o(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93",children:"\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4ec0\u4e48\u662f\u56fe\u6570\u636e\u5e93\uff0c\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf\uff0c\u4ee5\u53ca\u4e24\u8005\u7279\u70b9\u7684\u5bf9\u6bd4\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1-\u56fe\u6570\u636e\u5e93\u4ecb\u7ecd",children:"1. \u56fe\u6570\u636e\u5e93\u4ecb\u7ecd"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u662f\u57fa\u4e8e\u56fe\u6a21\u578b\u7684\u6570\u636e\u5e93\u3002\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u56fe\u6570\u636e\u5e93\u771f\u6b63\u6ce8\u91cd\u201c\u5173\u7cfb\u201d\u3002\u56fe\u6570\u636e\u5e93\u7684\u4e3b\u8981\u529f\u80fd\u662f\u7ba1\u7406\u56fe\u6570\u636e\uff0c\u56e0\u6b64\u9700\u8981\u652f\u6301\u9ad8\u6548\u7684\u70b9\u3001\u8fb9\u67e5\u8be2\u548c\u66f4\u65b0\uff1b\u4e3a\u65b9\u4fbf\u7528\u6237\u4f7f\u7528\uff0c\u901a\u5e38\u8fd8\u9700\u8981\u589e\u52a0\u5bf9\u4e8b\u52a1\uff08transaction\uff09\u7684\u652f\u6301\uff0c\u4ee5\u786e\u4fdd\u5e76\u53d1\u64cd\u4f5c\u4e0b\u7684\u6b63\u5e38\u8fd0\u884c\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"2-\u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf",children:"2. \u56fe\u6570\u636e\u5e93\u76f8\u6bd4\u8f83\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4f18\u52bf"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u7684\u529f\u80fd\u662f\u4f20\u7edf\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6269\u5c55\u3002\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4ec5\u652f\u6301\u7684\u201c\u8868\u7ed3\u6784\u201d\u76f8\u6bd4\uff0c\u56fe\u6570\u636e\u5e93\u6240\u652f\u6301\u7684\u201c\u56fe\u7ed3\u6784\u201d\u66f4\u4e3a\u7075\u6d3b\u3002\u56fe\u6570\u636e\u5e93\u5728\u57fa\u4e8e\u56fe\u7684\u589e\u52a0\u3001\u5220\u9664\u3001\u67e5\u8be2\u548c\u4fee\u6539\u65b9\u9762\u91c7\u7528\u4e0d\u540c\u4e8e\u5176\u4ed6\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002\u5728\u56fe\u6570\u636e\u64cd\u4f5c\u62bd\u8c61\u4e0a\uff0c\u91c7\u7528\u57fa\u4e8e\u70b9\u7684\u89c6\u89d2\uff0c\u4f8b\u5982\u70b9\u901a\u8fc7\u5176\u6240\u6709\u201c\u51fa\u8fb9\u201d\uff08\u4ece\u4e00\u4e2a\u70b9\u51fa\u53d1\uff0c\u8fde\u63a5\u5230\u5176\u4ed6\u70b9\u7684\u8fb9\uff09\u8bbf\u95ee\u5176\u90bb\u63a5\u70b9\u3002\u8fd9\u662f\u56fe\u6570\u636e\u5e93\u7cfb\u7edf\u8bbe\u8ba1\u7684\u6838\u5fc3\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u56fe\u6570\u636e\u5e93\u7684\u72ec\u7279\u6027\u4f53\u73b0\u5728\u4ee5\u4e0b\u4e09\u4e2a\u65b9\u9762:"}),"\n",(0,r.jsx)(e.h3,{id:"21-\u6027\u80fd",children:"2.1. \u6027\u80fd"}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u5173\u8054\u5173\u7cfb\u5904\u7406\u4e0a\uff0c\u4f7f\u7528\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0d\u53ef\u907f\u514d\u5730\u8981\u4f7f\u7528\u8868\u7684JOIN\u64cd\u4f5c\uff0c\u8fd9\u4f1a\u5bf9\u6027\u80fd\u4ea7\u751f\u8f83\u5927\u5f71\u54cd\uff1b\u800c\u56fe\u6570\u636e\u5e93\u5219\u76f4\u63a5\u8df3\u8f6c\u8bbf\u95ee\u7c7b\u6307\u9488\uff0c\u64cd\u4f5c\u5173\u8054\u6570\u636e\u7684\u6548\u7387\u66f4\u9ad8\uff0c\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u63d0\u9ad82\u52304\u4e2a\u6570\u91cf\u7ea7\u7684\u6027\u80fd\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"22-\u517c\u5bb9\u6027",children:"2.2. \u517c\u5bb9\u6027"}),"\n",(0,r.jsx)(e.p,{children:"\u73b0\u5b9e\u4e2d\uff0c\u9879\u76ee\u8fdb\u7a0b\u901a\u5e38\u4e0d\u65ad\u6f14\u53d8\uff0c\u6570\u636e\u7684\u5185\u5bb9\u751a\u81f3\u6570\u636e\u683c\u5f0f\u4e5f\u5728\u4e0d\u65ad\u53d8\u5316\u3002\u5728\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\uff0c\u8fd9\u610f\u5473\u7740\u8868\u7ed3\u6784\u7684\u53d8\u5316\u6216\u5efa\u7acb\u591a\u4e2a\u65b0\u8868\uff0c\u5bf9\u6e90\u6570\u636e\u7684\u4fee\u6539\u975e\u5e38\u5927\u3002\u800c\u5728\u56fe\u6570\u636e\u5e93\u4e2d\uff0c\u4ec5\u9700\u6dfb\u52a0\u65b0\u7684\u70b9\u3001\u8fb9\u548c\u5c5e\u6027\uff0c\u5e76\u5c06\u5176\u8bbe\u7f6e\u4e3a\u5bf9\u5e94\u7684\u7c7b\u578b\u5373\u53ef\u3002\u4ece\u672c\u8d28\u4e0a\u8bf4\uff0c\u4e00\u4e2a\u8868\u4ee3\u8868\u4e00\u79cd\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4e00\u4e2a\u70b9\u4ee3\u8868\u4e00\u4e2a\u7279\u5b9a\u7684\u6570\u636e\u3002\u8fd9\u610f\u5473\u7740\u5173\u7cfb\u578b\u6570\u636e\u5e93\u66f4\u5173\u6ce8\u6570\u636e\u7c7b\u578b\uff0c\u800c\u56fe\u6570\u636e\u5e93\u66f4\u5173\u6ce8\u6570\u636e\u4e2a\u4f53\u53ca\u5176\u5173\u8054\u5173\u7cfb\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"23-\u76f4\u89c2\u6027",children:"2.3. \u76f4\u89c2\u6027"}),"\n",(0,r.jsx)(e.p,{children:"\u4f7f\u7528\u56fe\u7684\u65b9\u5f0f\u8868\u8fbe\u73b0\u5b9e\u4e16\u754c\u7684\u5173\u7cfb\u66f4\u76f4\u63a5\u548c\u81ea\u7136\uff0c\u5728\u4e07\u7269\u4e92\u8054\u7684\u65f6\u4ee3\u5c24\u4e3a\u7a81\u51fa\u3002\u5982\u679c\u4f7f\u7528\u5173\u7cfb\u578b\u6570\u636e\uff0c\u5148\u5efa\u7acb\u5b9e\u4f53\u8868\uff0c\u518d\u5efa\u7acb\u5173\u7cfb\u8868\uff0c\u6700\u540e\u6620\u5c04\u6570\u636e\uff0c\u9700\u8981\u9ad8\u5ea6\u7684\u62bd\u8c61\u601d\u7ef4\u3002\u5728\u56fe\u6570\u636e\u4e0a\u8fdb\u884c\u5206\u6790\u67e5\u8be2\u65f6\uff0c\u53ef\u4ee5\u76f4\u89c2\u5730\u901a\u8fc7\u70b9\u8fb9\u8fde\u63a5\u7684\u62d3\u6251\u7ed3\u6784\u627e\u5230\u6240\u9700\u6570\u636e\uff0c\u65e0\u9700\u4efb\u4f55\u4e13\u4e1a\u77e5\u8bc6\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"3-\u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4",children:"3. \u56fe\u6570\u636e\u5e93\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5bf9\u6bd4"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u5206\u7c7b"}),(0,r.jsx)(e.th,{children:"\u6a21\u578b"}),(0,r.jsx)(e.th,{children:"\u4f18\u52bf"}),(0,r.jsx)(e.th,{children:"\u52a3\u52bf"}),(0,r.jsx)(e.th,{children:"\u4e3e\u4f8b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5173\u7cfb\u578b\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u8868\u7ed3\u6784"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u9ad8\u5ea6\u7ed3\u6784\u5316\uff0c\u4e00\u81f4\u6027\u5f3a\uff0c\u8f6f\u4ef6\u6210\u719f\u5ea6\u9ad8"}),(0,r.jsx)(e.td,{children:"\u9762\u5411\u591a\u8df3\u7684\u5173\u8054\u5173\u7cfb\u67e5\u8be2\u4f4e\u6548\u6216\u4e0d\u652f\u6301"}),(0,r.jsx)(e.td,{children:"MySQL\u3001Oracle"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u56fe\u7ed3\u6784"}),(0,r.jsx)(e.td,{children:"\u9488\u5bf9\u5173\u8054\u5173\u7cfb\u7684\u5efa\u6a21\u5efa\u6a21\u548c\u64cd\u4f5c\u6548\u7387\u975e\u5e38\u9ad8"}),(0,r.jsx)(e.td,{children:"\u9ad8\u5ea6\u7ed3\u6784\u5316\u7684\u6570\u636e\u5904\u7406\u80fd\u529b\u4e0d\u53ca\u5173\u7cfb\u578b\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"Neo4j\u3001TuGraph"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u603b\u4e4b\uff0c\u9762\u5bf9\u6d77\u91cf\u6570\u636e\u7684\u5b58\u50a8\u548c\u5904\u7406\u95ee\u9898\uff0c\u4f20\u7edf\u7684\u5173\u7cfb\u6570\u636e\u5e93\u5df2\u7ecf\u65e0\u6cd5\u6ee1\u8db3\u5927\u90e8\u5206\u7684\u65e5\u5e38\u6570\u636e\u5b58\u50a8\u9700\u6c42\u3002\u56fe\u6570\u636e\u5e93\u6280\u672f\u53ef\u4ee5\u5c06\u5173\u7cfb\u4fe1\u606f\u5b58\u50a8\u4e3a\u5b9e\u4f53\uff0c\u7075\u6d3b\u62d3\u5c55\u6570\u636e\u6a21\u578b\u3002\u7531\u4e8e\u63d0\u4f9b\u4e86\u5bf9\u5173\u8054\u6570\u636e\u6700\u76f4\u63a5\u7684\u8868\u8fbe\u65b9\u5f0f\u548c\u56fe\u6a21\u578b\u5bf9\u5f02\u6784\u6570\u636e\u7684\u5929\u7136\u5305\u5bb9\u6027\uff0c\u56fe\u6570\u636e\u5e93\u6280\u672f\u5fc5\u5c06\u6210\u4e3a\u672a\u6765\u6700\u70ed\u70b9\u7684\u6280\u672f\u4e4b\u4e00\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b\u5b58\u50a8\u548c\u5206\u6790\u5927\u89c4\u6a21\u56fe\u6570\u636e\u7684\u6709\u529b\u652f\u6301\u3002"})]})}function a(n={}){const{wrapper:e}={...(0,d.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(o,{...n})}):o(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>s,x:()=>h});var r=t(6540);const d={},i=r.createContext(d);function s(n){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function h(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:s(n.components),r.createElement(i.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/43d06d47.c66955a5.js b/assets/js/43d06d47.c66955a5.js
new file mode 100644
index 0000000000..1b6c5ba6ac
--- /dev/null
+++ b/assets/js/43d06d47.c66955a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2953],{5340:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=s(4848),t=s(8453);const o={},a="Glossary",i={id:"introduction/glossary",title:"Glossary",description:"1.Graph Technology",source:"@site/../docs/en-US/source/2.introduction/9.glossary.md",sourceDirName:"2.introduction",slug:"/introduction/glossary",permalink:"/tugraph-db/en/introduction/glossary",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Scenarios",permalink:"/tugraph-db/en/introduction/scenarios"},next:{title:"Quick Start",permalink:"/tugraph-db/en/quick-start/preparation"}},c={},l=[{value:"1.Graph Technology",id:"1graph-technology",level:2},{value:"2.Specific Concepts",id:"2specific-concepts",level:2}];function d(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"glossary",children:"Glossary"})}),"\n",(0,r.jsx)(n.h2,{id:"1graph-technology",children:"1.Graph Technology"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Computing"}),":Generalized graph computing, including graph databases, graph analysis, and graph learning; Narrowly defined graph computing only includes graph analysis. The generalized definition is used by default."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Database"}),":Focuses on operations such as adding, deleting, modifying, querying, and transaction processing for graph data, such as TuGraph DB."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Analysis"}),":Focuses on algorithmic analysis and pattern analysis of entire graph data, such as TuGraph Analytics."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Learning"}),":Refers to the same meaning as graph neural networks and graph machine learning, such as TuGraph Learn."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Intelligence"}),":Same as generalized graph computing, including graph databases, graph analysis, and graph learning. It is usually used for conceptual promotion and not for products."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"2specific-concepts",children:"2.Specific Concepts"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Vertex"}),':Also known as node or point. Avoid using the term "node" as it is often used to refer to the number of servers and can be easily confused. "Node" refers to the meaning of combination, intersection, and crossing; "node" can refer to a milestone on a timeline (key node) or a processing entity in a computer system (such as a server in a computer network).']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Edge"}),":Refers to the connection between two vertices."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Degree"}),':Refers to the number of incoming or outgoing edges on a vertex. Note that in non-graph theory scenarios, "hops" are often referred to as "degrees".']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Hop"}),':Refers to the number of vertices between two vertices on a path (excluding the starting point and including the endpoint). "K-Hop" in the algorithm performance test refers to this meaning.']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Vertex Label"}),":Refers to the type of a vertex, also known as a point label."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Edge Label"}),":Refers to the type of an edge, also known as an edge label."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>i});var r=s(6540);const t={},o=r.createContext(t);function a(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/43d06d47.d4d8f9dc.js b/assets/js/43d06d47.d4d8f9dc.js
deleted file mode 100644
index 86aa9d55d1..0000000000
--- a/assets/js/43d06d47.d4d8f9dc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2953],{42:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>l});var r=s(4848),o=s(8453);const t={},i="Glossary",a={id:"en-US/source/introduction/glossary",title:"Glossary",description:"1.Graph Technology",source:"@site/../docs/en-US/source/2.introduction/9.glossary.md",sourceDirName:"en-US/source/2.introduction",slug:"/en-US/source/introduction/glossary",permalink:"/tugraph-db/en-US/source/introduction/glossary",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Scenarios",permalink:"/tugraph-db/en-US/source/introduction/scenarios"},next:{title:"Quick Start",permalink:"/tugraph-db/en-US/source/quick-start/preparation"}},c={},l=[{value:"1.Graph Technology",id:"1graph-technology",level:2},{value:"2.Specific Concepts",id:"2specific-concepts",level:2}];function d(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"glossary",children:"Glossary"})}),"\n",(0,r.jsx)(n.h2,{id:"1graph-technology",children:"1.Graph Technology"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Computing"}),":Generalized graph computing, including graph databases, graph analysis, and graph learning; Narrowly defined graph computing only includes graph analysis. The generalized definition is used by default."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Database"}),":Focuses on operations such as adding, deleting, modifying, querying, and transaction processing for graph data, such as TuGraph DB."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Analysis"}),":Focuses on algorithmic analysis and pattern analysis of entire graph data, such as TuGraph Analytics."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Learning"}),":Refers to the same meaning as graph neural networks and graph machine learning, such as TuGraph Learn."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Graph Intelligence"}),":Same as generalized graph computing, including graph databases, graph analysis, and graph learning. It is usually used for conceptual promotion and not for products."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"2specific-concepts",children:"2.Specific Concepts"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Vertex"}),':Also known as node or point. Avoid using the term "node" as it is often used to refer to the number of servers and can be easily confused. "Node" refers to the meaning of combination, intersection, and crossing; "node" can refer to a milestone on a timeline (key node) or a processing entity in a computer system (such as a server in a computer network).']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Edge"}),":Refers to the connection between two vertices."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Degree"}),':Refers to the number of incoming or outgoing edges on a vertex. Note that in non-graph theory scenarios, "hops" are often referred to as "degrees".']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Hop"}),':Refers to the number of vertices between two vertices on a path (excluding the starting point and including the endpoint). "K-Hop" in the algorithm performance test refers to this meaning.']}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Vertex Label"}),":Refers to the type of a vertex, also known as a point label."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Edge Label"}),":Refers to the type of an edge, also known as an edge label."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>a});var r=s(6540);const o={},t=r.createContext(o);function i(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4930370d.2f8bf44d.js b/assets/js/4930370d.2f8bf44d.js
deleted file mode 100644
index d3dc15c8a9..0000000000
--- a/assets/js/4930370d.2f8bf44d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6481],{8757:(s,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>h,default:()=>a,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var n=t(4848),r=t(8453);const i={},h="FAQ",o={id:"en-US/source/faq",title:"FAQ",description:"During the use of TuGraph, if you encounter problems, you can first check User Documentation. Second, check to see if the FAQ list below matches your question.",source:"@site/../docs/en-US/source/14.faq.md",sourceDirName:"en-US/source",slug:"/en-US/source/faq",permalink:"/tugraph-db/en-US/source/faq",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:14,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Examples of geospatial data type usage",permalink:"/tugraph-db/en-US/source/best-practices/spatial"},next:{title:"Contacts",permalink:"/tugraph-db/en-US/source/contacts"}},c={},d=[];function u(s){const e={a:"a",h1:"h1",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,r.R)(),...s.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"faq",children:"FAQ"})}),"\n",(0,n.jsxs)(e.p,{children:["During the use of TuGraph, if you encounter problems, you can first check ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/tree/master/doc/zh-CN",children:"User Documentation"}),". Second, check to see if the FAQ list below matches your question."]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussion-4575385",children:"Kernel Engine QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["1.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussioncomment-4165379",children:"Does the edge of TuGraph support index? "})]}),"\n",(0,n.jsxs)(e.p,{children:["1.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussioncomment-4165388",children:"What is the QPS of a single TuGraph machine? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussion-4575381",children:"TuGraph Browser QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["2.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussioncomment-4165364",children:"How to update the tugraph service after the visualization file is built? "})]}),"\n",(0,n.jsxs)(e.p,{children:["2.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussioncomment-4165366",children:"How to connect the existing tugraph service through npm run dev? "})]}),"\n",(0,n.jsxs)(e.p,{children:["2.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/82#discussion-4465791",children:"TuGraph Browser version 3.3.0 failed to delete node label? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussion-4575378",children:"Client QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["3.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussioncomment-4165351",children:"What programming languages \u200b\u200bdoes the client currently have, and does it support node js? "})]}),"\n",(0,n.jsxs)(e.p,{children:["3.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussioncomment-4165353",children:"Does the python client support pip install? Where is the client referenced? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussion-4575373",children:"Data Import QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["4.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussioncomment-4165335",children:"Which common databases can TuGraph connect to? "})]}),"\n",(0,n.jsxs)(e.p,{children:["4.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussioncomment-4165336",children:"How to import data? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussion-4575369",children:"Stored Procedure QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["5.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165313",children:"How to load stored procedure or algorithm package? "})]}),"\n",(0,n.jsxs)(e.p,{children:["5.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165317",children:"How to call or execute the stored procedure? "})]}),"\n",(0,n.jsxs)(e.p,{children:["5.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165322",children:"Where is the open source built-in algorithm package? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussion-4575364",children:"Installation and deployment QA summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["6.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussioncomment-4165287",children:"How to install using docker image? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussioncomment-4165289",children:"After the rpm package and deb package are installed, start the lgraph_server service. Prompt missing 'liblgraph.so' error? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/47#discussion-4393165",children:"How to compile TuGraph on Mac's M1 chip? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.4 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/issues/477",children:"How to Handle Error: 'jemalloc: Unsupported system page size'? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussion-4575018",children:"Cypher QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["7.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165252",children:"Does it support conditional query of indefinite length? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165256",children:"How to query the shortest path, how to use the shortestPath function? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165260",children:"Using and after the query statement Where to splice the query speed is slow, how should the statement be optimized and improved? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.4 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165262",children:"How to query the edge of any jump? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.5 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/91#discussion-4482858",children:"Is there a date() function in Cypher? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/discussions/282#discussion-5574402",children:"Jwt Token QA Summay"})})}),"\n",(0,n.jsxs)(e.p,{children:["8.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/discussions/282#discussioncomment-6861785",children:'What should I do after the error "User has reached the maximum number of tokens" is reported? '})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:"If the problem is still not resolved, we recommend you follow up or create a new thread describing your problem. At the same time, the TuGraph QA summary will be updated regularly based on the posts initiated by everyone in the discussion area."})]})}function a(s={}){const{wrapper:e}={...(0,r.R)(),...s.components};return e?(0,n.jsx)(e,{...s,children:(0,n.jsx)(u,{...s})}):u(s)}},8453:(s,e,t)=>{t.d(e,{R:()=>h,x:()=>o});var n=t(6540);const r={},i=n.createContext(r);function h(s){const e=n.useContext(i);return n.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function o(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(r):s.components||r:h(s.components),n.createElement(i.Provider,{value:e},s.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4930370d.dea89834.js b/assets/js/4930370d.dea89834.js
new file mode 100644
index 0000000000..a7c1c0d0db
--- /dev/null
+++ b/assets/js/4930370d.dea89834.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6481],{279:(s,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>h,default:()=>a,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var n=t(4848),i=t(8453);const r={},h="FAQ",o={id:"faq",title:"FAQ",description:"During the use of TuGraph, if you encounter problems, you can first check User Documentation. Second, check to see if the FAQ list below matches your question.",source:"@site/../docs/en-US/source/14.faq.md",sourceDirName:".",slug:"/faq",permalink:"/tugraph-db/en/faq",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:14,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Examples of geospatial data type usage",permalink:"/tugraph-db/en/best-practices/spatial"},next:{title:"Contacts",permalink:"/tugraph-db/en/contacts"}},c={},d=[];function u(s){const e={a:"a",h1:"h1",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...s.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"faq",children:"FAQ"})}),"\n",(0,n.jsxs)(e.p,{children:["During the use of TuGraph, if you encounter problems, you can first check ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/tree/master/doc/zh-CN",children:"User Documentation"}),". Second, check to see if the FAQ list below matches your question."]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussion-4575385",children:"Kernel Engine QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["1.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussioncomment-4165379",children:"Does the edge of TuGraph support index? "})]}),"\n",(0,n.jsxs)(e.p,{children:["1.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/113#discussioncomment-4165388",children:"What is the QPS of a single TuGraph machine? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussion-4575381",children:"TuGraph Browser QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["2.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussioncomment-4165364",children:"How to update the tugraph service after the visualization file is built? "})]}),"\n",(0,n.jsxs)(e.p,{children:["2.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/111#discussioncomment-4165366",children:"How to connect the existing tugraph service through npm run dev? "})]}),"\n",(0,n.jsxs)(e.p,{children:["2.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/82#discussion-4465791",children:"TuGraph Browser version 3.3.0 failed to delete node label? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussion-4575378",children:"Client QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["3.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussioncomment-4165351",children:"What programming languages \u200b\u200bdoes the client currently have, and does it support node js? "})]}),"\n",(0,n.jsxs)(e.p,{children:["3.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/109#discussioncomment-4165353",children:"Does the python client support pip install? Where is the client referenced? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussion-4575373",children:"Data Import QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["4.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussioncomment-4165335",children:"Which common databases can TuGraph connect to? "})]}),"\n",(0,n.jsxs)(e.p,{children:["4.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/107#discussioncomment-4165336",children:"How to import data? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussion-4575369",children:"Stored Procedure QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["5.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165313",children:"How to load stored procedure or algorithm package? "})]}),"\n",(0,n.jsxs)(e.p,{children:["5.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165317",children:"How to call or execute the stored procedure? "})]}),"\n",(0,n.jsxs)(e.p,{children:["5.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/105#discussioncomment-4165322",children:"Where is the open source built-in algorithm package? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussion-4575364",children:"Installation and deployment QA summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["6.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussioncomment-4165287",children:"How to install using docker image? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/103#discussioncomment-4165289",children:"After the rpm package and deb package are installed, start the lgraph_server service. Prompt missing 'liblgraph.so' error? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/47#discussion-4393165",children:"How to compile TuGraph on Mac's M1 chip? "})]}),"\n",(0,n.jsxs)(e.p,{children:["6.4 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/issues/477",children:"How to Handle Error: 'jemalloc: Unsupported system page size'? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussion-4575018",children:"Cypher QA Summary"})})}),"\n",(0,n.jsxs)(e.p,{children:["7.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165252",children:"Does it support conditional query of indefinite length? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.2 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165256",children:"How to query the shortest path, how to use the shortestPath function? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.3 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165260",children:"Using and after the query statement Where to splice the query speed is slow, how should the statement be optimized and improved? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.4 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/102#discussioncomment-4165262",children:"How to query the edge of any jump? "})]}),"\n",(0,n.jsxs)(e.p,{children:["7.5 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions/91#discussion-4482858",children:"Is there a date() function in Cypher? "})]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/discussions/282#discussion-5574402",children:"Jwt Token QA Summay"})})}),"\n",(0,n.jsxs)(e.p,{children:["8.1 ",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-family/tugraph-db/discussions/282#discussioncomment-6861785",children:'What should I do after the error "User has reached the maximum number of tokens" is reported? '})]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.p,{children:"If the problem is still not resolved, we recommend you follow up or create a new thread describing your problem. At the same time, the TuGraph QA summary will be updated regularly based on the posts initiated by everyone in the discussion area."})]})}function a(s={}){const{wrapper:e}={...(0,i.R)(),...s.components};return e?(0,n.jsx)(e,{...s,children:(0,n.jsx)(u,{...s})}):u(s)}},8453:(s,e,t)=>{t.d(e,{R:()=>h,x:()=>o});var n=t(6540);const i={},r=n.createContext(i);function h(s){const e=n.useContext(r);return n.useMemo((function(){return"function"==typeof s?s(e):{...e,...s}}),[e,s])}function o(s){let e;return e=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:h(s.components),n.createElement(r.Provider,{value:e},s.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4e149bf8.74d3a2c0.js b/assets/js/4e149bf8.74d3a2c0.js
new file mode 100644
index 0000000000..f416497aef
--- /dev/null
+++ b/assets/js/4e149bf8.74d3a2c0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3906],{2158:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=t(4848),a=t(8453);const s={},r="Scenarios",o={id:"introduction/scenarios",title:"Scenarios",description:"This document mainly introduces the application scenarios of graph databases.",source:"@site/../docs/en-US/source/2.introduction/8.scenarios.md",sourceDirName:"2.introduction",slug:"/introduction/scenarios",permalink:"/tugraph-db/en/introduction/scenarios",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Functionality",permalink:"/tugraph-db/en/introduction/functionality"},next:{title:"Glossary",permalink:"/tugraph-db/en/introduction/glossary"}},d={},c=[{value:"1.Financial Industry",id:"1financial-industry",level:2},{value:"2.Industrial Industry",id:"2industrial-industry",level:2},{value:"3.Smart City",id:"3smart-city",level:2},{value:"4.Social Governance",id:"4social-governance",level:2},{value:"5.Internet",id:"5internet",level:2}];function l(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"scenarios",children:"Scenarios"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the application scenarios of graph databases."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1financial-industry",children:"1.Financial Industry"}),"\n",(0,i.jsx)(n.p,{children:"The entities in the financial industry mainly involve people, companies, accounts, products, etc., and their relationships include transaction relationships, logging relationships, equity relationships, employment relationships, etc. These entities form a financial graph data network. By applying graph databases, we can discover a lot of useful information from the financial graph data network, which helps us make more accurate financial decisions."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Loan review"}),(0,i.jsx)(n.td,{children:"By analyzing the applicant's relationship and transaction history, etc., it is auxiliary to judge the applicant's repayment ability and willingness. It can be applied to retail loan review, small and micro loan review, supply chain finance, etc. This method can complement the traditional audit mechanism based on the applicant's own information, which is particularly useful for small and micro loan audits with low individual information coverage."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Post-loan"}),(0,i.jsx)(n.td,{children:"By analyzing the borrower's transaction history, it assists in analyzing whether the borrower has default risk. Compared with the traditional method of issuing alerts only when loan funds flow to specific users, this method can assign a risk value to each account and issue warnings when the loan flows to high-risk accounts."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Missing recovery"}),(0,i.jsx)(n.td,{children:"By analyzing the social and shopping data of missing borrowers, other contact methods can be found. This method can significantly improve the recovery rate of missing borrowers."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Guarantor loop detection"}),(0,i.jsx)(n.td,{children:"Special guarantee structures such as cyclic, chain, family-style, and cross can be found in the guarantee relationship graph to expose potential risks. Compared with the JOIN method of a relational database, the solution based on graph algorithms is more efficient, can detect any length of guarantee loop, and can achieve more complex limited condition detection."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Credit card fraud detection"}),(0,i.jsx)(n.td,{children:"A relationship network of addresses, contact information, etc. in credit card application information is constructed, and a community discovery algorithm is run in the application relationship network to detect suspected fraudulent gangs, thereby rejecting suspected fraudulent applications and reducing economic losses."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Anti-money laundering"}),(0,i.jsx)(n.td,{children:"Suspected money laundering behaviors and links can be found through the transaction network and medium network. Money laundering is a complex process involving multiple parties. By conducting graph analysis in transaction and social networks, we can more accurately detect money laundering behaviors."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Car insurance anti-fraud"}),(0,i.jsx)(n.td,{children:"For insurance fraud involving repair shops, by analyzing the relationship between the insured person, the case location, and the repair shop, fraudulent claims can be more accurately identified, reducing economic losses."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"2industrial-industry",children:"2.Industrial Industry"}),"\n",(0,i.jsx)(n.p,{children:"A large amount of heterogeneous data will be generated in the production and manufacturing process, and how to effectively organize and manage these data is one of the most important issues in industrial big data. These data include design documents, equipment data, simulation plans and results, experimental results, experience documents, etc. The relationships between these data are complex, and traditional data management systems can only accumulate data, and they are often unable to search for related materials. Using graph models, these different types of data are organized into a network, which makes it easy to browse and search for data."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Supply chain management"}),(0,i.jsx)(n.td,{children:"Supply chain data mainly concerns the correspondence between products, components, and parts, the correspondence between parts and suppliers, and sensitive components in parts. Compared with the traditional BOM system, the solution using graph databases can more conveniently maintain complex networks of multiple component levels and multiple supplier levels, thereby providing basic support for a through supply chain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Document management"}),(0,i.jsx)(n.td,{children:"Using graph databases can organize different types of documents together organically according to different relationships. For example, design documents for components, component-part relationships, component test documents, relevant experience documents, etc. can be organized together so that all relevant information for the component can be obtained easily when needed."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"R&D process management"}),(0,i.jsx)(n.td,{children:"A large amount of simulation, experimentation, and testing needs to be performed in the product development and verification process. Each test process involves many different steps, the connection between the steps, the data versions used in each step, and the algorithm versions all make up a complicated relationship network. Using graph databases can better manage this relationship network, providing a good foundation for data reuse and process improvement in the R&D process."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Equipment information management"}),(0,i.jsx)(n.td,{children:"Manufacturing requires the management of a large number of devices, which are interrelated (power supply, feeding, spatial relationship) to form a complex network. Traditional databases are difficult to reflect this complex relationship. Using graph databases can easily represent these relationships, thereby better managing equipment information."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"3smart-city",children:"3.Smart City"}),"\n",(0,i.jsx)(n.p,{children:"With the development of technology, intelligent management of cities has become a major trend. Intelligent management requires a strong system software to support it, built on a good information management platform. In an intelligent city management system, an intelligent decision-making system needs to make decisions based on a large amount of different information, including various topology information (such as roads, pipelines, etc.), supply and demand information (such as electricity transmission, drinking water supply, sewage discharge, etc.), environmental information (such as temperature, humidity, rainfall, etc.), and so on. To manage these complex and heterogeneous data organically and make decisions based on them, a mature system is needed. Traditional data management systems based on relational data models are not suitable for managing such complex and heterogeneous data. Using a graph model can solve this problem well. If we manage these different data using a graph database, we can achieve many complex intelligent management scenarios."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Smart Traffic"}),(0,i.jsx)(n.td,{children:"Based on road topology, road capacity, and current traffic flow, intelligent traffic signal scheduling can be performed to improve traffic efficiency."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Smart Drainage"}),(0,i.jsx)(n.td,{children:"Based on drainage system information and current rainfall, the drainage system can be scheduled to reduce the occurrence of waterlogging."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Pipeline Management"}),(0,i.jsx)(n.td,{children:"Organizing the production, installation, topology information, and historical status information of pipelines can help us manage the pipelines throughout their lifecycle, including fault diagnosis, life assessment, etc."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Crowd Evacuation"}),(0,i.jsx)(n.td,{children:"When a large number of people need to be evacuated, multiple transportation modes such as buses, subways, taxis, shared bicycles, etc., need to be considered, as well as the road carrying capacity. Using a graph database to organically integrate this information can help us make better decisions and provide better support for large public events."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"4social-governance",children:"4.Social Governance"}),"\n",(0,i.jsx)(n.p,{children:"Social governance involves public safety, legal affairs, public opinion, network security, and more. Social governance is a comprehensive, multi-system linkage problem. It requires the synthesis of a large amount of data and global considerations to make better decisions. In this multidimensional and complex data problem, the graph data model can provide better adaptability and provide a solid foundation for intelligent social governance decision-making platforms."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Criminal Gang"}),(0,i.jsx)(n.td,{children:"Conspiratorial gangs will inevitably make contact through some means, including face-to-face meetings (appearing in the same place), phone calls, or internet contacts, and they may also have economic exchanges. If we store all of this data in a unified graph, we can use graph analysis algorithms to identify closely connected groups and then discover and identify the entire criminal gang."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Stakeholder Case Investigation"}),(0,i.jsx)(n.td,{children:"Stakeholder cases, especially stakeholder economic cases, often involve a large number of personnel and elements (money, location, events, etc.). How to effectively organize this information to provide evidence for handling cases is a difficulty in stakeholder case investigation. Using graph databases to store and analyze this information can help us quickly locate the data, analyze the personnel structure, and provide better technical support for case investigation."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Illegal Website Identification"}),(0,i.jsx)(n.td,{children:'Illegal websites, phishing websites, yellow websites, and so on, often use different domain names and IPs to avoid being blocked. The filter method based on a blacklist can only block known illegal websites and cannot effectively identify new domain names and IPs. Based on the IP-domain name network mapping relationship, we can create a graph and then use graph calculations to establish a "trustworthiness" model for domain names and IPs to determine whether a website belongs to an illegal website.'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Court File Management"}),(0,i.jsx)(n.td,{children:"Case files are often complex, and different cases may be linked through parties, locations, case nature, judges, and so on. These links constitute a complex network. Using a graph database, we can more conveniently manage these complex relationships and improve case handling and query efficiency."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"5internet",children:"5.Internet"}),"\n",(0,i.jsx)(n.p,{children:"Social networks and person-product purchase relationships can all form a network. By analyzing this network data, we can provide users with better services, including relevant recommendations, user information collection, important user identification, and spam user identification, and so on."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"ID-Mapping"}),(0,i.jsx)(n.td,{children:"Graph databases can store all user-related information, including the relationships between users, in one database, and can also use these relationships to identify situations where one person has multiple accounts or multiple people share an account, thus providing decision support for future risk control, recommendations, and other businesses."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Friend Recommendation"}),(0,i.jsx)(n.td,{children:'Based on the analysis of social networks, we can provide friend recommendations such as "friends of friends" and "common friends".'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Product Recommendation"}),(0,i.jsx)(n.td,{children:"Based on the user-product relationship graph, we can find users with similar interests and recommend other products that similar users have chosen."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Spam User Identification"}),(0,i.jsx)(n.td,{children:"Traditional spam user identification is mainly based on user account information, such as registration information and posting information, but these types of information are relatively easy to forge. On the other hand, network-based information doesn't have this problem: it's difficult to forge. Therefore, spam user identification based on network information can be more accurate and efficient."})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var i=t(6540);const a={},s=i.createContext(a);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4e149bf8.7e3e0268.js b/assets/js/4e149bf8.7e3e0268.js
deleted file mode 100644
index 9b6fc15665..0000000000
--- a/assets/js/4e149bf8.7e3e0268.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3906],{9684:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=t(4848),a=t(8453);const s={},r="Scenarios",o={id:"en-US/source/introduction/scenarios",title:"Scenarios",description:"This document mainly introduces the application scenarios of graph databases.",source:"@site/../docs/en-US/source/2.introduction/8.scenarios.md",sourceDirName:"en-US/source/2.introduction",slug:"/en-US/source/introduction/scenarios",permalink:"/tugraph-db/en-US/source/introduction/scenarios",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Functionality",permalink:"/tugraph-db/en-US/source/introduction/functionality"},next:{title:"Glossary",permalink:"/tugraph-db/en-US/source/introduction/glossary"}},d={},c=[{value:"1.Financial Industry",id:"1financial-industry",level:2},{value:"2.Industrial Industry",id:"2industrial-industry",level:2},{value:"3.Smart City",id:"3smart-city",level:2},{value:"4.Social Governance",id:"4social-governance",level:2},{value:"5.Internet",id:"5internet",level:2}];function l(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"scenarios",children:"Scenarios"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the application scenarios of graph databases."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1financial-industry",children:"1.Financial Industry"}),"\n",(0,i.jsx)(n.p,{children:"The entities in the financial industry mainly involve people, companies, accounts, products, etc., and their relationships include transaction relationships, logging relationships, equity relationships, employment relationships, etc. These entities form a financial graph data network. By applying graph databases, we can discover a lot of useful information from the financial graph data network, which helps us make more accurate financial decisions."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Loan review"}),(0,i.jsx)(n.td,{children:"By analyzing the applicant's relationship and transaction history, etc., it is auxiliary to judge the applicant's repayment ability and willingness. It can be applied to retail loan review, small and micro loan review, supply chain finance, etc. This method can complement the traditional audit mechanism based on the applicant's own information, which is particularly useful for small and micro loan audits with low individual information coverage."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Post-loan"}),(0,i.jsx)(n.td,{children:"By analyzing the borrower's transaction history, it assists in analyzing whether the borrower has default risk. Compared with the traditional method of issuing alerts only when loan funds flow to specific users, this method can assign a risk value to each account and issue warnings when the loan flows to high-risk accounts."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Missing recovery"}),(0,i.jsx)(n.td,{children:"By analyzing the social and shopping data of missing borrowers, other contact methods can be found. This method can significantly improve the recovery rate of missing borrowers."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Guarantor loop detection"}),(0,i.jsx)(n.td,{children:"Special guarantee structures such as cyclic, chain, family-style, and cross can be found in the guarantee relationship graph to expose potential risks. Compared with the JOIN method of a relational database, the solution based on graph algorithms is more efficient, can detect any length of guarantee loop, and can achieve more complex limited condition detection."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Credit card fraud detection"}),(0,i.jsx)(n.td,{children:"A relationship network of addresses, contact information, etc. in credit card application information is constructed, and a community discovery algorithm is run in the application relationship network to detect suspected fraudulent gangs, thereby rejecting suspected fraudulent applications and reducing economic losses."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Anti-money laundering"}),(0,i.jsx)(n.td,{children:"Suspected money laundering behaviors and links can be found through the transaction network and medium network. Money laundering is a complex process involving multiple parties. By conducting graph analysis in transaction and social networks, we can more accurately detect money laundering behaviors."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Car insurance anti-fraud"}),(0,i.jsx)(n.td,{children:"For insurance fraud involving repair shops, by analyzing the relationship between the insured person, the case location, and the repair shop, fraudulent claims can be more accurately identified, reducing economic losses."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"2industrial-industry",children:"2.Industrial Industry"}),"\n",(0,i.jsx)(n.p,{children:"A large amount of heterogeneous data will be generated in the production and manufacturing process, and how to effectively organize and manage these data is one of the most important issues in industrial big data. These data include design documents, equipment data, simulation plans and results, experimental results, experience documents, etc. The relationships between these data are complex, and traditional data management systems can only accumulate data, and they are often unable to search for related materials. Using graph models, these different types of data are organized into a network, which makes it easy to browse and search for data."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Supply chain management"}),(0,i.jsx)(n.td,{children:"Supply chain data mainly concerns the correspondence between products, components, and parts, the correspondence between parts and suppliers, and sensitive components in parts. Compared with the traditional BOM system, the solution using graph databases can more conveniently maintain complex networks of multiple component levels and multiple supplier levels, thereby providing basic support for a through supply chain."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Document management"}),(0,i.jsx)(n.td,{children:"Using graph databases can organize different types of documents together organically according to different relationships. For example, design documents for components, component-part relationships, component test documents, relevant experience documents, etc. can be organized together so that all relevant information for the component can be obtained easily when needed."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"R&D process management"}),(0,i.jsx)(n.td,{children:"A large amount of simulation, experimentation, and testing needs to be performed in the product development and verification process. Each test process involves many different steps, the connection between the steps, the data versions used in each step, and the algorithm versions all make up a complicated relationship network. Using graph databases can better manage this relationship network, providing a good foundation for data reuse and process improvement in the R&D process."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Equipment information management"}),(0,i.jsx)(n.td,{children:"Manufacturing requires the management of a large number of devices, which are interrelated (power supply, feeding, spatial relationship) to form a complex network. Traditional databases are difficult to reflect this complex relationship. Using graph databases can easily represent these relationships, thereby better managing equipment information."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"3smart-city",children:"3.Smart City"}),"\n",(0,i.jsx)(n.p,{children:"With the development of technology, intelligent management of cities has become a major trend. Intelligent management requires a strong system software to support it, built on a good information management platform. In an intelligent city management system, an intelligent decision-making system needs to make decisions based on a large amount of different information, including various topology information (such as roads, pipelines, etc.), supply and demand information (such as electricity transmission, drinking water supply, sewage discharge, etc.), environmental information (such as temperature, humidity, rainfall, etc.), and so on. To manage these complex and heterogeneous data organically and make decisions based on them, a mature system is needed. Traditional data management systems based on relational data models are not suitable for managing such complex and heterogeneous data. Using a graph model can solve this problem well. If we manage these different data using a graph database, we can achieve many complex intelligent management scenarios."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Smart Traffic"}),(0,i.jsx)(n.td,{children:"Based on road topology, road capacity, and current traffic flow, intelligent traffic signal scheduling can be performed to improve traffic efficiency."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Smart Drainage"}),(0,i.jsx)(n.td,{children:"Based on drainage system information and current rainfall, the drainage system can be scheduled to reduce the occurrence of waterlogging."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Pipeline Management"}),(0,i.jsx)(n.td,{children:"Organizing the production, installation, topology information, and historical status information of pipelines can help us manage the pipelines throughout their lifecycle, including fault diagnosis, life assessment, etc."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Crowd Evacuation"}),(0,i.jsx)(n.td,{children:"When a large number of people need to be evacuated, multiple transportation modes such as buses, subways, taxis, shared bicycles, etc., need to be considered, as well as the road carrying capacity. Using a graph database to organically integrate this information can help us make better decisions and provide better support for large public events."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"4social-governance",children:"4.Social Governance"}),"\n",(0,i.jsx)(n.p,{children:"Social governance involves public safety, legal affairs, public opinion, network security, and more. Social governance is a comprehensive, multi-system linkage problem. It requires the synthesis of a large amount of data and global considerations to make better decisions. In this multidimensional and complex data problem, the graph data model can provide better adaptability and provide a solid foundation for intelligent social governance decision-making platforms."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Criminal Gang"}),(0,i.jsx)(n.td,{children:"Conspiratorial gangs will inevitably make contact through some means, including face-to-face meetings (appearing in the same place), phone calls, or internet contacts, and they may also have economic exchanges. If we store all of this data in a unified graph, we can use graph analysis algorithms to identify closely connected groups and then discover and identify the entire criminal gang."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Stakeholder Case Investigation"}),(0,i.jsx)(n.td,{children:"Stakeholder cases, especially stakeholder economic cases, often involve a large number of personnel and elements (money, location, events, etc.). How to effectively organize this information to provide evidence for handling cases is a difficulty in stakeholder case investigation. Using graph databases to store and analyze this information can help us quickly locate the data, analyze the personnel structure, and provide better technical support for case investigation."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Illegal Website Identification"}),(0,i.jsx)(n.td,{children:'Illegal websites, phishing websites, yellow websites, and so on, often use different domain names and IPs to avoid being blocked. The filter method based on a blacklist can only block known illegal websites and cannot effectively identify new domain names and IPs. Based on the IP-domain name network mapping relationship, we can create a graph and then use graph calculations to establish a "trustworthiness" model for domain names and IPs to determine whether a website belongs to an illegal website.'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Court File Management"}),(0,i.jsx)(n.td,{children:"Case files are often complex, and different cases may be linked through parties, locations, case nature, judges, and so on. These links constitute a complex network. Using a graph database, we can more conveniently manage these complex relationships and improve case handling and query efficiency."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"5internet",children:"5.Internet"}),"\n",(0,i.jsx)(n.p,{children:"Social networks and person-product purchase relationships can all form a network. By analyzing this network data, we can provide users with better services, including relevant recommendations, user information collection, important user identification, and spam user identification, and so on."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Scenario"})}),(0,i.jsx)(n.th,{children:(0,i.jsx)(n.strong,{children:"Description"})})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"ID-Mapping"}),(0,i.jsx)(n.td,{children:"Graph databases can store all user-related information, including the relationships between users, in one database, and can also use these relationships to identify situations where one person has multiple accounts or multiple people share an account, thus providing decision support for future risk control, recommendations, and other businesses."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Friend Recommendation"}),(0,i.jsx)(n.td,{children:'Based on the analysis of social networks, we can provide friend recommendations such as "friends of friends" and "common friends".'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Product Recommendation"}),(0,i.jsx)(n.td,{children:"Based on the user-product relationship graph, we can find users with similar interests and recommend other products that similar users have chosen."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Spam User Identification"}),(0,i.jsx)(n.td,{children:"Traditional spam user identification is mainly based on user account information, such as registration information and posting information, but these types of information are relatively easy to forge. On the other hand, network-based information doesn't have this problem: it's difficult to forge. Therefore, spam user identification based on network information can be more accurate and efficient."})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var i=t(6540);const a={},s=i.createContext(a);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4ffd6b78.537c4930.js b/assets/js/4ffd6b78.537c4930.js
new file mode 100644
index 0000000000..847ea14935
--- /dev/null
+++ b/assets/js/4ffd6b78.537c4930.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5218],{9546:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var t=r(4848),s=r(8453);const l={},o="TuGraph console client",i={id:"client-tools/bolt-console-client",title:"TuGraph console client",description:"lgraph_cli \u662f\u57fa\u4e8ebolt\u534f\u8bae\u7684 console client\uff0cc++\u7f16\u5199\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u8fde\u63a5tugraph\u7684bolt\u7aef\u53e3\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/6.bolt-console-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/bolt-console-client",permalink:"/tugraph-db/zh/client-tools/bolt-console-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Bolt\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh/client-tools/bolt-client"},next:{title:"RESTful API",permalink:"/tugraph-db/zh/client-tools/restful-api"}},a={},c=[{value:"lgraph_cli
\u4f7f\u7528",id:"lgraph_cli\u4f7f\u7528",level:2},{value:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",id:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",level:2},{value:"csv\u683c\u5f0f",id:"csv\u683c\u5f0f",level:3},{value:"json\u683c\u5f0f",id:"json\u683c\u5f0f",level:3}];function p(n){const e={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,s.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"tugraph-console-client",children:"TuGraph console client"})}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"lgraph_cli"})," \u662f\u57fa\u4e8ebolt\u534f\u8bae\u7684 console client\uff0cc++\u7f16\u5199\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u8fde\u63a5tugraph\u7684bolt\u7aef\u53e3\u3002"]}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"lgraph_cli"})," \u662f\u4e00\u4e2a\u4e8c\u8fdb\u5236\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u4e0d\u4f9d\u8d56\u5176\u4ed6\u52a8\u6001\u5e93\uff0c\u62f7\u8d1d\u5230\u4e00\u53f0linux\u673a\u5668\u4e0a\u5c31\u53ef\u6267\u884c\u3002"]}),"\n",(0,t.jsxs)(e.h2,{id:"lgraph_cli\u4f7f\u7528",children:[(0,t.jsx)(e.code,{children:"lgraph_cli"}),"\u4f7f\u7528"]}),"\n",(0,t.jsxs)(e.p,{children:["\u8bed\u53e5\u4ee5\u5206\u53f7\u7ed3\u675f\uff0c\u8f93\u5165",(0,t.jsx)(e.code,{children:"exit"}),", ",(0,t.jsx)(e.code,{children:"quit"}),"\u6216\u8005Ctrl-C\u9000\u51fa\u5ba2\u6237\u7aef\u3002"]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:"lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n\nWelcome to the TuGraph console client. Commands end with ';'.\nCopyright(C) 2018-2023 Ant Group. All rights reserved.\nType 'exit', 'quit' or Ctrl-C to exit.\n\nTuGraph> match(n) return n limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:\"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg\",name:\"Laurence Fishburne\"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n"})}),"\n",(0,t.jsx)(e.p,{children:"\u8bed\u53e5\u53ef\u4ee5\u4e2d\u95f4\u6362\u884c\uff0c\u591a\u884c\u8f93\u5165\u3002"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:'TuGraph> match(n)\n -> return n\n -> limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n'})}),"\n",(0,t.jsx)(e.p,{children:"\u975e\u4ea4\u4e92\u5f0f"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:'\necho "match(n) return n limit 1;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n1 rows\n\n'})}),"\n",(0,t.jsx)(e.p,{children:"\u4ece\u6587\u4ef6\u8bfb\u53d6\u591a\u6761\u547d\u4ee4"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:'\ncat query.txt\nmatch(n) return n limit 1;\nmatch(n) return n limit 1;\n\nlgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph < query.txt\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n'})}),"\n",(0,t.jsx)(e.h2,{id:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",children:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa"}),"\n",(0,t.jsx)(e.p,{children:"lgraph_cli \u652f\u6301\u6d41\u5f0f\u8bfb\u53d6\uff0c\u5bfc\u51fa\u6570\u636e\u53ea\u9700\u8981\u628algraph_cli\u7684\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\u4e2d\u5373\u53ef\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301csv\u548cjson\u3002"}),"\n",(0,t.jsx)(e.h3,{id:"csv\u683c\u5f0f",children:"csv\u683c\u5f0f"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format csv > output.txt\n\n'})}),"\n",(0,t.jsx)(e.h3,{id:"json\u683c\u5f0f",children:"json\u683c\u5f0f"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format json > output.txt\n\n'})})]})}function h(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(p,{...n})}):p(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>o,x:()=>i});var t=r(6540);const s={},l=t.createContext(s);function o(n){const e=t.useContext(l);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function i(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:o(n.components),t.createElement(l.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/4ffd6b78.b4d12a38.js b/assets/js/4ffd6b78.b4d12a38.js
deleted file mode 100644
index 74f5b1cb10..0000000000
--- a/assets/js/4ffd6b78.b4d12a38.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5218],{9546:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var t=r(4848),s=r(8453);const l={},o="TuGraph console client",i={id:"zh-CN/source/client-tools/bolt-console-client",title:"TuGraph console client",description:"lgraph_cli \u662f\u57fa\u4e8ebolt\u534f\u8bae\u7684 console client\uff0cc++\u7f16\u5199\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u8fde\u63a5tugraph\u7684bolt\u7aef\u53e3\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/6.bolt-console-client.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/bolt-console-client",permalink:"/tugraph-db/zh-CN/source/client-tools/bolt-console-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Bolt\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh-CN/source/client-tools/bolt-client"},next:{title:"RESTful API",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api"}},a={},c=[{value:"lgraph_cli
\u4f7f\u7528",id:"lgraph_cli\u4f7f\u7528",level:2},{value:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",id:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",level:2},{value:"csv\u683c\u5f0f",id:"csv\u683c\u5f0f",level:3},{value:"json\u683c\u5f0f",id:"json\u683c\u5f0f",level:3}];function h(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tugraph-console-client",children:"TuGraph console client"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cli"})," \u662f\u57fa\u4e8ebolt\u534f\u8bae\u7684 console client\uff0cc++\u7f16\u5199\uff0c\u4f7f\u7528\u65f6\u9700\u8981\u8fde\u63a5tugraph\u7684bolt\u7aef\u53e3\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cli"})," \u662f\u4e00\u4e2a\u4e8c\u8fdb\u5236\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u4e0d\u4f9d\u8d56\u5176\u4ed6\u52a8\u6001\u5e93\uff0c\u62f7\u8d1d\u5230\u4e00\u53f0linux\u673a\u5668\u4e0a\u5c31\u53ef\u6267\u884c\u3002"]}),"\n",(0,t.jsxs)(n.h2,{id:"lgraph_cli\u4f7f\u7528",children:[(0,t.jsx)(n.code,{children:"lgraph_cli"}),"\u4f7f\u7528"]}),"\n",(0,t.jsxs)(n.p,{children:["\u8bed\u53e5\u4ee5\u5206\u53f7\u7ed3\u675f\uff0c\u8f93\u5165",(0,t.jsx)(n.code,{children:"exit"}),", ",(0,t.jsx)(n.code,{children:"quit"}),"\u6216\u8005Ctrl-C\u9000\u51fa\u5ba2\u6237\u7aef\u3002"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n\nWelcome to the TuGraph console client. Commands end with ';'.\nCopyright(C) 2018-2023 Ant Group. All rights reserved.\nType 'exit', 'quit' or Ctrl-C to exit.\n\nTuGraph> match(n) return n limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:\"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg\",name:\"Laurence Fishburne\"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u8bed\u53e5\u53ef\u4ee5\u4e2d\u95f4\u6362\u884c\uff0c\u591a\u884c\u8f93\u5165\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'TuGraph> match(n)\n -> return n\n -> limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u975e\u4ea4\u4e92\u5f0f"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n limit 1;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n1 rows\n\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u4ece\u6587\u4ef6\u8bfb\u53d6\u591a\u6761\u547d\u4ee4"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\ncat query.txt\nmatch(n) return n limit 1;\nmatch(n) return n limit 1;\n\nlgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph < query.txt\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n'})}),"\n",(0,t.jsx)(n.h2,{id:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa",children:"\u5728\u7ebf\u6570\u636e\u5bfc\u51fa"}),"\n",(0,t.jsx)(n.p,{children:"lgraph_cli \u652f\u6301\u6d41\u5f0f\u8bfb\u53d6\uff0c\u5bfc\u51fa\u6570\u636e\u53ea\u9700\u8981\u628algraph_cli\u7684\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\u4e2d\u5373\u53ef\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301csv\u548cjson\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"csv\u683c\u5f0f",children:"csv\u683c\u5f0f"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format csv > output.txt\n\n'})}),"\n",(0,t.jsx)(n.h3,{id:"json\u683c\u5f0f",children:"json\u683c\u5f0f"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format json > output.txt\n\n'})})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>i});var t=r(6540);const s={},l=t.createContext(s);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/50b94c42.bd383e9e.js b/assets/js/50b94c42.bd383e9e.js
deleted file mode 100644
index 5a83f43a9c..0000000000
--- a/assets/js/50b94c42.bd383e9e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7462],{7742:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var t=n(4848),a=n(8453);const o={},i="TuGraph Java SDK",l={id:"en-US/source/client-tools/java-client",title:"TuGraph Java SDK",description:"This document primarily provides usage instructions for the TuGraph Java SDK. It is crucial to note that the TuGraph Java SDK will no longer receive updates or maintenance in the future. Users are strongly advised to utilize bolt instead.",source:"@site/../docs/en-US/source/7.client-tools/3.java-client.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/java-client",permalink:"/tugraph-db/en-US/source/client-tools/java-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph C++ SDK",permalink:"/tugraph-db/en-US/source/client-tools/cpp-client"},next:{title:"TuGraph-OGM",permalink:"/tugraph-db/en-US/source/client-tools/tugraph-ogm"}},s={},d=[{value:"1.Compile java client code",id:"1compile-java-client-code",level:2},{value:"2.Demo",id:"2demo",level:2},{value:"2.1.Instantiate the client object",id:"21instantiate-the-client-object",level:3},{value:"2.1.1.Instantiate a single node client object",id:"211instantiate-a-single-node-client-object",level:4},{value:"2.1.2.Instantiate the HA cluster to directly connect to the client object",id:"212instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"2.1.3.Instantiate the HA cluster to indirectly connect to the client object",id:"213instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3. Send cypher request to leader",id:"23-send-cypher-request-to-leader",level:3},{value:"2.4. Call GQL",id:"24-call-gql",level:3},{value:"2.5. Send GQL request to leader",id:"25-send-gql-request-to-leader",level:3},{value:"2.6. Calling stored procedures",id:"26-calling-stored-procedures",level:3},{value:"2.7. Call the stored procedure to the leader",id:"27-call-the-stored-procedure-to-the-leader",level:3},{value:"2.8. Load stored procedure",id:"28-load-stored-procedure",level:3},{value:"2.9. List stored procedures",id:"29-list-stored-procedures",level:3},{value:"2.10. Delete stored procedures",id:"210-delete-stored-procedures",level:3},{value:"2.11. Import schema from byte stream",id:"211-import-schema-from-byte-stream",level:3},{value:"2.12. Import edge data from byte stream",id:"212-import-edge-data-from-byte-stream",level:3},{value:"2.13. Import schema from file",id:"213-import-schema-from-file",level:3},{value:"2.14. Import point and edge data from file",id:"214-import-point-and-edge-data-from-file",level:3}];function c(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"tugraph-java-sdk",children:"TuGraph Java SDK"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["This document primarily provides usage instructions for the TuGraph Java SDK. It is crucial to note that the TuGraph Java SDK will no longer receive updates or maintenance in the future. Users are strongly advised to utilize ",(0,t.jsx)(r.a,{href:"/tugraph-db/en-US/source/client-tools/bolt-client",children:"bolt"})," instead."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1compile-java-client-code",children:"1.Compile java client code"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-shell",children:"cd deps/tugraph-db-client-java\nsh local_build.sh\n"})}),"\n",(0,t.jsx)(r.h2,{id:"2demo",children:"2.Demo"}),"\n",(0,t.jsx)(r.h3,{id:"21instantiate-the-client-object",children:"2.1.Instantiate the client object"}),"\n",(0,t.jsx)(r.p,{children:"Adding maven dependencies"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.antgroup.tugraph \n tugraph-db-java-rpc-client \n 1.4.1 \n \n"})}),"\n",(0,t.jsx)(r.p,{children:"Introduce dependencies"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:"import com.antgroup.tugraph.TuGraphDbRpcClient;\n"})}),"\n",(0,t.jsx)(r.h4,{id:"211instantiate-a-single-node-client-object",children:"2.1.1.Instantiate a single node client object"}),"\n",(0,t.jsx)(r.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(r.h4,{id:"212instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"2.1.2.Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,t.jsx)(r.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(r.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,t.jsx)(r.h4,{id:"213instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"2.1.3.Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,t.jsx)(r.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:'List urls = new ArrayList<>();\nurls.add("189.33.97.23:9091");\nurls.add("189.33.97.24:9091");\nurls.add("189.33.97.25:9091");\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"public TuGraphDbRpcClient(List urls, String user, String password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(r.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,t.jsx)(r.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String res = client.callCypher("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling cypher\n @return: the result of cypher query execution\n public String callCypher(String cypher, String graph, double timeout, String url)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter.\nNote: JAVA does not support default parameters, therefore, default parameters in JAVA are implemented using overloaded functions."}),"\n",(0,t.jsx)(r.h3,{id:"23-send-cypher-request-to-leader",children:"2.3. Send cypher request to leader"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callCypherToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,t.jsx)(r.h3,{id:"24-call-gql",children:"2.4. Call GQL"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String res = client.callGql("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling GQL\n @return: the result of GQL query execution\n public String callGql(String gql, String graph, double timeout, String url)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter.\nNote: JAVA does not support default parameters, therefore, default parameters in JAVA are implemented using overloaded functions."}),"\n",(0,t.jsx)(r.h3,{id:"25-send-gql-request-to-leader",children:"2.5. Send GQL request to leader"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callGqlToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,t.jsx)(r.h3,{id:"26-calling-stored-procedures",children:"2.6. Calling stored procedures"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedure("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedure : " + result);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @param url: (Optional) Node address of calling procedure\n @return: the result of procedure execution\n public String callProcedure(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph, String url)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,t.jsx)(r.h3,{id:"27-call-the-stored-procedure-to-the-leader",children:"2.7. Call the stored procedure to the leader"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedureToLeader : " + result);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @return: the result of procedure execution\n public String callProcedureToLeader(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph)\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format."}),"\n",(0,t.jsx)(r.h3,{id:"28-load-stored-procedure",children:"2.8. Load stored procedure"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' boolean result = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param sourceFile: the source_file contains procedure code\n @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param codeType: code type, currently supported PY, SO, CPP, ZIP\n @param procedureDescription: procedure description\n @param readOnly: procedure is read only or not\n @param version: The version of procedure\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean loadProcedure(String sourceFile, String procedureType, String procedureName, String codeType,\n String procedureDescription, boolean readOnly, String version, String graph) throws Exception\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,t.jsx)(r.h3,{id:"29-list-stored-procedures",children:"2.9. List stored procedures"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String result = client.listProcedures("CPP", "any", "default");\n log.info("listProcedures : " + result);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param version: The version of procedure\n @param graph: the graph to query.\n @param url: (Optional) Node address of listing procedure\n @return: the list of procedures\n public String listProcedures(String procedureType, String version, String graph, String url) throws Exception\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,t.jsx)(r.h3,{id:"210-delete-stored-procedures",children:"2.10. Delete stored procedures"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' String result = client.deleteProcedure("CPP", "sortstr", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean deleteProcedure(String procedureType, String procedureName, String graph) throws Exception\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,t.jsx)(r.h3,{id:"211-import-schema-from-byte-stream",children:"2.11. Import schema from byte stream"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromContent(schema, "default", 1000);\n log.info("importSchemaFromContent : " + ret);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param schema: the schema to be imported\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromContent(String schema, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,t.jsx)(r.h3,{id:"212-import-edge-data-from-byte-stream",children:"2.12. Import edge data from byte stream"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000);\n log.info("importDataFromContent : " + ret);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param desc: data format description\n @param data: the data to be imported\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromContent(String desc, String data, String delimiter, boolean continueOnError,\n int threadNums, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,t.jsx)(r.h3,{id:"213-import-schema-from-file",children:"2.13. Import schema from file"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000);\n log.info("importSchemaFromFile : " + ret);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param schemaFile: the schema_file contains schema\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromFile(String schemaFile, String graph, double timeout)\n throws UnsupportedEncodingException, IOException\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,t.jsx)(r.h3,{id:"214-import-point-and-edge-data-from-file",children:"2.14. Import point and edge data from file"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000);\n log.info("importDataFromFile : " + ret);\n'})}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:" @param confFile: data file contains format description and data\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param skipPackages: skip packages number\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromFile(String confFile, String delimiter, boolean continueOnError, int threadNums,\n int skipPackages, String graph, double timeout) throws IOException, UnsupportedEncodingException\n"})}),"\n",(0,t.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function u(e={}){const{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>l});var t=n(6540);const a={},o=t.createContext(a);function i(e){const r=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),t.createElement(o.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/50b94c42.d8f0a772.js b/assets/js/50b94c42.d8f0a772.js
new file mode 100644
index 0000000000..08f072e0e8
--- /dev/null
+++ b/assets/js/50b94c42.d8f0a772.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7462],{2624:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=t(4848),a=t(8453);const o={},i="TuGraph Java SDK",l={id:"client-tools/java-client",title:"TuGraph Java SDK",description:"This document primarily provides usage instructions for the TuGraph Java SDK. It is crucial to note that the TuGraph Java SDK will no longer receive updates or maintenance in the future. Users are strongly advised to utilize bolt instead.",source:"@site/../docs/en-US/source/7.client-tools/3.java-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/java-client",permalink:"/tugraph-db/en/client-tools/java-client",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph C++ SDK",permalink:"/tugraph-db/en/client-tools/cpp-client"},next:{title:"TuGraph-OGM",permalink:"/tugraph-db/en/client-tools/tugraph-ogm"}},s={},d=[{value:"1.Compile java client code",id:"1compile-java-client-code",level:2},{value:"2.Demo",id:"2demo",level:2},{value:"2.1.Instantiate the client object",id:"21instantiate-the-client-object",level:3},{value:"2.1.1.Instantiate a single node client object",id:"211instantiate-a-single-node-client-object",level:4},{value:"2.1.2.Instantiate the HA cluster to directly connect to the client object",id:"212instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"2.1.3.Instantiate the HA cluster to indirectly connect to the client object",id:"213instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3. Send cypher request to leader",id:"23-send-cypher-request-to-leader",level:3},{value:"2.4. Call GQL",id:"24-call-gql",level:3},{value:"2.5. Send GQL request to leader",id:"25-send-gql-request-to-leader",level:3},{value:"2.6. Calling stored procedures",id:"26-calling-stored-procedures",level:3},{value:"2.7. Call the stored procedure to the leader",id:"27-call-the-stored-procedure-to-the-leader",level:3},{value:"2.8. Load stored procedure",id:"28-load-stored-procedure",level:3},{value:"2.9. List stored procedures",id:"29-list-stored-procedures",level:3},{value:"2.10. Delete stored procedures",id:"210-delete-stored-procedures",level:3},{value:"2.11. Import schema from byte stream",id:"211-import-schema-from-byte-stream",level:3},{value:"2.12. Import edge data from byte stream",id:"212-import-edge-data-from-byte-stream",level:3},{value:"2.13. Import schema from file",id:"213-import-schema-from-file",level:3},{value:"2.14. Import point and edge data from file",id:"214-import-point-and-edge-data-from-file",level:3}];function c(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"tugraph-java-sdk",children:"TuGraph Java SDK"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:["This document primarily provides usage instructions for the TuGraph Java SDK. It is crucial to note that the TuGraph Java SDK will no longer receive updates or maintenance in the future. Users are strongly advised to utilize ",(0,n.jsx)(r.a,{href:"/tugraph-db/en/client-tools/bolt-client",children:"bolt"})," instead."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"1compile-java-client-code",children:"1.Compile java client code"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-shell",children:"cd deps/tugraph-db-client-java\nsh local_build.sh\n"})}),"\n",(0,n.jsx)(r.h2,{id:"2demo",children:"2.Demo"}),"\n",(0,n.jsx)(r.h3,{id:"21instantiate-the-client-object",children:"2.1.Instantiate the client object"}),"\n",(0,n.jsx)(r.p,{children:"Adding maven dependencies"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"\n com.antgroup.tugraph \n tugraph-db-java-rpc-client \n 1.4.1 \n \n"})}),"\n",(0,n.jsx)(r.p,{children:"Introduce dependencies"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:"import com.antgroup.tugraph.TuGraphDbRpcClient;\n"})}),"\n",(0,n.jsx)(r.h4,{id:"211instantiate-a-single-node-client-object",children:"2.1.1.Instantiate a single node client object"}),"\n",(0,n.jsx)(r.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,n.jsx)(r.h4,{id:"212instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"2.1.2.Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,n.jsx)(r.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,n.jsx)(r.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,n.jsx)(r.h4,{id:"213instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"2.1.3.Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,n.jsx)(r.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'List urls = new ArrayList<>();\nurls.add("189.33.97.23:9091");\nurls.add("189.33.97.24:9091");\nurls.add("189.33.97.25:9091");\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"public TuGraphDbRpcClient(List urls, String user, String password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,n.jsx)(r.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,n.jsx)(r.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String res = client.callCypher("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling cypher\n @return: the result of cypher query execution\n public String callCypher(String cypher, String graph, double timeout, String url)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter.\nNote: JAVA does not support default parameters, therefore, default parameters in JAVA are implemented using overloaded functions."}),"\n",(0,n.jsx)(r.h3,{id:"23-send-cypher-request-to-leader",children:"2.3. Send cypher request to leader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callCypherToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,n.jsx)(r.h3,{id:"24-call-gql",children:"2.4. Call GQL"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String res = client.callGql("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling GQL\n @return: the result of GQL query execution\n public String callGql(String gql, String graph, double timeout, String url)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter.\nNote: JAVA does not support default parameters, therefore, default parameters in JAVA are implemented using overloaded functions."}),"\n",(0,n.jsx)(r.h3,{id:"25-send-gql-request-to-leader",children:"2.5. Send GQL request to leader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callGqlToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,n.jsx)(r.h3,{id:"26-calling-stored-procedures",children:"2.6. Calling stored procedures"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedure("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedure : " + result);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @param url: (Optional) Node address of calling procedure\n @return: the result of procedure execution\n public String callProcedure(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph, String url)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,n.jsx)(r.h3,{id:"27-call-the-stored-procedure-to-the-leader",children:"2.7. Call the stored procedure to the leader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedureToLeader : " + result);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @return: the result of procedure execution\n public String callProcedureToLeader(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph)\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in string format. Specifying jsonFormat as true can return the execution result in json format."}),"\n",(0,n.jsx)(r.h3,{id:"28-load-stored-procedure",children:"2.8. Load stored procedure"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' boolean result = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param sourceFile: the source_file contains procedure code\n @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param codeType: code type, currently supported PY, SO, CPP, ZIP\n @param procedureDescription: procedure description\n @param readOnly: procedure is read only or not\n @param version: The version of procedure\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean loadProcedure(String sourceFile, String procedureType, String procedureName, String codeType,\n String procedureDescription, boolean readOnly, String version, String graph) throws Exception\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,n.jsx)(r.h3,{id:"29-list-stored-procedures",children:"2.9. List stored procedures"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String result = client.listProcedures("CPP", "any", "default");\n log.info("listProcedures : " + result);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param version: The version of procedure\n @param graph: the graph to query.\n @param url: (Optional) Node address of listing procedure\n @return: the list of procedures\n public String listProcedures(String procedureType, String version, String graph, String url) throws Exception\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,n.jsx)(r.h3,{id:"210-delete-stored-procedures",children:"2.10. Delete stored procedures"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' String result = client.deleteProcedure("CPP", "sortstr", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean deleteProcedure(String procedureType, String procedureName, String graph) throws Exception\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,n.jsx)(r.h3,{id:"211-import-schema-from-byte-stream",children:"2.11. Import schema from byte stream"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromContent(schema, "default", 1000);\n log.info("importSchemaFromContent : " + ret);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param schema: the schema to be imported\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromContent(String schema, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,n.jsx)(r.h3,{id:"212-import-edge-data-from-byte-stream",children:"2.12. Import edge data from byte stream"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000);\n log.info("importDataFromContent : " + ret);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param desc: data format description\n @param data: the data to be imported\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromContent(String desc, String data, String delimiter, boolean continueOnError,\n int threadNums, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,n.jsx)(r.h3,{id:"213-import-schema-from-file",children:"2.13. Import schema from file"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000);\n log.info("importSchemaFromFile : " + ret);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param schemaFile: the schema_file contains schema\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromFile(String schemaFile, String graph, double timeout)\n throws UnsupportedEncodingException, IOException\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,n.jsx)(r.h3,{id:"214-import-point-and-edge-data-from-file",children:"2.14. Import point and edge data from file"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000);\n log.info("importDataFromFile : " + ret);\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:" @param confFile: data file contains format description and data\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param skipPackages: skip packages number\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromFile(String confFile, String delimiter, boolean continueOnError, int threadNums,\n int skipPackages, String graph, double timeout) throws IOException, UnsupportedEncodingException\n"})}),"\n",(0,n.jsx)(r.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function u(e={}){const{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>l});var n=t(6540);const a={},o=n.createContext(a);function i(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5189e784.b8242caf.js b/assets/js/5189e784.b8242caf.js
deleted file mode 100644
index 32b6e5bb6c..0000000000
--- a/assets/js/5189e784.b8242caf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3916],{3560:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var t=r(4848),o=r(8453);const s={},i="TuGraph console client",l={id:"en-US/source/client-tools/bolt-console-client",title:"TuGraph console client",description:"lgraph_cli is a console client based on the bolt protocol, written in c++, which requires a connection to tugraph's bolt port.",source:"@site/../docs/en-US/source/7.client-tools/6.bolt-console-client.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/bolt-console-client",permalink:"/tugraph-db/en-US/source/client-tools/bolt-console-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Bolt client",permalink:"/tugraph-db/en-US/source/client-tools/bolt-client"},next:{title:"TuGraph RESTful API",permalink:"/tugraph-db/en-US/source/client-tools/restful-api"}},a={},c=[{value:"lgraph_cli
",id:"lgraph_cli",level:2},{value:"online export",id:"online-export",level:2},{value:"csv",id:"csv",level:3},{value:"json",id:"json",level:3}];function p(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tugraph-console-client",children:"TuGraph console client"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cli"})," is a console client based on the bolt protocol, written in c++, which requires a connection to tugraph's bolt port."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cypher"})," is a console client based on http, written in python, which requires a connection to tugraph's http port."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cypher"})," needs some python libraries to be installed."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cli"})," is a binary executable file that has no dependencies on other dynamic libraries and can be executed by copying it to a linux server."]}),"\n",(0,t.jsx)(n.h2,{id:"lgraph_cli",children:(0,t.jsx)(n.code,{children:"lgraph_cli"})}),"\n",(0,t.jsxs)(n.p,{children:["The statement ends with a semicolon, type ",(0,t.jsx)(n.code,{children:"exit"}),", ",(0,t.jsx)(n.code,{children:"quit"})," or Ctrl-C to exit the client."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n\nWelcome to the TuGraph console client. Commands end with ';'.\nCopyright(C) 2018-2023 Ant Group. All rights reserved.\nType 'exit', 'quit' or Ctrl-C to exit.\n\nTuGraph> match(n) return n limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:\"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg\",name:\"Laurence Fishburne\"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n"})}),"\n",(0,t.jsx)(n.p,{children:"The statement can be inputed on more than one line."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'TuGraph> match(n)\n -> return n\n -> limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n'})}),"\n",(0,t.jsx)(n.p,{children:"non-interactive"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n limit 1;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n1 rows\n\n'})}),"\n",(0,t.jsx)(n.p,{children:"read statements from file"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\ncat query.txt\nmatch(n) return n limit 1;\nmatch(n) return n limit 1;\n\nlgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph < query.txt\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n'})}),"\n",(0,t.jsx)(n.h2,{id:"online-export",children:"online export"}),"\n",(0,t.jsx)(n.p,{children:"lgraph_cli supports streaming read, so just redirect the output to a file. The output format supports csv and json"}),"\n",(0,t.jsx)(n.h3,{id:"csv",children:"csv"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format csv > output.txt\n\n'})}),"\n",(0,t.jsx)(n.h3,{id:"json",children:"json"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format json > output.txt\n\n'})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>l});var t=r(6540);const o={},s=t.createContext(o);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5189e784.c209ae45.js b/assets/js/5189e784.c209ae45.js
new file mode 100644
index 0000000000..07524935d0
--- /dev/null
+++ b/assets/js/5189e784.c209ae45.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3916],{8406:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(4848),o=t(8453);const i={},s="TuGraph console client",l={id:"client-tools/bolt-console-client",title:"TuGraph console client",description:"lgraph_cli is a console client based on the bolt protocol, written in c++, which requires a connection to tugraph's bolt port.",source:"@site/../docs/en-US/source/7.client-tools/6.bolt-console-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/bolt-console-client",permalink:"/tugraph-db/en/client-tools/bolt-console-client",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Bolt client",permalink:"/tugraph-db/en/client-tools/bolt-client"},next:{title:"TuGraph RESTful API",permalink:"/tugraph-db/en/client-tools/restful-api"}},a={},c=[{value:"lgraph_cli
",id:"lgraph_cli",level:2},{value:"online export",id:"online-export",level:2},{value:"csv",id:"csv",level:3},{value:"json",id:"json",level:3}];function p(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"tugraph-console-client",children:"TuGraph console client"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"lgraph_cli"})," is a console client based on the bolt protocol, written in c++, which requires a connection to tugraph's bolt port."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"lgraph_cypher"})," is a console client based on http, written in python, which requires a connection to tugraph's http port."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"lgraph_cypher"})," needs some python libraries to be installed."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"lgraph_cli"})," is a binary executable file that has no dependencies on other dynamic libraries and can be executed by copying it to a linux server."]}),"\n",(0,r.jsx)(n.h2,{id:"lgraph_cli",children:(0,r.jsx)(n.code,{children:"lgraph_cli"})}),"\n",(0,r.jsxs)(n.p,{children:["The statement ends with a semicolon, type ",(0,r.jsx)(n.code,{children:"exit"}),", ",(0,r.jsx)(n.code,{children:"quit"})," or Ctrl-C to exit the client."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:"lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n\nWelcome to the TuGraph console client. Commands end with ';'.\nCopyright(C) 2018-2023 Ant Group. All rights reserved.\nType 'exit', 'quit' or Ctrl-C to exit.\n\nTuGraph> match(n) return n limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:\"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg\",name:\"Laurence Fishburne\"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n"})}),"\n",(0,r.jsx)(n.p,{children:"The statement can be inputed on more than one line."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'TuGraph> match(n)\n -> return n\n -> limit 1;\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n\nTuGraph>\n'})}),"\n",(0,r.jsx)(n.p,{children:"non-interactive"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n limit 1;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n1 rows\n\n'})}),"\n",(0,r.jsx)(n.p,{children:"read statements from file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:'\ncat query.txt\nmatch(n) return n limit 1;\nmatch(n) return n limit 1;\n\nlgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph < query.txt\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| n |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:2,born:1961,poster_image:"https://image.tmdb.org/t/p/w185/mh0lZ1XsT84FayMNiT6Erh91mVu.jpg",name:"Laurence Fishburne"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n| (:person {id:3,born:1967,poster_image:"https://image.tmdb.org/t/p/w185/8iATAc5z5XOKFFARLsvaawa8MTY.jpg",name:"Carrie-Anne Moss"}) |\n+-------------------------------------------------------------------------------------------------------------------------------------+\n2 rows\n'})}),"\n",(0,r.jsx)(n.h2,{id:"online-export",children:"online export"}),"\n",(0,r.jsx)(n.p,{children:"lgraph_cli supports streaming read, so just redirect the output to a file. The output format supports csv and json"}),"\n",(0,r.jsx)(n.h3,{id:"csv",children:"csv"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format csv > output.txt\n\n'})}),"\n",(0,r.jsx)(n.h3,{id:"json",children:"json"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-powershell",children:'\necho "match(n) return n.id, n.name;" | lgraph_cli --ip 127.0.0.1 --port 7687 --graph default --user admin --password 73@TuGraph --format json > output.txt\n\n'})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var r=t(6540);const o={},i=r.createContext(o);function s(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/54287b68.17d90edd.js b/assets/js/54287b68.17d90edd.js
deleted file mode 100644
index 98ca35738a..0000000000
--- a/assets/js/54287b68.17d90edd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8735],{5774:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>u,toc:()=>s});var i=r(4848),t=r(8453);const o={},l="\u73af\u5883\u5206\u7c7b",u={id:"zh-CN/source/installation&running/environment-mode",title:"\u73af\u5883\u5206\u7c7b",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6d89\u53ca\u7684\u4e09\u79cd\u73af\u5883\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/2.environment-mode.md",sourceDirName:"zh-CN/source/5.installation&running",slug:"/zh-CN/source/installation&running/environment-mode",permalink:"/tugraph-db/zh-CN/source/installation&running/environment-mode",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u73af\u5883\u51c6\u5907",permalink:"/tugraph-db/zh-CN/source/installation&running/environment"},next:{title:"Docker\u90e8\u7f72",permalink:"/tugraph-db/zh-CN/source/installation&running/docker-deployment"}},a={},s=[{value:"1.\u5206\u7c7b",id:"1\u5206\u7c7b",level:2},{value:"2.\u4f9d\u8d56\u7cfb\u7edf\u5e93",id:"2\u4f9d\u8d56\u7cfb\u7edf\u5e93",level:2}];function c(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,t.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"\u73af\u5883\u5206\u7c7b",children:"\u73af\u5883\u5206\u7c7b"})}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6d89\u53ca\u7684\u4e09\u79cd\u73af\u5883\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"1\u5206\u7c7b",children:"1.\u5206\u7c7b"}),"\n",(0,i.jsx)(e.p,{children:"\u6839\u636e\u73af\u5883\u6240\u627f\u8f7d\u529f\u80fd\u7684\u4e0d\u540c\uff0c\u533a\u5206\u4e3a\u7f16\u8bd1\u73af\u5883\uff0c\u8fd0\u884c\u73af\u5883\uff0c\u4ee5\u53ca\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\u3002"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u7f16\u8bd1\u73af\u5883\uff0c\u5177\u5907TuGraph\u7f16\u8bd1\u7684\u6240\u6709\u4f9d\u8d56\u5e93\uff0c\u5305\u542b\u8fd0\u884c\u73af\u5883\u7684\u6240\u6709\u4f9d\u8d56\uff0c\u5e76\u4e14\u80fd\u591f\u7f16\u8bd1TuGraph\u6e90\u7801\uff0c\u4f46\u4e0d\u5305\u542b\u9884\u7f16\u8bd1\u597d\u7684TuGraph\u53ef\u6267\u884c\u6587\u4ef6\u548c\u5e93\u6587\u4ef6\uff0c\u4f9b\u5f00\u53d1\u8005\u7f16\u8bd1\u6e90\u7801\u4f7f\u7528\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u8fd0\u884c\u73af\u5883\uff0c\u5177\u5907GCC/Java/Python\u73af\u5883\uff0c\u80fd\u591f\u8fd0\u884cTuGraph\u7684\u6240\u6709\u529f\u80fd\uff0c\u5e76\u4e14\u80fd\u627f\u8f7d\u5168\u6587\u7d22\u5f15\uff0cjava client\uff0cc++\u6e90\u7801\u4e0a\u4f20\u4e3aplugin\uff0c\u4ee5\u53capython plugin\u7684\u5b8c\u6574\u529f\u80fd\uff0c\u5185\u7f6eTuGraph\u9884\u7f16\u8bd1\u597d\u7684\u53ef\u6267\u884c\u6587\u4ef6\u548c\u5e93\u6587\u4ef6\uff0c\u4f9b\u5ba2\u6237\u76f4\u63a5\u5b89\u88c5\u4f7f\u7528\uff0c\u65e0\u9700\u7f16\u8bd1\u6e90\u7801\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\uff0c\u7ea6\u7b49\u4e8e\u88f8\u7cfb\u7edf\u52a0\u9884\u7f16\u8bd1TuGraph\uff0c\u4ec5\u80fd\u8fd0\u884cTuGraph\u7684\u57fa\u672c\u529f\u80fd\uff0c\u65e0C++ plugin\u7f16\u8bd1\u8fd0\u884c\uff0c\u4ec5so\u4e0a\u4f20\uff0c\u65e0\u5168\u6587\u7d22\u5f15\uff0c\u65e0python plugin\uff0c\u4f9b\u5feb\u901f\u642d\u5efa\u8bd5\u7528\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u7f16\u8bd1\u540e\uff0c\u4f1a\u628a\u6240\u6709\u7684\u4f9d\u8d56\u5e93\u4ee5.a\u7684\u5f62\u5f0f\u6253\u5305\u5728\u4e00\u8d77\uff0c\u56e0\u6b64\u539f\u5219\u4e0a\u8fd0\u884c\u4e0d\u9700\u8981\u7684\u5176\u4ed6\u7684\u4f9d\u8d56\u5e93\u3002\u4f46TuGraph\u652f\u6301\u5b58\u50a8\u8fc7\u7a0b\uff0c\u5373\u5728\u670d\u52a1\u7aef\u7f16\u8bd1C++\u4ee3\u7801\uff0c\u56e0\u6b64\u5728\u73af\u5883\u4e2d\u4f9d\u7136\u9700\u8981\u6d89\u53ca\u7684\u7f16\u8bd1\u5668\u3002"}),"\n",(0,i.jsx)(e.h2,{id:"2\u4f9d\u8d56\u7cfb\u7edf\u5e93",children:"2.\u4f9d\u8d56\u7cfb\u7edf\u5e93"}),"\n",(0,i.jsx)(e.p,{children:"\u9488\u5bf9\u4e09\u79cd\u73af\u5883\uff0c\u9664\u53bbTuGraph\u7684\u8fd0\u884c\u5305\uff0c\u6240\u9700\u8981\u7684\u7cfb\u7edf\u5e93\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u7f16\u8bd1\u73af\u5883\uff0c\u5305\u62ecgcc\u3001python\u3001java\u7b49\u7f16\u8bd1\u5668\uff0c\u4e5f\u5305\u542bantlr4\u3001pybind11\u7b49\uff0c\u5177\u4f53\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-compile-*-Dockerfile\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u8fd0\u884c\u73af\u5883\uff0c\u4e3b\u8981\u7531\u5b58\u50a8\u8fc7\u7a0b\u5f15\u5165\uff0c\u5305\u62ecgcc\u3001boost\u3001cmake\u7b49\uff0c\u5177\u4f53\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-runtime-*-Dockerfile\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\uff0c\u65e0\uff0c\u53ef\u4ee5\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/ tugraph-mini-runtime-*-Dockerfile\u3002"}),"\n"]})]})}function h(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(c,{...n})}):c(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>l,x:()=>u});var i=r(6540);const t={},o=i.createContext(t);function l(n){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function u(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:l(n.components),i.createElement(o.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/54287b68.46e13d0a.js b/assets/js/54287b68.46e13d0a.js
new file mode 100644
index 0000000000..5048fa0720
--- /dev/null
+++ b/assets/js/54287b68.46e13d0a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8735],{5774:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>u,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>s});var t=i(4848),r=i(8453);const l={},o="\u73af\u5883\u5206\u7c7b",a={id:"installation&running/environment-mode",title:"\u73af\u5883\u5206\u7c7b",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6d89\u53ca\u7684\u4e09\u79cd\u73af\u5883\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/2.environment-mode.md",sourceDirName:"5.installation&running",slug:"/installation&running/environment-mode",permalink:"/tugraph-db/zh/installation&running/environment-mode",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u73af\u5883\u51c6\u5907",permalink:"/tugraph-db/zh/installation&running/environment"},next:{title:"Docker\u90e8\u7f72",permalink:"/tugraph-db/zh/installation&running/docker-deployment"}},u={},s=[{value:"1.\u5206\u7c7b",id:"1\u5206\u7c7b",level:2},{value:"2.\u4f9d\u8d56\u7cfb\u7edf\u5e93",id:"2\u4f9d\u8d56\u7cfb\u7edf\u5e93",level:2}];function c(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u73af\u5883\u5206\u7c7b",children:"\u73af\u5883\u5206\u7c7b"})}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6d89\u53ca\u7684\u4e09\u79cd\u73af\u5883\u3002"}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"1\u5206\u7c7b",children:"1.\u5206\u7c7b"}),"\n",(0,t.jsx)(e.p,{children:"\u6839\u636e\u73af\u5883\u6240\u627f\u8f7d\u529f\u80fd\u7684\u4e0d\u540c\uff0c\u533a\u5206\u4e3a\u7f16\u8bd1\u73af\u5883\uff0c\u8fd0\u884c\u73af\u5883\uff0c\u4ee5\u53ca\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\u3002"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsx)(e.li,{children:"\u7f16\u8bd1\u73af\u5883\uff0c\u5177\u5907TuGraph\u7f16\u8bd1\u7684\u6240\u6709\u4f9d\u8d56\u5e93\uff0c\u5305\u542b\u8fd0\u884c\u73af\u5883\u7684\u6240\u6709\u4f9d\u8d56\uff0c\u5e76\u4e14\u80fd\u591f\u7f16\u8bd1TuGraph\u6e90\u7801\uff0c\u4f46\u4e0d\u5305\u542b\u9884\u7f16\u8bd1\u597d\u7684TuGraph\u53ef\u6267\u884c\u6587\u4ef6\u548c\u5e93\u6587\u4ef6\uff0c\u4f9b\u5f00\u53d1\u8005\u7f16\u8bd1\u6e90\u7801\u4f7f\u7528\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u8fd0\u884c\u73af\u5883\uff0c\u5177\u5907GCC/Java/Python\u73af\u5883\uff0c\u80fd\u591f\u8fd0\u884cTuGraph\u7684\u6240\u6709\u529f\u80fd\uff0c\u5e76\u4e14\u80fd\u627f\u8f7d\u5168\u6587\u7d22\u5f15\uff0cjava client\uff0cc++\u6e90\u7801\u4e0a\u4f20\u4e3aplugin\uff0c\u4ee5\u53capython plugin\u7684\u5b8c\u6574\u529f\u80fd\uff0c\u5185\u7f6eTuGraph\u9884\u7f16\u8bd1\u597d\u7684\u53ef\u6267\u884c\u6587\u4ef6\u548c\u5e93\u6587\u4ef6\uff0c\u4f9b\u5ba2\u6237\u76f4\u63a5\u5b89\u88c5\u4f7f\u7528\uff0c\u65e0\u9700\u7f16\u8bd1\u6e90\u7801\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\uff0c\u7ea6\u7b49\u4e8e\u88f8\u7cfb\u7edf\u52a0\u9884\u7f16\u8bd1TuGraph\uff0c\u4ec5\u80fd\u8fd0\u884cTuGraph\u7684\u57fa\u672c\u529f\u80fd\uff0c\u65e0C++ plugin\u7f16\u8bd1\u8fd0\u884c\uff0c\u4ec5so\u4e0a\u4f20\uff0c\u65e0\u5168\u6587\u7d22\u5f15\uff0c\u65e0python plugin\uff0c\u4f9b\u5feb\u901f\u642d\u5efa\u8bd5\u7528\u3002"}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u7f16\u8bd1\u540e\uff0c\u4f1a\u628a\u6240\u6709\u7684\u4f9d\u8d56\u5e93\u4ee5.a\u7684\u5f62\u5f0f\u6253\u5305\u5728\u4e00\u8d77\uff0c\u56e0\u6b64\u539f\u5219\u4e0a\u8fd0\u884c\u4e0d\u9700\u8981\u7684\u5176\u4ed6\u7684\u4f9d\u8d56\u5e93\u3002\u4f46TuGraph\u652f\u6301\u5b58\u50a8\u8fc7\u7a0b\uff0c\u5373\u5728\u670d\u52a1\u7aef\u7f16\u8bd1C++\u4ee3\u7801\uff0c\u56e0\u6b64\u5728\u73af\u5883\u4e2d\u4f9d\u7136\u9700\u8981\u6d89\u53ca\u7684\u7f16\u8bd1\u5668\u3002"}),"\n",(0,t.jsx)(e.h2,{id:"2\u4f9d\u8d56\u7cfb\u7edf\u5e93",children:"2.\u4f9d\u8d56\u7cfb\u7edf\u5e93"}),"\n",(0,t.jsx)(e.p,{children:"\u9488\u5bf9\u4e09\u79cd\u73af\u5883\uff0c\u9664\u53bbTuGraph\u7684\u8fd0\u884c\u5305\uff0c\u6240\u9700\u8981\u7684\u7cfb\u7edf\u5e93\u5982\u4e0b\uff1a"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsx)(e.li,{children:"\u7f16\u8bd1\u73af\u5883\uff0c\u5305\u62ecgcc\u3001python\u3001java\u7b49\u7f16\u8bd1\u5668\uff0c\u4e5f\u5305\u542bantlr4\u3001pybind11\u7b49\uff0c\u5177\u4f53\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-compile-*-Dockerfile\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u8fd0\u884c\u73af\u5883\uff0c\u4e3b\u8981\u7531\u5b58\u50a8\u8fc7\u7a0b\u5f15\u5165\uff0c\u5305\u62ecgcc\u3001boost\u3001cmake\u7b49\uff0c\u5177\u4f53\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-runtime-*-Dockerfile\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\uff0c\u65e0\uff0c\u53ef\u4ee5\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/ tugraph-mini-runtime-*-Dockerfile\u3002"}),"\n"]})]})}function h(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>o,x:()=>a});var t=i(6540);const r={},l=t.createContext(r);function o(n){const e=t.useContext(l);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:o(n.components),t.createElement(l.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/54acc636.35f642d9.js b/assets/js/54acc636.35f642d9.js
new file mode 100644
index 0000000000..6656cc9a87
--- /dev/null
+++ b/assets/js/54acc636.35f642d9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6944],{7220:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var r=n(4848),s=n(8453);const a={},i="TuGraph C++ SDK",o={id:"client-tools/cpp-client",title:"TuGraph C++ SDK",description:"This document is the usage instruction of TuGraph C++ SDK",source:"@site/../docs/en-US/source/7.client-tools/2.cpp-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/cpp-client",permalink:"/tugraph-db/en/client-tools/cpp-client",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Python SDK",permalink:"/tugraph-db/en/client-tools/python-client"},next:{title:"TuGraph Java SDK",permalink:"/tugraph-db/en/client-tools/java-client"}},l={},d=[{value:"1.Instructions",id:"1instructions",level:2},{value:"2.Demo",id:"2demo",level:2},{value:"2.1.Instantiate the client object",id:"21instantiate-the-client-object",level:3},{value:"2.1.1. Instantiate a single node client object",id:"211-instantiate-a-single-node-client-object",level:4},{value:"2.1.2. Instantiate the HA cluster to directly connect to the client object",id:"212-instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"2.1.3. Instantiate the HA cluster to indirectly connect to the client object",id:"213-instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3. Send cypher request to leader",id:"23-send-cypher-request-to-leader",level:3},{value:"2.4. Call GQL",id:"24-call-gql",level:3},{value:"2.5. Send GQL request to leader",id:"25-send-gql-request-to-leader",level:3},{value:"2.6. Calling stored procedures",id:"26-calling-stored-procedures",level:3},{value:"2.7. Call the stored procedure to the leader",id:"27-call-the-stored-procedure-to-the-leader",level:3},{value:"2.8. Load stored procedure",id:"28-load-stored-procedure",level:3},{value:"2.9. List stored procedures",id:"29-list-stored-procedures",level:3},{value:"2.10. Delete stored procedures",id:"210-delete-stored-procedures",level:3},{value:"2.11. Import schema from byte stream",id:"211-import-schema-from-byte-stream",level:3},{value:"2.12. Import edge data from byte stream",id:"212-import-edge-data-from-byte-stream",level:3},{value:"2.13. Import schema from file",id:"213-import-schema-from-file",level:3},{value:"2.14. Import point and edge data from file",id:"214-import-point-and-edge-data-from-file",level:3}];function c(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tugraph-c-sdk",children:"TuGraph C++ SDK"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document is the usage instruction of TuGraph C++ SDK"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1instructions",children:"1.Instructions"}),"\n",(0,r.jsx)(t.p,{children:"C++ Client can use RPC to connect to lgraph_server to import data, execute stored procedures, call Cypher and other operations."}),"\n",(0,r.jsx)(t.h2,{id:"2demo",children:"2.Demo"}),"\n",(0,r.jsx)(t.h3,{id:"21instantiate-the-client-object",children:"2.1.Instantiate the client object"}),"\n",(0,r.jsx)(t.p,{children:"Introduce dependencies and instantiate"}),"\n",(0,r.jsx)(t.h4,{id:"211-instantiate-a-single-node-client-object",children:"2.1.1. Instantiate a single node client object"}),"\n",(0,r.jsx)(t.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.h4,{id:"212-instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"2.1.2. Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,r.jsx)(t.h4,{id:"213-instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"2.1.3. Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-java",children:'std::vector urls = {"189.33.97.23:9091", "189.33.97.24:9091", "189.33.97.25:9091"};\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(std::vector& urls, std::string user, std::string password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,r.jsx)(t.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypher(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallCypher(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling cypher.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"23-send-cypher-request-to-leader",children:"2.3. Send cypher request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypherToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallCypherToLeader(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"24-call-gql",children:"2.4. Call GQL"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGql(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallGql(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling gql.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"25-send-gql-request-to-leader",children:"2.5. Send GQL request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGqlToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallGqlToLeader(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"26-calling-stored-procedures",children:"2.6. Calling stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedure(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true,\n const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] url (Optional) Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in json format. Specifying jsonFormat as false can return the execution result in string format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"27-call-the-stored-procedure-to-the-leader",children:"2.7. Call the stored procedure to the leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedureToLeader(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallProcedureToLeader(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true);\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in json format. Specifying jsonFormat as false can return the execution result in string format."}),"\n",(0,r.jsx)(t.h3,{id:"28-load-stored-procedure",children:"2.8. Load stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.LoadProcedure(str, code_sleep, "PY", "python_plugin1", "PY", "this is a test plugin", true)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool LoadProcedure(std::string& result, const std::string& source_file,\n const std::string& procedure_type, const std::string& procedure_name,\n const std::string& code_type, const std::string& procedure_description,\n bool read_only, const std::string& version = "v1",\n const std::string& graph = "default");\n @param [out] result The result.\n @param [in] source_file the source_file contain procedure code.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] code_type code type, currently supported PY, SO, CPP, ZIP.\n @param [in] procedure_description procedure description.\n @param [in] read_only procedure is read only or not.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"29-list-stored-procedures",children:"2.9. List stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.ListProcedures(str);\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ListProcedures(std::string& result, const std::string& procedure_type,\n const std::string& version = "any",\n const std::string& graph = "default", const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type (Optional) the procedure type, "" for all procedures,\n CPP and PY for special type.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @param [in] url Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, the request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"210-delete-stored-procedures",children:"2.10. Delete stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.DeleteProcedure(str, "CPP", "test_plugin1");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool DeleteProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& graph = "default");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"211-import-schema-from-byte-stream",children:"2.11. Import schema from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.ImportSchemaFromContent(str, sImportContent["schema"]);\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportSchemaFromContent(std::string& result, const std::string& schema,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema the schema to be imported.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"212-import-edge-data-from-byte-stream",children:"2.12. Import edge data from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n ret = client.ImportDataFromContent(str, sImportContent["person_desc"], sImportContent["person"],",");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportDataFromContent(std::string& result, const std::string& desc,\n const std::string& data, const std::string& delimiter,\n bool continue_on_error = false, int thread_nums = 8,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] desc data format description.\n @param [in] data the data to be imported.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"213-import-schema-from-file",children:"2.13. Import schema from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportSchemaFromFile(str, conf_file);\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportSchemaFromFile(std::string& result, const std::string& schema_file,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema_file the schema_file contain schema.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"214-import-point-and-edge-data-from-file",children:"2.14. Import point and edge data from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportDataFromFile(str, conf_file, ",");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportDataFromFile(std::string& result, const std::string& conf_file,\n const std::string& delimiter, bool continue_on_error = false,\n int thread_nums = 8, int skip_packages = 0,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] conf_file data file contains format description and data.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] skip_packages (Optional) skip packages number.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function u(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var r=n(6540);const s={},a=r.createContext(s);function i(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/54acc636.b47afeed.js b/assets/js/54acc636.b47afeed.js
deleted file mode 100644
index 03135f3a24..0000000000
--- a/assets/js/54acc636.b47afeed.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6944],{4378:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(4848),s=n(8453);const i={},a="TuGraph C++ SDK",o={id:"en-US/source/client-tools/cpp-client",title:"TuGraph C++ SDK",description:"This document is the usage instruction of TuGraph C++ SDK",source:"@site/../docs/en-US/source/7.client-tools/2.cpp-client.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/cpp-client",permalink:"/tugraph-db/en-US/source/client-tools/cpp-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Python SDK",permalink:"/tugraph-db/en-US/source/client-tools/python-client"},next:{title:"TuGraph Java SDK",permalink:"/tugraph-db/en-US/source/client-tools/java-client"}},l={},d=[{value:"1.Instructions",id:"1instructions",level:2},{value:"2.Demo",id:"2demo",level:2},{value:"2.1.Instantiate the client object",id:"21instantiate-the-client-object",level:3},{value:"2.1.1. Instantiate a single node client object",id:"211-instantiate-a-single-node-client-object",level:4},{value:"2.1.2. Instantiate the HA cluster to directly connect to the client object",id:"212-instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",level:4},{value:"2.1.3. Instantiate the HA cluster to indirectly connect to the client object",id:"213-instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",level:4},{value:"2.2.Call cypher",id:"22call-cypher",level:3},{value:"2.3. Send cypher request to leader",id:"23-send-cypher-request-to-leader",level:3},{value:"2.4. Call GQL",id:"24-call-gql",level:3},{value:"2.5. Send GQL request to leader",id:"25-send-gql-request-to-leader",level:3},{value:"2.6. Calling stored procedures",id:"26-calling-stored-procedures",level:3},{value:"2.7. Call the stored procedure to the leader",id:"27-call-the-stored-procedure-to-the-leader",level:3},{value:"2.8. Load stored procedure",id:"28-load-stored-procedure",level:3},{value:"2.9. List stored procedures",id:"29-list-stored-procedures",level:3},{value:"2.10. Delete stored procedures",id:"210-delete-stored-procedures",level:3},{value:"2.11. Import schema from byte stream",id:"211-import-schema-from-byte-stream",level:3},{value:"2.12. Import edge data from byte stream",id:"212-import-edge-data-from-byte-stream",level:3},{value:"2.13. Import schema from file",id:"213-import-schema-from-file",level:3},{value:"2.14. Import point and edge data from file",id:"214-import-point-and-edge-data-from-file",level:3}];function c(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tugraph-c-sdk",children:"TuGraph C++ SDK"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document is the usage instruction of TuGraph C++ SDK"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1instructions",children:"1.Instructions"}),"\n",(0,r.jsx)(t.p,{children:"C++ Client can use RPC to connect to lgraph_server to import data, execute stored procedures, call Cypher and other operations."}),"\n",(0,r.jsx)(t.h2,{id:"2demo",children:"2.Demo"}),"\n",(0,r.jsx)(t.h3,{id:"21instantiate-the-client-object",children:"2.1.Instantiate the client object"}),"\n",(0,r.jsx)(t.p,{children:"Introduce dependencies and instantiate"}),"\n",(0,r.jsx)(t.h4,{id:"211-instantiate-a-single-node-client-object",children:"2.1.1. Instantiate a single node client object"}),"\n",(0,r.jsx)(t.p,{children:"When starting the server in single-node mode, the client is instantiated in the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.h4,{id:"212-instantiate-the-ha-cluster-to-directly-connect-to-the-client-object",children:"2.1.2. Instantiate the HA cluster to directly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server can be directly connected using the URL configured in ha_conf, the client is instantiated according to the following format"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.p,{children:"The user only needs to pass in the url of any node in the HA cluster, and the client will automatically maintain the connection pool based on the query information returned by the server, and there is no need to manually restart the client when the HA cluster expands horizontally."}),"\n",(0,r.jsx)(t.h4,{id:"213-instantiate-the-ha-cluster-to-indirectly-connect-to-the-client-object",children:"2.1.3. Instantiate the HA cluster to indirectly connect to the client object"}),"\n",(0,r.jsx)(t.p,{children:"When the HA cluster deployed on the server cannot use the URL configured in ha_conf to connect directly but must use an indirect URL (such as the Alibaba Cloud public network URL), the client is instantiated according to the following format."}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-java",children:'std::vector urls = {"189.33.97.23:9091", "189.33.97.24:9091", "189.33.97.25:9091"};\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:"RpcClient(std::vector& urls, std::string user, std::string password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,r.jsx)(t.p,{children:"Because the URL that the user connects to is different from the information configured when the server starts, the client connection pool cannot be automatically updated by sending a request to the cluster, so it is necessary to manually pass in the URLs of all nodes in the cluster when starting the client, and when the cluster node changes Manually restart the client."}),"\n",(0,r.jsx)(t.h3,{id:"22call-cypher",children:"2.2.Call cypher"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypher(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallCypher(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling cypher.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"23-send-cypher-request-to-leader",children:"2.3. Send cypher request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypherToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallCypherToLeader(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"24-call-gql",children:"2.4. Call GQL"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGql(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallGql(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling gql.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"25-send-gql-request-to-leader",children:"2.5. Send GQL request to leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGqlToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallGqlToLeader(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface only supports use in HA mode. In the client in HA mode, in order to prevent requests from being sent to followers with unsynchronized data,\nUsers can directly send requests to the leader, and the leader is elected by the cluster."}),"\n",(0,r.jsx)(t.h3,{id:"26-calling-stored-procedures",children:"2.6. Calling stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedure(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true,\n const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] url (Optional) Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. By default, the execution result of the stored procedure is directly returned in json format. Specifying jsonFormat as false can return the execution result in string format.\nAmong them, in the client in HA mode, a read request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"27-call-the-stored-procedure-to-the-leader",children:"2.7. Call the stored procedure to the leader"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedureToLeader(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool CallProcedureToLeader(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true);\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in HA mode. By default, the execution result of the stored procedure is directly returned in json format. Specifying jsonFormat as false can return the execution result in string format."}),"\n",(0,r.jsx)(t.h3,{id:"28-load-stored-procedure",children:"2.8. Load stored procedure"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.LoadProcedure(str, code_sleep, "PY", "python_plugin1", "PY", "this is a test plugin", true)\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool LoadProcedure(std::string& result, const std::string& source_file,\n const std::string& procedure_type, const std::string& procedure_name,\n const std::string& code_type, const std::string& procedure_description,\n bool read_only, const std::string& version = "v1",\n const std::string& graph = "default");\n @param [out] result The result.\n @param [in] source_file the source_file contain procedure code.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] code_type code type, currently supported PY, SO, CPP, ZIP.\n @param [in] procedure_description procedure description.\n @param [in] read_only procedure is read only or not.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since loading a stored procedure is a write request, the client in HA mode can only send a request to load a stored procedure to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"29-list-stored-procedures",children:"2.9. List stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:" std::string str;\n bool ret = client.ListProcedures(str);\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ListProcedures(std::string& result, const std::string& procedure_type,\n const std::string& version = "any",\n const std::string& graph = "default", const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type (Optional) the procedure type, "" for all procedures,\n CPP and PY for special type.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @param [in] url Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, in the client in HA mode, the request can be directed to a server by specifying the url parameter."}),"\n",(0,r.jsx)(t.h3,{id:"210-delete-stored-procedures",children:"2.10. Delete stored procedures"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.DeleteProcedure(str, "CPP", "test_plugin1");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool DeleteProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& graph = "default");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since deleting a stored procedure is a write request, the client in HA mode can only send a delete request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"211-import-schema-from-byte-stream",children:"2.11. Import schema from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n bool ret = client.ImportSchemaFromContent(str, sImportContent["schema"]);\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportSchemaFromContent(std::string& result, const std::string& schema,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema the schema to be imported.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"212-import-edge-data-from-byte-stream",children:"2.12. Import edge data from byte stream"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string str;\n ret = client.ImportDataFromContent(str, sImportContent["person_desc"], sImportContent["person"],",");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportDataFromContent(std::string& result, const std::string& desc,\n const std::string& data, const std::string& delimiter,\n bool continue_on_error = false, int thread_nums = 8,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] desc data format description.\n @param [in] data the data to be imported.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"213-import-schema-from-file",children:"2.13. Import schema from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportSchemaFromFile(str, conf_file);\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportSchemaFromFile(std::string& result, const std::string& schema_file,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema_file the schema_file contain schema.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, otherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing schema is a write request, the client in HA mode can only send an import schema request to the leader."}),"\n",(0,r.jsx)(t.h3,{id:"214-import-point-and-edge-data-from-file",children:"2.14. Import point and edge data from file"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportDataFromFile(str, conf_file, ",");\n'})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{children:' bool ImportDataFromFile(std::string& result, const std::string& conf_file,\n const std::string& delimiter, bool continue_on_error = false,\n int thread_nums = 8, int skip_packages = 0,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] conf_file data file contains format description and data.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] skip_packages (Optional) skip packages number.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format, true is json, Otherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,r.jsx)(t.p,{children:"This interface supports use in stand-alone mode and HA mode. Among them, since importing point and edge data is a write request, the client in HA mode can only send a request to import point and edge data to the leader."})]})}function u(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var r=n(6540);const s={},i=r.createContext(s);function a(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/553e0098.46120b0a.js b/assets/js/553e0098.46120b0a.js
deleted file mode 100644
index bfde1ee5bc..0000000000
--- a/assets/js/553e0098.46120b0a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9806],{6894:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var n=r(4848),s=r(8453);const i={},a="DEMO Earth",d={id:"en-US/source/quick-start/demo/wandering-earth",title:"DEMO:Wandering Earth",description:"This document mainly introduces the usage of the Wandering Earth demo.",source:"@site/../docs/en-US/source/3.quick-start/2.demo/2.wandering-earth.md",sourceDirName:"en-US/source/3.quick-start/2.demo",slug:"/en-US/source/quick-start/demo/wandering-earth",permalink:"/tugraph-db/en-US/source/quick-start/demo/wandering-earth",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"DEMO:Movie",permalink:"/tugraph-db/en-US/source/quick-start/demo/movie"},next:{title:"The Three Body",permalink:"/tugraph-db/en-US/source/quick-start/demo/the-three-body"}},o={},c=[{value:"1.Demo Scene Design",id:"1demo-scene-design",level:2},{value:"2.Instructions for Use",id:"2instructions-for-use",level:2},{value:"3.Data Import",id:"3data-import",level:2},{value:"4.Cypher Query",id:"4cypher-query",level:2},{value:"5.Usage Display",id:"5usage-display",level:2},{value:"5.1.Data Import Display",id:"51data-import-display",level:3},{value:"5.2.Query Display",id:"52query-display",level:3}];function h(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"demo-earth",children:"DEMO:Wandering Earth"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the usage of the Wandering Earth demo."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1demo-scene-design",children:"1.Demo Scene Design"}),"\n",(0,n.jsx)(t.p,{children:"The demo is based on the story background of The Wandering Earth 1 and The Wandering Earth 2."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Based on the plot, a graph structure is designed, including three types of points: organization, character, celestial body, and facility, and two types of edges: event and relationship."}),"\n",(0,n.jsx)(t.li,{children:"Prepared data corresponding to the schema based on the plot."}),"\n",(0,n.jsx)(t.li,{children:"Prepared some queries to ask questions about the plot."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"2instructions-for-use",children:"2.Instructions for Use"}),"\n",(0,n.jsx)(t.p,{children:"Prerequisite: TuGraph is installed."}),"\n",(0,n.jsx)(t.h2,{id:"3data-import",children:"3.Data Import"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Data storage directory: ",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-family/tugraph-db-demo",children:"https://github.com/TuGraph-family/tugraph-db-demo"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["Modify the DATA_PATH in import.json according to the corresponding data storage directory. For more details, please refer to ",(0,n.jsx)(t.a,{href:"/tugraph-db/en-US/source/utility-tools/data-import",children:"Data Importing"}),"."]}),"\n",(0,n.jsx)(t.li,{children:"After starting the TuGraph service, access ${HOST_IP}:7070 to open the web page and confirm whether the data is imported successfully."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"4cypher-query",children:"4.Cypher Query"}),"\n",(0,n.jsx)(t.p,{children:"Refer to the Cypher document and enter Cypher in the TuGraph web page frontend for queries."}),"\n",(0,n.jsx)(t.h2,{id:"5usage-display",children:"5.Usage Display"}),"\n",(0,n.jsx)(t.h3,{id:"51data-import-display",children:"5.1.Data Import Display"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(1526).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsx)(t.h3,{id:"52query-display",children:"5.2.Query Display"}),"\n",(0,n.jsx)(t.p,{children:"Query all event processes related to the crisis on Jupiter."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(3293).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsx)(t.p,{children:"Query all event processes related to all crises."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(52).A+"",width:"1527",height:"1120"})})]})}function l(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1526:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-1-0d55cfd964d4531decde10ca519f0435.png"},3293:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-2-d6bbcf44b71e4f7e8927ac46e99f8636.png"},52:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-3-79833e91472e6b0c46d7d663b964728a.png"},8453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>d});var n=r(6540);const s={},i=n.createContext(s);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/553e0098.67cf795e.js b/assets/js/553e0098.67cf795e.js
new file mode 100644
index 0000000000..a384775007
--- /dev/null
+++ b/assets/js/553e0098.67cf795e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9806],{3076:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>d,toc:()=>h});var n=r(4848),i=r(8453);const s={},a="DEMO Earth",d={id:"quick-start/demo/wandering-earth",title:"DEMO:Wandering Earth",description:"This document mainly introduces the usage of the Wandering Earth demo.",source:"@site/../docs/en-US/source/3.quick-start/2.demo/2.wandering-earth.md",sourceDirName:"3.quick-start/2.demo",slug:"/quick-start/demo/wandering-earth",permalink:"/tugraph-db/en/quick-start/demo/wandering-earth",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"DEMO:Movie",permalink:"/tugraph-db/en/quick-start/demo/movie"},next:{title:"The Three Body",permalink:"/tugraph-db/en/quick-start/demo/the-three-body"}},o={},h=[{value:"1.Demo Scene Design",id:"1demo-scene-design",level:2},{value:"2.Instructions for Use",id:"2instructions-for-use",level:2},{value:"3.Data Import",id:"3data-import",level:2},{value:"4.Cypher Query",id:"4cypher-query",level:2},{value:"5.Usage Display",id:"5usage-display",level:2},{value:"5.1.Data Import Display",id:"51data-import-display",level:3},{value:"5.2.Query Display",id:"52query-display",level:3}];function l(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"demo-earth",children:"DEMO:Wandering Earth"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the usage of the Wandering Earth demo."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1demo-scene-design",children:"1.Demo Scene Design"}),"\n",(0,n.jsx)(t.p,{children:"The demo is based on the story background of The Wandering Earth 1 and The Wandering Earth 2."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Based on the plot, a graph structure is designed, including three types of points: organization, character, celestial body, and facility, and two types of edges: event and relationship."}),"\n",(0,n.jsx)(t.li,{children:"Prepared data corresponding to the schema based on the plot."}),"\n",(0,n.jsx)(t.li,{children:"Prepared some queries to ask questions about the plot."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"2instructions-for-use",children:"2.Instructions for Use"}),"\n",(0,n.jsx)(t.p,{children:"Prerequisite: TuGraph is installed."}),"\n",(0,n.jsx)(t.h2,{id:"3data-import",children:"3.Data Import"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Data storage directory: ",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-family/tugraph-db-demo",children:"https://github.com/TuGraph-family/tugraph-db-demo"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:["Modify the DATA_PATH in import.json according to the corresponding data storage directory. For more details, please refer to ",(0,n.jsx)(t.a,{href:"/tugraph-db/en/utility-tools/data-import",children:"Data Importing"}),"."]}),"\n",(0,n.jsx)(t.li,{children:"After starting the TuGraph service, access ${HOST_IP}:7070 to open the web page and confirm whether the data is imported successfully."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"4cypher-query",children:"4.Cypher Query"}),"\n",(0,n.jsx)(t.p,{children:"Refer to the Cypher document and enter Cypher in the TuGraph web page frontend for queries."}),"\n",(0,n.jsx)(t.h2,{id:"5usage-display",children:"5.Usage Display"}),"\n",(0,n.jsx)(t.h3,{id:"51data-import-display",children:"5.1.Data Import Display"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(1526).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsx)(t.h3,{id:"52query-display",children:"5.2.Query Display"}),"\n",(0,n.jsx)(t.p,{children:"Query all event processes related to the crisis on Jupiter."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(3293).A+"",width:"1527",height:"1120"})}),"\n",(0,n.jsx)(t.p,{children:"Query all event processes related to all crises."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"\u6570\u636e\u5bfc\u5165\u5c55\u793a",src:r(52).A+"",width:"1527",height:"1120"})})]})}function c(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1526:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-1-0d55cfd964d4531decde10ca519f0435.png"},3293:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-2-d6bbcf44b71e4f7e8927ac46e99f8636.png"},52:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/wandering-earth-3-79833e91472e6b0c46d7d663b964728a.png"},8453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>d});var n=r(6540);const i={},s=n.createContext(i);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/55a612bf.a77de4ba.js b/assets/js/55a612bf.a77de4ba.js
deleted file mode 100644
index 2bc012b9c9..0000000000
--- a/assets/js/55a612bf.a77de4ba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8657],{9774:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=t(4848),n=t(8453);const o={},i="\u6570\u636e\u5bfc\u51fa",d={id:"zh-CN/source/utility-tools/data-export",title:"\u6570\u636e\u5bfc\u51fa",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u51fa\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/6.utility-tools/2.data-export.md",sourceDirName:"zh-CN/source/6.utility-tools",slug:"/zh-CN/source/utility-tools/data-export",permalink:"/tugraph-db/zh-CN/source/utility-tools/data-export",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5bfc\u5165",permalink:"/tugraph-db/zh-CN/source/utility-tools/data-import"},next:{title:"\u5907\u4efd\u6062\u590d",permalink:"/tugraph-db/zh-CN/source/utility-tools/backup-and-restore"}},c={},l=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5bfc\u51fa\u547d\u4ee4",id:"2\u5bfc\u51fa\u547d\u4ee4",level:2}];function a(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u6570\u636e\u5bfc\u51fa",children:"\u6570\u636e\u5bfc\u51fa"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsx)(r.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u51fa\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsxs)(r.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 ",(0,s.jsx)(r.code,{children:"lgraph_export"})," \u5de5\u5177\u6765\u5bf9\u5df2\u7ecf\u5b58\u653e\u5728TuGraph\u7684\u56fe\u6570\u636e\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\u3002 ",(0,s.jsx)(r.code,{children:"lgraph_export"})," \u5de5\u5177\u53ef\u4ee5\u5c06\u6307\u5b9a TuGraph \u6570\u636e\u5e93\u7684\u6570\u636e\u4ee5 ",(0,s.jsx)(r.code,{children:"csv"})," \u6216\u8005 ",(0,s.jsx)(r.code,{children:"json"})," \u6587\u4ef6\u5f62\u5f0f\u5bfc\u51fa\u5230\u6307\u5b9a\u76ee\u5f55\uff0c\u540c\u65f6\u5bfc\u51fa\u8fd9\u4e9b\u6570\u636e\u8fdb\u884c\u518d\u5bfc\u5165\u65f6\u9700\u8981\u7684\u914d\u7f6e\u6587\u4ef6 ",(0,s.jsx)(r.code,{children:"import.config"})," \uff0c\u8be6\u7ec6\u63cf\u8ff0\u53ef\u53c2\u89c1",(0,s.jsx)(r.a,{href:"/tugraph-db/zh-CN/source/utility-tools/data-import",children:"\u914d\u7f6e\u6587\u4ef6"}),"\u3002"]}),"\n",(0,s.jsx)(r.h2,{id:"2\u5bfc\u51fa\u547d\u4ee4",children:"2.\u5bfc\u51fa\u547d\u4ee4"}),"\n",(0,s.jsx)(r.p,{children:"\u8be5\u5de5\u5177\u7684\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"$ lgraph_export -d {database_dir} -e {export_destination_dir} -g {graph_to_use} -u {username} -p {password} -f {output_format}\n"})}),"\n",(0,s.jsx)(r.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-d {database_dir}"})," \u6307\u5b9a\u9700\u8981\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\u7684\u6570\u636e\u5e93\u6240\u5728\u76ee\u5f55\uff0c\u9ed8\u8ba4\u503c\u4e3a ",(0,s.jsx)(r.code,{children:"./testdb"}),"\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-e {export_destination_dir}"})," \u6307\u5b9a\u5bfc\u51fa\u6587\u4ef6\u5b58\u653e\u7684\u76ee\u5f55\uff0c\u9ed8\u8ba4\u503c\u4e3a ",(0,s.jsx)(r.code,{children:"./exportdir"}),"\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-g {graph_to_use}"})," \u6307\u5b9a\u56fe\u6570\u636e\u5e93\u7684\u79cd\u7c7b\uff0c\u9ed8\u8ba4\u4e3a ",(0,s.jsx)(r.code,{children:"default"})," \u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-u {username}"})," \u6307\u5b9a\u8fdb\u884c\u8be5\u5bfc\u51fa\u64cd\u4f5c\u7684\u7528\u6237\u7684\u7528\u6237\u540d\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-p {password}"})," \u6307\u5b9a\u8fdb\u884c\u8be5\u5bfc\u51fa\u64cd\u4f5c\u7684\u7528\u6237\u7684\u7528\u6237\u5bc6\u7801\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-s {field_separator}"})," \u6307\u5b9a\u5bfc\u51fa\u6587\u4ef6\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u9017\u53f7\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-f {output_format}"})," \u6307\u5b9a\u5bfc\u51fa\u6570\u636e\u7684\u683c\u5f0f\uff0c",(0,s.jsx)(r.code,{children:"json"}),"\u6216\u8005",(0,s.jsx)(r.code,{children:"csv"}),"\uff0c\u9ed8\u8ba4\u4e3a",(0,s.jsx)(r.code,{children:"csv"}),"\u3002"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"-h"})," \u9664\u4e0a\u8ff0\u6307\u5b9a\u53c2\u6570\u5916\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u8be5\u53c2\u6570\u67e5\u770b\u8be5\u5de5\u5177\u7684\u4f7f\u7528\u5e2e\u52a9\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>d});var s=t(6540);const n={},o=s.createContext(n);function i(e){const r=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/55a612bf.b743861e.js b/assets/js/55a612bf.b743861e.js
new file mode 100644
index 0000000000..6d0c7e38d9
--- /dev/null
+++ b/assets/js/55a612bf.b743861e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8657],{9774:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var n=r(4848),s=r(8453);const i={},o="\u6570\u636e\u5bfc\u51fa",d={id:"utility-tools/data-export",title:"\u6570\u636e\u5bfc\u51fa",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u51fa\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/6.utility-tools/2.data-export.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/data-export",permalink:"/tugraph-db/zh/utility-tools/data-export",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5bfc\u5165",permalink:"/tugraph-db/zh/utility-tools/data-import"},next:{title:"\u5907\u4efd\u6062\u590d",permalink:"/tugraph-db/zh/utility-tools/backup-and-restore"}},c={},l=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5bfc\u51fa\u547d\u4ee4",id:"2\u5bfc\u51fa\u547d\u4ee4",level:2}];function a(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"\u6570\u636e\u5bfc\u51fa",children:"\u6570\u636e\u5bfc\u51fa"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5bfc\u51fa\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,n.jsxs)(t.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 ",(0,n.jsx)(t.code,{children:"lgraph_export"})," \u5de5\u5177\u6765\u5bf9\u5df2\u7ecf\u5b58\u653e\u5728TuGraph\u7684\u56fe\u6570\u636e\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\u3002 ",(0,n.jsx)(t.code,{children:"lgraph_export"})," \u5de5\u5177\u53ef\u4ee5\u5c06\u6307\u5b9a TuGraph \u6570\u636e\u5e93\u7684\u6570\u636e\u4ee5 ",(0,n.jsx)(t.code,{children:"csv"})," \u6216\u8005 ",(0,n.jsx)(t.code,{children:"json"})," \u6587\u4ef6\u5f62\u5f0f\u5bfc\u51fa\u5230\u6307\u5b9a\u76ee\u5f55\uff0c\u540c\u65f6\u5bfc\u51fa\u8fd9\u4e9b\u6570\u636e\u8fdb\u884c\u518d\u5bfc\u5165\u65f6\u9700\u8981\u7684\u914d\u7f6e\u6587\u4ef6 ",(0,n.jsx)(t.code,{children:"import.config"})," \uff0c\u8be6\u7ec6\u63cf\u8ff0\u53ef\u53c2\u89c1",(0,n.jsx)(t.a,{href:"/tugraph-db/zh/utility-tools/data-import",children:"\u914d\u7f6e\u6587\u4ef6"}),"\u3002"]}),"\n",(0,n.jsx)(t.h2,{id:"2\u5bfc\u51fa\u547d\u4ee4",children:"2.\u5bfc\u51fa\u547d\u4ee4"}),"\n",(0,n.jsx)(t.p,{children:"\u8be5\u5de5\u5177\u7684\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ lgraph_export -d {database_dir} -e {export_destination_dir} -g {graph_to_use} -u {username} -p {password} -f {output_format}\n"})}),"\n",(0,n.jsx)(t.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-d {database_dir}"})," \u6307\u5b9a\u9700\u8981\u8fdb\u884c\u6570\u636e\u5bfc\u51fa\u7684\u6570\u636e\u5e93\u6240\u5728\u76ee\u5f55\uff0c\u9ed8\u8ba4\u503c\u4e3a ",(0,n.jsx)(t.code,{children:"./testdb"}),"\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-e {export_destination_dir}"})," \u6307\u5b9a\u5bfc\u51fa\u6587\u4ef6\u5b58\u653e\u7684\u76ee\u5f55\uff0c\u9ed8\u8ba4\u503c\u4e3a ",(0,n.jsx)(t.code,{children:"./exportdir"}),"\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-g {graph_to_use}"})," \u6307\u5b9a\u56fe\u6570\u636e\u5e93\u7684\u79cd\u7c7b\uff0c\u9ed8\u8ba4\u4e3a ",(0,n.jsx)(t.code,{children:"default"})," \u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-u {username}"})," \u6307\u5b9a\u8fdb\u884c\u8be5\u5bfc\u51fa\u64cd\u4f5c\u7684\u7528\u6237\u7684\u7528\u6237\u540d\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-p {password}"})," \u6307\u5b9a\u8fdb\u884c\u8be5\u5bfc\u51fa\u64cd\u4f5c\u7684\u7528\u6237\u7684\u7528\u6237\u5bc6\u7801\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-s {field_separator}"})," \u6307\u5b9a\u5bfc\u51fa\u6587\u4ef6\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u9017\u53f7\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-f {output_format}"})," \u6307\u5b9a\u5bfc\u51fa\u6570\u636e\u7684\u683c\u5f0f\uff0c",(0,n.jsx)(t.code,{children:"json"}),"\u6216\u8005",(0,n.jsx)(t.code,{children:"csv"}),"\uff0c\u9ed8\u8ba4\u4e3a",(0,n.jsx)(t.code,{children:"csv"}),"\u3002"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"-h"})," \u9664\u4e0a\u8ff0\u6307\u5b9a\u53c2\u6570\u5916\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u8be5\u53c2\u6570\u67e5\u770b\u8be5\u5de5\u5177\u7684\u4f7f\u7528\u5e2e\u52a9\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>d});var n=r(6540);const s={},i=n.createContext(s);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5680df66.001c91f3.js b/assets/js/5680df66.001c91f3.js
deleted file mode 100644
index 486197d137..0000000000
--- a/assets/js/5680df66.001c91f3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4432],{3953:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=t(4848),a=t(8453);const r={},o="OlapOnDisk API",s={id:"en-US/source/olap&procedure/olap/olap-on-disk-api",title:"OlapOnDisk API",description:"This document mainly introduces the usage instructions of OlapOnDisk API in detail",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/4.olap-on-disk-api.md",sourceDirName:"en-US/source/9.olap&procedure/2.olap",slug:"/en-US/source/olap&procedure/olap/olap-on-disk-api",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/olap-on-disk-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDB API",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/olap-on-db-api"},next:{title:"Python Olap API",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/python-api"}},l={},c=[{value:"Table of contents",id:"table-of-contents",level:2},{value:"1.Introduction",id:"1introduction",level:3},{value:"2.Algorithm example",id:"2algorithm-example",level:3},{value:"2.1.Head file",id:"21head-file",level:4},{value:"2.2.Configuration class MyConfig",id:"22configuration-class-myconfig",level:4},{value:"2.3.main function",id:"23main-function",level:4},{value:"2.4.bfs algorithm process",id:"24bfs-algorithm-process",level:4},{value:"3.Description of other commonly used functions",id:"3description-of-other-commonly-used-functions",level:3},{value:"3.1.Graph load",id:"31graph-load",level:4},{value:"3.2.Graph write",id:"32graph-write",level:4},{value:"3.3.graph parse function",id:"33graph-parse-function",level:4}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",edgedata:"edgedata",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"olapondisk-api",children:"OlapOnDisk API"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the usage instructions of OlapOnDisk API in detail"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"table-of-contents",children:"Table of contents"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#1introduction",children:"1. Introduction"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#2algorithm-example",children:"2. Algorithm Example"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#21head-file",children:"2.1 header files"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#22configuration-class-myconfig",children:"2.2 Configuration class MyConfig"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#23main-function",children:"2.3 Main function"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#24bfs-algorithm-process",children:"2.4 bfs algorithm flow"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#3description-of-other-commonly-used-functions",children:"3. Function description of other commonly used functions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#31graph-load",children:"3.1 Image Loading"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#32graph-write",children:"3.2 Image writing"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#33graph-parse-function",children:"3.3 Graph Analysis Function"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1introduction",children:"1.Introduction"}),"\n",(0,i.jsx)(n.p,{children:"The Standalone mode of TuGraph can be used to load graph data files, where the sources of graph data files can include text files, BINARY_FILE binary files, and ODPS sources. In this mode, TuGraph can quickly load multiple data sources into a graph, and then run iterative algorithms such as BFS, WCC, SSSP, etc. on the graph, and output the final result to the terminal."}),"\n",(0,i.jsx)(n.p,{children:"In TuGraph, the export and calculation process can be accelerated through parallel processing in memory, so as to achieve near real-time processing and analysis. Compared with traditional methods, it avoids the overhead of data export and storage, and can use compact Graph data structures achieve desirable performance for computation."}),"\n",(0,i.jsx)(n.p,{children:"TuGraph has built-in a large number of common graph analysis algorithms and rich auxiliary interfaces, so users hardly need to implement the specific graph calculation process by themselves. They only need to include the header file (.h) of the corresponding algorithm library when implementing their own stored procedures. To your own program, and link your own dynamic library files in the compilation phase."}),"\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the common interfaces of Standalone, and the auxiliary functions used are mainly contained in the OlapOnDB class. At the same time, in order to help users understand and facilitate, the BFS algorithm is illustrated with examples."}),"\n",(0,i.jsx)(n.h3,{id:"2algorithm-example",children:"2.Algorithm example"}),"\n",(0,i.jsxs)(n.p,{children:["Here, the BFS algorithm is explained in blocks, which are roughly divided into the main function ",(0,i.jsx)(n.code,{children:"main"}),", the BFS algorithm process ",(0,i.jsx)(n.code,{children:"BFSCore"})," function and the configuration class MyConfig."]}),"\n",(0,i.jsx)(n.h4,{id:"21head-file",children:"2.1.Head file"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'#include "olap/olap_on_disk.h" \n#include "tools/json.hpp" //Header files to include when using TuGraph\n#include "./algo.h" //A header file containing various algorithmic logic functions\n'})}),"\n",(0,i.jsx)(n.p,{children:"When using TuGraph to realize the calculation application of graph data files, generally, the StandaloneGraph class object graph is first created, the graph file data is loaded into the graph, and then the graph calculation process is realized by calling the graph logic function, and finally the result of the graph calculation is printed out."}),"\n",(0,i.jsx)(n.h4,{id:"22configuration-class-myconfig",children:"2.2.Configuration class MyConfig"}),"\n",(0,i.jsxs)(n.p,{children:["The MyConfig configuration class function is used to provide the configuration information required for the algorithm logic calculation, inherited from ConfigBase",(0,i.jsx)(n.edgedata,{children:", where EdgeDate can choose Empty (unweighted graph), int (the weight of the weighted graph is an integer) or double (the weight of the weighted graph is double) type."})]}),"\n",(0,i.jsx)(n.p,{children:"The MyConfig configuration class generally depends on the algorithm, and additional configuration information is required as follows:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Parameters required by the algorithm"}),"\n",(0,i.jsx)(n.li,{children:"Algorithm name"}),"\n",(0,i.jsx)(n.li,{children:"Configure the Print function in the class\nOther common members inherit from ConfigBase, please refer to src/olap/olap_config.h for reference."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'class MyConfig : public ConfigBase {\n public:\n\n // The parameters required by the algorithm are initialized\n size_t root = 0;\n std::string name = std::string("bfs");\n void AddParameter(fma_common::Configuration & config) {\n ConfigBase::AddParameter(config);\n config.Add(root, "root", true)\n .Comment("the root of bfs");\n }\n void Print() {\n ConfigBase::Print();\n std::cout << " name: " << name << std::endl;\n if (root != size_t(-1)) {\n std::cout << " root: " << root << std::endl;\n } else {\n std::cout << " root: UNSET" << std::endl;\n }\n }\n // The configuration file accepts command line parameters. This use case will sequentially read the parameters when calling the algorithm from the command line. The value specified by the user is preferred. If the user does not specify it, the default parameter is selected.\n MyConfig(int &argc, char** &argv): ConfigBase(argc, argv) {\n fma_common::Configuration config;\n AddParameter(config);\n config.ExitAfterHelp(true);\n config.ParseAndFinalize(argc, argv);\n Print();\n }\n};\n'})}),"\n",(0,i.jsx)(n.h4,{id:"23main-function",children:"2.3.main function"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'int main(int argc, char** argv) {\n double start_time;\n // Statistical memory consumption class MemUsage instantiation\n MemUsage memUsage;\n memUsage.startMemRecord();\n\n // prepare\n start_time = get_time();\n // Configuration class MyConfig instantiation\n MyConfig config(argc, argv);\n size_t root_vid = config.root;\n // OlapOnDisk class instantiation\n OlapOnDisk graph;\n graph.Load(config, DUAL_DIRECTION);\n memUsage.print();\n memUsage.reset();\n // Statistical graph loading time consumption\n auto prepare_cost = get_time() - start_time;\n printf("prepare_cost = %.2lf(s)\\n", prepare_cost);\n\n // core\n start_time = get_time();\n // Create an array to count whether a node has been traversed\n auto parent = graph.AllocVertexArray();\n // Breadth-first search algorithm, returns the number of nodes connected to the root_vid root node in the graph\n size_t count = BFSCore(graph, root_vid, parent);\n memUsage.print();\n memUsage.reset();\n auto core_cost = get_time() - start_time;\n printf("core_cost = %.2lf(s)\\n", core_cost);\n\n // output\n start_time = get_time();\n // Print relevant information to the terminal\n printf("found_vertices = %ld\\n", count);\n auto output_cost = get_time() - start_time;\n printf("output_cost = %.2lf(s)\\n", output_cost);\n\n printf("total_cost = %.2lf(s)\\n", prepare_cost + core_cost + output_cost);\n printf("DONE.");\n\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h4,{id:"24bfs-algorithm-process",children:"2.4.bfs algorithm process"}),"\n",(0,i.jsxs)(n.p,{children:["The main process of ",(0,i.jsx)(n.code,{children:"bfs"})," has two input parameters, the snapshot class (subgraph) and the number of iterations. The overall process can be divided into the following steps:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Relevant definitions and initialization of data structures"}),"\n",(0,i.jsx)(n.li,{children:"Use the batch function to perform cyclic calculations on each node, find all nodes adjacent to the current node in each round, and exchange them when the round ends."}),"\n",(0,i.jsx)(n.li,{children:"Until all nodes are found, return the number of nodes discovered_vertices."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'size_t BFSCore(Graph& graph, size_t root_vid, ParallelVector& parent){\n\n size_t root = root_vid;\n auto active_in = graph.AllocVertexSubset(); //Allocate an array, active_in is used to store the nodes found in the previous cycle stage\n active_in.Add(root); //Add the root node to the array\n auto active_out = graph.AllocVertexSubset(); //Allocate the array active_out to store the nodes found in the current cycle stage\n parent.Fill((size_t)-1); //Assign a value of -1 to the node in the parent array, -1 means not found\n parent[root] = root;\n size_t num_activations = 1; //Indicates the number of nodes found in the current loop phase\n size_t discovered_vertices = 0; //Indicates the total number of nodes found in the current cycle phase\n\n for (int ii = 0; num_activations != 0; ii++) { //num_activations indicates the number of nodes found in the current loop phase\n printf("activates(%d) <= %lu\\n", ii, num_activations);\n discovered_vertices += num_activations; //discovered_vertices indicates the total number of nodes found in the current cycle phase\n active_out.Clear();\n num_activations = graph.ProcessVertexActive(\n [&](size_t vi) {\n size_t num_activations = 0;\n for (auto& edge : graph.OutEdges(vi)) { //Each cycle starts from the root node, finds adjacent adjacent nodes, changes its parent value, and operates num_activations+1\n size_t dst = edge.neighbour;\n if (parent[dst] == (size_t)-1) {\n auto lock = graph.GuardVertexLock(dst);\n if (parent[dst] == (size_t)-1) {\n parent[dst] = vi;\n num_activations += 1;\n active_out.Add(dst); //Store the nodes found in the current loop phase\n }\n }\n }\n return num_activations;\n },\n active_in);\n active_in.Swap(active_out);\n }\n // return all nodes\n return discovered_vertices;\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"3description-of-other-commonly-used-functions",children:"3.Description of other commonly used functions"}),"\n",(0,i.jsx)(n.h4,{id:"31graph-load",children:"3.1.Graph load"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph-StandaloneThe loading sources of graph data files are mainly divided into three categories: text files, binary files, and ODPS. The binary file is a file in which the binary representation of the edge data is arranged in order, which can save a lot of storage space. Its loading function is divided into three types, namely:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void Load(ConfigBase config,EdgeDirectionPolicy edge_direction_policy = DUAL_DIRECTION)"}),"\uff1aThe loading method of the graph data file contains two parameters, and their meanings represent respectively"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"}),"\uff1aConfiguration parameters to load. This parameter saves the general information of the graph (such as data source, algorithm name, data input and output paths, number of vertices, etc.) and different information parameters configured according to different data sources and different algorithms."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_direction_policy"}),"\uff1aSpecifies whether the graph is directed or undirected, including three modes: DUAL_DIRECTION, MAKE_SYMMETRIC, and INPUT_SYMMETRIC. Among them, DUAL_DIRECTION is the default graph loading method.\nDUAL_DIRECTION : The input file is an asymmetric graph and the loaded graph is an asymmetric graph.\nMAKE_SYMMETRIC : The input file is an asymmetric graph and the loaded graph is a symmetric graph.\nINPUT_SYMMETRIC : The input file is a symmetric graph and the loaded graph is a symmetric graph.\nFor details, see ",(0,i.jsx)(n.code,{children:"enum EdgeDirectionPolicy"})," in the olap_config.h file under the lgraph folder."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void LoadVertexArrayTxt(V * array, std::string path, std::function &)> parse_line)"}),"\uff1aLoad the vertices in the file into an array in the order of their ids. The meanings of each parameter are:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array"}),"\uff1aarray of data to be read"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"path"}),"\uff1aThe path to read the file, each line in the file represents a pair of vertex"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"parse_line"}),"\uff1aA user-defined function that tells the system how to parse a line of text data into a vertex pair."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"32graph-write",children:"3.2.Graph write"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"void Write(ConfigBase & config, ParallelVector& array, size_t array_size, std::string name, std::function filter_output = filter_output_default)"}),"\uff1aWrite the data in the array back to the file, and the meanings of each parameter are:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"}),"\uff1aConfiguration parameters to load. This parameter saves the general information of the graph (such as data source, algorithm name, data input and output paths, number of vertices, etc.) and different information parameters configured according to different data sources and different algorithms."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array"}),"\uff1aarray of data to be written"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array_size"}),"\uff1aThe length of the number of data to be written"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"name"}),"\uff1aalgorithm name"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"filter_output"}),"\uff1aWrite data rule function, the data to be written needs to meet the requirements of this function."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"33graph-parse-function",children:"3.3.graph parse function"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::tuple parse_line_unweighted(const char *p, const char *end, EdgeUnit &e)"}),"\uff1aParse the graph data file, and load the graph as an unweighted graph."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::tuple parse_line_weighted(const char* p, const char* end, EdgeUnit& e)"}),"\uff1aParse the graph data file, load the graph as a weighted graph, and specify the weight data type by modifying ",(0,i.jsx)(n.edgedata,{children:"."})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"This function can be specified through the constructor parse_line when the MyConfig class is defined."})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var i=t(6540);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5680df66.7884e317.js b/assets/js/5680df66.7884e317.js
new file mode 100644
index 0000000000..8725aab3b4
--- /dev/null
+++ b/assets/js/5680df66.7884e317.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4432],{419:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var i=t(4848),a=t(8453);const r={},o="OlapOnDisk API",s={id:"olap&procedure/olap/olap-on-disk-api",title:"OlapOnDisk API",description:"This document mainly introduces the usage instructions of OlapOnDisk API in detail",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/4.olap-on-disk-api.md",sourceDirName:"9.olap&procedure/2.olap",slug:"/olap&procedure/olap/olap-on-disk-api",permalink:"/tugraph-db/en/olap&procedure/olap/olap-on-disk-api",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDB API",permalink:"/tugraph-db/en/olap&procedure/olap/olap-on-db-api"},next:{title:"Python Olap API",permalink:"/tugraph-db/en/olap&procedure/olap/python-api"}},l={},d=[{value:"Table of contents",id:"table-of-contents",level:2},{value:"1.Introduction",id:"1introduction",level:3},{value:"2.Algorithm example",id:"2algorithm-example",level:3},{value:"2.1.Head file",id:"21head-file",level:4},{value:"2.2.Configuration class MyConfig",id:"22configuration-class-myconfig",level:4},{value:"2.3.main function",id:"23main-function",level:4},{value:"2.4.bfs algorithm process",id:"24bfs-algorithm-process",level:4},{value:"3.Description of other commonly used functions",id:"3description-of-other-commonly-used-functions",level:3},{value:"3.1.Graph load",id:"31graph-load",level:4},{value:"3.2.Graph write",id:"32graph-write",level:4},{value:"3.3.graph parse function",id:"33graph-parse-function",level:4}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",edgedata:"edgedata",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"olapondisk-api",children:"OlapOnDisk API"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the usage instructions of OlapOnDisk API in detail"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"table-of-contents",children:"Table of contents"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#1introduction",children:"1. Introduction"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#2algorithm-example",children:"2. Algorithm Example"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#21head-file",children:"2.1 header files"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#22configuration-class-myconfig",children:"2.2 Configuration class MyConfig"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#23main-function",children:"2.3 Main function"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#24bfs-algorithm-process",children:"2.4 bfs algorithm flow"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#3description-of-other-commonly-used-functions",children:"3. Function description of other commonly used functions"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#31graph-load",children:"3.1 Image Loading"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#32graph-write",children:"3.2 Image writing"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#33graph-parse-function",children:"3.3 Graph Analysis Function"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"1introduction",children:"1.Introduction"}),"\n",(0,i.jsx)(n.p,{children:"The Standalone mode of TuGraph can be used to load graph data files, where the sources of graph data files can include text files, BINARY_FILE binary files, and ODPS sources. In this mode, TuGraph can quickly load multiple data sources into a graph, and then run iterative algorithms such as BFS, WCC, SSSP, etc. on the graph, and output the final result to the terminal."}),"\n",(0,i.jsx)(n.p,{children:"In TuGraph, the export and calculation process can be accelerated through parallel processing in memory, so as to achieve near real-time processing and analysis. Compared with traditional methods, it avoids the overhead of data export and storage, and can use compact Graph data structures achieve desirable performance for computation."}),"\n",(0,i.jsx)(n.p,{children:"TuGraph has built-in a large number of common graph analysis algorithms and rich auxiliary interfaces, so users hardly need to implement the specific graph calculation process by themselves. They only need to include the header file (.h) of the corresponding algorithm library when implementing their own stored procedures. To your own program, and link your own dynamic library files in the compilation phase."}),"\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the common interfaces of Standalone, and the auxiliary functions used are mainly contained in the OlapOnDB class. At the same time, in order to help users understand and facilitate, the BFS algorithm is illustrated with examples."}),"\n",(0,i.jsx)(n.h3,{id:"2algorithm-example",children:"2.Algorithm example"}),"\n",(0,i.jsxs)(n.p,{children:["Here, the BFS algorithm is explained in blocks, which are roughly divided into the main function ",(0,i.jsx)(n.code,{children:"main"}),", the BFS algorithm process ",(0,i.jsx)(n.code,{children:"BFSCore"})," function and the configuration class MyConfig."]}),"\n",(0,i.jsx)(n.h4,{id:"21head-file",children:"2.1.Head file"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'#include "olap/olap_on_disk.h" \n#include "tools/json.hpp" //Header files to include when using TuGraph\n#include "./algo.h" //A header file containing various algorithmic logic functions\n'})}),"\n",(0,i.jsx)(n.p,{children:"When using TuGraph to realize the calculation application of graph data files, generally, the StandaloneGraph class object graph is first created, the graph file data is loaded into the graph, and then the graph calculation process is realized by calling the graph logic function, and finally the result of the graph calculation is printed out."}),"\n",(0,i.jsx)(n.h4,{id:"22configuration-class-myconfig",children:"2.2.Configuration class MyConfig"}),"\n",(0,i.jsxs)(n.p,{children:["The MyConfig configuration class function is used to provide the configuration information required for the algorithm logic calculation, inherited from ConfigBase",(0,i.jsx)(n.edgedata,{children:", where EdgeDate can choose Empty (unweighted graph), int (the weight of the weighted graph is an integer) or double (the weight of the weighted graph is double) type."})]}),"\n",(0,i.jsx)(n.p,{children:"The MyConfig configuration class generally depends on the algorithm, and additional configuration information is required as follows:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Parameters required by the algorithm"}),"\n",(0,i.jsx)(n.li,{children:"Algorithm name"}),"\n",(0,i.jsx)(n.li,{children:"Configure the Print function in the class\nOther common members inherit from ConfigBase, please refer to src/olap/olap_config.h for reference."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'class MyConfig : public ConfigBase {\n public:\n\n // The parameters required by the algorithm are initialized\n size_t root = 0;\n std::string name = std::string("bfs");\n void AddParameter(fma_common::Configuration & config) {\n ConfigBase::AddParameter(config);\n config.Add(root, "root", true)\n .Comment("the root of bfs");\n }\n void Print() {\n ConfigBase::Print();\n std::cout << " name: " << name << std::endl;\n if (root != size_t(-1)) {\n std::cout << " root: " << root << std::endl;\n } else {\n std::cout << " root: UNSET" << std::endl;\n }\n }\n // The configuration file accepts command line parameters. This use case will sequentially read the parameters when calling the algorithm from the command line. The value specified by the user is preferred. If the user does not specify it, the default parameter is selected.\n MyConfig(int &argc, char** &argv): ConfigBase(argc, argv) {\n fma_common::Configuration config;\n AddParameter(config);\n config.ExitAfterHelp(true);\n config.ParseAndFinalize(argc, argv);\n Print();\n }\n};\n'})}),"\n",(0,i.jsx)(n.h4,{id:"23main-function",children:"2.3.main function"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'int main(int argc, char** argv) {\n double start_time;\n // Statistical memory consumption class MemUsage instantiation\n MemUsage memUsage;\n memUsage.startMemRecord();\n\n // prepare\n start_time = get_time();\n // Configuration class MyConfig instantiation\n MyConfig config(argc, argv);\n size_t root_vid = config.root;\n // OlapOnDisk class instantiation\n OlapOnDisk graph;\n graph.Load(config, DUAL_DIRECTION);\n memUsage.print();\n memUsage.reset();\n // Statistical graph loading time consumption\n auto prepare_cost = get_time() - start_time;\n printf("prepare_cost = %.2lf(s)\\n", prepare_cost);\n\n // core\n start_time = get_time();\n // Create an array to count whether a node has been traversed\n auto parent = graph.AllocVertexArray();\n // Breadth-first search algorithm, returns the number of nodes connected to the root_vid root node in the graph\n size_t count = BFSCore(graph, root_vid, parent);\n memUsage.print();\n memUsage.reset();\n auto core_cost = get_time() - start_time;\n printf("core_cost = %.2lf(s)\\n", core_cost);\n\n // output\n start_time = get_time();\n // Print relevant information to the terminal\n printf("found_vertices = %ld\\n", count);\n auto output_cost = get_time() - start_time;\n printf("output_cost = %.2lf(s)\\n", output_cost);\n\n printf("total_cost = %.2lf(s)\\n", prepare_cost + core_cost + output_cost);\n printf("DONE.");\n\n return 0;\n}\n'})}),"\n",(0,i.jsx)(n.h4,{id:"24bfs-algorithm-process",children:"2.4.bfs algorithm process"}),"\n",(0,i.jsxs)(n.p,{children:["The main process of ",(0,i.jsx)(n.code,{children:"bfs"})," has two input parameters, the snapshot class (subgraph) and the number of iterations. The overall process can be divided into the following steps:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Relevant definitions and initialization of data structures"}),"\n",(0,i.jsx)(n.li,{children:"Use the batch function to perform cyclic calculations on each node, find all nodes adjacent to the current node in each round, and exchange them when the round ends."}),"\n",(0,i.jsx)(n.li,{children:"Until all nodes are found, return the number of nodes discovered_vertices."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-C++",children:'size_t BFSCore(Graph& graph, size_t root_vid, ParallelVector& parent){\n\n size_t root = root_vid;\n auto active_in = graph.AllocVertexSubset(); //Allocate an array, active_in is used to store the nodes found in the previous cycle stage\n active_in.Add(root); //Add the root node to the array\n auto active_out = graph.AllocVertexSubset(); //Allocate the array active_out to store the nodes found in the current cycle stage\n parent.Fill((size_t)-1); //Assign a value of -1 to the node in the parent array, -1 means not found\n parent[root] = root;\n size_t num_activations = 1; //Indicates the number of nodes found in the current loop phase\n size_t discovered_vertices = 0; //Indicates the total number of nodes found in the current cycle phase\n\n for (int ii = 0; num_activations != 0; ii++) { //num_activations indicates the number of nodes found in the current loop phase\n printf("activates(%d) <= %lu\\n", ii, num_activations);\n discovered_vertices += num_activations; //discovered_vertices indicates the total number of nodes found in the current cycle phase\n active_out.Clear();\n num_activations = graph.ProcessVertexActive(\n [&](size_t vi) {\n size_t num_activations = 0;\n for (auto& edge : graph.OutEdges(vi)) { //Each cycle starts from the root node, finds adjacent adjacent nodes, changes its parent value, and operates num_activations+1\n size_t dst = edge.neighbour;\n if (parent[dst] == (size_t)-1) {\n auto lock = graph.GuardVertexLock(dst);\n if (parent[dst] == (size_t)-1) {\n parent[dst] = vi;\n num_activations += 1;\n active_out.Add(dst); //Store the nodes found in the current loop phase\n }\n }\n }\n return num_activations;\n },\n active_in);\n active_in.Swap(active_out);\n }\n // return all nodes\n return discovered_vertices;\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"3description-of-other-commonly-used-functions",children:"3.Description of other commonly used functions"}),"\n",(0,i.jsx)(n.h4,{id:"31graph-load",children:"3.1.Graph load"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph-StandaloneThe loading sources of graph data files are mainly divided into three categories: text files, binary files, and ODPS. The binary file is a file in which the binary representation of the edge data is arranged in order, which can save a lot of storage space. Its loading function is divided into three types, namely:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void Load(ConfigBase config,EdgeDirectionPolicy edge_direction_policy = DUAL_DIRECTION)"}),"\uff1aThe loading method of the graph data file contains two parameters, and their meanings represent respectively"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"}),"\uff1aConfiguration parameters to load. This parameter saves the general information of the graph (such as data source, algorithm name, data input and output paths, number of vertices, etc.) and different information parameters configured according to different data sources and different algorithms."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_direction_policy"}),"\uff1aSpecifies whether the graph is directed or undirected, including three modes: DUAL_DIRECTION, MAKE_SYMMETRIC, and INPUT_SYMMETRIC. Among them, DUAL_DIRECTION is the default graph loading method.\nDUAL_DIRECTION : The input file is an asymmetric graph and the loaded graph is an asymmetric graph.\nMAKE_SYMMETRIC : The input file is an asymmetric graph and the loaded graph is a symmetric graph.\nINPUT_SYMMETRIC : The input file is a symmetric graph and the loaded graph is a symmetric graph.\nFor details, see ",(0,i.jsx)(n.code,{children:"enum EdgeDirectionPolicy"})," in the olap_config.h file under the lgraph folder."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void LoadVertexArrayTxt(V * array, std::string path, std::function &)> parse_line)"}),"\uff1aLoad the vertices in the file into an array in the order of their ids. The meanings of each parameter are:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array"}),"\uff1aarray of data to be read"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"path"}),"\uff1aThe path to read the file, each line in the file represents a pair of vertex"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"parse_line"}),"\uff1aA user-defined function that tells the system how to parse a line of text data into a vertex pair."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"32graph-write",children:"3.2.Graph write"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"void Write(ConfigBase & config, ParallelVector& array, size_t array_size, std::string name, std::function filter_output = filter_output_default)"}),"\uff1aWrite the data in the array back to the file, and the meanings of each parameter are:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"}),"\uff1aConfiguration parameters to load. This parameter saves the general information of the graph (such as data source, algorithm name, data input and output paths, number of vertices, etc.) and different information parameters configured according to different data sources and different algorithms."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array"}),"\uff1aarray of data to be written"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"array_size"}),"\uff1aThe length of the number of data to be written"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"name"}),"\uff1aalgorithm name"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"filter_output"}),"\uff1aWrite data rule function, the data to be written needs to meet the requirements of this function."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"33graph-parse-function",children:"3.3.graph parse function"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::tuple parse_line_unweighted(const char *p, const char *end, EdgeUnit &e)"}),"\uff1aParse the graph data file, and load the graph as an unweighted graph."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::tuple parse_line_weighted(const char* p, const char* end, EdgeUnit& e)"}),"\uff1aParse the graph data file, load the graph as a weighted graph, and specify the weight data type by modifying ",(0,i.jsx)(n.edgedata,{children:"."})]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"This function can be specified through the constructor parse_line when the MyConfig class is defined."})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var i=t(6540);const a={},r=i.createContext(a);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/58b10881.c80ceb4f.js b/assets/js/58b10881.c80ceb4f.js
deleted file mode 100644
index bd78974721..0000000000
--- a/assets/js/58b10881.c80ceb4f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1998],{3887:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>t,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var r=n(4848),a=n(8453);const o={},i="\u5fd8\u8bb0'admin'\u5bc6\u7801",c={id:"zh-CN/source/permission/reset_admin_password",title:"\u5fd8\u8bb0'admin'\u5bc6\u7801",description:"TuGraph \u63d0\u4f9b\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u529f\u80fd\uff0c\u5f53\u7528\u6237\u5fd8\u8bb0\u7ba1\u7406\u8005\u8d26\u53f7admin\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u91cd\u7f6e\u5bc6\u7801\u7684\u65b9\u5f0f\u6765\u4fee\u6539\u5bc6\u7801\u3002",source:"@site/../docs/zh-CN/source/10.permission/3.reset_admin_password.md",sourceDirName:"zh-CN/source/10.permission",slug:"/zh-CN/source/permission/reset_admin_password",permalink:"/tugraph-db/zh-CN/source/permission/reset_admin_password",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Token\u4f7f\u7528\u8bf4\u660e",permalink:"/tugraph-db/zh-CN/source/permission/token"},next:{title:"\u8fd0\u7ef4\u76d1\u63a7",permalink:"/tugraph-db/zh-CN/source/permission/monitoring"}},t={},d=[{value:"1.\u91cd\u7f6e\u5bc6\u7801",id:"1\u91cd\u7f6e\u5bc6\u7801",level:2},{value:"2.\u91cd\u542f\u670d\u52a1",id:"2\u91cd\u542f\u670d\u52a1",level:2}];function l(e){const s={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"\u5fd8\u8bb0admin\u5bc6\u7801",children:"\u5fd8\u8bb0'admin'\u5bc6\u7801"})}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["TuGraph \u63d0\u4f9b\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u529f\u80fd\uff0c\u5f53\u7528\u6237\u5fd8\u8bb0\u7ba1\u7406\u8005\u8d26\u53f7",(0,r.jsx)(s.code,{children:"admin"}),"\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u91cd\u7f6e\u5bc6\u7801\u7684\u65b9\u5f0f\u6765\u4fee\u6539\u5bc6\u7801\u3002"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"1\u91cd\u7f6e\u5bc6\u7801",children:"1.\u91cd\u7f6e\u5bc6\u7801"}),"\n",(0,r.jsx)(s.p,{children:"\u9996\u5148\uff0c\u9700\u8981\u505c\u6b62TuGraph\u670d\u52a1\u7aef\u3002\u5982\u679c\u662f\u5bb9\u5668\u5185\u90e8\u7f72\uff0c\u9700\u8981\u8fdb\u5165\u5bb9\u5668\u4e2d\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"lgraph_server -c /usr/local/etc/lgraph.json -d stop\n"})}),"\n",(0,r.jsx)(s.p,{children:"\u518d\u6b21\u542f\u52a8TuGraph\u670d\u52a1\u7aef\u65f6\uff0c\u9700\u8981\u6dfb\u52a0\u5982\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"--reset_admin_password 1\n"})}),"\n",(0,r.jsx)(s.p,{children:"\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:'lgraph_server -c /usr/local/etc/lgraph.json --reset_admin_password 1 --log_dir ""\n'})}),"\n",(0,r.jsxs)(s.p,{children:["\u8fd9\u4e00\u64cd\u4f5c\u53ef\u4ee5\u4f7f\u5f97TuGraph\u670d\u52a1\u7aef\u5728\u542f\u52a8\u65f6\uff0c\u91cd\u7f6e\u7ba1\u7406\u8005",(0,r.jsx)(s.code,{children:"admin"}),"\u7684\u5bc6\u7801\u4e3a\u9ed8\u8ba4\u5bc6\u7801\uff1a",(0,r.jsx)(s.code,{children:"73@TuGraph"}),"\u3002\n\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\u4f1a\u7ed9\u51fa\u76f8\u5173\u4fe1\u606f\u201cReset admin password successfully\u201d\u5e76\u5173\u95ed\u5f53\u524d\u670d\u52a1\u7aef\u8fdb\u7a0b\u3002"]}),"\n",(0,r.jsx)(s.h2,{id:"2\u91cd\u542f\u670d\u52a1",children:"2.\u91cd\u542f\u670d\u52a1"}),"\n",(0,r.jsx)(s.p,{children:"\u7528\u6237\u9700\u8981\u4ee5\u6b63\u5e38\u6a21\u5f0f\u91cd\u65b0\u542f\u52a8\u670d\u52a1\u7aef\uff0c\u7136\u540e\u4f7f\u7528\u9ed8\u8ba4\u8d26\u53f7\u5bc6\u7801\u8fdb\u884c\u767b\u5f55\uff0c\u767b\u5f55\u540e\u91cd\u65b0\u8bbe\u7f6e\u5bc6\u7801\u5373\u53ef\u6b63\u5e38\u4f7f\u7528\u3002\n\u91cd\u65b0\u542f\u52a8TuGraph\u670d\u52a1\u7684\u547d\u4ee4\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"lgraph_server -c /usr/local/etc/lgraph.json -d start\n"})})]})}function h(e={}){const{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,s,n)=>{n.d(s,{R:()=>i,x:()=>c});var r=n(6540);const a={},o=r.createContext(a);function i(e){const s=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(o.Provider,{value:s},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/58b10881.e4cf668d.js b/assets/js/58b10881.e4cf668d.js
new file mode 100644
index 0000000000..8c3cf4cf1a
--- /dev/null
+++ b/assets/js/58b10881.e4cf668d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1998],{3887:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=s(4848),a=s(8453);const i={},t="\u5fd8\u8bb0'admin'\u5bc6\u7801",o={id:"permission/reset_admin_password",title:"\u5fd8\u8bb0'admin'\u5bc6\u7801",description:"TuGraph \u63d0\u4f9b\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u529f\u80fd\uff0c\u5f53\u7528\u6237\u5fd8\u8bb0\u7ba1\u7406\u8005\u8d26\u53f7admin\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u91cd\u7f6e\u5bc6\u7801\u7684\u65b9\u5f0f\u6765\u4fee\u6539\u5bc6\u7801\u3002",source:"@site/../docs/zh-CN/source/10.permission/3.reset_admin_password.md",sourceDirName:"10.permission",slug:"/permission/reset_admin_password",permalink:"/tugraph-db/zh/permission/reset_admin_password",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Token\u4f7f\u7528\u8bf4\u660e",permalink:"/tugraph-db/zh/permission/token"},next:{title:"\u8fd0\u7ef4\u76d1\u63a7",permalink:"/tugraph-db/zh/permission/monitoring"}},d={},c=[{value:"1.\u91cd\u7f6e\u5bc6\u7801",id:"1\u91cd\u7f6e\u5bc6\u7801",level:2},{value:"2.\u91cd\u542f\u670d\u52a1",id:"2\u91cd\u542f\u670d\u52a1",level:2}];function l(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u5fd8\u8bb0admin\u5bc6\u7801",children:"\u5fd8\u8bb0'admin'\u5bc6\u7801"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["TuGraph \u63d0\u4f9b\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u529f\u80fd\uff0c\u5f53\u7528\u6237\u5fd8\u8bb0\u7ba1\u7406\u8005\u8d26\u53f7",(0,r.jsx)(n.code,{children:"admin"}),"\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7\u91cd\u7f6e\u5bc6\u7801\u7684\u65b9\u5f0f\u6765\u4fee\u6539\u5bc6\u7801\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"1\u91cd\u7f6e\u5bc6\u7801",children:"1.\u91cd\u7f6e\u5bc6\u7801"}),"\n",(0,r.jsx)(n.p,{children:"\u9996\u5148\uff0c\u9700\u8981\u505c\u6b62TuGraph\u670d\u52a1\u7aef\u3002\u5982\u679c\u662f\u5bb9\u5668\u5185\u90e8\u7f72\uff0c\u9700\u8981\u8fdb\u5165\u5bb9\u5668\u4e2d\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"lgraph_server -c /usr/local/etc/lgraph.json -d stop\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u518d\u6b21\u542f\u52a8TuGraph\u670d\u52a1\u7aef\u65f6\uff0c\u9700\u8981\u6dfb\u52a0\u5982\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"--reset_admin_password 1\n"})}),"\n",(0,r.jsx)(n.p,{children:"\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'lgraph_server -c /usr/local/etc/lgraph.json --reset_admin_password 1 --log_dir ""\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u8fd9\u4e00\u64cd\u4f5c\u53ef\u4ee5\u4f7f\u5f97TuGraph\u670d\u52a1\u7aef\u5728\u542f\u52a8\u65f6\uff0c\u91cd\u7f6e\u7ba1\u7406\u8005",(0,r.jsx)(n.code,{children:"admin"}),"\u7684\u5bc6\u7801\u4e3a\u9ed8\u8ba4\u5bc6\u7801\uff1a",(0,r.jsx)(n.code,{children:"73@TuGraph"}),"\u3002\n\u5bc6\u7801\u91cd\u7f6e\u6210\u529f\u4f1a\u7ed9\u51fa\u76f8\u5173\u4fe1\u606f\u201cReset admin password successfully\u201d\u5e76\u5173\u95ed\u5f53\u524d\u670d\u52a1\u7aef\u8fdb\u7a0b\u3002"]}),"\n",(0,r.jsx)(n.h2,{id:"2\u91cd\u542f\u670d\u52a1",children:"2.\u91cd\u542f\u670d\u52a1"}),"\n",(0,r.jsx)(n.p,{children:"\u7528\u6237\u9700\u8981\u4ee5\u6b63\u5e38\u6a21\u5f0f\u91cd\u65b0\u542f\u52a8\u670d\u52a1\u7aef\uff0c\u7136\u540e\u4f7f\u7528\u9ed8\u8ba4\u8d26\u53f7\u5bc6\u7801\u8fdb\u884c\u767b\u5f55\uff0c\u767b\u5f55\u540e\u91cd\u65b0\u8bbe\u7f6e\u5bc6\u7801\u5373\u53ef\u6b63\u5e38\u4f7f\u7528\u3002\n\u91cd\u65b0\u542f\u52a8TuGraph\u670d\u52a1\u7684\u547d\u4ee4\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"lgraph_server -c /usr/local/etc/lgraph.json -d start\n"})})]})}function p(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>o});var r=s(6540);const a={},i=r.createContext(a);function t(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/596e431a.12ae64d6.js b/assets/js/596e431a.12ae64d6.js
new file mode 100644
index 0000000000..91f67401a3
--- /dev/null
+++ b/assets/js/596e431a.12ae64d6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3891],{6750:(n,e,d)=>{d.r(e),d.d(e,{assets:()=>t,contentTitle:()=>l,default:()=>j,frontMatter:()=>r,metadata:()=>h,toc:()=>c});var i=d(4848),s=d(8453);const r={},l="TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",h={id:"introduction/schema",title:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",description:"1. \u6570\u636e\u6a21\u578b",source:"@site/../docs/zh-CN/source/2.introduction/4.schema.md",sourceDirName:"2.introduction",slug:"/introduction/schema",permalink:"/tugraph-db/zh/introduction/schema",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4ec0\u4e48\u662fTuGraph",permalink:"/tugraph-db/zh/introduction/what-is-tugraph"},next:{title:"\u6027\u80fd\u4f18\u5148",permalink:"/tugraph-db/zh/introduction/characteristics/performance-oriented"}},t={},c=[{value:"1. \u6570\u636e\u6a21\u578b",id:"1-\u6570\u636e\u6a21\u578b",level:2},{value:"1.1. \u56fe\u6a21\u578b",id:"11-\u56fe\u6a21\u578b",level:3},{value:"1.2. \u6570\u636e\u7c7b\u578b",id:"12-\u6570\u636e\u7c7b\u578b",level:3},{value:"1.3. \u7d22\u5f15",id:"13-\u7d22\u5f15",level:3},{value:"1.3.1 \u666e\u901a\u7d22\u5f15",id:"131-\u666e\u901a\u7d22\u5f15",level:4},{value:"1.3.1.1 \u70b9\u7d22\u5f15",id:"1311-\u70b9\u7d22\u5f15",level:5},{value:"1.3.1.1.1 unique\u7d22\u5f15",id:"13111-unique\u7d22\u5f15",level:6},{value:"1.3.1.1.2 non_unique\u7d22\u5f15",id:"13112-non_unique\u7d22\u5f15",level:6},{value:"1.3.1.2 \u8fb9\u7d22\u5f15",id:"1312-\u8fb9\u7d22\u5f15",level:5},{value:"1.3.1.2.1 unique\u7d22\u5f15",id:"13121-unique\u7d22\u5f15",level:6},{value:"1.3.1.2.2 pair_unique\u7d22\u5f15",id:"13122-pair_unique\u7d22\u5f15",level:6},{value:"1.3.1.2.3 non_unique\u7d22\u5f15",id:"13123-non_unique\u7d22\u5f15",level:6},{value:"1.3.2 \u7ec4\u5408\u7d22\u5f15",id:"132-\u7ec4\u5408\u7d22\u5f15",level:4},{value:"1.3.2.1 \u552f\u4e00\u7d22\u5f15",id:"1321-\u552f\u4e00\u7d22\u5f15",level:5},{value:"1.3.2.2 \u975e\u552f\u4e00\u7d22\u5f15",id:"1322-\u975e\u552f\u4e00\u7d22\u5f15",level:5},{value:"2. \u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u3001\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",id:"2-\u56fe\u9879\u76ee\u70b9\u8fb9\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",level:2},{value:"2.1 \u547d\u540d\u89c4\u5219",id:"21-\u547d\u540d\u89c4\u5219",level:3},{value:"2.2 \u4f7f\u7528\u9650\u5236",id:"22-\u4f7f\u7528\u9650\u5236",level:3},{value:"2.3 \u547d\u540d\u5efa\u8bae",id:"23-\u547d\u540d\u5efa\u8bae",level:3}];function x(n){const e={code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"tugraph\u56fe\u6a21\u578b\u8bf4\u660e",children:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e"})}),"\n",(0,i.jsx)(e.h2,{id:"1-\u6570\u636e\u6a21\u578b",children:"1. \u6570\u636e\u6a21\u578b"}),"\n",(0,i.jsx)(e.h3,{id:"11-\u56fe\u6a21\u578b",children:"1.1. \u56fe\u6a21\u578b"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u662f\u4e00\u4e2a\u5177\u5907\u591a\u56fe\u80fd\u529b\u7684\u5f3a\u7c7b\u578b\u3001\u6709\u5411\u5c5e\u6027\u56fe\u6570\u636e\u5e93\u3002"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u56fe\u9879\u76ee\uff1a\u6bcf\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u53ef\u4ee5\u627f\u8f7d\u591a\u4e2a\u56fe\u9879\u76ee\uff08\u591a\u56fe\uff09\uff0c\u6bcf\u4e2a\u56fe\u9879\u76ee\u53ef\u4ee5\u6709\u81ea\u5df1\u7684\u8bbf\u95ee\u63a7\u5236\u914d\u7f6e\uff0c\u6570\u636e\u5e93\u7ba1\u7406\u5458\u53ef\u4ee5\u521b\u5efa\u6216\u5220\u9664\u6307\u5b9a\u56fe\u9879\u76ee\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["\u70b9\uff1a\u6307\u5b9e\u4f53\uff0c\u4e00\u822c\u7528\u4e8e\u8868\u8fbe\u73b0\u5b9e\u4e2d\u7684\u5b9e\u4f53\u5bf9\u8c61\uff0c\u5982\u4e00\u90e8\u7535\u5f71\u3001\u4e00\u4e2a\u6f14\u5458\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u4e3b\u952e\uff1a\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u70b9\u6570\u636e\u4e3b\u952e\uff0c\u9ed8\u8ba4\u552f\u4e00\u7d22\u5f15\uff0c\u5728\u5bf9\u5e94\u7684\u70b9\u7c7b\u578b\u4e2d\u552f\u4e00\u3002"}),"\n",(0,i.jsx)(e.li,{children:"VID\uff1a\u70b9\u5728\u5b58\u50a8\u5c42\u81ea\u52a8\u5206\u914d\u56fe\u9879\u76ee\u4e2d\u7684\u552f\u4e00ID\uff0c\u7528\u6237\u4e0d\u53ef\u4fee\u6539\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u4e0a\u9650\uff1a\u6bcf\u4e2a\u56fe\u9879\u76ee\u5b58\u50a8\u6700\u591a2^(40)\u4e2a\u70b9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\u8fb9\uff1a\u7528\u4e8e\u8868\u8fbe\u70b9\u4e0e\u70b9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5982\u6f14\u5458\u51fa\u6f14\u7535\u5f71\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u6709\u5411\u8fb9\uff1a\u8fb9\u4e3a\u6709\u5411\u8fb9\u3002\u82e5\u8981\u6a21\u62df\u65e0\u5411\u8fb9\uff0c\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u4e24\u4e2a\u65b9\u5411\u76f8\u53cd\u7684\u8fb9\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u591a\u6761\u8fb9\uff1a\u4e24\u4e2a\u70b9\u6570\u636e\u4e4b\u95f4\u53ef\u4ee5\u6709\u591a\u6761\u8fb9\u6570\u636e\u3002\u5f53\u524dTuGraph\u652f\u6301\u91cd\u590d\u8fb9\uff0c\u5982\u8981\u786e\u4fdd\u8fb9\u8fb9\u552f\u4e00\uff0c\u9700\u8981\u901a\u8fc7\u4e1a\u52a1\u7b56\u7565\u5b9e\u73b0\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u4e0a\u9650\uff1a\u4e24\u4e2a\u70b9\u6570\u636e\u4e4b\u95f4\u5b58\u50a8\u6700\u591a2^(32)\u6761\u8fb9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.li,{children:"\u5c5e\u6027\u56fe\uff1a\u70b9\u548c\u8fb9\u53ef\u4ee5\u5177\u6709\u4e0e\u5176\u5173\u8054\u7684\u5c5e\u6027\uff0c\u6bcf\u4e2a\u5c5e\u6027\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u7c7b\u578b\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["\u5f3a\u7c7b\u578b\uff1a\u6bcf\u4e2a\u70b9\u548c\u8fb9\u6709\u4e14\u4ec5\u6709\u4e00\u4e2a\u6807\u7b7e\uff0c\u521b\u5efa\u6807\u7b7e\u540e\uff0c\u4fee\u6539\u5c5e\u6027\u6570\u91cf\u53ca\u7c7b\u578b\u6709\u4ee3\u4ef7\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\uff1a\u53ef\u9650\u5236\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u70b9\u7c7b\u578b\uff0c\u652f\u6301\u540c\u7c7b\u578b\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u4e0d\u540c\uff0c\u5982\u4e2a\u4eba\u8f6c\u8d26\u7ed9\u516c\u53f8\u3001\u516c\u53f8\u8f6c\u8d26\u7ed9\u516c\u53f8\uff1b\u5f53\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u540e\uff0c\u53ef\u589e\u52a0\u591a\u7ec4\u8d77/\u7ec8\u70b9\u7c7b\u578b\uff0c\u4e0d\u53ef\u5220\u9664\u5df2\u9650\u5236\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u65e0\u9650\u5236\u6a21\u5f0f\uff1a\u652f\u6301\u4e0d\u6307\u5b9a\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\uff0c\u4efb\u610f\u4e24\u4e2a\u70b9\u7c7b\u578b\u95f4\u5747\u53ef\u521b\u5efa\u8be5\u7c7b\u578b\u7684\u8fb9\u6570\u636e\u3002\u6ce8\uff1a\u5f53\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u540e\u65e0\u6cd5\u518d\u91c7\u7528\u65e0\u9650\u5236\u6a21\u5f0f\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"12-\u6570\u636e\u7c7b\u578b",children:"1.2. \u6570\u636e\u7c7b\u578b"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u652f\u6301\u591a\u79cd\u53ef\u7528\u4e8e\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\u3002\u5177\u4f53\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6570\u636e\u7c7b\u578b"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5c0f\u503c"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5927\u503c"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BOOL"}),(0,i.jsx)(e.td,{children:"false"}),(0,i.jsx)(e.td,{children:"true"}),(0,i.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT8"}),(0,i.jsx)(e.td,{children:"-128"}),(0,i.jsx)(e.td,{children:"127"}),(0,i.jsx)(e.td,{children:"8\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT16"}),(0,i.jsx)(e.td,{children:"-32768"}),(0,i.jsx)(e.td,{children:"32767"}),(0,i.jsx)(e.td,{children:"16\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT32"}),(0,i.jsx)(e.td,{children:"- 2^31"}),(0,i.jsx)(e.td,{children:"2^31 - 1"}),(0,i.jsx)(e.td,{children:"32\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT64"}),(0,i.jsx)(e.td,{children:"- 2^63"}),(0,i.jsx)(e.td,{children:"2^63 - 1"}),(0,i.jsx)(e.td,{children:"64\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DATE"}),(0,i.jsx)(e.td,{children:"0000-00-00"}),(0,i.jsx)(e.td,{children:"9999-12-31"}),(0,i.jsx)(e.td,{children:'"YYYY-MM-DD" \u683c\u5f0f\u7684\u65e5\u671f'})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DATETIME"}),(0,i.jsx)(e.td,{children:"0000-00-00 00:00:00.000000"}),(0,i.jsx)(e.td,{children:"9999-12-31 23:59:59.999999"}),(0,i.jsxs)(e.td,{children:['"YYYY-MM-DD HH:mm',(0,i.jsx)(e.div,{children:".ffffff"}),'" \u683c\u5f0f\u7684\u65e5\u671f\u65f6\u95f4']})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"FLOAT"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"32\u4f4d\u6d6e\u70b9\u6570"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DOUBLE"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"64\u4f4d\u6d6e\u70b9\u6570"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"STRING"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u4e0d\u5b9a\u957f\u5ea6\u7684\u5b57\u7b26\u4e32"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BLOB"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u4e8c\u8fdb\u5236\u6570\u636e\uff08\u5728\u8f93\u5165\u8f93\u51fa\u65f6\u4f7f\u7528Base64\u7f16\u7801\uff09"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"POINT"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u70b9"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"LINESTRING"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u7ebf"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"POLYGON"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u9762(\u591a\u8fb9\u5f62)"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"FLOAT_VECTOR"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u5305\u542b32\u4f4d\u6d6e\u70b9\u6570\u7684\u52a8\u6001\u5411\u91cf"})]})]})]}),"\n",(0,i.jsx)(e.h3,{id:"13-\u7d22\u5f15",children:"1.3. \u7d22\u5f15"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u652f\u6301\u5bf9\u70b9\u6216\u8fb9\u7684\u5c5e\u6027\u521b\u5efa\u7d22\u5f15\uff0c\u4ee5\u63d0\u5347\u67e5\u8be2\u6548\u7387\u3002\u5176\u7279\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u7d22\u5f15\u5305\u62ec\u666e\u901a\u7d22\u5f15\u548c\u7ec4\u5408\u7d22\u5f15\uff0c\u666e\u901a\u7d22\u5f15\u57fa\u4e8e\u4e00\u4e2a\u70b9\u6216\u8fb9\u7684\u4e00\u4e2a\u5c5e\u6027\u521b\u5efa\uff0c\u800c\u7ec4\u5408\u7d22\u5f15\u57fa\u4e8e\u4e00\u4e2a\u70b9\u6216\u8fb9\u7684\u591a\u4e2a\u5c5e\u6027\u521b\u5efa\uff08\u4e0d\u8d85\u8fc716\u4e2a\uff09\uff0c\u53ef\u4ee5\u5bf9\u540c\u4e00\u70b9\u6216\u8fb9\u7684\u591a\u4e2a\uff08\u7ec4\uff09\u5c5e\u6027\u521b\u5efa\u7d22\u5f15\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u5982\u679c\u4e3a\u70b9\u6807\u7b7e\u521b\u5efa\u4e86\u552f\u4e00\u7d22\u5f15\uff0c\u5728\u4fee\u6539\u8be5\u6807\u7b7e\u7684\u70b9\u65f6\uff0c\u4f1a\u5148\u6267\u884c\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\uff0c\u4ee5\u786e\u4fdd\u8be5\u7d22\u5f15\u7684\u552f\u4e00\u6027\u3002"}),"\n",(0,i.jsx)(e.li,{children:"BLOB\u7c7b\u578b\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u7d22\u5f15\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u7684\u70b9\u8fb9\u5747\u6709\u591a\u79cd\u7d22\u5f15\u7c7b\u578b\uff0c\u4e0d\u540c\u7684\u7d22\u5f15\u7c7b\u578b\u7684\u529f\u80fd\u548c\u9650\u5236\u4e0d\u540c\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"}),"\n",(0,i.jsx)(e.h4,{id:"131-\u666e\u901a\u7d22\u5f15",children:"1.3.1 \u666e\u901a\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h5,{id:"1311-\u70b9\u7d22\u5f15",children:"1.3.1.1 \u70b9\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h6,{id:"13111-unique\u7d22\u5f15",children:"1.3.1.1.1 unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u7684unique\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\uff0c\nunique\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7480bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbunique\u7d22\u5f15"}),"\u3002\nprimary\u4f5c\u4e3a\u7279\u6b8a\u7684unique\u7d22\u5f15\uff0c\u56e0\u6b64\u6700\u5927key\u7684\u957f\u5ea6\u4e5f\u662f480bytes\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13112-non_unique\u7d22\u5f15",children:"1.3.1.1.2 non_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u7684non_unique\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86non_unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8enon_unique\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4vid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f475bytes\u3002\n\u4f46\u662f\uff0c\u4e0d\u540c\u4e8eunique\u7d22\u5f15\uff0c\u8d85\u8fc7475bytes\u4e5f\u53ef\u4ee5\u5efa\u7acbnon_unique\u7d22\u5f15\u3002\n\u53ea\u4e0d\u8fc7\u5728\u5bf9\u8fd9\u6837\u7684\u5c5e\u6027\u5efa\u7acb\u7d22\u5f15\u65f6\u4f1a\u53ea\u622a\u53d6",(0,i.jsx)(e.strong,{children:"\u524d475bytes"}),"\u4f5c\u4e3a\u7d22\u5f15key\uff08\u5c5e\u6027\u672c\u8eab\u5b58\u50a8\u7684\u503c\u4e0d\u53d7\u5f71\u54cd\uff09\u3002\n\u5e76\u4e14\uff0c\u5728\u901a\u8fc7\u8fed\u4ee3\u5668\u904d\u5386\u65f6\uff0c\u4e5f\u662f\u5148\u81ea\u52a8\u622a\u53d6\u67e5\u8be2\u503c\u7684\u524d475bytes\u518d\u8fdb\u884c\u904d\u5386\uff0c\n\u6240\u4ee5\u7ed3\u679c\u53ef\u80fd\u548c\u9884\u671f\u4e0d\u4e00\u81f4\uff0c\u9700\u8981\u7528\u6237\u518d\u8fc7\u6ee4\u3002"]}),"\n",(0,i.jsx)(e.h5,{id:"1312-\u8fb9\u7d22\u5f15",children:"1.3.1.2 \u8fb9\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h6,{id:"13121-unique\u7d22\u5f15",children:"1.3.1.2.1 unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7c7b\u4f3c\uff0c\u8fb9\u7684unique\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\uff0c\nunique\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7480bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbunique\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13122-pair_unique\u7d22\u5f15",children:"1.3.1.2.2 pair_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["pair_unique\u7d22\u5f15\u6307\u7684\u662f\u4e24\u70b9\u95f4\u7684\u552f\u4e00\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u7684\u540c\u4e00\u7ec4\u8d77\u70b9\u548c\u7ec8\u70b9\u4e4b\u95f4\uff0c\n\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\u4e3a\u4e86\u4fdd\u8bc1pair_unique\u7d22\u5f15key\u5728\u540c\u4e00\u7ec4\u8d77\u70b9\u548c\u7ec8\u70b9\u4e4b\u95f4\u4e0d\u91cd\u590d\uff0c\n\u7d22\u5f15\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u8d77\u70b9\u548c\u7ec8\u70b9\u7684vid\uff0c\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\u3002\n\u56e0\u6b64\u6700\u5927key\u7684\u957f\u5ea6\u662f470bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7470bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbpair_unique\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13123-non_unique\u7d22\u5f15",children:"1.3.1.2.3 non_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7c7b\u4f3c\uff0c\u8fb9\u7684non_unique\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86non_unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8enon_unique\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4eid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2aeid\u662f24bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f456bytes\u3002\n\u4f46\u662f\uff0c\u4e0d\u540c\u4e8eunique\u7d22\u5f15\uff0c\u8d85\u8fc7456bytes\u4e5f\u53ef\u4ee5\u5efa\u7acbnon_unique\u7d22\u5f15\u3002\n\u53ea\u4e0d\u8fc7\u5728\u5bf9\u8fd9\u6837\u7684\u5c5e\u6027\u5efa\u7acb\u7d22\u5f15\u65f6\u4f1a\u53ea\u622a\u53d6",(0,i.jsx)(e.strong,{children:"\u524d456bytes"}),"\u4f5c\u4e3a\u7d22\u5f15key\uff08\u5c5e\u6027\u672c\u8eab\u5b58\u50a8\u7684\u503c\u4e0d\u53d7\u5f71\u54cd\uff09\u3002\n\u5e76\u4e14\uff0c\u5728\u901a\u8fc7\u8fed\u4ee3\u5668\u904d\u5386\u65f6\uff0c\u4e5f\u662f\u5148\u81ea\u52a8\u622a\u53d6\u67e5\u8be2\u503c\u7684\u524d456bytes\u518d\u8fdb\u884c\u904d\u5386\uff0c\n\u6240\u4ee5\u7ed3\u679c\u53ef\u80fd\u548c\u9884\u671f\u4e0d\u4e00\u81f4\uff0c\u9700\u8981\u7528\u6237\u518d\u8fc7\u6ee4\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"132-\u7ec4\u5408\u7d22\u5f15",children:"1.3.2 \u7ec4\u5408\u7d22\u5f15"}),"\n",(0,i.jsx)(e.p,{children:"\u76ee\u524d\u53ea\u652f\u6301\u5bf9\u70b9\u7684\u591a\u4e2a\u5c5e\u6027\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\uff0c\u4e0d\u652f\u6301\u5bf9\u8fb9\u7684\u5c5e\u6027\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\u3002\u7ec4\u5408\u7d22\u5f15\u652f\u6301\u552f\u4e00\u7d22\u5f15\u548c\u975e\u552f\u4e00\u7d22\u5f15\u4e24\u79cd\u7c7b\u578b\uff0c\u5efa\u7acb\u7d22\u5f15\u7684\u8981\u6c42\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsx)(e.li,{children:"\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u4e2a\u6570\u57282\u523016\u4e2a\u4e4b\u95f4\uff08\u542b\uff09"}),"\n",(0,i.jsx)(e.li,{children:"\u552f\u4e00\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u957f\u5ea6\u4e4b\u548c\u4e0d\u80fd\u8d85\u8fc7480-2*(\u5c5e\u6027\u4e2a\u6570-1)\u5b57\u8282\uff0c\u975e\u552f\u4e00\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u957f\u5ea6\u4e4b\u548c\u4e0d\u80fd\u8d85\u8fc7475-2*(\u5c5e\u6027\u4e2a\u6570-1)\u5b57\u8282"}),"\n"]}),"\n",(0,i.jsx)(e.h5,{id:"1321-\u552f\u4e00\u7d22\u5f15",children:"1.3.2.1 \u552f\u4e00\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7684\u666e\u901a\u552f\u4e00\u7d22\u5f15\u7c7b\u4f3c\uff0c\u70b9\u7684\u7ec4\u5408\u552f\u4e00\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u7ec4\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u7ec4\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8e\u5e95\u5c42\u5b58\u50a8\u8bbe\u8ba1\uff0c\u7ec4\u5408\u7d22\u5f15key\u9700\u8981\u4fdd\u5b58\u5c5e\u6027\u7684\u957f\u5ea6\uff0c\u56e0\u6b64\uff0c\n\u7ec4\u5408\u552f\u4e00\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480-2*(\u5c5e\u6027\u4e2a\u6570-1) bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u552f\u4e00\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h5,{id:"1322-\u975e\u552f\u4e00\u7d22\u5f15",children:"1.3.2.2 \u975e\u552f\u4e00\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7684\u666e\u901a\u975e\u552f\u4e00\u7d22\u5f15\u7c7b\u4f3c\uff0c\u70b9\u7684\u975e\u552f\u4e00\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u7ec4\u5c5e\u6027\u8bbe\u7f6e\u4e86\u975e\u552f\u4e00\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u7ec4\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8e\u975e\u552f\u4e00\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4vid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f475-2*(\u5c5e\u6027\u4e2a\u6570-1) bytes\uff0c\n",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u975e\u552f\u4e00\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h2,{id:"2-\u56fe\u9879\u76ee\u70b9\u8fb9\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",children:"2. \u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u3001\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae"}),"\n",(0,i.jsx)(e.h3,{id:"21-\u547d\u540d\u89c4\u5219",children:"2.1 \u547d\u540d\u89c4\u5219"}),"\n",(0,i.jsx)(e.p,{children:"\u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u548c\u5c5e\u6027\u662f\u8bc6\u522b\u7b26\u3002\u8be5\u8282\u63cf\u8ff0\u4e86\u5728TuGraph\u4e2d\u8bc6\u522b\u7b26\u7684\u5141\u8bb8\u7684\u8bed\u6cd5\u3002\n\u4e0b\u9762\u7684\u8868\u63cf\u8ff0\u4e86\u6bcf\u7c7b\u8bc6\u522b\u7b26\u7684\u6700\u5927\u957f\u5ea6\u548c\u5141\u8bb8\u7684\u5b57\u7b26\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u8bc6\u522b\u7b26"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u957f\u5ea6"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u5141\u8bb8\u7684\u5b57\u7b26"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u7528\u6237\u3001\u89d2\u8272\u3001\u56fe\u9879\u76ee"}),(0,i.jsx)(e.td,{children:"1-64\u5b57\u7b26"}),(0,i.jsx)(e.td,{children:"\u5141\u8bb8\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\uff0c\u4e14\u9996\u5b57\u7b26\u4e0d\u4e3a\u6570\u5b57"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u70b9\u7c7b\u578b\u3001\u8fb9\u7c7b\u578b\u3001\u5c5e\u6027"}),(0,i.jsx)(e.td,{children:"1~256\u5b57\u7b26"}),(0,i.jsx)(e.td,{children:"\u5141\u8bb8\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\uff0c\u4e14\u9996\u5b57\u7b26\u4e0d\u4e3a\u6570\u5b57"})]})]})]}),"\n",(0,i.jsx)(e.h3,{id:"22-\u4f7f\u7528\u9650\u5236",children:"2.2 \u4f7f\u7528\u9650\u5236"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5927\u4e2a\u6570"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u7528\u6237\u6570\u3001\u89d2\u8272\u6570"}),(0,i.jsx)(e.td,{children:"65536"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u56fe\u9879\u76ee\u7684\u4e2a\u6570"}),(0,i.jsx)(e.td,{children:"4096"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u6bcf\u4e2a\u56fe\u9879\u76ee\u7684\u70b9\u548c\u8fb9\u7c7b\u578b\u6570\u91cf\u4e4b\u548c"}),(0,i.jsx)(e.td,{children:"4096"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u6bcf\u4e2a\u70b9\u6216\u8fb9\u7c7b\u578b\u7684\u5c5e\u6027\u6570\u91cf"}),(0,i.jsx)(e.td,{children:"1024"})]})]})]}),"\n",(0,i.jsx)(e.p,{children:"\u6ce8\uff1a\n1\u3001\u7279\u6b8a\u5b57\u7b26\u548c\u5173\u952e\u5b57\u8bf4\u660e\uff1a\u4f7f\u7528\u7279\u6b8a\u5b57\u7b26\u6216\u975e\u4fdd\u7559\u5173\u952e\u5b57\u65f6\uff0c\u9700\u8981\u4f7f\u7528\u53cd\u5355\u5f15\u53f7/backquote\uff08``\uff09\u8fdb\u884c\u5f15\u7528\uff1b"}),"\n",(0,i.jsxs)(e.p,{children:["\u793a\u4f8b\uff1a ",(0,i.jsx)(e.code,{children:"match (`match`:match) return `match`.id limit 1"})]}),"\n",(0,i.jsx)(e.p,{children:"2\u3001\u5927\u5c0f\u5199\u654f\u611f\u6027\uff1aTuGraph\u5927\u5c0f\u5199\u654f\u611f\uff1b"}),"\n",(0,i.jsx)(e.p,{children:"3\u3001\u56fe\u9879\u76ee\u3001\u70b9/\u8fb9\u3001\u5c5e\u6027\u540d\u79f0\u4e4b\u95f4\u53ef\u4ee5\u91cd\u590d\u4f7f\u7528\uff0c\u540c\u4e00\u70b9\u6216\u8fb9\u4e0b\u7684\u5c5e\u6027\u540d\u79f0\u4e0d\u53ef\u4ee5\u91cd\u590d\uff1b"}),"\n",(0,i.jsx)(e.p,{children:"4\u3001\u5c5e\u6027\u540d\u5b57\u4fdd\u7559\u5173\u952e\u5b57\uff1aSRC_ID / DST_ID / SKIP"}),"\n",(0,i.jsx)(e.h3,{id:"23-\u547d\u540d\u5efa\u8bae",children:"2.3 \u547d\u540d\u5efa\u8bae"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u8bc6\u522b\u7b26"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u56fe\u9879\u76ee"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587\u5f00\u5934"}),(0,i.jsx)(e.td,{children:"\u5982graph123\u3001project123\u7b49"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u70b9/\u8fb9\u7c7b\u578b"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587\u5f00\u5934\uff0c\u4f7f\u7528\u4e0b\u5212\u7ebf\u533a\u5206\u5355\u8bcd"}),(0,i.jsx)(e.td,{children:"\u5982person\u3001act_in\u7b49"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u5c5e\u6027"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587"}),(0,i.jsx)(e.td,{children:"\u5982name\u3001age\u7b49"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(x,{...n})}):x(n)}},8453:(n,e,d)=>{d.d(e,{R:()=>l,x:()=>h});var i=d(6540);const s={},r=i.createContext(s);function l(n){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function h(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:l(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/596e431a.f312e006.js b/assets/js/596e431a.f312e006.js
deleted file mode 100644
index 5f2e23a7ad..0000000000
--- a/assets/js/596e431a.f312e006.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3891],{6750:(n,e,d)=>{d.r(e),d.d(e,{assets:()=>t,contentTitle:()=>l,default:()=>j,frontMatter:()=>r,metadata:()=>h,toc:()=>c});var i=d(4848),s=d(8453);const r={},l="TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",h={id:"zh-CN/source/introduction/schema",title:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",description:"1. \u6570\u636e\u6a21\u578b",source:"@site/../docs/zh-CN/source/2.introduction/4.schema.md",sourceDirName:"zh-CN/source/2.introduction",slug:"/zh-CN/source/introduction/schema",permalink:"/tugraph-db/zh-CN/source/introduction/schema",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4ec0\u4e48\u662fTuGraph",permalink:"/tugraph-db/zh-CN/source/introduction/what-is-tugraph"},next:{title:"\u6027\u80fd\u4f18\u5148",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/performance-oriented"}},t={},c=[{value:"1. \u6570\u636e\u6a21\u578b",id:"1-\u6570\u636e\u6a21\u578b",level:2},{value:"1.1. \u56fe\u6a21\u578b",id:"11-\u56fe\u6a21\u578b",level:3},{value:"1.2. \u6570\u636e\u7c7b\u578b",id:"12-\u6570\u636e\u7c7b\u578b",level:3},{value:"1.3. \u7d22\u5f15",id:"13-\u7d22\u5f15",level:3},{value:"1.3.1 \u666e\u901a\u7d22\u5f15",id:"131-\u666e\u901a\u7d22\u5f15",level:4},{value:"1.3.1.1 \u70b9\u7d22\u5f15",id:"1311-\u70b9\u7d22\u5f15",level:5},{value:"1.3.1.1.1 unique\u7d22\u5f15",id:"13111-unique\u7d22\u5f15",level:6},{value:"1.3.1.1.2 non_unique\u7d22\u5f15",id:"13112-non_unique\u7d22\u5f15",level:6},{value:"1.3.1.2 \u8fb9\u7d22\u5f15",id:"1312-\u8fb9\u7d22\u5f15",level:5},{value:"1.3.1.2.1 unique\u7d22\u5f15",id:"13121-unique\u7d22\u5f15",level:6},{value:"1.3.1.2.2 pair_unique\u7d22\u5f15",id:"13122-pair_unique\u7d22\u5f15",level:6},{value:"1.3.1.2.3 non_unique\u7d22\u5f15",id:"13123-non_unique\u7d22\u5f15",level:6},{value:"1.3.2 \u7ec4\u5408\u7d22\u5f15",id:"132-\u7ec4\u5408\u7d22\u5f15",level:4},{value:"1.3.2.1 \u552f\u4e00\u7d22\u5f15",id:"1321-\u552f\u4e00\u7d22\u5f15",level:5},{value:"1.3.2.2 \u975e\u552f\u4e00\u7d22\u5f15",id:"1322-\u975e\u552f\u4e00\u7d22\u5f15",level:5},{value:"2. \u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u3001\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",id:"2-\u56fe\u9879\u76ee\u70b9\u8fb9\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",level:2},{value:"2.1 \u547d\u540d\u89c4\u5219",id:"21-\u547d\u540d\u89c4\u5219",level:3},{value:"2.2 \u4f7f\u7528\u9650\u5236",id:"22-\u4f7f\u7528\u9650\u5236",level:3},{value:"2.3 \u547d\u540d\u5efa\u8bae",id:"23-\u547d\u540d\u5efa\u8bae",level:3}];function x(n){const e={code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"tugraph\u56fe\u6a21\u578b\u8bf4\u660e",children:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e"})}),"\n",(0,i.jsx)(e.h2,{id:"1-\u6570\u636e\u6a21\u578b",children:"1. \u6570\u636e\u6a21\u578b"}),"\n",(0,i.jsx)(e.h3,{id:"11-\u56fe\u6a21\u578b",children:"1.1. \u56fe\u6a21\u578b"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u662f\u4e00\u4e2a\u5177\u5907\u591a\u56fe\u80fd\u529b\u7684\u5f3a\u7c7b\u578b\u3001\u6709\u5411\u5c5e\u6027\u56fe\u6570\u636e\u5e93\u3002"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u56fe\u9879\u76ee\uff1a\u6bcf\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u53ef\u4ee5\u627f\u8f7d\u591a\u4e2a\u56fe\u9879\u76ee\uff08\u591a\u56fe\uff09\uff0c\u6bcf\u4e2a\u56fe\u9879\u76ee\u53ef\u4ee5\u6709\u81ea\u5df1\u7684\u8bbf\u95ee\u63a7\u5236\u914d\u7f6e\uff0c\u6570\u636e\u5e93\u7ba1\u7406\u5458\u53ef\u4ee5\u521b\u5efa\u6216\u5220\u9664\u6307\u5b9a\u56fe\u9879\u76ee\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["\u70b9\uff1a\u6307\u5b9e\u4f53\uff0c\u4e00\u822c\u7528\u4e8e\u8868\u8fbe\u73b0\u5b9e\u4e2d\u7684\u5b9e\u4f53\u5bf9\u8c61\uff0c\u5982\u4e00\u90e8\u7535\u5f71\u3001\u4e00\u4e2a\u6f14\u5458\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u4e3b\u952e\uff1a\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u70b9\u6570\u636e\u4e3b\u952e\uff0c\u9ed8\u8ba4\u552f\u4e00\u7d22\u5f15\uff0c\u5728\u5bf9\u5e94\u7684\u70b9\u7c7b\u578b\u4e2d\u552f\u4e00\u3002"}),"\n",(0,i.jsx)(e.li,{children:"VID\uff1a\u70b9\u5728\u5b58\u50a8\u5c42\u81ea\u52a8\u5206\u914d\u56fe\u9879\u76ee\u4e2d\u7684\u552f\u4e00ID\uff0c\u7528\u6237\u4e0d\u53ef\u4fee\u6539\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u4e0a\u9650\uff1a\u6bcf\u4e2a\u56fe\u9879\u76ee\u5b58\u50a8\u6700\u591a2^(40)\u4e2a\u70b9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:["\u8fb9\uff1a\u7528\u4e8e\u8868\u8fbe\u70b9\u4e0e\u70b9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5982\u6f14\u5458\u51fa\u6f14\u7535\u5f71\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u6709\u5411\u8fb9\uff1a\u8fb9\u4e3a\u6709\u5411\u8fb9\u3002\u82e5\u8981\u6a21\u62df\u65e0\u5411\u8fb9\uff0c\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u4e24\u4e2a\u65b9\u5411\u76f8\u53cd\u7684\u8fb9\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u591a\u6761\u8fb9\uff1a\u4e24\u4e2a\u70b9\u6570\u636e\u4e4b\u95f4\u53ef\u4ee5\u6709\u591a\u6761\u8fb9\u6570\u636e\u3002\u5f53\u524dTuGraph\u652f\u6301\u91cd\u590d\u8fb9\uff0c\u5982\u8981\u786e\u4fdd\u8fb9\u8fb9\u552f\u4e00\uff0c\u9700\u8981\u901a\u8fc7\u4e1a\u52a1\u7b56\u7565\u5b9e\u73b0\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u4e0a\u9650\uff1a\u4e24\u4e2a\u70b9\u6570\u636e\u4e4b\u95f4\u5b58\u50a8\u6700\u591a2^(32)\u6761\u8fb9\u6570\u636e\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.li,{children:"\u5c5e\u6027\u56fe\uff1a\u70b9\u548c\u8fb9\u53ef\u4ee5\u5177\u6709\u4e0e\u5176\u5173\u8054\u7684\u5c5e\u6027\uff0c\u6bcf\u4e2a\u5c5e\u6027\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u7c7b\u578b\u3002"}),"\n",(0,i.jsxs)(e.li,{children:["\u5f3a\u7c7b\u578b\uff1a\u6bcf\u4e2a\u70b9\u548c\u8fb9\u6709\u4e14\u4ec5\u6709\u4e00\u4e2a\u6807\u7b7e\uff0c\u521b\u5efa\u6807\u7b7e\u540e\uff0c\u4fee\u6539\u5c5e\u6027\u6570\u91cf\u53ca\u7c7b\u578b\u6709\u4ee3\u4ef7\u3002\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\uff1a\u53ef\u9650\u5236\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u70b9\u7c7b\u578b\uff0c\u652f\u6301\u540c\u7c7b\u578b\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\u4e0d\u540c\uff0c\u5982\u4e2a\u4eba\u8f6c\u8d26\u7ed9\u516c\u53f8\u3001\u516c\u53f8\u8f6c\u8d26\u7ed9\u516c\u53f8\uff1b\u5f53\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u540e\uff0c\u53ef\u589e\u52a0\u591a\u7ec4\u8d77/\u7ec8\u70b9\u7c7b\u578b\uff0c\u4e0d\u53ef\u5220\u9664\u5df2\u9650\u5236\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u65e0\u9650\u5236\u6a21\u5f0f\uff1a\u652f\u6301\u4e0d\u6307\u5b9a\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u7684\u70b9\u7c7b\u578b\uff0c\u4efb\u610f\u4e24\u4e2a\u70b9\u7c7b\u578b\u95f4\u5747\u53ef\u521b\u5efa\u8be5\u7c7b\u578b\u7684\u8fb9\u6570\u636e\u3002\u6ce8\uff1a\u5f53\u6307\u5b9a\u8fb9\u7684\u8d77/\u7ec8\u70b9\u7c7b\u578b\u540e\u65e0\u6cd5\u518d\u91c7\u7528\u65e0\u9650\u5236\u6a21\u5f0f\u3002"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.h3,{id:"12-\u6570\u636e\u7c7b\u578b",children:"1.2. \u6570\u636e\u7c7b\u578b"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u652f\u6301\u591a\u79cd\u53ef\u7528\u4e8e\u5c5e\u6027\u7684\u6570\u636e\u7c7b\u578b\u3002\u5177\u4f53\u652f\u6301\u7684\u6570\u636e\u7c7b\u578b\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6570\u636e\u7c7b\u578b"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5c0f\u503c"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5927\u503c"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BOOL"}),(0,i.jsx)(e.td,{children:"false"}),(0,i.jsx)(e.td,{children:"true"}),(0,i.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT8"}),(0,i.jsx)(e.td,{children:"-128"}),(0,i.jsx)(e.td,{children:"127"}),(0,i.jsx)(e.td,{children:"8\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT16"}),(0,i.jsx)(e.td,{children:"-32768"}),(0,i.jsx)(e.td,{children:"32767"}),(0,i.jsx)(e.td,{children:"16\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT32"}),(0,i.jsx)(e.td,{children:"- 2^31"}),(0,i.jsx)(e.td,{children:"2^31 - 1"}),(0,i.jsx)(e.td,{children:"32\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"INT64"}),(0,i.jsx)(e.td,{children:"- 2^63"}),(0,i.jsx)(e.td,{children:"2^63 - 1"}),(0,i.jsx)(e.td,{children:"64\u4f4d\u6574\u578b"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DATE"}),(0,i.jsx)(e.td,{children:"0000-00-00"}),(0,i.jsx)(e.td,{children:"9999-12-31"}),(0,i.jsx)(e.td,{children:'"YYYY-MM-DD" \u683c\u5f0f\u7684\u65e5\u671f'})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DATETIME"}),(0,i.jsx)(e.td,{children:"0000-00-00 00:00:00.000000"}),(0,i.jsx)(e.td,{children:"9999-12-31 23:59:59.999999"}),(0,i.jsxs)(e.td,{children:['"YYYY-MM-DD HH:mm',(0,i.jsx)(e.div,{children:".ffffff"}),'" \u683c\u5f0f\u7684\u65e5\u671f\u65f6\u95f4']})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"FLOAT"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"32\u4f4d\u6d6e\u70b9\u6570"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"DOUBLE"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"64\u4f4d\u6d6e\u70b9\u6570"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"STRING"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u4e0d\u5b9a\u957f\u5ea6\u7684\u5b57\u7b26\u4e32"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"BLOB"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u4e8c\u8fdb\u5236\u6570\u636e\uff08\u5728\u8f93\u5165\u8f93\u51fa\u65f6\u4f7f\u7528Base64\u7f16\u7801\uff09"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"POINT"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u70b9"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"LINESTRING"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u7ebf"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"POLYGON"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"EWKB\u683c\u5f0f\u6570\u636e\uff0c\u8868\u793a\u9762(\u591a\u8fb9\u5f62)"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"FLOAT_VECTOR"}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{}),(0,i.jsx)(e.td,{children:"\u5305\u542b32\u4f4d\u6d6e\u70b9\u6570\u7684\u52a8\u6001\u5411\u91cf"})]})]})]}),"\n",(0,i.jsx)(e.h3,{id:"13-\u7d22\u5f15",children:"1.3. \u7d22\u5f15"}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u652f\u6301\u5bf9\u70b9\u6216\u8fb9\u7684\u5c5e\u6027\u521b\u5efa\u7d22\u5f15\uff0c\u4ee5\u63d0\u5347\u67e5\u8be2\u6548\u7387\u3002\u5176\u7279\u70b9\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"\u7d22\u5f15\u5305\u62ec\u666e\u901a\u7d22\u5f15\u548c\u7ec4\u5408\u7d22\u5f15\uff0c\u666e\u901a\u7d22\u5f15\u57fa\u4e8e\u4e00\u4e2a\u70b9\u6216\u8fb9\u7684\u4e00\u4e2a\u5c5e\u6027\u521b\u5efa\uff0c\u800c\u7ec4\u5408\u7d22\u5f15\u57fa\u4e8e\u4e00\u4e2a\u70b9\u6216\u8fb9\u7684\u591a\u4e2a\u5c5e\u6027\u521b\u5efa\uff08\u4e0d\u8d85\u8fc716\u4e2a\uff09\uff0c\u53ef\u4ee5\u5bf9\u540c\u4e00\u70b9\u6216\u8fb9\u7684\u591a\u4e2a\uff08\u7ec4\uff09\u5c5e\u6027\u521b\u5efa\u7d22\u5f15\u3002"}),"\n",(0,i.jsx)(e.li,{children:"\u5982\u679c\u4e3a\u70b9\u6807\u7b7e\u521b\u5efa\u4e86\u552f\u4e00\u7d22\u5f15\uff0c\u5728\u4fee\u6539\u8be5\u6807\u7b7e\u7684\u70b9\u65f6\uff0c\u4f1a\u5148\u6267\u884c\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\uff0c\u4ee5\u786e\u4fdd\u8be5\u7d22\u5f15\u7684\u552f\u4e00\u6027\u3002"}),"\n",(0,i.jsx)(e.li,{children:"BLOB\u7c7b\u578b\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u7d22\u5f15\u3002"}),"\n"]}),"\n",(0,i.jsx)(e.p,{children:"TuGraph\u7684\u70b9\u8fb9\u5747\u6709\u591a\u79cd\u7d22\u5f15\u7c7b\u578b\uff0c\u4e0d\u540c\u7684\u7d22\u5f15\u7c7b\u578b\u7684\u529f\u80fd\u548c\u9650\u5236\u4e0d\u540c\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"}),"\n",(0,i.jsx)(e.h4,{id:"131-\u666e\u901a\u7d22\u5f15",children:"1.3.1 \u666e\u901a\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h5,{id:"1311-\u70b9\u7d22\u5f15",children:"1.3.1.1 \u70b9\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h6,{id:"13111-unique\u7d22\u5f15",children:"1.3.1.1.1 unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u7684unique\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\uff0c\nunique\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7480bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbunique\u7d22\u5f15"}),"\u3002\nprimary\u4f5c\u4e3a\u7279\u6b8a\u7684unique\u7d22\u5f15\uff0c\u56e0\u6b64\u6700\u5927key\u7684\u957f\u5ea6\u4e5f\u662f480bytes\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13112-non_unique\u7d22\u5f15",children:"1.3.1.1.2 non_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u70b9\u7684non_unique\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86non_unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8enon_unique\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4vid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f475bytes\u3002\n\u4f46\u662f\uff0c\u4e0d\u540c\u4e8eunique\u7d22\u5f15\uff0c\u8d85\u8fc7475bytes\u4e5f\u53ef\u4ee5\u5efa\u7acbnon_unique\u7d22\u5f15\u3002\n\u53ea\u4e0d\u8fc7\u5728\u5bf9\u8fd9\u6837\u7684\u5c5e\u6027\u5efa\u7acb\u7d22\u5f15\u65f6\u4f1a\u53ea\u622a\u53d6",(0,i.jsx)(e.strong,{children:"\u524d475bytes"}),"\u4f5c\u4e3a\u7d22\u5f15key\uff08\u5c5e\u6027\u672c\u8eab\u5b58\u50a8\u7684\u503c\u4e0d\u53d7\u5f71\u54cd\uff09\u3002\n\u5e76\u4e14\uff0c\u5728\u901a\u8fc7\u8fed\u4ee3\u5668\u904d\u5386\u65f6\uff0c\u4e5f\u662f\u5148\u81ea\u52a8\u622a\u53d6\u67e5\u8be2\u503c\u7684\u524d475bytes\u518d\u8fdb\u884c\u904d\u5386\uff0c\n\u6240\u4ee5\u7ed3\u679c\u53ef\u80fd\u548c\u9884\u671f\u4e0d\u4e00\u81f4\uff0c\u9700\u8981\u7528\u6237\u518d\u8fc7\u6ee4\u3002"]}),"\n",(0,i.jsx)(e.h5,{id:"1312-\u8fb9\u7d22\u5f15",children:"1.3.1.2 \u8fb9\u7d22\u5f15"}),"\n",(0,i.jsx)(e.h6,{id:"13121-unique\u7d22\u5f15",children:"1.3.1.2.1 unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7c7b\u4f3c\uff0c\u8fb9\u7684unique\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\uff0c\nunique\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7480bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbunique\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13122-pair_unique\u7d22\u5f15",children:"1.3.1.2.2 pair_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["pair_unique\u7d22\u5f15\u6307\u7684\u662f\u4e24\u70b9\u95f4\u7684\u552f\u4e00\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\u5728\u540c\u4e00\u4e2a\u56fe\u7684\u540c\u4e00\u7ec4\u8d77\u70b9\u548c\u7ec8\u70b9\u4e4b\u95f4\uff0c\n\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\u4e3a\u4e86\u4fdd\u8bc1pair_unique\u7d22\u5f15key\u5728\u540c\u4e00\u7ec4\u8d77\u70b9\u548c\u7ec8\u70b9\u4e4b\u95f4\u4e0d\u91cd\u590d\uff0c\n\u7d22\u5f15\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u8d77\u70b9\u548c\u7ec8\u70b9\u7684vid\uff0c\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\u3002\n\u56e0\u6b64\u6700\u5927key\u7684\u957f\u5ea6\u662f470bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7470bytes\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acbpair_unique\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h6,{id:"13123-non_unique\u7d22\u5f15",children:"1.3.1.2.3 non_unique\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7c7b\u4f3c\uff0c\u8fb9\u7684non_unique\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u4e2a\u5c5e\u6027\u8bbe\u7f6e\u4e86non_unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u8fb9\u7684\u8be5\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8enon_unique\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4eid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2aeid\u662f24bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f456bytes\u3002\n\u4f46\u662f\uff0c\u4e0d\u540c\u4e8eunique\u7d22\u5f15\uff0c\u8d85\u8fc7456bytes\u4e5f\u53ef\u4ee5\u5efa\u7acbnon_unique\u7d22\u5f15\u3002\n\u53ea\u4e0d\u8fc7\u5728\u5bf9\u8fd9\u6837\u7684\u5c5e\u6027\u5efa\u7acb\u7d22\u5f15\u65f6\u4f1a\u53ea\u622a\u53d6",(0,i.jsx)(e.strong,{children:"\u524d456bytes"}),"\u4f5c\u4e3a\u7d22\u5f15key\uff08\u5c5e\u6027\u672c\u8eab\u5b58\u50a8\u7684\u503c\u4e0d\u53d7\u5f71\u54cd\uff09\u3002\n\u5e76\u4e14\uff0c\u5728\u901a\u8fc7\u8fed\u4ee3\u5668\u904d\u5386\u65f6\uff0c\u4e5f\u662f\u5148\u81ea\u52a8\u622a\u53d6\u67e5\u8be2\u503c\u7684\u524d456bytes\u518d\u8fdb\u884c\u904d\u5386\uff0c\n\u6240\u4ee5\u7ed3\u679c\u53ef\u80fd\u548c\u9884\u671f\u4e0d\u4e00\u81f4\uff0c\u9700\u8981\u7528\u6237\u518d\u8fc7\u6ee4\u3002"]}),"\n",(0,i.jsx)(e.h4,{id:"132-\u7ec4\u5408\u7d22\u5f15",children:"1.3.2 \u7ec4\u5408\u7d22\u5f15"}),"\n",(0,i.jsx)(e.p,{children:"\u76ee\u524d\u53ea\u652f\u6301\u5bf9\u70b9\u7684\u591a\u4e2a\u5c5e\u6027\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\uff0c\u4e0d\u652f\u6301\u5bf9\u8fb9\u7684\u5c5e\u6027\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\u3002\u7ec4\u5408\u7d22\u5f15\u652f\u6301\u552f\u4e00\u7d22\u5f15\u548c\u975e\u552f\u4e00\u7d22\u5f15\u4e24\u79cd\u7c7b\u578b\uff0c\u5efa\u7acb\u7d22\u5f15\u7684\u8981\u6c42\u5982\u4e0b\uff1a"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsx)(e.li,{children:"\u5efa\u7acb\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u4e2a\u6570\u57282\u523016\u4e2a\u4e4b\u95f4\uff08\u542b\uff09"}),"\n",(0,i.jsx)(e.li,{children:"\u552f\u4e00\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u957f\u5ea6\u4e4b\u548c\u4e0d\u80fd\u8d85\u8fc7480-2*(\u5c5e\u6027\u4e2a\u6570-1)\u5b57\u8282\uff0c\u975e\u552f\u4e00\u7ec4\u5408\u7d22\u5f15\u7684\u5c5e\u6027\u957f\u5ea6\u4e4b\u548c\u4e0d\u80fd\u8d85\u8fc7475-2*(\u5c5e\u6027\u4e2a\u6570-1)\u5b57\u8282"}),"\n"]}),"\n",(0,i.jsx)(e.h5,{id:"1321-\u552f\u4e00\u7d22\u5f15",children:"1.3.2.1 \u552f\u4e00\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7684\u666e\u901a\u552f\u4e00\u7d22\u5f15\u7c7b\u4f3c\uff0c\u70b9\u7684\u7ec4\u5408\u552f\u4e00\u7d22\u5f15\u6307\u7684\u662f\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u7ec4\u5c5e\u6027\u8bbe\u7f6e\u4e86unique\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u7ec4\u5c5e\u6027\u4e0d\u4f1a\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8e\u5e95\u5c42\u5b58\u50a8\u8bbe\u8ba1\uff0c\u7ec4\u5408\u7d22\u5f15key\u9700\u8981\u4fdd\u5b58\u5c5e\u6027\u7684\u957f\u5ea6\uff0c\u56e0\u6b64\uff0c\n\u7ec4\u5408\u552f\u4e00\u7d22\u5f15key\u7684\u6700\u5927\u957f\u5ea6\u662f480-2*(\u5c5e\u6027\u4e2a\u6570-1) bytes\uff0c",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u552f\u4e00\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h5,{id:"1322-\u975e\u552f\u4e00\u7d22\u5f15",children:"1.3.2.2 \u975e\u552f\u4e00\u7d22\u5f15"}),"\n",(0,i.jsxs)(e.p,{children:["\u548c\u70b9\u7684\u666e\u901a\u975e\u552f\u4e00\u7d22\u5f15\u7c7b\u4f3c\uff0c\u70b9\u7684\u975e\u552f\u4e00\u7d22\u5f15\u6307\u7684\u662f\u975e\u5168\u5c40\u552f\u4e00\u7684\u7d22\u5f15\uff0c\u5373\u82e5\u4e00\u7ec4\u5c5e\u6027\u8bbe\u7f6e\u4e86\u975e\u552f\u4e00\u7d22\u5f15\uff0c\n\u5728\u540c\u4e00\u4e2a\u56fe\u4e2d\uff0c\u76f8\u540clabel\u7684\u70b9\u7684\u8be5\u7ec4\u5c5e\u6027\u53ef\u4ee5\u5b58\u5728\u76f8\u540c\u7684\u503c\u3002\n\u7531\u4e8e\u975e\u552f\u4e00\u7d22\u5f15\u4e00\u4e2akey\u53ef\u80fd\u6620\u5c04\u5230\u591a\u4e2a\u503c\uff0c\u4e3a\u4e86\u52a0\u901f\u67e5\u627e\u548c\u5199\u5165\uff0c\n\u5728\u7528\u6237\u6307\u5b9a\u7684key\u540e\u9762\u52a0\u4e0a\u4e86\u7d22\u5f15key\u76f8\u540c\u7684\u4e00\u7ec4vid\u7684\u6700\u5927\u503c\u3002\n\u6bcf\u4e2avid\u662f5bytes\u957f\u5ea6\uff0c\u56e0\u6b64non_unique\u7d22\u5f15key\u6700\u5927\u957f\u5ea6\u662f475-2*(\u5c5e\u6027\u4e2a\u6570-1) bytes\uff0c\n",(0,i.jsx)(e.strong,{children:"\u8d85\u8fc7\u7684\u5c5e\u6027\u4e0d\u80fd\u5efa\u7acb\u975e\u552f\u4e00\u7d22\u5f15"}),"\u3002"]}),"\n",(0,i.jsx)(e.h2,{id:"2-\u56fe\u9879\u76ee\u70b9\u8fb9\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae",children:"2. \u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u3001\u5c5e\u6027\u547d\u540d\u89c4\u5219\u548c\u5efa\u8bae"}),"\n",(0,i.jsx)(e.h3,{id:"21-\u547d\u540d\u89c4\u5219",children:"2.1 \u547d\u540d\u89c4\u5219"}),"\n",(0,i.jsx)(e.p,{children:"\u56fe\u9879\u76ee\u3001\u70b9\u3001\u8fb9\u548c\u5c5e\u6027\u662f\u8bc6\u522b\u7b26\u3002\u8be5\u8282\u63cf\u8ff0\u4e86\u5728TuGraph\u4e2d\u8bc6\u522b\u7b26\u7684\u5141\u8bb8\u7684\u8bed\u6cd5\u3002\n\u4e0b\u9762\u7684\u8868\u63cf\u8ff0\u4e86\u6bcf\u7c7b\u8bc6\u522b\u7b26\u7684\u6700\u5927\u957f\u5ea6\u548c\u5141\u8bb8\u7684\u5b57\u7b26\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u8bc6\u522b\u7b26"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u957f\u5ea6"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u5141\u8bb8\u7684\u5b57\u7b26"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u7528\u6237\u3001\u89d2\u8272\u3001\u56fe\u9879\u76ee"}),(0,i.jsx)(e.td,{children:"1-64\u5b57\u7b26"}),(0,i.jsx)(e.td,{children:"\u5141\u8bb8\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\uff0c\u4e14\u9996\u5b57\u7b26\u4e0d\u4e3a\u6570\u5b57"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u70b9\u7c7b\u578b\u3001\u8fb9\u7c7b\u578b\u3001\u5c5e\u6027"}),(0,i.jsx)(e.td,{children:"1~256\u5b57\u7b26"}),(0,i.jsx)(e.td,{children:"\u5141\u8bb8\u4e2d\u6587\u3001\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\uff0c\u4e14\u9996\u5b57\u7b26\u4e0d\u4e3a\u6570\u5b57"})]})]})]}),"\n",(0,i.jsx)(e.h3,{id:"22-\u4f7f\u7528\u9650\u5236",children:"2.2 \u4f7f\u7528\u9650\u5236"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u6700\u5927\u4e2a\u6570"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u7528\u6237\u6570\u3001\u89d2\u8272\u6570"}),(0,i.jsx)(e.td,{children:"65536"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u56fe\u9879\u76ee\u7684\u4e2a\u6570"}),(0,i.jsx)(e.td,{children:"4096"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u6bcf\u4e2a\u56fe\u9879\u76ee\u7684\u70b9\u548c\u8fb9\u7c7b\u578b\u6570\u91cf\u4e4b\u548c"}),(0,i.jsx)(e.td,{children:"4096"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u6bcf\u4e2a\u70b9\u6216\u8fb9\u7c7b\u578b\u7684\u5c5e\u6027\u6570\u91cf"}),(0,i.jsx)(e.td,{children:"1024"})]})]})]}),"\n",(0,i.jsx)(e.p,{children:"\u6ce8\uff1a\n1\u3001\u7279\u6b8a\u5b57\u7b26\u548c\u5173\u952e\u5b57\u8bf4\u660e\uff1a\u4f7f\u7528\u7279\u6b8a\u5b57\u7b26\u6216\u975e\u4fdd\u7559\u5173\u952e\u5b57\u65f6\uff0c\u9700\u8981\u4f7f\u7528\u53cd\u5355\u5f15\u53f7/backquote\uff08``\uff09\u8fdb\u884c\u5f15\u7528\uff1b"}),"\n",(0,i.jsxs)(e.p,{children:["\u793a\u4f8b\uff1a ",(0,i.jsx)(e.code,{children:"match (`match`:match) return `match`.id limit 1"})]}),"\n",(0,i.jsx)(e.p,{children:"2\u3001\u5927\u5c0f\u5199\u654f\u611f\u6027\uff1aTuGraph\u5927\u5c0f\u5199\u654f\u611f\uff1b"}),"\n",(0,i.jsx)(e.p,{children:"3\u3001\u56fe\u9879\u76ee\u3001\u70b9/\u8fb9\u3001\u5c5e\u6027\u540d\u79f0\u4e4b\u95f4\u53ef\u4ee5\u91cd\u590d\u4f7f\u7528\uff0c\u540c\u4e00\u70b9\u6216\u8fb9\u4e0b\u7684\u5c5e\u6027\u540d\u79f0\u4e0d\u53ef\u4ee5\u91cd\u590d\uff1b"}),"\n",(0,i.jsx)(e.p,{children:"4\u3001\u5c5e\u6027\u540d\u5b57\u4fdd\u7559\u5173\u952e\u5b57\uff1aSRC_ID / DST_ID / SKIP"}),"\n",(0,i.jsx)(e.h3,{id:"23-\u547d\u540d\u5efa\u8bae",children:"2.3 \u547d\u540d\u5efa\u8bae"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u8bc6\u522b\u7b26"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u63cf\u8ff0"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.strong,{children:"\u5efa\u8bae"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u56fe\u9879\u76ee"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587\u5f00\u5934"}),(0,i.jsx)(e.td,{children:"\u5982graph123\u3001project123\u7b49"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u70b9/\u8fb9\u7c7b\u578b"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587\u5f00\u5934\uff0c\u4f7f\u7528\u4e0b\u5212\u7ebf\u533a\u5206\u5355\u8bcd"}),(0,i.jsx)(e.td,{children:"\u5982person\u3001act_in\u7b49"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:"\u5c5e\u6027"}),(0,i.jsx)(e.td,{children:"\u5b57\u6bcd\u6216\u4e2d\u6587"}),(0,i.jsx)(e.td,{children:"\u5982name\u3001age\u7b49"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(x,{...n})}):x(n)}},8453:(n,e,d)=>{d.d(e,{R:()=>l,x:()=>h});var i=d(6540);const s={},r=i.createContext(s);function l(n){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function h(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:l(n.components),i.createElement(r.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5e48fa7f.7f46fcb4.js b/assets/js/5e48fa7f.7f46fcb4.js
new file mode 100644
index 0000000000..dd6ec6ad9b
--- /dev/null
+++ b/assets/js/5e48fa7f.7f46fcb4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4417],{5497:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>o,frontMatter:()=>l,metadata:()=>s,toc:()=>u});var t=r(4848),i=r(8453);const l={},a="\u672c\u5730\u5305\u90e8\u7f72",s={id:"installation&running/local-package-deployment",title:"\u672c\u5730\u5305\u90e8\u7f72",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u672c\u5730\u5305\u90e8\u7f72\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/4.local-package-deployment.md",sourceDirName:"5.installation&running",slug:"/installation&running/local-package-deployment",permalink:"/tugraph-db/zh/installation&running/local-package-deployment",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Docker\u90e8\u7f72",permalink:"/tugraph-db/zh/installation&running/docker-deployment"},next:{title:"\u4e91\u90e8\u7f72",permalink:"/tugraph-db/zh/installation&running/cloud-deployment"}},c={},u=[{value:"1. \u73af\u5883\u51c6\u5907",id:"1-\u73af\u5883\u51c6\u5907",level:2},{value:"2. \u5b89\u88c5\u5305\u4e0b\u8f7d",id:"2-\u5b89\u88c5\u5305\u4e0b\u8f7d",level:2},{value:"3. CentOS \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",id:"3-centos-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",level:2},{value:"4. Ubuntu \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",id:"4-ubuntu-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u672c\u5730\u5305\u90e8\u7f72",children:"\u672c\u5730\u5305\u90e8\u7f72"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u672c\u5730\u5305\u90e8\u7f72\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1-\u73af\u5883\u51c6\u5907",children:"1. \u73af\u5883\u51c6\u5907"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u672c\u5730\u5305\u90e8\u7f72\u9700\u8981\u5bf9\u5e94\u7684\u73af\u5883\uff0c\u5feb\u901f\u9a8c\u8bc1\u53ef\u4ee5\u4f7f\u7528\u7cbe\u7b80\u5b89\u88c5\u5305\uff0c\u51e0\u4e4e\u4e0d\u9700\u8981\u4efb\u4f55\u7b2c\u4e09\u65b9\u5e93\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5982\u679c\u60a8\u9700\u8981\u4f7f\u7528\u5b8c\u6574\u7684TuGraph\u529f\u80fd\uff0c\u8bf7\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-runtime-*-Dockerfile\uff0c\u8be5\u811a\u672c\u5305\u542b\u5b8c\u6574\u7684\u73af\u5883\u6784\u5efa\u6d41\u7a0b\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2-\u5b89\u88c5\u5305\u4e0b\u8f7d",children:"2. \u5b89\u88c5\u5305\u4e0b\u8f7d"}),"\n",(0,t.jsxs)(n.p,{children:["\u6700\u65b0\u7248\u672c\u7684\u5b89\u88c5\u5305\u5730\u5740\u53c2\u89c1 ",(0,t.jsx)(n.a,{href:"../../1.guide.md",children:"\u6587\u6863\u5730\u56fe"}),'\u7684"TuGraph\u6700\u65b0\u7248\u672c"\u7ae0\u8282\u3002']}),"\n",(0,t.jsxs)(n.p,{children:["\u4e5f\u53ef\u4ee5\u8bbf\u95eeGithub\u8fdb\u884c\u4e0b\u8f7d\uff1a",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/releases",children:"TuGraph Release"})]}),"\n",(0,t.jsx)(n.h2,{id:"3-centos-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",children:"3. CentOS \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5"}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u4e8e\u5728 CentOS \u4e0a\u5b89\u88c5\u7684 TuGraph \u7684.rpm \u5b89\u88c5\u5305\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u53ef\u6267\u884c\u6587\u4ef6\u4ee5\u53ca\u7f16\u5199\u5d4c\u5165\u5f0f\u7a0b\u5e8f\u548c\u5b58\u50a8\u8fc7\u7a0b\u6240\u9700\u7684\u5934\u6587\u4ef6\u548c\u76f8\u5173\u5e93\u6587\u4ef6\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u4f7f\u7528\u5df2\u7ecf\u4e0b\u8f7d\u5b8c\u6210\u7684`tugraph_x.y.z.rpm \u5b89\u88c5\u5305\u5728\u7ec8\u7aef\u4e0b\u5b89\u88c5\uff0c\u53ea\u9700\u8981\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ rpm -ivh tugraph-x.y.z.rpm\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u7528\u6237\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a",(0,t.jsx)(n.code,{children:"--prefix"}),"\u9009\u9879\u6307\u5b9a\u5b89\u88c5\u76ee\u5f55\u3002"]}),"\n",(0,t.jsx)(n.h2,{id:"4-ubuntu-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",children:"4. Ubuntu \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5"}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u4e8e\u5728 Ubuntu \u4e0a\u5b89\u88c5\u7684 TuGraph \u7684.deb \u5b89\u88c5\u5305\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u53ef\u6267\u884c\u6587\u4ef6\u4ee5\u53ca\u7f16\u5199\u5d4c\u5165\u5f0f\u7a0b\u5e8f\u548c\u5b58\u50a8\u8fc7\u7a0b\u6240\u9700\u7684\u5934\u6587\u4ef6\u548c\u76f8\u5173\u5e93\u6587\u4ef6\u3002"}),"\n",(0,t.jsxs)(n.p,{children:["\u4f7f\u7528\u5df2\u7ecf\u4e0b\u8f7d\u5b8c\u6210\u7684",(0,t.jsx)(n.code,{children:"tugraph_x.y.z.deb"}),"\u5b89\u88c5\u5305\u5728\u7ec8\u7aef\u4e0b\u5b89\u88c5\uff0c\u53ea\u9700\u8981\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ sudo dpkg -i tugraph-x.y.z.deb\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u8be5\u547d\u4ee4\u9ed8\u8ba4\u5c06 TuGraph \u5b89\u88c5\u4e8e",(0,t.jsx)(n.code,{children:"/usr/local"}),"\u76ee\u5f55\u4e0b\u3002\u7528\u6237\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a ",(0,t.jsx)(n.code,{children:"--instdir="})," \u9009\u9879\u66f4\u6539\u5b89\u88c5\u76ee\u5f55\u3002"]})]})}function o(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>s});var t=r(6540);const i={},l=t.createContext(i);function a(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5e48fa7f.9960f934.js b/assets/js/5e48fa7f.9960f934.js
deleted file mode 100644
index 69f9650fcc..0000000000
--- a/assets/js/5e48fa7f.9960f934.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4417],{5497:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var t=r(4848),s=r(8453);const i={},l="\u672c\u5730\u5305\u90e8\u7f72",a={id:"zh-CN/source/installation&running/local-package-deployment",title:"\u672c\u5730\u5305\u90e8\u7f72",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u672c\u5730\u5305\u90e8\u7f72\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/4.local-package-deployment.md",sourceDirName:"zh-CN/source/5.installation&running",slug:"/zh-CN/source/installation&running/local-package-deployment",permalink:"/tugraph-db/zh-CN/source/installation&running/local-package-deployment",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Docker\u90e8\u7f72",permalink:"/tugraph-db/zh-CN/source/installation&running/docker-deployment"},next:{title:"\u4e91\u90e8\u7f72",permalink:"/tugraph-db/zh-CN/source/installation&running/cloud-deployment"}},c={},u=[{value:"1. \u73af\u5883\u51c6\u5907",id:"1-\u73af\u5883\u51c6\u5907",level:2},{value:"2. \u5b89\u88c5\u5305\u4e0b\u8f7d",id:"2-\u5b89\u88c5\u5305\u4e0b\u8f7d",level:2},{value:"3. CentOS \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",id:"3-centos-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",level:2},{value:"4. Ubuntu \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",id:"4-ubuntu-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",level:2}];function o(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u672c\u5730\u5305\u90e8\u7f72",children:"\u672c\u5730\u5305\u90e8\u7f72"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u672c\u5730\u5305\u90e8\u7f72\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1-\u73af\u5883\u51c6\u5907",children:"1. \u73af\u5883\u51c6\u5907"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u672c\u5730\u5305\u90e8\u7f72\u9700\u8981\u5bf9\u5e94\u7684\u73af\u5883\uff0c\u5feb\u901f\u9a8c\u8bc1\u53ef\u4ee5\u4f7f\u7528\u7cbe\u7b80\u5b89\u88c5\u5305\uff0c\u51e0\u4e4e\u4e0d\u9700\u8981\u4efb\u4f55\u7b2c\u4e09\u65b9\u5e93\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5982\u679c\u60a8\u9700\u8981\u4f7f\u7528\u5b8c\u6574\u7684TuGraph\u529f\u80fd\uff0c\u8bf7\u53c2\u89c1tugraph-db\u6e90\u7801\u76ee\u5f55 ci/images/tugraph-runtime-*-Dockerfile\uff0c\u8be5\u811a\u672c\u5305\u542b\u5b8c\u6574\u7684\u73af\u5883\u6784\u5efa\u6d41\u7a0b\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2-\u5b89\u88c5\u5305\u4e0b\u8f7d",children:"2. \u5b89\u88c5\u5305\u4e0b\u8f7d"}),"\n",(0,t.jsxs)(n.p,{children:["\u6700\u65b0\u7248\u672c\u7684\u5b89\u88c5\u5305\u5730\u5740\u53c2\u89c1 ",(0,t.jsx)(n.a,{href:"../../1.guide.md",children:"\u6587\u6863\u5730\u56fe"}),'\u7684"TuGraph\u6700\u65b0\u7248\u672c"\u7ae0\u8282\u3002']}),"\n",(0,t.jsxs)(n.p,{children:["\u4e5f\u53ef\u4ee5\u8bbf\u95eeGithub\u8fdb\u884c\u4e0b\u8f7d\uff1a",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/releases",children:"TuGraph Release"})]}),"\n",(0,t.jsx)(n.h2,{id:"3-centos-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",children:"3. CentOS \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5"}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u4e8e\u5728 CentOS \u4e0a\u5b89\u88c5\u7684 TuGraph \u7684.rpm \u5b89\u88c5\u5305\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u53ef\u6267\u884c\u6587\u4ef6\u4ee5\u53ca\u7f16\u5199\u5d4c\u5165\u5f0f\u7a0b\u5e8f\u548c\u5b58\u50a8\u8fc7\u7a0b\u6240\u9700\u7684\u5934\u6587\u4ef6\u548c\u76f8\u5173\u5e93\u6587\u4ef6\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u4f7f\u7528\u5df2\u7ecf\u4e0b\u8f7d\u5b8c\u6210\u7684`tugraph_x.y.z.rpm \u5b89\u88c5\u5305\u5728\u7ec8\u7aef\u4e0b\u5b89\u88c5\uff0c\u53ea\u9700\u8981\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ rpm -ivh tugraph-x.y.z.rpm\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u7528\u6237\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a",(0,t.jsx)(n.code,{children:"--prefix"}),"\u9009\u9879\u6307\u5b9a\u5b89\u88c5\u76ee\u5f55\u3002"]}),"\n",(0,t.jsx)(n.h2,{id:"4-ubuntu-\u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5",children:"4. Ubuntu \u4e0b\u7684\u5b89\u88c5\u65b9\u6cd5"}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u4e8e\u5728 Ubuntu \u4e0a\u5b89\u88c5\u7684 TuGraph \u7684.deb \u5b89\u88c5\u5305\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u53ef\u6267\u884c\u6587\u4ef6\u4ee5\u53ca\u7f16\u5199\u5d4c\u5165\u5f0f\u7a0b\u5e8f\u548c\u5b58\u50a8\u8fc7\u7a0b\u6240\u9700\u7684\u5934\u6587\u4ef6\u548c\u76f8\u5173\u5e93\u6587\u4ef6\u3002"}),"\n",(0,t.jsxs)(n.p,{children:["\u4f7f\u7528\u5df2\u7ecf\u4e0b\u8f7d\u5b8c\u6210\u7684",(0,t.jsx)(n.code,{children:"tugraph_x.y.z.deb"}),"\u5b89\u88c5\u5305\u5728\u7ec8\u7aef\u4e0b\u5b89\u88c5\uff0c\u53ea\u9700\u8981\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ sudo dpkg -i tugraph-x.y.z.deb\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u8be5\u547d\u4ee4\u9ed8\u8ba4\u5c06 TuGraph \u5b89\u88c5\u4e8e",(0,t.jsx)(n.code,{children:"/usr/local"}),"\u76ee\u5f55\u4e0b\u3002\u7528\u6237\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a ",(0,t.jsx)(n.code,{children:"--instdir="})," \u9009\u9879\u66f4\u6539\u5b89\u88c5\u76ee\u5f55\u3002"]})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>a});var t=r(6540);const s={},i=t.createContext(s);function l(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5e68b5a7.e86c6872.js b/assets/js/5e68b5a7.e86c6872.js
new file mode 100644
index 0000000000..a8db0e53d2
--- /dev/null
+++ b/assets/js/5e68b5a7.e86c6872.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4032],{6679:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>o,frontMatter:()=>t,metadata:()=>l,toc:()=>a});var s=i(4848),d=i(8453);const t={},r="\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",l={id:"best-practices/spatial",title:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",description:"1. \u7b80\u4ecb",source:"@site/../docs/zh-CN/source/13.best-practices/5.spatial.md",sourceDirName:"13.best-practices",slug:"/best-practices/spatial",permalink:"/tugraph-db/zh/best-practices/spatial",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",permalink:"/tugraph-db/zh/best-practices/selection"},next:{title:"FAQ",permalink:"/tugraph-db/zh/faq"}},c={},a=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u9884\u5907\u77e5\u8bc6",id:"2-\u9884\u5907\u77e5\u8bc6",level:2},{value:"2.1 WGS84\u5750\u6807\u7cfb EPSG: 4326",id:"21-wgs84\u5750\u6807\u7cfb-epsg-4326",level:3},{value:"2.2 Cartesian(\u7b1b\u5361\u5c14)\u5750\u6807\u7cfb EPSG: 7203",id:"22-cartesian\u7b1b\u5361\u5c14\u5750\u6807\u7cfb-epsg-7203",level:3},{value:"2.3 \u6570\u636e\u5b58\u50a8\u683c\u5f0f",id:"23-\u6570\u636e\u5b58\u50a8\u683c\u5f0f",level:3},{value:"2.4 \u5e38\u7528\u51fd\u6570",id:"24-\u5e38\u7528\u51fd\u6570",level:3},{value:"3. \u6570\u636e\u7c7b\u578b",id:"3-\u6570\u636e\u7c7b\u578b",level:2},{value:"4. \u51fd\u6570\u4ecb\u7ecd",id:"4-\u51fd\u6570\u4ecb\u7ecd",level:2},{value:"5. \u7f8e\u98df\u63a2\u7d22",id:"5-\u7f8e\u98df\u63a2\u7d22",level:2},{value:"5.1 \u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",id:"51-\u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",level:3},{value:"5.2 \u6570\u636e\u6a21\u578b\u8bbe\u8ba1",id:"52-\u6570\u636e\u6a21\u578b\u8bbe\u8ba1",level:3},{value:"5.3 \u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",id:"53-\u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",level:3},{value:"6. \u5c55\u671b",id:"6-\u5c55\u671b",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",children:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b"})}),"\n",(0,s.jsx)(n.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u56fe\u6570\u636e\u5e93\u7531\u8682\u8681\u96c6\u56e2\u4e0e\u6e05\u534e\u5927\u5b66\u8054\u5408\u7814\u53d1\uff0c\u6784\u5efa\u4e86\u4e00\u5957\u5305\u542b\u56fe\u5b58\u50a8\u3001\u56fe\u8ba1\u7b97\u3001\u56fe\u5b66\u4e60\u3001\u56fe\u7814\u53d1\u5e73\u53f0\u7684\u5b8c\u5584\u7684\u56fe\u6280\u672f\u4f53\u7cfb\uff0c\u62e5\u6709\u4e1a\u754c\u9886\u5148\u89c4\u6a21\u7684\u56fe\u96c6\u7fa4\u3002\u8fd1\u5e74\u6765\uff0c\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u5728\u56fe\u6570\u636e\u5e93\u4e2d\u7684\u5e94\u7528\u4ef7\u503c\u663e\u8457\uff0c\u5b83\u4e0d\u4ec5\u589e\u5f3a\u4e86\u6570\u636e\u7684\u8868\u8fbe\u80fd\u529b\uff0c\u8fd8\u4fc3\u8fdb\u4e86\u8de8\u9886\u57df\u6570\u636e\u7684\u878d\u5408\u5206\u6790\uff0c\u5c24\u5176\u5728\u793e\u4ea4\u7f51\u7edc\u3001\u5730\u56fe\u63a2\u7d22\u3001\u57ce\u5e02\u89c4\u5212\u7b49\u5173\u952e\u9886\u57df\u5c55\u73b0\u4e86\u5f3a\u5927\u7684\u5b9e\u7528\u4ef7\u503c\u3002TuGraph\u4e5f\u6b63\u5728\u9010\u6b65\u652f\u6301\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2-\u9884\u5907\u77e5\u8bc6",children:"2. \u9884\u5907\u77e5\u8bc6"}),"\n",(0,s.jsxs)(n.p,{children:["EPSG(",(0,s.jsx)(n.a,{href:"https://epsg.io/",children:"EPSG.io: Coordinate Systems Worldwide"}),") \u662f\u4e00\u4e2a\u6807\u51c6\u5316\u7684\u5730\u7406\u7a7a\u95f4\u53c2\u8003\u7cfb\u7edf\u6807\u8bc6\u7b26\u96c6\u5408\uff0c \u7528\u4e8e\u6807\u8bc6\u4e0d\u540c\u7684\u5730\u7406\u7a7a\u95f4\u53c2\u8003\u7cfb\u7edf\uff0c\u5305\u62ec\u5750\u6807\u7cfb\u7edf\u3001\u5730\u7406\u5750\u6807\u7cfb\u3001\u6295\u5f71\u5750\u6807\u7cfb\u7b49\u3002\u6211\u4eec\u5e38\u7528EPSG\u7f16\u7801\u8868\u793a\u6570\u636e\u7684\u5750\u6807\u7cfb\uff0c\u8fd9\u91cc\u6211\u4eec\u4ecb\u7ecd\u4e24\u79cd\u6700\u5e38\u89c1\u7684\u7a7a\u95f4\u5730\u7406\u5750\u6807\u7cfb\uff0c\u4e5f\u662f\u5927\u90e8\u5206\u6570\u636e\u5e93\u652f\u6301\u7684\u5750\u6807\u7cfb\u7c7b\u578b\u3002"]}),"\n",(0,s.jsx)(n.h3,{id:"21-wgs84\u5750\u6807\u7cfb-epsg-4326",children:"2.1 WGS84\u5750\u6807\u7cfb EPSG: 4326"}),"\n",(0,s.jsxs)(n.p,{children:["\u5168\u7403GPS\u5b9a\u4f4d\u7cfb\u7edf: WGS84\u662f\u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf(GPS)\u7684\u57fa\u7840\uff0c\u5141\u8bb8\u5168\u7403\u7684GPS\u63a5\u6536\u5668\u786e\u5b9a\u7cbe\u786e\u4f4d\u7f6e\u3002\u51e0\u4e4e\u6240\u6709\u73b0\u4ee3GPS\u8bbe\u5907\u90fd\u662f\u57fa\u4e8eWGS84\u5750\u6807\u7cfb\u6765\u63d0\u4f9b\u4f4d\u7f6e\u4fe1\u606f\u3002\u5730\u56fe\u5236\u4f5c\u548c\u5730\u7406\u4fe1\u606f\u7cfb\u7edf(GIS): \u5728\u5730\u56fe\u5236\u4f5c\u548cGIS\u9886\u57df\uff0cWGS84\u88ab\u5e7f\u6cdb\u7528\u4e8e\u5b9a\u4e49\u5730\u7403\u4e0a\u7684\u4f4d\u7f6e\u3002\u8fd9\u5305\u62ec\u5404\u79cd\u7c7b\u578b\u7684\u5730\u56fe\u521b\u5efa\u3001\u7a7a\u95f4\u6570\u636e\u5206\u6790\u548c\u7ba1\u7406\u7b49\u3002",(0,s.jsx)(n.img,{alt:"image.png",src:i(7720).A+"",width:"821",height:"390"})]}),"\n",(0,s.jsx)(n.h3,{id:"22-cartesian\u7b1b\u5361\u5c14\u5750\u6807\u7cfb-epsg-7203",children:"2.2 Cartesian(\u7b1b\u5361\u5c14)\u5750\u6807\u7cfb EPSG: 7203"}),"\n",(0,s.jsxs)(n.p,{children:["\u76f4\u89d2\u5750\u6807\u7cfb\uff0c\u662f\u4e00\u79cd\u6700\u57fa\u672c\u3001\u6700\u5e7f\u6cdb\u5e94\u7528\u7684\u5750\u6807\u7cfb\u7edf\u3002\u5b83\u901a\u8fc7\u4e24\u6761\u6570\u8f74\u5b9a\u4e49\u4e00\u4e2a\u5e73\u9762\uff0c\u4e09\u6761\u6570\u8f74\u5b9a\u4e49\u4e00\u4e2a\u7a7a\u95f4\uff0c\u8fd9\u4e9b\u8f74\u4e92\u76f8\u5782\u76f4\uff0c\u5728\u6570\u5b66\u3001\u7269\u7406\u3001\u5de5\u7a0b\u3001\u5929\u6587\u548c\u8bb8\u591a\u5176\u4ed6\u9886\u57df\u4e2d\u6709\u7740\u5e7f\u6cdb\u7684\u5e94\u7528\u3002",(0,s.jsx)(n.img,{alt:"image.png",src:i(4535).A+"",width:"560",height:"560"})]}),"\n",(0,s.jsx)(n.h3,{id:"23-\u6570\u636e\u5b58\u50a8\u683c\u5f0f",children:"2.3 \u6570\u636e\u5b58\u50a8\u683c\u5f0f"}),"\n",(0,s.jsx)(n.p,{children:"OGC(Open Geospatial Consortium) \u5b9a\u4e49\u4e86\u7a7a\u95f4\u6570\u636e\u7684\u6807\u51c6\u8868\u793a\u683c\u5f0f\uff0c\u5206\u522b\u4e3aWKT\u4e0eWKB\u683c\u5f0f\uff0c\u7528\u4e8e\u5728\u4e0d\u540c\u7cfb\u7edf\u548c\u5e73\u53f0\u4e4b\u95f4\u4ea4\u6362\u548c\u5b58\u50a8\u7a7a\u95f4\u6570\u636e\uff0c\u73b0\u5df2\u88ab\u5e7f\u6cdb\u91c7\u7528\u3002\u5176\u4e2dWKT(well-kown text)\u683c\u5f0f, \u662f\u4e00\u79cd\u6587\u672c\u6807\u8bb0\u8bed\u8a00,\u6613\u4e8e\u4eba\u7c7b\u9605\u8bfb\u548c\u7f16\u5199\uff0c\u800cWKB(Well-Known Binary)\u683c\u5f0f\u91c7\u7528\u4e00\u7cfb\u5217\u5b57\u8282\u6765\u7f16\u7801\u7a7a\u95f4\u6570\u636e\uff0c\u66f4\u9002\u5408\u5728\u8ba1\u7b97\u673a\u4e2d\u5b58\u50a8;"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"WKT:"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POINT( )\nLINESTRING( , , ...)\n"})}),"\n",(0,s.jsx)(n.p,{children:"WKT\u683c\u5f0f\u7684\u6570\u636e\u5982\u4e0a\u4f8b\u6240\u793a\uff0c\u5148\u6307\u5b9a\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\uff0c\u518d\u5728\u62ec\u53f7\u5185\u6307\u5b9a\u5177\u4f53\u7684\u5750\u6807\uff0c\u4e00\u4e2a\u5750\u6807\u5bf9\u8868\u793a\u4e00\u4e2a\u70b9\uff0c\u6bcf\u4e2a\u5750\u6807\u5bf9\u4e4b\u95f4\u7528\u9017\u53f7\u9694\u5f00\u3002\u5bf9\u4e8ePolygon\u7c7b\u578b\u7684\u6570\u636e\uff0c\u7b2c\u4e00\u4e2a\u5750\u6807\u5bf9\u9700\u8981\u4e0e\u6700\u540e\u4e00\u4e2a\u5750\u6807\u5bf9\u76f8\u540c\uff0c\u5f62\u6210\u95ed\u5408\u7684\u9762\u3002"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"WKB:"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(5019).A+"",width:"858",height:"264"})}),"\n",(0,s.jsx)(n.p,{children:"\u9488\u5bf9EWKB\u683c\u5f0f\u7684\u7f16\u7801\uff0c\u8bf4\u660e\u5982\u4e0b:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u7b2c0 - 1\u4f4d: \u7f16\u7801\u65b9\u5f0f;"}),"\n",(0,s.jsxs)(n.li,{children:["\u7b2c2 - 5\u4f4d: \u7a7a\u95f4\u6570\u636e\u7c7b\u578b;\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"0100: point"}),"\n",(0,s.jsx)(n.li,{children:"0200: linestring"}),"\n",(0,s.jsx)(n.li,{children:"0300: polygon"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\u7b2c6 - 9\u4f4d: \u6570\u636e\u7ef4\u5ea6;\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"0020: \u4e8c\u7ef4"}),"\n",(0,s.jsx)(n.li,{children:"0030: \u4e09\u7ef4"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"\u7b2c10 - 17\u4f4d: \u5750\u6807\u7cfb\u7684EPSG\u7f16\u7801;"}),"\n",(0,s.jsx)(n.li,{children:"\u7b2c18 - n\u4f4d: double\u7c7b\u578b\u7684\u5750\u6807\u5bf9\u768416\u8fdb\u5236\u8868\u793a\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"24-\u5e38\u7528\u51fd\u6570",children:"2.4 \u5e38\u7528\u51fd\u6570"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Signature"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dbms.graph.createGraph"})}),(0,s.jsx)(n.td,{children:"\u521b\u5efa\u5b50\u56fe"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.createVertexLabel"})}),(0,s.jsx)(n.td,{children:"\u521b\u5efaVertex Label"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.getLabelSchema"})}),(0,s.jsx)(n.td,{children:"\u5217\u51falabel schema"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.deleteLabel"})}),(0,s.jsx)(n.td,{children:"\u5220\u9664Vertex"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u5b8c\u6574\u8be6\u7ec6\u7684\u51fd\u6570\u4f7f\u7528\u4ee5\u53ca\u63d2\u5165\u6570\u636e\u7684\u8bed\u53e5\uff0c\u53ef\u4ee5\u53c2\u8003 ",(0,s.jsx)(n.a,{href:"/tugraph-db/zh/query/cypher",children:"Cypher API"})]}),"\n",(0,s.jsx)(n.h2,{id:"3-\u6570\u636e\u7c7b\u578b",children:"3. \u6570\u636e\u7c7b\u578b"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524d\u5728TuGraph\u4e2d\uff0c\u6211\u4eec\u5df2\u7ecf\u652f\u6301\u4e86Point, Linestring\u4e0ePolygon\u4e09\u79cd\u7c7b\u578b:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Point\uff1a\u70b9 point(2.0, 2.0, 7203)"}),"\n",(0,s.jsx)(n.li,{children:"Linestring\uff1a\u6298\u7ebf LINESTRING(0 2,1 1,2 0)"}),"\n",(0,s.jsx)(n.li,{children:"Polygon\uff1a\u591a\u8fb9\u5f62 POLYGON((0 0,0 7,4 2,2 0,0 0))"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\u5750\u6807\u70b9\u90fd\u662fdouble\u578b\uff0c\u521b\u5efa\u56fe\u6a21\u578b\u548c\u63d2\u5165\u6570\u636e\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u6807\u8bb0\u7f8e\u98df\u4f4d\u7f6e\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true) \n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(6547).A+"",width:"932",height:"322"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u6807\u8bb0\u7f8e\u98df\u70b9\u7684\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CREATE (n:food {id:10001, name: 'aco Bell',pointTest:point(3.0,4.0,7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(8635).A+"",width:"1112",height:"706"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u5177\u6709\u6298\u7ebf\u5c5e\u6027\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('lineTest', 'id', 'id', int64, false, 'name', string, true,'linestringTest',linestring,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(4962).A+"",width:"953",height:"432"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u5177\u6709\u6298\u7ebf\u5c5e\u6027\u7684\u70b9\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:lineTest {id:102, name: 'Tom',linestringTest:linestringwkt('LINESTRING(0 2,1 1,2 0)', 7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(289).A+"",width:"1777",height:"854"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u5177\u6709\u591a\u8fb9\u578b\u5c5e\u6027\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('polygonTest', 'id', 'id', int64, false, 'name', string, true,'polygonTest',polygon,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(2976).A+"",width:"922",height:"389"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u5177\u6709\u591a\u8fb9\u578b\u5c5e\u6027\u7684\u70b9\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:polygonTest {id:103, name: 'polygonTest',polygonTest:polygonwkt('POLYGON((0 0,0 7,4 2,2 0,0 0))', 7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-\u51fd\u6570\u4ecb\u7ecd",children:"4. \u51fd\u6570\u4ecb\u7ecd"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u51fd\u6570\u540d"}),(0,s.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(n.th,{children:"\u8f93\u5165\u53c2\u6570"}),(0,s.jsx)(n.th,{children:"\u8fd4\u56de\u503c\u7c7b\u578b"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Distance()"}),(0,s.jsx)(n.td,{children:"\u8ba1\u7b97\u4e24\u4e2a\u7a7a\u95f4\u6570\u636e\u95f4\u7684\u8ddd\u79bb(\u8981\u6c42\u5750\u6807\u7cfb\u76f8\u540c)"}),(0,s.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,s.jsx)(n.td,{children:"double"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Disjoint()"}),(0,s.jsx)(n.td,{children:"\u5224\u65ad\u4e24\u4e2a\u7a7a\u95f4\u6570\u636e\u662f\u5426\u76f8\u4ea4\uff08\u5f00\u53d1\u4e2d\uff09"}),(0,s.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,s.jsx)(n.td,{children:"bool"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"WithinBBox()"}),(0,s.jsx)(n.td,{children:"\u5224\u65ad\u67d0\u4e2a\u7a7a\u95f4\u6570\u636e\u662f\u5426\u5728\u7ed9\u5b9a\u7684\u957f\u65b9\u5f62\u533a\u57df\u5185\uff08\u5f00\u53d1\u4e2d\uff09"}),(0,s.jsx)(n.td,{children:"Spatial data, Point1"}),(0,s.jsx)(n.td,{children:"bool"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-\u7f8e\u98df\u63a2\u7d22",children:"5. \u7f8e\u98df\u63a2\u7d22"}),"\n",(0,s.jsx)(n.h3,{id:"51-\u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",children:"5.1 \u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u672c\u7ae0\u8282\u4e2d\uff0c\u6211\u4eec\u5c06\u63a2\u7d22\u5982\u4f55\u5229\u7528Tugraph\u56fe\u6570\u636e\u5e93\u7684\u5730\u7406\u7a7a\u95f4\u529f\u80fd\uff0c\u6784\u5efa\u4e00\u4e2a\u751f\u52a8\u6709\u8da3\u7684\u7f8e\u98df\u63a2\u7d22\u5e94\u7528\uff0c\u5c06\u201c\u4eba\u201d\u4e0e\u201c\u7f8e\u98df\u201d\u901a\u8fc7\u5730\u7406\u4f4d\u7f6e\u7d27\u5bc6\u76f8\u8fde\uff0c\u5b9e\u73b0\u4e2a\u6027\u5316\u7f8e\u98df\u63a8\u8350\u3002\u60f3\u8c61\u4e00\u4e0b\uff0c\u65e0\u8bba\u8eab\u5904\u4f55\u65b9\uff0c\u53ea\u9700\u8f7b\u8f7b\u4e00\u70b9\uff0c\u5468\u56f4\u8bf1\u4eba\u7f8e\u98df\u4fbf\u5c3d\u6536\u773c\u5e95\uff0c\u8fd9\u6b63\u662f\u6211\u4eec\u5373\u5c06\u6784\u5efa\u7684\u573a\u666f\u9b45\u529b\u6240\u5728\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"52-\u6570\u636e\u6a21\u578b\u8bbe\u8ba1",children:"5.2 \u6570\u636e\u6a21\u578b\u8bbe\u8ba1"}),"\n",(0,s.jsx)(n.p,{children:"\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e24\u79cd\u6838\u5fc3\u8282\u70b9\u7c7b\u578b\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Food\uff08\u7f8e\u98df\uff09\u8282\u70b9\uff1a\u6bcf\u4e00\u5bb6\u9910\u5385\u6216\u5c0f\u5403\u5e97\u90fd\u53ef\u4ee5\u4f5c\u4e3a\u4e00\u4e2aFood\u8282\u70b9\uff0c\u5176\u5c5e\u6027\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u540d\u79f0\u3001\u5730\u5740\u3001\u8bc4\u5206\u3001\u7f8e\u98df\u7c7b\u522b\u7b49\u3002\u7279\u522b\u5730\uff0c\u6211\u4eec\u5c06\u5728\u6bcf\u4e2aFood\u8282\u70b9\u4e0a\u9644\u52a0\u5730\u7406\u5750\u6807\u4fe1\u606f\uff0c\u7528\u4ee5\u7cbe\u786e\u8bb0\u5f55\u5176\u5730\u7406\u4f4d\u7f6e\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true,'mark',double,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u51c6\u5907\u6570\u636e\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:food {id:10001, name: 'Starbucks',pointTest:point(1.0,1.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10002, name: 'KFC',pointTest:point(2.0,1.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10003, name: 'Pizza Hut',pointTest:point(2.0,5.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10004, name: 'Taco Bell',pointTest:point(3.0,4.0,7203),mark:4.7}) RETURN n\nCREATE (n:food {id:10005, name: 'Pizza Fusion',pointTest:point(5.0,3.0,7203),mark:4.9}) RETURN n\nCREATE (n:food {id:10006, name: 'HaiDiLao Hot Pot',pointTest:point(2.0,2.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10007, name: 'Lao Sze Chuan',pointTest:point(4.0,3.0,7203),mark:4.7}) RETURN n\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Person\uff08\u4eba\u7269\uff09\u8282\u70b9\uff1a\u4ee3\u8868\u5e94\u7528\u7684\u7528\u6237\uff0c\u5c5e\u6027\u5305\u542b\u7528\u6237\u540d\u3001\u5f53\u524d\u4f4d\u7f6e\u7b49\u3002\u7528\u6237\u7684\u5f53\u524d\u4f4d\u7f6e\u540c\u6837\u901a\u8fc7\u5730\u7406\u5750\u6807\u8868\u793a\uff0c\u4fbf\u4e8e\u540e\u7eed\u7684\u5730\u7406\u7a7a\u95f4\u67e5\u8be2\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CALL db.createVertexLabel('person', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u51c6\u5907\u6570\u636e\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CREATE (n:person {id:1, name: 'Tom',pointTest:point(3.0,3.0,7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.h3,{id:"53-\u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",children:"5.3 \u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2"}),"\n",(0,s.jsx)(n.p,{children:"\u80fd\u591f\u6839\u636e\u7528\u6237\u7684\u5f53\u524d\u4f4d\u7f6e\uff0c\u5bfb\u627e\u8ddd\u79bb2.5\u4ee5\u5185\u7684\u7f8e\u98df,\u6839\u636e\u8ddd\u79bb\u8fdb\u884c\u5347\u5e8f\u6392\u5217\u3002\u8fd4\u56de\u8ddd\u79bb\u548c\u8bc4\u5206\u8ba9\u7528\u6237\u5f97\u5012\u66f4\u597d\u7684\u4f53\u9a8c\u3002"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u67e5\u8be2\u8bed\u53e5"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"match (n:person{id:1}),(m:food) with n.pointTest as p1,m.pointTest as p2,m.name as food,m.mark as mark\nCALL spatial.distance(p1,p2) YIELD distance \nWHERE distance<2.5\nRETURN food,distance,mark ORDER by distance\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(379).A+"",width:"1786",height:"821"})}),"\n",(0,s.jsx)(n.p,{children:"\u6b64\u67e5\u8be2\u9996\u5148\u5339\u914d\u7279\u5b9a\u7684Person\u8282\u70b9\uff08\u4ee5\u7528\u6237\u540d\u201cTom\u201d\u4e3a\u4f8b\uff09\uff0c\u7136\u540e\u627e\u5230\u6240\u6709Food\u8282\u70b9\uff0c\u5229\u7528\u81ea\u5b9a\u4e49\u7684distance\u51fd\u6570\uff0c\u8ba1\u7b97Person\u8282\u70b9\u5f53\u524d\u4f4d\u7f6e\u4e0e\u6bcf\u4e2aFood\u8282\u70b9\u4e4b\u95f4\u7684\u76f4\u7ebf\u8ddd\u79bb\uff0c\u7b5b\u9009\u51fa\u8ddd\u79bb\u57282.5\u4e4b\u5185\u7684\u7f8e\u98df\u3002\u6700\u540e\uff0c\u6309\u7167\u7f8e\u98df\u7684\u8ddd\u79bb\u5347\u5e8f\u6392\u5217\u7ed3\u679c\uff0c\u9644\u5e26\u8bc4\u5206\u53c2\u8003\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u6700\u4f18\u8d28\u7684\u63a8\u8350\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"6-\u5c55\u671b",children:"6. \u5c55\u671b"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7\u4e0a\u8ff0\u7ae0\u8282\uff0c\u6211\u4eec\u4e0d\u4ec5\u5c55\u793a\u4e86TuGraph\u5728\u5730\u7406\u7a7a\u95f4\u6570\u636e\u5904\u7406\u7684\u80fd\u529b\uff0c\u4e5f\u63cf\u7ed8\u4e86\u4e00\u4e2a\u5bcc\u6709\u5438\u5f15\u529b\u7684\u7f8e\u98df\u63a2\u7d22\u573a\u666f\uff0c\u8bc1\u660e\u4e86\u56fe\u6570\u636e\u5e93\u5728\u7ed3\u5408\u5730\u7406\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u4e2a\u6027\u5316\u670d\u52a1\u65b9\u9762\u5177\u6709\u5de8\u5927\u6f5c\u529b\u3002\u65e0\u8bba\u662f\u5bfb\u627e\u5468\u672b\u7684\u4f11\u95f2\u53bb\u5904\uff0c\u8fd8\u662f\u63a2\u7d22\u65c5\u884c\u9014\u4e2d\u7684\u7279\u8272\u7f8e\u98df\uff0c\u8fd9\u6837\u7684\u5e94\u7528\u90fd\u5c06\u6781\u5927\u5730\u4e30\u5bcc\u4eba\u4eec\u7684\u751f\u6d3b\u4f53\u9a8c\u3002"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u5c06\u6765\u4f1a\u7ee7\u7eed\u5b9e\u73b0Disjoint() \u3001WithinBBox()\uff0c\u4f1a\u4e30\u5bcc\u66f4\u591a\u4f7f\u7528\u573a\u666f\u3002\u5f53\u7136\uff0c\u4e5f\u6b22\u8fce\u5927\u5bb6\u4e00\u8d77\u53c2\u4e0e\uff0c\u5171\u540c\u5f00\u53d1\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7720:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/EPSG_4326-ebcf508237a6a659deda1c1c05da731b.png"},4535:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/EPSG_7203-813d52c83637ec9bff32110935eb851d.png"},5019:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/WKB-fe5482c2e6681a0467a03cbf55761578.png"},8635:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createFoodData-42a1476e438f5b07b017a493510a074f.png"},289:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createLineTestData-d6b3f97eeae6bc43b1db36b3ac1536d4.png"},6547:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel-6b5834819d1f4d20958b9ba6f13ebbde.png"},2976:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel_PolygonTest-6c36f0248cb4843d13546b71df5b0eb1.png"},4962:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel_lineTest-b37d40db2f4c254af64535f30a2842c5.png"},379:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/querryFood-bd53767c9a6b584a1ba73dae4f429efb.png"},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>l});var s=i(6540);const d={},t=s.createContext(d);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/5e68b5a7.fa603874.js b/assets/js/5e68b5a7.fa603874.js
deleted file mode 100644
index d5c1b0d2bb..0000000000
--- a/assets/js/5e68b5a7.fa603874.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4032],{6679:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>o,frontMatter:()=>t,metadata:()=>l,toc:()=>a});var s=i(4848),d=i(8453);const t={},r="\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",l={id:"zh-CN/source/best-practices/spatial",title:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",description:"1. \u7b80\u4ecb",source:"@site/../docs/zh-CN/source/13.best-practices/5.spatial.md",sourceDirName:"zh-CN/source/13.best-practices",slug:"/zh-CN/source/best-practices/spatial",permalink:"/tugraph-db/zh-CN/source/best-practices/spatial",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",permalink:"/tugraph-db/zh-CN/source/best-practices/selection"},next:{title:"FAQ",permalink:"/tugraph-db/zh-CN/source/faq"}},c={},a=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u9884\u5907\u77e5\u8bc6",id:"2-\u9884\u5907\u77e5\u8bc6",level:2},{value:"2.1 WGS84\u5750\u6807\u7cfb EPSG: 4326",id:"21-wgs84\u5750\u6807\u7cfb-epsg-4326",level:3},{value:"2.2 Cartesian(\u7b1b\u5361\u5c14)\u5750\u6807\u7cfb EPSG: 7203",id:"22-cartesian\u7b1b\u5361\u5c14\u5750\u6807\u7cfb-epsg-7203",level:3},{value:"2.3 \u6570\u636e\u5b58\u50a8\u683c\u5f0f",id:"23-\u6570\u636e\u5b58\u50a8\u683c\u5f0f",level:3},{value:"2.4 \u5e38\u7528\u51fd\u6570",id:"24-\u5e38\u7528\u51fd\u6570",level:3},{value:"3. \u6570\u636e\u7c7b\u578b",id:"3-\u6570\u636e\u7c7b\u578b",level:2},{value:"4. \u51fd\u6570\u4ecb\u7ecd",id:"4-\u51fd\u6570\u4ecb\u7ecd",level:2},{value:"5. \u7f8e\u98df\u63a2\u7d22",id:"5-\u7f8e\u98df\u63a2\u7d22",level:2},{value:"5.1 \u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",id:"51-\u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",level:3},{value:"5.2 \u6570\u636e\u6a21\u578b\u8bbe\u8ba1",id:"52-\u6570\u636e\u6a21\u578b\u8bbe\u8ba1",level:3},{value:"5.3 \u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",id:"53-\u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",level:3},{value:"6. \u5c55\u671b",id:"6-\u5c55\u671b",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",children:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b"})}),"\n",(0,s.jsx)(n.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u56fe\u6570\u636e\u5e93\u7531\u8682\u8681\u96c6\u56e2\u4e0e\u6e05\u534e\u5927\u5b66\u8054\u5408\u7814\u53d1\uff0c\u6784\u5efa\u4e86\u4e00\u5957\u5305\u542b\u56fe\u5b58\u50a8\u3001\u56fe\u8ba1\u7b97\u3001\u56fe\u5b66\u4e60\u3001\u56fe\u7814\u53d1\u5e73\u53f0\u7684\u5b8c\u5584\u7684\u56fe\u6280\u672f\u4f53\u7cfb\uff0c\u62e5\u6709\u4e1a\u754c\u9886\u5148\u89c4\u6a21\u7684\u56fe\u96c6\u7fa4\u3002\u8fd1\u5e74\u6765\uff0c\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u5728\u56fe\u6570\u636e\u5e93\u4e2d\u7684\u5e94\u7528\u4ef7\u503c\u663e\u8457\uff0c\u5b83\u4e0d\u4ec5\u589e\u5f3a\u4e86\u6570\u636e\u7684\u8868\u8fbe\u80fd\u529b\uff0c\u8fd8\u4fc3\u8fdb\u4e86\u8de8\u9886\u57df\u6570\u636e\u7684\u878d\u5408\u5206\u6790\uff0c\u5c24\u5176\u5728\u793e\u4ea4\u7f51\u7edc\u3001\u5730\u56fe\u63a2\u7d22\u3001\u57ce\u5e02\u89c4\u5212\u7b49\u5173\u952e\u9886\u57df\u5c55\u73b0\u4e86\u5f3a\u5927\u7684\u5b9e\u7528\u4ef7\u503c\u3002TuGraph\u4e5f\u6b63\u5728\u9010\u6b65\u652f\u6301\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2-\u9884\u5907\u77e5\u8bc6",children:"2. \u9884\u5907\u77e5\u8bc6"}),"\n",(0,s.jsxs)(n.p,{children:["EPSG(",(0,s.jsx)(n.a,{href:"https://epsg.io/",children:"EPSG.io: Coordinate Systems Worldwide"}),") \u662f\u4e00\u4e2a\u6807\u51c6\u5316\u7684\u5730\u7406\u7a7a\u95f4\u53c2\u8003\u7cfb\u7edf\u6807\u8bc6\u7b26\u96c6\u5408\uff0c \u7528\u4e8e\u6807\u8bc6\u4e0d\u540c\u7684\u5730\u7406\u7a7a\u95f4\u53c2\u8003\u7cfb\u7edf\uff0c\u5305\u62ec\u5750\u6807\u7cfb\u7edf\u3001\u5730\u7406\u5750\u6807\u7cfb\u3001\u6295\u5f71\u5750\u6807\u7cfb\u7b49\u3002\u6211\u4eec\u5e38\u7528EPSG\u7f16\u7801\u8868\u793a\u6570\u636e\u7684\u5750\u6807\u7cfb\uff0c\u8fd9\u91cc\u6211\u4eec\u4ecb\u7ecd\u4e24\u79cd\u6700\u5e38\u89c1\u7684\u7a7a\u95f4\u5730\u7406\u5750\u6807\u7cfb\uff0c\u4e5f\u662f\u5927\u90e8\u5206\u6570\u636e\u5e93\u652f\u6301\u7684\u5750\u6807\u7cfb\u7c7b\u578b\u3002"]}),"\n",(0,s.jsx)(n.h3,{id:"21-wgs84\u5750\u6807\u7cfb-epsg-4326",children:"2.1 WGS84\u5750\u6807\u7cfb EPSG: 4326"}),"\n",(0,s.jsxs)(n.p,{children:["\u5168\u7403GPS\u5b9a\u4f4d\u7cfb\u7edf: WGS84\u662f\u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf(GPS)\u7684\u57fa\u7840\uff0c\u5141\u8bb8\u5168\u7403\u7684GPS\u63a5\u6536\u5668\u786e\u5b9a\u7cbe\u786e\u4f4d\u7f6e\u3002\u51e0\u4e4e\u6240\u6709\u73b0\u4ee3GPS\u8bbe\u5907\u90fd\u662f\u57fa\u4e8eWGS84\u5750\u6807\u7cfb\u6765\u63d0\u4f9b\u4f4d\u7f6e\u4fe1\u606f\u3002\u5730\u56fe\u5236\u4f5c\u548c\u5730\u7406\u4fe1\u606f\u7cfb\u7edf(GIS): \u5728\u5730\u56fe\u5236\u4f5c\u548cGIS\u9886\u57df\uff0cWGS84\u88ab\u5e7f\u6cdb\u7528\u4e8e\u5b9a\u4e49\u5730\u7403\u4e0a\u7684\u4f4d\u7f6e\u3002\u8fd9\u5305\u62ec\u5404\u79cd\u7c7b\u578b\u7684\u5730\u56fe\u521b\u5efa\u3001\u7a7a\u95f4\u6570\u636e\u5206\u6790\u548c\u7ba1\u7406\u7b49\u3002",(0,s.jsx)(n.img,{alt:"image.png",src:i(7720).A+"",width:"821",height:"390"})]}),"\n",(0,s.jsx)(n.h3,{id:"22-cartesian\u7b1b\u5361\u5c14\u5750\u6807\u7cfb-epsg-7203",children:"2.2 Cartesian(\u7b1b\u5361\u5c14)\u5750\u6807\u7cfb EPSG: 7203"}),"\n",(0,s.jsxs)(n.p,{children:["\u76f4\u89d2\u5750\u6807\u7cfb\uff0c\u662f\u4e00\u79cd\u6700\u57fa\u672c\u3001\u6700\u5e7f\u6cdb\u5e94\u7528\u7684\u5750\u6807\u7cfb\u7edf\u3002\u5b83\u901a\u8fc7\u4e24\u6761\u6570\u8f74\u5b9a\u4e49\u4e00\u4e2a\u5e73\u9762\uff0c\u4e09\u6761\u6570\u8f74\u5b9a\u4e49\u4e00\u4e2a\u7a7a\u95f4\uff0c\u8fd9\u4e9b\u8f74\u4e92\u76f8\u5782\u76f4\uff0c\u5728\u6570\u5b66\u3001\u7269\u7406\u3001\u5de5\u7a0b\u3001\u5929\u6587\u548c\u8bb8\u591a\u5176\u4ed6\u9886\u57df\u4e2d\u6709\u7740\u5e7f\u6cdb\u7684\u5e94\u7528\u3002",(0,s.jsx)(n.img,{alt:"image.png",src:i(4535).A+"",width:"560",height:"560"})]}),"\n",(0,s.jsx)(n.h3,{id:"23-\u6570\u636e\u5b58\u50a8\u683c\u5f0f",children:"2.3 \u6570\u636e\u5b58\u50a8\u683c\u5f0f"}),"\n",(0,s.jsx)(n.p,{children:"OGC(Open Geospatial Consortium) \u5b9a\u4e49\u4e86\u7a7a\u95f4\u6570\u636e\u7684\u6807\u51c6\u8868\u793a\u683c\u5f0f\uff0c\u5206\u522b\u4e3aWKT\u4e0eWKB\u683c\u5f0f\uff0c\u7528\u4e8e\u5728\u4e0d\u540c\u7cfb\u7edf\u548c\u5e73\u53f0\u4e4b\u95f4\u4ea4\u6362\u548c\u5b58\u50a8\u7a7a\u95f4\u6570\u636e\uff0c\u73b0\u5df2\u88ab\u5e7f\u6cdb\u91c7\u7528\u3002\u5176\u4e2dWKT(well-kown text)\u683c\u5f0f, \u662f\u4e00\u79cd\u6587\u672c\u6807\u8bb0\u8bed\u8a00,\u6613\u4e8e\u4eba\u7c7b\u9605\u8bfb\u548c\u7f16\u5199\uff0c\u800cWKB(Well-Known Binary)\u683c\u5f0f\u91c7\u7528\u4e00\u7cfb\u5217\u5b57\u8282\u6765\u7f16\u7801\u7a7a\u95f4\u6570\u636e\uff0c\u66f4\u9002\u5408\u5728\u8ba1\u7b97\u673a\u4e2d\u5b58\u50a8;"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"WKT:"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POINT( )\nLINESTRING( , , ...)\n"})}),"\n",(0,s.jsx)(n.p,{children:"WKT\u683c\u5f0f\u7684\u6570\u636e\u5982\u4e0a\u4f8b\u6240\u793a\uff0c\u5148\u6307\u5b9a\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\uff0c\u518d\u5728\u62ec\u53f7\u5185\u6307\u5b9a\u5177\u4f53\u7684\u5750\u6807\uff0c\u4e00\u4e2a\u5750\u6807\u5bf9\u8868\u793a\u4e00\u4e2a\u70b9\uff0c\u6bcf\u4e2a\u5750\u6807\u5bf9\u4e4b\u95f4\u7528\u9017\u53f7\u9694\u5f00\u3002\u5bf9\u4e8ePolygon\u7c7b\u578b\u7684\u6570\u636e\uff0c\u7b2c\u4e00\u4e2a\u5750\u6807\u5bf9\u9700\u8981\u4e0e\u6700\u540e\u4e00\u4e2a\u5750\u6807\u5bf9\u76f8\u540c\uff0c\u5f62\u6210\u95ed\u5408\u7684\u9762\u3002"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"WKB:"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(5019).A+"",width:"858",height:"264"})}),"\n",(0,s.jsx)(n.p,{children:"\u9488\u5bf9EWKB\u683c\u5f0f\u7684\u7f16\u7801\uff0c\u8bf4\u660e\u5982\u4e0b:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"\u7b2c0 - 1\u4f4d: \u7f16\u7801\u65b9\u5f0f;"}),"\n",(0,s.jsxs)(n.li,{children:["\u7b2c2 - 5\u4f4d: \u7a7a\u95f4\u6570\u636e\u7c7b\u578b;\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"0100: point"}),"\n",(0,s.jsx)(n.li,{children:"0200: linestring"}),"\n",(0,s.jsx)(n.li,{children:"0300: polygon"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\u7b2c6 - 9\u4f4d: \u6570\u636e\u7ef4\u5ea6;\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"0020: \u4e8c\u7ef4"}),"\n",(0,s.jsx)(n.li,{children:"0030: \u4e09\u7ef4"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"\u7b2c10 - 17\u4f4d: \u5750\u6807\u7cfb\u7684EPSG\u7f16\u7801;"}),"\n",(0,s.jsx)(n.li,{children:"\u7b2c18 - n\u4f4d: double\u7c7b\u578b\u7684\u5750\u6807\u5bf9\u768416\u8fdb\u5236\u8868\u793a\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"24-\u5e38\u7528\u51fd\u6570",children:"2.4 \u5e38\u7528\u51fd\u6570"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Description"}),(0,s.jsx)(n.th,{children:"Signature"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dbms.graph.createGraph"})}),(0,s.jsx)(n.td,{children:"\u521b\u5efa\u5b50\u56fe"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.createVertexLabel"})}),(0,s.jsx)(n.td,{children:"\u521b\u5efaVertex Label"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.getLabelSchema"})}),(0,s.jsx)(n.td,{children:"\u5217\u51falabel schema"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.deleteLabel"})}),(0,s.jsx)(n.td,{children:"\u5220\u9664Vertex"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u5b8c\u6574\u8be6\u7ec6\u7684\u51fd\u6570\u4f7f\u7528\u4ee5\u53ca\u63d2\u5165\u6570\u636e\u7684\u8bed\u53e5\uff0c\u53ef\u4ee5\u53c2\u8003 ",(0,s.jsx)(n.a,{href:"/tugraph-db/zh-CN/source/query/cypher",children:"Cypher API"})]}),"\n",(0,s.jsx)(n.h2,{id:"3-\u6570\u636e\u7c7b\u578b",children:"3. \u6570\u636e\u7c7b\u578b"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524d\u5728TuGraph\u4e2d\uff0c\u6211\u4eec\u5df2\u7ecf\u652f\u6301\u4e86Point, Linestring\u4e0ePolygon\u4e09\u79cd\u7c7b\u578b:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Point\uff1a\u70b9 point(2.0, 2.0, 7203)"}),"\n",(0,s.jsx)(n.li,{children:"Linestring\uff1a\u6298\u7ebf LINESTRING(0 2,1 1,2 0)"}),"\n",(0,s.jsx)(n.li,{children:"Polygon\uff1a\u591a\u8fb9\u5f62 POLYGON((0 0,0 7,4 2,2 0,0 0))"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\u5750\u6807\u70b9\u90fd\u662fdouble\u578b\uff0c\u521b\u5efa\u56fe\u6a21\u578b\u548c\u63d2\u5165\u6570\u636e\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u6807\u8bb0\u7f8e\u98df\u4f4d\u7f6e\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true) \n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(6547).A+"",width:"932",height:"322"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u6807\u8bb0\u7f8e\u98df\u70b9\u7684\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CREATE (n:food {id:10001, name: 'aco Bell',pointTest:point(3.0,4.0,7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(8635).A+"",width:"1112",height:"706"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u5177\u6709\u6298\u7ebf\u5c5e\u6027\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('lineTest', 'id', 'id', int64, false, 'name', string, true,'linestringTest',linestring,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(4962).A+"",width:"953",height:"432"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u5177\u6709\u6298\u7ebf\u5c5e\u6027\u7684\u70b9\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:lineTest {id:102, name: 'Tom',linestringTest:linestringwkt('LINESTRING(0 2,1 1,2 0)', 7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(289).A+"",width:"1777",height:"854"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u521b\u5efa\u5177\u6709\u591a\u8fb9\u578b\u5c5e\u6027\u7684\u70b9\u6a21\u578b"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CALL db.createVertexLabel('polygonTest', 'id', 'id', int64, false, 'name', string, true,'polygonTest',polygon,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(2976).A+"",width:"922",height:"389"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u63d2\u5165\u5177\u6709\u591a\u8fb9\u578b\u5c5e\u6027\u7684\u70b9\u6570\u636e"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:polygonTest {id:103, name: 'polygonTest',polygonTest:polygonwkt('POLYGON((0 0,0 7,4 2,2 0,0 0))', 7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-\u51fd\u6570\u4ecb\u7ecd",children:"4. \u51fd\u6570\u4ecb\u7ecd"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u51fd\u6570\u540d"}),(0,s.jsx)(n.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(n.th,{children:"\u8f93\u5165\u53c2\u6570"}),(0,s.jsx)(n.th,{children:"\u8fd4\u56de\u503c\u7c7b\u578b"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Distance()"}),(0,s.jsx)(n.td,{children:"\u8ba1\u7b97\u4e24\u4e2a\u7a7a\u95f4\u6570\u636e\u95f4\u7684\u8ddd\u79bb(\u8981\u6c42\u5750\u6807\u7cfb\u76f8\u540c)"}),(0,s.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,s.jsx)(n.td,{children:"double"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Disjoint()"}),(0,s.jsx)(n.td,{children:"\u5224\u65ad\u4e24\u4e2a\u7a7a\u95f4\u6570\u636e\u662f\u5426\u76f8\u4ea4\uff08\u5f00\u53d1\u4e2d\uff09"}),(0,s.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,s.jsx)(n.td,{children:"bool"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"WithinBBox()"}),(0,s.jsx)(n.td,{children:"\u5224\u65ad\u67d0\u4e2a\u7a7a\u95f4\u6570\u636e\u662f\u5426\u5728\u7ed9\u5b9a\u7684\u957f\u65b9\u5f62\u533a\u57df\u5185\uff08\u5f00\u53d1\u4e2d\uff09"}),(0,s.jsx)(n.td,{children:"Spatial data, Point1"}),(0,s.jsx)(n.td,{children:"bool"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-\u7f8e\u98df\u63a2\u7d22",children:"5. \u7f8e\u98df\u63a2\u7d22"}),"\n",(0,s.jsx)(n.h3,{id:"51-\u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350",children:"5.1 \u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u7684\u4e2a\u6027\u5316\u63a8\u8350"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u672c\u7ae0\u8282\u4e2d\uff0c\u6211\u4eec\u5c06\u63a2\u7d22\u5982\u4f55\u5229\u7528Tugraph\u56fe\u6570\u636e\u5e93\u7684\u5730\u7406\u7a7a\u95f4\u529f\u80fd\uff0c\u6784\u5efa\u4e00\u4e2a\u751f\u52a8\u6709\u8da3\u7684\u7f8e\u98df\u63a2\u7d22\u5e94\u7528\uff0c\u5c06\u201c\u4eba\u201d\u4e0e\u201c\u7f8e\u98df\u201d\u901a\u8fc7\u5730\u7406\u4f4d\u7f6e\u7d27\u5bc6\u76f8\u8fde\uff0c\u5b9e\u73b0\u4e2a\u6027\u5316\u7f8e\u98df\u63a8\u8350\u3002\u60f3\u8c61\u4e00\u4e0b\uff0c\u65e0\u8bba\u8eab\u5904\u4f55\u65b9\uff0c\u53ea\u9700\u8f7b\u8f7b\u4e00\u70b9\uff0c\u5468\u56f4\u8bf1\u4eba\u7f8e\u98df\u4fbf\u5c3d\u6536\u773c\u5e95\uff0c\u8fd9\u6b63\u662f\u6211\u4eec\u5373\u5c06\u6784\u5efa\u7684\u573a\u666f\u9b45\u529b\u6240\u5728\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"52-\u6570\u636e\u6a21\u578b\u8bbe\u8ba1",children:"5.2 \u6570\u636e\u6a21\u578b\u8bbe\u8ba1"}),"\n",(0,s.jsx)(n.p,{children:"\u6211\u4eec\u9996\u5148\u5b9a\u4e49\u4e24\u79cd\u6838\u5fc3\u8282\u70b9\u7c7b\u578b\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Food\uff08\u7f8e\u98df\uff09\u8282\u70b9\uff1a\u6bcf\u4e00\u5bb6\u9910\u5385\u6216\u5c0f\u5403\u5e97\u90fd\u53ef\u4ee5\u4f5c\u4e3a\u4e00\u4e2aFood\u8282\u70b9\uff0c\u5176\u5c5e\u6027\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u540d\u79f0\u3001\u5730\u5740\u3001\u8bc4\u5206\u3001\u7f8e\u98df\u7c7b\u522b\u7b49\u3002\u7279\u522b\u5730\uff0c\u6211\u4eec\u5c06\u5728\u6bcf\u4e2aFood\u8282\u70b9\u4e0a\u9644\u52a0\u5730\u7406\u5750\u6807\u4fe1\u606f\uff0c\u7528\u4ee5\u7cbe\u786e\u8bb0\u5f55\u5176\u5730\u7406\u4f4d\u7f6e\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true,'mark',double,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u51c6\u5907\u6570\u636e\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"CREATE (n:food {id:10001, name: 'Starbucks',pointTest:point(1.0,1.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10002, name: 'KFC',pointTest:point(2.0,1.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10003, name: 'Pizza Hut',pointTest:point(2.0,5.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10004, name: 'Taco Bell',pointTest:point(3.0,4.0,7203),mark:4.7}) RETURN n\nCREATE (n:food {id:10005, name: 'Pizza Fusion',pointTest:point(5.0,3.0,7203),mark:4.9}) RETURN n\nCREATE (n:food {id:10006, name: 'HaiDiLao Hot Pot',pointTest:point(2.0,2.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10007, name: 'Lao Sze Chuan',pointTest:point(4.0,3.0,7203),mark:4.7}) RETURN n\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Person\uff08\u4eba\u7269\uff09\u8282\u70b9\uff1a\u4ee3\u8868\u5e94\u7528\u7684\u7528\u6237\uff0c\u5c5e\u6027\u5305\u542b\u7528\u6237\u540d\u3001\u5f53\u524d\u4f4d\u7f6e\u7b49\u3002\u7528\u6237\u7684\u5f53\u524d\u4f4d\u7f6e\u540c\u6837\u901a\u8fc7\u5730\u7406\u5750\u6807\u8868\u793a\uff0c\u4fbf\u4e8e\u540e\u7eed\u7684\u5730\u7406\u7a7a\u95f4\u67e5\u8be2\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CALL db.createVertexLabel('person', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true)\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u51c6\u5907\u6570\u636e\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:" CREATE (n:person {id:1, name: 'Tom',pointTest:point(3.0,3.0,7203)}) RETURN n\n"})}),"\n",(0,s.jsx)(n.h3,{id:"53-\u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2",children:"5.3 \u6784\u5efa\u7f8e\u98df\u63a2\u7d22\u67e5\u8be2"}),"\n",(0,s.jsx)(n.p,{children:"\u80fd\u591f\u6839\u636e\u7528\u6237\u7684\u5f53\u524d\u4f4d\u7f6e\uff0c\u5bfb\u627e\u8ddd\u79bb2.5\u4ee5\u5185\u7684\u7f8e\u98df,\u6839\u636e\u8ddd\u79bb\u8fdb\u884c\u5347\u5e8f\u6392\u5217\u3002\u8fd4\u56de\u8ddd\u79bb\u548c\u8bc4\u5206\u8ba9\u7528\u6237\u5f97\u5012\u66f4\u597d\u7684\u4f53\u9a8c\u3002"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"\u67e5\u8be2\u8bed\u53e5"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"match (n:person{id:1}),(m:food) with n.pointTest as p1,m.pointTest as p2,m.name as food,m.mark as mark\nCALL spatial.distance(p1,p2) YIELD distance \nWHERE distance<2.5\nRETURN food,distance,mark ORDER by distance\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"image.png",src:i(379).A+"",width:"1786",height:"821"})}),"\n",(0,s.jsx)(n.p,{children:"\u6b64\u67e5\u8be2\u9996\u5148\u5339\u914d\u7279\u5b9a\u7684Person\u8282\u70b9\uff08\u4ee5\u7528\u6237\u540d\u201cTom\u201d\u4e3a\u4f8b\uff09\uff0c\u7136\u540e\u627e\u5230\u6240\u6709Food\u8282\u70b9\uff0c\u5229\u7528\u81ea\u5b9a\u4e49\u7684distance\u51fd\u6570\uff0c\u8ba1\u7b97Person\u8282\u70b9\u5f53\u524d\u4f4d\u7f6e\u4e0e\u6bcf\u4e2aFood\u8282\u70b9\u4e4b\u95f4\u7684\u76f4\u7ebf\u8ddd\u79bb\uff0c\u7b5b\u9009\u51fa\u8ddd\u79bb\u57282.5\u4e4b\u5185\u7684\u7f8e\u98df\u3002\u6700\u540e\uff0c\u6309\u7167\u7f8e\u98df\u7684\u8ddd\u79bb\u5347\u5e8f\u6392\u5217\u7ed3\u679c\uff0c\u9644\u5e26\u8bc4\u5206\u53c2\u8003\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u6700\u4f18\u8d28\u7684\u63a8\u8350\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"6-\u5c55\u671b",children:"6. \u5c55\u671b"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7\u4e0a\u8ff0\u7ae0\u8282\uff0c\u6211\u4eec\u4e0d\u4ec5\u5c55\u793a\u4e86TuGraph\u5728\u5730\u7406\u7a7a\u95f4\u6570\u636e\u5904\u7406\u7684\u80fd\u529b\uff0c\u4e5f\u63cf\u7ed8\u4e86\u4e00\u4e2a\u5bcc\u6709\u5438\u5f15\u529b\u7684\u7f8e\u98df\u63a2\u7d22\u573a\u666f\uff0c\u8bc1\u660e\u4e86\u56fe\u6570\u636e\u5e93\u5728\u7ed3\u5408\u5730\u7406\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u4e2a\u6027\u5316\u670d\u52a1\u65b9\u9762\u5177\u6709\u5de8\u5927\u6f5c\u529b\u3002\u65e0\u8bba\u662f\u5bfb\u627e\u5468\u672b\u7684\u4f11\u95f2\u53bb\u5904\uff0c\u8fd8\u662f\u63a2\u7d22\u65c5\u884c\u9014\u4e2d\u7684\u7279\u8272\u7f8e\u98df\uff0c\u8fd9\u6837\u7684\u5e94\u7528\u90fd\u5c06\u6781\u5927\u5730\u4e30\u5bcc\u4eba\u4eec\u7684\u751f\u6d3b\u4f53\u9a8c\u3002"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u5c06\u6765\u4f1a\u7ee7\u7eed\u5b9e\u73b0Disjoint() \u3001WithinBBox()\uff0c\u4f1a\u4e30\u5bcc\u66f4\u591a\u4f7f\u7528\u573a\u666f\u3002\u5f53\u7136\uff0c\u4e5f\u6b22\u8fce\u5927\u5bb6\u4e00\u8d77\u53c2\u4e0e\uff0c\u5171\u540c\u5f00\u53d1\u5730\u7406\u7a7a\u95f4\u529f\u80fd\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7720:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/EPSG_4326-ebcf508237a6a659deda1c1c05da731b.png"},4535:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/EPSG_7203-813d52c83637ec9bff32110935eb851d.png"},5019:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/WKB-fe5482c2e6681a0467a03cbf55761578.png"},8635:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createFoodData-42a1476e438f5b07b017a493510a074f.png"},289:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createLineTestData-d6b3f97eeae6bc43b1db36b3ac1536d4.png"},6547:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel-6b5834819d1f4d20958b9ba6f13ebbde.png"},2976:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel_PolygonTest-6c36f0248cb4843d13546b71df5b0eb1.png"},4962:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/createVertexLabel_lineTest-b37d40db2f4c254af64535f30a2842c5.png"},379:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/querryFood-bd53767c9a6b584a1ba73dae4f429efb.png"},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>l});var s=i(6540);const d={},t=s.createContext(d);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/605c3d65.7af834f4.js b/assets/js/605c3d65.7af834f4.js
new file mode 100644
index 0000000000..02c7759e10
--- /dev/null
+++ b/assets/js/605c3d65.7af834f4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7419],{6029:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var s=r(4848),t=r(8453);const l={},i="\u96c6\u6210\u6d4b\u8bd5",d={id:"quality/integration-testing",title:"\u96c6\u6210\u6d4b\u8bd5",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u5982\u4f55\u4f7f\u7528",source:"@site/../docs/zh-CN/source/11.quality/2.integration-testing.md",sourceDirName:"11.quality",slug:"/quality/integration-testing",permalink:"/tugraph-db/zh/quality/integration-testing",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5355\u5143\u6d4b\u8bd5",permalink:"/tugraph-db/zh/quality/unit-testing"},next:{title:"\u5982\u4f55\u8d21\u732e",permalink:"/tugraph-db/zh/contributor-manual/contributing"}},c={},a=[{value:"1.TuGraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",id:"1tugraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",level:2},{value:"2.TuGraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",id:"2tugraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",level:2},{value:"2.1.\u7ec4\u4ef6\u63cf\u8ff0",id:"21\u7ec4\u4ef6\u63cf\u8ff0",level:3},{value:"2.2.\u7ec4\u4ef6\u7528\u6cd5",id:"22\u7ec4\u4ef6\u7528\u6cd5",level:3},{value:"2.2.1.server",id:"221server",level:4},{value:"2.2.1.1.\u542f\u52a8\u53c2\u6570",id:"2211\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.1.2.\u542f\u52a8\u547d\u4ee4",id:"2212\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.2.client",id:"222client",level:4},{value:"2.2.2.1.\u542f\u52a8\u53c2\u6570",id:"2221\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.2.2.\u542f\u52a8\u547d\u4ee4",id:"2222\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.3.importor",id:"223importor",level:4},{value:"2.2.3.1.\u542f\u52a8\u53c2\u6570",id:"2231\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.3.2.\u542f\u52a8\u547d\u4ee4",id:"2232\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.4.exportor",id:"224exportor",level:4},{value:"2.2.4.1.\u542f\u52a8\u53c2\u6570",id:"2241\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.4.2.\u542f\u52a8\u547d\u4ee4",id:"2242\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.5.backup_binlog",id:"225backup_binlog",level:4},{value:"2.2.5.1.\u542f\u52a8\u53c2\u6570",id:"2251\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.5.2.\u542f\u52a8\u547d\u4ee4",id:"2252\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.6.backup_copy_dir",id:"226backup_copy_dir",level:4},{value:"2.2.6.1.\u542f\u52a8\u53c2\u6570",id:"2261\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.6.2.\u542f\u52a8\u547d\u4ee4",id:"2262\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.7.build_so",id:"227build_so",level:4},{value:"2.2.7.1.\u542f\u52a8\u53c2\u6570",id:"2271\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.7.2.\u542f\u52a8\u547d\u4ee4",id:"2272\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.8.copy_snapshot",id:"228copy_snapshot",level:4},{value:"2.2.8.1.\u542f\u52a8\u53c2\u6570",id:"2281\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.8.2.\u542f\u52a8\u547d\u4ee4",id:"2282\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.9.copy_dir",id:"229copy_dir",level:4},{value:"2.2.9.1.\u542f\u52a8\u53c2\u6570",id:"2291\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.9.2.\u542f\u52a8\u547d\u4ee4",id:"2292\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.10.exec",id:"2210exec",level:4},{value:"2.2.10.1.\u542f\u52a8\u53c2\u6570",id:"22101\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.10.2.\u542f\u52a8\u547d\u4ee4",id:"22102\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.11.algo",id:"2211algo",level:4},{value:"2.2.11.1.\u542f\u52a8\u53c2\u6570",id:"22111\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.11.2.\u542f\u52a8\u547d\u4ee4",id:"22112\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.12.bash",id:"2212bash",level:4},{value:"2.2.12.1.\u542f\u52a8\u53c2\u6570",id:"22121\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.12.2.\u542f\u52a8\u547d\u4ee4",id:"22122\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.13.rest",id:"2213rest",level:4},{value:"2.2.13.1.\u542f\u52a8\u53c2\u6570",id:"22131\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.13.2.\u542f\u52a8\u547d\u4ee4",id:"22132\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.3.\u6d4b\u8bd5\u6837\u4f8b",id:"23\u6d4b\u8bd5\u6837\u4f8b",level:3},{value:"2.3.1.rest",id:"231rest",level:4},{value:"2.3.2.client",id:"232client",level:4},{value:"2.3.3.exportor/importor",id:"233exportorimportor",level:4},{value:"2.3.4.\u5176\u4ed6\u6d4b\u8bd5",id:"234\u5176\u4ed6\u6d4b\u8bd5",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u96c6\u6210\u6d4b\u8bd5",children:"\u96c6\u6210\u6d4b\u8bd5"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u5982\u4f55\u4f7f\u7528"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1tugraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",children:"1.TuGraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u5355\u5143\u6d4b\u8bd5\u4e0e\u529f\u80fd\u6d4b\u8bd5\u4e2d\uff0c\u6709\u90e8\u5206\u7528\u4f8b\u76f4\u63a5\u5f00\u542fgalaxy\u6216statemachine\u6765\u8fdb\u884c\u6d4b\u8bd5\uff0c\u8fd9\u5e76\u4e0d\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u6d41\u7a0b\u3002\u5728\u5b8c\u6574\u7684cs\u67b6\u6784\u4e2d\uff0c\u7528\u6237\u8bf7\u6c42\u662f\u901a\u8fc7\u5ba2\u6237\u7aef\u53d1\u5f80\u670d\u52a1\u7aef\uff0c\u7f51\u7edc\u901a\u4fe1\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\uff0c\u4e3a\u4e86\u907f\u514d\u5355\u5143\u6d4b\u8bd5\u4e0d\u5b8c\u6574\u5e26\u6765\u7684bug\uff0c\u9488\u5bf9\u8fd9\u79cd\u60c5\u51b5\uff0c\u4f7f\u7528\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u8fdb\u884c\u5168\u94fe\u8def\u7684\u5b8c\u6574\u6d4b\u8bd5\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2tugraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",children:"2.TuGraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u91c7\u7528pytest\u6846\u67b6\u4f5c\u4e3a\u81ea\u5df1\u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\uff0cpytest\u6846\u67b6\u4f5c\u4e3a\u76ee\u524d\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684cs\u7aef\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\uff0c\u4ee5\u5176\u7075\u6d3b\u7b80\u5355\uff0c\u5bb9\u6613\u4e0a\u624b\uff0c\u5e76\u4e14\u652f\u6301\u53c2\u6570\u5316\u7684\u4f7f\u7528\u65b9\u5f0f\u800c\u8457\u79f0\uff0cTuGraph\u57fa\u4e8epytest\u63d0\u4f9b\u7684\u529f\u80fd\uff0c\u62bd\u8c61\u51fa\u4e86\u4e0d\u540c\u7684\u5de5\u5177\uff0c\u901a\u8fc7\u53c2\u6570\u6765\u63a7\u5236\u5404\u4e2a\u5de5\u5177\u7684\u5904\u7406\u903b\u8f91\uff0c\u4ee5\u65b9\u4fbf\u5927\u5bb6\u8fdb\u884c\u9ad8\u6548\u7684\u6d4b\u8bd5\u4ee3\u7801\u5f00\u53d1\u3002"}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u591apytest\u4fe1\u606f\u8bf7\u53c2\u8003\u5b98\u7f51: ",(0,s.jsx)(n.a,{href:"https://docs.pytest.org/en/7.2.x/getting-started.html",children:"https://docs.pytest.org/en/7.2.x/getting-started.html"})]}),"\n",(0,s.jsx)(n.h3,{id:"21\u7ec4\u4ef6\u63cf\u8ff0",children:"2.1.\u7ec4\u4ef6\u63cf\u8ff0"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u7ec4\u4ef6\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u7ec4\u4ef6\u529f\u80fd"}),(0,s.jsx)(n.th,{children:"\u5b9e\u73b0\u65b9\u5f0f"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"server"}),(0,s.jsx)(n.td,{children:"TuGraph\u5355\u673a\u670d\u52a1"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u542f\u52a8\u670d\u52a1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"client"}),(0,s.jsx)(n.td,{children:"TuGraph Rpc Client"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5f00\u542fTuGraph Python Rpc Client\u53d1\u9001\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"importor"}),(0,s.jsx)(n.td,{children:"TuGraph Importor"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5bfc\u5165\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exportor"}),(0,s.jsx)(n.td,{children:"TuGraph Exportor"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5bfc\u51fa\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"backup_binlog"}),(0,s.jsx)(n.td,{children:"TuGraph Backup Binlog"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efdbinlog\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"backup_copy_dir"}),(0,s.jsx)(n.td,{children:"TuGraph Backup"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efd\u5b8c\u6574db\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"build_so"}),(0,s.jsx)(n.td,{children:"\u7f16\u8bd1c++\u52a8\u6001\u8fde\u63a5\u5e93\u7684\u7ec4\u4ef6"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406gcc\u7f16\u8bd1\u903b\u8f91"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"copy_snapshot"}),(0,s.jsx)(n.td,{children:"TuGraph Copy Snapshot"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efdsnapshot\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"copydir"}),(0,s.jsx)(n.td,{children:"\u6587\u4ef6\u5939\u62f7\u8d1d"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5904\u7406\u6587\u4ef6\u5939\u62f7\u8d1d\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exec"}),(0,s.jsx)(n.td,{children:"\u6267\u884cc++/java\u53ef\u6267\u884c\u6587\u4ef6"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u542f\u52a8C++\u53ef\u6267\u884c\u6587\u4ef6"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"algo"}),(0,s.jsx)(n.td,{children:"\u6267\u884c\u7b97\u6cd5"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u6267\u884c\u7b97\u6cd5"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"bash"}),(0,s.jsx)(n.td,{children:"\u6267\u884cbash\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u6267\u884cbash\u547d\u4ee4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"rest"}),(0,s.jsx)(n.td,{children:"TuGraph Python Rest Client"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5f00\u542fTuGraph Python Rest Client\u53d1\u9001\u8bf7\u6c42"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"22\u7ec4\u4ef6\u7528\u6cd5",children:"2.2.\u7ec4\u4ef6\u7528\u6cd5"}),"\n",(0,s.jsx)(n.h4,{id:"221server",children:"2.2.1.server"}),"\n",(0,s.jsx)(n.h5,{id:"2211\u542f\u52a8\u53c2\u6570",children:"2.2.1.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7072 --rpc_port 9092",\n "cleanup_dir":["./testdb"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2212\u542f\u52a8\u547d\u4ee4",children:"2.2.1.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u4e0d\u540c\u7684\u5904\u7406\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8server\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u505c\u6b62server\uff0c\u5e76\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\ndef test_server(self, server):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"222client",children:"2.2.2.client"}),"\n",(0,s.jsx)(n.h5,{id:"2221\u542f\u52a8\u53c2\u6570",children:"2.2.2.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"host\u662fTuGraph Server\u7684ip\u548c\u7aef\u53e3"}),"\n",(0,s.jsx)(n.li,{children:"user\u662fTuGraph Server\u7684\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"password\u662fTuGraph Server \u4e2duser\u5bf9\u5e94\u7684\u5bc6\u7801"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'CLIENTOPT = {"host":"127.0.0.1:9092", "user":"admin", "password":"73@TuGraph"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2222\u542f\u52a8\u547d\u4ee4",children:"2.2.2.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u4e0d\u540c\u7684\u5904\u7406\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8\u5ba2\u6237\u7aef\uff0c\u51fd\u6570\u6267\u884c\u7ed3\u675f\u540e\u4f1a\u7ed3\u675f\u5ba2\u6237\u7aef"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:"@pytest.mark.parametrize(\"server\", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize(\"client\", [CLIENTOPT], indirect=True)\ndef test_client(self, server, client):\n ret = client.callCypher(\"CALL db.createEdgeLabel('followed', '[]', 'address', string, false, 'date', int32, false)\", \"default\")\n assert ret[0]\n ret = client.callCypher(\"CALL db.createEdgeLabel('followed', '[]', 'address', string, false, 'date', int32, false)\", \"default\")\n assert ret[0] == False\n"})}),"\n",(0,s.jsx)(n.h4,{id:"223importor",children:"2.2.3.importor"}),"\n",(0,s.jsx)(n.h5,{id:"2231\u542f\u52a8\u53c2\u6570",children:"2.2.3.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'IMPORTOPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./testdb", "./.import_tmp"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2232\u542f\u52a8\u547d\u4ee4",children:"2.2.3.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5bfc\u5165\u4e0d\u540c\u7684\u6570\u636e\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5bfc\u5165\u6570\u636e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("importor", [IMPORTOPT], indirect=True)\ndef test_importor(self, importor):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"224exportor",children:"2.2.4.exportor"}),"\n",(0,s.jsx)(n.h5,{id:"2241\u542f\u52a8\u53c2\u6570",children:"2.2.4.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'EXPORT_DEF_OPT = {"cmd":"./lgraph_export -d ./testdb -e ./export/default -g default -u admin -p 73@TuGraph",\n "cleanup_dir":["./export"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2242\u542f\u52a8\u547d\u4ee4",children:"2.2.4.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5bfc\u51fa\u4e0d\u540c\u7684\u6570\u636e\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5bfc\u51fa\u6570\u636e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("exportor", [EXPORT_DEF_OPT], indirect=True)\ndef test_exportor(self, exportor):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"225backup_binlog",children:"2.2.5.backup_binlog"}),"\n",(0,s.jsx)(n.h5,{id:"2251\u542f\u52a8\u53c2\u6570",children:"2.2.5.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BINLOGOPT = {"cmd" : "./lgraph_binlog -a restore --host 127.0.0.1 --port 9093 -u admin -p 73@TuGraph -f ./testdb/binlog/*",\n "cleanup_dir":[]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2252\u542f\u52a8\u547d\u4ee4",children:"2.2.5.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5907\u4efd\u4e0d\u540c\u7684binlog\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dbinlog\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("backup_binlog", [BINLOGOPT], indirect=True)\ndef test_backup_binlog(self, backup_binlog):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"226backup_copy_dir",children:"2.2.6.backup_copy_dir"}),"\n",(0,s.jsx)(n.h5,{id:"2261\u542f\u52a8\u53c2\u6570",children:"2.2.6.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BACKUPOPT = {"cmd" : "./lgraph_backup --src ./testdb -dst ./testdb1",\n "cleanup_dir":[]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2262\u542f\u52a8\u547d\u4ee4",children:"2.2.6.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5907\u4efd\u4e0d\u540c\u7684db\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1ddb\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("backup_copy_dir", [BACKUPOPT], indirect=True)\ndef test_backup_copy_dir(self, backup_copy_dir):\n\tpass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"227build_so",children:"2.2.7.build_so"}),"\n",(0,s.jsx)(n.h5,{id:"2271\u542f\u52a8\u53c2\u6570",children:"2.2.7.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4\uff0c\u91c7\u7528python\u5217\u8868\u4f20\u5165\uff0c\u53ef\u4ee5\u4e00\u6b21\u7f16\u8bd1\u591a\u4e2aso"}),"\n",(0,s.jsx)(n.li,{children:"so_name\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684so\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BUILDOPT = {"cmd":["g++ -fno-gnu-unique -fPIC -g --std=c++17 -I ../../include -I ../../deps/install/include -rdynamic -O3 -fopenmp -DNDEBUG -o ./scan_graph.so ../../test/test_procedures/scan_graph.cpp ./liblgraph.so -shared",\n "g++ -fno-gnu-unique -fPIC -g --std=c++17 -I ../../include -I ../../deps/install/include -rdynamic -O3 -fopenmp -DNDEBUG -o ./sortstr.so ../../test/test_procedures/sortstr.cpp ./liblgraph.so -shared"],\n "so_name":["./scan_graph.so", "./sortstr.so"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2272\u542f\u52a8\u547d\u4ee4",children:"2.2.7.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u7f16\u8bd1\u4e0d\u540c\u7684so\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u751f\u6210so\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406so_name\u5217\u8868\u6307\u5b9a\u7684\u52a8\u6001\u5e93"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("build_so", [BUILDOPT], indirect=True)\ndef test_build_so(self, build_so):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"228copy_snapshot",children:"2.2.8.copy_snapshot"}),"\n",(0,s.jsx)(n.h5,{id:"2281\u542f\u52a8\u53c2\u6570",children:"2.2.8.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"src\u662f\u539fdb"}),"\n",(0,s.jsx)(n.li,{children:"dst\u662f\u62f7\u8d1d\u540e\u7684snapshot"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'COPYSNAPOPT = {"src" : "./testdb", "dst" : "./testdb1"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2282\u542f\u52a8\u547d\u4ee4",children:"2.2.8.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u62f7\u8d1d\u4e0d\u540c\u7684snapshot\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dsrc\u4e2d\u7684snapshot\u5230dst\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("copy_snapshot", [COPYSNAPOPT], indirect=True)\ndef test_copy_snapshot(self, copy_snapshot):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"229copy_dir",children:"2.2.9.copy_dir"}),"\n",(0,s.jsx)(n.h5,{id:"2291\u542f\u52a8\u53c2\u6570",children:"2.2.9.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"src\u662f\u539fdb"}),"\n",(0,s.jsx)(n.li,{children:"dst\u662f\u62f7\u8d1d\u540e\u7684snapshot"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'COPYSNAPOPT = {"src" : "./testdb", "dst" : "./testdb1"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2292\u542f\u52a8\u547d\u4ee4",children:"2.2.9.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u62f7\u8d1d\u4e0d\u540c\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dsrc\u5230dst\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("copy_dir", [COPYDIR], indirect=True)\ndef test_copy_dir(self, copy_dir):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2210exec",children:"2.2.10.exec"}),"\n",(0,s.jsx)(n.h5,{id:"22101\u542f\u52a8\u53c2\u6570",children:"2.2.10.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'EXECOPT = {\n "cmd" : "test_rpc_client/cpp/CppClientTest/build/clienttest"\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22102\u542f\u52a8\u547d\u4ee4",children:"2.2.10.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684\u547d\u4ee4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("exec", [EXECOPT], indirect=True)\ndef test_exec(self, exec):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2211algo",children:"2.2.11.algo"}),"\n",(0,s.jsx)(n.h5,{id:"22111\u542f\u52a8\u53c2\u6570",children:"2.2.11.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"result\u662f\u7b97\u6cd5\u9884\u671f\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6267\u884c\u5b8c\u6210\u4f1a\u901a\u8fc7\u5b9e\u9645\u7ed3\u679c\u4e0e\u9884\u671f\u7ed3\u679c\u8fdb\u884c\u6bd4\u8f83\uff0c\u4e0d\u540c\u5219\u6d4b\u8bd5\u5931\u8d25"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BFSEMBEDOPT = {\n "cmd" : "algo/bfs_embed ./testdb",\n "result" : ["found_vertices = 3829"]\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22112\u542f\u52a8\u547d\u4ee4",children:"2.2.11.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684\u7b97\u6cd5\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684\u7b97\u6cd5\uff0c\u51fd\u6570\u4e3b\u4f53\u7b49\u5f85\u7b97\u6cd5\u6267\u884c\u5b8c\u6210\u540e\u5bf9\u6bd4\u7ed3\u679c"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("algo", [BFSEMBEDOPT], indirect=True)\ndef test_exec_bfs_embed(self, algo):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2212bash",children:"2.2.12.bash"}),"\n",(0,s.jsx)(n.h5,{id:"22121\u542f\u52a8\u53c2\u6570",children:"2.2.12.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BASHOPT = {\n "cmd" : "sh ./test_rpc_client/cpp/CppClientTest/compile.sh"\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22122\u542f\u52a8\u547d\u4ee4",children:"2.2.12.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684bash\u547d\u4ee4\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684bash\u547d\u4ee4\uff0c\u51fd\u6570\u4e3b\u4f53\u7b49\u5f85\u7b97\u6cd5\u6267\u884c\u5b8c\u6210"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("bash", [BASHOPT], indirect=True)\ndef test_bash(self, bash):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2213rest",children:"2.2.13.rest"}),"\n",(0,s.jsx)(n.h5,{id:"22131\u542f\u52a8\u53c2\u6570",children:"2.2.13.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"port\u662fTuGraph Server\u7684\u7aef\u53e3"}),"\n",(0,s.jsx)(n.li,{children:"user\u662fTuGraph Server\u7684\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"password\u662fTuGraph Server \u4e2duser\u5bf9\u5e94\u7684\u5bc6\u7801"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'RESTTOPT = {"port":"7073", "user":"admin", "password":"73@TuGraph"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22132\u542f\u52a8\u547d\u4ee4",children:"2.2.13.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u94fe\u63a5\u4e0d\u540c\u7684TuGraph Rest Server\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8\u5ba2\u6237\u7aef\uff0c\u51fd\u6570\u6267\u884c\u7ed3\u675f\u540e\u4f1a\u7ed3\u675f\u5ba2\u6237\u7aef"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("rest", [RESTTOPT], indirect=True)\ndef test_get_info(self, server, rest):\n\tpass\n'})}),"\n",(0,s.jsx)(n.h3,{id:"23\u6d4b\u8bd5\u6837\u4f8b",children:"2.3.\u6d4b\u8bd5\u6837\u4f8b"}),"\n",(0,s.jsx)(n.h4,{id:"231rest",children:"2.3.1.rest"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_get_info\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u542f\u52a8server\uff0cserver\u542f\u52a8\u540e\u542f\u52a8\u4e86rest client\uff0c\u8fdb\u5165test_get_info\u51fd\u6570\u540e\u83b7\u53d6server\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u5e76\u901a\u8fc7assert\u5224\u65ad\u662f\u5426\u6709\u83b7\u53d6\u5230cpu\u7684\u4fe1\u606f\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7073 --rpc_port 9093",\n "cleanup_dir":["./testdb"]}\nRESTTOPT = {"port":"7073", "user":"admin", "password":"73@TuGraph"}\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("rest", [RESTTOPT], indirect=True)\ndef test_get_info(self, server, rest):\n res = rest.get_server_info()\n log.info("res : %s", res)\n assert(\'cpu\' in res)\n'})}),"\n",(0,s.jsx)(n.h4,{id:"232client",children:"2.3.2.client"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_flushdb\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u6267\u884c\u4e86\u6570\u636e\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\uff0c\u5e76\u542f\u52a8server\u540e\uff0c\u901a\u8fc7client\u521b\u5efa\u94fe\u63a5\uff0c\u8fdb\u5165test_flushdb\u51fd\u6570\u540e\uff0c\u901a\u8fc7\u67e5\u8be2\u70b9\u7684\u4e2a\u6570\u5224\u65ad\u5bfc\u5165\u662f\u5426\u6210\u529f\uff0c\u5bfc\u5165\u6210\u529f\u540e\u6267\u884cflushDB\u64cd\u4f5c\uff0c\u518d\u6b21\u901a\u8fc7assert\u5224\u65ad\u662f\u5426\u80fd\u6b63\u5e38\u6e05\u7a7adb"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7072 --rpc_port 9092",\n "cleanup_dir":["./testdb"]}\n\nCLIENTOPT = {"host":"127.0.0.1:9092", "user":"admin", "password":"73@TuGraph"}\n\nIMPORTOPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./testdb", "./.import_tmp"]}\n\n@pytest.mark.parametrize("importor", [IMPORTOPT], indirect=True)\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("client", [CLIENTOPT], indirect=True)\ndef test_flushdb(self, importor, server, client):\n ret = client.callCypher("MATCH (n) RETURN n LIMIT 100", "default")\n assert ret[0]\n res = json.loads(ret[1])\n assert len(res) == 21\n ret = client.callCypher("CALL db.flushDB()", "default")\n assert ret[0]\n res = json.loads(ret[1])\n assert res == None\n'})}),"\n",(0,s.jsx)(n.h4,{id:"233exportorimportor",children:"2.3.3.exportor/importor"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_export_default\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u6267\u884c\u4e86\u6570\u636e\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\uff0c\u5bfc\u5165\u6210\u529f\u540e\u5c06\u5f53\u524ddb\u7684\u6570\u636e\u5bfc\u51fa\uff0c\u7136\u540e\u518d\u6b21\u901a\u8fc7\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\u5c06exportor\u5bfc\u51fa\u7684\u6570\u636e\u5bfc\u5165\u5230\u65b0\u7684\u76ee\u5f55\u4e2d\uff0c\u4ee5\u65b0\u5bfc\u5165\u7684\u6570\u636e\u542f\u52a8db\uff0c\u5e76\u4e14\u521b\u5efa\u94fe\u63a5\u3002\u5728test_export_default\u51fd\u6570\u4e3b\u4f53\u4e2d\u5224\u65ad\u5bfc\u51fa\u540e\u518d\u6b21\u5bfc\u5165\u7684\u6570\u636e\u662f\u5426\u4e0e\u539f\u59cb\u6570\u636e\u4e00\u81f4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb1 --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7073 --rpc_port 9093",\n "cleanup_dir":["./testdb1"]}\n\nCLIENTOPT = {"host":"127.0.0.1:9093", "user":"admin", "password":"73@TuGraph"}\n\nIMPORT_YAGO_OPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./.import_tmp", "./testdb"]}\n\nIMPORT_DEF_OPT = {"cmd":"./lgraph_import -c ./export/default/import.config -d ./testdb1",\n "cleanup_dir":["./.import_tmp", "./testdb1"]}\n\nEXPORT_DEF_OPT = {"cmd":"./lgraph_export -d ./testdb -e ./export/default -g default -u admin -p 73@TuGraph",\n "cleanup_dir":["./export"]}\n\n@pytest.mark.parametrize("importor", [IMPORT_YAGO_OPT], indirect=True)\n@pytest.mark.parametrize("exportor", [EXPORT_DEF_OPT], indirect=True)\n@pytest.mark.parametrize("importor_1", [IMPORT_DEF_OPT], indirect=True)\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("client", [CLIENTOPT], indirect=True)\ndef test_export_default(self, importor, exportor, importor_1, server, client):\n ret = client.callCypher("MATCH (n) RETURN n LIMIT 100", "default")\n assert ret[0]\n res = json.loads(ret[1])\n log.info("res : %s", res)\n assert len(res) == 21\n'})}),"\n",(0,s.jsx)(n.h4,{id:"234\u5176\u4ed6\u6d4b\u8bd5",children:"2.3.4.\u5176\u4ed6\u6d4b\u8bd5"}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u591a\u7528\u4f8b\u8bf7\u53c2\u8003\u96c6\u6210\u6d4b\u8bd5\u4ee3\u7801 ",(0,s.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/tree/master/test/integration",children:"https://github.com/TuGraph-family/tugraph-db/tree/master/test/integration"})]})]})}function p(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>d});var s=r(6540);const t={},l=s.createContext(t);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/605c3d65.89bb58f7.js b/assets/js/605c3d65.89bb58f7.js
deleted file mode 100644
index 6a6e36470a..0000000000
--- a/assets/js/605c3d65.89bb58f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7419],{6029:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var s=r(4848),t=r(8453);const l={},i="\u96c6\u6210\u6d4b\u8bd5",d={id:"zh-CN/source/quality/integration-testing",title:"\u96c6\u6210\u6d4b\u8bd5",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u5982\u4f55\u4f7f\u7528",source:"@site/../docs/zh-CN/source/11.quality/2.integration-testing.md",sourceDirName:"zh-CN/source/11.quality",slug:"/zh-CN/source/quality/integration-testing",permalink:"/tugraph-db/zh-CN/source/quality/integration-testing",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5355\u5143\u6d4b\u8bd5",permalink:"/tugraph-db/zh-CN/source/quality/unit-testing"},next:{title:"\u5982\u4f55\u8d21\u732e",permalink:"/tugraph-db/zh-CN/source/contributor-manual/contributing"}},c={},a=[{value:"1.TuGraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",id:"1tugraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",level:2},{value:"2.TuGraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",id:"2tugraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",level:2},{value:"2.1.\u7ec4\u4ef6\u63cf\u8ff0",id:"21\u7ec4\u4ef6\u63cf\u8ff0",level:3},{value:"2.2.\u7ec4\u4ef6\u7528\u6cd5",id:"22\u7ec4\u4ef6\u7528\u6cd5",level:3},{value:"2.2.1.server",id:"221server",level:4},{value:"2.2.1.1.\u542f\u52a8\u53c2\u6570",id:"2211\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.1.2.\u542f\u52a8\u547d\u4ee4",id:"2212\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.2.client",id:"222client",level:4},{value:"2.2.2.1.\u542f\u52a8\u53c2\u6570",id:"2221\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.2.2.\u542f\u52a8\u547d\u4ee4",id:"2222\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.3.importor",id:"223importor",level:4},{value:"2.2.3.1.\u542f\u52a8\u53c2\u6570",id:"2231\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.3.2.\u542f\u52a8\u547d\u4ee4",id:"2232\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.4.exportor",id:"224exportor",level:4},{value:"2.2.4.1.\u542f\u52a8\u53c2\u6570",id:"2241\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.4.2.\u542f\u52a8\u547d\u4ee4",id:"2242\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.5.backup_binlog",id:"225backup_binlog",level:4},{value:"2.2.5.1.\u542f\u52a8\u53c2\u6570",id:"2251\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.5.2.\u542f\u52a8\u547d\u4ee4",id:"2252\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.6.backup_copy_dir",id:"226backup_copy_dir",level:4},{value:"2.2.6.1.\u542f\u52a8\u53c2\u6570",id:"2261\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.6.2.\u542f\u52a8\u547d\u4ee4",id:"2262\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.7.build_so",id:"227build_so",level:4},{value:"2.2.7.1.\u542f\u52a8\u53c2\u6570",id:"2271\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.7.2.\u542f\u52a8\u547d\u4ee4",id:"2272\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.8.copy_snapshot",id:"228copy_snapshot",level:4},{value:"2.2.8.1.\u542f\u52a8\u53c2\u6570",id:"2281\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.8.2.\u542f\u52a8\u547d\u4ee4",id:"2282\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.9.copy_dir",id:"229copy_dir",level:4},{value:"2.2.9.1.\u542f\u52a8\u53c2\u6570",id:"2291\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.9.2.\u542f\u52a8\u547d\u4ee4",id:"2292\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.10.exec",id:"2210exec",level:4},{value:"2.2.10.1.\u542f\u52a8\u53c2\u6570",id:"22101\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.10.2.\u542f\u52a8\u547d\u4ee4",id:"22102\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.11.algo",id:"2211algo",level:4},{value:"2.2.11.1.\u542f\u52a8\u53c2\u6570",id:"22111\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.11.2.\u542f\u52a8\u547d\u4ee4",id:"22112\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.12.bash",id:"2212bash",level:4},{value:"2.2.12.1.\u542f\u52a8\u53c2\u6570",id:"22121\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.12.2.\u542f\u52a8\u547d\u4ee4",id:"22122\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.2.13.rest",id:"2213rest",level:4},{value:"2.2.13.1.\u542f\u52a8\u53c2\u6570",id:"22131\u542f\u52a8\u53c2\u6570",level:5},{value:"2.2.13.2.\u542f\u52a8\u547d\u4ee4",id:"22132\u542f\u52a8\u547d\u4ee4",level:5},{value:"2.3.\u6d4b\u8bd5\u6837\u4f8b",id:"23\u6d4b\u8bd5\u6837\u4f8b",level:3},{value:"2.3.1.rest",id:"231rest",level:4},{value:"2.3.2.client",id:"232client",level:4},{value:"2.3.3.exportor/importor",id:"233exportorimportor",level:4},{value:"2.3.4.\u5176\u4ed6\u6d4b\u8bd5",id:"234\u5176\u4ed6\u6d4b\u8bd5",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u96c6\u6210\u6d4b\u8bd5",children:"\u96c6\u6210\u6d4b\u8bd5"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u5982\u4f55\u4f7f\u7528"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1tugraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49",children:"1.TuGraph\u96c6\u6210\u6d4b\u8bd5\u7684\u610f\u4e49"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u5355\u5143\u6d4b\u8bd5\u4e0e\u529f\u80fd\u6d4b\u8bd5\u4e2d\uff0c\u6709\u90e8\u5206\u7528\u4f8b\u76f4\u63a5\u5f00\u542fgalaxy\u6216statemachine\u6765\u8fdb\u884c\u6d4b\u8bd5\uff0c\u8fd9\u5e76\u4e0d\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u6d41\u7a0b\u3002\u5728\u5b8c\u6574\u7684cs\u67b6\u6784\u4e2d\uff0c\u7528\u6237\u8bf7\u6c42\u662f\u901a\u8fc7\u5ba2\u6237\u7aef\u53d1\u5f80\u670d\u52a1\u7aef\uff0c\u7f51\u7edc\u901a\u4fe1\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\uff0c\u4e3a\u4e86\u907f\u514d\u5355\u5143\u6d4b\u8bd5\u4e0d\u5b8c\u6574\u5e26\u6765\u7684bug\uff0c\u9488\u5bf9\u8fd9\u79cd\u60c5\u51b5\uff0c\u4f7f\u7528\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\u8fdb\u884c\u5168\u94fe\u8def\u7684\u5b8c\u6574\u6d4b\u8bd5\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2tugraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6",children:"2.TuGraph\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u91c7\u7528pytest\u6846\u67b6\u4f5c\u4e3a\u81ea\u5df1\u7684\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\uff0cpytest\u6846\u67b6\u4f5c\u4e3a\u76ee\u524d\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684cs\u7aef\u96c6\u6210\u6d4b\u8bd5\u6846\u67b6\uff0c\u4ee5\u5176\u7075\u6d3b\u7b80\u5355\uff0c\u5bb9\u6613\u4e0a\u624b\uff0c\u5e76\u4e14\u652f\u6301\u53c2\u6570\u5316\u7684\u4f7f\u7528\u65b9\u5f0f\u800c\u8457\u79f0\uff0cTuGraph\u57fa\u4e8epytest\u63d0\u4f9b\u7684\u529f\u80fd\uff0c\u62bd\u8c61\u51fa\u4e86\u4e0d\u540c\u7684\u5de5\u5177\uff0c\u901a\u8fc7\u53c2\u6570\u6765\u63a7\u5236\u5404\u4e2a\u5de5\u5177\u7684\u5904\u7406\u903b\u8f91\uff0c\u4ee5\u65b9\u4fbf\u5927\u5bb6\u8fdb\u884c\u9ad8\u6548\u7684\u6d4b\u8bd5\u4ee3\u7801\u5f00\u53d1\u3002"}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u591apytest\u4fe1\u606f\u8bf7\u53c2\u8003\u5b98\u7f51: ",(0,s.jsx)(n.a,{href:"https://docs.pytest.org/en/7.2.x/getting-started.html",children:"https://docs.pytest.org/en/7.2.x/getting-started.html"})]}),"\n",(0,s.jsx)(n.h3,{id:"21\u7ec4\u4ef6\u63cf\u8ff0",children:"2.1.\u7ec4\u4ef6\u63cf\u8ff0"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u7ec4\u4ef6\u540d\u79f0"}),(0,s.jsx)(n.th,{children:"\u7ec4\u4ef6\u529f\u80fd"}),(0,s.jsx)(n.th,{children:"\u5b9e\u73b0\u65b9\u5f0f"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"server"}),(0,s.jsx)(n.td,{children:"TuGraph\u5355\u673a\u670d\u52a1"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u542f\u52a8\u670d\u52a1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"client"}),(0,s.jsx)(n.td,{children:"TuGraph Rpc Client"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5f00\u542fTuGraph Python Rpc Client\u53d1\u9001\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"importor"}),(0,s.jsx)(n.td,{children:"TuGraph Importor"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5bfc\u5165\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exportor"}),(0,s.jsx)(n.td,{children:"TuGraph Exportor"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5bfc\u51fa\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"backup_binlog"}),(0,s.jsx)(n.td,{children:"TuGraph Backup Binlog"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efdbinlog\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"backup_copy_dir"}),(0,s.jsx)(n.td,{children:"TuGraph Backup"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efd\u5b8c\u6574db\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"build_so"}),(0,s.jsx)(n.td,{children:"\u7f16\u8bd1c++\u52a8\u6001\u8fde\u63a5\u5e93\u7684\u7ec4\u4ef6"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u5904\u7406gcc\u7f16\u8bd1\u903b\u8f91"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"copy_snapshot"}),(0,s.jsx)(n.td,{children:"TuGraph Copy Snapshot"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5904\u7406\u5907\u4efdsnapshot\u7684\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"copydir"}),(0,s.jsx)(n.td,{children:"\u6587\u4ef6\u5939\u62f7\u8d1d"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5904\u7406\u6587\u4ef6\u5939\u62f7\u8d1d\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"exec"}),(0,s.jsx)(n.td,{children:"\u6267\u884cc++/java\u53ef\u6267\u884c\u6587\u4ef6"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u542f\u52a8C++\u53ef\u6267\u884c\u6587\u4ef6"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"algo"}),(0,s.jsx)(n.td,{children:"\u6267\u884c\u7b97\u6cd5"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u6267\u884c\u7b97\u6cd5"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"bash"}),(0,s.jsx)(n.td,{children:"\u6267\u884cbash\u547d\u4ee4"}),(0,s.jsx)(n.td,{children:"\u5f00\u542f\u5b50\u8fdb\u7a0b\u5e76\u5728\u5b50\u8fdb\u7a0b\u4e2d\u6267\u884cbash\u547d\u4ee4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"rest"}),(0,s.jsx)(n.td,{children:"TuGraph Python Rest Client"}),(0,s.jsx)(n.td,{children:"\u5f53\u524d\u8fdb\u7a0b\u4e2d\u5f00\u542fTuGraph Python Rest Client\u53d1\u9001\u8bf7\u6c42"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"22\u7ec4\u4ef6\u7528\u6cd5",children:"2.2.\u7ec4\u4ef6\u7528\u6cd5"}),"\n",(0,s.jsx)(n.h4,{id:"221server",children:"2.2.1.server"}),"\n",(0,s.jsx)(n.h5,{id:"2211\u542f\u52a8\u53c2\u6570",children:"2.2.1.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7072 --rpc_port 9092",\n "cleanup_dir":["./testdb"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2212\u542f\u52a8\u547d\u4ee4",children:"2.2.1.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u4e0d\u540c\u7684\u5904\u7406\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8server\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u505c\u6b62server\uff0c\u5e76\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\ndef test_server(self, server):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"222client",children:"2.2.2.client"}),"\n",(0,s.jsx)(n.h5,{id:"2221\u542f\u52a8\u53c2\u6570",children:"2.2.2.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"host\u662fTuGraph Server\u7684ip\u548c\u7aef\u53e3"}),"\n",(0,s.jsx)(n.li,{children:"user\u662fTuGraph Server\u7684\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"password\u662fTuGraph Server \u4e2duser\u5bf9\u5e94\u7684\u5bc6\u7801"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'CLIENTOPT = {"host":"127.0.0.1:9092", "user":"admin", "password":"73@TuGraph"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2222\u542f\u52a8\u547d\u4ee4",children:"2.2.2.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u4e0d\u540c\u7684\u5904\u7406\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8\u5ba2\u6237\u7aef\uff0c\u51fd\u6570\u6267\u884c\u7ed3\u675f\u540e\u4f1a\u7ed3\u675f\u5ba2\u6237\u7aef"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:"@pytest.mark.parametrize(\"server\", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize(\"client\", [CLIENTOPT], indirect=True)\ndef test_client(self, server, client):\n ret = client.callCypher(\"CALL db.createEdgeLabel('followed', '[]', 'address', string, false, 'date', int32, false)\", \"default\")\n assert ret[0]\n ret = client.callCypher(\"CALL db.createEdgeLabel('followed', '[]', 'address', string, false, 'date', int32, false)\", \"default\")\n assert ret[0] == False\n"})}),"\n",(0,s.jsx)(n.h4,{id:"223importor",children:"2.2.3.importor"}),"\n",(0,s.jsx)(n.h5,{id:"2231\u542f\u52a8\u53c2\u6570",children:"2.2.3.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'IMPORTOPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./testdb", "./.import_tmp"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2232\u542f\u52a8\u547d\u4ee4",children:"2.2.3.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5bfc\u5165\u4e0d\u540c\u7684\u6570\u636e\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5bfc\u5165\u6570\u636e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("importor", [IMPORTOPT], indirect=True)\ndef test_importor(self, importor):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"224exportor",children:"2.2.4.exportor"}),"\n",(0,s.jsx)(n.h5,{id:"2241\u542f\u52a8\u53c2\u6570",children:"2.2.4.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'EXPORT_DEF_OPT = {"cmd":"./lgraph_export -d ./testdb -e ./export/default -g default -u admin -p 73@TuGraph",\n "cleanup_dir":["./export"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2242\u542f\u52a8\u547d\u4ee4",children:"2.2.4.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5bfc\u51fa\u4e0d\u540c\u7684\u6570\u636e\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5bfc\u51fa\u6570\u636e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("exportor", [EXPORT_DEF_OPT], indirect=True)\ndef test_exportor(self, exportor):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"225backup_binlog",children:"2.2.5.backup_binlog"}),"\n",(0,s.jsx)(n.h5,{id:"2251\u542f\u52a8\u53c2\u6570",children:"2.2.5.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BINLOGOPT = {"cmd" : "./lgraph_binlog -a restore --host 127.0.0.1 --port 9093 -u admin -p 73@TuGraph -f ./testdb/binlog/*",\n "cleanup_dir":[]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2252\u542f\u52a8\u547d\u4ee4",children:"2.2.5.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5907\u4efd\u4e0d\u540c\u7684binlog\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dbinlog\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("backup_binlog", [BINLOGOPT], indirect=True)\ndef test_backup_binlog(self, backup_binlog):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"226backup_copy_dir",children:"2.2.6.backup_copy_dir"}),"\n",(0,s.jsx)(n.h5,{id:"2261\u542f\u52a8\u53c2\u6570",children:"2.2.6.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"cleanup_dir\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684\u76ee\u5f55\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BACKUPOPT = {"cmd" : "./lgraph_backup --src ./testdb -dst ./testdb1",\n "cleanup_dir":[]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2262\u542f\u52a8\u547d\u4ee4",children:"2.2.6.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u5907\u4efd\u4e0d\u540c\u7684db\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1ddb\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406cleanup_dir\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("backup_copy_dir", [BACKUPOPT], indirect=True)\ndef test_backup_copy_dir(self, backup_copy_dir):\n\tpass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"227build_so",children:"2.2.7.build_so"}),"\n",(0,s.jsx)(n.h5,{id:"2271\u542f\u52a8\u53c2\u6570",children:"2.2.7.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4\uff0c\u91c7\u7528python\u5217\u8868\u4f20\u5165\uff0c\u53ef\u4ee5\u4e00\u6b21\u7f16\u8bd1\u591a\u4e2aso"}),"\n",(0,s.jsx)(n.li,{children:"so_name\u662f\u6267\u884c\u5b8c\u6210\u540e\u9700\u8981\u6e05\u7406\u7684so\uff0c\u53ef\u4ee5\u662f\u591a\u4e2a\uff0c\u901a\u8fc7python\u5217\u8868\u4f20\u5165"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BUILDOPT = {"cmd":["g++ -fno-gnu-unique -fPIC -g --std=c++17 -I ../../include -I ../../deps/install/include -rdynamic -O3 -fopenmp -DNDEBUG -o ./scan_graph.so ../../test/test_procedures/scan_graph.cpp ./liblgraph.so -shared",\n "g++ -fno-gnu-unique -fPIC -g --std=c++17 -I ../../include -I ../../deps/install/include -rdynamic -O3 -fopenmp -DNDEBUG -o ./sortstr.so ../../test/test_procedures/sortstr.cpp ./liblgraph.so -shared"],\n "so_name":["./scan_graph.so", "./sortstr.so"]}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2272\u542f\u52a8\u547d\u4ee4",children:"2.2.7.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u7f16\u8bd1\u4e0d\u540c\u7684so\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u751f\u6210so\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\u4f1a\u6e05\u7406so_name\u5217\u8868\u6307\u5b9a\u7684\u52a8\u6001\u5e93"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("build_so", [BUILDOPT], indirect=True)\ndef test_build_so(self, build_so):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"228copy_snapshot",children:"2.2.8.copy_snapshot"}),"\n",(0,s.jsx)(n.h5,{id:"2281\u542f\u52a8\u53c2\u6570",children:"2.2.8.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"src\u662f\u539fdb"}),"\n",(0,s.jsx)(n.li,{children:"dst\u662f\u62f7\u8d1d\u540e\u7684snapshot"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'COPYSNAPOPT = {"src" : "./testdb", "dst" : "./testdb1"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2282\u542f\u52a8\u547d\u4ee4",children:"2.2.8.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u62f7\u8d1d\u4e0d\u540c\u7684snapshot\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dsrc\u4e2d\u7684snapshot\u5230dst\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("copy_snapshot", [COPYSNAPOPT], indirect=True)\ndef test_copy_snapshot(self, copy_snapshot):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"229copy_dir",children:"2.2.9.copy_dir"}),"\n",(0,s.jsx)(n.h5,{id:"2291\u542f\u52a8\u53c2\u6570",children:"2.2.9.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"src\u662f\u539fdb"}),"\n",(0,s.jsx)(n.li,{children:"dst\u662f\u62f7\u8d1d\u540e\u7684snapshot"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'COPYSNAPOPT = {"src" : "./testdb", "dst" : "./testdb1"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"2292\u542f\u52a8\u547d\u4ee4",children:"2.2.9.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u62f7\u8d1d\u4e0d\u540c\u7684\u76ee\u5f55\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u62f7\u8d1dsrc\u5230dst\u6307\u5b9a\u7684\u76ee\u5f55"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("copy_dir", [COPYDIR], indirect=True)\ndef test_copy_dir(self, copy_dir):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2210exec",children:"2.2.10.exec"}),"\n",(0,s.jsx)(n.h5,{id:"22101\u542f\u52a8\u53c2\u6570",children:"2.2.10.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'EXECOPT = {\n "cmd" : "test_rpc_client/cpp/CppClientTest/build/clienttest"\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22102\u542f\u52a8\u547d\u4ee4",children:"2.2.10.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684\u547d\u4ee4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("exec", [EXECOPT], indirect=True)\ndef test_exec(self, exec):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2211algo",children:"2.2.11.algo"}),"\n",(0,s.jsx)(n.h5,{id:"22111\u542f\u52a8\u53c2\u6570",children:"2.2.11.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.li,{children:"result\u662f\u7b97\u6cd5\u9884\u671f\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6267\u884c\u5b8c\u6210\u4f1a\u901a\u8fc7\u5b9e\u9645\u7ed3\u679c\u4e0e\u9884\u671f\u7ed3\u679c\u8fdb\u884c\u6bd4\u8f83\uff0c\u4e0d\u540c\u5219\u6d4b\u8bd5\u5931\u8d25"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BFSEMBEDOPT = {\n "cmd" : "algo/bfs_embed ./testdb",\n "result" : ["found_vertices = 3829"]\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22112\u542f\u52a8\u547d\u4ee4",children:"2.2.11.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684\u7b97\u6cd5\u903b\u8f91\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684\u7b97\u6cd5\uff0c\u51fd\u6570\u4e3b\u4f53\u7b49\u5f85\u7b97\u6cd5\u6267\u884c\u5b8c\u6210\u540e\u5bf9\u6bd4\u7ed3\u679c"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("algo", [BFSEMBEDOPT], indirect=True)\ndef test_exec_bfs_embed(self, algo):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2212bash",children:"2.2.12.bash"}),"\n",(0,s.jsx)(n.h5,{id:"22121\u542f\u52a8\u53c2\u6570",children:"2.2.12.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"cmd\u662f\u542f\u52a8\u547d\u4ee4"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'BASHOPT = {\n "cmd" : "sh ./test_rpc_client/cpp/CppClientTest/compile.sh"\n }\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22122\u542f\u52a8\u547d\u4ee4",children:"2.2.12.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u63a7\u5236\u6267\u884c\u4e0d\u540c\u7684bash\u547d\u4ee4\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u5f00\u542f\u5b50\u8fdb\u7a0b\u6267\u884c\u901a\u8fc7cmd\u53c2\u6570\u4f20\u5165\u7684bash\u547d\u4ee4\uff0c\u51fd\u6570\u4e3b\u4f53\u7b49\u5f85\u7b97\u6cd5\u6267\u884c\u5b8c\u6210"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("bash", [BASHOPT], indirect=True)\ndef test_bash(self, bash):\n pass\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2213rest",children:"2.2.13.rest"}),"\n",(0,s.jsx)(n.h5,{id:"22131\u542f\u52a8\u53c2\u6570",children:"2.2.13.1.\u542f\u52a8\u53c2\u6570"}),"\n",(0,s.jsx)(n.p,{children:"\u91c7\u7528python\u5b57\u5178\u4f20\u5165"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"port\u662fTuGraph Server\u7684\u7aef\u53e3"}),"\n",(0,s.jsx)(n.li,{children:"user\u662fTuGraph Server\u7684\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"password\u662fTuGraph Server \u4e2duser\u5bf9\u5e94\u7684\u5bc6\u7801"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'RESTTOPT = {"port":"7073", "user":"admin", "password":"73@TuGraph"}\n'})}),"\n",(0,s.jsx)(n.h5,{id:"22132\u542f\u52a8\u547d\u4ee4",children:"2.2.13.2.\u542f\u52a8\u547d\u4ee4"}),"\n",(0,s.jsx)(n.p,{children:"\u901a\u8fc7fixtures\u7ec4\u4ef6\u5f15\u5165\u5de5\u5177\uff0c\u5e76\u901a\u8fc7\u542f\u52a8\u53c2\u6570\u6765\u94fe\u63a5\u4e0d\u540c\u7684TuGraph Rest Server\uff0c\u51fd\u6570\u5f00\u59cb\u6267\u884c\u524d\u4f1a\u542f\u52a8\u5ba2\u6237\u7aef\uff0c\u51fd\u6570\u6267\u884c\u7ed3\u675f\u540e\u4f1a\u7ed3\u675f\u5ba2\u6237\u7aef"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'@pytest.mark.parametrize("rest", [RESTTOPT], indirect=True)\ndef test_get_info(self, server, rest):\n\tpass\n'})}),"\n",(0,s.jsx)(n.h3,{id:"23\u6d4b\u8bd5\u6837\u4f8b",children:"2.3.\u6d4b\u8bd5\u6837\u4f8b"}),"\n",(0,s.jsx)(n.h4,{id:"231rest",children:"2.3.1.rest"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_get_info\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u542f\u52a8server\uff0cserver\u542f\u52a8\u540e\u542f\u52a8\u4e86rest client\uff0c\u8fdb\u5165test_get_info\u51fd\u6570\u540e\u83b7\u53d6server\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u5e76\u901a\u8fc7assert\u5224\u65ad\u662f\u5426\u6709\u83b7\u53d6\u5230cpu\u7684\u4fe1\u606f\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7073 --rpc_port 9093",\n "cleanup_dir":["./testdb"]}\nRESTTOPT = {"port":"7073", "user":"admin", "password":"73@TuGraph"}\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("rest", [RESTTOPT], indirect=True)\ndef test_get_info(self, server, rest):\n res = rest.get_server_info()\n log.info("res : %s", res)\n assert(\'cpu\' in res)\n'})}),"\n",(0,s.jsx)(n.h4,{id:"232client",children:"2.3.2.client"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_flushdb\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u6267\u884c\u4e86\u6570\u636e\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\uff0c\u5e76\u542f\u52a8server\u540e\uff0c\u901a\u8fc7client\u521b\u5efa\u94fe\u63a5\uff0c\u8fdb\u5165test_flushdb\u51fd\u6570\u540e\uff0c\u901a\u8fc7\u67e5\u8be2\u70b9\u7684\u4e2a\u6570\u5224\u65ad\u5bfc\u5165\u662f\u5426\u6210\u529f\uff0c\u5bfc\u5165\u6210\u529f\u540e\u6267\u884cflushDB\u64cd\u4f5c\uff0c\u518d\u6b21\u901a\u8fc7assert\u5224\u65ad\u662f\u5426\u80fd\u6b63\u5e38\u6e05\u7a7adb"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7072 --rpc_port 9092",\n "cleanup_dir":["./testdb"]}\n\nCLIENTOPT = {"host":"127.0.0.1:9092", "user":"admin", "password":"73@TuGraph"}\n\nIMPORTOPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./testdb", "./.import_tmp"]}\n\n@pytest.mark.parametrize("importor", [IMPORTOPT], indirect=True)\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("client", [CLIENTOPT], indirect=True)\ndef test_flushdb(self, importor, server, client):\n ret = client.callCypher("MATCH (n) RETURN n LIMIT 100", "default")\n assert ret[0]\n res = json.loads(ret[1])\n assert len(res) == 21\n ret = client.callCypher("CALL db.flushDB()", "default")\n assert ret[0]\n res = json.loads(ret[1])\n assert res == None\n'})}),"\n",(0,s.jsx)(n.h4,{id:"233exportorimportor",children:"2.3.3.exportor/importor"}),"\n",(0,s.jsx)(n.p,{children:"\u6837\u4f8b\u4ee3\u7801\u4e2d\u5728test_export_default\u51fd\u6570\u6267\u884c\u4e4b\u524d\u5148\u6267\u884c\u4e86\u6570\u636e\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\uff0c\u5bfc\u5165\u6210\u529f\u540e\u5c06\u5f53\u524ddb\u7684\u6570\u636e\u5bfc\u51fa\uff0c\u7136\u540e\u518d\u6b21\u901a\u8fc7\u79bb\u7ebf\u5bfc\u5165\u903b\u8f91\u5c06exportor\u5bfc\u51fa\u7684\u6570\u636e\u5bfc\u5165\u5230\u65b0\u7684\u76ee\u5f55\u4e2d\uff0c\u4ee5\u65b0\u5bfc\u5165\u7684\u6570\u636e\u542f\u52a8db\uff0c\u5e76\u4e14\u521b\u5efa\u94fe\u63a5\u3002\u5728test_export_default\u51fd\u6570\u4e3b\u4f53\u4e2d\u5224\u65ad\u5bfc\u51fa\u540e\u518d\u6b21\u5bfc\u5165\u7684\u6570\u636e\u662f\u5426\u4e0e\u539f\u59cb\u6570\u636e\u4e00\u81f4"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'SERVEROPT = {"cmd":"./lgraph_server -c lgraph_standalone.json --directory ./testdb1 --license _FMA_IGNORE_LICENSE_CHECK_SALTED_ --port 7073 --rpc_port 9093",\n "cleanup_dir":["./testdb1"]}\n\nCLIENTOPT = {"host":"127.0.0.1:9093", "user":"admin", "password":"73@TuGraph"}\n\nIMPORT_YAGO_OPT = {"cmd":"./lgraph_import --config_file ./data/yago/yago.conf --dir ./testdb --user admin --password 73@TuGraph --graph default --overwrite 1",\n "cleanup_dir":["./.import_tmp", "./testdb"]}\n\nIMPORT_DEF_OPT = {"cmd":"./lgraph_import -c ./export/default/import.config -d ./testdb1",\n "cleanup_dir":["./.import_tmp", "./testdb1"]}\n\nEXPORT_DEF_OPT = {"cmd":"./lgraph_export -d ./testdb -e ./export/default -g default -u admin -p 73@TuGraph",\n "cleanup_dir":["./export"]}\n\n@pytest.mark.parametrize("importor", [IMPORT_YAGO_OPT], indirect=True)\n@pytest.mark.parametrize("exportor", [EXPORT_DEF_OPT], indirect=True)\n@pytest.mark.parametrize("importor_1", [IMPORT_DEF_OPT], indirect=True)\n@pytest.mark.parametrize("server", [SERVEROPT], indirect=True)\n@pytest.mark.parametrize("client", [CLIENTOPT], indirect=True)\ndef test_export_default(self, importor, exportor, importor_1, server, client):\n ret = client.callCypher("MATCH (n) RETURN n LIMIT 100", "default")\n assert ret[0]\n res = json.loads(ret[1])\n log.info("res : %s", res)\n assert len(res) == 21\n'})}),"\n",(0,s.jsx)(n.h4,{id:"234\u5176\u4ed6\u6d4b\u8bd5",children:"2.3.4.\u5176\u4ed6\u6d4b\u8bd5"}),"\n",(0,s.jsxs)(n.p,{children:["\u66f4\u591a\u7528\u4f8b\u8bf7\u53c2\u8003\u96c6\u6210\u6d4b\u8bd5\u4ee3\u7801 ",(0,s.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/tree/master/test/integration",children:"https://github.com/TuGraph-family/tugraph-db/tree/master/test/integration"})]})]})}function p(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>d});var s=r(6540);const t={},l=s.createContext(t);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/633b68a4.b5a2f5bc.js b/assets/js/633b68a4.b5a2f5bc.js
deleted file mode 100644
index ef37cf7cb9..0000000000
--- a/assets/js/633b68a4.b5a2f5bc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1980],{2812:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>j,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=e(4848),d=e(8453);const r={},l="RESTful API",i={id:"zh-CN/source/client-tools/restful-api",title:"RESTful API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/7.restful-api.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/restful-api",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph console client",permalink:"/tugraph-db/zh-CN/source/client-tools/bolt-console-client"},next:{title:"RPC API",permalink:"/tugraph-db/zh-CN/source/client-tools/rpc-api"}},h={},c=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",id:"2\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",level:2},{value:"2.1.\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",id:"21\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",level:3},{value:"2.2\u8bf7\u6c42\u7c7b\u578b",id:"22\u8bf7\u6c42\u7c7b\u578b",level:3},{value:"2.2.1. \u7528\u6237\u767b\u9646",id:"221-\u7528\u6237\u767b\u9646",level:4},{value:"2.2.2. \u7528\u6237\u767b\u51fa",id:"222-\u7528\u6237\u767b\u51fa",level:4},{value:"2.2.3. \u8eab\u4efd\u5237\u65b0",id:"223-\u8eab\u4efd\u5237\u65b0",level:4},{value:"2.2.4. \u8c03\u7528cypher",id:"224-\u8c03\u7528cypher",level:4},{value:"2.2.5. \u4e0a\u4f20\u6587\u4ef6",id:"225-\u4e0a\u4f20\u6587\u4ef6",level:4},{value:"2.2.6. \u68c0\u67e5\u6587\u4ef6",id:"226-\u68c0\u67e5\u6587\u4ef6",level:4},{value:"2.2.7. \u6e05\u7406\u7f13\u5b58\u6587\u4ef6",id:"227-\u6e05\u7406\u7f13\u5b58\u6587\u4ef6",level:4},{value:"2.2.8. \u5bfc\u5165schema",id:"228-\u5bfc\u5165schema",level:4},{value:"2.2.9. \u5bfc\u5165\u6570\u636e",id:"229-\u5bfc\u5165\u6570\u636e",level:4},{value:"2.2.10. \u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",id:"2210-\u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",level:4}];function x(n){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"restful-api",children:"RESTful API"})}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(t.p,{children:"TuGraph \u63d0\u4f9b\u9075\u4ece REST \u89c4\u8303\u7684 HTTP API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 HTTP \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u7684 HTTP API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,s.jsx)(t.h2,{id:"2\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",children:"2.\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f"}),"\n",(0,s.jsx)(t.p,{children:"TuGraph HTTP Server \u63a5\u6536json\u683c\u5f0f\u7684\u8bf7\u6c42\uff0c\u7ecf\u8fc7\u9274\u6743\u540e\u5f00\u59cb\u63d0\u53d6\u8bf7\u6c42\u4e2d\u7684\u5b57\u6bb5\uff0c\u6839\u636e\u5b9a\u4e49\u597d\u7684\u63a5\u53e3\u903b\u8f91\u5904\u7406\u8bf7\u6c42\uff0c\u5e76\u8fd4\u56dejson\u683c\u5f0f\u7684\u54cd\u5e94\u3002"}),"\n",(0,s.jsx)(t.h3,{id:"21\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",children:"2.1.\u6807\u51c6\u54cd\u5e94\u683c\u5f0f"}),"\n",(0,s.jsx)(t.p,{children:"\u6bcf\u4e00\u4e2a\u54cd\u5e94\u90fd\u4ee5\u6807\u51c6\u54cd\u5e94\u683c\u5f0f\u8fd4\u56de\uff0c\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"errorCode"}),(0,s.jsx)(t.td,{children:"\u4e1a\u52a1\u7ea7\u9519\u8bef\u7801"}),(0,s.jsx)(t.td,{children:"int\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"success"}),(0,s.jsx)(t.td,{children:"\u8bf7\u6c42\u662f\u5426\u6210\u529f"}),(0,s.jsx)(t.td,{children:"int\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"errorMessage"}),(0,s.jsx)(t.td,{children:"\u4e1a\u52a1\u7ea7\u9519\u8bef\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"data"}),(0,s.jsx)(t.td,{children:"\u8bf7\u6c42\u6210\u529f\u65f6\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"22\u8bf7\u6c42\u7c7b\u578b",children:"2.2\u8bf7\u6c42\u7c7b\u578b"}),"\n",(0,s.jsx)(t.h4,{id:"221-\u7528\u6237\u767b\u9646",children:"2.2.1. \u7528\u6237\u767b\u9646"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u5728\u767b\u9646\u8bf7\u6c42\u4e2d\u643a\u5e26\u7528\u6237\u540d\u548c\u5bc6\u7801\u53d1\u9001\u5230\u670d\u52a1\u7aef\u3002\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c(Json Web Token)\u548c\u5224\u65ad\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u7684\u5e03\u5c14\u578b\u53d8\u91cf\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5728\u540e\u7eed\u7684\u8bf7\u6c42\u4e2d\u5c06\u4ee4\u724c\u52a0\u5165\u8bf7\u6c42\u5934\u7684Authorization\u57df\u4e2d\u3002\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /login"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"userName"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u540d"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"password"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u5bc6\u7801"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u4ee4\u724c"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"authorization"}),(0,s.jsx)(t.td,{children:"\u4ee4\u724c"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"default_password"}),(0,s.jsx)(t.td,{children:"\u9ed8\u8ba4\u5bc6\u7801"}),(0,s.jsx)(t.td,{children:"\u5e03\u5c14\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:' {"userName" : "test", "password" : "123456"}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"222-\u7528\u6237\u767b\u51fa",children:"2.2.2. \u7528\u6237\u767b\u51fa"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u767b\u51fa\uff0c\u540c\u65f6\u5220\u9664\u5df2\u7ecf\u8ba4\u8bc1\u7684token\uff0c\u7528\u6237\u540e\u7eed\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u9700\u8981\u91cd\u65b0\u767b\u9646\uff0c\u5e76\u83b7\u53d6\u65b0\u7684token\u3002"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /logout"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":\nhttp request header\u4e2d\u643a\u5e26\u8c03\u7528login\u63a5\u53e3\u65f6\u8fd4\u56de\u7684token\uff0cbody\u4e2d\u6ca1\u6709\u53c2\u6570"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e3a\u7a7a"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h4,{id:"223-\u8eab\u4efd\u5237\u65b0",children:"2.2.3. \u8eab\u4efd\u5237\u65b0"}),"\n",(0,s.jsx)(t.p,{children:"\u5df2\u4e0b\u53d1\u7684token\u5931\u6548\u540e\uff0c\u9700\u8981\u8c03\u7528\u672c\u63a5\u53e3\u91cd\u65b0\u8ba4\u8bc1\u3002\u540e\u7aef\u9a8c\u8bc1token\u5408\u6cd5\u6027\u3002token\u5728\u521d\u6b21\u767b\u5f55\u540e\uff0c1\u5c0f\u65f6\u5185\u6709\u6548\uff0c\u8fc7\u671f\u9700\u8981\u5237\u65b0"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /refresh"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":\nhttp request header\u4e2d\u643a\u5e26\u8c03\u7528login\u63a5\u53e3\u65f6\u8fd4\u56de\u7684token\uff0cbody\u4e2d\u6ca1\u6709\u53c2\u6570"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u4ee4\u724c"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"authorization"}),(0,s.jsx)(t.td,{children:"\u4ee4\u724c"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"224-\u8c03\u7528cypher",children:"2.2.4. \u8c03\u7528cypher"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u5bf9TuGraph\u7684\u589e\u5220\u6539\u67e5\u8bf7\u6c42\u9700\u8981\u8c03\u7528cypher\u63a5\u53e3\uff0c\u5e76\u901a\u8fc7\u6807\u51c6\u7684cypher\u67e5\u8be2\u8bed\u8a00\u53d1\u8d77"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /cypher"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u67e5\u8be2\u7684\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"script"}),(0,s.jsx)(t.td,{children:"cypher\u8bed\u53e5"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u67e5\u8be2\u7ed3\u679c"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"result"}),(0,s.jsx)(t.td,{children:"\u67e5\u8be2\u7ed3\u679c"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:' {"script" : "Match (n) return n", "graph" : "default"}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"225-\u4e0a\u4f20\u6587\u4ef6",children:"2.2.5. \u4e0a\u4f20\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"\u63a5\u53e3\u7528\u4e8e\u5c06\u672c\u5730\u6587\u4ef6\u4e0a\u4f20\u81f3TuGraph\u6240\u5728\u673a\u5668\u3002\u53ef\u4ee5\u4e0a\u4f20\u6587\u672c\u6587\u4ef6\uff0c\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u53ef\u4ee5\u4e0a\u4f20\u5927\u6587\u4ef6\uff0c\u4e5f\u53ef\u4ee5\u4e0a\u4f20\u5c0f\u6587\u4ef6\uff0c\u5bf9\u4e8e\u5927\u6587\u4ef6\uff0c\u5ba2\u6237\u7aef\u5728\u4e0a\u4f20\u65f6\u5e94\u8be5\u5bf9\u6587\u4ef6\u505a\u5207\u5206\uff0c\u6bcf\u4e2a\u6587\u4ef6\u5206\u7247\u4e0d\u5927\u4e8e1MB\uff0c\u53c2\u6570Begin-Pos\u548cSize\u5bf9\u5e94\u672c\u6b21\u5206\u7247\u5728\u5b8c\u6574\u6587\u4ef6\u4e2d\u7684\u504f\u79fb\u91cf\u4e0e\u5206\u7247\u5927\u5c0f\u3002\u53c2\u6570\u9700\u8981\u653e\u5728http\u8bf7\u6c42\u7684\u62a5\u6587\u5934\uff0c\u8bf7\u6c42\u5185\u5bb9\u5bf9\u5e94\u6587\u4ef6\u5206\u7247\u5185\u5bb9\u3002\u672c\u63a5\u53e3\u8bf7\u6c42\u5934\u4e0d\u6b62\u6709token\u53c2\u6570"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /upload_file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"header\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"File-Name"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Begin-Pos"}),(0,s.jsx)(t.td,{children:"\u5f00\u59cb\u4f4d\u7f6e\u5728\u6587\u4ef6\u5185\u7684\u504f\u79fb"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210size_t\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Size"}),(0,s.jsx)(t.td,{children:"\u672c\u6b21\u8bf7\u6c42\u6587\u4ef6\u5206\u7247\u5927\u5c0f"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210size_t\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.h4,{id:"226-\u68c0\u67e5\u6587\u4ef6",children:"2.2.6. \u68c0\u67e5\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u7528\u4e8e\u68c0\u67e5\u5df2\u4e0a\u4f20\u6587\u4ef6\u6b63\u786e\u6027\uff0c\u5982\u679c\u6210\u529f\u901a\u8fc7\u68c0\u67e5\uff0c\u518d\u6b21\u4e0a\u4f20\u540c\u4e00\u6587\u4ef6\u65f6\uff0c\u76f4\u63a5\u8fd4\u56de\u6210\u529f"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /check_file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileName"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"checkSum"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u5bf9\u5e94md5\u503c"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"1"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileSize"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u957f\u5ea6(\u4ee5\u5b57\u8282\u8ba1\u7b97)"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"2"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a1\u65f6\u6821\u9a8cmd5\u3002flag\u4e3a2\u65f6\u6821\u9a8c\u6587\u4ef6\u957f\u5ea6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pass"}),(0,s.jsx)(t.td,{children:"\u68c0\u67e5\u6210\u529f\u4e3atrue\uff0c\u5426\u5219\u4e3afalse"}),(0,s.jsx)(t.td,{children:"bool\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"fileName" : "test.csv", "checkSum" : "$MD5", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"227-\u6e05\u7406\u7f13\u5b58\u6587\u4ef6",children:"2.2.7. \u6e05\u7406\u7f13\u5b58\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"admin\u7528\u6237\u53ef\u4ee5\u5220\u9664\u6240\u6709\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u5176\u4ed6\u7528\u6237\u53ef\u4ee5\u5220\u9664\u81ea\u5df1\u7684\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u6307\u5b9a\u540d\u79f0\u7684\u6587\u4ef6\uff0c\u6307\u5b9a\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u4e5f\u53ef\u4ee5\u5220\u9664\u6240\u6709\u6587\u4ef6"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /clear_cache"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileName"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"0"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"userName"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"1"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a0\u65f6\u5220\u9664fileName\u6307\u5b9a\u6587\u4ef6, flag\u4e3a1\u65f6\u5220\u9664userName\u6307\u5b9a\u7528\u6237\u5df2\u7ecf\u4e0a\u4f20\u7684\u6240\u6709\u6587\u4ef6\uff0cflag\u4e3a2\u65f6\u5220\u9664\u6240\u6709\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"fileName" : "test.csv", "userName" : "test", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"228-\u5bfc\u5165schema",children:"2.2.8. \u5bfc\u5165schema"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u53ef\u4ee5\u6839\u636e\u7528\u6237\u6307\u5b9a\u7684schema\u4fe1\u606f\u521b\u5efaschema\u6a21\u578b\uff0cschema\u7684\u8be6\u7ec6\u683c\u5f0f\u4fe1\u606f\u8bf7\u53c2\u8003data-import.md"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_schema"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"description"}),(0,s.jsx)(t.td,{children:"schema\u63cf\u8ff0\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{\n\t"graph": "test_graph",\n\t"description": {\n\t\t"schema": [{\n\t\t\t"label": "Person",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}, {\n\t\t\t\t"name": "birthyear",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"optional": true\n\t\t\t}, {\n\t\t\t\t"name": "phone",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"unique": true,\n\t\t\t\t"index": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "City",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "Film",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "title",\n\t\t\t"properties": [{\n\t\t\t\t"name": "title",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "HAS_CHILD",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "MARRIED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "BORN_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "weight",\n\t\t\t\t"type": "FLOAT",\n\t\t\t\t"optional": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "DIRECTED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "WROTE_MUSIC_FOR",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "ACTED_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "charactername",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "PLAY_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "role",\n\t\t\t\t"type": "STRING",\n\t\t\t\t"optional": true\n\t\t\t}],\n\t\t\t"constraints": [\n\t\t\t\t["Person", "Film"]\n\t\t\t]\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"229-\u5bfc\u5165\u6570\u636e",children:"2.2.9. \u5bfc\u5165\u6570\u636e"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u5df2\u7ecf\u901a\u8fc7\u4e0a\u4f20\uff0c\u6821\u9a8c\u7684\u6587\u4ef6\u4f5c\u4e3a\u6570\u636e\u6587\u4ef6\uff0c\u6309\u7167schema\u53c2\u6570\u63cf\u8ff0\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5bfc\u5165\u5230graph\u53c2\u6570\u6307\u5b9a\u7684\u5b50\u56fe\u4e2d\u3002\u5bfc\u5165\u8fc7\u7a0b\u662f\u5f02\u6b65\u7684\uff0cserver\u5728\u63a5\u6536\u5230\u5bfc\u5165\u8bf7\u6c42\u540e\uff0c\u8fd4\u56de\u4e00\u4e2a\u4efb\u52a1id"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_data"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"schema"}),(0,s.jsx)(t.td,{children:"\u5bfc\u5165schema\u63cf\u8ff0"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"delimiter"}),(0,s.jsx)(t.td,{children:"\u5206\u9694\u7b26"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"continueOnError"}),(0,s.jsx)(t.td,{children:"\u5355\u884c\u6570\u636e\u51fa\u9519\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u5e76\u7ee7\u7eed"}),(0,s.jsx)(t.td,{children:"boolean\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"skipPackages"}),(0,s.jsx)(t.td,{children:"\u8df3\u8fc7\u7684\u5305\u4e2a\u6570"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"\u4efb\u52a1id\uff0c\u7528\u4e8e\u91cd\u542f\u51fa\u9519\u7684\u4efb\u52a1"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a1\u65f6\u5bfc\u5165\u6210\u529f\u5c06\u5220\u9664\u6570\u636e\u6587\u4ef6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"other"}),(0,s.jsx)(t.td,{children:"\u5176\u4ed6\u53c2\u6570"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"\u4efb\u52a1\u7f16\u53f7"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{\n "graph": "default", //\u5bfc\u5165\u7684\u5b50\u56fe\u540d\u79f0\n "delimiter": ",",\t\t\t\t\t\t//\u6570\u636e\u5206\u9694\u7b26\n "continueOnError": true,\t\t//\u9047\u5230\u9519\u8bef\u65f6\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u6570\u636e\u5e76\u7ee7\u7eed\u5bfc\u5165\n "skipPackages": \u201c0\u201d,\t\t\t\t\t//\u8df3\u8fc7\u7684\u5305\u4e2a\u6570\n "flag" : "1",\n\t "schema": {\n\t\t"files": [{\n\t\t\t"DST_ID": "Film",\t\t\t\t//\u7ec8\u70b9label\u7c7b\u578b\n\t\t\t"SRC_ID": "Person",\t\t\t//\u8d77\u70b9label\u7c7b\u578b\n\t\t\t"columns": [\t\t\t\t\t\t//\u6570\u636e\u683c\u5f0f\u8bf4\u660e\n\t\t\t\t"SRC_ID",\t\t\t\t\t\t\t//\u8d77\u70b9id\n\t\t\t\t"DST_ID",\t\t\t\t\t\t\t//\u7ec8\u70b9id\n "SKIP",\t\t\t\t\t\t\t\t//\u8868\u793a\u8df3\u8fc7\u6b64\u5217\u6570\u636e\n\t\t\t\t"charactername"\t\t\t\t//\u5c5e\u6027\u540d\u79f0\n\t\t\t],\n\t\t\t"format": "CSV",\t\t\t\t//\u6570\u636e\u6587\u4ef6\u683c\u5f0f\u7c7b\u578b,\u652f\u6301csv\u548cjson\n\t\t\t"path": "acted_in.csv",\t//\u6570\u636e\u6587\u4ef6\u540d\u79f0\n\t\t\t"header": 0, \t\t\t\t\t\t//\u6570\u636e\u4ece\u7b2c\u51e0\u884c\u5f00\u59cb\n\t\t\t"label": "ACTED_IN"\t\t\t//\u8fb9\u7684\u7c7b\u578b\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"2210-\u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",children:"2.2.10. \u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u7528\u4e8e\u67e5\u8be2\u5bfc\u5165\u4efb\u52a1\u7684\u6267\u884c\u8fdb\u5ea6"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_progress"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"import_data\u63a5\u53e3\u8fd4\u56de\u7684\u4efb\u52a1id"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"success"}),(0,s.jsx)(t.td,{children:"\u662f\u5426\u6210\u529f\u5bfc\u5165"}),(0,s.jsx)(t.td,{children:"boolean\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"reason"}),(0,s.jsx)(t.td,{children:"\u5bfc\u5165\u5931\u8d25\u539f\u56e0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"success\u4e3afalse\u65f6\u5fc5\u586b"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"progress"}),(0,s.jsx)(t.td,{children:"\u5f53\u524d\u5bfc\u5165\u8fdb\u5ea6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210double\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"taskId" : "$taskId"}\n'})})]})}function j(n={}){const{wrapper:t}={...(0,d.R)(),...n.components};return t?(0,s.jsx)(t,{...n,children:(0,s.jsx)(x,{...n})}):x(n)}},8453:(n,t,e)=>{e.d(t,{R:()=>l,x:()=>i});var s=e(6540);const d={},r=s.createContext(d);function l(n){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof n?n(t):{...t,...n}}),[t,n])}function i(n){let t;return t=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:l(n.components),s.createElement(r.Provider,{value:t},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/633b68a4.ed4c85b5.js b/assets/js/633b68a4.ed4c85b5.js
new file mode 100644
index 0000000000..fadced92af
--- /dev/null
+++ b/assets/js/633b68a4.ed4c85b5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1980],{2812:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>j,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=e(4848),d=e(8453);const r={},l="RESTful API",i={id:"client-tools/restful-api",title:"RESTful API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/7.restful-api.md",sourceDirName:"7.client-tools",slug:"/client-tools/restful-api",permalink:"/tugraph-db/zh/client-tools/restful-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph console client",permalink:"/tugraph-db/zh/client-tools/bolt-console-client"},next:{title:"RPC API",permalink:"/tugraph-db/zh/client-tools/rpc-api"}},h={},c=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",id:"2\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",level:2},{value:"2.1.\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",id:"21\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",level:3},{value:"2.2\u8bf7\u6c42\u7c7b\u578b",id:"22\u8bf7\u6c42\u7c7b\u578b",level:3},{value:"2.2.1. \u7528\u6237\u767b\u9646",id:"221-\u7528\u6237\u767b\u9646",level:4},{value:"2.2.2. \u7528\u6237\u767b\u51fa",id:"222-\u7528\u6237\u767b\u51fa",level:4},{value:"2.2.3. \u8eab\u4efd\u5237\u65b0",id:"223-\u8eab\u4efd\u5237\u65b0",level:4},{value:"2.2.4. \u8c03\u7528cypher",id:"224-\u8c03\u7528cypher",level:4},{value:"2.2.5. \u4e0a\u4f20\u6587\u4ef6",id:"225-\u4e0a\u4f20\u6587\u4ef6",level:4},{value:"2.2.6. \u68c0\u67e5\u6587\u4ef6",id:"226-\u68c0\u67e5\u6587\u4ef6",level:4},{value:"2.2.7. \u6e05\u7406\u7f13\u5b58\u6587\u4ef6",id:"227-\u6e05\u7406\u7f13\u5b58\u6587\u4ef6",level:4},{value:"2.2.8. \u5bfc\u5165schema",id:"228-\u5bfc\u5165schema",level:4},{value:"2.2.9. \u5bfc\u5165\u6570\u636e",id:"229-\u5bfc\u5165\u6570\u636e",level:4},{value:"2.2.10. \u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",id:"2210-\u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",level:4}];function x(n){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"restful-api",children:"RESTful API"})}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(t.p,{children:"TuGraph \u63d0\u4f9b\u9075\u4ece REST \u89c4\u8303\u7684 HTTP API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 HTTP \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u7684 HTTP API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,s.jsx)(t.h2,{id:"2\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f",children:"2.\u8bf7\u6c42\u4e0e\u54cd\u5e94\u683c\u5f0f"}),"\n",(0,s.jsx)(t.p,{children:"TuGraph HTTP Server \u63a5\u6536json\u683c\u5f0f\u7684\u8bf7\u6c42\uff0c\u7ecf\u8fc7\u9274\u6743\u540e\u5f00\u59cb\u63d0\u53d6\u8bf7\u6c42\u4e2d\u7684\u5b57\u6bb5\uff0c\u6839\u636e\u5b9a\u4e49\u597d\u7684\u63a5\u53e3\u903b\u8f91\u5904\u7406\u8bf7\u6c42\uff0c\u5e76\u8fd4\u56dejson\u683c\u5f0f\u7684\u54cd\u5e94\u3002"}),"\n",(0,s.jsx)(t.h3,{id:"21\u6807\u51c6\u54cd\u5e94\u683c\u5f0f",children:"2.1.\u6807\u51c6\u54cd\u5e94\u683c\u5f0f"}),"\n",(0,s.jsx)(t.p,{children:"\u6bcf\u4e00\u4e2a\u54cd\u5e94\u90fd\u4ee5\u6807\u51c6\u54cd\u5e94\u683c\u5f0f\u8fd4\u56de\uff0c\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"errorCode"}),(0,s.jsx)(t.td,{children:"\u4e1a\u52a1\u7ea7\u9519\u8bef\u7801"}),(0,s.jsx)(t.td,{children:"int\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"success"}),(0,s.jsx)(t.td,{children:"\u8bf7\u6c42\u662f\u5426\u6210\u529f"}),(0,s.jsx)(t.td,{children:"int\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"errorMessage"}),(0,s.jsx)(t.td,{children:"\u4e1a\u52a1\u7ea7\u9519\u8bef\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"data"}),(0,s.jsx)(t.td,{children:"\u8bf7\u6c42\u6210\u529f\u65f6\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"22\u8bf7\u6c42\u7c7b\u578b",children:"2.2\u8bf7\u6c42\u7c7b\u578b"}),"\n",(0,s.jsx)(t.h4,{id:"221-\u7528\u6237\u767b\u9646",children:"2.2.1. \u7528\u6237\u767b\u9646"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u5728\u767b\u9646\u8bf7\u6c42\u4e2d\u643a\u5e26\u7528\u6237\u540d\u548c\u5bc6\u7801\u53d1\u9001\u5230\u670d\u52a1\u7aef\u3002\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c(Json Web Token)\u548c\u5224\u65ad\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u7684\u5e03\u5c14\u578b\u53d8\u91cf\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5728\u540e\u7eed\u7684\u8bf7\u6c42\u4e2d\u5c06\u4ee4\u724c\u52a0\u5165\u8bf7\u6c42\u5934\u7684Authorization\u57df\u4e2d\u3002\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /login"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"userName"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u540d"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"password"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u5bc6\u7801"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u4ee4\u724c"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"authorization"}),(0,s.jsx)(t.td,{children:"\u4ee4\u724c"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"default_password"}),(0,s.jsx)(t.td,{children:"\u9ed8\u8ba4\u5bc6\u7801"}),(0,s.jsx)(t.td,{children:"\u5e03\u5c14\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:' {"userName" : "test", "password" : "123456"}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"222-\u7528\u6237\u767b\u51fa",children:"2.2.2. \u7528\u6237\u767b\u51fa"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u767b\u51fa\uff0c\u540c\u65f6\u5220\u9664\u5df2\u7ecf\u8ba4\u8bc1\u7684token\uff0c\u7528\u6237\u540e\u7eed\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u9700\u8981\u91cd\u65b0\u767b\u9646\uff0c\u5e76\u83b7\u53d6\u65b0\u7684token\u3002"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /logout"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":\nhttp request header\u4e2d\u643a\u5e26\u8c03\u7528login\u63a5\u53e3\u65f6\u8fd4\u56de\u7684token\uff0cbody\u4e2d\u6ca1\u6709\u53c2\u6570"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e3a\u7a7a"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h4,{id:"223-\u8eab\u4efd\u5237\u65b0",children:"2.2.3. \u8eab\u4efd\u5237\u65b0"}),"\n",(0,s.jsx)(t.p,{children:"\u5df2\u4e0b\u53d1\u7684token\u5931\u6548\u540e\uff0c\u9700\u8981\u8c03\u7528\u672c\u63a5\u53e3\u91cd\u65b0\u8ba4\u8bc1\u3002\u540e\u7aef\u9a8c\u8bc1token\u5408\u6cd5\u6027\u3002token\u5728\u521d\u6b21\u767b\u5f55\u540e\uff0c1\u5c0f\u65f6\u5185\u6709\u6548\uff0c\u8fc7\u671f\u9700\u8981\u5237\u65b0"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /refresh"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":\nhttp request header\u4e2d\u643a\u5e26\u8c03\u7528login\u63a5\u53e3\u65f6\u8fd4\u56de\u7684token\uff0cbody\u4e2d\u6ca1\u6709\u53c2\u6570"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u4ee4\u724c"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"authorization"}),(0,s.jsx)(t.td,{children:"\u4ee4\u724c"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"224-\u8c03\u7528cypher",children:"2.2.4. \u8c03\u7528cypher"}),"\n",(0,s.jsx)(t.p,{children:"\u7528\u6237\u5bf9TuGraph\u7684\u589e\u5220\u6539\u67e5\u8bf7\u6c42\u9700\u8981\u8c03\u7528cypher\u63a5\u53e3\uff0c\u5e76\u901a\u8fc7\u6807\u51c6\u7684cypher\u67e5\u8be2\u8bed\u8a00\u53d1\u8d77"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /cypher"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u67e5\u8be2\u7684\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"script"}),(0,s.jsx)(t.td,{children:"cypher\u8bed\u53e5"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00\uff0cdata\u4e2d\u5305\u542b\u67e5\u8be2\u7ed3\u679c"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"result"}),(0,s.jsx)(t.td,{children:"\u67e5\u8be2\u7ed3\u679c"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:' {"script" : "Match (n) return n", "graph" : "default"}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"225-\u4e0a\u4f20\u6587\u4ef6",children:"2.2.5. \u4e0a\u4f20\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"\u63a5\u53e3\u7528\u4e8e\u5c06\u672c\u5730\u6587\u4ef6\u4e0a\u4f20\u81f3TuGraph\u6240\u5728\u673a\u5668\u3002\u53ef\u4ee5\u4e0a\u4f20\u6587\u672c\u6587\u4ef6\uff0c\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u53ef\u4ee5\u4e0a\u4f20\u5927\u6587\u4ef6\uff0c\u4e5f\u53ef\u4ee5\u4e0a\u4f20\u5c0f\u6587\u4ef6\uff0c\u5bf9\u4e8e\u5927\u6587\u4ef6\uff0c\u5ba2\u6237\u7aef\u5728\u4e0a\u4f20\u65f6\u5e94\u8be5\u5bf9\u6587\u4ef6\u505a\u5207\u5206\uff0c\u6bcf\u4e2a\u6587\u4ef6\u5206\u7247\u4e0d\u5927\u4e8e1MB\uff0c\u53c2\u6570Begin-Pos\u548cSize\u5bf9\u5e94\u672c\u6b21\u5206\u7247\u5728\u5b8c\u6574\u6587\u4ef6\u4e2d\u7684\u504f\u79fb\u91cf\u4e0e\u5206\u7247\u5927\u5c0f\u3002\u53c2\u6570\u9700\u8981\u653e\u5728http\u8bf7\u6c42\u7684\u62a5\u6587\u5934\uff0c\u8bf7\u6c42\u5185\u5bb9\u5bf9\u5e94\u6587\u4ef6\u5206\u7247\u5185\u5bb9\u3002\u672c\u63a5\u53e3\u8bf7\u6c42\u5934\u4e0d\u6b62\u6709token\u53c2\u6570"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /upload_file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"header\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"File-Name"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Begin-Pos"}),(0,s.jsx)(t.td,{children:"\u5f00\u59cb\u4f4d\u7f6e\u5728\u6587\u4ef6\u5185\u7684\u504f\u79fb"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210size_t\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Size"}),(0,s.jsx)(t.td,{children:"\u672c\u6b21\u8bf7\u6c42\u6587\u4ef6\u5206\u7247\u5927\u5c0f"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210size_t\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.h4,{id:"226-\u68c0\u67e5\u6587\u4ef6",children:"2.2.6. \u68c0\u67e5\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u7528\u4e8e\u68c0\u67e5\u5df2\u4e0a\u4f20\u6587\u4ef6\u6b63\u786e\u6027\uff0c\u5982\u679c\u6210\u529f\u901a\u8fc7\u68c0\u67e5\uff0c\u518d\u6b21\u4e0a\u4f20\u540c\u4e00\u6587\u4ef6\u65f6\uff0c\u76f4\u63a5\u8fd4\u56de\u6210\u529f"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /check_file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileName"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"checkSum"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u5bf9\u5e94md5\u503c"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"1"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileSize"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u957f\u5ea6(\u4ee5\u5b57\u8282\u8ba1\u7b97)"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"2"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a1\u65f6\u6821\u9a8cmd5\u3002flag\u4e3a2\u65f6\u6821\u9a8c\u6587\u4ef6\u957f\u5ea6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pass"}),(0,s.jsx)(t.td,{children:"\u68c0\u67e5\u6210\u529f\u4e3atrue\uff0c\u5426\u5219\u4e3afalse"}),(0,s.jsx)(t.td,{children:"bool\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"fileName" : "test.csv", "checkSum" : "$MD5", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"227-\u6e05\u7406\u7f13\u5b58\u6587\u4ef6",children:"2.2.7. \u6e05\u7406\u7f13\u5b58\u6587\u4ef6"}),"\n",(0,s.jsx)(t.p,{children:"admin\u7528\u6237\u53ef\u4ee5\u5220\u9664\u6240\u6709\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u5176\u4ed6\u7528\u6237\u53ef\u4ee5\u5220\u9664\u81ea\u5df1\u7684\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u6307\u5b9a\u540d\u79f0\u7684\u6587\u4ef6\uff0c\u6307\u5b9a\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6\uff0c\u4e5f\u53ef\u4ee5\u5220\u9664\u6240\u6709\u6587\u4ef6"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /clear_cache"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"fileName"}),(0,s.jsx)(t.td,{children:"\u6587\u4ef6\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"0"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"userName"}),(0,s.jsx)(t.td,{children:"\u7528\u6237\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:'flag\u4e3a"1"\u65f6\u5fc5\u586b'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a0\u65f6\u5220\u9664fileName\u6307\u5b9a\u6587\u4ef6, flag\u4e3a1\u65f6\u5220\u9664userName\u6307\u5b9a\u7528\u6237\u5df2\u7ecf\u4e0a\u4f20\u7684\u6240\u6709\u6587\u4ef6\uff0cflag\u4e3a2\u65f6\u5220\u9664\u6240\u6709\u7528\u6237\u4e0a\u4f20\u7684\u6587\u4ef6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"fileName" : "test.csv", "userName" : "test", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"228-\u5bfc\u5165schema",children:"2.2.8. \u5bfc\u5165schema"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u53ef\u4ee5\u6839\u636e\u7528\u6237\u6307\u5b9a\u7684schema\u4fe1\u606f\u521b\u5efaschema\u6a21\u578b\uff0cschema\u7684\u8be6\u7ec6\u683c\u5f0f\u4fe1\u606f\u8bf7\u53c2\u8003data-import.md"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_schema"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"description"}),(0,s.jsx)(t.td,{children:"schema\u63cf\u8ff0\u4fe1\u606f"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{\n\t"graph": "test_graph",\n\t"description": {\n\t\t"schema": [{\n\t\t\t"label": "Person",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}, {\n\t\t\t\t"name": "birthyear",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"optional": true\n\t\t\t}, {\n\t\t\t\t"name": "phone",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"unique": true,\n\t\t\t\t"index": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "City",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "Film",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "title",\n\t\t\t"properties": [{\n\t\t\t\t"name": "title",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "HAS_CHILD",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "MARRIED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "BORN_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "weight",\n\t\t\t\t"type": "FLOAT",\n\t\t\t\t"optional": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "DIRECTED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "WROTE_MUSIC_FOR",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "ACTED_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "charactername",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "PLAY_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "role",\n\t\t\t\t"type": "STRING",\n\t\t\t\t"optional": true\n\t\t\t}],\n\t\t\t"constraints": [\n\t\t\t\t["Person", "Film"]\n\t\t\t]\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"229-\u5bfc\u5165\u6570\u636e",children:"2.2.9. \u5bfc\u5165\u6570\u636e"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u5df2\u7ecf\u901a\u8fc7\u4e0a\u4f20\uff0c\u6821\u9a8c\u7684\u6587\u4ef6\u4f5c\u4e3a\u6570\u636e\u6587\u4ef6\uff0c\u6309\u7167schema\u53c2\u6570\u63cf\u8ff0\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5bfc\u5165\u5230graph\u53c2\u6570\u6307\u5b9a\u7684\u5b50\u56fe\u4e2d\u3002\u5bfc\u5165\u8fc7\u7a0b\u662f\u5f02\u6b65\u7684\uff0cserver\u5728\u63a5\u6536\u5230\u5bfc\u5165\u8bf7\u6c42\u540e\uff0c\u8fd4\u56de\u4e00\u4e2a\u4efb\u52a1id"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_data"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graph"}),(0,s.jsx)(t.td,{children:"\u5b50\u56fe\u540d\u79f0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"schema"}),(0,s.jsx)(t.td,{children:"\u5bfc\u5165schema\u63cf\u8ff0"}),(0,s.jsx)(t.td,{children:"json\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"delimiter"}),(0,s.jsx)(t.td,{children:"\u5206\u9694\u7b26"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"continueOnError"}),(0,s.jsx)(t.td,{children:"\u5355\u884c\u6570\u636e\u51fa\u9519\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u5e76\u7ee7\u7eed"}),(0,s.jsx)(t.td,{children:"boolean\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"skipPackages"}),(0,s.jsx)(t.td,{children:"\u8df3\u8fc7\u7684\u5305\u4e2a\u6570"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"\u4efb\u52a1id\uff0c\u7528\u4e8e\u91cd\u542f\u51fa\u9519\u7684\u4efb\u52a1"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flag"}),(0,s.jsx)(t.td,{children:"\u6807\u8bb0\u4f4d\uff0cflag\u4e3a1\u65f6\u5bfc\u5165\u6210\u529f\u5c06\u5220\u9664\u6570\u636e\u6587\u4ef6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"other"}),(0,s.jsx)(t.td,{children:"\u5176\u4ed6\u53c2\u6570"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210int\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u5426"})]})]})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"\u4efb\u52a1\u7f16\u53f7"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{\n "graph": "default", //\u5bfc\u5165\u7684\u5b50\u56fe\u540d\u79f0\n "delimiter": ",",\t\t\t\t\t\t//\u6570\u636e\u5206\u9694\u7b26\n "continueOnError": true,\t\t//\u9047\u5230\u9519\u8bef\u65f6\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u6570\u636e\u5e76\u7ee7\u7eed\u5bfc\u5165\n "skipPackages": \u201c0\u201d,\t\t\t\t\t//\u8df3\u8fc7\u7684\u5305\u4e2a\u6570\n "flag" : "1",\n\t "schema": {\n\t\t"files": [{\n\t\t\t"DST_ID": "Film",\t\t\t\t//\u7ec8\u70b9label\u7c7b\u578b\n\t\t\t"SRC_ID": "Person",\t\t\t//\u8d77\u70b9label\u7c7b\u578b\n\t\t\t"columns": [\t\t\t\t\t\t//\u6570\u636e\u683c\u5f0f\u8bf4\u660e\n\t\t\t\t"SRC_ID",\t\t\t\t\t\t\t//\u8d77\u70b9id\n\t\t\t\t"DST_ID",\t\t\t\t\t\t\t//\u7ec8\u70b9id\n "SKIP",\t\t\t\t\t\t\t\t//\u8868\u793a\u8df3\u8fc7\u6b64\u5217\u6570\u636e\n\t\t\t\t"charactername"\t\t\t\t//\u5c5e\u6027\u540d\u79f0\n\t\t\t],\n\t\t\t"format": "CSV",\t\t\t\t//\u6570\u636e\u6587\u4ef6\u683c\u5f0f\u7c7b\u578b,\u652f\u6301csv\u548cjson\n\t\t\t"path": "acted_in.csv",\t//\u6570\u636e\u6587\u4ef6\u540d\u79f0\n\t\t\t"header": 0, \t\t\t\t\t\t//\u6570\u636e\u4ece\u7b2c\u51e0\u884c\u5f00\u59cb\n\t\t\t"label": "ACTED_IN"\t\t\t//\u8fb9\u7684\u7c7b\u578b\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(t.h4,{id:"2210-\u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2",children:"2.2.10. \u5bfc\u5165\u8fdb\u5ea6\u67e5\u8be2"}),"\n",(0,s.jsx)(t.p,{children:"\u672c\u63a5\u53e3\u7528\u4e8e\u67e5\u8be2\u5bfc\u5165\u4efb\u52a1\u7684\u6267\u884c\u8fdb\u5ea6"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"URI"}),": /import_progress"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"taskId"}),(0,s.jsx)(t.td,{children:"import_data\u63a5\u53e3\u8fd4\u56de\u7684\u4efb\u52a1id"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"RESPONSE"}),":\n\u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u7684\u54cd\u5e94\u4fe1\u606f\u4e2dsuccess\u4e3a00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"body\u53c2\u6570"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u8bf4\u660e"}),(0,s.jsx)(t.th,{children:"\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(t.th,{children:"\u662f\u5426\u5fc5\u586b"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"success"}),(0,s.jsx)(t.td,{children:"\u662f\u5426\u6210\u529f\u5bfc\u5165"}),(0,s.jsx)(t.td,{children:"boolean\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"\u662f"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"reason"}),(0,s.jsx)(t.td,{children:"\u5bfc\u5165\u5931\u8d25\u539f\u56e0"}),(0,s.jsx)(t.td,{children:"\u5b57\u7b26\u4e32\u7c7b\u578b"}),(0,s.jsx)(t.td,{children:"success\u4e3afalse\u65f6\u5fc5\u586b"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"progress"}),(0,s.jsx)(t.td,{children:"\u5f53\u524d\u5bfc\u5165\u8fdb\u5ea6"}),(0,s.jsx)(t.td,{children:"\u53ef\u4ee5\u8f6c\u6210double\u7c7b\u578b\u7684\u5b57\u7b26\u4e32"}),(0,s.jsx)(t.td,{children:"\u662f"})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request."})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:'{"taskId" : "$taskId"}\n'})})]})}function j(n={}){const{wrapper:t}={...(0,d.R)(),...n.components};return t?(0,s.jsx)(t,{...n,children:(0,s.jsx)(x,{...n})}):x(n)}},8453:(n,t,e)=>{e.d(t,{R:()=>l,x:()=>i});var s=e(6540);const d={},r=s.createContext(d);function l(n){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof n?n(t):{...t,...n}}),[t,n])}function i(n){let t;return t=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:l(n.components),s.createElement(r.Provider,{value:t},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/65876c74.1899ec1a.js b/assets/js/65876c74.1899ec1a.js
deleted file mode 100644
index 762cfb72ba..0000000000
--- a/assets/js/65876c74.1899ec1a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7067],{8084:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>x,frontMatter:()=>r,metadata:()=>d,toc:()=>h});var i=t(4848),l=t(8453);const r={},s="\u5185\u7f6e\u7b97\u6cd5",d={id:"zh-CN/source/olap&procedure/olap/algorithms",title:"\u5185\u7f6e\u7b97\u6cd5",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86TuGraph\u5185\u7f6e\u7684\u7b97\u6cd5\u7a0b\u5e8f\uff0c\u793e\u533a\u72486\u79cd\u7b97\u6cd5\u53ef\u53c2\u8003\u57fa\u7840\u7b97\u6cd5\u62a5",source:"@site/../docs/zh-CN/source/9.olap&procedure/2.olap/6.algorithms.md",sourceDirName:"zh-CN/source/9.olap&procedure/2.olap",slug:"/zh-CN/source/olap&procedure/olap/algorithms",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/algorithms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python Olap API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/python-api"},next:{title:"Learn Tutorial",permalink:"/tugraph-db/zh-CN/source/olap&procedure/learn/tutorial"}},c={},h=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:2},{value:"\u57fa\u7840\u7b97\u6cd5\u5305\uff1a",id:"\u57fa\u7840\u7b97\u6cd5\u5305",level:3},{value:"\u6269\u5c55\u7b97\u6cd5\u5305\uff1a",id:"\u6269\u5c55\u7b97\u6cd5\u5305",level:3},{value:"\u57fa\u7840\u7b97\u6cd5\u5305",id:"\u57fa\u7840\u7b97\u6cd5\u5305-1",level:2},{value:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",id:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",level:3},{value:"\u7f51\u9875\u6392\u5e8f",id:"\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",id:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",level:3},{value:"\u5f31\u8fde\u901a\u5206\u91cf",id:"\u5f31\u8fde\u901a\u5206\u91cf",level:3},{value:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",id:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",level:3},{value:"\u6807\u7b7e\u4f20\u64ad",id:"\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u6269\u5c55\u7b97\u6cd5\u5305",id:"\u6269\u5c55\u7b97\u6cd5\u5305-1",level:2},{value:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",id:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",id:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",level:3},{value:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",id:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",level:3},{value:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",id:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",level:3},{value:"\u5171\u540c\u90bb\u5c45",id:"\u5171\u540c\u90bb\u5c45",level:3},{value:"\u5ea6\u6570\u5173\u8054\u5ea6",id:"\u5ea6\u6570\u5173\u8054\u5ea6",level:3},{value:"\u76f4\u5f84\u4f30\u8ba1",id:"\u76f4\u5f84\u4f30\u8ba1",level:3},{value:"EgoNet\u7b97\u6cd5",id:"egonet\u7b97\u6cd5",level:3},{value:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",id:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",level:3},{value:"\u6770\u5361\u5fb7\u7cfb\u6570",id:"\u6770\u5361\u5fb7\u7cfb\u6570",level:3},{value:"k\u6838\u7b97\u6cd5",id:"k\u6838\u7b97\u6cd5",level:3},{value:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",id:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",level:3},{value:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",id:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",id:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u5f3a\u8fde\u901a\u5206\u91cf",id:"\u5f3a\u8fde\u901a\u5206\u91cf",level:3},{value:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",id:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",id:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4e09\u89d2\u8ba1\u6570",id:"\u4e09\u89d2\u8ba1\u6570",level:3},{value:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",id:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",level:3},{value:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",id:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",id:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",id:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",level:3},{value:"Sybil\u68c0\u6d4b\u7b97\u6cd5",id:"sybil\u68c0\u6d4b\u7b97\u6cd5",level:3},{value:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",id:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",level:3},{value:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",id:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",level:3},{value:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",id:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",level:3},{value:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",id:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",level:3},{value:"\u83b1\u987f\u7b97\u6cd5",id:"\u83b1\u987f\u7b97\u6cd5",level:3}];function a(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u5185\u7f6e\u7b97\u6cd5",children:"\u5185\u7f6e\u7b97\u6cd5"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86TuGraph\u5185\u7f6e\u7684\u7b97\u6cd5\u7a0b\u5e8f\uff0c\u793e\u533a\u72486\u79cd\u7b97\u6cd5\u53ef\u53c2\u8003\u57fa\u7840\u7b97\u6cd5\u62a5"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u7b80\u4ecb",children:"\u7b80\u4ecb"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u5305\u542b\u4ee5\u4e0b6\u4e2a\u57fa\u7840\u7b97\u6cd528\u79cd\u6269\u5c55\u7b97\u6cd5\uff0c\u517134\u4e2a\u56fe\u7b97\u6cd5\uff1a"}),"\n",(0,i.jsx)(n.h3,{id:"\u57fa\u7840\u7b97\u6cd5\u5305",children:"\u57fa\u7840\u7b97\u6cd5\u5305\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u4e2d\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u82f1\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u7a0b\u5e8f\u540d"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Breadth-First Search"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bfs"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Pagerank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"pagerank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5355\u6e90\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Single-Source Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sssp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5f31\u8fde\u901a\u5206\u91cf"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weakly Connected Components"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wcc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Local Clustering Coefficient"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"lcc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"lpa"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6269\u5c55\u7b97\u6cd5\u5305",children:"\u6269\u5c55\u7b97\u6cd5\u5305\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u4e2d\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u82f1\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u7a0b\u5e8f\u540d"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"All-Pair Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"apsp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Betweenness Centrality"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Belief Propagation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Closeness Centrality"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"clce"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5171\u540c\u90bb\u5c45"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Common Neighborhood"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"cn"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5ea6\u6570\u5173\u8054\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Degree Correlation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"dc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u76f4\u5f84\u4f30\u8ba1"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Dimension Estimation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"de"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"EgoNet\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"EgoNet"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"en"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Hyperlink-Induced Topic Search"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"hits"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6770\u5361\u5fb7\u7cfb\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Jaccard Index"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ji"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"K\u6838\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"K-core"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"kcore"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Louvain"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"louvain"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u591a\u6e90\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Multiple-source Shortest Paths"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"mssp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Personalized PageRank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ppr"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5f3a\u8fde\u901a\u5206\u91cf"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Strongly Connected Components"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"scc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Speaker-listener Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"slpa"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Single-Pair Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"spsp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e09\u89d2\u8ba1\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Triangle Counting"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"triangle"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4fe1\u4efb\u6307\u6570\u6392\u540d"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Trustrank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"trustrank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weighted Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wlpa"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weighted Pagerank Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wpagerank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Maximal independent set"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"mis"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sybil\u68c0\u6d4b\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Sybil Rank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sybilrank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Subgraph Isomorphism"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"subgraph_isomorphism"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Motif"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"motif"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Kcliques"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"kcliques"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Ktruss"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ktruss"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u83b1\u987f\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Leiden"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"leiden"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u57fa\u7840\u7b97\u6cd5\u5305-1",children:"\u57fa\u7840\u7b97\u6cd5\u5305"}),"\n",(0,i.jsx)(n.h3,{id:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",children:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22\u5b9e\u73b0\u4e86Breadth-first Search\u7b97\u6cd5\uff0c\u4ece\u6839\u70b9\u5f00\u59cb\uff0c\u6cbf\u7740\u56fe\u7684\u5bbd\u5ea6\u904d\u5386\u6240\u6709\u53ef\u8bbf\u95ee\u70b9\u3002\u8fd4\u56de\u7ed3\u679c\u4e3a\u904d\u5386\u70b9\u4e2a\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Breadth-first_search",title:"bfs wiki",children:"https://en.wikipedia.org/wiki/Breadth-first_search"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u7f51\u9875\u6392\u5e8f",children:"\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u7f51\u9875\u6392\u5e8f\u7a0b\u5e8f\u5b9e\u73b0\u4e86\u5e38\u7528\u7684Pagerank\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u6839\u636e\u56fe\u4e2d\u8fb9\u548c\u8fb9\u6743\u503c\u8ba1\u7b97\u6240\u6709\u70b9\u7684\u91cd\u8981\u6027\u6392\u540d\uff0cPageRank\u503c\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u5728\u56fe\u4e2d\u7684\u91cd\u8981\u6027\u8d8a\u9ad8\u3002\u8ba1\u7b97\u65f6\u4ee5\u70b9\u6570\u91cf\u7684\u5012\u6570\u4e3a\u5404\u70b9\u521d\u59cbRank\u503c\uff0c\u7136\u540e\u5c06\u70b9\u7684Rank\u503c\u6309\u7167\u51fa\u8fb9\u5e73\u5747\u4f20\u9012\u5230\u76f8\u90bb\u70b9\uff0c\u91cd\u590d\u8be5\u4f20\u9012\u8fc7\u7a0b\u76f4\u5230\u6ee1\u8db3\u7ed9\u5b9a\u7684\u6536\u655b\u9608\u503c\u6216\u8fbe\u5230\u7ed9\u5b9a\u8fed\u4ee3\u8f6e\u6570\u3002\u6bcf\u8f6e\u4f20\u9012\u7ed3\u675f\u540e\uff0c\u6240\u6709\u70b9\u7684Rank\u503c\u4f1a\u6709\u4e00\u5b9a\u7684\u7684\u6bd4\u4f8b\u968f\u673a\u4f20\u9012\u5230\u4efb\u610f\u70b9\u4e0a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/PageRank",title:"pagerank wiki",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",children:"\u5355\u6e90\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u5355\u6e90\u6700\u77ed\u8def\u5f84\u5b9e\u73b0\u4e86Single Source Shortest Path\u7b97\u6cd5\uff0c\u6839\u636e\u7ed9\u5b9a\u7684\u6e90\u70b9\uff0c\u8ba1\u7b97\u4ece\u8be5\u6e90\u70b9\u51fa\u53d1\u5230\u5176\u4ed6\u4efb\u610f\u70b9\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5f31\u8fde\u901a\u5206\u91cf",children:"\u5f31\u8fde\u901a\u5206\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u5f31\u8fde\u901a\u5206\u91cf\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weakly Connected Components\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u4f1a\u8ba1\u7b97\u56fe\u4e2d\u6240\u6709\u7684\u5f31\u8fde\u901a\u5206\u91cf\u3002\u5f31\u8fde\u901a\u5206\u91cf\u662f\u56fe\u7684\u4e00\u4e2a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u4efb\u610f\u4e24\u70b9\u4e4b\u95f4\u5747\u5b58\u5728\u53ef\u8fbe\u8def\u5f84\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",children:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e73\u5747\u96c6\u805a\u7cfb\u6570\u7a0b\u5e8f\u5b9e\u73b0\u4e86Local Clustering Coefficient\u7b97\u6cd5\uff0c\u8ba1\u7b97\u56fe\u4e2d\u70b9\u4e4b\u95f4\u805a\u96c6\u7a0b\u5ea6\u7684\u7cfb\u6570\u3002\u8fd4\u56de\u7ed3\u679c\u5305\u62ec\u6574\u4f53\u96c6\u805a\u7cfb\u6570\u548c\u70b9\u96c6\u805a\u7cfb\u6570\u3002\u6574\u4f53\u96c6\u805a\u7cfb\u6570\u53cd\u6620\u4e86\u56fe\u4e2d\u6574\u4f53\u7684\u96c6\u805a\u7a0b\u5ea6\u7684\u8bc4\u4f30\uff0c\u70b9\u96c6\u805a\u7cfb\u6570\u5305\u62ec\u4efb\u610f\u70b9\u7684\u96c6\u805a\u7cfb\u6570\uff0c\u53cd\u6620\u4e86\u8be5\u70b9\u9644\u8fd1\u7684\u96c6\u805a\u7a0b\u5ea6\u3002\u96c6\u805a\u7cfb\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u96c6\u805a\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Clustering_coefficient",title:"lcc wiki",children:"https://en.wikipedia.org/wiki/Clustering_coefficient"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6807\u7b7e\u4f20\u64ad",children:"\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Label Propagation Algorithm\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6807\u7b7e\u4f20\u64ad\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u8ba1\u7b97\u5bf9\u8c61\u4e3a\u65e0\u6743\u56fe\u3002\u5728\u6807\u7b7e\u4f20\u9012\u65f6\uff0c\u6bcf\u4e2a\u70b9\u5bf9\u6536\u5230\u7684\u6240\u6709\u6807\u7b7e\u8fdb\u884c\u6b21\u6570\u7d2f\u52a0\uff0c\u5728\u7d2f\u52a0\u548c\u6700\u9ad8\u7684\u6807\u7b7e\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u3002\u8fed\u4ee3\u6536\u655b\u6216\u6267\u884c\u5230\u7ed9\u5b9a\u8f6e\u6570\u540e\u7b97\u6cd5\u7ec8\u6b62\u3002\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e3a\u6bcf\u4e2a\u70b9\u7684\u6807\u7b7e\uff0c\u6807\u7b7e\u503c\u76f8\u540c\u7684\u70b9\u89c6\u4e3a\u5728\u540c\u4e00\u793e\u533a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u6269\u5c55\u7b97\u6cd5\u5305-1",children:"\u6269\u5c55\u7b97\u6cd5\u5305"}),"\n",(0,i.jsx)(n.h3,{id:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",children:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u5168\u5bf9\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86All-Pair Shortest Path\u7b97\u6cd5\uff0c\u8ba1\u7b97\u56fe\u4e2d\u4efb\u610f\u4e24\u70b9\u95f4\u7684\u6700\u77ed\u8def\u5f84\u3002\u8fd4\u56de\u7ed3\u679c\u4e3a\u4efb\u610f\u5b58\u5728\u8def\u5f84\u7684\u70b9\u5bf9\u4e4b\u95f4\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm",title:"Floyd-Warshall algorighm wiki",children:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",children:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Betweenness Centrality\u7b97\u6cd5\uff0c\u4f30\u7b97\u56fe\u4e2d\u6240\u6709\u70b9\u7684\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u503c\u3002\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u503c\u53cd\u6620\u4e86\u56fe\u4e2d\u4efb\u4e00\u6700\u77ed\u8def\u5f84\u7ecf\u8fc7\u8be5\u70b9\u7684\u53ef\u80fd\u6027\uff0c\u503c\u8d8a\u9ad8\u8868\u793a\u6709\u8d8a\u591a\u7684\u6700\u77ed\u8def\u5f84\u7ecf\u8fc7\u4e86\u8be5\u70b9\u3002\u8ba1\u7b97\u65f6\u9700\u7ed9\u5b9a\u62bd\u6837\u70b9\u4e2a\u6570\uff0c\u5206\u522b\u4ee5\u8fd9\u4e9b\u62bd\u6837\u70b9\u4e3a\u4e2d\u5fc3\u8fdb\u884c\u8ba1\u7b97\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Betweenness_centrality",title:"bc wiki",children:"https://en.wikipedia.org/wiki/Betweenness_centrality"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",children:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u7f6e\u4fe1\u5ea6\u4f20\u64ad\u7a0b\u5e8f\u5b9e\u73b0\u4e86Belief Propagation\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u7ed9\u5b9a\u5df2\u89c2\u6d4b\u70b9\u7684\u8fb9\u7f18\u5206\u5e03\uff0c\u5229\u7528\u70b9\u4e4b\u95f4\u76f8\u4e92\u4f20\u9012\u6d88\u606f\u7684\u673a\u5236\u6765\u4f30\u7b97\u672a\u89c2\u6d4b\u70b9\u7684\u8fb9\u7f18\u5206\u5e03\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Belief_propagation",children:"https://en.wikipedia.org/wiki/Belief_propagation"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",children:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u8ddd\u79bb\u4e2d\u5fc3\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Closeness Centrality\u7b97\u6cd5\uff0c\u4f30\u7b97\u4efb\u610f\u70b9\u5230\u56fe\u4e2d\u5176\u4ed6\u70b9\u7684\u6700\u77ed\u8def\u5f84\u7684\u5e73\u5747\u957f\u5ea6\u3002\u8ddd\u79bb\u4e2d\u5fc3\u5ea6\u8d8a\u5c0f\uff0c\u8868\u793a\u8be5\u70b9\u5230\u5176\u4ed6\u70b9\u7684\u5e73\u5747\u6700\u77ed\u8ddd\u79bb\u6700\u5c0f\uff0c\u610f\u5473\u7740\u8be5\u70b9\u4ece\u51e0\u4f55\u89d2\u5ea6\u770b\u66f4\u4f4d\u4e8e\u56fe\u7684\u4e2d\u5fc3\u4f4d\u7f6e\u3002\u8ba1\u7b97\u65f6\u9700\u8981\u7ed9\u5b9a\u62bd\u6837\u70b9\u4e2a\u6570\uff0c\u5206\u522b\u4ee5\u8fd9\u4e9b\u62bd\u6837\u70b9\u4e3a\u4e2d\u5fc3\u8fdb\u884c\u8ba1\u7b97\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Closeness_centrality",title:"clce wiki",children:"https://en.wikipedia.org/wiki/Closeness_centrality"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5171\u540c\u90bb\u5c45",children:"\u5171\u540c\u90bb\u5c45"}),"\n",(0,i.jsx)(n.p,{children:"\u5171\u540c\u90bb\u5c45\u7a0b\u5e8f\u5b9e\u73b0\u4e86Common Neighborhood\u7b97\u6cd5\uff0c\u8ba1\u7b97\u4efb\u610f\u7ed9\u5b9a\u76f8\u90bb\u70b9\u5bf9\u4e4b\u95f4\u7684\u5171\u540c\u90bb\u5c45\u6570\u91cf\u3002\u8ba1\u7b97\u65f6\u7ed9\u5b9a\u5f85\u67e5\u8be2\u7684\u82e5\u5e72\u4e2a\u70b9\u5bf9\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3a\u5f85\u67e5\u8be2\u7684\u4efb\u610f\u70b9\u5bf9\u7684\u5171\u540c\u90bb\u5c45\u6570\u91cf\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u5ea6\u6570\u5173\u8054\u5ea6",children:"\u5ea6\u6570\u5173\u8054\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u5ea6\u6570\u5173\u8054\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Degree Correlation\u7b97\u6cd5\uff0c\u901a\u8fc7\u8ba1\u7b97\u4efb\u610f\u76f8\u90bb\u70b9\u5bf9\u4e4b\u95f4\u7684Pearson\u5173\u8054\u7cfb\u6570\u6765\u8ba1\u7b97\u56fe\u7684\u5ea6\u6570\u5173\u8054\u5ea6\uff0c\u53ef\u7528\u6765\u8868\u5f81\u56fe\u4e2d\u9ad8\u5ea6\u6570\u70b9\u4e4b\u95f4\u5173\u8054\u7a0b\u5ea6\u3002\u5ea6\u6570\u5173\u8054\u5ea6\u8d8a\u9ad8\uff0c\u8868\u793a\u56fe\u4e2d\u9ad8\u5ea6\u6570\u70b9\u4e4b\u95f4\u7684\u5173\u8054\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient",title:"dc wiki",children:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u76f4\u5f84\u4f30\u8ba1",children:"\u76f4\u5f84\u4f30\u8ba1"}),"\n",(0,i.jsxs)(n.p,{children:["\u76f4\u5f84\u4f30\u8ba1\u7a0b\u5e8f\u5b9e\u73b0\u4e86Dimension Estimation\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u4f1a\u8ba1\u7b97\u56fe\u4e2d\u6700\u957f\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\uff0c\u7528\u6765\u8868\u5f81\u56fe\u7684\u76f4\u5f84\u5927\u5c0f\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"http://mathworld.wolfram.com/GraphDiameter.html",title:"graph diameter",children:"http://mathworld.wolfram.com/GraphDiameter.html"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"egonet\u7b97\u6cd5",children:"EgoNet\u7b97\u6cd5"}),"\n",(0,i.jsx)(n.p,{children:"EgoNet\u7b97\u6cd5\u9700\u8981\u7ed9\u5b9a\u6839\u70b9\u548cK\u503c\uff0c\u4ee5\u6839\u70b9\u4e3a\u6e90\u70b9\u8fdb\u884c\u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\uff0c\u627e\u51fa\u6240\u6709K\u5ea6\u4ee5\u5185\u7684\u90bb\u5c45\u7ec4\u6210\u7684\u5b50\u56fe\u3002\u627e\u5230\u7684\u5b50\u56fe\u79f0\u4e3a\u6839\u70b9\u7684EgoNet\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",children:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22"}),"\n",(0,i.jsxs)(n.p,{children:["\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22\u7b97\u6cd5\u5b9e\u73b0\u4e86Hyperlink-Induced Topic Search\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5047\u5b9a\u6bcf\u4e2a\u70b9\u5177\u6709\u6743\u5a01\u6027Authority\u548c\u67a2\u7ebd\u6027Hub\u4e24\u4e2a\u5c5e\u6027\uff0c\u4e00\u4e2a\u597d\u7684\u67a2\u7ebd\u70b9\u5e94\u8be5\u6307\u5411\u8bb8\u591a\u9ad8\u6743\u5a01\u6027\u7684\u70b9\uff0c\u800c\u4e00\u4e2a\u826f\u597d\u7684\u6743\u5a01\u70b9\u5e94\u8be5\u88ab\u8bb8\u591a\u9ad8\u67a2\u7ebd\u578b\u7684\u70b9\u6307\u5411\u3002\u7b97\u6cd5\u5c06\u8fd4\u56de\u6bcf\u4e2a\u70b9\u7684\u6743\u5a01\u6027\u503c\u548c\u67a2\u7ebd\u6027\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/HITS_algorithm",title:"HITS algorithm",children:"https://en.wikipedia.org/wiki/HITS_algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6770\u5361\u5fb7\u7cfb\u6570",children:"\u6770\u5361\u5fb7\u7cfb\u6570"}),"\n",(0,i.jsxs)(n.p,{children:["\u6770\u5361\u5fb7\u7cfb\u6570\u7a0b\u5e8f\u5b9e\u73b0\u4e86Jaccard Index\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u4e86\u7ed9\u5b9a\u70b9\u5bf9\u4e4b\u95f4\u7684Jaccard\u7cfb\u6570\uff0c\u53ef\u7528\u6765\u8868\u793a\u8fd9\u4e24\u4e2a\u70b9\u7684\u76f8\u4f3c\u5ea6\u3002Jaccard\u7cfb\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u70b9\u5bf9\u4e4b\u95f4\u7684\u76f8\u4f3c\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u8ba1\u7b97\u65f6\u7ed9\u5b9a\u5e26\u67e5\u8be2\u7684\u82e5\u5e72\u70b9\u5bf9\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3a\u8fd9\u4e9b\u70b9\u5bf9\u7684Jaccard\u7cfb\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Jaccard_index",title:"ji wiki",children:"https://en.wikipedia.org/wiki/Jaccard_index"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"k\u6838\u7b97\u6cd5",children:"k\u6838\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u6838\u7b97\u6cd5\u5b9e\u73b0\u4e86k-core\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u6240\u6709\u70b9\u7684\u6838\u6570\uff0c\u6216\u627e\u51fa\u56fe\u4e2d\u6240\u6709\u7684K\u6838\u5b50\u56fe\u3002K\u6838\u5b50\u56fe\u662f\u4e00\u79cd\u7279\u6b8a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u4efb\u610f\u70b9\u5ea6\u6570\u90fd\u4e0d\u5c0f\u4e8e\u7ed9\u5b9aK\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)",title:"kcore wiki",children:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",children:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0"}),"\n",(0,i.jsxs)(n.p,{children:["\u9c81\u6c76\u793e\u533a\u53d1\u73b0\u7a0b\u5e8f\u5b9e\u73b0\u4e86Fast-unfolding\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6a21\u5757\u5ea6\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u901a\u8fc7\u4e0d\u65ad\u5408\u5e76\u70b9\u793e\u533a\u6765\u6700\u5927\u5316\u56fe\u7684\u6a21\u5757\u5ea6\uff0c\u80fd\u591f\u53d1\u73b0\u5c42\u6b21\u6027\u7684\u793e\u533a\u7ed3\u6784\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Louvain_Modularity",title:"louvain modularity wiki",children:"https://en.wikipedia.org/wiki/Louvain_Modularity"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",children:"\u591a\u6e90\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u591a\u6e90\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86Multiple-source Shortest Paths\u7b97\u6cd5\uff0c\u6839\u636e\u7ed9\u5b9a\u7684\u591a\u4e2a\u6e90\u70b9\uff0c\u4ece\u8fd9\u4e9b\u6e90\u70b9\u51fa\u53d1\uff0c\u8ba1\u7b97\u5230\u8fbe\u4efb\u610f\u70b9\u7684\u6700\u77ed\u8def\u5f84\u503c\u3002\u5176\u4e2d\uff0c\u591a\u4e2a\u6e90\u70b9\u5230\u67d0\u4e00\u70b9\u7684\u6700\u77ed\u8def\u5f84\u503c\u4e3a\u5206\u522b\u4ece\u6bcf\u4e2a\u6e90\u70b9\u51fa\u53d1\u5230\u8fbe\u8be5\u70b9\u7684\u6700\u77ed\u8def\u5f84\u7684\u6700\u5c0f\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",children:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f\u7a0b\u5e8f\u5b9e\u73b0\u4e86Personalized PageRank\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u6839\u636e\u7ed9\u5b9a\u7684\u6e90\u70b9\uff0c\u57fa\u4e8e\u8be5\u6e90\u70b9\u4e2a\u6027\u5316\u8ba1\u7b97\u6240\u6709\u70b9\u5bf9\u4e8e\u6e90\u70b9\u7684\u91cd\u8981\u6027\u6392\u540d\u3002Rank\u503c\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u5bf9\u4e8e\u6e90\u70b9\u8d8a\u91cd\u8981\u3002\u4e0ePageRank\u4e0d\u540c\u7684\u662f\uff0c\u521d\u59cb\u5316\u65f6\u6e90\u70b9Rank\u503c\u4e3a1\uff0c\u5176\u4f59\u70b9Rank\u503c\u4e3a0\uff1b\u5e76\u4e14\u6bcf\u8f6e\u4f20\u9012\u7ed3\u675f\u540e\uff0cRank\u503c\u4f1a\u6709\u4e00\u5b9a\u7684\u6bd4\u4f8b\u968f\u5373\u4f20\u9012\u56de\u6e90\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf",children:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5f3a\u8fde\u901a\u5206\u91cf",children:"\u5f3a\u8fde\u901a\u5206\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u5f3a\u8fde\u901a\u5206\u91cf\u7a0b\u5e8f\u5b9e\u73b0\u4e86Strongly Connected Components\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u4e86\u56fe\u4e2d\u6240\u6709\u7684\u5f3a\u8fde\u901a\u5206\u91cf\uff0c\u5f3a\u8fde\u901a\u5206\u91cf\u662f\u56fe\u7684\u4e00\u4e2a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u53ef\u4ece\u4efb\u610f\u70b9\u51fa\u53d1\u5230\u8fbe\u5176\u4ed6\u4efb\u610f\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Strongly_connected_component",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Strongly_connected_component"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsx)(n.p,{children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Speaker-listener Label Propagation Algorithm\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6807\u7b7e\u4f20\u64ad\u548c\u5386\u53f2\u6807\u7b7e\u8bb0\u5f55\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u662f\u5bf9\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7684\u6269\u5c55\u3002\u4e0e\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0c\u672c\u7b97\u6cd5\u4f1a\u5bf9\u6240\u6709\u70b9\u8bb0\u5f55\u5176\u5386\u53f2\u6807\u7b7e\uff0c\u5728\u8fed\u4ee3\u4e2d\u5bf9\u6807\u7b7e\u8fdb\u884c\u7d2f\u52a0\u65f6\uff0c\u4f1a\u5c06\u5386\u53f2\u6807\u7b7e\u4e5f\u8ba1\u7b97\u5728\u5185\u3002\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e3a\u6bcf\u4e2a\u70b9\u7684\u6240\u6709\u5386\u53f2\u6807\u7b7e\u8bb0\u5f55\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cSLPA: Uncovering Overlapping Communities in Social Networks via a Speaker-Listener Interaction Dynamic Process\u201d\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",children:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86Bidirectional Breadth-First Search\u7b97\u6cd5\uff0c\u5728\u6709\u5411\u65e0\u6743\u56fe\u4e0a\u4ece\u8d77\u70b9\u6cbf\u7740\u51fa\u8fb9\u505a\u6b63\u5411\u5bbd\u5ea6\u4f18\u5148\u641c\u641c\uff0c\u4ece\u7ec8\u70b9\u6cbf\u7740\u5165\u8fb9\u505a\u53cd\u5411\u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\uff0c\u901a\u8fc7\u8d77\u70b9\u548c\u7ec8\u70b9\u5171\u540c\u904d\u5386\u5230\u7684\u70b9\u6765\u786e\u5b9a\u4ece\u8d77\u70b9\u5230\u7ec8\u70b9\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Bidirectional_search",title:"Bidirectional search",children:"https://en.wikipedia.org/wiki/Bidirectional_search"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u4e09\u89d2\u8ba1\u6570",children:"\u4e09\u89d2\u8ba1\u6570"}),"\n",(0,i.jsx)(n.p,{children:"\u4e09\u89d2\u8ba1\u6570\u5b9e\u73b0\u4e86Triangle-counting\u7b97\u6cd5\uff0c\u8ba1\u7b97\u65e0\u5411\u56fe\u4e2d\u7684\u4e09\u89d2\u5f62\u4e2a\u6570\uff0c\u53ef\u7528\u6765\u8868\u5f81\u56fe\u4e2d\u70b9\u7684\u5173\u8054\u7a0b\u5ea6\u3002\u4e09\u89d2\u5f62\u6570\u8d8a\u591a\uff0c\u8868\u793a\u56fe\u4e2d\u70b9\u7684\u5173\u8054\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cFinding, Counting and Listing All Triangles in Large Graphs, an Experimental Study\u201d \u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",children:"\u4fe1\u4efb\u6307\u6570\u6392\u540d"}),"\n",(0,i.jsxs)(n.p,{children:["\u4fe1\u4efb\u6307\u6570\u6392\u540d\u7b97\u6cd5\u5b9e\u73b0\u4e86Trustrank\u7b97\u6cd5\uff0c\u53ef\u4ee5\u6839\u636e\u7ed9\u5b9a\u7684\u767d\u540d\u5355\uff0c\u8ba1\u7b97\u4efb\u610f\u70b9\u7684\u4fe1\u4efb\u6307\u6570\u3002\u4fe1\u4efb\u6307\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u4e3a\u975e\u6cd5\u70b9\u7684\u53ef\u80fd\u6027\u8d8a\u5c0f\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/TrustRank",title:"trustrank wiki",children:"https://en.wikipedia.org/wiki/TrustRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",children:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weighted Label Propagation Algorithm\u7b97\u6cd5\u3002=\u4e0e\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0c\u6807\u7b7e\u7684\u4f20\u9012\u8ddf\u8fb9\u7684\u6743\u91cd\u76f8\u5173\uff0c\u5728\u6807\u7b7e\u4f20\u9012\u65f6\uff0c\u6bcf\u4e2a\u70b9\u4f1a\u6839\u636e\u6807\u7b7e\u7684\u5165\u8fb9\u8fdb\u884c\u6743\u91cd\u7d2f\u52a0\uff0c\u5728\u7d2f\u52a0\u548c\u6700\u9ad8\u7684\u6807\u7b7e\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",children:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weighted Pagerank\u7b97\u6cd5\u3002\u4e0ePageRank\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0cRank\u503c\u7684\u4f20\u9012\u8ddf\u8fb9\u7684\u6743\u91cd\u6709\u5173\uff0c\u70b9\u7684Rank\u503c\u5c06\u6309\u7167\u8fb9\u6743\u91cd\u52a0\u6743\u4f20\u9012\u5230\u76f8\u90bb\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/PageRank",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",children:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5\u5b9e\u73b0\u4e86Maximal independent set\u7b97\u6cd5\u3002\u6700\u5927\u72ec\u7acb\u96c6\u662f\u6307\u5728\u8fd9\u4e2a\u72ec\u7acb\u96c6\u4e4b\u5916\u6ca1\u6709\u53ef\u4ee5\u52a0\u5165\u5b83\u7684\u70b9\u3002\u4e00\u4e2a\u56fe\u53ef\u80fd\u6709\u8bb8\u591a\u5927\u5c0f\u5dee\u5f02\u5f88\u5927\u7684 MIS\uff0c\u7b97\u6cd5\u627e\u51fa\u5176\u4e2d\u4e00\u4e2a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm",title:"Maximal independent set wiki",children:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"sybil\u68c0\u6d4b\u7b97\u6cd5",children:"Sybil\u68c0\u6d4b\u7b97\u6cd5"}),"\n",(0,i.jsx)(n.p,{children:"Sybil\u68c0\u6d4b\u7b97\u6cd5\u5b9e\u73b0\u4e86Sybil Rank\u7b97\u6cd5\u3002SybilRank\u7b97\u6cd5\u4ece\u975eSybil\u8282\u70b9\u5f00\u59cb\u8fdb\u884c\u63d0\u524d\u7ec8\u6b62\u7684\u968f\u673a\u6e38\u8d70\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cAiding the Detection of Fake Accounts in Large Scale Social Online Services\u201d\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",children:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u5b50\u56fe\u5339\u914d\u7b97\u6cd5\u5b9e\u73b0\u4e86subgraph_isomorphism\u7b97\u6cd5\u3002subgraph_isomorphism\u7b97\u6cd5\u5bf9\u5168\u56fe\u6240\u6709\u8282\u70b9\u5339\u914d\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u88ab\u5339\u914d\u7684\u6b21\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105",children:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",children:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5\u5b9e\u73b0\u4e86motif\u7b97\u6cd5\u3002motif\u7b97\u6cd5\u5bf9\u6307\u5b9a\u7684\u8282\u70b9\u5339\u914dk\u9636\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u6307\u5b9a\u8282\u70b9\u6bcf\u79cdk\u9636\u5b50\u56fe\u4e2a\u6570\uff0c\u6bcf\u4e2ak\u9636\u5b50\u56fe\u7528\u4e00\u4e2a64\u4f4d\u6574\u6570\u8868\u793a\uff0c\u6574\u6570\u7684\u7b2c$i \\times k + j$\u4f4d\u4e3a1\u8868\u793a\u5b50\u56fe\u4e2d\u6709\u8fb9i->j\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Network_motif#mfinder",children:"https://en.wikipedia.org/wiki/Network_motif#mfinder"})]}),"\n",(0,i.jsx)(n.h3,{id:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",children:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5\u5b9e\u73b0\u4e86k-cliques\u7b97\u6cd5\u3002k-cliques\u7b97\u6cd5\u5bf9\u8ba1\u7b97\u56fe\u4e2d\u6240\u6709\u7684k\u9636\u5b8c\u5168\u5b50\u56fe\u7684\u4e2a\u6570\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u6240\u5728\u7684k\u9636\u5b8c\u5168\u5b50\u56fe\u4e2a\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size",children:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size"})]}),"\n",(0,i.jsx)(n.h3,{id:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",children:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5\u5b9e\u73b0\u4e86k-truss\u7b97\u6cd5\u3002k-truss\u6307\u6bcf\u6761\u8fb9\u90fd\u81f3\u5c11\u662fk-2\u4e2a\u4e09\u89d2\u5f62\u7684\u8fb9\u7684\u5b50\u56fe\u3002k-truss\u7b97\u6cd5\u627e\u51fa\u56fe\u7684k-truss\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u5728\u5b50\u56fe\u4e2d\u7684\u90bb\u5c45\u8282\u70b9\u5217\u8868\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://louridas.github.io/rwa/assignments/finding-trusses/",children:"https://louridas.github.io/rwa/assignments/finding-trusses/"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u83b1\u987f\u7b97\u6cd5",children:"\u83b1\u987f\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u83b1\u987f\u7b97\u6cd5\u5b9e\u73b0\u4e86\u4e86leiden\u7b97\u6cd5\u3002leiden\u7b97\u6cd5\u662f\u57fa\u4e8e\u6a21\u5757\u5ea6\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u4e0elouvain\u7b97\u6cd5\u4f18\u52bf\u5728\u4e8eleiden\u7b97\u6cd5\u68c0\u6d4b\u51fa\u793e\u533a\u4e2d\u7684\u65ad\u94fe\uff0c\u4fdd\u8bc1\u6bcf\u4e2a\u793e\u533a\u5177\u6709\u826f\u597d\u7684\u8fde\u901a\u6027\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://www.nature.com/articles/s41598-019-41695-z#Sec4",children:"https://www.nature.com/articles/s41598-019-41695-z#Sec4"})]})]})}function x(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>d});var i=t(6540);const l={},r=i.createContext(l);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/65876c74.b8b7a208.js b/assets/js/65876c74.b8b7a208.js
new file mode 100644
index 0000000000..c6a371733a
--- /dev/null
+++ b/assets/js/65876c74.b8b7a208.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7067],{8084:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>x,frontMatter:()=>r,metadata:()=>d,toc:()=>h});var i=t(4848),l=t(8453);const r={},s="\u5185\u7f6e\u7b97\u6cd5",d={id:"olap&procedure/olap/algorithms",title:"\u5185\u7f6e\u7b97\u6cd5",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86TuGraph\u5185\u7f6e\u7684\u7b97\u6cd5\u7a0b\u5e8f\uff0c\u793e\u533a\u72486\u79cd\u7b97\u6cd5\u53ef\u53c2\u8003\u57fa\u7840\u7b97\u6cd5\u62a5",source:"@site/../docs/zh-CN/source/9.olap&procedure/2.olap/6.algorithms.md",sourceDirName:"9.olap&procedure/2.olap",slug:"/olap&procedure/olap/algorithms",permalink:"/tugraph-db/zh/olap&procedure/olap/algorithms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python Olap API",permalink:"/tugraph-db/zh/olap&procedure/olap/python-api"},next:{title:"Learn Tutorial",permalink:"/tugraph-db/zh/olap&procedure/learn/tutorial"}},c={},h=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:2},{value:"\u57fa\u7840\u7b97\u6cd5\u5305\uff1a",id:"\u57fa\u7840\u7b97\u6cd5\u5305",level:3},{value:"\u6269\u5c55\u7b97\u6cd5\u5305\uff1a",id:"\u6269\u5c55\u7b97\u6cd5\u5305",level:3},{value:"\u57fa\u7840\u7b97\u6cd5\u5305",id:"\u57fa\u7840\u7b97\u6cd5\u5305-1",level:2},{value:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",id:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",level:3},{value:"\u7f51\u9875\u6392\u5e8f",id:"\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",id:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",level:3},{value:"\u5f31\u8fde\u901a\u5206\u91cf",id:"\u5f31\u8fde\u901a\u5206\u91cf",level:3},{value:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",id:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",level:3},{value:"\u6807\u7b7e\u4f20\u64ad",id:"\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u6269\u5c55\u7b97\u6cd5\u5305",id:"\u6269\u5c55\u7b97\u6cd5\u5305-1",level:2},{value:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",id:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",id:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",level:3},{value:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",id:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",level:3},{value:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",id:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",level:3},{value:"\u5171\u540c\u90bb\u5c45",id:"\u5171\u540c\u90bb\u5c45",level:3},{value:"\u5ea6\u6570\u5173\u8054\u5ea6",id:"\u5ea6\u6570\u5173\u8054\u5ea6",level:3},{value:"\u76f4\u5f84\u4f30\u8ba1",id:"\u76f4\u5f84\u4f30\u8ba1",level:3},{value:"EgoNet\u7b97\u6cd5",id:"egonet\u7b97\u6cd5",level:3},{value:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",id:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",level:3},{value:"\u6770\u5361\u5fb7\u7cfb\u6570",id:"\u6770\u5361\u5fb7\u7cfb\u6570",level:3},{value:"k\u6838\u7b97\u6cd5",id:"k\u6838\u7b97\u6cd5",level:3},{value:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",id:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",level:3},{value:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",id:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",id:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u5f3a\u8fde\u901a\u5206\u91cf",id:"\u5f3a\u8fde\u901a\u5206\u91cf",level:3},{value:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",id:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",id:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",level:3},{value:"\u4e09\u89d2\u8ba1\u6570",id:"\u4e09\u89d2\u8ba1\u6570",level:3},{value:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",id:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",level:3},{value:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",id:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",level:3},{value:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",id:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",level:3},{value:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",id:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",level:3},{value:"Sybil\u68c0\u6d4b\u7b97\u6cd5",id:"sybil\u68c0\u6d4b\u7b97\u6cd5",level:3},{value:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",id:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",level:3},{value:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",id:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",level:3},{value:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",id:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",level:3},{value:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",id:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",level:3},{value:"\u83b1\u987f\u7b97\u6cd5",id:"\u83b1\u987f\u7b97\u6cd5",level:3}];function a(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u5185\u7f6e\u7b97\u6cd5",children:"\u5185\u7f6e\u7b97\u6cd5"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86TuGraph\u5185\u7f6e\u7684\u7b97\u6cd5\u7a0b\u5e8f\uff0c\u793e\u533a\u72486\u79cd\u7b97\u6cd5\u53ef\u53c2\u8003\u57fa\u7840\u7b97\u6cd5\u62a5"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"\u7b80\u4ecb",children:"\u7b80\u4ecb"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u5305\u542b\u4ee5\u4e0b6\u4e2a\u57fa\u7840\u7b97\u6cd528\u79cd\u6269\u5c55\u7b97\u6cd5\uff0c\u517134\u4e2a\u56fe\u7b97\u6cd5\uff1a"}),"\n",(0,i.jsx)(n.h3,{id:"\u57fa\u7840\u7b97\u6cd5\u5305",children:"\u57fa\u7840\u7b97\u6cd5\u5305\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u4e2d\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u82f1\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u7a0b\u5e8f\u540d"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Breadth-First Search"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bfs"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Pagerank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"pagerank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5355\u6e90\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Single-Source Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sssp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5f31\u8fde\u901a\u5206\u91cf"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weakly Connected Components"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wcc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Local Clustering Coefficient"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"lcc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"lpa"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6269\u5c55\u7b97\u6cd5\u5305",children:"\u6269\u5c55\u7b97\u6cd5\u5305\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u4e2d\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u82f1\u6587\u7b97\u6cd5\u540d"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"\u7a0b\u5e8f\u540d"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"All-Pair Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"apsp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Betweenness Centrality"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Belief Propagation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"bp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Closeness Centrality"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"clce"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5171\u540c\u90bb\u5c45"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Common Neighborhood"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"cn"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5ea6\u6570\u5173\u8054\u5ea6"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Degree Correlation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"dc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u76f4\u5f84\u4f30\u8ba1"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Dimension Estimation"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"de"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"EgoNet\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"EgoNet"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"en"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Hyperlink-Induced Topic Search"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"hits"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6770\u5361\u5fb7\u7cfb\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Jaccard Index"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ji"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"K\u6838\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"K-core"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"kcore"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Louvain"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"louvain"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u591a\u6e90\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Multiple-source Shortest Paths"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"mssp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Personalized PageRank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ppr"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5f3a\u8fde\u901a\u5206\u91cf"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Strongly Connected Components"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"scc"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Speaker-listener Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"slpa"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Single-Pair Shortest Path"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"spsp"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4e09\u89d2\u8ba1\u6570"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Triangle Counting"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"triangle"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u4fe1\u4efb\u6307\u6570\u6392\u540d"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Trustrank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"trustrank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weighted Label Propagation Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wlpa"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Weighted Pagerank Algorithm"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"wpagerank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Maximal independent set"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"mis"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sybil\u68c0\u6d4b\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Sybil Rank"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"sybilrank"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Subgraph Isomorphism"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"subgraph_isomorphism"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Motif"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"motif"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Kcliques"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"kcliques"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Ktruss"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"ktruss"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"\u83b1\u987f\u7b97\u6cd5"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Leiden"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"leiden"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"\u57fa\u7840\u7b97\u6cd5\u5305-1",children:"\u57fa\u7840\u7b97\u6cd5\u5305"}),"\n",(0,i.jsx)(n.h3,{id:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22",children:"\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e7f\u5ea6\u4f18\u5148\u641c\u7d22\u5b9e\u73b0\u4e86Breadth-first Search\u7b97\u6cd5\uff0c\u4ece\u6839\u70b9\u5f00\u59cb\uff0c\u6cbf\u7740\u56fe\u7684\u5bbd\u5ea6\u904d\u5386\u6240\u6709\u53ef\u8bbf\u95ee\u70b9\u3002\u8fd4\u56de\u7ed3\u679c\u4e3a\u904d\u5386\u70b9\u4e2a\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Breadth-first_search",title:"bfs wiki",children:"https://en.wikipedia.org/wiki/Breadth-first_search"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u7f51\u9875\u6392\u5e8f",children:"\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u7f51\u9875\u6392\u5e8f\u7a0b\u5e8f\u5b9e\u73b0\u4e86\u5e38\u7528\u7684Pagerank\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u6839\u636e\u56fe\u4e2d\u8fb9\u548c\u8fb9\u6743\u503c\u8ba1\u7b97\u6240\u6709\u70b9\u7684\u91cd\u8981\u6027\u6392\u540d\uff0cPageRank\u503c\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u5728\u56fe\u4e2d\u7684\u91cd\u8981\u6027\u8d8a\u9ad8\u3002\u8ba1\u7b97\u65f6\u4ee5\u70b9\u6570\u91cf\u7684\u5012\u6570\u4e3a\u5404\u70b9\u521d\u59cbRank\u503c\uff0c\u7136\u540e\u5c06\u70b9\u7684Rank\u503c\u6309\u7167\u51fa\u8fb9\u5e73\u5747\u4f20\u9012\u5230\u76f8\u90bb\u70b9\uff0c\u91cd\u590d\u8be5\u4f20\u9012\u8fc7\u7a0b\u76f4\u5230\u6ee1\u8db3\u7ed9\u5b9a\u7684\u6536\u655b\u9608\u503c\u6216\u8fbe\u5230\u7ed9\u5b9a\u8fed\u4ee3\u8f6e\u6570\u3002\u6bcf\u8f6e\u4f20\u9012\u7ed3\u675f\u540e\uff0c\u6240\u6709\u70b9\u7684Rank\u503c\u4f1a\u6709\u4e00\u5b9a\u7684\u7684\u6bd4\u4f8b\u968f\u673a\u4f20\u9012\u5230\u4efb\u610f\u70b9\u4e0a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/PageRank",title:"pagerank wiki",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5355\u6e90\u6700\u77ed\u8def\u5f84",children:"\u5355\u6e90\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u5355\u6e90\u6700\u77ed\u8def\u5f84\u5b9e\u73b0\u4e86Single Source Shortest Path\u7b97\u6cd5\uff0c\u6839\u636e\u7ed9\u5b9a\u7684\u6e90\u70b9\uff0c\u8ba1\u7b97\u4ece\u8be5\u6e90\u70b9\u51fa\u53d1\u5230\u5176\u4ed6\u4efb\u610f\u70b9\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5f31\u8fde\u901a\u5206\u91cf",children:"\u5f31\u8fde\u901a\u5206\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u5f31\u8fde\u901a\u5206\u91cf\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weakly Connected Components\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u4f1a\u8ba1\u7b97\u56fe\u4e2d\u6240\u6709\u7684\u5f31\u8fde\u901a\u5206\u91cf\u3002\u5f31\u8fde\u901a\u5206\u91cf\u662f\u56fe\u7684\u4e00\u4e2a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u4efb\u610f\u4e24\u70b9\u4e4b\u95f4\u5747\u5b58\u5728\u53ef\u8fbe\u8def\u5f84\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Connected_component_(graph_theory)"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570",children:"\u5e73\u5747\u96c6\u805a\u7cfb\u6570"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e73\u5747\u96c6\u805a\u7cfb\u6570\u7a0b\u5e8f\u5b9e\u73b0\u4e86Local Clustering Coefficient\u7b97\u6cd5\uff0c\u8ba1\u7b97\u56fe\u4e2d\u70b9\u4e4b\u95f4\u805a\u96c6\u7a0b\u5ea6\u7684\u7cfb\u6570\u3002\u8fd4\u56de\u7ed3\u679c\u5305\u62ec\u6574\u4f53\u96c6\u805a\u7cfb\u6570\u548c\u70b9\u96c6\u805a\u7cfb\u6570\u3002\u6574\u4f53\u96c6\u805a\u7cfb\u6570\u53cd\u6620\u4e86\u56fe\u4e2d\u6574\u4f53\u7684\u96c6\u805a\u7a0b\u5ea6\u7684\u8bc4\u4f30\uff0c\u70b9\u96c6\u805a\u7cfb\u6570\u5305\u62ec\u4efb\u610f\u70b9\u7684\u96c6\u805a\u7cfb\u6570\uff0c\u53cd\u6620\u4e86\u8be5\u70b9\u9644\u8fd1\u7684\u96c6\u805a\u7a0b\u5ea6\u3002\u96c6\u805a\u7cfb\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u96c6\u805a\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Clustering_coefficient",title:"lcc wiki",children:"https://en.wikipedia.org/wiki/Clustering_coefficient"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6807\u7b7e\u4f20\u64ad",children:"\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Label Propagation Algorithm\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6807\u7b7e\u4f20\u64ad\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u8ba1\u7b97\u5bf9\u8c61\u4e3a\u65e0\u6743\u56fe\u3002\u5728\u6807\u7b7e\u4f20\u9012\u65f6\uff0c\u6bcf\u4e2a\u70b9\u5bf9\u6536\u5230\u7684\u6240\u6709\u6807\u7b7e\u8fdb\u884c\u6b21\u6570\u7d2f\u52a0\uff0c\u5728\u7d2f\u52a0\u548c\u6700\u9ad8\u7684\u6807\u7b7e\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u3002\u8fed\u4ee3\u6536\u655b\u6216\u6267\u884c\u5230\u7ed9\u5b9a\u8f6e\u6570\u540e\u7b97\u6cd5\u7ec8\u6b62\u3002\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e3a\u6bcf\u4e2a\u70b9\u7684\u6807\u7b7e\uff0c\u6807\u7b7e\u503c\u76f8\u540c\u7684\u70b9\u89c6\u4e3a\u5728\u540c\u4e00\u793e\u533a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h2,{id:"\u6269\u5c55\u7b97\u6cd5\u5305-1",children:"\u6269\u5c55\u7b97\u6cd5\u5305"}),"\n",(0,i.jsx)(n.h3,{id:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84",children:"\u5168\u5bf9\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u5168\u5bf9\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86All-Pair Shortest Path\u7b97\u6cd5\uff0c\u8ba1\u7b97\u56fe\u4e2d\u4efb\u610f\u4e24\u70b9\u95f4\u7684\u6700\u77ed\u8def\u5f84\u3002\u8fd4\u56de\u7ed3\u679c\u4e3a\u4efb\u610f\u5b58\u5728\u8def\u5f84\u7684\u70b9\u5bf9\u4e4b\u95f4\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm",title:"Floyd-Warshall algorighm wiki",children:"https://en.wikipedia.org/wiki/Floyd-Warshall_algorithm"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6",children:"\u4ecb\u6570\u4e2d\u5fc3\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Betweenness Centrality\u7b97\u6cd5\uff0c\u4f30\u7b97\u56fe\u4e2d\u6240\u6709\u70b9\u7684\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u503c\u3002\u4ecb\u6570\u4e2d\u5fc3\u5ea6\u503c\u53cd\u6620\u4e86\u56fe\u4e2d\u4efb\u4e00\u6700\u77ed\u8def\u5f84\u7ecf\u8fc7\u8be5\u70b9\u7684\u53ef\u80fd\u6027\uff0c\u503c\u8d8a\u9ad8\u8868\u793a\u6709\u8d8a\u591a\u7684\u6700\u77ed\u8def\u5f84\u7ecf\u8fc7\u4e86\u8be5\u70b9\u3002\u8ba1\u7b97\u65f6\u9700\u7ed9\u5b9a\u62bd\u6837\u70b9\u4e2a\u6570\uff0c\u5206\u522b\u4ee5\u8fd9\u4e9b\u62bd\u6837\u70b9\u4e3a\u4e2d\u5fc3\u8fdb\u884c\u8ba1\u7b97\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Betweenness_centrality",title:"bc wiki",children:"https://en.wikipedia.org/wiki/Betweenness_centrality"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad",children:"\u7f6e\u4fe1\u5ea6\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u7f6e\u4fe1\u5ea6\u4f20\u64ad\u7a0b\u5e8f\u5b9e\u73b0\u4e86Belief Propagation\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u7ed9\u5b9a\u5df2\u89c2\u6d4b\u70b9\u7684\u8fb9\u7f18\u5206\u5e03\uff0c\u5229\u7528\u70b9\u4e4b\u95f4\u76f8\u4e92\u4f20\u9012\u6d88\u606f\u7684\u673a\u5236\u6765\u4f30\u7b97\u672a\u89c2\u6d4b\u70b9\u7684\u8fb9\u7f18\u5206\u5e03\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Belief_propagation",children:"https://en.wikipedia.org/wiki/Belief_propagation"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6",children:"\u8ddd\u79bb\u4e2d\u5fc3\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u8ddd\u79bb\u4e2d\u5fc3\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Closeness Centrality\u7b97\u6cd5\uff0c\u4f30\u7b97\u4efb\u610f\u70b9\u5230\u56fe\u4e2d\u5176\u4ed6\u70b9\u7684\u6700\u77ed\u8def\u5f84\u7684\u5e73\u5747\u957f\u5ea6\u3002\u8ddd\u79bb\u4e2d\u5fc3\u5ea6\u8d8a\u5c0f\uff0c\u8868\u793a\u8be5\u70b9\u5230\u5176\u4ed6\u70b9\u7684\u5e73\u5747\u6700\u77ed\u8ddd\u79bb\u6700\u5c0f\uff0c\u610f\u5473\u7740\u8be5\u70b9\u4ece\u51e0\u4f55\u89d2\u5ea6\u770b\u66f4\u4f4d\u4e8e\u56fe\u7684\u4e2d\u5fc3\u4f4d\u7f6e\u3002\u8ba1\u7b97\u65f6\u9700\u8981\u7ed9\u5b9a\u62bd\u6837\u70b9\u4e2a\u6570\uff0c\u5206\u522b\u4ee5\u8fd9\u4e9b\u62bd\u6837\u70b9\u4e3a\u4e2d\u5fc3\u8fdb\u884c\u8ba1\u7b97\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Closeness_centrality",title:"clce wiki",children:"https://en.wikipedia.org/wiki/Closeness_centrality"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5171\u540c\u90bb\u5c45",children:"\u5171\u540c\u90bb\u5c45"}),"\n",(0,i.jsx)(n.p,{children:"\u5171\u540c\u90bb\u5c45\u7a0b\u5e8f\u5b9e\u73b0\u4e86Common Neighborhood\u7b97\u6cd5\uff0c\u8ba1\u7b97\u4efb\u610f\u7ed9\u5b9a\u76f8\u90bb\u70b9\u5bf9\u4e4b\u95f4\u7684\u5171\u540c\u90bb\u5c45\u6570\u91cf\u3002\u8ba1\u7b97\u65f6\u7ed9\u5b9a\u5f85\u67e5\u8be2\u7684\u82e5\u5e72\u4e2a\u70b9\u5bf9\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3a\u5f85\u67e5\u8be2\u7684\u4efb\u610f\u70b9\u5bf9\u7684\u5171\u540c\u90bb\u5c45\u6570\u91cf\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u5ea6\u6570\u5173\u8054\u5ea6",children:"\u5ea6\u6570\u5173\u8054\u5ea6"}),"\n",(0,i.jsxs)(n.p,{children:["\u5ea6\u6570\u5173\u8054\u5ea6\u7a0b\u5e8f\u5b9e\u73b0\u4e86Degree Correlation\u7b97\u6cd5\uff0c\u901a\u8fc7\u8ba1\u7b97\u4efb\u610f\u76f8\u90bb\u70b9\u5bf9\u4e4b\u95f4\u7684Pearson\u5173\u8054\u7cfb\u6570\u6765\u8ba1\u7b97\u56fe\u7684\u5ea6\u6570\u5173\u8054\u5ea6\uff0c\u53ef\u7528\u6765\u8868\u5f81\u56fe\u4e2d\u9ad8\u5ea6\u6570\u70b9\u4e4b\u95f4\u5173\u8054\u7a0b\u5ea6\u3002\u5ea6\u6570\u5173\u8054\u5ea6\u8d8a\u9ad8\uff0c\u8868\u793a\u56fe\u4e2d\u9ad8\u5ea6\u6570\u70b9\u4e4b\u95f4\u7684\u5173\u8054\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient",title:"dc wiki",children:"https://en.wikipedia.org/wiki/Pearson_correlation_coefficient"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u76f4\u5f84\u4f30\u8ba1",children:"\u76f4\u5f84\u4f30\u8ba1"}),"\n",(0,i.jsxs)(n.p,{children:["\u76f4\u5f84\u4f30\u8ba1\u7a0b\u5e8f\u5b9e\u73b0\u4e86Dimension Estimation\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u4f1a\u8ba1\u7b97\u56fe\u4e2d\u6700\u957f\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\uff0c\u7528\u6765\u8868\u5f81\u56fe\u7684\u76f4\u5f84\u5927\u5c0f\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"http://mathworld.wolfram.com/GraphDiameter.html",title:"graph diameter",children:"http://mathworld.wolfram.com/GraphDiameter.html"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"egonet\u7b97\u6cd5",children:"EgoNet\u7b97\u6cd5"}),"\n",(0,i.jsx)(n.p,{children:"EgoNet\u7b97\u6cd5\u9700\u8981\u7ed9\u5b9a\u6839\u70b9\u548cK\u503c\uff0c\u4ee5\u6839\u70b9\u4e3a\u6e90\u70b9\u8fdb\u884c\u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\uff0c\u627e\u51fa\u6240\u6709K\u5ea6\u4ee5\u5185\u7684\u90bb\u5c45\u7ec4\u6210\u7684\u5b50\u56fe\u3002\u627e\u5230\u7684\u5b50\u56fe\u79f0\u4e3a\u6839\u70b9\u7684EgoNet\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22",children:"\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22"}),"\n",(0,i.jsxs)(n.p,{children:["\u8d85\u94fe\u63a5\u4e3b\u9898\u641c\u7d22\u7b97\u6cd5\u5b9e\u73b0\u4e86Hyperlink-Induced Topic Search\u7b97\u6cd5\uff0c\u8be5\u7b97\u6cd5\u5047\u5b9a\u6bcf\u4e2a\u70b9\u5177\u6709\u6743\u5a01\u6027Authority\u548c\u67a2\u7ebd\u6027Hub\u4e24\u4e2a\u5c5e\u6027\uff0c\u4e00\u4e2a\u597d\u7684\u67a2\u7ebd\u70b9\u5e94\u8be5\u6307\u5411\u8bb8\u591a\u9ad8\u6743\u5a01\u6027\u7684\u70b9\uff0c\u800c\u4e00\u4e2a\u826f\u597d\u7684\u6743\u5a01\u70b9\u5e94\u8be5\u88ab\u8bb8\u591a\u9ad8\u67a2\u7ebd\u578b\u7684\u70b9\u6307\u5411\u3002\u7b97\u6cd5\u5c06\u8fd4\u56de\u6bcf\u4e2a\u70b9\u7684\u6743\u5a01\u6027\u503c\u548c\u67a2\u7ebd\u6027\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/HITS_algorithm",title:"HITS algorithm",children:"https://en.wikipedia.org/wiki/HITS_algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6770\u5361\u5fb7\u7cfb\u6570",children:"\u6770\u5361\u5fb7\u7cfb\u6570"}),"\n",(0,i.jsxs)(n.p,{children:["\u6770\u5361\u5fb7\u7cfb\u6570\u7a0b\u5e8f\u5b9e\u73b0\u4e86Jaccard Index\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u4e86\u7ed9\u5b9a\u70b9\u5bf9\u4e4b\u95f4\u7684Jaccard\u7cfb\u6570\uff0c\u53ef\u7528\u6765\u8868\u793a\u8fd9\u4e24\u4e2a\u70b9\u7684\u76f8\u4f3c\u5ea6\u3002Jaccard\u7cfb\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u70b9\u5bf9\u4e4b\u95f4\u7684\u76f8\u4f3c\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u8ba1\u7b97\u65f6\u7ed9\u5b9a\u5e26\u67e5\u8be2\u7684\u82e5\u5e72\u70b9\u5bf9\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3a\u8fd9\u4e9b\u70b9\u5bf9\u7684Jaccard\u7cfb\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Jaccard_index",title:"ji wiki",children:"https://en.wikipedia.org/wiki/Jaccard_index"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"k\u6838\u7b97\u6cd5",children:"k\u6838\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u6838\u7b97\u6cd5\u5b9e\u73b0\u4e86k-core\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u6240\u6709\u70b9\u7684\u6838\u6570\uff0c\u6216\u627e\u51fa\u56fe\u4e2d\u6240\u6709\u7684K\u6838\u5b50\u56fe\u3002K\u6838\u5b50\u56fe\u662f\u4e00\u79cd\u7279\u6b8a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u4efb\u610f\u70b9\u5ea6\u6570\u90fd\u4e0d\u5c0f\u4e8e\u7ed9\u5b9aK\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)",title:"kcore wiki",children:"https://en.wikipedia.org/wiki/Degeneracy_(graph_theory)"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0",children:"\u9c81\u6c76\u793e\u533a\u53d1\u73b0"}),"\n",(0,i.jsxs)(n.p,{children:["\u9c81\u6c76\u793e\u533a\u53d1\u73b0\u7a0b\u5e8f\u5b9e\u73b0\u4e86Fast-unfolding\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6a21\u5757\u5ea6\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u901a\u8fc7\u4e0d\u65ad\u5408\u5e76\u70b9\u793e\u533a\u6765\u6700\u5927\u5316\u56fe\u7684\u6a21\u5757\u5ea6\uff0c\u80fd\u591f\u53d1\u73b0\u5c42\u6b21\u6027\u7684\u793e\u533a\u7ed3\u6784\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Louvain_Modularity",title:"louvain modularity wiki",children:"https://en.wikipedia.org/wiki/Louvain_Modularity"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u591a\u6e90\u6700\u77ed\u8def\u5f84",children:"\u591a\u6e90\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u591a\u6e90\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86Multiple-source Shortest Paths\u7b97\u6cd5\uff0c\u6839\u636e\u7ed9\u5b9a\u7684\u591a\u4e2a\u6e90\u70b9\uff0c\u4ece\u8fd9\u4e9b\u6e90\u70b9\u51fa\u53d1\uff0c\u8ba1\u7b97\u5230\u8fbe\u4efb\u610f\u70b9\u7684\u6700\u77ed\u8def\u5f84\u503c\u3002\u5176\u4e2d\uff0c\u591a\u4e2a\u6e90\u70b9\u5230\u67d0\u4e00\u70b9\u7684\u6700\u77ed\u8def\u5f84\u503c\u4e3a\u5206\u522b\u4ece\u6bcf\u4e2a\u6e90\u70b9\u51fa\u53d1\u5230\u8fbe\u8be5\u70b9\u7684\u6700\u77ed\u8def\u5f84\u7684\u6700\u5c0f\u503c\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Shortest_path_problem",title:"shortest path wiki",children:"https://en.wikipedia.org/wiki/Shortest_path_problem"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f",children:"\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u4e2a\u6027\u5316\u7f51\u9875\u6392\u5e8f\u7a0b\u5e8f\u5b9e\u73b0\u4e86Personalized PageRank\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u6839\u636e\u7ed9\u5b9a\u7684\u6e90\u70b9\uff0c\u57fa\u4e8e\u8be5\u6e90\u70b9\u4e2a\u6027\u5316\u8ba1\u7b97\u6240\u6709\u70b9\u5bf9\u4e8e\u6e90\u70b9\u7684\u91cd\u8981\u6027\u6392\u540d\u3002Rank\u503c\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u5bf9\u4e8e\u6e90\u70b9\u8d8a\u91cd\u8981\u3002\u4e0ePageRank\u4e0d\u540c\u7684\u662f\uff0c\u521d\u59cb\u5316\u65f6\u6e90\u70b9Rank\u503c\u4e3a1\uff0c\u5176\u4f59\u70b9Rank\u503c\u4e3a0\uff1b\u5e76\u4e14\u6bcf\u8f6e\u4f20\u9012\u7ed3\u675f\u540e\uff0cRank\u503c\u4f1a\u6709\u4e00\u5b9a\u7684\u6bd4\u4f8b\u968f\u5373\u4f20\u9012\u56de\u6e90\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf",children:"https://cs.stanford.edu/people/plofgren/Fast-PPR_KDD_Talk.pdf"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5f3a\u8fde\u901a\u5206\u91cf",children:"\u5f3a\u8fde\u901a\u5206\u91cf"}),"\n",(0,i.jsxs)(n.p,{children:["\u5f3a\u8fde\u901a\u5206\u91cf\u7a0b\u5e8f\u5b9e\u73b0\u4e86Strongly Connected Components\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u8ba1\u7b97\u4e86\u56fe\u4e2d\u6240\u6709\u7684\u5f3a\u8fde\u901a\u5206\u91cf\uff0c\u5f3a\u8fde\u901a\u5206\u91cf\u662f\u56fe\u7684\u4e00\u4e2a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e2d\u53ef\u4ece\u4efb\u610f\u70b9\u51fa\u53d1\u5230\u8fbe\u5176\u4ed6\u4efb\u610f\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Strongly_connected_component",title:"scc wiki",children:"https://en.wikipedia.org/wiki/Strongly_connected_component"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad",children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsx)(n.p,{children:"\u76d1\u542c\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Speaker-listener Label Propagation Algorithm\u7b97\u6cd5\u3002\u8be5\u7b97\u6cd5\u662f\u57fa\u4e8e\u6807\u7b7e\u4f20\u64ad\u548c\u5386\u53f2\u6807\u7b7e\u8bb0\u5f55\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u662f\u5bf9\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7684\u6269\u5c55\u3002\u4e0e\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0c\u672c\u7b97\u6cd5\u4f1a\u5bf9\u6240\u6709\u70b9\u8bb0\u5f55\u5176\u5386\u53f2\u6807\u7b7e\uff0c\u5728\u8fed\u4ee3\u4e2d\u5bf9\u6807\u7b7e\u8fdb\u884c\u7d2f\u52a0\u65f6\uff0c\u4f1a\u5c06\u5386\u53f2\u6807\u7b7e\u4e5f\u8ba1\u7b97\u5728\u5185\u3002\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e3a\u6bcf\u4e2a\u70b9\u7684\u6240\u6709\u5386\u53f2\u6807\u7b7e\u8bb0\u5f55\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cSLPA: Uncovering Overlapping Communities in Social Networks via a Speaker-Listener Interaction Dynamic Process\u201d\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84",children:"\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84"}),"\n",(0,i.jsxs)(n.p,{children:["\u4e24\u70b9\u95f4\u6700\u77ed\u8def\u5f84\u7a0b\u5e8f\u5b9e\u73b0\u4e86Bidirectional Breadth-First Search\u7b97\u6cd5\uff0c\u5728\u6709\u5411\u65e0\u6743\u56fe\u4e0a\u4ece\u8d77\u70b9\u6cbf\u7740\u51fa\u8fb9\u505a\u6b63\u5411\u5bbd\u5ea6\u4f18\u5148\u641c\u641c\uff0c\u4ece\u7ec8\u70b9\u6cbf\u7740\u5165\u8fb9\u505a\u53cd\u5411\u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\uff0c\u901a\u8fc7\u8d77\u70b9\u548c\u7ec8\u70b9\u5171\u540c\u904d\u5386\u5230\u7684\u70b9\u6765\u786e\u5b9a\u4ece\u8d77\u70b9\u5230\u7ec8\u70b9\u7684\u6700\u77ed\u8def\u5f84\u957f\u5ea6\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Bidirectional_search",title:"Bidirectional search",children:"https://en.wikipedia.org/wiki/Bidirectional_search"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u4e09\u89d2\u8ba1\u6570",children:"\u4e09\u89d2\u8ba1\u6570"}),"\n",(0,i.jsx)(n.p,{children:"\u4e09\u89d2\u8ba1\u6570\u5b9e\u73b0\u4e86Triangle-counting\u7b97\u6cd5\uff0c\u8ba1\u7b97\u65e0\u5411\u56fe\u4e2d\u7684\u4e09\u89d2\u5f62\u4e2a\u6570\uff0c\u53ef\u7528\u6765\u8868\u5f81\u56fe\u4e2d\u70b9\u7684\u5173\u8054\u7a0b\u5ea6\u3002\u4e09\u89d2\u5f62\u6570\u8d8a\u591a\uff0c\u8868\u793a\u56fe\u4e2d\u70b9\u7684\u5173\u8054\u7a0b\u5ea6\u8d8a\u9ad8\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cFinding, Counting and Listing All Triangles in Large Graphs, an Experimental Study\u201d \u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u4fe1\u4efb\u6307\u6570\u6392\u540d",children:"\u4fe1\u4efb\u6307\u6570\u6392\u540d"}),"\n",(0,i.jsxs)(n.p,{children:["\u4fe1\u4efb\u6307\u6570\u6392\u540d\u7b97\u6cd5\u5b9e\u73b0\u4e86Trustrank\u7b97\u6cd5\uff0c\u53ef\u4ee5\u6839\u636e\u7ed9\u5b9a\u7684\u767d\u540d\u5355\uff0c\u8ba1\u7b97\u4efb\u610f\u70b9\u7684\u4fe1\u4efb\u6307\u6570\u3002\u4fe1\u4efb\u6307\u6570\u8d8a\u9ad8\uff0c\u8868\u793a\u8be5\u70b9\u4e3a\u975e\u6cd5\u70b9\u7684\u53ef\u80fd\u6027\u8d8a\u5c0f\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/TrustRank",title:"trustrank wiki",children:"https://en.wikipedia.org/wiki/TrustRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad",children:"\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e26\u6743\u91cd\u7684\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weighted Label Propagation Algorithm\u7b97\u6cd5\u3002=\u4e0e\u6807\u7b7e\u4f20\u64ad\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0c\u6807\u7b7e\u7684\u4f20\u9012\u8ddf\u8fb9\u7684\u6743\u91cd\u76f8\u5173\uff0c\u5728\u6807\u7b7e\u4f20\u9012\u65f6\uff0c\u6bcf\u4e2a\u70b9\u4f1a\u6839\u636e\u6807\u7b7e\u7684\u5165\u8fb9\u8fdb\u884c\u6743\u91cd\u7d2f\u52a0\uff0c\u5728\u7d2f\u52a0\u548c\u6700\u9ad8\u7684\u6807\u7b7e\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm",title:"lpa wiki",children:"https://en.wikipedia.org/wiki/Label_Propagation_Algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f",children:"\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f"}),"\n",(0,i.jsxs)(n.p,{children:["\u5e26\u6743\u91cd\u7684\u7f51\u9875\u6392\u5e8f\u7b97\u6cd5\u7a0b\u5e8f\u5b9e\u73b0\u4e86Weighted Pagerank\u7b97\u6cd5\u3002\u4e0ePageRank\u7b97\u6cd5\u4e0d\u540c\u7684\u662f\uff0cRank\u503c\u7684\u4f20\u9012\u8ddf\u8fb9\u7684\u6743\u91cd\u6709\u5173\uff0c\u70b9\u7684Rank\u503c\u5c06\u6309\u7167\u8fb9\u6743\u91cd\u52a0\u6743\u4f20\u9012\u5230\u76f8\u90bb\u70b9\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/PageRank",children:"https://en.wikipedia.org/wiki/PageRank"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5",children:"\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u6700\u5927\u72ec\u7acb\u96c6\u7b97\u6cd5\u5b9e\u73b0\u4e86Maximal independent set\u7b97\u6cd5\u3002\u6700\u5927\u72ec\u7acb\u96c6\u662f\u6307\u5728\u8fd9\u4e2a\u72ec\u7acb\u96c6\u4e4b\u5916\u6ca1\u6709\u53ef\u4ee5\u52a0\u5165\u5b83\u7684\u70b9\u3002\u4e00\u4e2a\u56fe\u53ef\u80fd\u6709\u8bb8\u591a\u5927\u5c0f\u5dee\u5f02\u5f88\u5927\u7684 MIS\uff0c\u7b97\u6cd5\u627e\u51fa\u5176\u4e2d\u4e00\u4e2a\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm",title:"Maximal independent set wiki",children:"https://en.wikipedia.org/wiki/Maximal_independent_set#Sequential_algorithm"}),"\u3002"]}),"\n",(0,i.jsx)(n.h3,{id:"sybil\u68c0\u6d4b\u7b97\u6cd5",children:"Sybil\u68c0\u6d4b\u7b97\u6cd5"}),"\n",(0,i.jsx)(n.p,{children:"Sybil\u68c0\u6d4b\u7b97\u6cd5\u5b9e\u73b0\u4e86Sybil Rank\u7b97\u6cd5\u3002SybilRank\u7b97\u6cd5\u4ece\u975eSybil\u8282\u70b9\u5f00\u59cb\u8fdb\u884c\u63d0\u524d\u7ec8\u6b62\u7684\u968f\u673a\u6e38\u8d70\u3002\u7b97\u6cd5\u5185\u5bb9\u8bf7\u53c2\u8003\u8bba\u6587\uff1a\u201cAiding the Detection of Fake Accounts in Large Scale Social Online Services\u201d\u3002"}),"\n",(0,i.jsx)(n.h3,{id:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5",children:"\u5b50\u56fe\u5339\u914d\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u5b50\u56fe\u5339\u914d\u7b97\u6cd5\u5b9e\u73b0\u4e86subgraph_isomorphism\u7b97\u6cd5\u3002subgraph_isomorphism\u7b97\u6cd5\u5bf9\u5168\u56fe\u6240\u6709\u8282\u70b9\u5339\u914d\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u88ab\u5339\u914d\u7684\u6b21\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105",children:"https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=18105"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5",children:"\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u6a21\u5f0f\u5339\u914d\u7b97\u6cd5\u5b9e\u73b0\u4e86motif\u7b97\u6cd5\u3002motif\u7b97\u6cd5\u5bf9\u6307\u5b9a\u7684\u8282\u70b9\u5339\u914dk\u9636\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u6307\u5b9a\u8282\u70b9\u6bcf\u79cdk\u9636\u5b50\u56fe\u4e2a\u6570\uff0c\u6bcf\u4e2ak\u9636\u5b50\u56fe\u7528\u4e00\u4e2a64\u4f4d\u6574\u6570\u8868\u793a\uff0c\u6574\u6570\u7684\u7b2c$i \\times k + j$\u4f4d\u4e3a1\u8868\u793a\u5b50\u56fe\u4e2d\u6709\u8fb9i->j\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Network_motif#mfinder",children:"https://en.wikipedia.org/wiki/Network_motif#mfinder"})]}),"\n",(0,i.jsx)(n.h3,{id:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5",children:"k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u9636\u56e2\u8ba1\u6570\u7b97\u6cd5\u5b9e\u73b0\u4e86k-cliques\u7b97\u6cd5\u3002k-cliques\u7b97\u6cd5\u5bf9\u8ba1\u7b97\u56fe\u4e2d\u6240\u6709\u7684k\u9636\u5b8c\u5168\u5b50\u56fe\u7684\u4e2a\u6570\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u6240\u5728\u7684k\u9636\u5b8c\u5168\u5b50\u56fe\u4e2a\u6570\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size",children:"https://en.wikipedia.org/wiki/Clique_problem#Cliques_of_fixed_size"})]}),"\n",(0,i.jsx)(n.h3,{id:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5",children:"k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["k\u9636\u6841\u67b6\u8ba1\u6570\u7b97\u6cd5\u5b9e\u73b0\u4e86k-truss\u7b97\u6cd5\u3002k-truss\u6307\u6bcf\u6761\u8fb9\u90fd\u81f3\u5c11\u662fk-2\u4e2a\u4e09\u89d2\u5f62\u7684\u8fb9\u7684\u5b50\u56fe\u3002k-truss\u7b97\u6cd5\u627e\u51fa\u56fe\u7684k-truss\u5b50\u56fe\uff0c\u6700\u540e\u8f93\u51fa\u6bcf\u4e2a\u8282\u70b9\u5728\u5b50\u56fe\u4e2d\u7684\u90bb\u5c45\u8282\u70b9\u5217\u8868\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://louridas.github.io/rwa/assignments/finding-trusses/",children:"https://louridas.github.io/rwa/assignments/finding-trusses/"})]}),"\n",(0,i.jsx)(n.h3,{id:"\u83b1\u987f\u7b97\u6cd5",children:"\u83b1\u987f\u7b97\u6cd5"}),"\n",(0,i.jsxs)(n.p,{children:["\u83b1\u987f\u7b97\u6cd5\u5b9e\u73b0\u4e86\u4e86leiden\u7b97\u6cd5\u3002leiden\u7b97\u6cd5\u662f\u57fa\u4e8e\u6a21\u5757\u5ea6\u7684\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u4e0elouvain\u7b97\u6cd5\u4f18\u52bf\u5728\u4e8eleiden\u7b97\u6cd5\u68c0\u6d4b\u51fa\u793e\u533a\u4e2d\u7684\u65ad\u94fe\uff0c\u4fdd\u8bc1\u6bcf\u4e2a\u793e\u533a\u5177\u6709\u826f\u597d\u7684\u8fde\u901a\u6027\u3002\u7b97\u6cd5\u5185\u5bb9\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"https://www.nature.com/articles/s41598-019-41695-z#Sec4",children:"https://www.nature.com/articles/s41598-019-41695-z#Sec4"})]})]})}function x(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>d});var i=t(6540);const l={},r=i.createContext(l);function s(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/65f6f344.398d47b6.js b/assets/js/65f6f344.398d47b6.js
new file mode 100644
index 0000000000..28a7e78501
--- /dev/null
+++ b/assets/js/65f6f344.398d47b6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1929],{3253:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var r=n(4848),i=n(8453);const l={},o="Privilege",a={id:"permission/privilege",title:"Privilege",description:"1.Introduce",source:"@site/../docs/en-US/source/10.permission/1.privilege.md",sourceDirName:"10.permission",slug:"/permission/privilege",permalink:"/tugraph-db/en/permission/privilege",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Heterogeneous Graph",permalink:"/tugraph-db/en/olap&procedure/learn/heterogeneous_graph"},next:{title:"Token Usage Guide",permalink:"/tugraph-db/en/permission/token"}},c={},d=[{value:"1.Introduce",id:"1introduce",level:2},{value:"2.Level of permissions",id:"2level-of-permissions",level:2},{value:"3.Permission keyword",id:"3permission-keyword",level:2},{value:"4.Common permission operations",id:"4common-permission-operations",level:2},{value:"4.1.User action",id:"41user-action",level:3},{value:"4.2.Role actions",id:"42role-actions",level:3},{value:"4.3.Assign roles to users",id:"43assign-roles-to-users",level:3},{value:"4.4.Role empowerment",id:"44role-empowerment",level:3}];function t(e){const s={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"privilege",children:"Privilege"})}),"\n",(0,r.jsx)(s.h2,{id:"1introduce",children:"1.Introduce"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsx)(s.p,{children:"The permissions of TuGraph are managed based on role-based access control. The permissions that define access control are assigned to roles, and the roles are then assigned to users."}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"2level-of-permissions",children:"2.Level of permissions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Global layer: indicates global permissions, which have permissions for management and graph operations."}),"\n",(0,r.jsx)(s.li,{children:"Graph layer: control permissions on each graph;"}),"\n",(0,r.jsx)(s.li,{children:"Property level (Commercial version only) : control permissions on a property"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"3permission-keyword",children:"3.Permission keyword"}),"\n",(0,r.jsx)(s.p,{children:"At present, the control of permissions is relatively simple"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Global layer currently has admin permission, and the admin user is preset."}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Graph layer has four operation permissions: none, read, write, and full"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"none: No permission, no operation permission for the graph"}),"\n",(0,r.jsx)(s.li,{children:"read: Read-only permission, only has read permission for the graph"}),"\n",(0,r.jsx)(s.li,{children:"write: Read and write permission, not only has read permission for the graph, but also has write permission"}),"\n",(0,r.jsx)(s.li,{children:"full: All permissions, not only have read and write permissions for graphs, but also have permissions to delete graphs, modify graphs, and modify schemas"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Property layer (Commercial version only) has the following permissions: none, read, and write"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"none: No permission, no operation permission for the property"}),"\n",(0,r.jsx)(s.li,{children:"read: Read-only permission, only has read permission for the property"}),"\n",(0,r.jsx)(s.li,{children:"write: Read and write permission, not only has read permission for the property, but also has write permission"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"4common-permission-operations",children:"4.Common permission operations"}),"\n",(0,r.jsx)(s.h3,{id:"41user-action",children:"4.1.User action"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Creating a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.createUser(user_name::STRING,password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Deleting a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.deleteUser(user_name::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Change the password of the current user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.changePassword(current_password::STRING,new_password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Changes the password of a specified user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"\nCALL dbms.security.changeUserPassword(user_name::STRING,new_password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Disable or enable a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.disableUser(user::STRING,disable::BOOLEAN)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"List all users"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.listUsers()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Lists the current user information"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.showCurrentUser()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Obtain user details"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.getUserInfo(user::STRING)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"42role-actions",children:"4.2.Role actions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Create a role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.createRole(role_name::STRING,desc::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Delete a role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.deleteRole(role_name::STRING\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"List all characters"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.listRoles()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Disable or enable the role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.disableRole(role::STRING,disable::BOOLEAN)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"43assign-roles-to-users",children:"4.3.Assign roles to users"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Adds the association between the user and the role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.addUserRoles(user::STRING,roles::LIST)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Deletes the association between the user and the role"}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CALL dbms.security.deleteUserRoles(user::STRING,roles::LIST)"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Clears the relationship between user roles and rebuilds them"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.rebuildUserRoles(user::STRING,roles::LIST)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"44role-empowerment",children:"4.4.Role empowerment"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Modifies the access permission of a role to a specified graph"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.modRoleAccessLevel(role::STRING,access_level::MAP)\n"})}),"\n",(0,r.jsx)(s.p,{children:"Example"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:'CALL dbms.security.modRoleAccessLevel("test_role", {test_graph1:"FULL", test_graph2:"NONE"})\n'})})]})}function h(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},8453:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>a});var r=n(6540);const i={},l=r.createContext(i);function o(e){const s=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/65f6f344.a2702729.js b/assets/js/65f6f344.a2702729.js
deleted file mode 100644
index 3c369b1acf..0000000000
--- a/assets/js/65f6f344.a2702729.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1929],{3123:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var r=n(4848),i=n(8453);const l={},o="Privilege",a={id:"en-US/source/permission/privilege",title:"Privilege",description:"1.Introduce",source:"@site/../docs/en-US/source/10.permission/1.privilege.md",sourceDirName:"en-US/source/10.permission",slug:"/en-US/source/permission/privilege",permalink:"/tugraph-db/en-US/source/permission/privilege",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Heterogeneous Graph",permalink:"/tugraph-db/en-US/source/olap&procedure/learn/heterogeneous_graph"},next:{title:"Token Usage Guide",permalink:"/tugraph-db/en-US/source/permission/token"}},c={},d=[{value:"1.Introduce",id:"1introduce",level:2},{value:"2.Level of permissions",id:"2level-of-permissions",level:2},{value:"3.Permission keyword",id:"3permission-keyword",level:2},{value:"4.Common permission operations",id:"4common-permission-operations",level:2},{value:"4.1.User action",id:"41user-action",level:3},{value:"4.2.Role actions",id:"42role-actions",level:3},{value:"4.3.Assign roles to users",id:"43assign-roles-to-users",level:3},{value:"4.4.Role empowerment",id:"44role-empowerment",level:3}];function t(e){const s={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"privilege",children:"Privilege"})}),"\n",(0,r.jsx)(s.h2,{id:"1introduce",children:"1.Introduce"}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsx)(s.p,{children:"The permissions of TuGraph are managed based on role-based access control. The permissions that define access control are assigned to roles, and the roles are then assigned to users."}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"2level-of-permissions",children:"2.Level of permissions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Global layer: indicates global permissions, which have permissions for management and graph operations."}),"\n",(0,r.jsx)(s.li,{children:"Graph layer: control permissions on each graph;"}),"\n",(0,r.jsx)(s.li,{children:"Property level (Commercial version only) : control permissions on a property"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"3permission-keyword",children:"3.Permission keyword"}),"\n",(0,r.jsx)(s.p,{children:"At present, the control of permissions is relatively simple"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Global layer currently has admin permission, and the admin user is preset."}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Graph layer has four operation permissions: none, read, write, and full"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"none: No permission, no operation permission for the graph"}),"\n",(0,r.jsx)(s.li,{children:"read: Read-only permission, only has read permission for the graph"}),"\n",(0,r.jsx)(s.li,{children:"write: Read and write permission, not only has read permission for the graph, but also has write permission"}),"\n",(0,r.jsx)(s.li,{children:"full: All permissions, not only have read and write permissions for graphs, but also have permissions to delete graphs, modify graphs, and modify schemas"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"The Property layer (Commercial version only) has the following permissions: none, read, and write"}),"\n"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"none: No permission, no operation permission for the property"}),"\n",(0,r.jsx)(s.li,{children:"read: Read-only permission, only has read permission for the property"}),"\n",(0,r.jsx)(s.li,{children:"write: Read and write permission, not only has read permission for the property, but also has write permission"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"4common-permission-operations",children:"4.Common permission operations"}),"\n",(0,r.jsx)(s.h3,{id:"41user-action",children:"4.1.User action"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Creating a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.createUser(user_name::STRING,password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Deleting a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.deleteUser(user_name::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Change the password of the current user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.changePassword(current_password::STRING,new_password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Changes the password of a specified user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"\nCALL dbms.security.changeUserPassword(user_name::STRING,new_password::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Disable or enable a user"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.disableUser(user::STRING,disable::BOOLEAN)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"List all users"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.listUsers()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Lists the current user information"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.showCurrentUser()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Obtain user details"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.getUserInfo(user::STRING)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"42role-actions",children:"4.2.Role actions"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Create a role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.createRole(role_name::STRING,desc::STRING)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Delete a role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.deleteRole(role_name::STRING\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"List all characters"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.listRoles()\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Disable or enable the role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.disableRole(role::STRING,disable::BOOLEAN)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"43assign-roles-to-users",children:"4.3.Assign roles to users"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Adds the association between the user and the role"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.addUserRoles(user::STRING,roles::LIST)\n"})}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Deletes the association between the user and the role"}),"\n"]}),"\n",(0,r.jsx)(s.p,{children:"CALL dbms.security.deleteUserRoles(user::STRING,roles::LIST)"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Clears the relationship between user roles and rebuilds them"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.rebuildUserRoles(user::STRING,roles::LIST)\n"})}),"\n",(0,r.jsx)(s.h3,{id:"44role-empowerment",children:"4.4.Role empowerment"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Modifies the access permission of a role to a specified graph"}),"\n"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:"CALL dbms.security.modRoleAccessLevel(role::STRING,access_level::MAP)\n"})}),"\n",(0,r.jsx)(s.p,{children:"Example"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-cypher",children:'CALL dbms.security.modRoleAccessLevel("test_role", {test_graph1:"FULL", test_graph2:"NONE"})\n'})})]})}function h(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},8453:(e,s,n)=>{n.d(s,{R:()=>o,x:()=>a});var r=n(6540);const i={},l=r.createContext(i);function o(e){const s=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6690cca3.8a89dfc4.js b/assets/js/6690cca3.8a89dfc4.js
new file mode 100644
index 0000000000..2c9e0c5ad8
--- /dev/null
+++ b/assets/js/6690cca3.8a89dfc4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[730],{479:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>o,toc:()=>h});var n=r(4848),s=r(8453);const a={},i="High Availability mode",o={id:"installation&running/high-availability-mode",title:"High Availability mode",description:"This document describes the principles, preparations, and server operations of the high availability mode",source:"@site/../docs/en-US/source/5.installation&running/8.high-availability-mode.md",sourceDirName:"5.installation&running",slug:"/installation&running/high-availability-mode",permalink:"/tugraph-db/en/installation&running/high-availability-mode",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tugraph Running",permalink:"/tugraph-db/en/installation&running/tugraph-running"},next:{title:"Data Importing",permalink:"/tugraph-db/en/utility-tools/data-import"}},l={},h=[{value:"1.Theory",id:"1theory",level:2},{value:"2.Preparation",id:"2preparation",level:2},{value:"3.Start the initial backup group",id:"3start-the-initial-backup-group",level:2},{value:"3.1.The initial data is consistent",id:"31the-initial-data-is-consistent",level:3},{value:"3.2.Inconsistent initial data",id:"32inconsistent-initial-data",level:3},{value:"4.Start witness node",id:"4start-witness-node",level:2},{value:"4.1. Witness nodes are not allowed to become leader",id:"41-witness-nodes-are-not-allowed-to-become-leader",level:3},{value:"4.1. Allow witness nodes to become leaders",id:"41-allow-witness-nodes-to-become-leaders",level:3},{value:"5.Scale out other servers",id:"5scale-out-other-servers",level:2},{value:"6.Stopping the Server",id:"6stopping-the-server",level:2},{value:"7.Restarting the Server",id:"7restarting-the-server",level:2},{value:"8.docker deploys a highly available cluster",id:"8docker-deploys-a-highly-available-cluster",level:2},{value:"8.1.Install mirror",id:"81install-mirror",level:3},{value:"8.2.Create container",id:"82create-container",level:3},{value:"8.3.Start service",id:"83start-service",level:3},{value:"9.Server Status",id:"9server-status",level:2},{value:"10.Data synchronization in high availability mode",id:"10data-synchronization-in-high-availability-mode",level:2}];function d(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"high-availability-mode",children:"High Availability mode"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document describes the principles, preparations, and server operations of the high availability mode"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1theory",children:"1.Theory"}),"\n",(0,n.jsx)(t.p,{children:"TuGraph provides high availability (HA) mode through multi-machine hot backup. In high availability mode, write operations to the database will be synchronized to all servers (non-witness), so that even if some servers are down, the availability of the service will not be affected."}),"\n",(0,n.jsxs)(t.p,{children:["When the high-availability mode is started, multiple TuGraph servers form a backup group, which is a high-availability cluster. Each backup group consists of three or more TuGraph servers, one of which serves as the ",(0,n.jsx)(t.code,{children:"leader"})," and the other replication group servers as ",(0,n.jsx)(t.code,{children:"followers"}),". Write requests are served by a ",(0,n.jsx)(t.code,{children:"leader"}),", which replicates and synchronizes each request to a ",(0,n.jsx)(t.code,{children:"follower"})," and can only respond to the client after the request has been synchronized to the server. This way, if any server fails, the other servers will still have all the data written so far. If the ",(0,n.jsx)(t.code,{children:"leader"})," server fails, other servers will automatically select a new ",(0,n.jsx)(t.code,{children:"leader"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["TuGraph's high-availability mode provides two types of nodes: ",(0,n.jsx)(t.code,{children:"replica"})," nodes and ",(0,n.jsx)(t.code,{children:"witness"})," nodes. Among them, the ",(0,n.jsx)(t.code,{children:"replica"})," node is an ordinary node, has logs and data, and can provide services to the outside world. The ",(0,n.jsx)(t.code,{children:"witness"})," node is a node that only receives heartbeats and logs but does not save data. According to deployment requirements, ",(0,n.jsx)(t.code,{children:"leader"})," nodes and ",(0,n.jsx)(t.code,{children:"follower"})," nodes can be flexibly deployed as ",(0,n.jsx)(t.code,{children:"replica"})," nodes or ",(0,n.jsx)(t.code,{children:"witness"})," nodes. Based on this, there are two deployment methods for TuGraph high-availability mode: one is the ordinary deployment mode, and the other is the simple deployment mode with witness."]}),"\n",(0,n.jsxs)(t.p,{children:["For normal deployment mode, ",(0,n.jsx)(t.code,{children:"leader"})," and all ",(0,n.jsx)(t.code,{children:"followers"})," are nodes of type ",(0,n.jsx)(t.code,{children:"replica"}),". Write requests are served by a ",(0,n.jsx)(t.code,{children:"leader"}),", which copies each request to a ",(0,n.jsx)(t.code,{children:"follower"})," and cannot respond to the client until the request has been synchronized to more than half of the servers. This way, if less than half of the servers fail, the other servers will still have all the data written so far. If the ",(0,n.jsx)(t.code,{children:"leader"})," server fails, other servers will automatically elect a new ",(0,n.jsx)(t.code,{children:"leader"})," to ensure data consistency and service availability."]}),"\n",(0,n.jsxs)(t.p,{children:["However, when the user server resources are insufficient or a network partition occurs, a normal HA cluster cannot be established. At this time, since the ",(0,n.jsx)(t.code,{children:"witness"})," node has no data and takes up little resources, the ",(0,n.jsx)(t.code,{children:"witness"})," node and the ",(0,n.jsx)(t.code,{children:"replica"})," node can be deployed on one machine. For example, when there are only 2 machines, you can deploy the ",(0,n.jsx)(t.code,{children:"replica"})," node on one machine, and the ",(0,n.jsx)(t.code,{children:"replica"})," node and ",(0,n.jsx)(t.code,{children:"witness"})," node on another machine, which not only saves resources, but also does not require log application To the state machine, there is no need to generate and install snapshots, so the response to requests is very fast, and it can help quickly elect a new leader when the cluster crashes or the network is partitioned. This is the simple deployment mode of the TuGraph HA cluster. Although ",(0,n.jsx)(t.code,{children:"witness"})," nodes have many benefits, since there is no data, the cluster actually adds a node that cannot become ",(0,n.jsx)(t.code,{children:"leader"}),", so the availability will be slightly reduced. To improve the availability of the cluster, you can allow the ",(0,n.jsx)(t.code,{children:"witness"})," node to be the leader temporarily by specifying the ",(0,n.jsx)(t.code,{children:"ha_enable_witness_to_leader"})," parameter as ",(0,n.jsx)(t.code,{children:"true"}),". After the ",(0,n.jsx)(t.code,{children:"witness"})," node synchronizes the new log to other nodes, it will actively switch the leader role to the node with the latest log."]}),"\n",(0,n.jsx)(t.p,{children:"This feature is supported in version 3.6 and above."}),"\n",(0,n.jsx)(t.h2,{id:"2preparation",children:"2.Preparation"}),"\n",(0,n.jsx)(t.p,{children:"To enable high availability mode, users need to:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Three or more instances of TuGraph servers."}),"\n",(0,n.jsx)(t.li,{children:"To enable high availability mode when starting lgraph_server, the 'enable_ha' option can be set to 'true' using a configuration file or the command line."}),"\n",(0,n.jsx)(t.li,{children:"Set the correct rpc_port through the configuration file or command line"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"3start-the-initial-backup-group",children:"3.Start the initial backup group"}),"\n",(0,n.jsxs)(t.p,{children:["After installing TuGraph, you can use the ",(0,n.jsx)(t.code,{children:"lgraph_server"})," command to start a high-availability cluster on different machines. This section mainly explains how to start a high-availability cluster. For cluster status management after startup, see ",(0,n.jsx)(t.a,{href:"/tugraph-db/en/utility-tools/ha-cluster-management",children:"lgraph_peer tool"})]}),"\n",(0,n.jsx)(t.h3,{id:"31the-initial-data-is-consistent",children:"3.1.The initial data is consistent"}),"\n",(0,n.jsxs)(t.p,{children:["When the data in all servers is the same or there is no data at startup, the user can\nspecify ",(0,n.jsx)(t.code,{children:"--ha_conf host1:port1,host2:port2"})," to start the server.\nIn this way, all prepared TuGraph instances can be added to the initial backup group at one time,\nAll servers in the backup group elect ",(0,n.jsx)(t.code,{children:"leader"})," according to the RAFT protocol, and other\nservers join the backup group with the role of ",(0,n.jsx)(t.code,{children:"follower"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start an initial backup group is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.p,{children:"After the first server is started, it will elect itself as the 'leader' and organize a backup group with only itself."}),"\n",(0,n.jsx)(t.h3,{id:"32inconsistent-initial-data",children:"3.2.Inconsistent initial data"}),"\n",(0,n.jsxs)(t.p,{children:["If there is already data in the first server (imported by the ",(0,n.jsx)(t.code,{children:"lgraph_import"})," tool or transferred from a server in non-high availability mode),\nAnd it has not been used in high-availability mode before, the user should use the boostrap method to start. Start the server with data in bootstrap\nmode with the ",(0,n.jsx)(t.code,{children:"ha_bootstrap_role"})," parameter as 1, and specify the machine as the ",(0,n.jsx)(t.code,{children:"leader"})," through the ",(0,n.jsx)(t.code,{children:"ha_conf"}),"\nparameter. In bootstrap mode, the server will copy its own data to the new server before adding the newly\njoined server to the backup group, so that the data in each server is consistent."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start a data server is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_bootstrap_role 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Other servers without data need to specify the ",(0,n.jsx)(t.code,{children:"ha_bootstrap_role"})," parameter as 2, and specify the ",(0,n.jsx)(t.code,{children:"leader"})," through the ",(0,n.jsx)(t.code,{children:"ha_conf"})," parameter. The command example is as follows"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"**$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_bootstrap_role 2\n"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"You need to pay attention to two points when using bootstrap to start an HA cluster:"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["You need to wait for the ",(0,n.jsx)(t.code,{children:"leader"})," node to generate a snapshot and start successfully before joining the ",(0,n.jsx)(t.code,{children:"follower"})," node, otherwise the ",(0,n.jsx)(t.code,{children:"follower"})," node may fail to join. When starting the ",(0,n.jsx)(t.code,{children:"follower"})," node, you can configure the ",(0,n.jsx)(t.code,{children:"ha_node_join_group_s"})," parameter to be slightly larger to allow multiple waits and timeout retries when joining the HA cluster."]}),"\n",(0,n.jsx)(t.li,{children:"The HA cluster can only use the bootstrap mode when it is started for the first time. It can only be started in the normal mode (see Section 3.1) when it is started later. In particular, multiple nodes of the same cluster cannot be started in the bootstrap mode, otherwise it may cause Data inconsistency"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"4start-witness-node",children:"4.Start witness node"}),"\n",(0,n.jsx)(t.h3,{id:"41-witness-nodes-are-not-allowed-to-become-leader",children:"4.1. Witness nodes are not allowed to become leader"}),"\n",(0,n.jsxs)(t.p,{children:["The startup method of ",(0,n.jsx)(t.code,{children:"witness"})," node is the same as that of ordinary nodes. You only need to set the ",(0,n.jsx)(t.code,{children:"ha_is_witness"})," parameter to ",(0,n.jsx)(t.code,{children:"true"}),". Note that the number of witness nodes should be less than half of the total number of cluster nodes."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start the witness node server is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_is_witness 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Note: By default, the ",(0,n.jsx)(t.code,{children:"witness"})," node is not allowed to become the ",(0,n.jsx)(t.code,{children:"leader"})," node, which can improve the performance of the cluster, but will reduce the availability of the cluster when the ",(0,n.jsx)(t.code,{children:"leader"})," node crashes."]}),"\n",(0,n.jsx)(t.h3,{id:"41-allow-witness-nodes-to-become-leaders",children:"4.1. Allow witness nodes to become leaders"}),"\n",(0,n.jsxs)(t.p,{children:["You can specify the ",(0,n.jsx)(t.code,{children:"ha_enable_witness_to_leader"})," parameter as ",(0,n.jsx)(t.code,{children:"true"}),", so that the ",(0,n.jsx)(t.code,{children:"witness"})," node can temporarily become the ",(0,n.jsx)(t.code,{children:"leader"})," node, and then actively switch to the master after the new log synchronization is completed."]}),"\n",(0,n.jsxs)(t.p,{children:["An example of the command to start the ",(0,n.jsx)(t.code,{children:"witness"})," node server that is allowed to become the ",(0,n.jsx)(t.code,{children:"leader"})," node is as follows:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_is_witness 1 --ha_enable_witness_to_leader 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Note: Although allowing ",(0,n.jsx)(t.code,{children:"witness"})," nodes to become ",(0,n.jsx)(t.code,{children:"leader"})," nodes can improve the availability of the cluster, it may affect data consistency in extreme cases. Therefore, it should generally be ensured that the number of ",(0,n.jsx)(t.code,{children:"witness"})," nodes + 1 is less than half of the total number of cluster nodes."]}),"\n",(0,n.jsx)(t.h2,{id:"5scale-out-other-servers",children:"5.Scale out other servers"}),"\n",(0,n.jsxs)(t.p,{children:["After starting the initial backup group, if you want to scale out the backup group, add new servers to the backup group,\nThe ",(0,n.jsx)(t.code,{children:"--ha_conf HOST:PORT"})," option should be used, where ",(0,n.jsx)(t.code,{children:"HOST"})," can be the IP address of any server already in this backup group,\nAnd ",(0,n.jsx)(t.code,{children:"PORT"})," is its RPC port. E.g:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090\n"})}),"\n",(0,n.jsxs)(t.p,{children:["This command will start a TuGraph server in high availability mode and try to add it to the backup group containing the server ",(0,n.jsx)(t.code,{children:"172.22.224.15:9090"}),".\nNote that joining a backup group requires a server to synchronize its data with the backup group's ",(0,n.jsx)(t.code,{children:"leader"})," server, and this process may take a considerable amount of time, depending on the size of the data."]}),"\n",(0,n.jsx)(t.h2,{id:"6stopping-the-server",children:"6.Stopping the Server"}),"\n",(0,n.jsx)(t.p,{children:"When a server goes offline via 'CTRL-C', it will notify the current 'leader' server to remove the server from the backup group. If the leader server goes offline, it will pass the leader identity permission to another server before going offline."}),"\n",(0,n.jsx)(t.p,{children:"If a server is terminated or disconnected from other servers in the backup group, the server is considered a failed node and the leader server will remove it from the backup group after a specified time limit."}),"\n",(0,n.jsx)(t.p,{children:"If any server leaves the backup group and wishes to rejoin, it must start with the '--ha_conf {HOST:PORT}' option, where 'HOST' is the IP address of a server in the current backup group."}),"\n",(0,n.jsx)(t.h2,{id:"7restarting-the-server",children:"7.Restarting the Server"}),"\n",(0,n.jsxs)(t.p,{children:["Restarting the entire backup group is not recommended as it disrupts service. All servers can be shut down if desired. But on reboot,\nIt must be ensured that at least N/2+1 servers in the backup group at shutdown can start normally, otherwise the startup will fail. and,\nRegardless of whether ",(0,n.jsx)(t.code,{children:"enable_bootstrap"})," is specified as true when initially starting the replication group, restarting the server only needs to pass\nSpecify the ",(0,n.jsx)(t.code,{children:"--ha_conf host1:port1,host2:port2"})," parameter to restart all servers at once. The command example is as follows:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.h2,{id:"8docker-deploys-a-highly-available-cluster",children:"8.docker deploys a highly available cluster"}),"\n",(0,n.jsx)(t.p,{children:"In real business scenarios, it is likely to encounter the need to deploy high-availability clusters on multiple operating systems or architectures.\nDifferentiated environments may cause some dependencies to be missing when compiling TuGraph. therefore,\nCompiling software in docker and deploying high-availability clusters is very valuable. Take the centos7 version of docker as an example,\nThe steps to deploy a highly available cluster are as follows."}),"\n",(0,n.jsx)(t.h3,{id:"81install-mirror",children:"8.1.Install mirror"}),"\n",(0,n.jsx)(t.p,{children:"Use the following command to download TuGraph's compiled docker image environment"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"docker pull tugraph/tugraph-compile-centos7\n"})}),"\n",(0,n.jsx)(t.p,{children:"Then pull the TuGraph source code and compile and install"}),"\n",(0,n.jsx)(t.h3,{id:"82create-container",children:"8.2.Create container"}),"\n",(0,n.jsxs)(t.p,{children:["Use the following command to create a container, use ",(0,n.jsx)(t.code,{children:"--net=host"})," to make the container run in host mode, in this mode\nDocker and the host machine share the network namespace, that is, they share the same IP."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"docker run --net=host -itd -p -v {src_dir}:{dst_dir} --name tugraph_ha tugraph/tugraph-compile-centos7 /bin/bash\n"})}),"\n",(0,n.jsx)(t.h3,{id:"83start-service",children:"8.3.Start service"}),"\n",(0,n.jsx)(t.p,{children:"Use the following command to start the service on each server, because docker and the host share IP, so you can directly specify to start the service on the host IP"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"$ lgraph_server -c lgraph.json --host 172.22.224.15 --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.h2,{id:"9server-status",children:"9.Server Status"}),"\n",(0,n.jsx)(t.p,{children:"The current status of the backup group can be obtained from the TuGraph visualization tool, REST API, and Cypher query."}),"\n",(0,n.jsx)(t.p,{children:"In the TuGraph visualization tool, you can find the list of servers and their roles in the backup group in the DBInfo section."}),"\n",(0,n.jsxs)(t.p,{children:["With the REST API, you can use ",(0,n.jsx)(t.code,{children:"GET /info/peers"})," to request information."]}),"\n",(0,n.jsxs)(t.p,{children:["In Cypher, the ",(0,n.jsx)(t.code,{children:"CALL dbms.listServers()"})," statement is used to query the status information of the current backup group."]}),"\n",(0,n.jsx)(t.h2,{id:"10data-synchronization-in-high-availability-mode",children:"10.Data synchronization in high availability mode"}),"\n",(0,n.jsx)(t.p,{children:"In high availability mode, different servers in the same backup group may not always be in the same state. For performance reasons, if a request has been synchronized to more than half of the servers, the leader server will consider the request to be in the committed state. Although the rest of the servers will eventually receive the new request, the inconsistent state of the servers will persist for some time. A client may also send a request to a server that has just restarted, thus having an older state and waiting to join a backup group."}),"\n",(0,n.jsx)(t.p,{children:"To ensure that the client sees consistently continuous data, and in particular to get rid of the 'reverse time travel' problem, where the client reads a state older than it has seen before, each TuGraph server keeps a monotonically increasing data version number. The mapping of the data version number to the database state in the backup group is globally consistent, meaning that if two servers have the same data version number, they must have the same data. When responding to a request, the server includes its data version number in the response. Thus, the client can tell which version it has seen. The client can choose to send this data version number along with the request. Upon receiving a request with a data version number, the server compares the data version number to its current version and rejects the request if its own version is lower than the requested version. This mechanism ensures that the client never reads a state that is older than before."})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>i,x:()=>o});var n=r(6540);const s={},a=n.createContext(s);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6690cca3.c33b4b46.js b/assets/js/6690cca3.c33b4b46.js
deleted file mode 100644
index 06c493ba1a..0000000000
--- a/assets/js/6690cca3.c33b4b46.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[730],{6485:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>o,toc:()=>h});var n=r(4848),s=r(8453);const a={},i="High Availability mode",o={id:"en-US/source/installation&running/high-availability-mode",title:"High Availability mode",description:"This document describes the principles, preparations, and server operations of the high availability mode",source:"@site/../docs/en-US/source/5.installation&running/8.high-availability-mode.md",sourceDirName:"en-US/source/5.installation&running",slug:"/en-US/source/installation&running/high-availability-mode",permalink:"/tugraph-db/en-US/source/installation&running/high-availability-mode",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tugraph Running",permalink:"/tugraph-db/en-US/source/installation&running/tugraph-running"},next:{title:"Data Importing",permalink:"/tugraph-db/en-US/source/utility-tools/data-import"}},l={},h=[{value:"1.Theory",id:"1theory",level:2},{value:"2.Preparation",id:"2preparation",level:2},{value:"3.Start the initial backup group",id:"3start-the-initial-backup-group",level:2},{value:"3.1.The initial data is consistent",id:"31the-initial-data-is-consistent",level:3},{value:"3.2.Inconsistent initial data",id:"32inconsistent-initial-data",level:3},{value:"4.Start witness node",id:"4start-witness-node",level:2},{value:"4.1. Witness nodes are not allowed to become leader",id:"41-witness-nodes-are-not-allowed-to-become-leader",level:3},{value:"4.1. Allow witness nodes to become leaders",id:"41-allow-witness-nodes-to-become-leaders",level:3},{value:"5.Scale out other servers",id:"5scale-out-other-servers",level:2},{value:"6.Stopping the Server",id:"6stopping-the-server",level:2},{value:"7.Restarting the Server",id:"7restarting-the-server",level:2},{value:"8.docker deploys a highly available cluster",id:"8docker-deploys-a-highly-available-cluster",level:2},{value:"8.1.Install mirror",id:"81install-mirror",level:3},{value:"8.2.Create container",id:"82create-container",level:3},{value:"8.3.Start service",id:"83start-service",level:3},{value:"9.Server Status",id:"9server-status",level:2},{value:"10.Data synchronization in high availability mode",id:"10data-synchronization-in-high-availability-mode",level:2}];function d(e){const t={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"high-availability-mode",children:"High Availability mode"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document describes the principles, preparations, and server operations of the high availability mode"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1theory",children:"1.Theory"}),"\n",(0,n.jsx)(t.p,{children:"TuGraph provides high availability (HA) mode through multi-machine hot backup. In high availability mode, write operations to the database will be synchronized to all servers (non-witness), so that even if some servers are down, the availability of the service will not be affected."}),"\n",(0,n.jsxs)(t.p,{children:["When the high-availability mode is started, multiple TuGraph servers form a backup group, which is a high-availability cluster. Each backup group consists of three or more TuGraph servers, one of which serves as the ",(0,n.jsx)(t.code,{children:"leader"})," and the other replication group servers as ",(0,n.jsx)(t.code,{children:"followers"}),". Write requests are served by a ",(0,n.jsx)(t.code,{children:"leader"}),", which replicates and synchronizes each request to a ",(0,n.jsx)(t.code,{children:"follower"})," and can only respond to the client after the request has been synchronized to the server. This way, if any server fails, the other servers will still have all the data written so far. If the ",(0,n.jsx)(t.code,{children:"leader"})," server fails, other servers will automatically select a new ",(0,n.jsx)(t.code,{children:"leader"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["TuGraph's high-availability mode provides two types of nodes: ",(0,n.jsx)(t.code,{children:"replica"})," nodes and ",(0,n.jsx)(t.code,{children:"witness"})," nodes. Among them, the ",(0,n.jsx)(t.code,{children:"replica"})," node is an ordinary node, has logs and data, and can provide services to the outside world. The ",(0,n.jsx)(t.code,{children:"witness"})," node is a node that only receives heartbeats and logs but does not save data. According to deployment requirements, ",(0,n.jsx)(t.code,{children:"leader"})," nodes and ",(0,n.jsx)(t.code,{children:"follower"})," nodes can be flexibly deployed as ",(0,n.jsx)(t.code,{children:"replica"})," nodes or ",(0,n.jsx)(t.code,{children:"witness"})," nodes. Based on this, there are two deployment methods for TuGraph high-availability mode: one is the ordinary deployment mode, and the other is the simple deployment mode with witness."]}),"\n",(0,n.jsxs)(t.p,{children:["For normal deployment mode, ",(0,n.jsx)(t.code,{children:"leader"})," and all ",(0,n.jsx)(t.code,{children:"followers"})," are nodes of type ",(0,n.jsx)(t.code,{children:"replica"}),". Write requests are served by a ",(0,n.jsx)(t.code,{children:"leader"}),", which copies each request to a ",(0,n.jsx)(t.code,{children:"follower"})," and cannot respond to the client until the request has been synchronized to more than half of the servers. This way, if less than half of the servers fail, the other servers will still have all the data written so far. If the ",(0,n.jsx)(t.code,{children:"leader"})," server fails, other servers will automatically elect a new ",(0,n.jsx)(t.code,{children:"leader"})," to ensure data consistency and service availability."]}),"\n",(0,n.jsxs)(t.p,{children:["However, when the user server resources are insufficient or a network partition occurs, a normal HA cluster cannot be established. At this time, since the ",(0,n.jsx)(t.code,{children:"witness"})," node has no data and takes up little resources, the ",(0,n.jsx)(t.code,{children:"witness"})," node and the ",(0,n.jsx)(t.code,{children:"replica"})," node can be deployed on one machine. For example, when there are only 2 machines, you can deploy the ",(0,n.jsx)(t.code,{children:"replica"})," node on one machine, and the ",(0,n.jsx)(t.code,{children:"replica"})," node and ",(0,n.jsx)(t.code,{children:"witness"})," node on another machine, which not only saves resources, but also does not require log application To the state machine, there is no need to generate and install snapshots, so the response to requests is very fast, and it can help quickly elect a new leader when the cluster crashes or the network is partitioned. This is the simple deployment mode of the TuGraph HA cluster. Although ",(0,n.jsx)(t.code,{children:"witness"})," nodes have many benefits, since there is no data, the cluster actually adds a node that cannot become ",(0,n.jsx)(t.code,{children:"leader"}),", so the availability will be slightly reduced. To improve the availability of the cluster, you can allow the ",(0,n.jsx)(t.code,{children:"witness"})," node to be the leader temporarily by specifying the ",(0,n.jsx)(t.code,{children:"ha_enable_witness_to_leader"})," parameter as ",(0,n.jsx)(t.code,{children:"true"}),". After the ",(0,n.jsx)(t.code,{children:"witness"})," node synchronizes the new log to other nodes, it will actively switch the leader role to the node with the latest log."]}),"\n",(0,n.jsx)(t.p,{children:"This feature is supported in version 3.6 and above."}),"\n",(0,n.jsx)(t.h2,{id:"2preparation",children:"2.Preparation"}),"\n",(0,n.jsx)(t.p,{children:"To enable high availability mode, users need to:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Three or more instances of TuGraph servers."}),"\n",(0,n.jsx)(t.li,{children:"To enable high availability mode when starting lgraph_server, the 'enable_ha' option can be set to 'true' using a configuration file or the command line."}),"\n",(0,n.jsx)(t.li,{children:"Set the correct rpc_port through the configuration file or command line"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"3start-the-initial-backup-group",children:"3.Start the initial backup group"}),"\n",(0,n.jsxs)(t.p,{children:["After installing TuGraph, you can use the ",(0,n.jsx)(t.code,{children:"lgraph_server"})," command to start a high-availability cluster on different machines. This section mainly explains how to start a high-availability cluster. For cluster status management after startup, see ",(0,n.jsx)(t.a,{href:"/tugraph-db/en-US/source/utility-tools/ha-cluster-management",children:"lgraph_peer tool"})]}),"\n",(0,n.jsx)(t.h3,{id:"31the-initial-data-is-consistent",children:"3.1.The initial data is consistent"}),"\n",(0,n.jsxs)(t.p,{children:["When the data in all servers is the same or there is no data at startup, the user can\nspecify ",(0,n.jsx)(t.code,{children:"--ha_conf host1:port1,host2:port2"})," to start the server.\nIn this way, all prepared TuGraph instances can be added to the initial backup group at one time,\nAll servers in the backup group elect ",(0,n.jsx)(t.code,{children:"leader"})," according to the RAFT protocol, and other\nservers join the backup group with the role of ",(0,n.jsx)(t.code,{children:"follower"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start an initial backup group is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.p,{children:"After the first server is started, it will elect itself as the 'leader' and organize a backup group with only itself."}),"\n",(0,n.jsx)(t.h3,{id:"32inconsistent-initial-data",children:"3.2.Inconsistent initial data"}),"\n",(0,n.jsxs)(t.p,{children:["If there is already data in the first server (imported by the ",(0,n.jsx)(t.code,{children:"lgraph_import"})," tool or transferred from a server in non-high availability mode),\nAnd it has not been used in high-availability mode before, the user should use the boostrap method to start. Start the server with data in bootstrap\nmode with the ",(0,n.jsx)(t.code,{children:"ha_bootstrap_role"})," parameter as 1, and specify the machine as the ",(0,n.jsx)(t.code,{children:"leader"})," through the ",(0,n.jsx)(t.code,{children:"ha_conf"}),"\nparameter. In bootstrap mode, the server will copy its own data to the new server before adding the newly\njoined server to the backup group, so that the data in each server is consistent."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start a data server is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_bootstrap_role 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Other servers without data need to specify the ",(0,n.jsx)(t.code,{children:"ha_bootstrap_role"})," parameter as 2, and specify the ",(0,n.jsx)(t.code,{children:"leader"})," through the ",(0,n.jsx)(t.code,{children:"ha_conf"})," parameter. The command example is as follows"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"**$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_bootstrap_role 2\n"})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"You need to pay attention to two points when using bootstrap to start an HA cluster:"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["You need to wait for the ",(0,n.jsx)(t.code,{children:"leader"})," node to generate a snapshot and start successfully before joining the ",(0,n.jsx)(t.code,{children:"follower"})," node, otherwise the ",(0,n.jsx)(t.code,{children:"follower"})," node may fail to join. When starting the ",(0,n.jsx)(t.code,{children:"follower"})," node, you can configure the ",(0,n.jsx)(t.code,{children:"ha_node_join_group_s"})," parameter to be slightly larger to allow multiple waits and timeout retries when joining the HA cluster."]}),"\n",(0,n.jsx)(t.li,{children:"The HA cluster can only use the bootstrap mode when it is started for the first time. It can only be started in the normal mode (see Section 3.1) when it is started later. In particular, multiple nodes of the same cluster cannot be started in the bootstrap mode, otherwise it may cause Data inconsistency"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"4start-witness-node",children:"4.Start witness node"}),"\n",(0,n.jsx)(t.h3,{id:"41-witness-nodes-are-not-allowed-to-become-leader",children:"4.1. Witness nodes are not allowed to become leader"}),"\n",(0,n.jsxs)(t.p,{children:["The startup method of ",(0,n.jsx)(t.code,{children:"witness"})," node is the same as that of ordinary nodes. You only need to set the ",(0,n.jsx)(t.code,{children:"ha_is_witness"})," parameter to ",(0,n.jsx)(t.code,{children:"true"}),". Note that the number of witness nodes should be less than half of the total number of cluster nodes."]}),"\n",(0,n.jsx)(t.p,{children:"An example command to start the witness node server is as follows:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_is_witness 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Note: By default, the ",(0,n.jsx)(t.code,{children:"witness"})," node is not allowed to become the ",(0,n.jsx)(t.code,{children:"leader"})," node, which can improve the performance of the cluster, but will reduce the availability of the cluster when the ",(0,n.jsx)(t.code,{children:"leader"})," node crashes."]}),"\n",(0,n.jsx)(t.h3,{id:"41-allow-witness-nodes-to-become-leaders",children:"4.1. Allow witness nodes to become leaders"}),"\n",(0,n.jsxs)(t.p,{children:["You can specify the ",(0,n.jsx)(t.code,{children:"ha_enable_witness_to_leader"})," parameter as ",(0,n.jsx)(t.code,{children:"true"}),", so that the ",(0,n.jsx)(t.code,{children:"witness"})," node can temporarily become the ",(0,n.jsx)(t.code,{children:"leader"})," node, and then actively switch to the master after the new log synchronization is completed."]}),"\n",(0,n.jsxs)(t.p,{children:["An example of the command to start the ",(0,n.jsx)(t.code,{children:"witness"})," node server that is allowed to become the ",(0,n.jsx)(t.code,{children:"leader"})," node is as follows:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090 --ha_is_witness 1 --ha_enable_witness_to_leader 1\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Note: Although allowing ",(0,n.jsx)(t.code,{children:"witness"})," nodes to become ",(0,n.jsx)(t.code,{children:"leader"})," nodes can improve the availability of the cluster, it may affect data consistency in extreme cases. Therefore, it should generally be ensured that the number of ",(0,n.jsx)(t.code,{children:"witness"})," nodes + 1 is less than half of the total number of cluster nodes."]}),"\n",(0,n.jsx)(t.h2,{id:"5scale-out-other-servers",children:"5.Scale out other servers"}),"\n",(0,n.jsxs)(t.p,{children:["After starting the initial backup group, if you want to scale out the backup group, add new servers to the backup group,\nThe ",(0,n.jsx)(t.code,{children:"--ha_conf HOST:PORT"})," option should be used, where ",(0,n.jsx)(t.code,{children:"HOST"})," can be the IP address of any server already in this backup group,\nAnd ",(0,n.jsx)(t.code,{children:"PORT"})," is its RPC port. E.g:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090\n"})}),"\n",(0,n.jsxs)(t.p,{children:["This command will start a TuGraph server in high availability mode and try to add it to the backup group containing the server ",(0,n.jsx)(t.code,{children:"172.22.224.15:9090"}),".\nNote that joining a backup group requires a server to synchronize its data with the backup group's ",(0,n.jsx)(t.code,{children:"leader"})," server, and this process may take a considerable amount of time, depending on the size of the data."]}),"\n",(0,n.jsx)(t.h2,{id:"6stopping-the-server",children:"6.Stopping the Server"}),"\n",(0,n.jsx)(t.p,{children:"When a server goes offline via 'CTRL-C', it will notify the current 'leader' server to remove the server from the backup group. If the leader server goes offline, it will pass the leader identity permission to another server before going offline."}),"\n",(0,n.jsx)(t.p,{children:"If a server is terminated or disconnected from other servers in the backup group, the server is considered a failed node and the leader server will remove it from the backup group after a specified time limit."}),"\n",(0,n.jsx)(t.p,{children:"If any server leaves the backup group and wishes to rejoin, it must start with the '--ha_conf {HOST:PORT}' option, where 'HOST' is the IP address of a server in the current backup group."}),"\n",(0,n.jsx)(t.h2,{id:"7restarting-the-server",children:"7.Restarting the Server"}),"\n",(0,n.jsxs)(t.p,{children:["Restarting the entire backup group is not recommended as it disrupts service. All servers can be shut down if desired. But on reboot,\nIt must be ensured that at least N/2+1 servers in the backup group at shutdown can start normally, otherwise the startup will fail. and,\nRegardless of whether ",(0,n.jsx)(t.code,{children:"enable_bootstrap"})," is specified as true when initially starting the replication group, restarting the server only needs to pass\nSpecify the ",(0,n.jsx)(t.code,{children:"--ha_conf host1:port1,host2:port2"})," parameter to restart all servers at once. The command example is as follows:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"$ ./lgraph_server -c lgraph.json --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.h2,{id:"8docker-deploys-a-highly-available-cluster",children:"8.docker deploys a highly available cluster"}),"\n",(0,n.jsx)(t.p,{children:"In real business scenarios, it is likely to encounter the need to deploy high-availability clusters on multiple operating systems or architectures.\nDifferentiated environments may cause some dependencies to be missing when compiling TuGraph. therefore,\nCompiling software in docker and deploying high-availability clusters is very valuable. Take the centos7 version of docker as an example,\nThe steps to deploy a highly available cluster are as follows."}),"\n",(0,n.jsx)(t.h3,{id:"81install-mirror",children:"8.1.Install mirror"}),"\n",(0,n.jsx)(t.p,{children:"Use the following command to download TuGraph's compiled docker image environment"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"docker pull tugraph/tugraph-compile-centos7\n"})}),"\n",(0,n.jsx)(t.p,{children:"Then pull the TuGraph source code and compile and install"}),"\n",(0,n.jsx)(t.h3,{id:"82create-container",children:"8.2.Create container"}),"\n",(0,n.jsxs)(t.p,{children:["Use the following command to create a container, use ",(0,n.jsx)(t.code,{children:"--net=host"})," to make the container run in host mode, in this mode\nDocker and the host machine share the network namespace, that is, they share the same IP."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"docker run --net=host -itd -p -v {src_dir}:{dst_dir} --name tugraph_ha tugraph/tugraph-compile-centos7 /bin/bash\n"})}),"\n",(0,n.jsx)(t.h3,{id:"83start-service",children:"8.3.Start service"}),"\n",(0,n.jsx)(t.p,{children:"Use the following command to start the service on each server, because docker and the host share IP, so you can directly specify to start the service on the host IP"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"$ lgraph_server -c lgraph.json --host 172.22.224.15 --rpc_port 9090 --enable_ha true --ha_conf 172.22.224.15:9090,172.22.224.16:9090,172.22.224.17:9090\n"})}),"\n",(0,n.jsx)(t.h2,{id:"9server-status",children:"9.Server Status"}),"\n",(0,n.jsx)(t.p,{children:"The current status of the backup group can be obtained from the TuGraph visualization tool, REST API, and Cypher query."}),"\n",(0,n.jsx)(t.p,{children:"In the TuGraph visualization tool, you can find the list of servers and their roles in the backup group in the DBInfo section."}),"\n",(0,n.jsxs)(t.p,{children:["With the REST API, you can use ",(0,n.jsx)(t.code,{children:"GET /info/peers"})," to request information."]}),"\n",(0,n.jsxs)(t.p,{children:["In Cypher, the ",(0,n.jsx)(t.code,{children:"CALL dbms.listServers()"})," statement is used to query the status information of the current backup group."]}),"\n",(0,n.jsx)(t.h2,{id:"10data-synchronization-in-high-availability-mode",children:"10.Data synchronization in high availability mode"}),"\n",(0,n.jsx)(t.p,{children:"In high availability mode, different servers in the same backup group may not always be in the same state. For performance reasons, if a request has been synchronized to more than half of the servers, the leader server will consider the request to be in the committed state. Although the rest of the servers will eventually receive the new request, the inconsistent state of the servers will persist for some time. A client may also send a request to a server that has just restarted, thus having an older state and waiting to join a backup group."}),"\n",(0,n.jsx)(t.p,{children:"To ensure that the client sees consistently continuous data, and in particular to get rid of the 'reverse time travel' problem, where the client reads a state older than it has seen before, each TuGraph server keeps a monotonically increasing data version number. The mapping of the data version number to the database state in the backup group is globally consistent, meaning that if two servers have the same data version number, they must have the same data. When responding to a request, the server includes its data version number in the response. Thus, the client can tell which version it has seen. The client can choose to send this data version number along with the request. Upon receiving a request with a data version number, the server compares the data version number to its current version and rejects the request if its own version is lower than the requested version. This mechanism ensures that the client never reads a state that is older than before."})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>i,x:()=>o});var n=r(6540);const s={},a=n.createContext(s);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/66d55dfc.72422b7e.js b/assets/js/66d55dfc.72422b7e.js
deleted file mode 100644
index 7280bfff7f..0000000000
--- a/assets/js/66d55dfc.72422b7e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3956],{2693:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>i,contentTitle:()=>r,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var n=s(4848),o=s(8453);const c={},r="Contacts",a={id:"en-US/source/contacts",title:"Contacts",description:"If you have any feedback or suggestions for the product, You are welcome to join the discussion or make suggestions through the following contact methods.",source:"@site/../docs/en-US/source/15.contacts.md",sourceDirName:"en-US/source",slug:"/en-US/source/contacts",permalink:"/tugraph-db/en-US/source/contacts",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:15,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"FAQ",permalink:"/tugraph-db/en-US/source/faq"},next:{title:"\u6587\u6863\u5730\u56fe",permalink:"/tugraph-db/zh-CN/source/guide"}},i={},u=[];function h(e){const t={a:"a",h1:"h1",header:"header",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"contacts",children:"Contacts"})}),"\n",(0,n.jsx)(t.p,{children:"If you have any feedback or suggestions for the product, You are welcome to join the discussion or make suggestions through the following contact methods."}),"\n",(0,n.jsxs)(t.p,{children:["Official website: ",(0,n.jsx)(t.a,{href:"https://www.tugraph.org",children:"www.tugraph.org"})]}),"\n",(0,n.jsxs)(t.p,{children:["Github Issue:\n",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-db/tugraph-db/issues",children:"Issue"})]}),"\n",(0,n.jsxs)(t.p,{children:["Github Discussions:\n",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions",children:"Discussions"})]}),"\n",(0,n.jsxs)(t.p,{children:["Slack:\n",(0,n.jsx)(t.a,{href:"https://join.slack.com/t/tugraph/shared_invite/zt-1hha8nuli-bqdkwn~w4zH1vlk0QvqIfg",children:"TuGraph.slack"})]}),"\n",(0,n.jsxs)(t.p,{children:["Contact us via dingtalk, wechat, email and telephone:\n",(0,n.jsx)(t.img,{alt:"contacts",src:s(5060).A+"",width:"1547",height:"516"})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5060:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/contact-en-22cbe0cf1926cc821cce8566ae1d4d3c.png"},8453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>a});var n=s(6540);const o={},c=n.createContext(o);function r(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/66d55dfc.c5aa7b96.js b/assets/js/66d55dfc.c5aa7b96.js
new file mode 100644
index 0000000000..6932a83562
--- /dev/null
+++ b/assets/js/66d55dfc.c5aa7b96.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3956],{7435:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>r,toc:()=>u});var n=s(4848),o=s(8453);const c={},a="Contacts",r={id:"contacts",title:"Contacts",description:"If you have any feedback or suggestions for the product, You are welcome to join the discussion or make suggestions through the following contact methods.",source:"@site/../docs/en-US/source/15.contacts.md",sourceDirName:".",slug:"/contacts",permalink:"/tugraph-db/en/contacts",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:15,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"FAQ",permalink:"/tugraph-db/en/faq"}},i={},u=[];function h(t){const e={a:"a",h1:"h1",header:"header",img:"img",p:"p",...(0,o.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"contacts",children:"Contacts"})}),"\n",(0,n.jsx)(e.p,{children:"If you have any feedback or suggestions for the product, You are welcome to join the discussion or make suggestions through the following contact methods."}),"\n",(0,n.jsxs)(e.p,{children:["Official website: ",(0,n.jsx)(e.a,{href:"https://www.tugraph.org",children:"www.tugraph.org"})]}),"\n",(0,n.jsxs)(e.p,{children:["Github Issue:\n",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/issues",children:"Issue"})]}),"\n",(0,n.jsxs)(e.p,{children:["Github Discussions:\n",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions",children:"Discussions"})]}),"\n",(0,n.jsxs)(e.p,{children:["Slack:\n",(0,n.jsx)(e.a,{href:"https://join.slack.com/t/tugraph/shared_invite/zt-1hha8nuli-bqdkwn~w4zH1vlk0QvqIfg",children:"TuGraph.slack"})]}),"\n",(0,n.jsxs)(e.p,{children:["Contact us via dingtalk, wechat, email and telephone:\n",(0,n.jsx)(e.img,{alt:"contacts",src:s(5060).A+"",width:"1547",height:"516"})]})]})}function d(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(h,{...t})}):h(t)}},5060:(t,e,s)=>{s.d(e,{A:()=>n});const n=s.p+"assets/images/contact-en-22cbe0cf1926cc821cce8566ae1d4d3c.png"},8453:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>r});var n=s(6540);const o={},c=n.createContext(o);function a(t){const e=n.useContext(c);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:a(t.components),n.createElement(c.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/678c6099.9dbcbf71.js b/assets/js/678c6099.9dbcbf71.js
deleted file mode 100644
index d2a5ac2311..0000000000
--- a/assets/js/678c6099.9dbcbf71.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3273],{4434:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>h,contentTitle:()=>i,default:()=>j,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=r(4848),d=r(8453);const t={},i="\u5e94\u7528\u573a\u666f",c={id:"zh-CN/source/introduction/scenarios",title:"\u5e94\u7528\u573a\u666f",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u56fe\u6570\u636e\u5e93\u9002\u7528\u7684\u5e94\u7528\u573a\u666f\u3002",source:"@site/../docs/zh-CN/source/2.introduction/8.scenarios.md",sourceDirName:"zh-CN/source/2.introduction",slug:"/zh-CN/source/introduction/scenarios",permalink:"/tugraph-db/zh-CN/source/introduction/scenarios",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u529f\u80fd\u6982\u89c8",permalink:"/tugraph-db/zh-CN/source/introduction/functionality"},next:{title:"\u540d\u8bcd\u89e3\u91ca",permalink:"/tugraph-db/zh-CN/source/introduction/glossary"}},h={},l=[{value:"1. \u91d1\u878d\u9886\u57df",id:"1-\u91d1\u878d\u9886\u57df",level:2},{value:"2. \u5de5\u4e1a\u9886\u57df",id:"2-\u5de5\u4e1a\u9886\u57df",level:2},{value:"3. \u667a\u6167\u57ce\u5e02",id:"3-\u667a\u6167\u57ce\u5e02",level:2},{value:"4. \u793e\u4f1a\u6cbb\u7406",id:"4-\u793e\u4f1a\u6cbb\u7406",level:2},{value:"5. \u4e92\u8054\u7f51",id:"5-\u4e92\u8054\u7f51",level:2}];function x(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.header,{children:(0,s.jsx)(e.h1,{id:"\u5e94\u7528\u573a\u666f",children:"\u5e94\u7528\u573a\u666f"})}),"\n",(0,s.jsxs)(e.blockquote,{children:["\n",(0,s.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u56fe\u6570\u636e\u5e93\u9002\u7528\u7684\u5e94\u7528\u573a\u666f\u3002"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"1-\u91d1\u878d\u9886\u57df",children:"1. \u91d1\u878d\u9886\u57df"}),"\n",(0,s.jsx)(e.p,{children:"\u91d1\u878d\u9886\u57df\u7684\u5b9e\u4f53\u4e3b\u8981\u6d89\u53ca\u4eba\u3001\u516c\u53f8\u3001\u8d26\u6237\u3001\u4ea7\u54c1\u7b49\uff0c\u5b83\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\u5305\u62ec\u4ea4\u6613\u5173\u7cfb\u3001\u767b\u5f55\u5173\u7cfb\u3001\u80a1\u6743\u5173\u7cfb\u3001\u96c7\u4f63\u5173\u7cfb\u7b49\u3002\u8fd9\u4e9b\u5b9e\u4f53\u6784\u6210\u4e86\u4e00\u5f20\u91d1\u878d\u56fe\u6570\u636e\u7f51\u7edc\u3002\u5e94\u7528\u56fe\u6570\u636e\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u4ece\u91d1\u878d\u56fe\u6570\u636e\u7f51\u7edc\u91cc\u53d1\u6398\u51fa\u5927\u91cf\u6709\u7528\u4fe1\u606f\uff0c\u5e2e\u52a9\u6211\u4eec\u505a\u51fa\u66f4\u51c6\u786e\u7684\u91d1\u878d\u51b3\u7b56\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u8d37\u6b3e\u5ba1\u6838"}),(0,s.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u7533\u8bf7\u4eba\u7684\u5173\u8054\u5173\u7cfb\u3001\u4ea4\u6613\u60c5\u51b5\u7b49\u8f85\u52a9\u5224\u65ad\u7533\u8bf7\u4eba\u7684\u507f\u8fd8\u80fd\u529b\u548c\u507f\u8fd8\u610f\u613f\uff0c\u53ef\u5e94\u7528\u4e8e\u96f6\u552e\u8d37\u6b3e\u5ba1\u6838\u3001\u5c0f\u5fae\u8d37\u6b3e\u5ba1\u6838\u3001\u4f9b\u5e94\u94fe\u91d1\u878d\u7b49\u3002\u6b64\u65b9\u6cd5\u53ef\u4e0e\u4f20\u7edf\u7684\u57fa\u4e8e\u7533\u8bf7\u4eba\u81ea\u8eab\u4fe1\u606f\u7684\u5ba1\u6838\u673a\u5236\u4e92\u8865\uff0c\u5728\u4e2a\u4f53\u4fe1\u606f\u5f55\u8986\u76d6\u8f83\u4f4e\u7684\u5c0f\u5fae\u8d37\u6b3e\u5ba1\u6838\u4e2d\u5c24\u5176\u6709\u7528\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u8d37\u540e\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u501f\u6b3e\u4eba\u4ea4\u6613\u60c5\u51b5\uff0c\u8f85\u52a9\u5206\u6790\u501f\u6b3e\u4eba\u662f\u5426\u6709\u903e\u671f\u98ce\u9669\u3002\u76f8\u6bd4\u4e8e\u4f20\u7edf\u53ea\u5728\u8d37\u6b3e\u8d44\u91d1\u6d41\u5411\u7279\u5b9a\u7528\u6237\u7684\u60c5\u51b5\u4e0b\u53d1\u51fa\u8b66\u62a5\u7684\u65b9\u5f0f\u4e0d\u540c\uff0c\u8be5\u65b9\u6cd5\u53ef\u4ee5\u7ed9\u6bcf\u4e2a\u8d26\u6237\u8d4b\u4e88\u4e00\u4e2a\u98ce\u9669\u503c\uff0c\u5e76\u5728\u8d37\u6b3e\u6d41\u5411\u9ad8\u98ce\u9669\u8d26\u6237\u65f6\u7ed9\u51fa\u9884\u8b66\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u5931\u8054\u4fee\u590d"}),(0,s.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u5931\u8054\u8d37\u6b3e\u4eba\u7684\u793e\u4ea4\u548c\u8d2d\u7269\u6570\u636e\uff0c\u627e\u51fa\u5176\u5b83\u8054\u7cfb\u65b9\u5f0f\u3002\u8be5\u65b9\u6cd5\u53ef\u4ee5\u5927\u5e45\u6539\u8fdb\u5931\u8054\u4fee\u590d\u7387\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u62c5\u4fdd\u73af\u68c0\u6d4b"}),(0,s.jsx)(e.td,{children:"\u53ef\u5728\u62c5\u4fdd\u5173\u7cfb\u56fe\u4e2d\u627e\u51fa\u73af\u72b6\u3001\u94fe\u5f0f\u3001\u5bb6\u65cf\u5f0f\u3001\u4ea4\u53c9\u7b49\u7279\u6b8a\u62c5\u4fdd\u7ed3\u6784\uff0c\u63ed\u9732\u6f5c\u5728\u98ce\u9669\u3002\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684JOIN\u65b9\u6cd5\uff0c\u57fa\u4e8e\u56fe\u7b97\u6cd5\u7684\u65b9\u6848\u66f4\u9ad8\u6548\uff0c\u53ef\u4ee5\u68c0\u6d4b\u51fa\u4efb\u610f\u957f\u7684\u62c5\u4fdd\u73af\uff0c\u4e14\u53ef\u4ee5\u5b9e\u73b0\u66f4\u590d\u6742\u9650\u5b9a\u6761\u4ef6\u7684\u68c0\u6d4b\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u4fe1\u7528\u5361\u56e2\u4f19\u6b3a\u8bc8\u68c0\u6d4b"}),(0,s.jsx)(e.td,{children:"\u6784\u5efa\u4fe1\u7528\u5361\u7533\u8bf7\u4fe1\u606f\u4e2d\u7684\u5730\u5740\u3001\u8054\u7cfb\u65b9\u5f0f\u7b49\u5173\u7cfb\u7f51\u7edc\uff0c\u5728\u7533\u8bf7\u5173\u7cfb\u7f51\u7edc\u4e2d\u8fd0\u884c\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u53ef\u4ee5\u68c0\u6d4b\u51fa\u7591\u4f3c\u6b3a\u8bc8\u7684\u56e2\u4f19\uff0c\u4ece\u800c\u62d2\u7edd\u6d89\u5acc\u6b3a\u8bc8\u7684\u7533\u8bf7\u4ef6\uff0c\u51cf\u5c11\u7ecf\u6d4e\u635f\u5931\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u53cd\u6d17\u94b1"}),(0,s.jsx)(e.td,{children:"\u901a\u8fc7\u4ea4\u6613\u7f51\u7edc\u548c\u4ecb\u8d28\u7f51\u7edc\uff0c\u627e\u51fa\u7591\u4f3c\u6d17\u94b1\u7684\u884c\u4e3a\u548c\u94fe\u8def\u3002\u6d17\u94b1\u662f\u4e00\u4e2a\u590d\u6742\u7684\u591a\u65b9\u53c2\u4e0e\u7684\u8fc7\u7a0b\uff0c\u901a\u8fc7\u5728\u4ea4\u6613\u548c\u793e\u4ea4\u7f51\u7edc\u4e2d\u8fdb\u884c\u56fe\u5206\u6790\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u7cbe\u51c6\u7684\u68c0\u6d4b\u51fa\u6d17\u94b1\u884c\u4e3a\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u8f66\u9669\u53cd\u6b3a\u8bc8"}),(0,s.jsx)(e.td,{children:"\u9488\u5bf9\u6709\u4fee\u7406\u5382\u53c2\u4e0e\u7684\u9a97\u4fdd\u884c\u4e3a\uff0c\u901a\u8fc7\u5206\u6790\u88ab\u4fdd\u4eba\u3001\u6848\u4ef6\u5730\u70b9\u548c\u4fee\u7406\u5382\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u53ef\u4ee5\u66f4\u7cbe\u51c6\u7684\u8bc6\u522b\u51fa\u9a97\u4fdd\u884c\u4e3a\uff0c\u51cf\u5c11\u7ecf\u6d4e\u635f\u5931\u3002"})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"2-\u5de5\u4e1a\u9886\u57df",children:"2. \u5de5\u4e1a\u9886\u57df"}),"\n",(0,s.jsx)(e.p,{children:"\u5728\u751f\u4ea7\u548c\u5236\u9020\u8fc7\u7a0b\u4e2d\u4f1a\u4ea7\u751f\u5927\u91cf\u5f02\u6784\u6570\u636e\uff0c\u5982\u4f55\u6709\u6548\u7684\u7ec4\u7ec7\u548c\u7ba1\u7406\u8fd9\u4e9b\u6570\u636e\u662f\u5de5\u4e1a\u5927\u6570\u636e\u4e2d\u6700\u91cd\u8981\u7684\u95ee\u9898\u4e4b\u4e00\u3002\u8fd9\u4e9b\u6570\u636e\u5305\u62ec\u8bbe\u8ba1\u6587\u6863\u3001\u8bbe\u5907\u6570\u636e\u3001\u4eff\u771f\u65b9\u6848\u548c\u7ed3\u679c\u3001\u5b9e\u9a8c\u7ed3\u679c\u3001\u7ecf\u9a8c\u6587\u6863\u7b49\uff0c\u5173\u7cfb\u9519\u7efc\u590d\u6742\u3002\u4f20\u7edf\u7684\u6570\u636e\u7ba1\u7406\u7cfb\u7edf\u53ea\u80fd\u7d2f\u79ef\u6570\u636e\uff0c\u800c\u67e5\u627e\u76f8\u5173\u6750\u6599\u5219\u5f80\u5f80\u529b\u4e0d\u4ece\u5fc3\u3002\u4f7f\u7528\u56fe\u6a21\u578b\uff0c\u5c06\u8fd9\u4e9b\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u7ec4\u7ec7\u6210\u4e00\u5f20\u7f51\u7edc\uff0c\u5c31\u53ef\u4ee5\u65b9\u4fbf\u5730\u6d4f\u89c8\u548c\u67e5\u627e\u6570\u636e\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u4f9b\u5e94\u94fe\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u4f9b\u5e94\u94fe\u6570\u636e\u4e3b\u8981\u5173\u5fc3\u4ea7\u54c1\u2014\u90e8\u4ef6\u2014\u96f6\u4ef6\u7684\u5bf9\u5e94\u5173\u7cfb\u3001\u96f6\u4ef6\u4e0e\u4f9b\u5e94\u5546\u7684\u5bf9\u5e94\u5173\u7cfb\u3001\u96f6\u4ef6\u4e2d\u7684\u654f\u611f\u6210\u5206\u7b49\u3002\u76f8\u6bd4\u4e8e\u4f20\u7edf\u7684\u7269\u6599\u7ba1\u7406\uff08BOM\uff09\u7cfb\u7edf\uff0c\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u7684\u65b9\u6848\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u7ef4\u62a4\u591a\u4e2a\u90e8\u4ef6\u5c42\u6b21\u3001\u591a\u4e2a\u4f9b\u5e94\u5546\u7ea7\u522b\u7684\u590d\u6742\u7f51\u7edc\uff0c\u4ece\u800c\u4e3a\u7a7f\u900f\u5f0f\u4f9b\u5e94\u94fe\u63d0\u4f9b\u57fa\u7840\u652f\u6301\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u6587\u6863\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u5c06\u4e0d\u540c\u7c7b\u578b\u7684\u6587\u6863\u6309\u4e0d\u540c\u5173\u7cfb\u6709\u673a\u5730\u7ec4\u7ec7\u5728\u4e00\u8d77\u3002\u4f8b\u5982\u5c06\u90e8\u4ef6\u8bbe\u8ba1\u6587\u6863\u3001\u90e8\u4ef6\u2014\u96f6\u4ef6\u5173\u7cfb\u3001\u90e8\u4ef6\u6d4b\u8bd5\u6587\u6863\u3001\u76f8\u5173\u7ecf\u9a8c\u6587\u6863\u7b49\u7ec4\u7ec7\u8d77\u6765\uff0c\u5728\u9700\u8981\u67e5\u627e\u65f6\u5c31\u53ef\u4ee5\u65b9\u4fbf\u83b7\u53d6\u8be5\u90e8\u4ef6\u7684\u6240\u6709\u76f8\u5173\u4fe1\u606f\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u7814\u53d1\u8fc7\u7a0b\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u4ea7\u54c1\u7814\u53d1\u548c\u9a8c\u8bc1\u8fc7\u7a0b\u4e2d\u9700\u8981\u8fdb\u884c\u5927\u91cf\u4eff\u771f\u3001\u8bd5\u9a8c\u548c\u6d4b\u8bd5\uff0c\u6bcf\u4e00\u4e2a\u6d4b\u8bd5\u6d41\u7a0b\u90fd\u4f1a\u6d89\u53ca\u5927\u91cf\u4e0d\u540c\u7684\u6b65\u9aa4\u3002\u6b65\u9aa4\u4e4b\u95f4\u7684\u8fde\u63a5\u5173\u7cfb\u3001\u6bcf\u4e2a\u6b65\u9aa4\u4e2d\u4f7f\u7528\u7684\u6570\u636e\u7248\u672c\u3001\u7b97\u6cd5\u7248\u672c\u7b49\u5c31\u6784\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u5173\u7cfb\u7f51\u7edc\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u66f4\u597d\u7ba1\u7406\u8fd9\u4e2a\u5173\u7cfb\u7f51\u7edc\uff0c\u4ece\u800c\u4e3a\u7814\u53d1\u8fc7\u7a0b\u4e2d\u7684\u6570\u636e\u590d\u7528\u3001\u6d41\u7a0b\u6539\u8fdb\u63d0\u4f9b\u826f\u597d\u57fa\u7840\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u5236\u9020\u4e1a\u9700\u8981\u7ba1\u7406\u5927\u91cf\u8bbe\u5907\uff0c\u8bbe\u5907\u4e4b\u95f4\u53c8\u4e92\u76f8\u5173\u8054\uff08\u4f9b\u7535\u5173\u7cfb\u3001\u4f9b\u6599\u5173\u7cfb\u3001\u7a7a\u95f4\u5173\u7cfb\uff09\uff0c\u4ece\u800c\u5f62\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u7f51\u7edc\u3002\u4f20\u7edf\u7684\u6570\u636e\u5e93\u5f88\u96be\u4f53\u73b0\u8fd9\u79cd\u590d\u6742\u5173\u7cfb\u3002\u800c\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u5219\u53ef\u4ee5\u4fbf\u6377\u8868\u793a\u8fd9\u4e9b\u5173\u7cfb\uff0c\u4ece\u800c\u66f4\u597d\u7684\u7ba1\u7406\u8bbe\u5907\u4fe1\u606f\u3002"})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"3-\u667a\u6167\u57ce\u5e02",children:"3. \u667a\u6167\u57ce\u5e02"}),"\n",(0,s.jsx)(e.p,{children:"\u968f\u7740\u79d1\u6280\u7684\u53d1\u5c55\uff0c\u57ce\u5e02\u7684\u667a\u80fd\u5316\u7ba1\u7406\u5df2\u6210\u4e3a\u4e00\u4e2a\u5927\u8d8b\u52bf\u3002\u667a\u80fd\u5316\u7ba1\u7406\u9700\u8981\u5efa\u7acb\u5728\u826f\u597d\u7684\u4fe1\u606f\u7ba1\u7406\u5e73\u53f0\u4e4b\u4e0a\uff0c\u56e0\u6b64\u9700\u8981\u5f3a\u5927\u7684\u7cfb\u7edf\u8f6f\u4ef6\u505a\u652f\u6491\u3002\u5728\u667a\u80fd\u5316\u57ce\u5e02\u7ba1\u7406\u7cfb\u7edf\u4e2d\uff0c\u667a\u80fd\u5316\u51b3\u7b56\u7cfb\u7edf\u9700\u8981\u57fa\u4e8e\u5927\u91cf\u4e0d\u540c\u4fe1\u606f\u505a\u51fa\u51b3\u7b56\uff0c\u8fd9\u4e9b\u4fe1\u606f\u5305\u62ec\u5404\u79cd\u62d3\u6251\u4fe1\u606f\uff08\u9053\u8def\u3001\u7ba1\u7ebf\uff09\uff0c\u4f9b\u6c42\u4fe1\u606f\uff08\u7535\u529b\u8f93\u9001\u3001\u996e\u7528\u6c34\u4f9b\u5e94\u3001\u6c61\u6c34\u6392\u653e\uff09\uff0c\u73af\u5883\u4fe1\u606f\uff08\u6e29\u5ea6\u3001\u6e7f\u5ea6\u3001\u96e8\u91cf\uff09\u7b49\u3002\u8981\u5c06\u8fd9\u4e9b\u590d\u6742\u7684\u5f02\u6784\u6570\u636e\u6709\u673a\u7ba1\u7406\u8d77\u6765\uff0c\u5e76\u57fa\u4e8e\u5b83\u4eec\u505a\u51fa\u51b3\u7b56\uff0c\u5c31\u9700\u8981\u4e00\u4e2a\u6210\u719f\u7684\u7cfb\u7edf\u3002\u4f20\u7edf\u7684\u6570\u636e\u7ba1\u7406\u7cfb\u7edf\u57fa\u4e8e\u5173\u7cfb\u6570\u636e\u6a21\u578b\uff0c\u5e76\u4e0d\u9002\u5408\u7ba1\u7406\u8fd9\u79cd\u590d\u6742\u5f02\u6784\u6570\u636e\u3002\u800c\u4f7f\u7528\u56fe\u6a21\u578b\u5c31\u53ef\u4ee5\u5f88\u597d\u7684\u89e3\u51b3\u8fd9\u4e00\u95ee\u9898\u3002\u5982\u679c\u6211\u4eec\u5c06\u8fd9\u4e9b\u4e0d\u540c\u7684\u6570\u636e\u5229\u7528\u56fe\u6570\u636e\u5e93\u8fdb\u884c\u7ba1\u7406\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u5f88\u591a\u590d\u6742\u7684\u667a\u80fd\u7ba1\u7406\u573a\u666f\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u667a\u80fd\u4ea4\u901a"}),(0,s.jsx)(e.td,{children:"\u57fa\u4e8e\u9053\u8def\u62d3\u6251\u3001\u9053\u8def\u5bb9\u91cf\u53ca\u5f53\u524d\u6d41\u91cf\uff0c\u53ef\u4ee5\u8fdb\u884c\u667a\u80fd\u4fe1\u53f7\u706f\u8c03\u5ea6\uff0c\u4ece\u800c\u63d0\u9ad8\u901a\u884c\u6548\u7387\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u667a\u80fd\u6392\u6c34"}),(0,s.jsx)(e.td,{children:"\u57fa\u4e8e\u6392\u6c34\u7cfb\u7edf\u4fe1\u606f\u53ca\u5f53\u524d\u96e8\u91cf\uff0c\u53ef\u4ee5\u5bf9\u6392\u6c34\u7cfb\u7edf\u8fdb\u884c\u8c03\u5ea6\uff0c\u4ece\u800c\u51cf\u5c11\u5185\u6d9d\u7684\u4ea7\u751f\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u7ba1\u7ebf\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u5c06\u7ba1\u7ebf\u7684\u751f\u4ea7\u3001\u5b89\u88c5\u3001\u62d3\u6251\u4fe1\u606f\uff0c\u4ee5\u53ca\u5386\u53f2\u72b6\u6001\u4fe1\u606f\u6709\u673a\u7ec4\u7ec7\u8d77\u6765\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u5bf9\u7ba1\u7ebf\u8fdb\u884c\u5168\u5468\u671f\u7ba1\u7406\uff0c\u5305\u62ec\u6545\u969c\u6392\u67e5\u3001\u5bff\u547d\u8bc4\u4f30\u7b49\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u4eba\u7fa4\u758f\u6563"}),(0,s.jsx)(e.td,{children:"\u5927\u91cf\u4eba\u7fa4\u9700\u8981\u758f\u6563\u65f6\uff0c\u9700\u8981\u8003\u8651\u516c\u4ea4\u3001\u5730\u94c1\u3001\u51fa\u79df\u8f66\u3001\u5171\u4eab\u5355\u8f66\u7b49\u591a\u79cd\u4ea4\u901a\u65b9\u5f0f\uff0c\u540c\u65f6\u8fd8\u9700\u8981\u8003\u8651\u9053\u8def\u627f\u8f7d\u91cf\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u5c06\u8fd9\u4e9b\u4fe1\u606f\u6709\u673a\u6574\u5408\u5728\u4e00\u8d77\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u7684\u505a\u51fa\u51b3\u7b56\uff0c\u4ee5\u4fbf\u4e3a\u5927\u578b\u516c\u5171\u6d3b\u52a8\u63d0\u4f9b\u66f4\u597d\u7684\u652f\u6301\u3002"})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"4-\u793e\u4f1a\u6cbb\u7406",children:"4. \u793e\u4f1a\u6cbb\u7406"}),"\n",(0,s.jsx)(e.p,{children:"\u793e\u4f1a\u6cbb\u7406\u5305\u62ec\u516c\u5171\u5b89\u5168\u3001\u6cd5\u5f8b\u4e8b\u52a1\u3001\u8206\u8bba\u3001\u7f51\u7edc\u5b89\u5168\u7b49\u591a\u65b9\u9762\u3002\u793e\u4f1a\u6cbb\u7406\u662f\u4e00\u4e2a\u7efc\u5408\u6027\u7684\u3001\u591a\u7cfb\u7edf\u8054\u52a8\u95ee\u9898\u3002\u5b83\u9700\u8981\u7efc\u5408\u5927\u91cf\u6570\u636e\u3001\u5168\u5c40\u8003\u91cf\u624d\u80fd\u505a\u51fa\u66f4\u597d\u7684\u51b3\u7b56\u3002\u5728\u8fd9\u79cd\u591a\u7ef4\u5ea6\u590d\u6742\u6570\u636e\u95ee\u9898\u4e0a\uff0c\u56fe\u6570\u636e\u6a21\u578b\u53ef\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u9002\u5e94\u6027\uff0c\u4ece\u800c\u4e3a\u667a\u80fd\u5316\u7684\u793e\u4f1a\u6cbb\u7406\u51b3\u7b56\u5e73\u53f0\u63d0\u4f9b\u575a\u5b9e\u7684\u57fa\u7840\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u72af\u7f6a\u56e2\u4f19\u53d1\u73b0"}),(0,s.jsx)(e.td,{children:"\u5408\u8c0b\u56e2\u4f19\u5fc5\u7136\u4f1a\u901a\u8fc7\u67d0\u4e9b\u65b9\u5f0f\u4ea7\u751f\u8054\u7cfb\uff0c\u8fd9\u79cd\u8054\u7cfb\u5305\u62ec\u9762\u8c08\uff08\u51fa\u73b0\u5728\u540c\u4e00\u5730\u70b9\uff09\u3001\u7535\u8bdd\u8054\u7cfb\u3001\u6216\u8005\u4e92\u8054\u7f51\u8054\u7cfb\uff0c\u4ed6\u4eec\u8fd8\u53ef\u80fd\u6709\u7ecf\u6d4e\u5f80\u6765\u3002\u5982\u679c\u6211\u4eec\u5c06\u8fd9\u4e9b\u6570\u636e\u7edf\u4e00\u5b58\u653e\u5728\u4e00\u5f20\u56fe\u4e2d\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u901a\u8fc7\u56fe\u5206\u6790\u7b97\u6cd5\u67e5\u627e\u51fa\u8054\u7cfb\u7d27\u5bc6\u7684\u7fa4\u4f53\uff0c\u4ece\u800c\u53d1\u73b0\u548c\u8bc6\u522b\u6574\u4e2a\u72af\u7f6a\u56e2\u4f19\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u6d89\u4f17\u6848\u4ef6\u8c03\u67e5"}),(0,s.jsx)(e.td,{children:"\u6d89\u4f17\u6848\u4ef6\uff0c\u7279\u522b\u662f\u6d89\u4f17\u7ecf\u6d4e\u6848\u4ef6\u5f80\u5f80\u6d89\u53ca\u5927\u91cf\u7684\u4eba\u5458\u548c\u8981\u7d20\uff08\u8d27\u5e01\u3001\u5730\u70b9\u3001\u4e8b\u4ef6\u7b49\uff09\u3002\u5982\u4f55\u6709\u6548\u7684\u7ec4\u7ec7\u8fd9\u4e9b\u8d44\u6599\uff0c\u4ece\u800c\u4e3a\u529e\u6848\u63d0\u4f9b\u8bc1\u636e\u652f\u6301\u662f\u6d89\u4f17\u6848\u4ef6\u8c03\u67e5\u7684\u4e00\u4e2a\u96be\u70b9\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u6765\u5b58\u50a8\u548c\u5206\u6790\u8fd9\u4e9b\u8d44\u6599\uff0c\u53ef\u4ee5\u8ba9\u6211\u4eec\u5feb\u901f\u5b9a\u4f4d\u8d44\u6599\u3001\u5206\u6790\u4eba\u5458\u6784\u6210\u3001\u4e3a\u6848\u4ef6\u8c03\u67e5\u63d0\u4f9b\u66f4\u597d\u7684\u6280\u672f\u652f\u6301\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u8fdd\u6cd5\u7f51\u7ad9\u7504\u522b"}),(0,s.jsx)(e.td,{children:"\u8fdd\u6cd5\u7f51\u7ad9\u3001\u9493\u9c7c\u7f51\u7ad9\u3001\u9ec4\u8272\u7f51\u7ad9\u7b49\u5f80\u5f80\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u57df\u540d\u548cIP\u6765\u907f\u514d\u88ab\u5c01\u6740\u3002\u57fa\u4e8e\u9ed1\u540d\u5355\u7684\u8fc7\u6ee4\u65b9\u6cd5\u53ea\u80fd\u5c01\u7981\u5df2\u77e5\u7684\u8fdd\u6cd5\u7f51\u7ad9\uff0c\u65e0\u6cd5\u5bf9\u65b0\u51fa\u73b0\u7684\u57df\u540d\u548cIP\u8fdb\u884c\u6709\u6548\u7504\u522b\u3002\u57fa\u4e8eIP\u2014\u57df\u540d\u7f51\u7edc\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u6211\u4eec\u53ef\u4ee5\u5efa\u7acb\u4e00\u5f20\u56fe\uff0c\u7136\u540e\u901a\u8fc7\u56fe\u8ba1\u7b97\u5efa\u7acb\u8d77\u57df\u540d\u548cIP\u7684\u201c\u53ef\u4fe1\u5ea6\u201d\u6a21\u578b\uff0c\u5229\u7528\u8be5\u6a21\u578b\u6765\u5224\u65ad\u7f51\u7ad9\u662f\u5426\u5c5e\u4e8e\u8fdd\u6cd5\u7f51\u7ad9\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u6cd5\u9662\u5377\u5b97\u7ba1\u7406"}),(0,s.jsx)(e.td,{children:"\u5377\u5b97\u5f80\u5f80\u9519\u7efc\u590d\u6742\uff0c\u4e0d\u540c\u7684\u6848\u4ef6\u4e4b\u95f4\u53ef\u80fd\u901a\u8fc7\u5f53\u4e8b\u4eba\u4ea7\u751f\u8054\u7cfb\uff0c\u4e5f\u53ef\u80fd\u901a\u8fc7\u6848\u53d1\u5730\u3001\u6848\u4ef6\u6027\u8d28\u3001\u5ba1\u5224\u4eba\u5458\u7b49\u4ea7\u751f\u8054\u7cfb\u3002\u8fd9\u4e9b\u8054\u7cfb\u6784\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u7f51\u7edc\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u6211\u4eec\u53ef\u4ee5\u66f4\u65b9\u4fbf\u7684\u7ba1\u7406\u8fd9\u4e9b\u590d\u6742\u5173\u7cfb\uff0c\u63d0\u9ad8\u529e\u6848\u548c\u67e5\u8be2\u6548\u7387\u3002"})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"5-\u4e92\u8054\u7f51",children:"5. \u4e92\u8054\u7f51"}),"\n",(0,s.jsx)(e.p,{children:"\u4eba\u2014\u4eba\u5173\u7cfb\u7684\u793e\u4ea4\u7f51\u7edc\u3001\u4eba\u2014\u5546\u54c1\u7684\u8d2d\u4e70\u5173\u7cfb\u90fd\u80fd\u6784\u6210\u56fe\u3002\u901a\u8fc7\u5206\u6790\u8fd9\u4e9b\u7f51\u7edc\u6570\u636e\uff0c\u6211\u4eec\u53ef\u4ee5\u4e3a\u7528\u6237\u63d0\u4f9b\u66f4\u4f18\u8d28\u7684\u670d\u52a1\uff0c\u5305\u62ec\u76f8\u5173\u63a8\u8350\u3001\u7528\u6237\u4fe1\u606f\u5f52\u96c6\u3001\u91cd\u8981\u7528\u6237\u8bc6\u522b\u3001\u5783\u573e\u7528\u6237\u8bc6\u522b\u7b49\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,s.jsx)(e.th,{children:(0,s.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"ID\u6620\u5c04"}),(0,s.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u5c06\u7528\u6237\u76f8\u5173\u7684\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u7528\u6237\u4e4b\u95f4\u7684\u5173\u7cfb\u7edf\u4e00\u5b58\u50a8\u5728\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\uff0c\u540c\u65f6\u8fd8\u80fd\u901a\u8fc7\u8fd9\u4e9b\u5173\u7cfb\u6765\u627e\u51fa\u7591\u4f3c\u5355\u4eba\u591a\u53f7\u548c\u591a\u4eba\u4e00\u53f7\u7684\u60c5\u51b5\uff0c\u4ece\u800c\u4e3a\u540e\u671f\u7684\u98ce\u63a7\u3001\u63a8\u8350\u7b49\u4e1a\u52a1\u63d0\u4f9b\u51b3\u7b56\u652f\u6301\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u597d\u53cb\u63a8\u8350"}),(0,s.jsx)(e.td,{children:"\u57fa\u4e8e\u5206\u6790\u793e\u4ea4\u7f51\u7edc\uff0c\u6211\u4eec\u53ef\u4ee5\u63d0\u4f9b\u201c\u597d\u53cb\u7684\u597d\u53cb\u201d\uff0c\u201c\u5171\u540c\u597d\u53cb\u201d\u7b49\u597d\u53cb\u63a8\u8350\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u5546\u54c1\u63a8\u8350"}),(0,s.jsx)(e.td,{children:"\u57fa\u4e8e\u7528\u6237\u2014\u5546\u54c1\u5173\u7cfb\u56fe\uff0c\u6211\u4eec\u53ef\u4ee5\u627e\u51fa\u5174\u8da3\u7231\u597d\u7c7b\u4f3c\u7684\u7528\u6237\uff0c\u5411\u4ed6\u4eec\u63a8\u8350\u7c7b\u4f3c\u7528\u6237\u9009\u62e9\u7684\u5176\u4ed6\u5546\u54c1\u3002"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"\u5783\u573e\u7528\u6237\u8bc6\u522b"}),(0,s.jsx)(e.td,{children:"\u4f20\u7edf\u7684\u5783\u573e\u7528\u6237\u8bc6\u522b\u4e3b\u8981\u57fa\u4e8e\u7528\u6237\u8d26\u53f7\u672c\u8eab\u7684\u4fe1\u606f\uff0c\u5982\u6ce8\u518c\u4fe1\u606f\u3001\u53d1\u5e16\u4fe1\u606f\u7b49\uff0c\u4f46\u662f\u8fd9\u4e9b\u4fe1\u606f\u90fd\u6bd4\u8f83\u5bb9\u6613\u4f2a\u9020\u3002\u800c\u57fa\u4e8e\u7f51\u7edc\u7684\u4fe1\u606f\u5219\u4e0d\u5b58\u5728\u8fd9\u4e2a\u95ee\u9898\uff1a\u5b83\u4eec\u5f88\u96be\u88ab\u4f2a\u9020\u3002\u56e0\u6b64\u57fa\u4e8e\u7f51\u7edc\u4fe1\u606f\u7684\u5783\u573e\u7528\u6237\u8bc6\u522b\u53ef\u4ee5\u66f4\u52a0\u7cbe\u51c6\u548c\u9ad8\u6548\u3002"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,d.R)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(x,{...n})}):x(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>i,x:()=>c});var s=r(6540);const d={},t=s.createContext(d);function i(n){const e=s.useContext(t);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(d):n.components||d:i(n.components),s.createElement(t.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/678c6099.c8f0892f.js b/assets/js/678c6099.c8f0892f.js
new file mode 100644
index 0000000000..2456fff21f
--- /dev/null
+++ b/assets/js/678c6099.c8f0892f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3273],{4434:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>j,frontMatter:()=>t,metadata:()=>c,toc:()=>h});var d=r(4848),s=r(8453);const t={},i="\u5e94\u7528\u573a\u666f",c={id:"introduction/scenarios",title:"\u5e94\u7528\u573a\u666f",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u56fe\u6570\u636e\u5e93\u9002\u7528\u7684\u5e94\u7528\u573a\u666f\u3002",source:"@site/../docs/zh-CN/source/2.introduction/8.scenarios.md",sourceDirName:"2.introduction",slug:"/introduction/scenarios",permalink:"/tugraph-db/zh/introduction/scenarios",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u529f\u80fd\u6982\u89c8",permalink:"/tugraph-db/zh/introduction/functionality"},next:{title:"\u540d\u8bcd\u89e3\u91ca",permalink:"/tugraph-db/zh/introduction/glossary"}},l={},h=[{value:"1. \u91d1\u878d\u9886\u57df",id:"1-\u91d1\u878d\u9886\u57df",level:2},{value:"2. \u5de5\u4e1a\u9886\u57df",id:"2-\u5de5\u4e1a\u9886\u57df",level:2},{value:"3. \u667a\u6167\u57ce\u5e02",id:"3-\u667a\u6167\u57ce\u5e02",level:2},{value:"4. \u793e\u4f1a\u6cbb\u7406",id:"4-\u793e\u4f1a\u6cbb\u7406",level:2},{value:"5. \u4e92\u8054\u7f51",id:"5-\u4e92\u8054\u7f51",level:2}];function x(n){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...n.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.header,{children:(0,d.jsx)(e.h1,{id:"\u5e94\u7528\u573a\u666f",children:"\u5e94\u7528\u573a\u666f"})}),"\n",(0,d.jsxs)(e.blockquote,{children:["\n",(0,d.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u56fe\u6570\u636e\u5e93\u9002\u7528\u7684\u5e94\u7528\u573a\u666f\u3002"}),"\n"]}),"\n",(0,d.jsx)(e.h2,{id:"1-\u91d1\u878d\u9886\u57df",children:"1. \u91d1\u878d\u9886\u57df"}),"\n",(0,d.jsx)(e.p,{children:"\u91d1\u878d\u9886\u57df\u7684\u5b9e\u4f53\u4e3b\u8981\u6d89\u53ca\u4eba\u3001\u516c\u53f8\u3001\u8d26\u6237\u3001\u4ea7\u54c1\u7b49\uff0c\u5b83\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\u5305\u62ec\u4ea4\u6613\u5173\u7cfb\u3001\u767b\u5f55\u5173\u7cfb\u3001\u80a1\u6743\u5173\u7cfb\u3001\u96c7\u4f63\u5173\u7cfb\u7b49\u3002\u8fd9\u4e9b\u5b9e\u4f53\u6784\u6210\u4e86\u4e00\u5f20\u91d1\u878d\u56fe\u6570\u636e\u7f51\u7edc\u3002\u5e94\u7528\u56fe\u6570\u636e\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u4ece\u91d1\u878d\u56fe\u6570\u636e\u7f51\u7edc\u91cc\u53d1\u6398\u51fa\u5927\u91cf\u6709\u7528\u4fe1\u606f\uff0c\u5e2e\u52a9\u6211\u4eec\u505a\u51fa\u66f4\u51c6\u786e\u7684\u91d1\u878d\u51b3\u7b56\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(e.table,{children:[(0,d.jsx)(e.thead,{children:(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,d.jsxs)(e.tbody,{children:[(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u8d37\u6b3e\u5ba1\u6838"}),(0,d.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u7533\u8bf7\u4eba\u7684\u5173\u8054\u5173\u7cfb\u3001\u4ea4\u6613\u60c5\u51b5\u7b49\u8f85\u52a9\u5224\u65ad\u7533\u8bf7\u4eba\u7684\u507f\u8fd8\u80fd\u529b\u548c\u507f\u8fd8\u610f\u613f\uff0c\u53ef\u5e94\u7528\u4e8e\u96f6\u552e\u8d37\u6b3e\u5ba1\u6838\u3001\u5c0f\u5fae\u8d37\u6b3e\u5ba1\u6838\u3001\u4f9b\u5e94\u94fe\u91d1\u878d\u7b49\u3002\u6b64\u65b9\u6cd5\u53ef\u4e0e\u4f20\u7edf\u7684\u57fa\u4e8e\u7533\u8bf7\u4eba\u81ea\u8eab\u4fe1\u606f\u7684\u5ba1\u6838\u673a\u5236\u4e92\u8865\uff0c\u5728\u4e2a\u4f53\u4fe1\u606f\u5f55\u8986\u76d6\u8f83\u4f4e\u7684\u5c0f\u5fae\u8d37\u6b3e\u5ba1\u6838\u4e2d\u5c24\u5176\u6709\u7528\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u8d37\u540e\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u501f\u6b3e\u4eba\u4ea4\u6613\u60c5\u51b5\uff0c\u8f85\u52a9\u5206\u6790\u501f\u6b3e\u4eba\u662f\u5426\u6709\u903e\u671f\u98ce\u9669\u3002\u76f8\u6bd4\u4e8e\u4f20\u7edf\u53ea\u5728\u8d37\u6b3e\u8d44\u91d1\u6d41\u5411\u7279\u5b9a\u7528\u6237\u7684\u60c5\u51b5\u4e0b\u53d1\u51fa\u8b66\u62a5\u7684\u65b9\u5f0f\u4e0d\u540c\uff0c\u8be5\u65b9\u6cd5\u53ef\u4ee5\u7ed9\u6bcf\u4e2a\u8d26\u6237\u8d4b\u4e88\u4e00\u4e2a\u98ce\u9669\u503c\uff0c\u5e76\u5728\u8d37\u6b3e\u6d41\u5411\u9ad8\u98ce\u9669\u8d26\u6237\u65f6\u7ed9\u51fa\u9884\u8b66\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u5931\u8054\u4fee\u590d"}),(0,d.jsx)(e.td,{children:"\u901a\u8fc7\u5206\u6790\u5931\u8054\u8d37\u6b3e\u4eba\u7684\u793e\u4ea4\u548c\u8d2d\u7269\u6570\u636e\uff0c\u627e\u51fa\u5176\u5b83\u8054\u7cfb\u65b9\u5f0f\u3002\u8be5\u65b9\u6cd5\u53ef\u4ee5\u5927\u5e45\u6539\u8fdb\u5931\u8054\u4fee\u590d\u7387\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u62c5\u4fdd\u73af\u68c0\u6d4b"}),(0,d.jsx)(e.td,{children:"\u53ef\u5728\u62c5\u4fdd\u5173\u7cfb\u56fe\u4e2d\u627e\u51fa\u73af\u72b6\u3001\u94fe\u5f0f\u3001\u5bb6\u65cf\u5f0f\u3001\u4ea4\u53c9\u7b49\u7279\u6b8a\u62c5\u4fdd\u7ed3\u6784\uff0c\u63ed\u9732\u6f5c\u5728\u98ce\u9669\u3002\u76f8\u6bd4\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684JOIN\u65b9\u6cd5\uff0c\u57fa\u4e8e\u56fe\u7b97\u6cd5\u7684\u65b9\u6848\u66f4\u9ad8\u6548\uff0c\u53ef\u4ee5\u68c0\u6d4b\u51fa\u4efb\u610f\u957f\u7684\u62c5\u4fdd\u73af\uff0c\u4e14\u53ef\u4ee5\u5b9e\u73b0\u66f4\u590d\u6742\u9650\u5b9a\u6761\u4ef6\u7684\u68c0\u6d4b\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u4fe1\u7528\u5361\u56e2\u4f19\u6b3a\u8bc8\u68c0\u6d4b"}),(0,d.jsx)(e.td,{children:"\u6784\u5efa\u4fe1\u7528\u5361\u7533\u8bf7\u4fe1\u606f\u4e2d\u7684\u5730\u5740\u3001\u8054\u7cfb\u65b9\u5f0f\u7b49\u5173\u7cfb\u7f51\u7edc\uff0c\u5728\u7533\u8bf7\u5173\u7cfb\u7f51\u7edc\u4e2d\u8fd0\u884c\u793e\u533a\u53d1\u73b0\u7b97\u6cd5\uff0c\u53ef\u4ee5\u68c0\u6d4b\u51fa\u7591\u4f3c\u6b3a\u8bc8\u7684\u56e2\u4f19\uff0c\u4ece\u800c\u62d2\u7edd\u6d89\u5acc\u6b3a\u8bc8\u7684\u7533\u8bf7\u4ef6\uff0c\u51cf\u5c11\u7ecf\u6d4e\u635f\u5931\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u53cd\u6d17\u94b1"}),(0,d.jsx)(e.td,{children:"\u901a\u8fc7\u4ea4\u6613\u7f51\u7edc\u548c\u4ecb\u8d28\u7f51\u7edc\uff0c\u627e\u51fa\u7591\u4f3c\u6d17\u94b1\u7684\u884c\u4e3a\u548c\u94fe\u8def\u3002\u6d17\u94b1\u662f\u4e00\u4e2a\u590d\u6742\u7684\u591a\u65b9\u53c2\u4e0e\u7684\u8fc7\u7a0b\uff0c\u901a\u8fc7\u5728\u4ea4\u6613\u548c\u793e\u4ea4\u7f51\u7edc\u4e2d\u8fdb\u884c\u56fe\u5206\u6790\uff0c\u6211\u4eec\u53ef\u4ee5\u66f4\u7cbe\u51c6\u7684\u68c0\u6d4b\u51fa\u6d17\u94b1\u884c\u4e3a\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u8f66\u9669\u53cd\u6b3a\u8bc8"}),(0,d.jsx)(e.td,{children:"\u9488\u5bf9\u6709\u4fee\u7406\u5382\u53c2\u4e0e\u7684\u9a97\u4fdd\u884c\u4e3a\uff0c\u901a\u8fc7\u5206\u6790\u88ab\u4fdd\u4eba\u3001\u6848\u4ef6\u5730\u70b9\u548c\u4fee\u7406\u5382\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u53ef\u4ee5\u66f4\u7cbe\u51c6\u7684\u8bc6\u522b\u51fa\u9a97\u4fdd\u884c\u4e3a\uff0c\u51cf\u5c11\u7ecf\u6d4e\u635f\u5931\u3002"})]})]})]}),"\n",(0,d.jsx)(e.h2,{id:"2-\u5de5\u4e1a\u9886\u57df",children:"2. \u5de5\u4e1a\u9886\u57df"}),"\n",(0,d.jsx)(e.p,{children:"\u5728\u751f\u4ea7\u548c\u5236\u9020\u8fc7\u7a0b\u4e2d\u4f1a\u4ea7\u751f\u5927\u91cf\u5f02\u6784\u6570\u636e\uff0c\u5982\u4f55\u6709\u6548\u7684\u7ec4\u7ec7\u548c\u7ba1\u7406\u8fd9\u4e9b\u6570\u636e\u662f\u5de5\u4e1a\u5927\u6570\u636e\u4e2d\u6700\u91cd\u8981\u7684\u95ee\u9898\u4e4b\u4e00\u3002\u8fd9\u4e9b\u6570\u636e\u5305\u62ec\u8bbe\u8ba1\u6587\u6863\u3001\u8bbe\u5907\u6570\u636e\u3001\u4eff\u771f\u65b9\u6848\u548c\u7ed3\u679c\u3001\u5b9e\u9a8c\u7ed3\u679c\u3001\u7ecf\u9a8c\u6587\u6863\u7b49\uff0c\u5173\u7cfb\u9519\u7efc\u590d\u6742\u3002\u4f20\u7edf\u7684\u6570\u636e\u7ba1\u7406\u7cfb\u7edf\u53ea\u80fd\u7d2f\u79ef\u6570\u636e\uff0c\u800c\u67e5\u627e\u76f8\u5173\u6750\u6599\u5219\u5f80\u5f80\u529b\u4e0d\u4ece\u5fc3\u3002\u4f7f\u7528\u56fe\u6a21\u578b\uff0c\u5c06\u8fd9\u4e9b\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u7ec4\u7ec7\u6210\u4e00\u5f20\u7f51\u7edc\uff0c\u5c31\u53ef\u4ee5\u65b9\u4fbf\u5730\u6d4f\u89c8\u548c\u67e5\u627e\u6570\u636e\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(e.table,{children:[(0,d.jsx)(e.thead,{children:(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,d.jsxs)(e.tbody,{children:[(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u4f9b\u5e94\u94fe\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u4f9b\u5e94\u94fe\u6570\u636e\u4e3b\u8981\u5173\u5fc3\u4ea7\u54c1\u2014\u90e8\u4ef6\u2014\u96f6\u4ef6\u7684\u5bf9\u5e94\u5173\u7cfb\u3001\u96f6\u4ef6\u4e0e\u4f9b\u5e94\u5546\u7684\u5bf9\u5e94\u5173\u7cfb\u3001\u96f6\u4ef6\u4e2d\u7684\u654f\u611f\u6210\u5206\u7b49\u3002\u76f8\u6bd4\u4e8e\u4f20\u7edf\u7684\u7269\u6599\u7ba1\u7406\uff08BOM\uff09\u7cfb\u7edf\uff0c\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u7684\u65b9\u6848\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u7ef4\u62a4\u591a\u4e2a\u90e8\u4ef6\u5c42\u6b21\u3001\u591a\u4e2a\u4f9b\u5e94\u5546\u7ea7\u522b\u7684\u590d\u6742\u7f51\u7edc\uff0c\u4ece\u800c\u4e3a\u7a7f\u900f\u5f0f\u4f9b\u5e94\u94fe\u63d0\u4f9b\u57fa\u7840\u652f\u6301\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u6587\u6863\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u5c06\u4e0d\u540c\u7c7b\u578b\u7684\u6587\u6863\u6309\u4e0d\u540c\u5173\u7cfb\u6709\u673a\u5730\u7ec4\u7ec7\u5728\u4e00\u8d77\u3002\u4f8b\u5982\u5c06\u90e8\u4ef6\u8bbe\u8ba1\u6587\u6863\u3001\u90e8\u4ef6\u2014\u96f6\u4ef6\u5173\u7cfb\u3001\u90e8\u4ef6\u6d4b\u8bd5\u6587\u6863\u3001\u76f8\u5173\u7ecf\u9a8c\u6587\u6863\u7b49\u7ec4\u7ec7\u8d77\u6765\uff0c\u5728\u9700\u8981\u67e5\u627e\u65f6\u5c31\u53ef\u4ee5\u65b9\u4fbf\u83b7\u53d6\u8be5\u90e8\u4ef6\u7684\u6240\u6709\u76f8\u5173\u4fe1\u606f\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u7814\u53d1\u8fc7\u7a0b\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u4ea7\u54c1\u7814\u53d1\u548c\u9a8c\u8bc1\u8fc7\u7a0b\u4e2d\u9700\u8981\u8fdb\u884c\u5927\u91cf\u4eff\u771f\u3001\u8bd5\u9a8c\u548c\u6d4b\u8bd5\uff0c\u6bcf\u4e00\u4e2a\u6d4b\u8bd5\u6d41\u7a0b\u90fd\u4f1a\u6d89\u53ca\u5927\u91cf\u4e0d\u540c\u7684\u6b65\u9aa4\u3002\u6b65\u9aa4\u4e4b\u95f4\u7684\u8fde\u63a5\u5173\u7cfb\u3001\u6bcf\u4e2a\u6b65\u9aa4\u4e2d\u4f7f\u7528\u7684\u6570\u636e\u7248\u672c\u3001\u7b97\u6cd5\u7248\u672c\u7b49\u5c31\u6784\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u5173\u7cfb\u7f51\u7edc\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u66f4\u597d\u7ba1\u7406\u8fd9\u4e2a\u5173\u7cfb\u7f51\u7edc\uff0c\u4ece\u800c\u4e3a\u7814\u53d1\u8fc7\u7a0b\u4e2d\u7684\u6570\u636e\u590d\u7528\u3001\u6d41\u7a0b\u6539\u8fdb\u63d0\u4f9b\u826f\u597d\u57fa\u7840\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u5236\u9020\u4e1a\u9700\u8981\u7ba1\u7406\u5927\u91cf\u8bbe\u5907\uff0c\u8bbe\u5907\u4e4b\u95f4\u53c8\u4e92\u76f8\u5173\u8054\uff08\u4f9b\u7535\u5173\u7cfb\u3001\u4f9b\u6599\u5173\u7cfb\u3001\u7a7a\u95f4\u5173\u7cfb\uff09\uff0c\u4ece\u800c\u5f62\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u7f51\u7edc\u3002\u4f20\u7edf\u7684\u6570\u636e\u5e93\u5f88\u96be\u4f53\u73b0\u8fd9\u79cd\u590d\u6742\u5173\u7cfb\u3002\u800c\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u5219\u53ef\u4ee5\u4fbf\u6377\u8868\u793a\u8fd9\u4e9b\u5173\u7cfb\uff0c\u4ece\u800c\u66f4\u597d\u7684\u7ba1\u7406\u8bbe\u5907\u4fe1\u606f\u3002"})]})]})]}),"\n",(0,d.jsx)(e.h2,{id:"3-\u667a\u6167\u57ce\u5e02",children:"3. \u667a\u6167\u57ce\u5e02"}),"\n",(0,d.jsx)(e.p,{children:"\u968f\u7740\u79d1\u6280\u7684\u53d1\u5c55\uff0c\u57ce\u5e02\u7684\u667a\u80fd\u5316\u7ba1\u7406\u5df2\u6210\u4e3a\u4e00\u4e2a\u5927\u8d8b\u52bf\u3002\u667a\u80fd\u5316\u7ba1\u7406\u9700\u8981\u5efa\u7acb\u5728\u826f\u597d\u7684\u4fe1\u606f\u7ba1\u7406\u5e73\u53f0\u4e4b\u4e0a\uff0c\u56e0\u6b64\u9700\u8981\u5f3a\u5927\u7684\u7cfb\u7edf\u8f6f\u4ef6\u505a\u652f\u6491\u3002\u5728\u667a\u80fd\u5316\u57ce\u5e02\u7ba1\u7406\u7cfb\u7edf\u4e2d\uff0c\u667a\u80fd\u5316\u51b3\u7b56\u7cfb\u7edf\u9700\u8981\u57fa\u4e8e\u5927\u91cf\u4e0d\u540c\u4fe1\u606f\u505a\u51fa\u51b3\u7b56\uff0c\u8fd9\u4e9b\u4fe1\u606f\u5305\u62ec\u5404\u79cd\u62d3\u6251\u4fe1\u606f\uff08\u9053\u8def\u3001\u7ba1\u7ebf\uff09\uff0c\u4f9b\u6c42\u4fe1\u606f\uff08\u7535\u529b\u8f93\u9001\u3001\u996e\u7528\u6c34\u4f9b\u5e94\u3001\u6c61\u6c34\u6392\u653e\uff09\uff0c\u73af\u5883\u4fe1\u606f\uff08\u6e29\u5ea6\u3001\u6e7f\u5ea6\u3001\u96e8\u91cf\uff09\u7b49\u3002\u8981\u5c06\u8fd9\u4e9b\u590d\u6742\u7684\u5f02\u6784\u6570\u636e\u6709\u673a\u7ba1\u7406\u8d77\u6765\uff0c\u5e76\u57fa\u4e8e\u5b83\u4eec\u505a\u51fa\u51b3\u7b56\uff0c\u5c31\u9700\u8981\u4e00\u4e2a\u6210\u719f\u7684\u7cfb\u7edf\u3002\u4f20\u7edf\u7684\u6570\u636e\u7ba1\u7406\u7cfb\u7edf\u57fa\u4e8e\u5173\u7cfb\u6570\u636e\u6a21\u578b\uff0c\u5e76\u4e0d\u9002\u5408\u7ba1\u7406\u8fd9\u79cd\u590d\u6742\u5f02\u6784\u6570\u636e\u3002\u800c\u4f7f\u7528\u56fe\u6a21\u578b\u5c31\u53ef\u4ee5\u5f88\u597d\u7684\u89e3\u51b3\u8fd9\u4e00\u95ee\u9898\u3002\u5982\u679c\u6211\u4eec\u5c06\u8fd9\u4e9b\u4e0d\u540c\u7684\u6570\u636e\u5229\u7528\u56fe\u6570\u636e\u5e93\u8fdb\u884c\u7ba1\u7406\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u5f88\u591a\u590d\u6742\u7684\u667a\u80fd\u7ba1\u7406\u573a\u666f\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(e.table,{children:[(0,d.jsx)(e.thead,{children:(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,d.jsxs)(e.tbody,{children:[(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u667a\u80fd\u4ea4\u901a"}),(0,d.jsx)(e.td,{children:"\u57fa\u4e8e\u9053\u8def\u62d3\u6251\u3001\u9053\u8def\u5bb9\u91cf\u53ca\u5f53\u524d\u6d41\u91cf\uff0c\u53ef\u4ee5\u8fdb\u884c\u667a\u80fd\u4fe1\u53f7\u706f\u8c03\u5ea6\uff0c\u4ece\u800c\u63d0\u9ad8\u901a\u884c\u6548\u7387\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u667a\u80fd\u6392\u6c34"}),(0,d.jsx)(e.td,{children:"\u57fa\u4e8e\u6392\u6c34\u7cfb\u7edf\u4fe1\u606f\u53ca\u5f53\u524d\u96e8\u91cf\uff0c\u53ef\u4ee5\u5bf9\u6392\u6c34\u7cfb\u7edf\u8fdb\u884c\u8c03\u5ea6\uff0c\u4ece\u800c\u51cf\u5c11\u5185\u6d9d\u7684\u4ea7\u751f\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u7ba1\u7ebf\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u5c06\u7ba1\u7ebf\u7684\u751f\u4ea7\u3001\u5b89\u88c5\u3001\u62d3\u6251\u4fe1\u606f\uff0c\u4ee5\u53ca\u5386\u53f2\u72b6\u6001\u4fe1\u606f\u6709\u673a\u7ec4\u7ec7\u8d77\u6765\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u5bf9\u7ba1\u7ebf\u8fdb\u884c\u5168\u5468\u671f\u7ba1\u7406\uff0c\u5305\u62ec\u6545\u969c\u6392\u67e5\u3001\u5bff\u547d\u8bc4\u4f30\u7b49\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u4eba\u7fa4\u758f\u6563"}),(0,d.jsx)(e.td,{children:"\u5927\u91cf\u4eba\u7fa4\u9700\u8981\u758f\u6563\u65f6\uff0c\u9700\u8981\u8003\u8651\u516c\u4ea4\u3001\u5730\u94c1\u3001\u51fa\u79df\u8f66\u3001\u5171\u4eab\u5355\u8f66\u7b49\u591a\u79cd\u4ea4\u901a\u65b9\u5f0f\uff0c\u540c\u65f6\u8fd8\u9700\u8981\u8003\u8651\u9053\u8def\u627f\u8f7d\u91cf\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u5c06\u8fd9\u4e9b\u4fe1\u606f\u6709\u673a\u6574\u5408\u5728\u4e00\u8d77\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u7684\u505a\u51fa\u51b3\u7b56\uff0c\u4ee5\u4fbf\u4e3a\u5927\u578b\u516c\u5171\u6d3b\u52a8\u63d0\u4f9b\u66f4\u597d\u7684\u652f\u6301\u3002"})]})]})]}),"\n",(0,d.jsx)(e.h2,{id:"4-\u793e\u4f1a\u6cbb\u7406",children:"4. \u793e\u4f1a\u6cbb\u7406"}),"\n",(0,d.jsx)(e.p,{children:"\u793e\u4f1a\u6cbb\u7406\u5305\u62ec\u516c\u5171\u5b89\u5168\u3001\u6cd5\u5f8b\u4e8b\u52a1\u3001\u8206\u8bba\u3001\u7f51\u7edc\u5b89\u5168\u7b49\u591a\u65b9\u9762\u3002\u793e\u4f1a\u6cbb\u7406\u662f\u4e00\u4e2a\u7efc\u5408\u6027\u7684\u3001\u591a\u7cfb\u7edf\u8054\u52a8\u95ee\u9898\u3002\u5b83\u9700\u8981\u7efc\u5408\u5927\u91cf\u6570\u636e\u3001\u5168\u5c40\u8003\u91cf\u624d\u80fd\u505a\u51fa\u66f4\u597d\u7684\u51b3\u7b56\u3002\u5728\u8fd9\u79cd\u591a\u7ef4\u5ea6\u590d\u6742\u6570\u636e\u95ee\u9898\u4e0a\uff0c\u56fe\u6570\u636e\u6a21\u578b\u53ef\u4ee5\u63d0\u4f9b\u66f4\u597d\u7684\u9002\u5e94\u6027\uff0c\u4ece\u800c\u4e3a\u667a\u80fd\u5316\u7684\u793e\u4f1a\u6cbb\u7406\u51b3\u7b56\u5e73\u53f0\u63d0\u4f9b\u575a\u5b9e\u7684\u57fa\u7840\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(e.table,{children:[(0,d.jsx)(e.thead,{children:(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,d.jsxs)(e.tbody,{children:[(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u72af\u7f6a\u56e2\u4f19\u53d1\u73b0"}),(0,d.jsx)(e.td,{children:"\u5408\u8c0b\u56e2\u4f19\u5fc5\u7136\u4f1a\u901a\u8fc7\u67d0\u4e9b\u65b9\u5f0f\u4ea7\u751f\u8054\u7cfb\uff0c\u8fd9\u79cd\u8054\u7cfb\u5305\u62ec\u9762\u8c08\uff08\u51fa\u73b0\u5728\u540c\u4e00\u5730\u70b9\uff09\u3001\u7535\u8bdd\u8054\u7cfb\u3001\u6216\u8005\u4e92\u8054\u7f51\u8054\u7cfb\uff0c\u4ed6\u4eec\u8fd8\u53ef\u80fd\u6709\u7ecf\u6d4e\u5f80\u6765\u3002\u5982\u679c\u6211\u4eec\u5c06\u8fd9\u4e9b\u6570\u636e\u7edf\u4e00\u5b58\u653e\u5728\u4e00\u5f20\u56fe\u4e2d\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u901a\u8fc7\u56fe\u5206\u6790\u7b97\u6cd5\u67e5\u627e\u51fa\u8054\u7cfb\u7d27\u5bc6\u7684\u7fa4\u4f53\uff0c\u4ece\u800c\u53d1\u73b0\u548c\u8bc6\u522b\u6574\u4e2a\u72af\u7f6a\u56e2\u4f19\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u6d89\u4f17\u6848\u4ef6\u8c03\u67e5"}),(0,d.jsx)(e.td,{children:"\u6d89\u4f17\u6848\u4ef6\uff0c\u7279\u522b\u662f\u6d89\u4f17\u7ecf\u6d4e\u6848\u4ef6\u5f80\u5f80\u6d89\u53ca\u5927\u91cf\u7684\u4eba\u5458\u548c\u8981\u7d20\uff08\u8d27\u5e01\u3001\u5730\u70b9\u3001\u4e8b\u4ef6\u7b49\uff09\u3002\u5982\u4f55\u6709\u6548\u7684\u7ec4\u7ec7\u8fd9\u4e9b\u8d44\u6599\uff0c\u4ece\u800c\u4e3a\u529e\u6848\u63d0\u4f9b\u8bc1\u636e\u652f\u6301\u662f\u6d89\u4f17\u6848\u4ef6\u8c03\u67e5\u7684\u4e00\u4e2a\u96be\u70b9\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u6765\u5b58\u50a8\u548c\u5206\u6790\u8fd9\u4e9b\u8d44\u6599\uff0c\u53ef\u4ee5\u8ba9\u6211\u4eec\u5feb\u901f\u5b9a\u4f4d\u8d44\u6599\u3001\u5206\u6790\u4eba\u5458\u6784\u6210\u3001\u4e3a\u6848\u4ef6\u8c03\u67e5\u63d0\u4f9b\u66f4\u597d\u7684\u6280\u672f\u652f\u6301\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u8fdd\u6cd5\u7f51\u7ad9\u7504\u522b"}),(0,d.jsx)(e.td,{children:"\u8fdd\u6cd5\u7f51\u7ad9\u3001\u9493\u9c7c\u7f51\u7ad9\u3001\u9ec4\u8272\u7f51\u7ad9\u7b49\u5f80\u5f80\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u57df\u540d\u548cIP\u6765\u907f\u514d\u88ab\u5c01\u6740\u3002\u57fa\u4e8e\u9ed1\u540d\u5355\u7684\u8fc7\u6ee4\u65b9\u6cd5\u53ea\u80fd\u5c01\u7981\u5df2\u77e5\u7684\u8fdd\u6cd5\u7f51\u7ad9\uff0c\u65e0\u6cd5\u5bf9\u65b0\u51fa\u73b0\u7684\u57df\u540d\u548cIP\u8fdb\u884c\u6709\u6548\u7504\u522b\u3002\u57fa\u4e8eIP\u2014\u57df\u540d\u7f51\u7edc\u7684\u6620\u5c04\u5173\u7cfb\uff0c\u6211\u4eec\u53ef\u4ee5\u5efa\u7acb\u4e00\u5f20\u56fe\uff0c\u7136\u540e\u901a\u8fc7\u56fe\u8ba1\u7b97\u5efa\u7acb\u8d77\u57df\u540d\u548cIP\u7684\u201c\u53ef\u4fe1\u5ea6\u201d\u6a21\u578b\uff0c\u5229\u7528\u8be5\u6a21\u578b\u6765\u5224\u65ad\u7f51\u7ad9\u662f\u5426\u5c5e\u4e8e\u8fdd\u6cd5\u7f51\u7ad9\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u6cd5\u9662\u5377\u5b97\u7ba1\u7406"}),(0,d.jsx)(e.td,{children:"\u5377\u5b97\u5f80\u5f80\u9519\u7efc\u590d\u6742\uff0c\u4e0d\u540c\u7684\u6848\u4ef6\u4e4b\u95f4\u53ef\u80fd\u901a\u8fc7\u5f53\u4e8b\u4eba\u4ea7\u751f\u8054\u7cfb\uff0c\u4e5f\u53ef\u80fd\u901a\u8fc7\u6848\u53d1\u5730\u3001\u6848\u4ef6\u6027\u8d28\u3001\u5ba1\u5224\u4eba\u5458\u7b49\u4ea7\u751f\u8054\u7cfb\u3002\u8fd9\u4e9b\u8054\u7cfb\u6784\u6210\u4e86\u4e00\u5f20\u590d\u6742\u7684\u7f51\u7edc\u3002\u4f7f\u7528\u56fe\u6570\u636e\u5e93\u6211\u4eec\u53ef\u4ee5\u66f4\u65b9\u4fbf\u7684\u7ba1\u7406\u8fd9\u4e9b\u590d\u6742\u5173\u7cfb\uff0c\u63d0\u9ad8\u529e\u6848\u548c\u67e5\u8be2\u6548\u7387\u3002"})]})]})]}),"\n",(0,d.jsx)(e.h2,{id:"5-\u4e92\u8054\u7f51",children:"5. \u4e92\u8054\u7f51"}),"\n",(0,d.jsx)(e.p,{children:"\u4eba\u2014\u4eba\u5173\u7cfb\u7684\u793e\u4ea4\u7f51\u7edc\u3001\u4eba\u2014\u5546\u54c1\u7684\u8d2d\u4e70\u5173\u7cfb\u90fd\u80fd\u6784\u6210\u56fe\u3002\u901a\u8fc7\u5206\u6790\u8fd9\u4e9b\u7f51\u7edc\u6570\u636e\uff0c\u6211\u4eec\u53ef\u4ee5\u4e3a\u7528\u6237\u63d0\u4f9b\u66f4\u4f18\u8d28\u7684\u670d\u52a1\uff0c\u5305\u62ec\u76f8\u5173\u63a8\u8350\u3001\u7528\u6237\u4fe1\u606f\u5f52\u96c6\u3001\u91cd\u8981\u7528\u6237\u8bc6\u522b\u3001\u5783\u573e\u7528\u6237\u8bc6\u522b\u7b49\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(e.table,{children:[(0,d.jsx)(e.thead,{children:(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u573a\u666f"})}),(0,d.jsx)(e.th,{children:(0,d.jsx)(e.strong,{children:"\u63cf\u8ff0"})})]})}),(0,d.jsxs)(e.tbody,{children:[(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"ID\u6620\u5c04"}),(0,d.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u53ef\u4ee5\u5c06\u7528\u6237\u76f8\u5173\u7684\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u7528\u6237\u4e4b\u95f4\u7684\u5173\u7cfb\u7edf\u4e00\u5b58\u50a8\u5728\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\uff0c\u540c\u65f6\u8fd8\u80fd\u901a\u8fc7\u8fd9\u4e9b\u5173\u7cfb\u6765\u627e\u51fa\u7591\u4f3c\u5355\u4eba\u591a\u53f7\u548c\u591a\u4eba\u4e00\u53f7\u7684\u60c5\u51b5\uff0c\u4ece\u800c\u4e3a\u540e\u671f\u7684\u98ce\u63a7\u3001\u63a8\u8350\u7b49\u4e1a\u52a1\u63d0\u4f9b\u51b3\u7b56\u652f\u6301\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u597d\u53cb\u63a8\u8350"}),(0,d.jsx)(e.td,{children:"\u57fa\u4e8e\u5206\u6790\u793e\u4ea4\u7f51\u7edc\uff0c\u6211\u4eec\u53ef\u4ee5\u63d0\u4f9b\u201c\u597d\u53cb\u7684\u597d\u53cb\u201d\uff0c\u201c\u5171\u540c\u597d\u53cb\u201d\u7b49\u597d\u53cb\u63a8\u8350\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u5546\u54c1\u63a8\u8350"}),(0,d.jsx)(e.td,{children:"\u57fa\u4e8e\u7528\u6237\u2014\u5546\u54c1\u5173\u7cfb\u56fe\uff0c\u6211\u4eec\u53ef\u4ee5\u627e\u51fa\u5174\u8da3\u7231\u597d\u7c7b\u4f3c\u7684\u7528\u6237\uff0c\u5411\u4ed6\u4eec\u63a8\u8350\u7c7b\u4f3c\u7528\u6237\u9009\u62e9\u7684\u5176\u4ed6\u5546\u54c1\u3002"})]}),(0,d.jsxs)(e.tr,{children:[(0,d.jsx)(e.td,{children:"\u5783\u573e\u7528\u6237\u8bc6\u522b"}),(0,d.jsx)(e.td,{children:"\u4f20\u7edf\u7684\u5783\u573e\u7528\u6237\u8bc6\u522b\u4e3b\u8981\u57fa\u4e8e\u7528\u6237\u8d26\u53f7\u672c\u8eab\u7684\u4fe1\u606f\uff0c\u5982\u6ce8\u518c\u4fe1\u606f\u3001\u53d1\u5e16\u4fe1\u606f\u7b49\uff0c\u4f46\u662f\u8fd9\u4e9b\u4fe1\u606f\u90fd\u6bd4\u8f83\u5bb9\u6613\u4f2a\u9020\u3002\u800c\u57fa\u4e8e\u7f51\u7edc\u7684\u4fe1\u606f\u5219\u4e0d\u5b58\u5728\u8fd9\u4e2a\u95ee\u9898\uff1a\u5b83\u4eec\u5f88\u96be\u88ab\u4f2a\u9020\u3002\u56e0\u6b64\u57fa\u4e8e\u7f51\u7edc\u4fe1\u606f\u7684\u5783\u573e\u7528\u6237\u8bc6\u522b\u53ef\u4ee5\u66f4\u52a0\u7cbe\u51c6\u548c\u9ad8\u6548\u3002"})]})]})]})]})}function j(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,d.jsx)(e,{...n,children:(0,d.jsx)(x,{...n})}):x(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>i,x:()=>c});var d=r(6540);const s={},t=d.createContext(s);function i(n){const e=d.useContext(t);return d.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:i(n.components),d.createElement(t.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6cc43114.cf529d8d.js b/assets/js/6cc43114.cf529d8d.js
deleted file mode 100644
index 83748a9a76..0000000000
--- a/assets/js/6cc43114.cf529d8d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8992],{3520:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=i(4848),t=i(8453);const o={},s="Environment Mode",l={id:"en-US/source/installation&running/environment-mode",title:"Environment Mode",description:"This document primarily introduces the three types of environments involved in TuGraph.",source:"@site/../docs/en-US/source/5.installation&running/2.environment-mode.md",sourceDirName:"en-US/source/5.installation&running",slug:"/en-US/source/installation&running/environment-mode",permalink:"/tugraph-db/en-US/source/installation&running/environment-mode",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Environment",permalink:"/tugraph-db/en-US/source/installation&running/environment"},next:{title:"Docker Deployment",permalink:"/tugraph-db/en-US/source/installation&running/docker-deployment"}},a={},c=[{value:"1.Classification",id:"1classification",level:2},{value:"2.System Library",id:"2system-library",level:2}];function d(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"environment-mode",children:"Environment Mode"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"This document primarily introduces the three types of environments involved in TuGraph."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"1classification",children:"1.Classification"}),"\n",(0,r.jsx)(n.p,{children:"Based on the different functionalities supported by the environments, they can be categorized into the following:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"The compilation environment has all dependent libraries for TuGraph compilation, including all dependencies of the running environment, and can compile TuGraph source code, but does not include precompiled TuGraph executable files and library files for developers to compile source code."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Running environment, with GCC/Java/Python environment, can run all functions of TuGraph, and can host full-text indexing, java client, c++ source code uploaded as plugin, and complete functions of python plugin, built-in TuGraph precompiled executable file and library files for customers to install and use directly without compiling source code."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Simplified operating environment, which is approximately equivalent to a bare system plus precompiled TuGraph. It can only run the basic functions of TuGraph. There is no C++ plugin to compile and run, only so upload, no full-text index, and no python plugin. It is for quick setup and trial use.\nAfter compiling TuGraph, all the required dependencies are packaged together in the form of .a files, eliminating the need for unnecessary additional dependencies during runtime. However, since TuGraph supports stored procedures, which involve compiling C++ code on the server, the required compilers still need to be present in the environment."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"2system-library",children:"2.System Library"}),"\n",(0,r.jsx)(n.p,{children:"For the three types of environments, the required system libraries, excluding the TuGraph runtime package, are as follows:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Compilation Environment: It includes GCC, Python, Java compilers, as well as libraries such as ANTLR4 and Pybind11. Please refer to the tugraph-compile-*-Dockerfile for more details."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Runtime Environment: The main dependencies introduced by stored procedures include GCC, Boost, CMake, and others. Please refer to the tugraph-runtime-*-Dockerfile for more details."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Mini-Runtime Environment: There are no additional system library dependencies. Please refer to the tugraph-mini-runtime-*-Dockerfile for more details."}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>l});var r=i(6540);const t={},o=r.createContext(t);function s(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6cc43114.ef4d9c30.js b/assets/js/6cc43114.ef4d9c30.js
new file mode 100644
index 0000000000..2b37bfc26e
--- /dev/null
+++ b/assets/js/6cc43114.ef4d9c30.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8992],{1690:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var t=i(4848),r=i(8453);const o={},s="Environment Mode",l={id:"installation&running/environment-mode",title:"Environment Mode",description:"This document primarily introduces the three types of environments involved in TuGraph.",source:"@site/../docs/en-US/source/5.installation&running/2.environment-mode.md",sourceDirName:"5.installation&running",slug:"/installation&running/environment-mode",permalink:"/tugraph-db/en/installation&running/environment-mode",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Environment",permalink:"/tugraph-db/en/installation&running/environment"},next:{title:"Docker Deployment",permalink:"/tugraph-db/en/installation&running/docker-deployment"}},a={},d=[{value:"1.Classification",id:"1classification",level:2},{value:"2.System Library",id:"2system-library",level:2}];function c(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"environment-mode",children:"Environment Mode"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document primarily introduces the three types of environments involved in TuGraph."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1classification",children:"1.Classification"}),"\n",(0,t.jsx)(n.p,{children:"Based on the different functionalities supported by the environments, they can be categorized into the following:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"The compilation environment has all dependent libraries for TuGraph compilation, including all dependencies of the running environment, and can compile TuGraph source code, but does not include precompiled TuGraph executable files and library files for developers to compile source code."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Running environment, with GCC/Java/Python environment, can run all functions of TuGraph, and can host full-text indexing, java client, c++ source code uploaded as plugin, and complete functions of python plugin, built-in TuGraph precompiled executable file and library files for customers to install and use directly without compiling source code."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Simplified operating environment, which is approximately equivalent to a bare system plus precompiled TuGraph. It can only run the basic functions of TuGraph. There is no C++ plugin to compile and run, only so upload, no full-text index, and no python plugin. It is for quick setup and trial use.\nAfter compiling TuGraph, all the required dependencies are packaged together in the form of .a files, eliminating the need for unnecessary additional dependencies during runtime. However, since TuGraph supports stored procedures, which involve compiling C++ code on the server, the required compilers still need to be present in the environment."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2system-library",children:"2.System Library"}),"\n",(0,t.jsx)(n.p,{children:"For the three types of environments, the required system libraries, excluding the TuGraph runtime package, are as follows:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Compilation Environment: It includes GCC, Python, Java compilers, as well as libraries such as ANTLR4 and Pybind11. Please refer to the tugraph-compile-*-Dockerfile for more details."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Runtime Environment: The main dependencies introduced by stored procedures include GCC, Boost, CMake, and others. Please refer to the tugraph-runtime-*-Dockerfile for more details."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Mini-Runtime Environment: There are no additional system library dependencies. Please refer to the tugraph-mini-runtime-*-Dockerfile for more details."}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>l});var t=i(6540);const r={},o=t.createContext(r);function s(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6d16fd3b.414cc1f9.js b/assets/js/6d16fd3b.414cc1f9.js
new file mode 100644
index 0000000000..ff99d2d166
--- /dev/null
+++ b/assets/js/6d16fd3b.414cc1f9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2301],{553:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>h,contentTitle:()=>l,default:()=>o,frontMatter:()=>d,metadata:()=>s,toc:()=>c});var r=t(4848),i=t(8453);const d={},l="\u73af\u5883\u51c6\u5907",s={id:"installation&running/environment",title:"\u73af\u5883\u51c6\u5907",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u90e8\u7f72\u65f6\u6240\u9700\u7684\u8f6f\u786c\u4ef6\u73af\u5883\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/1.environment.md",sourceDirName:"5.installation&running",slug:"/installation&running/environment",permalink:"/tugraph-db/zh/installation&running/environment",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09",permalink:"/tugraph-db/zh/user-guide/tugraph-browser-legacy"},next:{title:"\u73af\u5883\u5206\u7c7b",permalink:"/tugraph-db/zh/installation&running/environment-mode"}},h={},c=[{value:"1.\u786c\u4ef6\u73af\u5883",id:"1\u786c\u4ef6\u73af\u5883",level:2},{value:"1.1. CPU",id:"11-cpu",level:3},{value:"1.2. \u5185\u5b58",id:"12-\u5185\u5b58",level:3},{value:"1.3. \u5916\u5b58",id:"13-\u5916\u5b58",level:3},{value:"2.\u8f6f\u4ef6\u73af\u5883",id:"2\u8f6f\u4ef6\u73af\u5883",level:2},{value:"2.1. \u64cd\u4f5c\u7cfb\u7edf",id:"21-\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"2.2. \u7cfb\u7edf\u5e93",id:"22-\u7cfb\u7edf\u5e93",level:3},{value:"3.\u5178\u578b\u914d\u7f6e\u63a8\u8350",id:"3\u5178\u578b\u914d\u7f6e\u63a8\u8350",level:2}];function a(n){const e={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u73af\u5883\u51c6\u5907",children:"\u73af\u5883\u51c6\u5907"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u90e8\u7f72\u65f6\u6240\u9700\u7684\u8f6f\u786c\u4ef6\u73af\u5883\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u786c\u4ef6\u73af\u5883",children:"1.\u786c\u4ef6\u73af\u5883"}),"\n",(0,r.jsx)(e.h3,{id:"11-cpu",children:"1.1. CPU"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u65e0\u8bba\u662f\u7269\u7406\u3001\u865a\u62df\u8fd8\u662f\u5bb9\u5668\u5316\u73af\u5883\uff0c\u5747\u652f\u6301 X86_64 \u548c ARM64 \u67b6\u6784\u7684\u786c\u4ef6\u5e73\u53f0\uff0c\u6d4b\u8bd5\u8ba4\u8bc1\u8fc7\u7684\u786c\u4ef6\u5e73\u53f0\u5305\u62ec Intel\u3001AMD\u3001Kunpeng\u3001Hygon\u3001\u98de\u817e\u7b49\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"12-\u5185\u5b58",children:"1.2. \u5185\u5b58"}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u5efa\u8bae\u5185\u5b58\u5bb9\u91cf\u4e0d\u5c0f\u4e8e\u5b9e\u9645\u7684\u6570\u636e\u5927\u5c0f\u3002\u5982\u679c\u6700\u6c42\u6781\u81f4\u7684\u6027\u80fd\uff0c\u628a\u6240\u6709\u7684\u6570\u636e\u7f13\u5b58\u5230\u5185\u5b58\u91cc\u662f\u6700\u7406\u60f3\u7684\u3002\u5728\u6570\u636e\u8bbf\u95ee\u7684\u5c40\u90e8\u6027\u4e0a\uff0c\u56fe\u6570\u636e\u5e93\u7684\u5c40\u90e8\u6027\u8981\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5dee\uff0c\u56e0\u6b64\u5982\u679c\u6570\u636e\u5728\u5185\u5b58\u4e2d\u653e\u4e0d\u4e0b\uff0c\u901a\u5e38\u4f1a\u9891\u7e41\u5730\u6362\u5165\u6362\u51fa\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"13-\u5916\u5b58",children:"1.3. \u5916\u5b58"}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u7528\u6237\u4f7f\u7528 NVMe SSD \u4f5c\u4e3a\u5916\u5b58\uff0c\u6570\u636e\u5e93\u6709\u5927\u91cf\u7684\u5199\u64cd\u4f5c\u9700\u8981\u540c\u6b65\u7684\u5916\u5b58\uff0c\u901a\u5e38\u4e3a\u968f\u673a\u5199\uff0c\u5916\u5b58\u7684\u8bfb\u5199\u6027\u80fd\u5f88\u5bb9\u6613\u6210\u4e3a\u6574\u4f53\u6570\u636e\u5e93\u8fd0\u884c\u7684\u6027\u80fd\u74f6\u9888\u3002\u56e0\u6b64\uff0c\u9ad8IOPS\u3001\u4f4e\u5ef6\u8fdf\u7684 NVMe SSD \u662f\u6700\u4f18\u7684\u9009\u62e9\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5982\u679c\u73b0\u5b9e\u6761\u4ef6\u53ea\u80fd\u4f7f\u7528 SATA\u63a5\u53e3\u7684SSD\uff0c\u6216\u8005\u4e91\u4e0a\u7684\u7f51\u76d8\uff0c\u6027\u80fd\u867d\u7136\u4f1a\u53d7\u5230\u5f71\u54cd\uff0c\u4f46 TuGraph \u4f9d\u7136\u80fd\u6b63\u786e\u7684\u8fd0\u884c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5916\u5b58\u5927\u5c0f\u5efa\u8bae\u4e3a\u5b9e\u9645\u6570\u636e\u5927\u5c0f\u76844\u500d\uff0c\u6bd4\u5982\u6570\u636e\u4e3a1TB\uff0c\u5219\u51c6\u59074TB\u7684\u786c\u76d8\u4f1a\u6bd4\u8f83\u7a33\u59a5\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"2\u8f6f\u4ef6\u73af\u5883",children:"2.\u8f6f\u4ef6\u73af\u5883"}),"\n",(0,r.jsx)(e.h3,{id:"21-\u64cd\u4f5c\u7cfb\u7edf",children:"2.1. \u64cd\u4f5c\u7cfb\u7edf"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u80fd\u591f\u517c\u5bb9\u4e3b\u6d41\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5305\u62ecUbuntu\u3001CentOS\u3001SUSE\u3001\u94f6\u6cb3\u9e92\u9e9f\u3001 \u4e2d\u6807\u9e92\u9e9f\u3001UOS\u7b49\uff0c\u5747\u901a\u8fc7\u6d4b\u8bd5\u8ba4\u8bc1\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\u6700\u7a33\u5b9a\u4f7f\u7528\u7684\u7cfb\u7edf\u7248\u672c\u662f Ubuntu 18.04\u3001CentOS 7\u3001CentOS 8\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"22-\u7cfb\u7edf\u5e93",children:"2.2. \u7cfb\u7edf\u5e93"}),"\n",(0,r.jsxs)(e.p,{children:["\u7f16\u8bd1\u73af\u5883\u548c\u8fd0\u884c\u73af\u5883\u5bf9\u7cfb\u7edf\u5e93\u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u5177\u4f53\u8bf7\u53c2\u8003",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/environment-mode",children:"\u73af\u5883\u5206\u7c7b"}),"\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"3\u5178\u578b\u914d\u7f6e\u63a8\u8350",children:"3.\u5178\u578b\u914d\u7f6e\u63a8\u8350"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u786c\u4ef6"}),(0,r.jsx)(e.th,{children:"\u6700\u4f4e\u914d\u7f6e"}),(0,r.jsx)(e.th,{children:"\u5efa\u8bae\u914d\u7f6e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"CPU"}),(0,r.jsx)(e.td,{children:"4 Cores"}),(0,r.jsx)(e.td,{children:"64 Cores"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"4GB"}),(0,r.jsx)(e.td,{children:"512GB"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5916\u5b58"}),(0,r.jsx)(e.td,{children:"100GB"}),(0,r.jsx)(e.td,{children:"2TB NVMe SSD"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OS"}),(0,r.jsx)(e.td,{children:"Linux 4.9"}),(0,r.jsx)(e.td,{children:"CentOS 7.3"})]})]})]})]})}function o(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(a,{...n})}):a(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>l,x:()=>s});var r=t(6540);const i={},d=r.createContext(i);function l(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:l(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6d16fd3b.78d9881d.js b/assets/js/6d16fd3b.78d9881d.js
deleted file mode 100644
index 6c2c1bb57b..0000000000
--- a/assets/js/6d16fd3b.78d9881d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2301],{553:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>h,contentTitle:()=>d,default:()=>u,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var r=t(4848),i=t(8453);const s={},d="\u73af\u5883\u51c6\u5907",l={id:"zh-CN/source/installation&running/environment",title:"\u73af\u5883\u51c6\u5907",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u90e8\u7f72\u65f6\u6240\u9700\u7684\u8f6f\u786c\u4ef6\u73af\u5883\u3002",source:"@site/../docs/zh-CN/source/5.installation&running/1.environment.md",sourceDirName:"zh-CN/source/5.installation&running",slug:"/zh-CN/source/installation&running/environment",permalink:"/tugraph-db/zh-CN/source/installation&running/environment",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c\uff08\u65e7\u7248\uff09",permalink:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser-legacy"},next:{title:"\u73af\u5883\u5206\u7c7b",permalink:"/tugraph-db/zh-CN/source/installation&running/environment-mode"}},h={},c=[{value:"1.\u786c\u4ef6\u73af\u5883",id:"1\u786c\u4ef6\u73af\u5883",level:2},{value:"1.1. CPU",id:"11-cpu",level:3},{value:"1.2. \u5185\u5b58",id:"12-\u5185\u5b58",level:3},{value:"1.3. \u5916\u5b58",id:"13-\u5916\u5b58",level:3},{value:"2.\u8f6f\u4ef6\u73af\u5883",id:"2\u8f6f\u4ef6\u73af\u5883",level:2},{value:"2.1. \u64cd\u4f5c\u7cfb\u7edf",id:"21-\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"2.2. \u7cfb\u7edf\u5e93",id:"22-\u7cfb\u7edf\u5e93",level:3},{value:"3.\u5178\u578b\u914d\u7f6e\u63a8\u8350",id:"3\u5178\u578b\u914d\u7f6e\u63a8\u8350",level:2}];function o(n){const e={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u73af\u5883\u51c6\u5907",children:"\u73af\u5883\u51c6\u5907"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u90e8\u7f72\u65f6\u6240\u9700\u7684\u8f6f\u786c\u4ef6\u73af\u5883\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u786c\u4ef6\u73af\u5883",children:"1.\u786c\u4ef6\u73af\u5883"}),"\n",(0,r.jsx)(e.h3,{id:"11-cpu",children:"1.1. CPU"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u65e0\u8bba\u662f\u7269\u7406\u3001\u865a\u62df\u8fd8\u662f\u5bb9\u5668\u5316\u73af\u5883\uff0c\u5747\u652f\u6301 X86_64 \u548c ARM64 \u67b6\u6784\u7684\u786c\u4ef6\u5e73\u53f0\uff0c\u6d4b\u8bd5\u8ba4\u8bc1\u8fc7\u7684\u786c\u4ef6\u5e73\u53f0\u5305\u62ec Intel\u3001AMD\u3001Kunpeng\u3001Hygon\u3001\u98de\u817e\u7b49\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"12-\u5185\u5b58",children:"1.2. \u5185\u5b58"}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u5efa\u8bae\u5185\u5b58\u5bb9\u91cf\u4e0d\u5c0f\u4e8e\u5b9e\u9645\u7684\u6570\u636e\u5927\u5c0f\u3002\u5982\u679c\u6700\u6c42\u6781\u81f4\u7684\u6027\u80fd\uff0c\u628a\u6240\u6709\u7684\u6570\u636e\u7f13\u5b58\u5230\u5185\u5b58\u91cc\u662f\u6700\u7406\u60f3\u7684\u3002\u5728\u6570\u636e\u8bbf\u95ee\u7684\u5c40\u90e8\u6027\u4e0a\uff0c\u56fe\u6570\u636e\u5e93\u7684\u5c40\u90e8\u6027\u8981\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u5dee\uff0c\u56e0\u6b64\u5982\u679c\u6570\u636e\u5728\u5185\u5b58\u4e2d\u653e\u4e0d\u4e0b\uff0c\u901a\u5e38\u4f1a\u9891\u7e41\u5730\u6362\u5165\u6362\u51fa\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"13-\u5916\u5b58",children:"1.3. \u5916\u5b58"}),"\n",(0,r.jsx)(e.p,{children:"\u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u7528\u6237\u4f7f\u7528 NVMe SSD \u4f5c\u4e3a\u5916\u5b58\uff0c\u6570\u636e\u5e93\u6709\u5927\u91cf\u7684\u5199\u64cd\u4f5c\u9700\u8981\u540c\u6b65\u7684\u5916\u5b58\uff0c\u901a\u5e38\u4e3a\u968f\u673a\u5199\uff0c\u5916\u5b58\u7684\u8bfb\u5199\u6027\u80fd\u5f88\u5bb9\u6613\u6210\u4e3a\u6574\u4f53\u6570\u636e\u5e93\u8fd0\u884c\u7684\u6027\u80fd\u74f6\u9888\u3002\u56e0\u6b64\uff0c\u9ad8IOPS\u3001\u4f4e\u5ef6\u8fdf\u7684 NVMe SSD \u662f\u6700\u4f18\u7684\u9009\u62e9\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5982\u679c\u73b0\u5b9e\u6761\u4ef6\u53ea\u80fd\u4f7f\u7528 SATA\u63a5\u53e3\u7684SSD\uff0c\u6216\u8005\u4e91\u4e0a\u7684\u7f51\u76d8\uff0c\u6027\u80fd\u867d\u7136\u4f1a\u53d7\u5230\u5f71\u54cd\uff0c\u4f46 TuGraph \u4f9d\u7136\u80fd\u6b63\u786e\u7684\u8fd0\u884c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5916\u5b58\u5927\u5c0f\u5efa\u8bae\u4e3a\u5b9e\u9645\u6570\u636e\u5927\u5c0f\u76844\u500d\uff0c\u6bd4\u5982\u6570\u636e\u4e3a1TB\uff0c\u5219\u51c6\u59074TB\u7684\u786c\u76d8\u4f1a\u6bd4\u8f83\u7a33\u59a5\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"2\u8f6f\u4ef6\u73af\u5883",children:"2.\u8f6f\u4ef6\u73af\u5883"}),"\n",(0,r.jsx)(e.h3,{id:"21-\u64cd\u4f5c\u7cfb\u7edf",children:"2.1. \u64cd\u4f5c\u7cfb\u7edf"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u80fd\u591f\u517c\u5bb9\u4e3b\u6d41\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5305\u62ecUbuntu\u3001CentOS\u3001SUSE\u3001\u94f6\u6cb3\u9e92\u9e9f\u3001 \u4e2d\u6807\u9e92\u9e9f\u3001UOS\u7b49\uff0c\u5747\u901a\u8fc7\u6d4b\u8bd5\u8ba4\u8bc1\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\u6700\u7a33\u5b9a\u4f7f\u7528\u7684\u7cfb\u7edf\u7248\u672c\u662f Ubuntu 18.04\u3001CentOS 7\u3001CentOS 8\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"22-\u7cfb\u7edf\u5e93",children:"2.2. \u7cfb\u7edf\u5e93"}),"\n",(0,r.jsxs)(e.p,{children:["\u7f16\u8bd1\u73af\u5883\u548c\u8fd0\u884c\u73af\u5883\u5bf9\u7cfb\u7edf\u5e93\u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u5177\u4f53\u8bf7\u53c2\u8003",(0,r.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/environment-mode",children:"\u73af\u5883\u5206\u7c7b"}),"\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"3\u5178\u578b\u914d\u7f6e\u63a8\u8350",children:"3.\u5178\u578b\u914d\u7f6e\u63a8\u8350"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u786c\u4ef6"}),(0,r.jsx)(e.th,{children:"\u6700\u4f4e\u914d\u7f6e"}),(0,r.jsx)(e.th,{children:"\u5efa\u8bae\u914d\u7f6e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"CPU"}),(0,r.jsx)(e.td,{children:"4 Cores"}),(0,r.jsx)(e.td,{children:"64 Cores"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"4GB"}),(0,r.jsx)(e.td,{children:"512GB"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u5916\u5b58"}),(0,r.jsx)(e.td,{children:"100GB"}),(0,r.jsx)(e.td,{children:"2TB NVMe SSD"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OS"}),(0,r.jsx)(e.td,{children:"Linux 4.9"}),(0,r.jsx)(e.td,{children:"CentOS 7.3"})]})]})]})]})}function u(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(o,{...n})}):o(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>d,x:()=>l});var r=t(6540);const i={},s=r.createContext(i);function d(n){const e=r.useContext(s);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:d(n.components),r.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6e5b21f1.5072a35c.js b/assets/js/6e5b21f1.5072a35c.js
new file mode 100644
index 0000000000..e605d4ceb1
--- /dev/null
+++ b/assets/js/6e5b21f1.5072a35c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4905],{9363:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(4848),r=a(8453);const i={},s="HTAP",o={id:"introduction/characteristics/htap",title:"HTAP",description:"This document mainly introduces the design philosophy of TuGraph's HTAP.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/3.htap.md",sourceDirName:"2.introduction/5.characteristics",slug:"/introduction/characteristics/htap",permalink:"/tugraph-db/en/introduction/characteristics/htap",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Multi Level Interfaces",permalink:"/tugraph-db/en/introduction/characteristics/multi-level-Interfaces"},next:{title:"Architecture",permalink:"/tugraph-db/en/introduction/architecture"}},h={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Design",id:"2design",level:2}];function d(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"htap",children:"HTAP"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the design philosophy of TuGraph's HTAP."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"htap",src:a(7999).A+"",width:"952",height:"566"})}),"\n",(0,n.jsx)(t.p,{children:"There are different ways to implement HTAP in architecture: one is to use two different copies to handle OLTP and OLAP tasks separately, with the core being data consistency synchronization and additional resource overhead; the other is to use the same data storage at all times, but this implementation has memory bloat in its data structure and needs further work for industrialization. In TuGraph's design, simple OLAP and OLTP operations share the same data, while complex OLAP operations are exported and handled separately as snapshots."}),"\n",(0,n.jsx)(t.h2,{id:"2design",children:"2.Design"}),"\n",(0,n.jsx)(t.p,{children:"In TuGraph, OLTP is the graph transaction engine, corresponding to transaction operations in Figure; OLAP is the graph analysis engine, corresponding to simple graph analysis operations (such as SPSP) and complex graph analysis operations (such as PageRank), the former of which can be executed directly on the graph storage, while the latter requires exporting a snapshot for execution."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Transaction operations, measured by the graph transaction engine, are local graph add, delete, query and modify operations, typically used for K-hop access."}),"\n",(0,n.jsx)(t.li,{children:"Simple analysis operations are the simpler part of the graph analysis engine, usually local graph analysis operations, such as the shortest path algorithm SPSP and Jaccard algorithm."}),"\n",(0,n.jsx)(t.li,{children:"Complex analysis operations are the more complex part of the graph analysis engine, usually involving multi-round data iteration operations across the entire graph, such as the PageRank algorithm for webpage ranking and the Louvain algorithm for community discovery."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"As shown in Figure , external storage is added to the architecture diagram, making the data source for graph analysis not limited to the graph database and can be directly read from text files."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Graph storage, which is the storage in the graph database, has carefully designed data structures that can perform real-time add, delete, query and modify operations."}),"\n",(0,n.jsx)(t.li,{children:"External storage, which can be an RDBMS or text file, is stored in a simple way as an edge table, only for one-time batch reading and batch result writing. In the calculation layer, it corresponds to the interface in the overall architecture diagram."}),"\n",(0,n.jsx)(t.li,{children:"Cypher, the declarative graph query language, can be executed concurrently."}),"\n",(0,n.jsx)(t.li,{children:"Procedure API, the procedural graph query language, is flexible and can support both transaction operations and graph analysis operations, but its efficiency is not sufficient to complete complex graph analysis operations, and it can be executed concurrently."}),"\n",(0,n.jsx)(t.li,{children:"OLAP API, for multi-round iteration of complex graph analysis. Applications need to first export the graph data in storage into a snapshot in memory, which is only used for fast access and does not need to consider the write support of ACID, so it can be arranged more compactly, and the read efficiency of CSR arrangement is much higher than that of graph storage data arrangement. OLAP API can only be executed serially, and each operation uses full CPU resources."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"OLAP API snapshots can be created from external storage, where the edge table data is formatted as CSR, or from the graph storage. It should be noted that OLAP API requires that the IDs of the vertices be consecutive natural numbers, which may require additional ID mapping. This step can be mapped to a specified attribute when creating a snapshot or directly using the attribute value as the ID."}),"\n",(0,n.jsx)(t.p,{children:"Corresponding to the calculation interface and storage, there are four operating modes."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Transaction mode, each operation corresponds to a Cypher statement, which is a transaction by default."}),"\n",(0,n.jsx)(t.li,{children:"Plugin mode, call through plugins, after the calculation logic is loaded on the server, also known as stored procedures."}),"\n",(0,n.jsx)(t.li,{children:"Embed mode, which has the same interface as Plugin mode but the graph database service does not need to be started and can directly call the data in the database through the interface. This mode is usually used for debugging Procedure API and OLAP API code, and the debugging information and operation steps are more friendly than Plugin mode."}),"\n",(0,n.jsx)(t.li,{children:"Standalone mode, which maximally separates from the graph database, is more direct when only using the graph analysis engine for data analysis. Standalone mode will directly use the data of the external storage."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"The use of the graph neural network engine is similar to the 'complex graph analysis operation', which calls part of the OLAP API and GNN API at the same time, which is not elaborated here."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},7999:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/htap-en-b02eec1489b053469011ccdc046b8780.png"},8453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>o});var n=a(6540);const r={},i=n.createContext(r);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6e5b21f1.e51496a8.js b/assets/js/6e5b21f1.e51496a8.js
deleted file mode 100644
index 349464d7b4..0000000000
--- a/assets/js/6e5b21f1.e51496a8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4905],{9981:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var n=a(4848),r=a(8453);const i={},s="HTAP",o={id:"en-US/source/introduction/characteristics/htap",title:"HTAP",description:"This document mainly introduces the design philosophy of TuGraph's HTAP.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/3.htap.md",sourceDirName:"en-US/source/2.introduction/5.characteristics",slug:"/en-US/source/introduction/characteristics/htap",permalink:"/tugraph-db/en-US/source/introduction/characteristics/htap",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Multi Level Interfaces",permalink:"/tugraph-db/en-US/source/introduction/characteristics/multi-level-Interfaces"},next:{title:"Architecture",permalink:"/tugraph-db/en-US/source/introduction/architecture"}},c={},h=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Design",id:"2design",level:2}];function d(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"htap",children:"HTAP"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly introduces the design philosophy of TuGraph's HTAP."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"htap",src:a(7999).A+"",width:"952",height:"566"})}),"\n",(0,n.jsx)(t.p,{children:"There are different ways to implement HTAP in architecture: one is to use two different copies to handle OLTP and OLAP tasks separately, with the core being data consistency synchronization and additional resource overhead; the other is to use the same data storage at all times, but this implementation has memory bloat in its data structure and needs further work for industrialization. In TuGraph's design, simple OLAP and OLTP operations share the same data, while complex OLAP operations are exported and handled separately as snapshots."}),"\n",(0,n.jsx)(t.h2,{id:"2design",children:"2.Design"}),"\n",(0,n.jsx)(t.p,{children:"In TuGraph, OLTP is the graph transaction engine, corresponding to transaction operations in Figure; OLAP is the graph analysis engine, corresponding to simple graph analysis operations (such as SPSP) and complex graph analysis operations (such as PageRank), the former of which can be executed directly on the graph storage, while the latter requires exporting a snapshot for execution."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Transaction operations, measured by the graph transaction engine, are local graph add, delete, query and modify operations, typically used for K-hop access."}),"\n",(0,n.jsx)(t.li,{children:"Simple analysis operations are the simpler part of the graph analysis engine, usually local graph analysis operations, such as the shortest path algorithm SPSP and Jaccard algorithm."}),"\n",(0,n.jsx)(t.li,{children:"Complex analysis operations are the more complex part of the graph analysis engine, usually involving multi-round data iteration operations across the entire graph, such as the PageRank algorithm for webpage ranking and the Louvain algorithm for community discovery."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"As shown in Figure , external storage is added to the architecture diagram, making the data source for graph analysis not limited to the graph database and can be directly read from text files."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Graph storage, which is the storage in the graph database, has carefully designed data structures that can perform real-time add, delete, query and modify operations."}),"\n",(0,n.jsx)(t.li,{children:"External storage, which can be an RDBMS or text file, is stored in a simple way as an edge table, only for one-time batch reading and batch result writing. In the calculation layer, it corresponds to the interface in the overall architecture diagram."}),"\n",(0,n.jsx)(t.li,{children:"Cypher, the declarative graph query language, can be executed concurrently."}),"\n",(0,n.jsx)(t.li,{children:"Procedure API, the procedural graph query language, is flexible and can support both transaction operations and graph analysis operations, but its efficiency is not sufficient to complete complex graph analysis operations, and it can be executed concurrently."}),"\n",(0,n.jsx)(t.li,{children:"OLAP API, for multi-round iteration of complex graph analysis. Applications need to first export the graph data in storage into a snapshot in memory, which is only used for fast access and does not need to consider the write support of ACID, so it can be arranged more compactly, and the read efficiency of CSR arrangement is much higher than that of graph storage data arrangement. OLAP API can only be executed serially, and each operation uses full CPU resources."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"OLAP API snapshots can be created from external storage, where the edge table data is formatted as CSR, or from the graph storage. It should be noted that OLAP API requires that the IDs of the vertices be consecutive natural numbers, which may require additional ID mapping. This step can be mapped to a specified attribute when creating a snapshot or directly using the attribute value as the ID."}),"\n",(0,n.jsx)(t.p,{children:"Corresponding to the calculation interface and storage, there are four operating modes."}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Transaction mode, each operation corresponds to a Cypher statement, which is a transaction by default."}),"\n",(0,n.jsx)(t.li,{children:"Plugin mode, call through plugins, after the calculation logic is loaded on the server, also known as stored procedures."}),"\n",(0,n.jsx)(t.li,{children:"Embed mode, which has the same interface as Plugin mode but the graph database service does not need to be started and can directly call the data in the database through the interface. This mode is usually used for debugging Procedure API and OLAP API code, and the debugging information and operation steps are more friendly than Plugin mode."}),"\n",(0,n.jsx)(t.li,{children:"Standalone mode, which maximally separates from the graph database, is more direct when only using the graph analysis engine for data analysis. Standalone mode will directly use the data of the external storage."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"The use of the graph neural network engine is similar to the 'complex graph analysis operation', which calls part of the OLAP API and GNN API at the same time, which is not elaborated here."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},7999:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/htap-en-b02eec1489b053469011ccdc046b8780.png"},8453:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>o});var n=a(6540);const r={},i=n.createContext(r);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6fe137e4.03e4b822.js b/assets/js/6fe137e4.03e4b822.js
deleted file mode 100644
index fbe6163d77..0000000000
--- a/assets/js/6fe137e4.03e4b822.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5420],{6979:(t,e,r)=>{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>n,metadata:()=>c,toc:()=>u});var a=r(4848),o=r(8453);const n={},s="Importing Data from Relational Databases to TuGraph",c={id:"en-US/source/best-practices/rdbms-to-tugraph",title:"Importing Data from Relational Databases to TuGraph",description:"Using DataX\uff0cto be completed.",source:"@site/../docs/en-US/source/13.best-practices/1.rdbms-to-tugraph.md",sourceDirName:"en-US/source/13.best-practices",slug:"/en-US/source/best-practices/rdbms-to-tugraph",permalink:"/tugraph-db/en-US/source/best-practices/rdbms-to-tugraph",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Roadmap",permalink:"/tugraph-db/en-US/source/contributor-manual/roadmap"},next:{title:"Using TuGraph Graph Learning Module for Node Classification",permalink:"/tugraph-db/en-US/source/best-practices/learn_practices"}},i={},u=[];function p(t){const e={a:"a",blockquote:"blockquote",h1:"h1",header:"header",p:"p",...(0,o.R)(),...t.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.header,{children:(0,a.jsx)(e.h1,{id:"importing-data-from-relational-databases-to-tugraph",children:"Importing Data from Relational Databases to TuGraph"})}),"\n",(0,a.jsxs)(e.blockquote,{children:["\n",(0,a.jsxs)(e.p,{children:["Using ",(0,a.jsx)(e.a,{href:"/tugraph-db/en-US/source/utility-tools/tugraph-datax",children:"DataX"}),"\uff0cto be completed."]}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,a.jsx)(e,{...t,children:(0,a.jsx)(p,{...t})}):p(t)}},8453:(t,e,r)=>{r.d(e,{R:()=>s,x:()=>c});var a=r(6540);const o={},n=a.createContext(o);function s(t){const e=a.useContext(n);return a.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),a.createElement(n.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/6fe137e4.9da9f63d.js b/assets/js/6fe137e4.9da9f63d.js
new file mode 100644
index 0000000000..0932a82921
--- /dev/null
+++ b/assets/js/6fe137e4.9da9f63d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5420],{525:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(4848),n=a(8453);const o={},s="Importing Data from Relational Databases to TuGraph",i={id:"best-practices/rdbms-to-tugraph",title:"Importing Data from Relational Databases to TuGraph",description:"Using DataX\uff0cto be completed.",source:"@site/../docs/en-US/source/13.best-practices/1.rdbms-to-tugraph.md",sourceDirName:"13.best-practices",slug:"/best-practices/rdbms-to-tugraph",permalink:"/tugraph-db/en/best-practices/rdbms-to-tugraph",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Roadmap",permalink:"/tugraph-db/en/contributor-manual/roadmap"},next:{title:"Using TuGraph Graph Learning Module for Node Classification",permalink:"/tugraph-db/en/best-practices/learn_practices"}},c={},u=[];function p(t){const e={a:"a",blockquote:"blockquote",h1:"h1",header:"header",p:"p",...(0,n.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"importing-data-from-relational-databases-to-tugraph",children:"Importing Data from Relational Databases to TuGraph"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsxs)(e.p,{children:["Using ",(0,r.jsx)(e.a,{href:"/tugraph-db/en/utility-tools/tugraph-datax",children:"DataX"}),"\uff0cto be completed."]}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,n.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(p,{...t})}):p(t)}},8453:(t,e,a)=>{a.d(e,{R:()=>s,x:()=>i});var r=a(6540);const n={},o=r.createContext(n);function s(t){const e=r.useContext(o);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:s(t.components),r.createElement(o.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7387447f.2956502e.js b/assets/js/7387447f.2956502e.js
deleted file mode 100644
index 29cf9be128..0000000000
--- a/assets/js/7387447f.2956502e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5645],{2221:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=r(4848),s=r(8453);const i={},o="RPC API",a={id:"en-US/source/client-tools/rpc-api",title:"RPC API",description:"This document mainly introduces the details of calling TuGraph's RPC API.",source:"@site/../docs/en-US/source/7.client-tools/8.rpc-api.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/rpc-api",permalink:"/tugraph-db/en-US/source/client-tools/rpc-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph RESTful API",permalink:"/tugraph-db/en-US/source/client-tools/restful-api"},next:{title:"TuGraph RESTful API Legacy",permalink:"/tugraph-db/en-US/source/client-tools/restful-api-legacy"}},l={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Request",id:"2request",level:2},{value:"2.1.Establishing a Connection",id:"21establishing-a-connection",level:3},{value:"2.2.Request Types",id:"22request-types",level:3},{value:"3.Login",id:"3login",level:2},{value:"4.Query",id:"4query",level:2},{value:"5.Stored Procedures",id:"5stored-procedures",level:2},{value:"5.1.Load Stored Procedures",id:"51load-stored-procedures",level:3},{value:"5.2.Invoke Stored Procedures",id:"52invoke-stored-procedures",level:3},{value:"5.3.Delete Stored Procedures",id:"53delete-stored-procedures",level:3},{value:"5.4.List Stored Procedures",id:"54list-stored-procedures",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"rpc-api",children:"RPC API"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the details of calling TuGraph's RPC API."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph provides rich RPC APIs for developers to remotely call the services provided by TuGraph through RPC requests."}),"\n",(0,t.jsx)(n.p,{children:"RPC (Remote Procedure Call) is a protocol for requesting services from remote computer programs through a network without the need to understand the underlying network technology.\nCompared with REST, RPC is method-oriented and mainly used for calling function methods. It is suitable for more complex communication scenarios and has higher performance.\nbrpc is an industrial-grade RPC framework written in C++. Based on brpc, TuGraph provides rich RPC APIs. This document describes how to use TuGraph's RPC API."}),"\n",(0,t.jsx)(n.h2,{id:"2request",children:"2.Request"}),"\n",(0,t.jsx)(n.h3,{id:"21establishing-a-connection",children:"2.1.Establishing a Connection"}),"\n",(0,t.jsx)(n.p,{children:"When developers send RPC requests to TuGraph services, they must first establish a connection. Taking C++ as an example, developers create a channel with the specified URL and create a specified service stub (LGraphRPCService_Stub) from the channel. Subsequently, they can send requests to the remote server through the stub like calling local methods."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::shared_ptr options = std::make_shared();\n options->protocol = "baidu_std";\n options->connection_type = "";\n options->timeout_ms = 60 * 60 * 1000 /*milliseconds*/;\n options->max_retry = 3;\n std::string load_balancer = "";\n std::shared_ptr channel = std::make_shared();\n if (channel->Init(url.c_str(), load_balancer, options.get()) != 0)\n throw RpcException("Fail to initialize channel");\n LGraphRPCService_Stub stub(channel.get());\n'})}),"\n",(0,t.jsx)(n.h3,{id:"22request-types",children:"2.2.Request Types"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph supports 10 types of RPC requests, and each request's functionality is shown in the following table:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Request"}),(0,t.jsx)(n.th,{children:"Functionality"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"GraphApiRequest"}),(0,t.jsx)(n.td,{children:"Vertex-Edge Index"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CypherRequest"}),(0,t.jsx)(n.td,{children:"cypher"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PluginRequest"}),(0,t.jsx)(n.td,{children:"Stored Procedures"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"HARequest"}),(0,t.jsx)(n.td,{children:"High Availability"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"ImportRequest"}),(0,t.jsx)(n.td,{children:"Data Import"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"GraphRequest"}),(0,t.jsx)(n.td,{children:"Subgraph Operations"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"AclRequest"}),(0,t.jsx)(n.td,{children:"Access Control"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"ConfigRequest"}),(0,t.jsx)(n.td,{children:"Configuration"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"RestoreRequest"}),(0,t.jsx)(n.td,{children:"Backup"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SchemaRequest"}),(0,t.jsx)(n.td,{children:"Schema Management"})]})]})]}),"\n",(0,t.jsx)(n.p,{children:"When a user sends a request, the following parameters need to be passed in:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["client_version: an optional parameter, in HA mode, it can prevent outdated responses by comparing ",(0,t.jsx)(n.code,{children:"client_version"})," and ",(0,t.jsx)(n.code,{children:"server_version"})]}),"\n",(0,t.jsx)(n.li,{children:"token: a necessary parameter, the client obtains the token after logging in, and the token is passed in with each request to verify the user's identity"}),"\n",(0,t.jsx)(n.li,{children:"is_write_op: an optional parameter, indicating whether the request is a write request"}),"\n",(0,t.jsx)(n.li,{children:"user: an optional parameter, set user when synchronizing requests between master and slave in HA mode, and no token verification is required After the service processes the RPC request, it sends back a response."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"In addition to containing separate response information for each request, the response message also includes the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"error_code: a necessary parameter, indicating the processing status of the request"}),"\n",(0,t.jsx)(n.li,{children:"redirect: an optional parameter, when processing fails to send a write request to a follower in HA mode, set redirect as the request forwarding address, that is, the leader address"}),"\n",(0,t.jsx)(n.li,{children:"error: an optional parameter, indicating the error information of the request"}),"\n",(0,t.jsxs)(n.li,{children:["server_version: an optional parameter, set ",(0,t.jsx)(n.code,{children:"server_version"})," in the HA mode request response to avoid reverse time travel when client reads data"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,t.jsx)(n.strong,{children:"Except for CypherRequest, PluginRequest, HARequest and AclRequest, all other RPC interfaces will be gradually deprecated, and their functions will be unified into the CypherRequest interface."})]}),"\n",(0,t.jsx)(n.h2,{id:"3login",children:"3.Login"}),"\n",(0,t.jsx)(n.p,{children:"The login request message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"user: a necessary parameter, the username"}),"\n",(0,t.jsx)(n.li,{children:"pass: a necessary parameter, the password"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user sends a login request using the constructed service stub:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" auto* req = request.mutable_acl_request();\n auto* auth = req->mutable_auth_request()->mutable_login();\n auth->set_user(user);\n auth->set_password(pass);\n // send data\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req->set_client_version(server_version);\n req->set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), req, &resp, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n token = res.acl_response().auth_response().token();\n"})}),"\n",(0,t.jsx)(n.p,{children:"The login response message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:'token: a necessary parameter. After successful login, a signed token, namely Json Web Token, will be received. The client stores the token and uses it for each subsequent request. If the login fails, an "Authentication failed" error will be received.'}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"4query",children:"4.Query"}),"\n",(0,t.jsx)(n.p,{children:"Users can interact with TuGraph through Cypher queries. The Cypher request message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"query: a necessary parameter, the Cypher query statement"}),"\n",(0,t.jsx)(n.li,{children:"param_names: an optional parameter, the parameter name"}),"\n",(0,t.jsx)(n.li,{children:"param_values: an optional parameter, the parameter value"}),"\n",(0,t.jsx)(n.li,{children:"result_in_json_format: a necessary parameter, whether to return the query results in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"graph: an optional parameter, the subgraph name for executing the Cypher statement"}),"\n",(0,t.jsx)(n.li,{children:"timeout: an optional parameter, the timeout for executing the Cypher statement"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user sends a Cypher request as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n LGraphRequest req;\n req.set_client_version(server_version);\n req.set_token(token);\n lgraph::CypherRequest* cypher_req = req.mutable_cypher_request();\n cypher_req->set_graph(graph);\n cypher_req->set_query(query);\n cypher_req->set_timeout(timeout);\n cypher_req->set_result_in_json_format(true);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n server_version = std::max(server_version, res.server_version());\n CypherResponse cypher_res = res.cypher_response();\n"})}),"\n",(0,t.jsx)(n.p,{children:"The Cypher request response contains one of the following two parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"json_result: the Cypher query result in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"binary_result: the Cypher query result in the CypherResult format"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"5stored-procedures",children:"5.Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"To meet users' more complex query/update logic, TuGraph supports stored procedures written in C and Python. Users can use RPC requests to perform CRUD operations on stored procedures."}),"\n",(0,t.jsx)(n.h3,{id:"51load-stored-procedures",children:"5.1.Load Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for loading stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n",(0,t.jsx)(n.li,{children:"read_only: a necessary parameter, whether it is read-only"}),"\n",(0,t.jsx)(n.li,{children:"code: a necessary parameter, the ByteString generated by reading the stored procedure file"}),"\n",(0,t.jsx)(n.li,{children:"desc: an optional parameter, the stored procedure description"}),"\n",(0,t.jsx)(n.li,{children:"code_type: an optional parameter, the stored procedure code type, which can be PY, SO, CPP, or ZIP"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user loads the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string content;\n if (!FieldSpecSerializer::FileReader(source_file, content)) {\n std::swap(content, result);\n return false;\n }\n LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->set_version(version);\n lgraph::LoadPluginRequest* loadPluginRequest = pluginRequest->mutable_load_plugin_request();\n loadPluginRequest->set_code_type([](const std::string& type) {\n std::unordered_map um{\n {"SO", lgraph::LoadPluginRequest::SO},\n {"PY", lgraph::LoadPluginRequest::PY},\n {"ZIP", lgraph::LoadPluginRequest::ZIP},\n {"CPP", lgraph::LoadPluginRequest::CPP}};\n return um[type];\n }(code_type));\n loadPluginRequest->set_name(procedure_name);\n loadPluginRequest->set_desc(procedure_description);\n loadPluginRequest->set_read_only(read_only);\n loadPluginRequest->set_code(content);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for loading the stored procedure does not contain parameters, and if the loading fails, a BadInput exception will be thrown."}),"\n",(0,t.jsx)(n.h3,{id:"52invoke-stored-procedures",children:"5.2.Invoke Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for invoking stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n",(0,t.jsx)(n.li,{children:"param: a necessary parameter, the stored procedure parameters"}),"\n",(0,t.jsx)(n.li,{children:"result_in_json_format: an optional parameter, whether to return the invocation result in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"in_process: an optional parameter, to be supported in the future"}),"\n",(0,t.jsx)(n.li,{children:"timeout: an optional parameter, the timeout for invoking the stored procedure"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user invokes the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::CallPluginRequest *cpRequest = pluginRequest->mutable_call_plugin_request();\n cpRequest->set_name(procedure_name);\n cpRequest->set_in_process(in_process);\n cpRequest->set_param(param);\n cpRequest->set_timeout(procedure_time_out);\n cpRequest->set_result_in_json_format(json_format);\n LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n if (json_format) {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->json_result();\n } else {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->reply();\n }\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for invoking the stored procedure contains one of the following two parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"reply: the stored procedure invocation result in the ByteString format"}),"\n",(0,t.jsx)(n.li,{children:"json_result: the stored procedure invocation result in JSON format"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"53delete-stored-procedures",children:"5.3.Delete Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for deleting stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user deletes the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::DelPluginRequest* dpRequest = pluginRequest->mutable_del_plugin_request();\n dpRequest->set_name(procedure_name);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for deleting the stored procedure does not contain parameters, and if the deletion fails, a BadInput exception will be thrown."}),"\n",(0,t.jsx)(n.h3,{id:"54list-stored-procedures",children:"5.4.List Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for listing stored procedures does not require parameters. Taking C++ as an example, the user lists the stored procedures as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(false);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->mutable_list_plugin_request();\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n result = res.mutable_plugin_response()->mutable_list_plugin_response()->reply();\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for listing the stored procedures contains the following parameter:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"reply: the procedure list in JSON format"}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>a});var t=r(6540);const s={},i=t.createContext(s);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7387447f.9211323f.js b/assets/js/7387447f.9211323f.js
new file mode 100644
index 0000000000..4e6dd164a8
--- /dev/null
+++ b/assets/js/7387447f.9211323f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5645],{6691:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=r(4848),s=r(8453);const i={},o="RPC API",a={id:"client-tools/rpc-api",title:"RPC API",description:"This document mainly introduces the details of calling TuGraph's RPC API.",source:"@site/../docs/en-US/source/7.client-tools/8.rpc-api.md",sourceDirName:"7.client-tools",slug:"/client-tools/rpc-api",permalink:"/tugraph-db/en/client-tools/rpc-api",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph RESTful API",permalink:"/tugraph-db/en/client-tools/restful-api"},next:{title:"TuGraph RESTful API Legacy",permalink:"/tugraph-db/en/client-tools/restful-api-legacy"}},l={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Request",id:"2request",level:2},{value:"2.1.Establishing a Connection",id:"21establishing-a-connection",level:3},{value:"2.2.Request Types",id:"22request-types",level:3},{value:"3.Login",id:"3login",level:2},{value:"4.Query",id:"4query",level:2},{value:"5.Stored Procedures",id:"5stored-procedures",level:2},{value:"5.1.Load Stored Procedures",id:"51load-stored-procedures",level:3},{value:"5.2.Invoke Stored Procedures",id:"52invoke-stored-procedures",level:3},{value:"5.3.Delete Stored Procedures",id:"53delete-stored-procedures",level:3},{value:"5.4.List Stored Procedures",id:"54list-stored-procedures",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"rpc-api",children:"RPC API"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the details of calling TuGraph's RPC API."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph provides rich RPC APIs for developers to remotely call the services provided by TuGraph through RPC requests."}),"\n",(0,t.jsx)(n.p,{children:"RPC (Remote Procedure Call) is a protocol for requesting services from remote computer programs through a network without the need to understand the underlying network technology.\nCompared with REST, RPC is method-oriented and mainly used for calling function methods. It is suitable for more complex communication scenarios and has higher performance.\nbrpc is an industrial-grade RPC framework written in C++. Based on brpc, TuGraph provides rich RPC APIs. This document describes how to use TuGraph's RPC API."}),"\n",(0,t.jsx)(n.h2,{id:"2request",children:"2.Request"}),"\n",(0,t.jsx)(n.h3,{id:"21establishing-a-connection",children:"2.1.Establishing a Connection"}),"\n",(0,t.jsx)(n.p,{children:"When developers send RPC requests to TuGraph services, they must first establish a connection. Taking C++ as an example, developers create a channel with the specified URL and create a specified service stub (LGraphRPCService_Stub) from the channel. Subsequently, they can send requests to the remote server through the stub like calling local methods."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::shared_ptr options = std::make_shared();\n options->protocol = "baidu_std";\n options->connection_type = "";\n options->timeout_ms = 60 * 60 * 1000 /*milliseconds*/;\n options->max_retry = 3;\n std::string load_balancer = "";\n std::shared_ptr channel = std::make_shared();\n if (channel->Init(url.c_str(), load_balancer, options.get()) != 0)\n throw RpcException("Fail to initialize channel");\n LGraphRPCService_Stub stub(channel.get());\n'})}),"\n",(0,t.jsx)(n.h3,{id:"22request-types",children:"2.2.Request Types"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph supports 10 types of RPC requests, and each request's functionality is shown in the following table:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Request"}),(0,t.jsx)(n.th,{children:"Functionality"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"GraphApiRequest"}),(0,t.jsx)(n.td,{children:"Vertex-Edge Index"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CypherRequest"}),(0,t.jsx)(n.td,{children:"cypher"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PluginRequest"}),(0,t.jsx)(n.td,{children:"Stored Procedures"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"HARequest"}),(0,t.jsx)(n.td,{children:"High Availability"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"ImportRequest"}),(0,t.jsx)(n.td,{children:"Data Import"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"GraphRequest"}),(0,t.jsx)(n.td,{children:"Subgraph Operations"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"AclRequest"}),(0,t.jsx)(n.td,{children:"Access Control"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"ConfigRequest"}),(0,t.jsx)(n.td,{children:"Configuration"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"RestoreRequest"}),(0,t.jsx)(n.td,{children:"Backup"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SchemaRequest"}),(0,t.jsx)(n.td,{children:"Schema Management"})]})]})]}),"\n",(0,t.jsx)(n.p,{children:"When a user sends a request, the following parameters need to be passed in:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["client_version: an optional parameter, in HA mode, it can prevent outdated responses by comparing ",(0,t.jsx)(n.code,{children:"client_version"})," and ",(0,t.jsx)(n.code,{children:"server_version"})]}),"\n",(0,t.jsx)(n.li,{children:"token: a necessary parameter, the client obtains the token after logging in, and the token is passed in with each request to verify the user's identity"}),"\n",(0,t.jsx)(n.li,{children:"is_write_op: an optional parameter, indicating whether the request is a write request"}),"\n",(0,t.jsx)(n.li,{children:"user: an optional parameter, set user when synchronizing requests between master and slave in HA mode, and no token verification is required After the service processes the RPC request, it sends back a response."}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"In addition to containing separate response information for each request, the response message also includes the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"error_code: a necessary parameter, indicating the processing status of the request"}),"\n",(0,t.jsx)(n.li,{children:"redirect: an optional parameter, when processing fails to send a write request to a follower in HA mode, set redirect as the request forwarding address, that is, the leader address"}),"\n",(0,t.jsx)(n.li,{children:"error: an optional parameter, indicating the error information of the request"}),"\n",(0,t.jsxs)(n.li,{children:["server_version: an optional parameter, set ",(0,t.jsx)(n.code,{children:"server_version"})," in the HA mode request response to avoid reverse time travel when client reads data"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,t.jsx)(n.strong,{children:"Except for CypherRequest, PluginRequest, HARequest and AclRequest, all other RPC interfaces will be gradually deprecated, and their functions will be unified into the CypherRequest interface."})]}),"\n",(0,t.jsx)(n.h2,{id:"3login",children:"3.Login"}),"\n",(0,t.jsx)(n.p,{children:"The login request message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"user: a necessary parameter, the username"}),"\n",(0,t.jsx)(n.li,{children:"pass: a necessary parameter, the password"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user sends a login request using the constructed service stub:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" auto* req = request.mutable_acl_request();\n auto* auth = req->mutable_auth_request()->mutable_login();\n auth->set_user(user);\n auth->set_password(pass);\n // send data\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req->set_client_version(server_version);\n req->set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), req, &resp, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n token = res.acl_response().auth_response().token();\n"})}),"\n",(0,t.jsx)(n.p,{children:"The login response message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:'token: a necessary parameter. After successful login, a signed token, namely Json Web Token, will be received. The client stores the token and uses it for each subsequent request. If the login fails, an "Authentication failed" error will be received.'}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"4query",children:"4.Query"}),"\n",(0,t.jsx)(n.p,{children:"Users can interact with TuGraph through Cypher queries. The Cypher request message contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"query: a necessary parameter, the Cypher query statement"}),"\n",(0,t.jsx)(n.li,{children:"param_names: an optional parameter, the parameter name"}),"\n",(0,t.jsx)(n.li,{children:"param_values: an optional parameter, the parameter value"}),"\n",(0,t.jsx)(n.li,{children:"result_in_json_format: a necessary parameter, whether to return the query results in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"graph: an optional parameter, the subgraph name for executing the Cypher statement"}),"\n",(0,t.jsx)(n.li,{children:"timeout: an optional parameter, the timeout for executing the Cypher statement"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user sends a Cypher request as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n LGraphRequest req;\n req.set_client_version(server_version);\n req.set_token(token);\n lgraph::CypherRequest* cypher_req = req.mutable_cypher_request();\n cypher_req->set_graph(graph);\n cypher_req->set_query(query);\n cypher_req->set_timeout(timeout);\n cypher_req->set_result_in_json_format(true);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n server_version = std::max(server_version, res.server_version());\n CypherResponse cypher_res = res.cypher_response();\n"})}),"\n",(0,t.jsx)(n.p,{children:"The Cypher request response contains one of the following two parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"json_result: the Cypher query result in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"binary_result: the Cypher query result in the CypherResult format"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"5stored-procedures",children:"5.Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"To meet users' more complex query/update logic, TuGraph supports stored procedures written in C and Python. Users can use RPC requests to perform CRUD operations on stored procedures."}),"\n",(0,t.jsx)(n.h3,{id:"51load-stored-procedures",children:"5.1.Load Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for loading stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n",(0,t.jsx)(n.li,{children:"read_only: a necessary parameter, whether it is read-only"}),"\n",(0,t.jsx)(n.li,{children:"code: a necessary parameter, the ByteString generated by reading the stored procedure file"}),"\n",(0,t.jsx)(n.li,{children:"desc: an optional parameter, the stored procedure description"}),"\n",(0,t.jsx)(n.li,{children:"code_type: an optional parameter, the stored procedure code type, which can be PY, SO, CPP, or ZIP"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user loads the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string content;\n if (!FieldSpecSerializer::FileReader(source_file, content)) {\n std::swap(content, result);\n return false;\n }\n LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->set_version(version);\n lgraph::LoadPluginRequest* loadPluginRequest = pluginRequest->mutable_load_plugin_request();\n loadPluginRequest->set_code_type([](const std::string& type) {\n std::unordered_map um{\n {"SO", lgraph::LoadPluginRequest::SO},\n {"PY", lgraph::LoadPluginRequest::PY},\n {"ZIP", lgraph::LoadPluginRequest::ZIP},\n {"CPP", lgraph::LoadPluginRequest::CPP}};\n return um[type];\n }(code_type));\n loadPluginRequest->set_name(procedure_name);\n loadPluginRequest->set_desc(procedure_description);\n loadPluginRequest->set_read_only(read_only);\n loadPluginRequest->set_code(content);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for loading the stored procedure does not contain parameters, and if the loading fails, a BadInput exception will be thrown."}),"\n",(0,t.jsx)(n.h3,{id:"52invoke-stored-procedures",children:"5.2.Invoke Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for invoking stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n",(0,t.jsx)(n.li,{children:"param: a necessary parameter, the stored procedure parameters"}),"\n",(0,t.jsx)(n.li,{children:"result_in_json_format: an optional parameter, whether to return the invocation result in JSON format"}),"\n",(0,t.jsx)(n.li,{children:"in_process: an optional parameter, to be supported in the future"}),"\n",(0,t.jsx)(n.li,{children:"timeout: an optional parameter, the timeout for invoking the stored procedure"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user invokes the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::CallPluginRequest *cpRequest = pluginRequest->mutable_call_plugin_request();\n cpRequest->set_name(procedure_name);\n cpRequest->set_in_process(in_process);\n cpRequest->set_param(param);\n cpRequest->set_timeout(procedure_time_out);\n cpRequest->set_result_in_json_format(json_format);\n LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n if (json_format) {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->json_result();\n } else {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->reply();\n }\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for invoking the stored procedure contains one of the following two parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"reply: the stored procedure invocation result in the ByteString format"}),"\n",(0,t.jsx)(n.li,{children:"json_result: the stored procedure invocation result in JSON format"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"53delete-stored-procedures",children:"5.3.Delete Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for deleting stored procedures contains the following parameters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"name: a necessary parameter, the stored procedure name"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Taking C++ as an example, the user deletes the stored procedure as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::DelPluginRequest* dpRequest = pluginRequest->mutable_del_plugin_request();\n dpRequest->set_name(procedure_name);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for deleting the stored procedure does not contain parameters, and if the deletion fails, a BadInput exception will be thrown."}),"\n",(0,t.jsx)(n.h3,{id:"54list-stored-procedures",children:"5.4.List Stored Procedures"}),"\n",(0,t.jsx)(n.p,{children:"The request for listing stored procedures does not require parameters. Taking C++ as an example, the user lists the stored procedures as follows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(false);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->mutable_list_plugin_request();\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n result = res.mutable_plugin_response()->mutable_list_plugin_response()->reply();\n'})}),"\n",(0,t.jsx)(n.p,{children:"The response for listing the stored procedures contains the following parameter:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"reply: the procedure list in JSON format"}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>a});var t=r(6540);const s={},i=t.createContext(s);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/74344ff3.05879da4.js b/assets/js/74344ff3.05879da4.js
deleted file mode 100644
index f10433adeb..0000000000
--- a/assets/js/74344ff3.05879da4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1076],{2315:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>o,frontMatter:()=>i,metadata:()=>l,toc:()=>a});var t=r(4848),s=r(8453);const i={},d="Tugraph CLI",l={id:"en-US/source/utility-tools/tugraph-cli",title:"Tugraph CLI",description:"This document mainly introduces the CLI tool lgraph_cypher of TuGraph.",source:"@site/../docs/en-US/source/6.utility-tools/6.tugraph-cli.md",sourceDirName:"en-US/source/6.utility-tools",slug:"/en-US/source/utility-tools/tugraph-cli",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-cli",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cluster management",permalink:"/tugraph-db/en-US/source/utility-tools/ha-cluster-management"},next:{title:"TuGraph DataX",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-datax"}},c={},a=[{value:"1.Instructions",id:"1instructions",level:2},{value:"Single command mode",id:"single-command-mode",level:2},{value:"Command line Parameters:",id:"command-line-parameters",level:3},{value:"Examples:",id:"examples",level:3},{value:"Interactive mode",id:"interactive-mode",level:2},{value:"Enter lgraph_cypher interaction mode:",id:"enter-lgraph_cypher-interaction-mode",level:3},{value:"Command Description",id:"command-description",level:3},{value:"cypher query command:",id:"cypher-query-command",level:3},{value:"Auxiliary Features:",id:"auxiliary-features",level:3}];function h(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tugraph-cli",children:"Tugraph CLI"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the CLI tool lgraph_cypher of TuGraph."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1instructions",children:"1.Instructions"}),"\n",(0,t.jsx)(n.p,{children:"The TuGraph release comes with a query client named 'lgraph_cypher' that can be used to submit OpenCypher requests to the TuGraph server. The 'lgraph_cypher' client has two execution modes: single command mode and interactive mode."}),"\n",(0,t.jsx)(n.h2,{id:"single-command-mode",children:"Single command mode"}),"\n",(0,t.jsx)(n.p,{children:"In single-command mode, 'lgraph_cypher' can be used to submit a single Cypher query and print the result directly to the terminal. The printed result can also be easily redirected to a specified file. This is handy when users need to get a lot of results from the server and save them in files."}),"\n",(0,t.jsx)(n.p,{children:"In this mode, the 'lgraph_cypher' tool has the following options:"}),"\n",(0,t.jsx)(n.h3,{id:"command-line-parameters",children:"Command line Parameters:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Instructions"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--help"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"List all parameters and descriptions."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-example"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"List the command instances."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-c"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"A database configuration file used to obtain ip and port information."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-h"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Database server IP address. Omit this parameter if you have a configuration file. The default value is' 127.0.0.1 '"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-p"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Database server port. Omit this parameter if you have a configuration file. The default value is 7071"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-u"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"User name for logging in to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-P"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Password for logging in to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-f"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Contains the path to a single Cypher query single text file."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-s"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsxs)(n.td,{children:["Single-line cypher query command. Start and end with ",(0,t.jsx)(n.code,{children:'"'}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-t"}),(0,t.jsx)(n.td,{children:"int"}),(0,t.jsx)(n.td,{children:"Specifies the server timeout threshold for cypher queries. The default value is 150 seconds."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-format"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Query result display mode. Supports two formats: 'plain' and 'table'. The 'plain' format prints the query results in a single column. The 'table' format displays the query results in a tabular format. The default value is' table '"})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"examples",children:"Examples:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"cypher command file query:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u user -P password -f /home/usr/cypher.json\n\n"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"cypher command single-sentence query:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u user -P password -s "MATCH (n) RETURN n"\n\n'})}),"\n",(0,t.jsx)(n.h2,{id:"interactive-mode",children:"Interactive mode"}),"\n",(0,t.jsx)(n.p,{children:"'lgraph_cypher' can also be run in interactive mode. In interactive mode, the client stays connected to the server and interacts with the user in read-evaluate-print-loop."}),"\n",(0,t.jsx)(n.h3,{id:"enter-lgraph_cypher-interaction-mode",children:"Enter lgraph_cypher interaction mode:"}),"\n",(0,t.jsx)(n.p,{children:"If no '-f' or '-s' command line option added, 'lgraph_cypher' will enter interactive mode when running. how to use it:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u admin -P 73@TuGraph\n\n"})}),"\n",(0,t.jsx)(n.p,{children:"If the login is successful, the corresponding login success message will be displayed:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'**********************************************************************\n* TuGraph Graph Database X.Y.Z *\n* *\n* Copyright(C) 2018 Ant Group. All rights reserved. *\n* *\n**********************************************************************\nlogin success\n----------------------------------\nHost: 127.0.0.1\nPort: 7071\nUsername: admin\n----------------------------------\ntype ":help" to see all commands.\n>\n'})}),"\n",(0,t.jsx)(n.p,{children:"Now we also provide an interactive shell for users to enter Cypher queries or use the ':help' command to check for available commands."}),"\n",(0,t.jsx)(n.h3,{id:"command-description",children:"Command Description"}),"\n",(0,t.jsx)(n.p,{children:"In addition to the Cypher query, the shell of 'lgraph_cypher' accepts the following commands:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Command"}),(0,t.jsx)(n.th,{children:"Parameters"}),(0,t.jsx)(n.th,{children:"instructions"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":help"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Displays the server information and the corresponding description of all commands."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":db_info"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Query the current server status. /db/info for the corresponding REST API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":clear"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Clear the screen."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":use"}),(0,t.jsx)(n.td,{children:"{Graph Name}"}),(0,t.jsxs)(n.td,{children:["The graph specified with this name defaults to ",(0,t.jsx)(n.code,{children:"default"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":source"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"-t {Query the timeout value} -f {The query file}"})}),(0,t.jsx)(n.td,{children:"cypher command file query in interactive mode. The default timeout threshold is 150 seconds. Query file format reference No interactive query parameters."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":exit"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Exit interactive mode and return to the original command line."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":format"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"plain"})," or ",(0,t.jsx)(n.code,{children:"table"})]}),(0,t.jsx)(n.td,{children:"Change the display mode of cypher query results. Support 'plain' and 'table' modes."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":save all/command/result"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"-f {The file path}"})," ",(0,t.jsx)(n.code,{children:"{Cypher}"})]}),(0,t.jsx)(n.td,{children:"The cypher command (command), query result (result) or both (all) are stored. The default location is' /saved_cypher.txt '"})]})]})]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Note:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Each command should start with a colon ",(0,t.jsx)(n.code,{children:":"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:":save command example :"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:":save all -f /home/usr/saved.txt match (n) where return n, n.name limit 1000\n\n"})}),"\n",(0,t.jsx)(n.h3,{id:"cypher-query-command",children:"cypher query command:"}),"\n",(0,t.jsx)(n.p,{children:"In interactive mode, users can also directly input a single sentence cypher command for query, with \"'; ` \"end. Enter commands that are case insensitive. Here's an example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"login success\n>MATCH (n) RETURN n, n.name;\n+---+---+-------------+\n| | n |n.name |\n+---+---+-------------+\n| 0 | 0 |david |\n| 1 | 1 |Ann |\n| 2 | 2 |first movie |\n| 3 | 3 |Andres |\n+---+---+-------------+\ntime spent: 0.000520706176758\nsize of query: 4\n>\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cypher"})," supports multi-line input when typing commands. Users can use the ",(0,t.jsx)(n.code,{children:"ENTER"})," key to type long query statements into multiple lines. In the case of multi-line input, the beginning of the command line will change from ",(0,t.jsx)(n.code,{children:">"})," to ",(0,t.jsx)(n.code,{children:"=>"}),", and the user can continue to type the rest of the query."]}),"\n",(0,t.jsx)(n.p,{children:"Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"login success\n>MATCH (n)\n=>WHERE n.uid='M11'\n=>RETURN n, n.name;\n"})}),"\n",(0,t.jsx)(n.h3,{id:"auxiliary-features",children:"Auxiliary Features:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input History:"})," Press the up and down arrow keys in interactive mode to display the input history."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Auto Completion:"})," lgraph_cypher will automatically complete based on the input history. In the event of a completion prompt, pressing the right arrow key will automatically complete the command."]})]})}function o(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>l});var t=r(6540);const s={},i=t.createContext(s);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/74344ff3.9cfc5742.js b/assets/js/74344ff3.9cfc5742.js
new file mode 100644
index 0000000000..0696c3583e
--- /dev/null
+++ b/assets/js/74344ff3.9cfc5742.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1076],{3917:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>o,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var t=r(4848),s=r(8453);const i={},d="Tugraph CLI",l={id:"utility-tools/tugraph-cli",title:"Tugraph CLI",description:"This document mainly introduces the CLI tool lgraph_cypher of TuGraph.",source:"@site/../docs/en-US/source/6.utility-tools/6.tugraph-cli.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/tugraph-cli",permalink:"/tugraph-db/en/utility-tools/tugraph-cli",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:6,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cluster management",permalink:"/tugraph-db/en/utility-tools/ha-cluster-management"},next:{title:"TuGraph DataX",permalink:"/tugraph-db/en/utility-tools/tugraph-datax"}},a={},c=[{value:"1.Instructions",id:"1instructions",level:2},{value:"Single command mode",id:"single-command-mode",level:2},{value:"Command line Parameters:",id:"command-line-parameters",level:3},{value:"Examples:",id:"examples",level:3},{value:"Interactive mode",id:"interactive-mode",level:2},{value:"Enter lgraph_cypher interaction mode:",id:"enter-lgraph_cypher-interaction-mode",level:3},{value:"Command Description",id:"command-description",level:3},{value:"cypher query command:",id:"cypher-query-command",level:3},{value:"Auxiliary Features:",id:"auxiliary-features",level:3}];function h(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"tugraph-cli",children:"Tugraph CLI"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"This document mainly introduces the CLI tool lgraph_cypher of TuGraph."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1instructions",children:"1.Instructions"}),"\n",(0,t.jsx)(n.p,{children:"The TuGraph release comes with a query client named 'lgraph_cypher' that can be used to submit OpenCypher requests to the TuGraph server. The 'lgraph_cypher' client has two execution modes: single command mode and interactive mode."}),"\n",(0,t.jsx)(n.h2,{id:"single-command-mode",children:"Single command mode"}),"\n",(0,t.jsx)(n.p,{children:"In single-command mode, 'lgraph_cypher' can be used to submit a single Cypher query and print the result directly to the terminal. The printed result can also be easily redirected to a specified file. This is handy when users need to get a lot of results from the server and save them in files."}),"\n",(0,t.jsx)(n.p,{children:"In this mode, the 'lgraph_cypher' tool has the following options:"}),"\n",(0,t.jsx)(n.h3,{id:"command-line-parameters",children:"Command line Parameters:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Instructions"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--help"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"List all parameters and descriptions."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-example"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"List the command instances."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-c"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"A database configuration file used to obtain ip and port information."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-h"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Database server IP address. Omit this parameter if you have a configuration file. The default value is' 127.0.0.1 '"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-p"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Database server port. Omit this parameter if you have a configuration file. The default value is 7071"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-u"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"User name for logging in to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-P"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Password for logging in to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-f"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Contains the path to a single Cypher query single text file."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-s"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsxs)(n.td,{children:["Single-line cypher query command. Start and end with ",(0,t.jsx)(n.code,{children:'"'}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-t"}),(0,t.jsx)(n.td,{children:"int"}),(0,t.jsx)(n.td,{children:"Specifies the server timeout threshold for cypher queries. The default value is 150 seconds."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"-format"}),(0,t.jsx)(n.td,{children:"string"}),(0,t.jsx)(n.td,{children:"Query result display mode. Supports two formats: 'plain' and 'table'. The 'plain' format prints the query results in a single column. The 'table' format displays the query results in a tabular format. The default value is' table '"})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"examples",children:"Examples:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"cypher command file query:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:"\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u user -P password -f /home/usr/cypher.json\n\n"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"cypher command single-sentence query:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-powershell",children:'\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u user -P password -s "MATCH (n) RETURN n"\n\n'})}),"\n",(0,t.jsx)(n.h2,{id:"interactive-mode",children:"Interactive mode"}),"\n",(0,t.jsx)(n.p,{children:"'lgraph_cypher' can also be run in interactive mode. In interactive mode, the client stays connected to the server and interacts with the user in read-evaluate-print-loop."}),"\n",(0,t.jsx)(n.h3,{id:"enter-lgraph_cypher-interaction-mode",children:"Enter lgraph_cypher interaction mode:"}),"\n",(0,t.jsx)(n.p,{children:"If no '-f' or '-s' command line option added, 'lgraph_cypher' will enter interactive mode when running. how to use it:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"\n$ ./lgraph_cypher.py -c /home/usr/lgraph_standalone.json -u admin -P 73@TuGraph\n\n"})}),"\n",(0,t.jsx)(n.p,{children:"If the login is successful, the corresponding login success message will be displayed:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'**********************************************************************\n* TuGraph Graph Database X.Y.Z *\n* *\n* Copyright(C) 2018 Ant Group. All rights reserved. *\n* *\n**********************************************************************\nlogin success\n----------------------------------\nHost: 127.0.0.1\nPort: 7071\nUsername: admin\n----------------------------------\ntype ":help" to see all commands.\n>\n'})}),"\n",(0,t.jsx)(n.p,{children:"Now we also provide an interactive shell for users to enter Cypher queries or use the ':help' command to check for available commands."}),"\n",(0,t.jsx)(n.h3,{id:"command-description",children:"Command Description"}),"\n",(0,t.jsx)(n.p,{children:"In addition to the Cypher query, the shell of 'lgraph_cypher' accepts the following commands:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Command"}),(0,t.jsx)(n.th,{children:"Parameters"}),(0,t.jsx)(n.th,{children:"instructions"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":help"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Displays the server information and the corresponding description of all commands."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":db_info"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Query the current server status. /db/info for the corresponding REST API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":clear"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Clear the screen."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":use"}),(0,t.jsx)(n.td,{children:"{Graph Name}"}),(0,t.jsxs)(n.td,{children:["The graph specified with this name defaults to ",(0,t.jsx)(n.code,{children:"default"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":source"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"-t {Query the timeout value} -f {The query file}"})}),(0,t.jsx)(n.td,{children:"cypher command file query in interactive mode. The default timeout threshold is 150 seconds. Query file format reference No interactive query parameters."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":exit"}),(0,t.jsx)(n.td,{children:"\\"}),(0,t.jsx)(n.td,{children:"Exit interactive mode and return to the original command line."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":format"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"plain"})," or ",(0,t.jsx)(n.code,{children:"table"})]}),(0,t.jsx)(n.td,{children:"Change the display mode of cypher query results. Support 'plain' and 'table' modes."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:":save all/command/result"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"-f {The file path}"})," ",(0,t.jsx)(n.code,{children:"{Cypher}"})]}),(0,t.jsx)(n.td,{children:"The cypher command (command), query result (result) or both (all) are stored. The default location is' /saved_cypher.txt '"})]})]})]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Note:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Each command should start with a colon ",(0,t.jsx)(n.code,{children:":"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:":save command example :"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:":save all -f /home/usr/saved.txt match (n) where return n, n.name limit 1000\n\n"})}),"\n",(0,t.jsx)(n.h3,{id:"cypher-query-command",children:"cypher query command:"}),"\n",(0,t.jsx)(n.p,{children:"In interactive mode, users can also directly input a single sentence cypher command for query, with \"'; ` \"end. Enter commands that are case insensitive. Here's an example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"login success\n>MATCH (n) RETURN n, n.name;\n+---+---+-------------+\n| | n |n.name |\n+---+---+-------------+\n| 0 | 0 |david |\n| 1 | 1 |Ann |\n| 2 | 2 |first movie |\n| 3 | 3 |Andres |\n+---+---+-------------+\ntime spent: 0.000520706176758\nsize of query: 4\n>\n"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"lgraph_cypher"})," supports multi-line input when typing commands. Users can use the ",(0,t.jsx)(n.code,{children:"ENTER"})," key to type long query statements into multiple lines. In the case of multi-line input, the beginning of the command line will change from ",(0,t.jsx)(n.code,{children:">"})," to ",(0,t.jsx)(n.code,{children:"=>"}),", and the user can continue to type the rest of the query."]}),"\n",(0,t.jsx)(n.p,{children:"Example:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"login success\n>MATCH (n)\n=>WHERE n.uid='M11'\n=>RETURN n, n.name;\n"})}),"\n",(0,t.jsx)(n.h3,{id:"auxiliary-features",children:"Auxiliary Features:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input History:"})," Press the up and down arrow keys in interactive mode to display the input history."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Auto Completion:"})," lgraph_cypher will automatically complete based on the input history. In the event of a completion prompt, pressing the right arrow key will automatically complete the command."]})]})}function o(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>l});var t=r(6540);const s={},i=t.createContext(s);function d(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/75625650.41ed990d.js b/assets/js/75625650.41ed990d.js
new file mode 100644
index 0000000000..0d6e57cf03
--- /dev/null
+++ b/assets/js/75625650.41ed990d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1701],{2548:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>d,toc:()=>h});var l=s(4848),i=s(8453);const r={},o="\u65e5\u5fd7\u4fe1\u606f",d={id:"permission/log",title:"\u65e5\u5fd7\u4fe1\u606f",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u65e5\u5fd7\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/10.permission/5.log.md",sourceDirName:"10.permission",slug:"/permission/log",permalink:"/tugraph-db/zh/permission/log",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u8fd0\u7ef4\u76d1\u63a7",permalink:"/tugraph-db/zh/permission/monitoring"},next:{title:"\u5355\u5143\u6d4b\u8bd5",permalink:"/tugraph-db/zh/quality/unit-testing"}},c={},h=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u670d\u52a1\u5668\u65e5\u5fd7",id:"2\u670d\u52a1\u5668\u65e5\u5fd7",level:2},{value:"2.1.\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",id:"21\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",level:3},{value:"2.2.\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",id:"22\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",level:3},{value:"2.3.\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",id:"23\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",level:3},{value:"2.3.1.cpp\u5b58\u50a8\u8fc7\u7a0b",id:"231cpp\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"2.3.1.python\u5b58\u50a8\u8fc7\u7a0b",id:"231python\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"3.\u5ba1\u8ba1\u65e5\u5fd7",id:"3\u5ba1\u8ba1\u65e5\u5fd7",level:2}];function t(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"\u65e5\u5fd7\u4fe1\u606f",children:"\u65e5\u5fd7\u4fe1\u606f"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u65e5\u5fd7\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,l.jsx)(n.p,{children:"TuGraph \u4fdd\u7559\u4e24\u79cd\u7c7b\u578b\u7684\u65e5\u5fd7\uff1a\u670d\u52a1\u5668\u65e5\u5fd7\u548c\u5ba1\u8ba1\u65e5\u5fd7\u3002\u670d\u52a1\u5668\u65e5\u5fd7\u8bb0\u5f55\u4eba\u4e3a\u53ef\u8bfb\u7684\u670d\u52a1\u5668\u72b6\u6001\u4fe1\u606f\uff0c\u800c\u5ba1\u6838\u65e5\u5fd7\u7ef4\u62a4\u670d\u52a1\u5668\u4e0a\u6267\u884c\u7684\u6bcf\u4e2a\u64cd\u4f5c\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"2\u670d\u52a1\u5668\u65e5\u5fd7",children:"2.\u670d\u52a1\u5668\u65e5\u5fd7"}),"\n",(0,l.jsx)(n.h3,{id:"21\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",children:"2.1.\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879"}),"\n",(0,l.jsxs)(n.p,{children:["\u670d\u52a1\u5668\u65e5\u5fd7\u7684\u8f93\u51fa\u4f4d\u7f6e\u53ef\u4ee5\u901a\u8fc7",(0,l.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u6307\u5b9a\u3002\u670d\u52a1\u5668\u65e5\u5fd7\u8be6\u7ec6\u7a0b\u5ea6\u53ef\u901a\u8fc7",(0,l.jsx)(n.code,{children:"verbose"}),"\u914d\u7f6e\u9879\u6307\u5b9a\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\u9ed8\u8ba4\u4e3a\u7a7a\u3002\u82e5",(0,l.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\u4e3a\u7a7a\uff0c\u5219\u6240\u6709\u65e5\u5fd7\u4f1a\u8f93\u51fa\u5230\u63a7\u5236\u53f0(daemon\u6a21\u5f0f\u4e0b\u82e5log_dir\u914d\u7f6e\u9879\u4e3a\u7a7a\u5219\u4e0d\u4f1a\u5411console\u8f93\u51fa\u4efb\u4f55\u65e5\u5fd7)\uff1b\u82e5\u624b\u52a8\u6307\u5b9a",(0,l.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\uff0c\u5219\u65e5\u5fd7\u6587\u4ef6\u4f1a\u751f\u6210\u5728\u5bf9\u5e94\u7684\u8def\u5f84\u4e0b\u9762\u3002\u5355\u4e2a\u65e5\u5fd7\u6587\u4ef6\u6700\u5927\u5927\u5c0f\u4e3a256MB\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"verbose"}),"\u914d\u7f6e\u9879\u63a7\u5236\u65e5\u5fd7\u7684\u8be6\u7ec6\u7a0b\u5ea6\uff0c\u4ece\u7c97\u5230\u7ec6\u5206\u4e3a",(0,l.jsx)(n.code,{children:"0, 1, 2"}),"\u4e09\u4e2a\u7b49\u7ea7\uff0c\u9ed8\u8ba4\u7b49\u7ea7\u4e3a",(0,l.jsx)(n.code,{children:"1"}),"\u3002\u7b49\u7ea7\u4e3a",(0,l.jsx)(n.code,{children:"2"}),"\u65f6\uff0c\u65e5\u5fd7\u8bb0\u5f55\u6700\u8be6\u7ec6\uff0c\u670d\u52a1\u5668\u5c06\u6253\u5370",(0,l.jsx)(n.code,{children:"DEBUG"}),"\u53ca\u4ee5\u4e0a\u7b49\u7ea7\u7684\u5168\u90e8\u65e5\u5fd7\u4fe1\u606f\uff1b\u7b49\u7ea7\u4e3a",(0,l.jsx)(n.code,{children:"1"}),"\u65f6\uff0c\u670d\u52a1\u5668\u5c06\u4ec5\u6253\u5370",(0,l.jsx)(n.code,{children:"INFO"}),"\u7b49\u7ea7\u53ca\u4ee5\u4e0a\u7684\u4e3b\u8981\u4e8b\u4ef6\u7684\u65e5\u5fd7\uff1b\u7b49\u7ea7\u4e3a",(0,l.jsx)(n.code,{children:"0"}),"\u65f6\uff0c\u670d\u52a1\u5668\u5c06\u4ec5\u6253\u5370",(0,l.jsx)(n.code,{children:"ERROR"}),"\u7b49\u7ea7\u53ca\u4ee5\u4e0a\u7684\u9519\u8bef\u65e5\u5fd7\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"22\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",children:"2.2.\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679c\u5f00\u53d1\u8005\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5e0c\u671b\u5728\u4ee3\u7801\u4e2d\u6dfb\u52a0\u65e5\u5fd7\uff0c\u53ef\u4ee5\u53c2\u8003\u5982\u4e0b\u793a\u4f8b"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'#include "tools/lgraph_log.h" //\u6dfb\u52a0\u65e5\u5fd7\u4f9d\u8d56\n\n\nvoid LogExample() {\n // \u6570\u636e\u5e93\u542f\u52a8\u9636\u6bb5\u5df2\u7ecf\u5bf9\u65e5\u5fd7\u6a21\u5757\u8fdb\u884c\u4e86\u521d\u59cb\u5316\uff0c\u5f00\u53d1\u8005\u53ea\u9700\u76f4\u63a5\u8c03\u7528\u5b8f\u5373\u53ef\n // \u65e5\u5fd7\u7b49\u7ea7\u5206\u4e3aDEBUG, INFO, WARNING, ERROR, FATAL\u4e94\u4e2a\u7b49\u7ea7\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n LOG_FATAL() << "This is a fatal level log message.";\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u66f4\u591a\u7528\u6cd5\u53ef\u4ee5\u53c2\u8003test/test_lgraph_log.cpp\u4e2d\u7684\u65e5\u5fd7\u5b8f\u7684\u4f7f\u7528\u65b9\u6cd5"}),"\n",(0,l.jsx)(n.h3,{id:"23\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",children:"2.3.\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7"}),"\n",(0,l.jsxs)(n.p,{children:["\u7528\u6237\u5728\u5b58\u50a8\u8fc7\u7a0b\u7684\u7f16\u5199\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u4f7f\u7528\u65e5\u5fd7\u529f\u80fd\u5c06\u6240\u9700\u7684\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\u5230\u65e5\u5fd7\u4e2d\u8fdb\u884c\u67e5\u770b\uff0c\u8f85\u52a9\u5f00\u53d1\u3002\u8c03\u8bd5\u4fe1\u606f\u4f1a\u8f93\u51fa\u5230\u4e0e\u670d\u52a1\u5668\u65e5\u5fd7\u76f8\u540c\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d(\u5982\u672a\u6307\u5b9a",(0,l.jsx)(n.code,{children:"log_dir"}),"\u5219\u540c\u6837\u8f93\u51fa\u81f3console)"]}),"\n",(0,l.jsx)(n.h4,{id:"231cpp\u5b58\u50a8\u8fc7\u7a0b",children:"2.3.1.cpp\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,l.jsxs)(n.p,{children:["\u8bf7\u4f7f\u75282.2\u4e2d\u63d0\u4f9b\u7684log\u5b8f\u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\uff0c\u907f\u514d\u4f7f\u7528cout\u6216\u8005printf\u7b49\u8f93\u51fa\u65b9\u5f0f\u3002\u5177\u4f53\u4f7f\u7528\u65b9\u5f0f\u53ef\u53c2\u8003\u5982\u4e0b\u793a\u4f8b\u4ee3\u7801\uff08\u8be6\u89c1",(0,l.jsx)(n.code,{children:"procedures/demo/log_demo.cpp"}),"\uff09"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:'#include \n#include "lgraph/lgraph.h"\n#include "tools/lgraph_log.h" // add log dependency\nusing namespace lgraph_api;\n\nvoid LogExample() {\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n}\n\nextern "C" bool Process(GraphDB& db, const std::string& request, std::string& response) {\n response = "TuGraph log demo";\n LogExample();\n return true;\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u5c06\u4ee5\u4e0a\u793a\u4f8b\u4ee3\u7801\u4f5c\u4e3a\u5b58\u50a8\u8fc7\u7a0b\u63d2\u5165\u6570\u636e\u5e93\u5e76\u8fd0\u884c\u540e\uff0c\u53ef\u4ee5\u5728\u65e5\u5fd7\u6587\u4ef6\u4e2d\u770b\u5230\u76f8\u5e94\u7684\u65e5\u5fd7\u6761\u76ee\u3002"}),"\n",(0,l.jsx)(n.h4,{id:"231python\u5b58\u50a8\u8fc7\u7a0b",children:"2.3.1.python\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,l.jsx)(n.p,{children:"\u8bf7\u4f7f\u7528python\u81ea\u5e26\u7684print\u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\uff0c\u8c03\u8bd5\u4fe1\u606f\u4f1a\u5728\u5b58\u50a8\u8fc7\u7a0b\u8fd0\u884c\u7ed3\u675f\u540e\u5408\u5e76\u4e3a\u4e00\u6761WARN\u7b49\u7ea7\u7684\u65e5\u5fd7\u6761\u76ee\u8f93\u51fa\u81f3\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"3\u5ba1\u8ba1\u65e5\u5fd7",children:"3.\u5ba1\u8ba1\u65e5\u5fd7"}),"\n",(0,l.jsx)(n.p,{children:"\u5ba1\u6838\u65e5\u5fd7\u8bb0\u5f55\u6bcf\u4e2a\u8bf7\u6c42\u548c\u54cd\u5e94\uff0c\u4ee5\u53ca\u53d1\u9001\u8bf7\u6c42\u7684\u7528\u6237\u4ee5\u53ca\u6536\u5230\u8bf7\u6c42\u7684\u65f6\u95f4\u3002\u5ba1\u6838\u65e5\u5fd7\u53ea\u80fd\u662f\u6253\u5f00\u6216\u5173\u95ed\u72b6\u6001\u3002\u53ef\u4ee5\u4f7f\u7528 TuGraph \u53ef\u89c6\u5316\u5de5\u5177\u548c REST API \u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5f00\u542f\u5ba1\u8ba1\u65e5\u5fd7\u9700\u8981\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u5c06",(0,l.jsx)(n.code,{children:"enable_audit_log"}),"\u53c2\u6570\u8bbe\u7f6e\u4e3a",(0,l.jsx)(n.code,{children:"true"}),"\u3002\u914d\u7f6e\u6587\u4ef6\u548c\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u8be6\u89c1\uff1a",(0,l.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c/\u670d\u52a1\u914d\u7f6e"}),"\u3002"]})]})}function a(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(t,{...e})}):t(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var l=s(6540);const i={},r=l.createContext(i);function o(e){const n=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),l.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/75625650.a09318e0.js b/assets/js/75625650.a09318e0.js
deleted file mode 100644
index 1b08ca90f8..0000000000
--- a/assets/js/75625650.a09318e0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1701],{2548:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>h});var r=s(4848),l=s(8453);const i={},o="\u65e5\u5fd7\u4fe1\u606f",d={id:"zh-CN/source/permission/log",title:"\u65e5\u5fd7\u4fe1\u606f",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u65e5\u5fd7\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/10.permission/5.log.md",sourceDirName:"zh-CN/source/10.permission",slug:"/zh-CN/source/permission/log",permalink:"/tugraph-db/zh-CN/source/permission/log",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u8fd0\u7ef4\u76d1\u63a7",permalink:"/tugraph-db/zh-CN/source/permission/monitoring"},next:{title:"\u5355\u5143\u6d4b\u8bd5",permalink:"/tugraph-db/zh-CN/source/quality/unit-testing"}},c={},h=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u670d\u52a1\u5668\u65e5\u5fd7",id:"2\u670d\u52a1\u5668\u65e5\u5fd7",level:2},{value:"2.1.\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",id:"21\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",level:3},{value:"2.2.\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",id:"22\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",level:3},{value:"2.3.\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",id:"23\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",level:3},{value:"2.3.1.cpp\u5b58\u50a8\u8fc7\u7a0b",id:"231cpp\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"2.3.1.python\u5b58\u50a8\u8fc7\u7a0b",id:"231python\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"3.\u5ba1\u8ba1\u65e5\u5fd7",id:"3\u5ba1\u8ba1\u65e5\u5fd7",level:2}];function t(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u65e5\u5fd7\u4fe1\u606f",children:"\u65e5\u5fd7\u4fe1\u606f"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u65e5\u5fd7\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,r.jsx)(n.p,{children:"TuGraph \u4fdd\u7559\u4e24\u79cd\u7c7b\u578b\u7684\u65e5\u5fd7\uff1a\u670d\u52a1\u5668\u65e5\u5fd7\u548c\u5ba1\u8ba1\u65e5\u5fd7\u3002\u670d\u52a1\u5668\u65e5\u5fd7\u8bb0\u5f55\u4eba\u4e3a\u53ef\u8bfb\u7684\u670d\u52a1\u5668\u72b6\u6001\u4fe1\u606f\uff0c\u800c\u5ba1\u6838\u65e5\u5fd7\u7ef4\u62a4\u670d\u52a1\u5668\u4e0a\u6267\u884c\u7684\u6bcf\u4e2a\u64cd\u4f5c\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"2\u670d\u52a1\u5668\u65e5\u5fd7",children:"2.\u670d\u52a1\u5668\u65e5\u5fd7"}),"\n",(0,r.jsx)(n.h3,{id:"21\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879",children:"2.1.\u670d\u52a1\u5668\u65e5\u5fd7\u914d\u7f6e\u9879"}),"\n",(0,r.jsxs)(n.p,{children:["\u670d\u52a1\u5668\u65e5\u5fd7\u7684\u8f93\u51fa\u4f4d\u7f6e\u53ef\u4ee5\u901a\u8fc7",(0,r.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u6307\u5b9a\u3002\u670d\u52a1\u5668\u65e5\u5fd7\u8be6\u7ec6\u7a0b\u5ea6\u53ef\u901a\u8fc7",(0,r.jsx)(n.code,{children:"verbose"}),"\u914d\u7f6e\u9879\u6307\u5b9a\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\u9ed8\u8ba4\u4e3a\u7a7a\u3002\u82e5",(0,r.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\u4e3a\u7a7a\uff0c\u5219\u6240\u6709\u65e5\u5fd7\u4f1a\u8f93\u51fa\u5230\u63a7\u5236\u53f0(daemon\u6a21\u5f0f\u4e0b\u82e5log_dir\u914d\u7f6e\u9879\u4e3a\u7a7a\u5219\u4e0d\u4f1a\u5411console\u8f93\u51fa\u4efb\u4f55\u65e5\u5fd7)\uff1b\u82e5\u624b\u52a8\u6307\u5b9a",(0,r.jsx)(n.code,{children:"log_dir"}),"\u914d\u7f6e\u9879\uff0c\u5219\u65e5\u5fd7\u6587\u4ef6\u4f1a\u751f\u6210\u5728\u5bf9\u5e94\u7684\u8def\u5f84\u4e0b\u9762\u3002\u5355\u4e2a\u65e5\u5fd7\u6587\u4ef6\u6700\u5927\u5927\u5c0f\u4e3a256MB\u3002"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"verbose"}),"\u914d\u7f6e\u9879\u63a7\u5236\u65e5\u5fd7\u7684\u8be6\u7ec6\u7a0b\u5ea6\uff0c\u4ece\u7c97\u5230\u7ec6\u5206\u4e3a",(0,r.jsx)(n.code,{children:"0, 1, 2"}),"\u4e09\u4e2a\u7b49\u7ea7\uff0c\u9ed8\u8ba4\u7b49\u7ea7\u4e3a",(0,r.jsx)(n.code,{children:"1"}),"\u3002\u7b49\u7ea7\u4e3a",(0,r.jsx)(n.code,{children:"2"}),"\u65f6\uff0c\u65e5\u5fd7\u8bb0\u5f55\u6700\u8be6\u7ec6\uff0c\u670d\u52a1\u5668\u5c06\u6253\u5370",(0,r.jsx)(n.code,{children:"DEBUG"}),"\u53ca\u4ee5\u4e0a\u7b49\u7ea7\u7684\u5168\u90e8\u65e5\u5fd7\u4fe1\u606f\uff1b\u7b49\u7ea7\u4e3a",(0,r.jsx)(n.code,{children:"1"}),"\u65f6\uff0c\u670d\u52a1\u5668\u5c06\u4ec5\u6253\u5370",(0,r.jsx)(n.code,{children:"INFO"}),"\u7b49\u7ea7\u53ca\u4ee5\u4e0a\u7684\u4e3b\u8981\u4e8b\u4ef6\u7684\u65e5\u5fd7\uff1b\u7b49\u7ea7\u4e3a",(0,r.jsx)(n.code,{children:"0"}),"\u65f6\uff0c\u670d\u52a1\u5668\u5c06\u4ec5\u6253\u5370",(0,r.jsx)(n.code,{children:"ERROR"}),"\u7b49\u7ea7\u53ca\u4ee5\u4e0a\u7684\u9519\u8bef\u65e5\u5fd7\u3002"]}),"\n",(0,r.jsx)(n.h3,{id:"22\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b",children:"2.2.\u670d\u52a1\u5668\u65e5\u5fd7\u8f93\u51fa\u5b8f\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:"\u5982\u679c\u5f00\u53d1\u8005\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5e0c\u671b\u5728\u4ee3\u7801\u4e2d\u6dfb\u52a0\u65e5\u5fd7\uff0c\u53ef\u4ee5\u53c2\u8003\u5982\u4e0b\u793a\u4f8b"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'#include "tools/lgraph_log.h" //\u6dfb\u52a0\u65e5\u5fd7\u4f9d\u8d56\n\n\nvoid LogExample() {\n // \u6570\u636e\u5e93\u542f\u52a8\u9636\u6bb5\u5df2\u7ecf\u5bf9\u65e5\u5fd7\u6a21\u5757\u8fdb\u884c\u4e86\u521d\u59cb\u5316\uff0c\u5f00\u53d1\u8005\u53ea\u9700\u76f4\u63a5\u8c03\u7528\u5b8f\u5373\u53ef\n // \u65e5\u5fd7\u7b49\u7ea7\u5206\u4e3aDEBUG, INFO, WARNING, ERROR, FATAL\u4e94\u4e2a\u7b49\u7ea7\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n LOG_FATAL() << "This is a fatal level log message.";\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u66f4\u591a\u7528\u6cd5\u53ef\u4ee5\u53c2\u8003test/test_lgraph_log.cpp\u4e2d\u7684\u65e5\u5fd7\u5b8f\u7684\u4f7f\u7528\u65b9\u6cd5"}),"\n",(0,r.jsx)(n.h3,{id:"23\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7",children:"2.3.\u5b58\u50a8\u8fc7\u7a0b\u65e5\u5fd7"}),"\n",(0,r.jsxs)(n.p,{children:["\u7528\u6237\u5728\u5b58\u50a8\u8fc7\u7a0b\u7684\u7f16\u5199\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u4f7f\u7528\u65e5\u5fd7\u529f\u80fd\u5c06\u6240\u9700\u7684\u8c03\u8bd5\u4fe1\u606f\u8f93\u51fa\u5230\u65e5\u5fd7\u4e2d\u8fdb\u884c\u67e5\u770b\uff0c\u8f85\u52a9\u5f00\u53d1\u3002\u8c03\u8bd5\u4fe1\u606f\u4f1a\u8f93\u51fa\u5230\u4e0e\u670d\u52a1\u5668\u65e5\u5fd7\u76f8\u540c\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d(\u5982\u672a\u6307\u5b9a",(0,r.jsx)(n.code,{children:"log_dir"}),"\u5219\u540c\u6837\u8f93\u51fa\u81f3console)"]}),"\n",(0,r.jsx)(n.h4,{id:"231cpp\u5b58\u50a8\u8fc7\u7a0b",children:"2.3.1.cpp\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(n.p,{children:["\u8bf7\u4f7f\u75282.2\u4e2d\u63d0\u4f9b\u7684log\u5b8f\u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\uff0c\u907f\u514d\u4f7f\u7528cout\u6216\u8005printf\u7b49\u8f93\u51fa\u65b9\u5f0f\u3002\u5177\u4f53\u4f7f\u7528\u65b9\u5f0f\u53ef\u53c2\u8003\u5982\u4e0b\u793a\u4f8b\u4ee3\u7801\uff08\u8be6\u89c1",(0,r.jsx)(n.code,{children:"procedures/demo/log_demo.cpp"}),"\uff09"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:'#include \n#include "lgraph/lgraph.h"\n#include "tools/lgraph_log.h" // add log dependency\nusing namespace lgraph_api;\n\nvoid LogExample() {\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n}\n\nextern "C" bool Process(GraphDB& db, const std::string& request, std::string& response) {\n response = "TuGraph log demo";\n LogExample();\n return true;\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u5c06\u4ee5\u4e0a\u793a\u4f8b\u4ee3\u7801\u4f5c\u4e3a\u5b58\u50a8\u8fc7\u7a0b\u63d2\u5165\u6570\u636e\u5e93\u5e76\u8fd0\u884c\u540e\uff0c\u53ef\u4ee5\u5728\u65e5\u5fd7\u6587\u4ef6\u4e2d\u770b\u5230\u76f8\u5e94\u7684\u65e5\u5fd7\u6761\u76ee\u3002"}),"\n",(0,r.jsx)(n.h4,{id:"231python\u5b58\u50a8\u8fc7\u7a0b",children:"2.3.1.python\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsx)(n.p,{children:"\u8bf7\u4f7f\u7528python\u81ea\u5e26\u7684print\u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\uff0c\u8c03\u8bd5\u4fe1\u606f\u4f1a\u5728\u5b58\u50a8\u8fc7\u7a0b\u8fd0\u884c\u7ed3\u675f\u540e\u5408\u5e76\u4e3a\u4e00\u6761WARN\u7b49\u7ea7\u7684\u65e5\u5fd7\u6761\u76ee\u8f93\u51fa\u81f3\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"3\u5ba1\u8ba1\u65e5\u5fd7",children:"3.\u5ba1\u8ba1\u65e5\u5fd7"}),"\n",(0,r.jsx)(n.p,{children:"\u5ba1\u6838\u65e5\u5fd7\u8bb0\u5f55\u6bcf\u4e2a\u8bf7\u6c42\u548c\u54cd\u5e94\uff0c\u4ee5\u53ca\u53d1\u9001\u8bf7\u6c42\u7684\u7528\u6237\u4ee5\u53ca\u6536\u5230\u8bf7\u6c42\u7684\u65f6\u95f4\u3002\u5ba1\u6838\u65e5\u5fd7\u53ea\u80fd\u662f\u6253\u5f00\u6216\u5173\u95ed\u72b6\u6001\u3002\u53ef\u4ee5\u4f7f\u7528 TuGraph \u53ef\u89c6\u5316\u5de5\u5177\u548c REST API \u67e5\u8be2\u7ed3\u679c\u3002"}),"\n",(0,r.jsxs)(n.p,{children:["\u5f00\u542f\u5ba1\u8ba1\u65e5\u5fd7\u9700\u8981\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u5c06",(0,r.jsx)(n.code,{children:"enable_audit_log"}),"\u53c2\u6570\u8bbe\u7f6e\u4e3a",(0,r.jsx)(n.code,{children:"true"}),"\u3002\u914d\u7f6e\u6587\u4ef6\u548c\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u8be6\u89c1\uff1a",(0,r.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c/\u670d\u52a1\u914d\u7f6e"}),"\u3002"]})]})}function a(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(t,{...e})}):t(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var r=s(6540);const l={},i=r.createContext(l);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7570a526.826199a1.js b/assets/js/7570a526.826199a1.js
new file mode 100644
index 0000000000..560c2432a3
--- /dev/null
+++ b/assets/js/7570a526.826199a1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8552],{9225:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>a,frontMatter:()=>c,metadata:()=>o,toc:()=>h});var t=r(4848),i=r(8453);const c={},s="\u6027\u80fd\u4f18\u5148",o={id:"introduction/characteristics/performance-oriented",title:"\u6027\u80fd\u4f18\u5148",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6027\u80fd\u4f18\u5148\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/5.characteristics/1.performance-oriented.md",sourceDirName:"2.introduction/5.characteristics",slug:"/introduction/characteristics/performance-oriented",permalink:"/tugraph-db/zh/introduction/characteristics/performance-oriented",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",permalink:"/tugraph-db/zh/introduction/schema"},next:{title:"\u591a\u5c42\u7ea7\u63a5\u53e3",permalink:"/tugraph-db/zh/introduction/characteristics/multi-level-Interfaces"}},d={},h=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u56fe\u64cd\u4f5c\u7684\u7279\u6027",id:"2\u56fe\u64cd\u4f5c\u7684\u7279\u6027",level:2},{value:"3.\u5b58\u50a8\u6570\u636e\u7ed3\u6784",id:"3\u5b58\u50a8\u6570\u636e\u7ed3\u6784",level:2},{value:"4.\u6570\u636e\u7f16\u7801",id:"4\u6570\u636e\u7f16\u7801",level:2}];function l(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u6027\u80fd\u4f18\u5148",children:"\u6027\u80fd\u4f18\u5148"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6027\u80fd\u4f18\u5148\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u662f\u4e16\u754c\u4e0a\u6700\u5feb\u7684\u56fe\u6570\u636e\u5e93\uff0c\u5728\u56fe\u6570\u636e\u5e93\u6807\u51c6\u8bc4\u6d4bLDBC SNB Interactive\u4f4d\u5c45\u699c\u9996\uff082023.3\uff09\u3002TuGraph\u7684\u8bbe\u8ba1\u57fa\u4e8e\u6027\u80fd\u4f18\u5148\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u9ad8\u6027\u80fd\u7684\u5355\u673a\u56fe\u6570\u636e\u5e93\u3002\u8be5\u6587\u6863\u662fTuGraph\u57fa\u4e8e\u6027\u80fd\u4f18\u5148\u5728\u5b58\u50a8\u5c42\u7684\u6838\u5fc3\u8bbe\u8ba1\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2\u56fe\u64cd\u4f5c\u7684\u7279\u6027",children:"2.\u56fe\u64cd\u4f5c\u7684\u7279\u6027"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u5c5e\u6027\u56fe\u4e0a\u7684\u64cd\u4f5c\u6d89\u53ca\u8bfb\u3001\u5199\u53ca\u5176\u5c5e\u6027\uff0c\u5bf9\u4e00\u4e9b\u7279\u6b8a\u7684\u5c5e\u6027\u6bd4\u5982\u65f6\u95f4\u6233\u4e5f\u8bbf\u95ee\u6a21\u5f0f\u4e5f\u4f1a\u5f71\u54cd\u5230\u6574\u4f53\u6027\u80fd\u3002\u8fd9\u91cc\u901a\u8fc7\u5bf9\u4e00\u4e9b\u56fe\u64cd\u4f5c\u7279\u6027\u7684\u89c4\u5f8b\u603b\u7ed3\uff0c\u6765\u6307\u5bfc\u6700\u7ec8\u7684\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u6211\u4eec\u89c2\u5bdf\u5230\u5f88\u591a\u56fe\u5e94\u7528\u6709\u7c7b\u4f3c\u7684\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\u3002\u4f8b\u5982\uff0c\u5728\u4fe1\u8d37\u98ce\u9669\u63a7\u5236\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u9012\u5f52\u8def\u5f84\u8fc7\u6ee4\u641c\u7d22\u591a\u5bf9\u4e00\u6a21\u5f0f\uff0c\u4ee5\u627e\u5230\u53ef\u7591\u7684\u4fe1\u7528\u6b3a\u8bc8\u7528\u6237\u548c\u884c\u4e3a\u3002\u9488\u5bf9\u7f51\u7edc\u8d4c\u535a\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bc6\u522b\u77ed\u65f6\u95f4\u5185\u7684\u591a\u7b14\u8d44\u91d1\u8f6c\u79fb\uff0c\u6765\u53d1\u73b0\u6d89\u8d4c\u7684\u8d44\u91d1\u8d26\u53f7\u3002\u80a1\u6743\u7a7f\u900f\u573a\u666f\u5bf9\u5b9e\u4f53\u95f4\u7684\u80a1\u6743\u5173\u7cfb\u8fdb\u884c\u9012\u5f52\u8ba1\u7b97\u3002\u8fd9\u4e9b\u573a\u666f\u5177\u6709\u591a\u8df3\u5b9e\u4f53\u548c\u5173\u7cfb\u8bbf\u95ee\u3001\u65f6\u95f4\u7a97\u53e3\u7ea6\u675f\u548c\u8bfb\u5199\u4e8b\u52a1\u7b49\u5e38\u89c1\u6a21\u5f0f\u3002\n\u66f4\u8fdb\u4e00\u6b65\uff0c\u4ece\u4ecb\u7ecd\u4e2d\u7684\u8ba8\u8bba\u548c\u56fe\u8d1f\u8f7d\u7684\u5206\u6790\u4e2d\uff0c\u5f52\u7eb3\u51fa\u4ee5\u4e0b\u7279\u5f81:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e00"})," KHop\u662f\u56fe\u4e2d\u6700\u5178\u578b\u7684\u64cd\u4f5c\uff0c\u5b83\u57fa\u4e8e\u70b9\u548c\u8fb9\u7684\u56fe\u62d3\u6251\u7684\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\uff0c\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u7740\u672c\u8d28\u7684\u533a\u522b\u3002KHop \u7684\u5178\u578b\u6027\u9664\u4e86\u8868\u73b0\u5728\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\u4e0d\u540c\uff0c\u5b83\u540c\u65f6\u4e5f\u662f\u56fe\u6570\u636e\u5e93\u6700\u9700\u8981\u5173\u6ce8\u7684\u6027\u80fd\u70b9\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e8c"})," \u56fe\u8d1f\u8f7d\u7684\u6570\u636e\u8bbf\u95ee\u5728\u62d3\u6251\u4e0a\u6709\u4e00\u5b9a\u7684\u5c40\u90e8\u6027\uff0c\u540c\u4e00\u4e2a\u70b9\u7684\u8fb9\u901a\u5e38\u4f1a\u88ab\u540c\u65f6\u8bbf\u95ee\u3002\u5f53\u8fd9\u4e9b\u8fb9\u7684\u6807\u7b7e\u76f8\u540c\u65f6\uff0c\u6709\u66f4\u5927\u7684\u6982\u7387\u4f1a\u88ab\u540c\u65f6\u8bbf\u95ee\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e09"})," \u56fe\u8d1f\u8f7d\u5728\u8bbf\u95ee\u70b9\u8fb9\u65f6\uff0c\u901a\u5e38\u4f1a\u8bbf\u95ee\u5176\u5bf9\u5e94\u7684\u5c5e\u6027\uff0c\u6765\u4f5c\u4e3a\u904d\u5386\u8fc7\u6ee4\u7684\u6761\u4ef6\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u56db"})," \u5728\u57fa\u4e8e\u65f6\u5e8f\u7684\u56fe\u8d1f\u8f7d\uff0c\u5bf9\u70b9\u8fb9\u7684\u8fc7\u6ee4\u901a\u5e38\u662f\u5728\u67d0\u4e2a\u65f6\u95f4\u8303\u56f4\uff0c\u6bd4\u5982\u6700\u8fd1\u7684\u4e00\u5468\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e94"})," \u5199\u64cd\u4f5c\u53ef\u80fd\u4f34\u968f\u7740\u5927\u91cf\u7684\u8bfb\u64cd\u4f5c\uff0c\u9700\u8981\u5728\u5355\u4e2a\u4e8b\u52a1\u5468\u671f\u91cc\u5904\u7406\u3002"]}),"\n",(0,t.jsx)(n.p,{children:"\u901a\u8fc7\u5bf9\u5b9e\u9645\u7ebf\u4e0a\u56fe\u5e94\u7528\u7684\u5206\u6790\uff0c\u56fe\u8d1f\u8f7d\u7684\u8bfb\u5199\u6bd4\u7387\u5927\u7ea6\u4e3a 20:1\uff0c\u867d\u7136\u573a\u666f\u5c40\u9650\u5728\u91d1\u878d\u573a\u666f\uff0c\u96c6\u7fa4\u6570\u4e5f\u6709\u9650\uff0c\u4f46\u6d89\u53ca\u7684\u6570\u636e\u89c4\u6a21\u548c\u7528\u6237\u91cf\u975e\u5e38\u5e9e\u5927\uff0c\u5177\u6709\u4e00\u5b9a\u4ee3\u8868\u6027\u300220:1 \u7684\u56fe\u8d1f\u8f7d\u8bfb\u5199\u6bd4\u7387\uff0c\u8bf4\u660e\u8bfb\u5de5\u4f5c\u8d1f\u8f7d\u5bf9\u6574\u4f53\u6027\u80fd\u7684\u5f71\u54cd\u66f4\u5927\uff0c \u800c\u5199\u5de5\u4f5c\u8d1f\u8f7d\u7684\u6027\u80fd\u4e5f\u4e0d\u80fd\u5ffd\u89c6\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"3\u5b58\u50a8\u6570\u636e\u7ed3\u6784",children:"3.\u5b58\u50a8\u6570\u636e\u7ed3\u6784"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u5e95\u5c42\u91c7\u7528B+\u6811\u6765\u652f\u6301\u5b9e\u65f6\u7684\u589e\u5220\u67e5\u6539\u4e8b\u52a1\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u6392\u5e8f\u6811\u7684\u6570\u636e\u7ed3\u6784\u4e2d\uff0cB+\u6811\u548cLSM\u6811\u4e3a\u4e3b\u8981\u4ee3\u8868\u3002B+\u6811\u5728\u6811\u8282\u70b9\u4e2d\u4f7f\u7528\u62c6\u5206\u548c\u5408\u5e76\u5f0f\u6765\u66f4\u65b0\u6392\u5e8f\u6570\u636e\uff0c\u800c LSM \u6811\u5728\u65e5\u5fd7\u4e2d\u8ffd\u52a0\u66f4\u65b0\uff0c\u4ee5\u8fdb\u884c\u5ef6\u8fdf\u6570\u636e\u5408\u5e76\u3002B+ \u65e9\u671f\u7528\u5728\u6587\u4ef6\u7cfb\u7edf\u7684\u5b9e\u73b0\u4e2d\uff0c\u901a\u8fc7\u5c06\u6570\u636e\u4fdd\u5b58 \u5728\u81ea\u9002\u5e94\u957f\u5ea6\u7684\u53f6\u5b50\u8282\u70b9\u4e2d\uff0c\u89e3\u51b3\u786c\u76d8\u987a\u5e8f\u64cd\u4f5c\u548c\u968f\u673a\u64cd\u4f5c\u6027\u80fd\u5b58\u5728\u6570\u636e\u91cf\u7ea7\u5dee\u522b\u7684\u95ee\u9898\uff0c\u6709\u8f83\u5747\u8861\u7684\u8bfb\u5199\u6027\u80fd\u3002LSM \u6811\u7684\u4e3b\u8981\u4f18\u52bf\u4f7f\u7528 WAL(Write Ahead Log) \u8fdb\u884c\u66f4\u65b0\uff0c\u5c06\u66f4\u65b0\u64cd\u4f5c\u53d8\u6210\u987a\u5e8f\u64cd\u4f5c\uff0c\u5728\u952e\u503c\u8f83\u5c0f\u65f6\u6027\u80fd\u4f18\u52bf\u5c24\u4e3a\u7a81\u51fa\u3002WAL \u610f\u5473\u7740\u5c06\u6570\u636e\u7684\u66f4\u65b0\u5408\u5e76\u63a8\u8fdf\uff0c\u6279\u91cf\u66f4\u65b0\u80fd\u63d0\u5347\u7efc\u5408\u6548\u7387\uff0c\u4e5f\u4f7f\u5f97\u7cfb\u7edf\u7684\u8c03\u5ea6\u53d8\u5f97\u590d\u6742\u3002\u5982\u679c\u66f4\u65b0\u5408\u5e76\u5b8c\u6210\u524d\uff0c\u6070\u597d\u5bf9\u5176\u4e2d\u7684\u6570\u636e\u7ee7\u7eed\u8bfb\u53d6\uff0cLSM \u6811\u5c31\u9700\u8981\u8bfb\u53d6\u51e0\u4e2a\u5c42\u7ea7\u5c40\u90e8\u5408\u5e76\u7684\u65e5\u5fd7\uff0c\u4f1a\u5bfc\u81f4\u8bfb\u53d6\u653e\u5927\u548c\u7a7a\u95f4\u653e\u5927\uff0c\u4ece\u800c\u5f71\u54cd\u8bfb\u6548\u7387\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u603b\u7ed3\u6765\u8bf4\uff0cB+ \u6811\u6709\u8f83\u597d\u7684\u987a\u5e8f\u8bfb\u5199\u6027\u80fd\uff0c\u800c LSM \u6811\u5728\u6570\u636e\u968f\u673a\u5199\u65b9\u9762\u5360\u4f18\u3002\u6b64\u5916 LSM \u6811\u91c7\u7528\u540e\u53f0\u5408\u5e76\u7684\u65b9\u5f0f\uff0c\u4f7f\u5f97\u6027\u80fd\u7684\u6ce2\u52a8\u96be\u4ee5\u9884\u671f\uff0c\u6027\u80fd\u6ce2\u52a8\u548c\u4e0a\u5c42\u5b58\u50a8\u548c\u8ba1\u7b97\u7684\u5173\u8054\u6027\u8f83\u5f31\uff0c\u589e\u52a0\u4e86\u6574\u4f53\u8bbe\u8ba1\u7684\u6210\u672c\u3002\u7efc\u4e0a\u8003\u8651\uff0cTuGraph \u9009\u7528 B+ \u6811\u4f5c\u4e3a\u8bfb\u6027\u80fd\u4f18\u5148\u7684\u5b9e\u73b0\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"4\u6570\u636e\u7f16\u7801",children:"4.\u6570\u636e\u7f16\u7801"}),"\n",(0,t.jsx)(n.p,{children:"\u5bf9\u4e8e\u5c5e\u6027\u56fe\u6a21\u578b\u800c\u8a00\uff0c\u9664\u4e86\u56fe\u62d3\u6251\u7f16\u7801\u5916\uff0c\u5c5e\u6027\u6570\u636e\u4e5f\u4f1a\u5f88\u5927\u7a0b\u5ea6\u5f71\u54cd\u529f\u80fd\u548c\u6027\u80fd\uff0c\u6211\u4eec\u5148\u8ba8\u8bba\u5c5e\u6027\u6570\u636e\u5982\u4f55\u4e0e\u62d3\u6251\u6570\u636e\u5171\u5b58\u7684\u7f16\u7801\u683c\u5f0f\u3002\u4ece\u76ee\u524d\u7684\u8c03\u7814\u6765\u770b\uff0c\u5c5e\u6027\u7f16\u7801\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u57fa\u4e8e\u6307\u9488\u7d22\u5f15\u5c06\u5c5e\u6027\u6570\u636e\u5355\u72ec\u5b58\u50a8\u7684\u79bb\u6563\u7f16\u7801\uff0c\u548c\u5c06\u5c5e\u6027\u6570\u636e\u548c\u62d3\u6251\u6570\u636e\u6253\u5305\u5728\u4e00\u8d77\u7684\u7d27\u51d1\u7f16\u7801\u3002\u79bb\u6563\u7f16\u7801\u6839\u636e\u7a0b\u5ea6\u7684\u4e0d\u540c\uff0c\u53ef\u4ee5\u6bcf\u4e2a\u5c5e\u6027\u90fd\u5355\u72ec\u5b58\u50a8\uff0c\u6216\u8005\u6bcf\u6761\u8fb9\u7684\u5c5e\u6027\u6253\u5305\u540e\u5404\u81ea\u5b58\u50a8\uff0c\u4e0b\u9762\u7684\u8ba8\u8bba\u5bf9\u4e24\u79cd\u60c5\u51b5\u90fd\u9002\u7528\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u70b9\u67e5\u8be2\u3002\u5c5e\u6027\u7f16\u7801\u4e3b\u8981\u9488\u5bf9\u8fb9\uff0c\u4e0d\u6d89\u53ca\u70b9\u67e5\u8be2\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5355\u8fb9\u67e5\u8be2\u3002\u79bb\u6563\u7f16\u7801\u901a\u8fc7\u6307\u9488\u5b9a\u4f4d\u8fb9\uff0c\u7d27\u51d1\u7f16\u7801\u5219\u9700\u8981\u4e8c\u5206\u67e5\u627e\u5b9a\u4f4d\u8fb9\u7684\u4f4d\u7f6e\uff0c\u79bb\u6563\u7f16\u7801\u6709\u7565\u5fae\u7684\u4f18\u52bf\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u8fb9\u904d\u5386\u3002\u79bb\u6563\u7f16\u7801\u5728\u8fb9\u904d\u5386\u8fc7\u7a0b\u9700\u8981\u4e0d\u65ad\u5730\u8fdb\u884c\u6307\u9488\u8df3\u8f6c\u8fdb\u884c\u968f\u673a\u6570\u636e\u8bbf\u95ee\uff0c\u800c\u7d27\u51d1\u7f16\u7801\u63d0\u524d\u628a\u6570\u636e\u6392\u5217\u5728\u4e00\u8d77\uff0c\u987a\u5e8f\u8bbf\u95ee\u7684\u7279\u6027\u4f7f\u5f97\u6548\u7387\u5927\u5927\u63d0\u5347\u3002 \u7531\u89c4\u5f8b\u4e09\u77e5\u5bf9\u8fb9\u7684\u904d\u5386\u64cd\u4f5c\u5f88\u666e\u904d\uff0c\u7d27\u51d1\u7f16\u7801\u5728\u8fb9\u904d\u5386\u7684\u4f18\u52bf\u660e\u663e\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5355\u8fb9\u66f4\u65b0\u3002\u79bb\u6563\u7f16\u7801\u5bf9\u8fb9\u7684\u66f4\u65b0\u4ec5\u9700\u627e\u5230\u5bf9\u5e94\u7684\u6307\u9488\u4f4d\u7f6e\uff0c\u63d2\u5165\u6570\u636e\u540e\u4fee\u6539\u524d\u540e\u6307\u9488\u6307\u5411\u3002\u7d27\u51d1\u7f16\u7801\u5219\u9700\u8981\u5bf9\u7d27\u51d1\u6392\u5217\u7684\u6570\u636e\u8fdb\u884c\u91cd\u7f16\u7801\uff0c\u5bf9\u6574\u4e2a\u8fb9\u503c\u8fdb\u884c\u91cd\u65b0\u5199\u5165\uff0c\u5f00\u9500\u663e\u8457\u5927\u4e8e\u79bb\u6563\u7f16\u7801\u7684\u60c5\u5f62\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u6279\u91cf\u8fb9\u66f4\u65b0\u3002\u6279\u91cf\u66f4\u65b0\u53ef\u4ee5\u5728\u5185\u5b58\u4e2d\u9884\u5148\u6784\u5efa\u70b9\u7684\u6240\u6709\u8fb9\u5c5e\u6027\uff0c\u4e00\u6b21\u6027\u7f16\u7801\u5199\u5165\uff0c\u79bb\u6563\u7f16\u7801\u548c\u7d27\u51d1\u7f16\u7801\u76f8\u5f53\u3002\u4f46\u7d27\u51d1\u7f16\u7801\u4e0d\u9700\u8981\u5b58\u50a8\u6307\u9488\u53d8\u91cf\uff0c\u66f4\u5c11\u7684\u5b58\u50a8\u7a7a\u95f4\u6548\u7387\u4e5f\u4f1a\u66f4\u9ad8\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u4ee5\u4e0a\u79bb\u6563\u7f16\u7801\u548c\u7d27\u51d1\u7f16\u7801\u5728\u67d0\u4e00\u7c7b\u7684\u67e5\u8be2\u7684\u6027\u80fd\u95ee\u9898\uff0c\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316\u7684\u6765\u7f13\u89e3\u3002\u6574\u4f53\u4e0a\u8bf4\uff0c\u7531\u4e8e\u56fe\u8d1f\u8f7d\u8bfb\u5199 20:1 \u7684\u7279\u6027\uff0c\u8bfb\u6027\u80fd\u5728\u6574\u4f53\u6027\u80fd\u4e2d\u5360\u6bd4\u66f4\u9ad8\u3002\u4ee5\u53ca\u89c4\u5f8b\u4e09\u6240\u63ed\u793a\u7684\u5bf9\u5c5e\u6027\u8bbf\u95ee\u7684\u7279\u5f81\uff0cTuGraph \u66f4\u503e\u5411\u4e8e\u91c7\u7528\u7d27\u51d1\u7f16\u7801\u6765\u4fdd\u8bc1\u8bfb\u6027\u80fd\u3002\u5176\u4e3b\u8981\u5f31\u52bf\u4e3a\u5355\u8fb9\u66f4\u65b0\u65f6\u91cd\u7f16\u7801\u7684\u5f00\u9500\uff0c\u53ef\u4ee5\u7528\u81ea\u9002\u5e94\u6620\u5c04\u7684\u6280\u672f\u6765\u89e3\u51b3\u3002"})]})}function a(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>o});var t=r(6540);const i={},c=t.createContext(i);function s(e){const n=t.useContext(c);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),t.createElement(c.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7570a526.d55bf85f.js b/assets/js/7570a526.d55bf85f.js
deleted file mode 100644
index bb8d2f292e..0000000000
--- a/assets/js/7570a526.d55bf85f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8552],{9225:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>s,metadata:()=>o,toc:()=>h});var t=r(4848),c=r(8453);const s={},i="\u6027\u80fd\u4f18\u5148",o={id:"zh-CN/source/introduction/characteristics/performance-oriented",title:"\u6027\u80fd\u4f18\u5148",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6027\u80fd\u4f18\u5148\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/5.characteristics/1.performance-oriented.md",sourceDirName:"zh-CN/source/2.introduction/5.characteristics",slug:"/zh-CN/source/introduction/characteristics/performance-oriented",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/performance-oriented",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph\u56fe\u6a21\u578b\u8bf4\u660e",permalink:"/tugraph-db/zh-CN/source/introduction/schema"},next:{title:"\u591a\u5c42\u7ea7\u63a5\u53e3",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/multi-level-Interfaces"}},d={},h=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u56fe\u64cd\u4f5c\u7684\u7279\u6027",id:"2\u56fe\u64cd\u4f5c\u7684\u7279\u6027",level:2},{value:"3.\u5b58\u50a8\u6570\u636e\u7ed3\u6784",id:"3\u5b58\u50a8\u6570\u636e\u7ed3\u6784",level:2},{value:"4.\u6570\u636e\u7f16\u7801",id:"4\u6570\u636e\u7f16\u7801",level:2}];function l(e){const n={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u6027\u80fd\u4f18\u5148",children:"\u6027\u80fd\u4f18\u5148"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u6027\u80fd\u4f18\u5148\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u662f\u4e16\u754c\u4e0a\u6700\u5feb\u7684\u56fe\u6570\u636e\u5e93\uff0c\u5728\u56fe\u6570\u636e\u5e93\u6807\u51c6\u8bc4\u6d4bLDBC SNB Interactive\u4f4d\u5c45\u699c\u9996\uff082023.3\uff09\u3002TuGraph\u7684\u8bbe\u8ba1\u57fa\u4e8e\u6027\u80fd\u4f18\u5148\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u9ad8\u6027\u80fd\u7684\u5355\u673a\u56fe\u6570\u636e\u5e93\u3002\u8be5\u6587\u6863\u662fTuGraph\u57fa\u4e8e\u6027\u80fd\u4f18\u5148\u5728\u5b58\u50a8\u5c42\u7684\u6838\u5fc3\u8bbe\u8ba1\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2\u56fe\u64cd\u4f5c\u7684\u7279\u6027",children:"2.\u56fe\u64cd\u4f5c\u7684\u7279\u6027"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u5c5e\u6027\u56fe\u4e0a\u7684\u64cd\u4f5c\u6d89\u53ca\u8bfb\u3001\u5199\u53ca\u5176\u5c5e\u6027\uff0c\u5bf9\u4e00\u4e9b\u7279\u6b8a\u7684\u5c5e\u6027\u6bd4\u5982\u65f6\u95f4\u6233\u4e5f\u8bbf\u95ee\u6a21\u5f0f\u4e5f\u4f1a\u5f71\u54cd\u5230\u6574\u4f53\u6027\u80fd\u3002\u8fd9\u91cc\u901a\u8fc7\u5bf9\u4e00\u4e9b\u56fe\u64cd\u4f5c\u7279\u6027\u7684\u89c4\u5f8b\u603b\u7ed3\uff0c\u6765\u6307\u5bfc\u6700\u7ec8\u7684\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u6211\u4eec\u89c2\u5bdf\u5230\u5f88\u591a\u56fe\u5e94\u7528\u6709\u7c7b\u4f3c\u7684\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\u3002\u4f8b\u5982\uff0c\u5728\u4fe1\u8d37\u98ce\u9669\u63a7\u5236\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u9012\u5f52\u8def\u5f84\u8fc7\u6ee4\u641c\u7d22\u591a\u5bf9\u4e00\u6a21\u5f0f\uff0c\u4ee5\u627e\u5230\u53ef\u7591\u7684\u4fe1\u7528\u6b3a\u8bc8\u7528\u6237\u548c\u884c\u4e3a\u3002\u9488\u5bf9\u7f51\u7edc\u8d4c\u535a\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bc6\u522b\u77ed\u65f6\u95f4\u5185\u7684\u591a\u7b14\u8d44\u91d1\u8f6c\u79fb\uff0c\u6765\u53d1\u73b0\u6d89\u8d4c\u7684\u8d44\u91d1\u8d26\u53f7\u3002\u80a1\u6743\u7a7f\u900f\u573a\u666f\u5bf9\u5b9e\u4f53\u95f4\u7684\u80a1\u6743\u5173\u7cfb\u8fdb\u884c\u9012\u5f52\u8ba1\u7b97\u3002\u8fd9\u4e9b\u573a\u666f\u5177\u6709\u591a\u8df3\u5b9e\u4f53\u548c\u5173\u7cfb\u8bbf\u95ee\u3001\u65f6\u95f4\u7a97\u53e3\u7ea6\u675f\u548c\u8bfb\u5199\u4e8b\u52a1\u7b49\u5e38\u89c1\u6a21\u5f0f\u3002\n\u66f4\u8fdb\u4e00\u6b65\uff0c\u4ece\u4ecb\u7ecd\u4e2d\u7684\u8ba8\u8bba\u548c\u56fe\u8d1f\u8f7d\u7684\u5206\u6790\u4e2d\uff0c\u5f52\u7eb3\u51fa\u4ee5\u4e0b\u7279\u5f81:"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e00"})," KHop\u662f\u56fe\u4e2d\u6700\u5178\u578b\u7684\u64cd\u4f5c\uff0c\u5b83\u57fa\u4e8e\u70b9\u548c\u8fb9\u7684\u56fe\u62d3\u6251\u7684\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\uff0c\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u7740\u672c\u8d28\u7684\u533a\u522b\u3002KHop \u7684\u5178\u578b\u6027\u9664\u4e86\u8868\u73b0\u5728\u6570\u636e\u8bbf\u95ee\u6a21\u5f0f\u4e0d\u540c\uff0c\u5b83\u540c\u65f6\u4e5f\u662f\u56fe\u6570\u636e\u5e93\u6700\u9700\u8981\u5173\u6ce8\u7684\u6027\u80fd\u70b9\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e8c"})," \u56fe\u8d1f\u8f7d\u7684\u6570\u636e\u8bbf\u95ee\u5728\u62d3\u6251\u4e0a\u6709\u4e00\u5b9a\u7684\u5c40\u90e8\u6027\uff0c\u540c\u4e00\u4e2a\u70b9\u7684\u8fb9\u901a\u5e38\u4f1a\u88ab\u540c\u65f6\u8bbf\u95ee\u3002\u5f53\u8fd9\u4e9b\u8fb9\u7684\u6807\u7b7e\u76f8\u540c\u65f6\uff0c\u6709\u66f4\u5927\u7684\u6982\u7387\u4f1a\u88ab\u540c\u65f6\u8bbf\u95ee\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e09"})," \u56fe\u8d1f\u8f7d\u5728\u8bbf\u95ee\u70b9\u8fb9\u65f6\uff0c\u901a\u5e38\u4f1a\u8bbf\u95ee\u5176\u5bf9\u5e94\u7684\u5c5e\u6027\uff0c\u6765\u4f5c\u4e3a\u904d\u5386\u8fc7\u6ee4\u7684\u6761\u4ef6\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u56db"})," \u5728\u57fa\u4e8e\u65f6\u5e8f\u7684\u56fe\u8d1f\u8f7d\uff0c\u5bf9\u70b9\u8fb9\u7684\u8fc7\u6ee4\u901a\u5e38\u662f\u5728\u67d0\u4e2a\u65f6\u95f4\u8303\u56f4\uff0c\u6bd4\u5982\u6700\u8fd1\u7684\u4e00\u5468\u3002"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"\u89c4\u5f8b\u4e94"})," \u5199\u64cd\u4f5c\u53ef\u80fd\u4f34\u968f\u7740\u5927\u91cf\u7684\u8bfb\u64cd\u4f5c\uff0c\u9700\u8981\u5728\u5355\u4e2a\u4e8b\u52a1\u5468\u671f\u91cc\u5904\u7406\u3002"]}),"\n",(0,t.jsx)(n.p,{children:"\u901a\u8fc7\u5bf9\u5b9e\u9645\u7ebf\u4e0a\u56fe\u5e94\u7528\u7684\u5206\u6790\uff0c\u56fe\u8d1f\u8f7d\u7684\u8bfb\u5199\u6bd4\u7387\u5927\u7ea6\u4e3a 20:1\uff0c\u867d\u7136\u573a\u666f\u5c40\u9650\u5728\u91d1\u878d\u573a\u666f\uff0c\u96c6\u7fa4\u6570\u4e5f\u6709\u9650\uff0c\u4f46\u6d89\u53ca\u7684\u6570\u636e\u89c4\u6a21\u548c\u7528\u6237\u91cf\u975e\u5e38\u5e9e\u5927\uff0c\u5177\u6709\u4e00\u5b9a\u4ee3\u8868\u6027\u300220:1 \u7684\u56fe\u8d1f\u8f7d\u8bfb\u5199\u6bd4\u7387\uff0c\u8bf4\u660e\u8bfb\u5de5\u4f5c\u8d1f\u8f7d\u5bf9\u6574\u4f53\u6027\u80fd\u7684\u5f71\u54cd\u66f4\u5927\uff0c \u800c\u5199\u5de5\u4f5c\u8d1f\u8f7d\u7684\u6027\u80fd\u4e5f\u4e0d\u80fd\u5ffd\u89c6\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"3\u5b58\u50a8\u6570\u636e\u7ed3\u6784",children:"3.\u5b58\u50a8\u6570\u636e\u7ed3\u6784"}),"\n",(0,t.jsx)(n.p,{children:"TuGraph\u5e95\u5c42\u91c7\u7528B+\u6811\u6765\u652f\u6301\u5b9e\u65f6\u7684\u589e\u5220\u67e5\u6539\u4e8b\u52a1\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5728\u6392\u5e8f\u6811\u7684\u6570\u636e\u7ed3\u6784\u4e2d\uff0cB+\u6811\u548cLSM\u6811\u4e3a\u4e3b\u8981\u4ee3\u8868\u3002B+\u6811\u5728\u6811\u8282\u70b9\u4e2d\u4f7f\u7528\u62c6\u5206\u548c\u5408\u5e76\u5f0f\u6765\u66f4\u65b0\u6392\u5e8f\u6570\u636e\uff0c\u800c LSM \u6811\u5728\u65e5\u5fd7\u4e2d\u8ffd\u52a0\u66f4\u65b0\uff0c\u4ee5\u8fdb\u884c\u5ef6\u8fdf\u6570\u636e\u5408\u5e76\u3002B+ \u65e9\u671f\u7528\u5728\u6587\u4ef6\u7cfb\u7edf\u7684\u5b9e\u73b0\u4e2d\uff0c\u901a\u8fc7\u5c06\u6570\u636e\u4fdd\u5b58 \u5728\u81ea\u9002\u5e94\u957f\u5ea6\u7684\u53f6\u5b50\u8282\u70b9\u4e2d\uff0c\u89e3\u51b3\u786c\u76d8\u987a\u5e8f\u64cd\u4f5c\u548c\u968f\u673a\u64cd\u4f5c\u6027\u80fd\u5b58\u5728\u6570\u636e\u91cf\u7ea7\u5dee\u522b\u7684\u95ee\u9898\uff0c\u6709\u8f83\u5747\u8861\u7684\u8bfb\u5199\u6027\u80fd\u3002LSM \u6811\u7684\u4e3b\u8981\u4f18\u52bf\u4f7f\u7528 WAL(Write Ahead Log) \u8fdb\u884c\u66f4\u65b0\uff0c\u5c06\u66f4\u65b0\u64cd\u4f5c\u53d8\u6210\u987a\u5e8f\u64cd\u4f5c\uff0c\u5728\u952e\u503c\u8f83\u5c0f\u65f6\u6027\u80fd\u4f18\u52bf\u5c24\u4e3a\u7a81\u51fa\u3002WAL \u610f\u5473\u7740\u5c06\u6570\u636e\u7684\u66f4\u65b0\u5408\u5e76\u63a8\u8fdf\uff0c\u6279\u91cf\u66f4\u65b0\u80fd\u63d0\u5347\u7efc\u5408\u6548\u7387\uff0c\u4e5f\u4f7f\u5f97\u7cfb\u7edf\u7684\u8c03\u5ea6\u53d8\u5f97\u590d\u6742\u3002\u5982\u679c\u66f4\u65b0\u5408\u5e76\u5b8c\u6210\u524d\uff0c\u6070\u597d\u5bf9\u5176\u4e2d\u7684\u6570\u636e\u7ee7\u7eed\u8bfb\u53d6\uff0cLSM \u6811\u5c31\u9700\u8981\u8bfb\u53d6\u51e0\u4e2a\u5c42\u7ea7\u5c40\u90e8\u5408\u5e76\u7684\u65e5\u5fd7\uff0c\u4f1a\u5bfc\u81f4\u8bfb\u53d6\u653e\u5927\u548c\u7a7a\u95f4\u653e\u5927\uff0c\u4ece\u800c\u5f71\u54cd\u8bfb\u6548\u7387\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u603b\u7ed3\u6765\u8bf4\uff0cB+ \u6811\u6709\u8f83\u597d\u7684\u987a\u5e8f\u8bfb\u5199\u6027\u80fd\uff0c\u800c LSM \u6811\u5728\u6570\u636e\u968f\u673a\u5199\u65b9\u9762\u5360\u4f18\u3002\u6b64\u5916 LSM \u6811\u91c7\u7528\u540e\u53f0\u5408\u5e76\u7684\u65b9\u5f0f\uff0c\u4f7f\u5f97\u6027\u80fd\u7684\u6ce2\u52a8\u96be\u4ee5\u9884\u671f\uff0c\u6027\u80fd\u6ce2\u52a8\u548c\u4e0a\u5c42\u5b58\u50a8\u548c\u8ba1\u7b97\u7684\u5173\u8054\u6027\u8f83\u5f31\uff0c\u589e\u52a0\u4e86\u6574\u4f53\u8bbe\u8ba1\u7684\u6210\u672c\u3002\u7efc\u4e0a\u8003\u8651\uff0cTuGraph \u9009\u7528 B+ \u6811\u4f5c\u4e3a\u8bfb\u6027\u80fd\u4f18\u5148\u7684\u5b9e\u73b0\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"4\u6570\u636e\u7f16\u7801",children:"4.\u6570\u636e\u7f16\u7801"}),"\n",(0,t.jsx)(n.p,{children:"\u5bf9\u4e8e\u5c5e\u6027\u56fe\u6a21\u578b\u800c\u8a00\uff0c\u9664\u4e86\u56fe\u62d3\u6251\u7f16\u7801\u5916\uff0c\u5c5e\u6027\u6570\u636e\u4e5f\u4f1a\u5f88\u5927\u7a0b\u5ea6\u5f71\u54cd\u529f\u80fd\u548c\u6027\u80fd\uff0c\u6211\u4eec\u5148\u8ba8\u8bba\u5c5e\u6027\u6570\u636e\u5982\u4f55\u4e0e\u62d3\u6251\u6570\u636e\u5171\u5b58\u7684\u7f16\u7801\u683c\u5f0f\u3002\u4ece\u76ee\u524d\u7684\u8c03\u7814\u6765\u770b\uff0c\u5c5e\u6027\u7f16\u7801\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3a\u57fa\u4e8e\u6307\u9488\u7d22\u5f15\u5c06\u5c5e\u6027\u6570\u636e\u5355\u72ec\u5b58\u50a8\u7684\u79bb\u6563\u7f16\u7801\uff0c\u548c\u5c06\u5c5e\u6027\u6570\u636e\u548c\u62d3\u6251\u6570\u636e\u6253\u5305\u5728\u4e00\u8d77\u7684\u7d27\u51d1\u7f16\u7801\u3002\u79bb\u6563\u7f16\u7801\u6839\u636e\u7a0b\u5ea6\u7684\u4e0d\u540c\uff0c\u53ef\u4ee5\u6bcf\u4e2a\u5c5e\u6027\u90fd\u5355\u72ec\u5b58\u50a8\uff0c\u6216\u8005\u6bcf\u6761\u8fb9\u7684\u5c5e\u6027\u6253\u5305\u540e\u5404\u81ea\u5b58\u50a8\uff0c\u4e0b\u9762\u7684\u8ba8\u8bba\u5bf9\u4e24\u79cd\u60c5\u51b5\u90fd\u9002\u7528\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u70b9\u67e5\u8be2\u3002\u5c5e\u6027\u7f16\u7801\u4e3b\u8981\u9488\u5bf9\u8fb9\uff0c\u4e0d\u6d89\u53ca\u70b9\u67e5\u8be2\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5355\u8fb9\u67e5\u8be2\u3002\u79bb\u6563\u7f16\u7801\u901a\u8fc7\u6307\u9488\u5b9a\u4f4d\u8fb9\uff0c\u7d27\u51d1\u7f16\u7801\u5219\u9700\u8981\u4e8c\u5206\u67e5\u627e\u5b9a\u4f4d\u8fb9\u7684\u4f4d\u7f6e\uff0c\u79bb\u6563\u7f16\u7801\u6709\u7565\u5fae\u7684\u4f18\u52bf\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u8fb9\u904d\u5386\u3002\u79bb\u6563\u7f16\u7801\u5728\u8fb9\u904d\u5386\u8fc7\u7a0b\u9700\u8981\u4e0d\u65ad\u5730\u8fdb\u884c\u6307\u9488\u8df3\u8f6c\u8fdb\u884c\u968f\u673a\u6570\u636e\u8bbf\u95ee\uff0c\u800c\u7d27\u51d1\u7f16\u7801\u63d0\u524d\u628a\u6570\u636e\u6392\u5217\u5728\u4e00\u8d77\uff0c\u987a\u5e8f\u8bbf\u95ee\u7684\u7279\u6027\u4f7f\u5f97\u6548\u7387\u5927\u5927\u63d0\u5347\u3002 \u7531\u89c4\u5f8b\u4e09\u77e5\u5bf9\u8fb9\u7684\u904d\u5386\u64cd\u4f5c\u5f88\u666e\u904d\uff0c\u7d27\u51d1\u7f16\u7801\u5728\u8fb9\u904d\u5386\u7684\u4f18\u52bf\u660e\u663e\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u5355\u8fb9\u66f4\u65b0\u3002\u79bb\u6563\u7f16\u7801\u5bf9\u8fb9\u7684\u66f4\u65b0\u4ec5\u9700\u627e\u5230\u5bf9\u5e94\u7684\u6307\u9488\u4f4d\u7f6e\uff0c\u63d2\u5165\u6570\u636e\u540e\u4fee\u6539\u524d\u540e\u6307\u9488\u6307\u5411\u3002\u7d27\u51d1\u7f16\u7801\u5219\u9700\u8981\u5bf9\u7d27\u51d1\u6392\u5217\u7684\u6570\u636e\u8fdb\u884c\u91cd\u7f16\u7801\uff0c\u5bf9\u6574\u4e2a\u8fb9\u503c\u8fdb\u884c\u91cd\u65b0\u5199\u5165\uff0c\u5f00\u9500\u663e\u8457\u5927\u4e8e\u79bb\u6563\u7f16\u7801\u7684\u60c5\u5f62\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u6279\u91cf\u8fb9\u66f4\u65b0\u3002\u6279\u91cf\u66f4\u65b0\u53ef\u4ee5\u5728\u5185\u5b58\u4e2d\u9884\u5148\u6784\u5efa\u70b9\u7684\u6240\u6709\u8fb9\u5c5e\u6027\uff0c\u4e00\u6b21\u6027\u7f16\u7801\u5199\u5165\uff0c\u79bb\u6563\u7f16\u7801\u548c\u7d27\u51d1\u7f16\u7801\u76f8\u5f53\u3002\u4f46\u7d27\u51d1\u7f16\u7801\u4e0d\u9700\u8981\u5b58\u50a8\u6307\u9488\u53d8\u91cf\uff0c\u66f4\u5c11\u7684\u5b58\u50a8\u7a7a\u95f4\u6548\u7387\u4e5f\u4f1a\u66f4\u9ad8\u3002"}),"\n",(0,t.jsx)(n.p,{children:"\u4ee5\u4e0a\u79bb\u6563\u7f16\u7801\u548c\u7d27\u51d1\u7f16\u7801\u5728\u67d0\u4e00\u7c7b\u7684\u67e5\u8be2\u7684\u6027\u80fd\u95ee\u9898\uff0c\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316\u7684\u6765\u7f13\u89e3\u3002\u6574\u4f53\u4e0a\u8bf4\uff0c\u7531\u4e8e\u56fe\u8d1f\u8f7d\u8bfb\u5199 20:1 \u7684\u7279\u6027\uff0c\u8bfb\u6027\u80fd\u5728\u6574\u4f53\u6027\u80fd\u4e2d\u5360\u6bd4\u66f4\u9ad8\u3002\u4ee5\u53ca\u89c4\u5f8b\u4e09\u6240\u63ed\u793a\u7684\u5bf9\u5c5e\u6027\u8bbf\u95ee\u7684\u7279\u5f81\uff0cTuGraph \u66f4\u503e\u5411\u4e8e\u91c7\u7528\u7d27\u51d1\u7f16\u7801\u6765\u4fdd\u8bc1\u8bfb\u6027\u80fd\u3002\u5176\u4e3b\u8981\u5f31\u52bf\u4e3a\u5355\u8fb9\u66f4\u65b0\u65f6\u91cd\u7f16\u7801\u7684\u5f00\u9500\uff0c\u53ef\u4ee5\u7528\u81ea\u9002\u5e94\u6620\u5c04\u7684\u6280\u672f\u6765\u89e3\u51b3\u3002"})]})}function a(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>o});var t=r(6540);const c={},s=t.createContext(c);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/76bbab98.19b7a4b0.js b/assets/js/76bbab98.19b7a4b0.js
new file mode 100644
index 0000000000..babfb812a0
--- /dev/null
+++ b/assets/js/76bbab98.19b7a4b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6282],{1158:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>_,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var i=t(4848),o=t(8453);const r={},_="\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",s={id:"contributor-manual/corporate-cla",title:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",description:"AntGroupOpenSourceCorporateCLAEnglishChinese2021",source:"@site/../docs/zh-CN/source/12.contributor-manual/4.corporate-cla.md",sourceDirName:"12.contributor-manual",slug:"/contributor-manual/corporate-cla",permalink:"/tugraph-db/zh/contributor-manual/corporate-cla",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",permalink:"/tugraph-db/zh/contributor-manual/individual-cla"},next:{title:"\u6280\u672f\u89c4\u5212",permalink:"/tugraph-db/zh/contributor-manual/roadmap"}},a={},l=[];function c(e){const n={h1:"h1",header:"header",li:"li",ol:"ol",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"})}),"\n",(0,i.jsx)(n.p,{children:"Ant_Group_Open_Source_Corporate_CLA_English_Chinese_2021"}),"\n",(0,i.jsx)(n.p,{children:"Ant Group"}),"\n",(0,i.jsx)(n.p,{children:"Corporate Contributor License Agreement"}),"\n",(0,i.jsx)(n.p,{children:"\u8682\u8681\u96c6\u56e2"}),"\n",(0,i.jsx)(n.p,{children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"}),"\n",(0,i.jsx)(n.p,{children:'Thank you for your interest in contributing documentation and related software code to a project hosted or managed by Ant Group, or any of its affiliates. In order to clarify the intellectual property license granted with Contributions from any person or entity, Ant Group must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This version of the Contributor License Agreement allows a legal entity (the "Corporation") to submit Contributions to the applicable project. If you are an individual making a submission on your own behalf, then you should sign the separation Individual Contributor License Agreement.'}),"\n",(0,i.jsx)(n.p,{children:"\u611f\u8c22\u60a8\u5bf9\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4efb\u4f55\u5173\u8054\u65b9\u4e3b\u529e\u6216\u7ba1\u7406\u7684\u9879\u76ee\u8d21\u732e\u6587\u6863\u548c\u76f8\u5173\u8f6f\u4ef6\u4ee3\u7801\u7684\u5174\u8da3\u3002\u4e3a\u5398\u6e05\u5c31\u4e2a\u4eba\u6216\u5b9e\u4f53\u8d21\u732e\u5185\u5bb9\u800c\u6388\u4e88\u7684\u77e5\u8bc6\u4ea7\u6743\u8bb8\u53ef\uff0c\u8682\u8681\u96c6\u56e2\u5fc5\u987b\u5bf9\u6bcf\u4f4d\u8d21\u732e\u8005\u7b7e\u7f72\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\uff08\u201cCLA\u201d\uff09\u8fdb\u884c\u5f52\u6863\uff0c\u4ee5\u8bc1\u660e\u5c31\u4ee5\u4e0b\u8bb8\u53ef\u6761\u4ef6\u8fbe\u6210\u7684\u4e00\u81f4\u3002\u6b64\u7248\u672c\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u5141\u8bb8\u6cd5\u4eba\u5b9e\u4f53\uff08\u201c\u516c\u53f8\u201d\uff09\u5411\u76f8\u5e94\u9879\u76ee\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002\u5982\u679c\u60a8\u662f\u4ee5\u81ea\u8eab\u540d\u4e49\u8fdb\u884c\u63d0\u4ea4\u7684\u4e2a\u4eba\uff0c\u60a8\u5e94\u5f53\u53e6\u884c\u7b7e\u7f72\u4e00\u4efd\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u3002"}),"\n",(0,i.jsx)(n.p,{children:"You accept and agree to the following terms and conditions for Your present and future Contributions submitted to Ant Group. Except for the license granted herein to Ant Group and recipients of documentation and software distributed by Ant Group, You reserve all right, title, and interest in and to Your Contributions."}),"\n",(0,i.jsx)(n.p,{children:"\u5c31\u60a8\u76ee\u524d\u548c\u5c06\u6765\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u60a8\u63a5\u53d7\u5e76\u540c\u610f\u4ee5\u4e0b\u6761\u6b3e\u548c\u6761\u4ef6\u3002\u9664\u4e86\u6839\u636e\u672c\u534f\u8bae\u5411\u8682\u8681\u96c6\u56e2\u548c\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6388\u4e88\u7684\u8bb8\u53ef\uff0c\u60a8\u5bf9\u4e8e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fdd\u7559\u6240\u6709\u6743\u5229\u3001\u6240\u6709\u6743\u548c\u5229\u76ca\u3002"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Definitions."}),"\n",(0,i.jsx)(n.li,{children:"\u5b9a\u4e49\u3002"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:'"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Ant Group. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.'}),"\n",(0,i.jsx)(n.p,{children:"\u201c\u60a8\u201d\uff08\u6216\u201c\u60a8\u7684\u201d\uff09\u7cfb\u6307\u4e0e\u8682\u8681\u96c6\u56e2\u7b7e\u7f72\u672c\u534f\u8bae\u7684\u8457\u4f5c\u6743\u4eba\u6216\u7ecf\u8457\u4f5c\u6743\u4eba\u6388\u6743\u7684\u6cd5\u5f8b\u5b9e\u4f53\u3002\u5bf9\u4e8e\u6cd5\u5f8b\u5b9e\u4f53\u800c\u8a00\uff0c\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u5b9e\u4f53\u4ee5\u53ca\u5176\u4ed6\u4efb\u4f55\u63a7\u5236\u8be5\u5b9e\u4f53\u3001\u53d7\u5176\u63a7\u5236\u6216\u4e0e\u5176\u53d7\u5230\u540c\u4e00\u4e3b\u4f53\u63a7\u5236\u7684\u5b9e\u4f53\u88ab\u89c6\u4e3a\u5355\u4e2a\u8d21\u732e\u8005\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63a7\u5236\u201d \u7cfb\u6307\uff08i\uff09\u901a\u8fc7\u5408\u540c\u6216\u5176\u4ed6\u65b9\u5f0f\uff0c\u76f4\u63a5\u6216\u95f4\u63a5\u5bf9\u8be5\u5b9e\u4f53\u8fdb\u884c\u6307\u5bfc\u548c\u7ba1\u7406\u7684\u6743\u529b\uff0c\uff08ii\uff09\u6301\u6709\u8be5\u5b9e\u4f53\u767e\u5206\u4e4b\u4e94\u5341\uff0850%\uff09\u6216\u66f4\u591a\u7684\u5df2\u53d1\u884c\u80a1\u4efd\uff0c\u6216\uff08iii\uff09\u95f4\u63a5\u6301\u6709\u8be5\u5b9e\u4f53\u6743\u76ca\u3002"}),"\n",(0,i.jsx)(n.p,{children:'"Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to Ant Group for inclusion in, or documentation of, any of the products or projects owned or managed by Ant Group (the "Work"), including without limitation any Work described in Schedule B. For the purposes of this definition, "submitted" means any form of electronic or written communication sent to Ant Group or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Ant Group for the purpose of discussing and improving the Work.'}),"\n",(0,i.jsx)(n.p,{children:"\u201c\u8d21\u732e\u5185\u5bb9\u201d\u7cfb\u6307\u7531\u60a8\u6709\u610f\u5730\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u4ee5\u4fbf\u88ab\u5305\u542b\u6216\u8bb0\u8f7d\u5728\u4efb\u4f55\u8682\u8681\u96c6\u56e2\u62e5\u6709\u6216\u7ba1\u7406\u7684\u4ea7\u54c1\u6216\u9879\u76ee\uff08\u201c\u4f5c\u54c1\u201d\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4efb\u4f55\u5728\u9644\u5f55B\u4e2d\u5217\u4e3e\u7684\u4f5c\u54c1\uff09\u4e2d\u7684\u4efb\u4f55\u539f\u521b\u4f5c\u54c1\uff0c\u5305\u62ec\u5bf9\u65e2\u5b58\u4f5c\u54c1\u7684\u4efb\u4f55\u4fee\u6539\u548c\u589e\u52a0\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63d0\u4ea4\u201d\u7cfb\u6307\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4ee3\u8868\u8fdb\u884c\u7684\u4efb\u4f55\u5f62\u5f0f\u7684\u7535\u5b50\u6216\u4e66\u9762\u4ea4\u6d41\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u8ba8\u8bba\u548c\u6539\u5584\u4f5c\u54c1\u4e3a\u76ee\u7684\uff0c\u901a\u8fc7\u8682\u8681\u96c6\u56e2\u7ba1\u7406\u7684\uff08\u6216\u4ee5\u8682\u8681\u96c6\u56e2\u540d\u4e49\u7ba1\u7406\u7684\uff09\u7535\u5b50\u90ae\u4ef6\u5217\u8868\u3001\u6e90\u4ee3\u7801\u63a7\u5236\u7cfb\u7edf\u548c\u95ee\u9898\u8ddf\u8e2a\u7cfb\u7edf\u8fdb\u884c\u7684\u4ea4\u6d41\u3002"}),"\n",(0,i.jsxs)(n.ol,{start:"2",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u8457\u4f5c\u6743\u8bb8\u53ef\u7684\u6388\u4e88\u3002\u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\u7684\u8457\u4f5c\u6743\u8bb8\u53ef\uff0c\u4ee5\u590d\u5236\u3001\u884d\u751f\u3001\u516c\u5f00\u5c55\u793a\u3001\u516c\u5f00\u6267\u884c\u3001\u8f6c\u6388\u6743\u548c\u53d1\u5e03\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u548c\u8be5\u7b49\u884d\u751f\u4f5c\u54c1\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u4e13\u5229\u8bb8\u53ef\u7684\u6388\u4e88\u3002 \u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\uff08\u672c\u8282\u89c4\u5b9a\u7684\u60c5\u5f62\u9664\u5916\uff09\u7684\u4e13\u5229\u8bb8\u53ef\uff0c\u4ee5\u5f00\u53d1\u3001\u5229\u7528\u3001\u8981\u7ea6\u51fa\u552e\u3001\u51fa\u552e\u3001\u5bfc\u5165\u6216\u4ee5\u5176\u4ed6\u65b9\u5f0f\u8f6c\u8ba9\u4f5c\u54c1\uff0c\u4f46\u8be5\u8bb8\u53ef\u4ec5\u9002\u7528\u4e8e\u60a8\u6709\u6743\u8bb8\u53ef\u7684\uff0c\u4e14\u5fc5\u7136\u4f1a\u88ab\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fb5\u6743\uff08\u8d21\u732e\u5185\u5bb9\u5355\u72ec\u6784\u6210\u4fb5\u6743\u3001\u6216\u4e0e\u8d21\u732e\u5185\u5bb9\u7684\u76f8\u5173\u4f5c\u54c1\u4e00\u540c\u6784\u6210\u4fb5\u6743\uff09\u7684\u4e13\u5229\u7533\u8bf7\u8303\u56f4\u3002\u5982\u679c\u4efb\u4f55\u5b9e\u4f53\u9488\u5bf9\u60a8\u6216\u5176\u4ed6\u5b9e\u4f53\u63d0\u8d77\u4e13\u5229\u8bc9\u8bbc\uff08\u5305\u62ec\u8bc9\u8bbc\u4e2d\u7684\u4ea4\u53c9\u8bf7\u6c42\u6216\u53cd\u8bc9\uff09\uff0c\u4e3b\u5f20\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff08\u6216\u60a8\u53c2\u4e0e\u8d21\u732e\u7684\u4f5c\u54c1\uff09\u9020\u6210\u4e86\u76f4\u63a5\u6027\u6216\u8f85\u52a9\u6027\u7684\u4e13\u5229\u4fb5\u6743\uff0c\u5219\u4efb\u4f55\u6839\u636e\u672c\u534f\u8bae\u9488\u5bf9\u8be5\u8d21\u732e\u5185\u5bb9\u6216\u4f5c\u54c1\u6388\u4e88\u8be5\u5b9e\u4f53\u7684\u4e13\u5229\u8bb8\u53ef\u5e94\u5f53\u5728\u8d77\u8bc9\u4e4b\u65e5\u7ec8\u6b62\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"You represent that you are legally entitled to grant the above license. You represent further that each employee of the Corporation designated on Schedule A below (or in a subsequent written modification to that Schedule) is authorized to submit Contributions on behalf of the Corporation."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u4f9d\u6cd5\u6709\u6743\u6388\u4e88\u4e0a\u8ff0\u8bb8\u53ef\u3002\u60a8\u8fdb\u4e00\u6b65\u4fdd\u8bc1\u4e0b\u6587\u9644\u8868A\uff08\u8be5\u9644\u8868\u53ef\u901a\u8fc7\u4e66\u9762\u65b9\u5f0f\u8fdb\u884c\u540e\u7eed\u66f4\u6539\uff09\u6240\u6307\u5b9a\u7684\u4efb\u610f\u516c\u53f8\u5458\u5de5\u5747\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u6240\u6709\u7684\u8d21\u732e\u5185\u5bb9\u5747\u4e3a\u60a8\u7684\u539f\u521b\u4f5c\u54c1\uff08\u5173\u4e8e\u4e3a\u4ed6\u4eba\u63d0\u4ea4\u4f5c\u54c1\u7684\u89c4\u5b9a\uff0c\u53ef\u53c2\u89c1\u7b2c7\u8282\uff09\u3002\u60a8\u4fdd\u8bc1\u60a8\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\u5305\u62ec\u4efb\u4f55\u7b2c\u4e09\u65b9\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u6216\u5546\u6807\uff09\u7684\u5168\u90e8\u7ec6\u8282\uff0c\u53ea\u8981\u8be5\u7b49\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\u4e3a\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u4e14\u4e0e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u7684\u4efb\u4f55\u90e8\u5206\u76f8\u5173\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u5728\u60a8\u81ea\u613f\u63d0\u4f9b\u652f\u6301\u7684\u8303\u56f4\u4e4b\u5916\uff0c\u60a8\u65e0\u9700\u5bf9\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u63d0\u4f9b\u652f\u6301\u3002\u60a8\u53ef\u4ee5\u63d0\u4f9b\u514d\u8d39\u652f\u6301\u6216\u6536\u8d39\u652f\u6301\uff0c\u4e5f\u53ef\u4ee5\u5b8c\u5168\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u9664\u975e\u9002\u7528\u6cd5\u5f8b\u53e6\u6709\u89c4\u5b9a\u6216\u53e6\u6709\u4e66\u9762\u7ea6\u5b9a\uff0c\u60a8\u201c\u6309\u7167\u73b0\u72b6\u201d\u63d0\u4f9b\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u800c\u4e0d\u5bf9\u5176\u63d0\u4f9b\u4efb\u4f55\u7c7b\u578b\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\uff0c\u65e0\u8bba\u660e\u793a\u8fd8\u662f\u9ed8\u793a\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u4efb\u4f55\u7279\u5b9a\u76ee\u7684\u5bf9\u6240\u6709\u6743\u3001\u65e0\u4fb5\u6743\u3001\u9002\u9500\u6027\u6216\u9002\u5f53\u6027\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Should You wish to submit work that is not Your original creation, You may submit it to Ant Group separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u5982\u679c\u60a8\u5e0c\u671b\u63d0\u4ea4\u5e76\u975e\u60a8\u539f\u521b\u7684\u4f5c\u54c1\uff0c\u60a8\u53ef\u4ee5\u5728\u4efb\u4f55\u8d21\u732e\u5185\u5bb9\u4e4b\u5916\u5355\u72ec\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u6807\u6ce8\u5173\u4e8e\u5176\u6765\u6e90\u548c\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u7684\u4efb\u4f55\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u3001\u5546\u6807\u548c\u8bb8\u53ef\u534f\u8bae\uff09\u7684\u5b8c\u6574\u4fe1\u606f\uff0c\u5e76\u4ee5\u663e\u8457\u65b9\u5f0f\u6807\u660e\u8be5\u4f5c\u54c1\u5c5e\u4e8e\u201c\u4ee5\u7b2c\u4e09\u65b9\u540d\u4e49\u63d0\u4ea4\uff1a\u3010\u586b\u5199\u59d3\u540d\u3011\u201d\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"You agree to notify Ant Group of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u60a8\u540c\u610f\u5728\u60a8\u83b7\u6089\u4efb\u4f55\u53ef\u80fd\u5bfc\u81f4\u4e0a\u8ff0\u4fdd\u8bc1\u5728\u4efb\u4f55\u65b9\u9762\u4e0d\u51c6\u786e\u7684\u4e8b\u5b9e\u6216\u60c5\u51b5\u4e4b\u65f6\u901a\u77e5\u8682\u8681\u96c6\u56e2\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"This Agreement will be governed by and construed in accordance with the laws of the People's Republic of China excluding that body of laws known as conflict of laws. The parties expressly agree that the United Nations Convention on Contracts for the International Sale of Goods will not apply. Any legal action or proceeding arising under this Agreement will be brought exclusively in the courts located in Hangzhou, China, and the parties hereby irrevocably consent to the personal jurisdiction and venue therein."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u672c\u534f\u8bae\u53d7\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u6cd5\u5f8b\u7ba1\u8f96\uff0c\u5e76\u4f9d\u636e\u5176\u8fdb\u884c\u89e3\u91ca\uff0c\u4f46\u51b2\u7a81\u6cd5\u89c4\u5219\u9664\u5916\u3002\u534f\u8bae\u5404\u65b9\u660e\u786e\u540c\u610f\u6392\u9664\u300a\u8054\u5408\u56fd\u56fd\u9645\u8d27\u7269\u9500\u552e\u5408\u540c\u516c\u7ea6\u300b\u7684\u9002\u7528\u3002\u4efb\u4f55\u7531\u672c\u534f\u8bae\u4ea7\u751f\u7684\u6cd5\u5f8b\u8bc9\u8bbc\u6216\u7a0b\u5e8f\u5747\u5e94\u6392\u4ed6\u6027\u5730\u63d0\u4ea4\u81f3\u4e2d\u56fd\u676d\u5dde\u7684\u6cd5\u9662\u8fdb\u884c\u5ba1\u7406\uff0c\u4e14\u5404\u65b9\u5728\u6b64\u4e0d\u53ef\u64a4\u9500\u5730\u540c\u610f\u8be5\u7b49\u5173\u4e8e\u5c5e\u4eba\u7ba1\u8f96\u548c\u6cd5\u9662\u5730\u7684\u5b89\u6392\u3002"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"For your reading convenience, this Agreement is written in parallel English and Chinese sections. To the extent there is a conflict between the English and Chinese sections, the English sections shall govern."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"\u4e3a\u4e86\u60a8\u7684\u9605\u8bfb\u65b9\u4fbf\uff0c\u672c\u534f\u8bae\u540c\u65f6\u63d0\u4f9b\u4e86\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u3002\u5982\u679c\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u6709\u77db\u76fe\uff0c\u5219\u4ee5\u82f1\u6587\u6bb5\u843d\u4e3a\u51c6\u3002"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Please sign\u8bf7\u7b7e\u7f72: __________________________________ Date\u65e5\u671f: ____________"}),"\n",(0,i.jsx)(n.p,{children:"Company Name\u516c\u53f8\u540d\u79f0: ________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Full name\u5168\u540d: _____________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Title\u804c\u52a1: _____________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Mailing Address\u4fe1\u4ef6\u5730\u5740: ________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Country\u56fd\u5bb6: _____________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Telephone\u7535\u8bdd: _____________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"E-Mail\u7535\u5b50\u90ae\u7bb1: ______________________________________________________"}),"\n",(0,i.jsx)(n.p,{children:"Schedule A\u9644\u5f55A:"}),"\n",(0,i.jsx)(n.p,{children:"Please provide an initial list of designated employees authorized to submit Contributions on behalf of the Corporation:"}),"\n",(0,i.jsx)(n.p,{children:"\u8bf7\u63d0\u4f9b\u4e00\u4efd\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u6307\u5b9a\u5458\u5de5\u7684\u521d\u59cb\u540d\u5355\uff1a"}),"\n",(0,i.jsx)(n.p,{children:"Schedule B \u9644\u5f55B:"}),"\n",(0,i.jsx)(n.p,{children:"Description of Initial Contribution:"}),"\n",(0,i.jsx)(n.p,{children:"\u63cf\u8ff0\u521d\u59cb\u8d21\u732e\u5185\u5bb9\uff1a"})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>_,x:()=>s});var i=t(6540);const o={},r=i.createContext(o);function _(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:_(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/76bbab98.f31cb8b2.js b/assets/js/76bbab98.f31cb8b2.js
deleted file mode 100644
index 2955b99ee7..0000000000
--- a/assets/js/76bbab98.f31cb8b2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6282],{1158:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>_,toc:()=>l});var o=t(4848),i=t(8453);const r={},s="\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",_={id:"zh-CN/source/contributor-manual/corporate-cla",title:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",description:"AntGroupOpenSourceCorporateCLAEnglishChinese2021",source:"@site/../docs/zh-CN/source/12.contributor-manual/4.corporate-cla.md",sourceDirName:"zh-CN/source/12.contributor-manual",slug:"/zh-CN/source/contributor-manual/corporate-cla",permalink:"/tugraph-db/zh-CN/source/contributor-manual/corporate-cla",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",permalink:"/tugraph-db/zh-CN/source/contributor-manual/individual-cla"},next:{title:"\u6280\u672f\u89c4\u5212",permalink:"/tugraph-db/zh-CN/source/contributor-manual/roadmap"}},a={},l=[];function c(e){const n={h1:"h1",header:"header",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"})}),"\n",(0,o.jsx)(n.p,{children:"Ant_Group_Open_Source_Corporate_CLA_English_Chinese_2021"}),"\n",(0,o.jsx)(n.p,{children:"Ant Group"}),"\n",(0,o.jsx)(n.p,{children:"Corporate Contributor License Agreement"}),"\n",(0,o.jsx)(n.p,{children:"\u8682\u8681\u96c6\u56e2"}),"\n",(0,o.jsx)(n.p,{children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"}),"\n",(0,o.jsx)(n.p,{children:'Thank you for your interest in contributing documentation and related software code to a project hosted or managed by Ant Group, or any of its affiliates. In order to clarify the intellectual property license granted with Contributions from any person or entity, Ant Group must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This version of the Contributor License Agreement allows a legal entity (the "Corporation") to submit Contributions to the applicable project. If you are an individual making a submission on your own behalf, then you should sign the separation Individual Contributor License Agreement.'}),"\n",(0,o.jsx)(n.p,{children:"\u611f\u8c22\u60a8\u5bf9\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4efb\u4f55\u5173\u8054\u65b9\u4e3b\u529e\u6216\u7ba1\u7406\u7684\u9879\u76ee\u8d21\u732e\u6587\u6863\u548c\u76f8\u5173\u8f6f\u4ef6\u4ee3\u7801\u7684\u5174\u8da3\u3002\u4e3a\u5398\u6e05\u5c31\u4e2a\u4eba\u6216\u5b9e\u4f53\u8d21\u732e\u5185\u5bb9\u800c\u6388\u4e88\u7684\u77e5\u8bc6\u4ea7\u6743\u8bb8\u53ef\uff0c\u8682\u8681\u96c6\u56e2\u5fc5\u987b\u5bf9\u6bcf\u4f4d\u8d21\u732e\u8005\u7b7e\u7f72\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\uff08\u201cCLA\u201d\uff09\u8fdb\u884c\u5f52\u6863\uff0c\u4ee5\u8bc1\u660e\u5c31\u4ee5\u4e0b\u8bb8\u53ef\u6761\u4ef6\u8fbe\u6210\u7684\u4e00\u81f4\u3002\u6b64\u7248\u672c\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u5141\u8bb8\u6cd5\u4eba\u5b9e\u4f53\uff08\u201c\u516c\u53f8\u201d\uff09\u5411\u76f8\u5e94\u9879\u76ee\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002\u5982\u679c\u60a8\u662f\u4ee5\u81ea\u8eab\u540d\u4e49\u8fdb\u884c\u63d0\u4ea4\u7684\u4e2a\u4eba\uff0c\u60a8\u5e94\u5f53\u53e6\u884c\u7b7e\u7f72\u4e00\u4efd\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u3002"}),"\n",(0,o.jsx)(n.p,{children:"You accept and agree to the following terms and conditions for Your present and future Contributions submitted to Ant Group. Except for the license granted herein to Ant Group and recipients of documentation and software distributed by Ant Group, You reserve all right, title, and interest in and to Your Contributions."}),"\n",(0,o.jsx)(n.p,{children:"\u5c31\u60a8\u76ee\u524d\u548c\u5c06\u6765\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u60a8\u63a5\u53d7\u5e76\u540c\u610f\u4ee5\u4e0b\u6761\u6b3e\u548c\u6761\u4ef6\u3002\u9664\u4e86\u6839\u636e\u672c\u534f\u8bae\u5411\u8682\u8681\u96c6\u56e2\u548c\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6388\u4e88\u7684\u8bb8\u53ef\uff0c\u60a8\u5bf9\u4e8e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fdd\u7559\u6240\u6709\u6743\u5229\u3001\u6240\u6709\u6743\u548c\u5229\u76ca\u3002"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Definitions."}),"\n",(0,o.jsx)(n.li,{children:"\u5b9a\u4e49\u3002"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:'"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Ant Group. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u60a8\u201d\uff08\u6216\u201c\u60a8\u7684\u201d\uff09\u7cfb\u6307\u4e0e\u8682\u8681\u96c6\u56e2\u7b7e\u7f72\u672c\u534f\u8bae\u7684\u8457\u4f5c\u6743\u4eba\u6216\u7ecf\u8457\u4f5c\u6743\u4eba\u6388\u6743\u7684\u6cd5\u5f8b\u5b9e\u4f53\u3002\u5bf9\u4e8e\u6cd5\u5f8b\u5b9e\u4f53\u800c\u8a00\uff0c\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u5b9e\u4f53\u4ee5\u53ca\u5176\u4ed6\u4efb\u4f55\u63a7\u5236\u8be5\u5b9e\u4f53\u3001\u53d7\u5176\u63a7\u5236\u6216\u4e0e\u5176\u53d7\u5230\u540c\u4e00\u4e3b\u4f53\u63a7\u5236\u7684\u5b9e\u4f53\u88ab\u89c6\u4e3a\u5355\u4e2a\u8d21\u732e\u8005\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63a7\u5236\u201d \u7cfb\u6307\uff08i\uff09\u901a\u8fc7\u5408\u540c\u6216\u5176\u4ed6\u65b9\u5f0f\uff0c\u76f4\u63a5\u6216\u95f4\u63a5\u5bf9\u8be5\u5b9e\u4f53\u8fdb\u884c\u6307\u5bfc\u548c\u7ba1\u7406\u7684\u6743\u529b\uff0c\uff08ii\uff09\u6301\u6709\u8be5\u5b9e\u4f53\u767e\u5206\u4e4b\u4e94\u5341\uff0850%\uff09\u6216\u66f4\u591a\u7684\u5df2\u53d1\u884c\u80a1\u4efd\uff0c\u6216\uff08iii\uff09\u95f4\u63a5\u6301\u6709\u8be5\u5b9e\u4f53\u6743\u76ca\u3002"}),"\n",(0,o.jsx)(n.p,{children:'"Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to Ant Group for inclusion in, or documentation of, any of the products or projects owned or managed by Ant Group (the "Work"), including without limitation any Work described in Schedule B. For the purposes of this definition, "submitted" means any form of electronic or written communication sent to Ant Group or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Ant Group for the purpose of discussing and improving the Work.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u8d21\u732e\u5185\u5bb9\u201d\u7cfb\u6307\u7531\u60a8\u6709\u610f\u5730\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u4ee5\u4fbf\u88ab\u5305\u542b\u6216\u8bb0\u8f7d\u5728\u4efb\u4f55\u8682\u8681\u96c6\u56e2\u62e5\u6709\u6216\u7ba1\u7406\u7684\u4ea7\u54c1\u6216\u9879\u76ee\uff08\u201c\u4f5c\u54c1\u201d\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4efb\u4f55\u5728\u9644\u5f55B\u4e2d\u5217\u4e3e\u7684\u4f5c\u54c1\uff09\u4e2d\u7684\u4efb\u4f55\u539f\u521b\u4f5c\u54c1\uff0c\u5305\u62ec\u5bf9\u65e2\u5b58\u4f5c\u54c1\u7684\u4efb\u4f55\u4fee\u6539\u548c\u589e\u52a0\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63d0\u4ea4\u201d\u7cfb\u6307\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4ee3\u8868\u8fdb\u884c\u7684\u4efb\u4f55\u5f62\u5f0f\u7684\u7535\u5b50\u6216\u4e66\u9762\u4ea4\u6d41\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u8ba8\u8bba\u548c\u6539\u5584\u4f5c\u54c1\u4e3a\u76ee\u7684\uff0c\u901a\u8fc7\u8682\u8681\u96c6\u56e2\u7ba1\u7406\u7684\uff08\u6216\u4ee5\u8682\u8681\u96c6\u56e2\u540d\u4e49\u7ba1\u7406\u7684\uff09\u7535\u5b50\u90ae\u4ef6\u5217\u8868\u3001\u6e90\u4ee3\u7801\u63a7\u5236\u7cfb\u7edf\u548c\u95ee\u9898\u8ddf\u8e2a\u7cfb\u7edf\u8fdb\u884c\u7684\u4ea4\u6d41\u3002"}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u8457\u4f5c\u6743\u8bb8\u53ef\u7684\u6388\u4e88\u3002\u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\u7684\u8457\u4f5c\u6743\u8bb8\u53ef\uff0c\u4ee5\u590d\u5236\u3001\u884d\u751f\u3001\u516c\u5f00\u5c55\u793a\u3001\u516c\u5f00\u6267\u884c\u3001\u8f6c\u6388\u6743\u548c\u53d1\u5e03\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u548c\u8be5\u7b49\u884d\u751f\u4f5c\u54c1\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e13\u5229\u8bb8\u53ef\u7684\u6388\u4e88\u3002 \u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\uff08\u672c\u8282\u89c4\u5b9a\u7684\u60c5\u5f62\u9664\u5916\uff09\u7684\u4e13\u5229\u8bb8\u53ef\uff0c\u4ee5\u5f00\u53d1\u3001\u5229\u7528\u3001\u8981\u7ea6\u51fa\u552e\u3001\u51fa\u552e\u3001\u5bfc\u5165\u6216\u4ee5\u5176\u4ed6\u65b9\u5f0f\u8f6c\u8ba9\u4f5c\u54c1\uff0c\u4f46\u8be5\u8bb8\u53ef\u4ec5\u9002\u7528\u4e8e\u60a8\u6709\u6743\u8bb8\u53ef\u7684\uff0c\u4e14\u5fc5\u7136\u4f1a\u88ab\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fb5\u6743\uff08\u8d21\u732e\u5185\u5bb9\u5355\u72ec\u6784\u6210\u4fb5\u6743\u3001\u6216\u4e0e\u8d21\u732e\u5185\u5bb9\u7684\u76f8\u5173\u4f5c\u54c1\u4e00\u540c\u6784\u6210\u4fb5\u6743\uff09\u7684\u4e13\u5229\u7533\u8bf7\u8303\u56f4\u3002\u5982\u679c\u4efb\u4f55\u5b9e\u4f53\u9488\u5bf9\u60a8\u6216\u5176\u4ed6\u5b9e\u4f53\u63d0\u8d77\u4e13\u5229\u8bc9\u8bbc\uff08\u5305\u62ec\u8bc9\u8bbc\u4e2d\u7684\u4ea4\u53c9\u8bf7\u6c42\u6216\u53cd\u8bc9\uff09\uff0c\u4e3b\u5f20\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff08\u6216\u60a8\u53c2\u4e0e\u8d21\u732e\u7684\u4f5c\u54c1\uff09\u9020\u6210\u4e86\u76f4\u63a5\u6027\u6216\u8f85\u52a9\u6027\u7684\u4e13\u5229\u4fb5\u6743\uff0c\u5219\u4efb\u4f55\u6839\u636e\u672c\u534f\u8bae\u9488\u5bf9\u8be5\u8d21\u732e\u5185\u5bb9\u6216\u4f5c\u54c1\u6388\u4e88\u8be5\u5b9e\u4f53\u7684\u4e13\u5229\u8bb8\u53ef\u5e94\u5f53\u5728\u8d77\u8bc9\u4e4b\u65e5\u7ec8\u6b62\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that you are legally entitled to grant the above license. You represent further that each employee of the Corporation designated on Schedule A below (or in a subsequent written modification to that Schedule) is authorized to submit Contributions on behalf of the Corporation."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u4f9d\u6cd5\u6709\u6743\u6388\u4e88\u4e0a\u8ff0\u8bb8\u53ef\u3002\u60a8\u8fdb\u4e00\u6b65\u4fdd\u8bc1\u4e0b\u6587\u9644\u8868A\uff08\u8be5\u9644\u8868\u53ef\u901a\u8fc7\u4e66\u9762\u65b9\u5f0f\u8fdb\u884c\u540e\u7eed\u66f4\u6539\uff09\u6240\u6307\u5b9a\u7684\u4efb\u610f\u516c\u53f8\u5458\u5de5\u5747\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u6240\u6709\u7684\u8d21\u732e\u5185\u5bb9\u5747\u4e3a\u60a8\u7684\u539f\u521b\u4f5c\u54c1\uff08\u5173\u4e8e\u4e3a\u4ed6\u4eba\u63d0\u4ea4\u4f5c\u54c1\u7684\u89c4\u5b9a\uff0c\u53ef\u53c2\u89c1\u7b2c7\u8282\uff09\u3002\u60a8\u4fdd\u8bc1\u60a8\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\u5305\u62ec\u4efb\u4f55\u7b2c\u4e09\u65b9\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u6216\u5546\u6807\uff09\u7684\u5168\u90e8\u7ec6\u8282\uff0c\u53ea\u8981\u8be5\u7b49\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\u4e3a\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u4e14\u4e0e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u7684\u4efb\u4f55\u90e8\u5206\u76f8\u5173\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5728\u60a8\u81ea\u613f\u63d0\u4f9b\u652f\u6301\u7684\u8303\u56f4\u4e4b\u5916\uff0c\u60a8\u65e0\u9700\u5bf9\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u63d0\u4f9b\u652f\u6301\u3002\u60a8\u53ef\u4ee5\u63d0\u4f9b\u514d\u8d39\u652f\u6301\u6216\u6536\u8d39\u652f\u6301\uff0c\u4e5f\u53ef\u4ee5\u5b8c\u5168\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u9664\u975e\u9002\u7528\u6cd5\u5f8b\u53e6\u6709\u89c4\u5b9a\u6216\u53e6\u6709\u4e66\u9762\u7ea6\u5b9a\uff0c\u60a8\u201c\u6309\u7167\u73b0\u72b6\u201d\u63d0\u4f9b\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u800c\u4e0d\u5bf9\u5176\u63d0\u4f9b\u4efb\u4f55\u7c7b\u578b\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\uff0c\u65e0\u8bba\u660e\u793a\u8fd8\u662f\u9ed8\u793a\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u4efb\u4f55\u7279\u5b9a\u76ee\u7684\u5bf9\u6240\u6709\u6743\u3001\u65e0\u4fb5\u6743\u3001\u9002\u9500\u6027\u6216\u9002\u5f53\u6027\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'Should You wish to submit work that is not Your original creation, You may submit it to Ant Group separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5982\u679c\u60a8\u5e0c\u671b\u63d0\u4ea4\u5e76\u975e\u60a8\u539f\u521b\u7684\u4f5c\u54c1\uff0c\u60a8\u53ef\u4ee5\u5728\u4efb\u4f55\u8d21\u732e\u5185\u5bb9\u4e4b\u5916\u5355\u72ec\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u6807\u6ce8\u5173\u4e8e\u5176\u6765\u6e90\u548c\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u7684\u4efb\u4f55\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u3001\u5546\u6807\u548c\u8bb8\u53ef\u534f\u8bae\uff09\u7684\u5b8c\u6574\u4fe1\u606f\uff0c\u5e76\u4ee5\u663e\u8457\u65b9\u5f0f\u6807\u660e\u8be5\u4f5c\u54c1\u5c5e\u4e8e\u201c\u4ee5\u7b2c\u4e09\u65b9\u540d\u4e49\u63d0\u4ea4\uff1a\u3010\u586b\u5199\u59d3\u540d\u3011\u201d\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You agree to notify Ant Group of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u540c\u610f\u5728\u60a8\u83b7\u6089\u4efb\u4f55\u53ef\u80fd\u5bfc\u81f4\u4e0a\u8ff0\u4fdd\u8bc1\u5728\u4efb\u4f55\u65b9\u9762\u4e0d\u51c6\u786e\u7684\u4e8b\u5b9e\u6216\u60c5\u51b5\u4e4b\u65f6\u901a\u77e5\u8682\u8681\u96c6\u56e2\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"This Agreement will be governed by and construed in accordance with the laws of the People's Republic of China excluding that body of laws known as conflict of laws. The parties expressly agree that the United Nations Convention on Contracts for the International Sale of Goods will not apply. Any legal action or proceeding arising under this Agreement will be brought exclusively in the courts located in Hangzhou, China, and the parties hereby irrevocably consent to the personal jurisdiction and venue therein."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u672c\u534f\u8bae\u53d7\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u6cd5\u5f8b\u7ba1\u8f96\uff0c\u5e76\u4f9d\u636e\u5176\u8fdb\u884c\u89e3\u91ca\uff0c\u4f46\u51b2\u7a81\u6cd5\u89c4\u5219\u9664\u5916\u3002\u534f\u8bae\u5404\u65b9\u660e\u786e\u540c\u610f\u6392\u9664\u300a\u8054\u5408\u56fd\u56fd\u9645\u8d27\u7269\u9500\u552e\u5408\u540c\u516c\u7ea6\u300b\u7684\u9002\u7528\u3002\u4efb\u4f55\u7531\u672c\u534f\u8bae\u4ea7\u751f\u7684\u6cd5\u5f8b\u8bc9\u8bbc\u6216\u7a0b\u5e8f\u5747\u5e94\u6392\u4ed6\u6027\u5730\u63d0\u4ea4\u81f3\u4e2d\u56fd\u676d\u5dde\u7684\u6cd5\u9662\u8fdb\u884c\u5ba1\u7406\uff0c\u4e14\u5404\u65b9\u5728\u6b64\u4e0d\u53ef\u64a4\u9500\u5730\u540c\u610f\u8be5\u7b49\u5173\u4e8e\u5c5e\u4eba\u7ba1\u8f96\u548c\u6cd5\u9662\u5730\u7684\u5b89\u6392\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"For your reading convenience, this Agreement is written in parallel English and Chinese sections. To the extent there is a conflict between the English and Chinese sections, the English sections shall govern."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e3a\u4e86\u60a8\u7684\u9605\u8bfb\u65b9\u4fbf\uff0c\u672c\u534f\u8bae\u540c\u65f6\u63d0\u4f9b\u4e86\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u3002\u5982\u679c\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u6709\u77db\u76fe\uff0c\u5219\u4ee5\u82f1\u6587\u6bb5\u843d\u4e3a\u51c6\u3002"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Please sign\u8bf7\u7b7e\u7f72: __________________________________ Date\u65e5\u671f: ____________"}),"\n",(0,o.jsx)(n.p,{children:"Company Name\u516c\u53f8\u540d\u79f0: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Full name\u5168\u540d: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Title\u804c\u52a1: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Mailing Address\u4fe1\u4ef6\u5730\u5740: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Country\u56fd\u5bb6: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Telephone\u7535\u8bdd: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"E-Mail\u7535\u5b50\u90ae\u7bb1: ______________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Schedule A\u9644\u5f55A:"}),"\n",(0,o.jsx)(n.p,{children:"Please provide an initial list of designated employees authorized to submit Contributions on behalf of the Corporation:"}),"\n",(0,o.jsx)(n.p,{children:"\u8bf7\u63d0\u4f9b\u4e00\u4efd\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u6307\u5b9a\u5458\u5de5\u7684\u521d\u59cb\u540d\u5355\uff1a"}),"\n",(0,o.jsx)(n.p,{children:"Schedule B \u9644\u5f55B:"}),"\n",(0,o.jsx)(n.p,{children:"Description of Initial Contribution:"}),"\n",(0,o.jsx)(n.p,{children:"\u63cf\u8ff0\u521d\u59cb\u8d21\u732e\u5185\u5bb9\uff1a"})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>_});var o=t(6540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function _(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/76f6288d.8cc1dc09.js b/assets/js/76f6288d.8cc1dc09.js
new file mode 100644
index 0000000000..5ed3dfc67a
--- /dev/null
+++ b/assets/js/76f6288d.8cc1dc09.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8718],{6594:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>t});var s=r(4848),l=r(8453);const c={},d="\u96c6\u7fa4\u7ba1\u7406",o={id:"utility-tools/ha-cluster-management",title:"\u96c6\u7fa4\u7ba1\u7406",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph HA \u96c6\u7fa4\u7684\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u5305\u62ec\u5220\u9664\u8282\u70b9\u3001leader\u8f6c\u79fb\u548c\u751f\u6210snapshot\u529f\u80fd",source:"@site/../docs/zh-CN/source/6.utility-tools/5.ha-cluster-management.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/ha-cluster-management",permalink:"/tugraph-db/zh/utility-tools/ha-cluster-management",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u9884\u70ed",permalink:"/tugraph-db/zh/utility-tools/data-warmup"},next:{title:"\u547d\u4ee4\u884c\u5de5\u5177",permalink:"/tugraph-db/zh/utility-tools/tugraph-cli"}},i={},t=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u5220\u9664\u8282\u70b9",id:"2-\u5220\u9664\u8282\u70b9",level:2},{value:"3. leader \u8f6c\u79fb",id:"3-leader-\u8f6c\u79fb",level:2},{value:"4. \u751f\u6210snapshot",id:"4-\u751f\u6210snapshot",level:2}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u96c6\u7fa4\u7ba1\u7406",children:"\u96c6\u7fa4\u7ba1\u7406"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph HA \u96c6\u7fa4\u7684\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u5305\u62ec\u5220\u9664\u8282\u70b9\u3001leader\u8f6c\u79fb\u548c\u751f\u6210snapshot\u529f\u80fd"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,s.jsxs)(n.p,{children:["HA\u96c6\u7fa4\u542f\u52a8\u4e4b\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u5de5\u5177\u8fdb\u884c\u96c6\u7fa4\u7ba1\u7406\uff0c\u53ef\u4ee5\u6267\u884c\u5220\u9664\u8282\u70b9\uff0c\u8f6c\u79fbleader\u548c\u751f\u6210snapshot\u7b49\u529f\u80fd\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"2-\u5220\u9664\u8282\u70b9",children:"2. \u5220\u9664\u8282\u70b9"}),"\n",(0,s.jsxs)(n.p,{children:["\u5bf9\u4e8eTuGraph HA\u96c6\u7fa4\u4e2d\u957f\u671f\u79bb\u7ebf\u6216\u8005\u4ea7\u751f\u7f51\u7edc\u5206\u533a\u7684\u8282\u70b9\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"remove_peer"}),"\u547d\u4ee4\u5220\u9664\u8282\u70b9\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command remove_peer --peer {peer_id} --conf {group_conf}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command remove_peer"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3aremove_peer\uff0c\u5373\u5220\u9664\u8282\u70b9\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u5220\u9664\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--conf {group_conf}"})," \u6307\u5b9aHA\u96c6\u7fa4\u7684\u6210\u5458\u914d\u7f6e\uff08\u53ef\u8fde\u901a\u4e3b\u8282\u70b9\u5373\u53ef\uff09\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"})," \u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"3-leader-\u8f6c\u79fb",children:"3. leader \u8f6c\u79fb"}),"\n",(0,s.jsxs)(n.p,{children:["\u5f53\u9700\u8981\u5bf9\u4e3b\u8282\u70b9\u6267\u884c\u505c\u673a\u6216\u91cd\u542f\u64cd\u4f5c\u65f6\uff0c\u4e3a\u51cf\u5c11\u96c6\u7fa4\u7684\u4e0d\u53ef\u670d\u52a1\u65f6\u95f4\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"transfer_leader"}),"\u547d\u4ee4\u8f6c\u79fb\u4e3b\u8282\u70b9\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command transfer_leader --peer {peer_id} --conf {group_conf}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command transfer_leader"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3atransfer_leader\uff0c\u5373\u8f6c\u79fb\u4e3b\u8282\u70b9\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u6210\u4e3a\u4e3b\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--conf {group_conf}"})," \u6307\u5b9aHA\u96c6\u7fa4\u7684\u6210\u5458\u914d\u7f6e\uff08\u53ef\u8fde\u901a\u4e3b\u8282\u70b9\u5373\u53ef\uff09\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"})," \u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"4-\u751f\u6210snapshot",children:"4. \u751f\u6210snapshot"}),"\n",(0,s.jsxs)(n.p,{children:["\u51fa\u4e8e\u8282\u70b9\u542f\u52a8\u65f6\u8bbe\u7f6eha_snapshot_interval_s\u4e3a-1\u4ee5\u9ed8\u8ba4\u4e0d\u6253snapshot\u6216\u5176\u4ed6\u539f\u56e0\uff0c\n\u5f53\u9700\u8981\u8ba9\u67d0\u4e2a\u8282\u70b9\u624b\u52a8\u751f\u6210snapshot\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"snapshot"}),"\u547d\u4ee4\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command snapshot --peer {peer_id}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command snapshot"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3asnapshot\uff0c\u5373\u751f\u6210\u5feb\u7167\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u751f\u6210\u5feb\u7167\u7684\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var s=r(6540);const l={},c=s.createContext(l);function d(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/76f6288d.9758bedc.js b/assets/js/76f6288d.9758bedc.js
deleted file mode 100644
index a4820a6c42..0000000000
--- a/assets/js/76f6288d.9758bedc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8718],{6594:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>t});var s=r(4848),l=r(8453);const c={},d="\u96c6\u7fa4\u7ba1\u7406",o={id:"zh-CN/source/utility-tools/ha-cluster-management",title:"\u96c6\u7fa4\u7ba1\u7406",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph HA \u96c6\u7fa4\u7684\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u5305\u62ec\u5220\u9664\u8282\u70b9\u3001leader\u8f6c\u79fb\u548c\u751f\u6210snapshot\u529f\u80fd",source:"@site/../docs/zh-CN/source/6.utility-tools/5.ha-cluster-management.md",sourceDirName:"zh-CN/source/6.utility-tools",slug:"/zh-CN/source/utility-tools/ha-cluster-management",permalink:"/tugraph-db/zh-CN/source/utility-tools/ha-cluster-management",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u9884\u70ed",permalink:"/tugraph-db/zh-CN/source/utility-tools/data-warmup"},next:{title:"\u547d\u4ee4\u884c\u5de5\u5177",permalink:"/tugraph-db/zh-CN/source/utility-tools/tugraph-cli"}},i={},t=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u5220\u9664\u8282\u70b9",id:"2-\u5220\u9664\u8282\u70b9",level:2},{value:"3. leader \u8f6c\u79fb",id:"3-leader-\u8f6c\u79fb",level:2},{value:"4. \u751f\u6210snapshot",id:"4-\u751f\u6210snapshot",level:2}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u96c6\u7fa4\u7ba1\u7406",children:"\u96c6\u7fa4\u7ba1\u7406"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph HA \u96c6\u7fa4\u7684\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u5305\u62ec\u5220\u9664\u8282\u70b9\u3001leader\u8f6c\u79fb\u548c\u751f\u6210snapshot\u529f\u80fd"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,s.jsxs)(n.p,{children:["HA\u96c6\u7fa4\u542f\u52a8\u4e4b\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u5de5\u5177\u8fdb\u884c\u96c6\u7fa4\u7ba1\u7406\uff0c\u53ef\u4ee5\u6267\u884c\u5220\u9664\u8282\u70b9\uff0c\u8f6c\u79fbleader\u548c\u751f\u6210snapshot\u7b49\u529f\u80fd\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"2-\u5220\u9664\u8282\u70b9",children:"2. \u5220\u9664\u8282\u70b9"}),"\n",(0,s.jsxs)(n.p,{children:["\u5bf9\u4e8eTuGraph HA\u96c6\u7fa4\u4e2d\u957f\u671f\u79bb\u7ebf\u6216\u8005\u4ea7\u751f\u7f51\u7edc\u5206\u533a\u7684\u8282\u70b9\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"remove_peer"}),"\u547d\u4ee4\u5220\u9664\u8282\u70b9\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command remove_peer --peer {peer_id} --conf {group_conf}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command remove_peer"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3aremove_peer\uff0c\u5373\u5220\u9664\u8282\u70b9\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u5220\u9664\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--conf {group_conf}"})," \u6307\u5b9aHA\u96c6\u7fa4\u7684\u6210\u5458\u914d\u7f6e\uff08\u53ef\u8fde\u901a\u4e3b\u8282\u70b9\u5373\u53ef\uff09\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"})," \u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"3-leader-\u8f6c\u79fb",children:"3. leader \u8f6c\u79fb"}),"\n",(0,s.jsxs)(n.p,{children:["\u5f53\u9700\u8981\u5bf9\u4e3b\u8282\u70b9\u6267\u884c\u505c\u673a\u6216\u91cd\u542f\u64cd\u4f5c\u65f6\uff0c\u4e3a\u51cf\u5c11\u96c6\u7fa4\u7684\u4e0d\u53ef\u670d\u52a1\u65f6\u95f4\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"transfer_leader"}),"\u547d\u4ee4\u8f6c\u79fb\u4e3b\u8282\u70b9\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command transfer_leader --peer {peer_id} --conf {group_conf}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command transfer_leader"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3atransfer_leader\uff0c\u5373\u8f6c\u79fb\u4e3b\u8282\u70b9\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u6210\u4e3a\u4e3b\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--conf {group_conf}"})," \u6307\u5b9aHA\u96c6\u7fa4\u7684\u6210\u5458\u914d\u7f6e\uff08\u53ef\u8fde\u901a\u4e3b\u8282\u70b9\u5373\u53ef\uff09\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"})," \u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"4-\u751f\u6210snapshot",children:"4. \u751f\u6210snapshot"}),"\n",(0,s.jsxs)(n.p,{children:["\u51fa\u4e8e\u8282\u70b9\u542f\u52a8\u65f6\u8bbe\u7f6eha_snapshot_interval_s\u4e3a-1\u4ee5\u9ed8\u8ba4\u4e0d\u6253snapshot\u6216\u5176\u4ed6\u539f\u56e0\uff0c\n\u5f53\u9700\u8981\u8ba9\u67d0\u4e2a\u8282\u70b9\u624b\u52a8\u751f\u6210snapshot\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_peer"}),"\u7684",(0,s.jsx)(n.code,{children:"snapshot"}),"\u547d\u4ee4\u3002\u547d\u4ee4\u793a\u4f8b\u5982\u4e0b\u6240\u793a\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"$ lgraph_peer --command snapshot --peer {peer_id}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--command snapshot"})," \u6307\u5b9a\u8981\u6267\u884c\u7684\u64cd\u4f5c\u4e3asnapshot\uff0c\u5373\u751f\u6210\u5feb\u7167\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"--peer {peer_id}"})," \u6307\u5b9a\u8981\u751f\u6210\u5feb\u7167\u7684\u8282\u70b9\u7684rpc\u7f51\u7edc\u5730\u5740\uff0c\u5982 ",(0,s.jsx)(n.code,{children:"127.0.0.1:9092"}),"\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>o});var s=r(6540);const l={},c=s.createContext(l);function d(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/77278843.39810929.js b/assets/js/77278843.39810929.js
deleted file mode 100644
index 94ac5995b8..0000000000
--- a/assets/js/77278843.39810929.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4371],{585:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=t(4848),a=t(8453);const s={},o="Examples of geospatial data type usage",r={id:"en-US/source/best-practices/spatial",title:"Examples of geospatial data type usage",description:"1. Introduction",source:"@site/../docs/en-US/source/13.best-practices/5.spatial.md",sourceDirName:"en-US/source/13.best-practices",slug:"/en-US/source/best-practices/spatial",permalink:"/tugraph-db/en-US/source/best-practices/spatial",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Environment and version selection",permalink:"/tugraph-db/en-US/source/best-practices/selection"},next:{title:"FAQ",permalink:"/tugraph-db/en-US/source/faq"}},d={},l=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. Background Knowledge",id:"2-background-knowledge",level:2},{value:"2.1 WGS84 Coordinate System (EPSG:4326)",id:"21-wgs84-coordinate-system-epsg4326",level:3},{value:"2.2 Cartesian Coordinate System (EPSG:7203)",id:"22-cartesian-coordinate-system-epsg7203",level:3},{value:"2.3 Data Storage Formats",id:"23-data-storage-formats",level:3},{value:"2.4 Common functions",id:"24-common-functions",level:3},{value:"3. Data Types",id:"3-data-types",level:2},{value:"4. Function Introduction",id:"4-function-introduction",level:2},{value:"5. Food Exploration",id:"5-food-exploration",level:2},{value:"5.1 Personalized Recommendations Based on Geographic Location",id:"51-personalized-recommendations-based-on-geographic-location",level:3},{value:"5.2 Data Model Design",id:"52-data-model-design",level:3},{value:"5.3 Building the Food Exploration Query",id:"53-building-the-food-exploration-query",level:3},{value:"6. Outlook",id:"6-outlook",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"examples-of-geospatial-data-type-usage",children:"Examples of geospatial data type usage"})}),"\n",(0,i.jsx)(n.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph, a graph database jointly developed by Ant Group and Tsinghua University, has built a comprehensive graph technology system that includes graph storage, graph calculation, graph learning, and a graph development platform, owning a leading-scale graph cluster in the industry. In recent years, geospatial capabilities have demonstrated significant application value in graph databases. They not only enhance the expressive power of data but also facilitate the fusion analysis of cross-domain data, especially displaying strong practical value in critical fields such as social networks, map exploration, and urban planning. TuGraph is also gradually supporting geospatial capabilities."}),"\n",(0,i.jsx)(n.h2,{id:"2-background-knowledge",children:"2. Background Knowledge"}),"\n",(0,i.jsxs)(n.p,{children:["EPSG(",(0,i.jsx)(n.a,{href:"https://epsg.io/",children:"EPSG.io: Coordinate Systems Worldwide"}),") is a standardized collection of geospatial reference system identifiers, used to identify different geospatial reference systems, including coordinate systems, geographic coordinate systems, projected coordinate systems, etc. We commonly use EPSG codes to represent the coordinate systems of data, and here we introduce two of the most common geospatial coordinate systems, which are also the types supported by most databases."]}),"\n",(0,i.jsx)(n.h3,{id:"21-wgs84-coordinate-system-epsg4326",children:"2.1 WGS84 Coordinate System (EPSG:4326)"}),"\n",(0,i.jsxs)(n.p,{children:["Global Positioning System: WGS84 is the foundation of the Global Positioning System (GPS), allowing GPS receivers around the world to determine precise positions. Almost all modern GPS devices provide location information based on the WGS84 coordinate system. Map Making and Geographic Information Systems (GIS): In the field of map making and GIS, WGS84 is widely used to define positions on Earth. This includes various types of map creation, spatial data analysis, and management, etc. ",(0,i.jsx)(n.img,{alt:"image.png",src:t(7720).A+"",width:"821",height:"390"})]}),"\n",(0,i.jsx)(n.h3,{id:"22-cartesian-coordinate-system-epsg7203",children:"2.2 Cartesian Coordinate System (EPSG:7203)"}),"\n",(0,i.jsxs)(n.p,{children:["The Cartesian coordinate system, also known as the rectilinear or orthogonal coordinate system, is the most basic and widely applied coordinate system. It defines a plane with two axes and a space with three axes that are perpendicular to each other, extensively applied in mathematics, physics, engineering, astronomy, and many other fields. ",(0,i.jsx)(n.img,{alt:"image.png",src:t(4535).A+"",width:"560",height:"560"})]}),"\n",(0,i.jsx)(n.h3,{id:"23-data-storage-formats",children:"2.3 Data Storage Formats"}),"\n",(0,i.jsx)(n.p,{children:"OGC (Open Geospatial Consortium) has defined standard representation formats for spatial data, namely WKT and WKB formats, for exchanging and storing spatial data between different systems and platforms, which have now been widely adopted. WKT (Well-Known Text) format is a text markup language that is easy to read and write for humans, while WKB (Well-Known Binary) format uses a series of bytes to encode spatial data, which is more suitable for storage in computers."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"WKT:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"POINT( )\nLINESTRING( , , ...)\n"})}),"\n",(0,i.jsx)(n.p,{children:"The WKT format data is as shown above, first specifying the spatial data type, then specifying the coordinates in parentheses, with a pair of coordinates representing a point, separated by commas between each coordinate pair. For Polygon type data, the first coordinate pair needs to be the same as the last coordinate pair to form a closed surface."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"WKB:"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(5019).A+"",width:"858",height:"264"})}),"\n",(0,i.jsx)(n.p,{children:"The encoding for the EWKB format is explained as follows:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Positions 0 - 1: Encoding method;"}),"\n",(0,i.jsxs)(n.li,{children:["Positions 2 - 5: Spatial data type;\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"0100: point"}),"\n",(0,i.jsx)(n.li,{children:"0200: linestring"}),"\n",(0,i.jsx)(n.li,{children:"0300: polygon"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Positions 6 - 9: Data dimension;\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"0020: two-dimensional"}),"\n",(0,i.jsx)(n.li,{children:"0030: three-dimensional"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Positions 10 - 17: EPSG code of the coordinate system;"}),"\n",(0,i.jsx)(n.li,{children:"Positions 18 - n: 16-bit hex representation of pairs of double-type coordinates."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"24-common-functions",children:"2.4 Common functions"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Name"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Signature"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"dbms.graph.createGraph"})}),(0,i.jsx)(n.td,{children:"create a subgraph"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.createVertexLabel"})}),(0,i.jsx)(n.td,{children:"create a vertex label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.getLabelSchema"})}),(0,i.jsx)(n.td,{children:"get the schema of label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.deleteLabel"})}),(0,i.jsx)(n.td,{children:"delete vertex label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["\u66f4\u5b8c\u6574\u8be6\u7ec6\u7684\u51fd\u6570\u4f7f\u7528\u4ee5\u53ca\u63d2\u5165\u6570\u636e\u7684\u8bed\u53e5\uff0c\u53ef\u4ee5\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"/tugraph-db/en-US/source/query/cypher",children:"Cypher API"})]}),"\n",(0,i.jsx)(n.h2,{id:"3-data-types",children:"3. Data Types"}),"\n",(0,i.jsx)(n.p,{children:"Currently, in TuGraph, we support three types of spatial data: Point, Linestring, and Polygon."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Point: POINT(2.0, 2.0, 7203)"}),"\n",(0,i.jsx)(n.li,{children:"Linestring: LINESTRING(0 2,1 1,2 0)"}),"\n",(0,i.jsx)(n.li,{children:"Polygon: POLYGON((0 0,0 7,4 2,2 0,0 0))"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Coordinates are of double type. Examples for creating graph models and inserting data as follows:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex to mark food locations"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true) \n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(6547).A+"",width:"932",height:"322"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Insert data to mark food points"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CREATE (n:food {id:10001, name: 'aco Bell',pointTest:point(3.0,4.0,7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(8635).A+"",width:"1112",height:"706"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex with polyline attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('lineTest', 'id', 'id', int64, false, 'name', string, true,'linestringTest',linestring,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(4962).A+"",width:"953",height:"432"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Insert data for vertex with linestring attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:lineTest {id:102, name: 'Tom',linestringTest:linestringwkt('LINESTRING(0 2,1 1,2 0)', 7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(289).A+"",width:"1777",height:"854"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex with polygon attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('polygonTest', 'id', 'id', int64, false, 'name', string, true,'polygonTest',polygon,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(2976).A+"",width:"922",height:"389"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Inser data for vertex with polygon attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:polygonTest {id:103, name: 'polygonTest',polygonTest:polygonwkt('POLYGON((0 0,0 7,4 2,2 0,0 0))', 7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.h2,{id:"4-function-introduction",children:"4. Function Introduction"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Function Name"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Input Parameters"}),(0,i.jsx)(n.th,{children:"Return Type"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Distance()"}),(0,i.jsx)(n.td,{children:"Calculate the distance between two spatial data (requires the same coordinate system)"}),(0,i.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,i.jsx)(n.td,{children:"double"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Disjoint()"}),(0,i.jsx)(n.td,{children:"Determine whether two spatial data intersect (under development)"}),(0,i.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,i.jsx)(n.td,{children:"bool"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"WithinBBox()"}),(0,i.jsx)(n.td,{children:"Determine whether a spatial data is within a given rectangular area (under development)"}),(0,i.jsx)(n.td,{children:"Spatial data, Point1"}),(0,i.jsx)(n.td,{children:"bool"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"5-food-exploration",children:"5. Food Exploration"}),"\n",(0,i.jsx)(n.h3,{id:"51-personalized-recommendations-based-on-geographic-location",children:"5.1 Personalized Recommendations Based on Geographic Location"}),"\n",(0,i.jsx)(n.p,{children:'In this section, we will explore how to use the TuGraph graph database\'s geospatial capabilities to create a vivid and interesting food exploration application that connects "people" and "food" through geographical locations to achieve personalized food recommendations. Imagine, no matter where you are, with just a gentle tap, the tempting food around you is at a glance \u2013 this is precisely the charm of the scene we\'re about to build.'}),"\n",(0,i.jsx)(n.h3,{id:"52-data-model-design",children:"5.2 Data Model Design"}),"\n",(0,i.jsx)(n.p,{children:"We first define two core types of vertex:\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Food vertex: Each restaurant or snack shop can serve as a Food node, with attributes that include but are not limited to the name, address, rating, food category, etc. Notably, we will attach geographic coordinate information to every Food node to record its precise location accurately."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true,'mark',double,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Prepare data:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:food {id:10001, name: 'Starbucks',pointTest:point(1.0,1.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10002, name: 'KFC',pointTest:point(2.0,1.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10003, name: 'Pizza Hut',pointTest:point(2.0,5.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10004, name: 'Taco Bell',pointTest:point(3.0,4.0,7203),mark:4.7}) RETURN n\nCREATE (n:food {id:10005, name: 'Pizza Fusion',pointTest:point(5.0,3.0,7203),mark:4.9}) RETURN n\nCREATE (n:food {id:10006, name: 'HaiDiLao Hot Pot',pointTest:point(2.0,2.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10007, name: 'Lao Sze Chuan',pointTest:point(4.0,3.0,7203),mark:4.7}) RETURN n\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Person vertex: Represents the user of the application, with attributes including username, current location, etc. The user's current location is also represented by geographic coordinates, facilitating subsequent geospatial queries."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CALL db.createVertexLabel('person', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Prepare data:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CREATE (n:person {id:1, name: 'Tom',pointTest:point(3.0,3.0,7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.h3,{id:"53-building-the-food-exploration-query",children:"5.3 Building the Food Exploration Query"}),"\n",(0,i.jsx)(n.p,{children:"The ability to find food within a distance of 2.5 based on the user's current location, and sort by distance in ascending order allows users to have a better experience by seeing the distance and rating."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Query Statement"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"match (n:person{id:1}),(m:food) with n.pointTest as p1,m.pointTest as p2,m.name as food,m.mark as mark\nCALL spatial.distance(p1,p2) YIELD distance \nWHERE distance<2.5\nRETURN food,distance,mark ORDER by distance\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(379).A+"",width:"1786",height:"821"})}),"\n",(0,i.jsx)(n.p,{children:'This query first matches a specific Person node (taking the user "Tom" as an example) and then finds all Food nodes. Using the custom distance function, the query calculates the straight-line distance between the current location of the Person node and each Food node, filtering out food within a distance of 2.5. Finally, the results are sorted by distance in ascending order, and the rating is provided as a reference to offer users the best possible recommendations.'}),"\n",(0,i.jsx)(n.h2,{id:"6-outlook",children:"6. Outlook"}),"\n",(0,i.jsx)(n.p,{children:"The aforementioned sections not only showcase TuGraph's capabilities in handling geospatial data but also depict an attractive food exploration scenario, proving the great potential of graph databases in providing personalized services that combine geographic location information. Whether it's finding a relaxing spot for the weekend or exploring unique cuisines during travel, such applications are set to greatly enrich people's life experiences.\nTuGraph will continue to implement Disjoint() and WithinBBox() functions, enriching more use cases. Of course, everyone is welcome to participate and collaborate in developing geospatial functionalities."})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},7720:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/EPSG_4326-ebcf508237a6a659deda1c1c05da731b.png"},4535:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/EPSG_7203-813d52c83637ec9bff32110935eb851d.png"},5019:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/WKB-fe5482c2e6681a0467a03cbf55761578.png"},8635:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createFoodData-42a1476e438f5b07b017a493510a074f.png"},289:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createLineTestData-d6b3f97eeae6bc43b1db36b3ac1536d4.png"},6547:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel-6b5834819d1f4d20958b9ba6f13ebbde.png"},2976:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel_PolygonTest-6c36f0248cb4843d13546b71df5b0eb1.png"},4962:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel_lineTest-b37d40db2f4c254af64535f30a2842c5.png"},379:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/querryFood-bd53767c9a6b584a1ba73dae4f429efb.png"},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var i=t(6540);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/77278843.b99f48f2.js b/assets/js/77278843.b99f48f2.js
new file mode 100644
index 0000000000..7c568d5b64
--- /dev/null
+++ b/assets/js/77278843.b99f48f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4371],{6099:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=t(4848),a=t(8453);const s={},o="Examples of geospatial data type usage",r={id:"best-practices/spatial",title:"Examples of geospatial data type usage",description:"1. Introduction",source:"@site/../docs/en-US/source/13.best-practices/5.spatial.md",sourceDirName:"13.best-practices",slug:"/best-practices/spatial",permalink:"/tugraph-db/en/best-practices/spatial",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Environment and version selection",permalink:"/tugraph-db/en/best-practices/selection"},next:{title:"FAQ",permalink:"/tugraph-db/en/faq"}},d={},l=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. Background Knowledge",id:"2-background-knowledge",level:2},{value:"2.1 WGS84 Coordinate System (EPSG:4326)",id:"21-wgs84-coordinate-system-epsg4326",level:3},{value:"2.2 Cartesian Coordinate System (EPSG:7203)",id:"22-cartesian-coordinate-system-epsg7203",level:3},{value:"2.3 Data Storage Formats",id:"23-data-storage-formats",level:3},{value:"2.4 Common functions",id:"24-common-functions",level:3},{value:"3. Data Types",id:"3-data-types",level:2},{value:"4. Function Introduction",id:"4-function-introduction",level:2},{value:"5. Food Exploration",id:"5-food-exploration",level:2},{value:"5.1 Personalized Recommendations Based on Geographic Location",id:"51-personalized-recommendations-based-on-geographic-location",level:3},{value:"5.2 Data Model Design",id:"52-data-model-design",level:3},{value:"5.3 Building the Food Exploration Query",id:"53-building-the-food-exploration-query",level:3},{value:"6. Outlook",id:"6-outlook",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"examples-of-geospatial-data-type-usage",children:"Examples of geospatial data type usage"})}),"\n",(0,i.jsx)(n.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,i.jsx)(n.p,{children:"TuGraph, a graph database jointly developed by Ant Group and Tsinghua University, has built a comprehensive graph technology system that includes graph storage, graph calculation, graph learning, and a graph development platform, owning a leading-scale graph cluster in the industry. In recent years, geospatial capabilities have demonstrated significant application value in graph databases. They not only enhance the expressive power of data but also facilitate the fusion analysis of cross-domain data, especially displaying strong practical value in critical fields such as social networks, map exploration, and urban planning. TuGraph is also gradually supporting geospatial capabilities."}),"\n",(0,i.jsx)(n.h2,{id:"2-background-knowledge",children:"2. Background Knowledge"}),"\n",(0,i.jsxs)(n.p,{children:["EPSG(",(0,i.jsx)(n.a,{href:"https://epsg.io/",children:"EPSG.io: Coordinate Systems Worldwide"}),") is a standardized collection of geospatial reference system identifiers, used to identify different geospatial reference systems, including coordinate systems, geographic coordinate systems, projected coordinate systems, etc. We commonly use EPSG codes to represent the coordinate systems of data, and here we introduce two of the most common geospatial coordinate systems, which are also the types supported by most databases."]}),"\n",(0,i.jsx)(n.h3,{id:"21-wgs84-coordinate-system-epsg4326",children:"2.1 WGS84 Coordinate System (EPSG:4326)"}),"\n",(0,i.jsxs)(n.p,{children:["Global Positioning System: WGS84 is the foundation of the Global Positioning System (GPS), allowing GPS receivers around the world to determine precise positions. Almost all modern GPS devices provide location information based on the WGS84 coordinate system. Map Making and Geographic Information Systems (GIS): In the field of map making and GIS, WGS84 is widely used to define positions on Earth. This includes various types of map creation, spatial data analysis, and management, etc. ",(0,i.jsx)(n.img,{alt:"image.png",src:t(7720).A+"",width:"821",height:"390"})]}),"\n",(0,i.jsx)(n.h3,{id:"22-cartesian-coordinate-system-epsg7203",children:"2.2 Cartesian Coordinate System (EPSG:7203)"}),"\n",(0,i.jsxs)(n.p,{children:["The Cartesian coordinate system, also known as the rectilinear or orthogonal coordinate system, is the most basic and widely applied coordinate system. It defines a plane with two axes and a space with three axes that are perpendicular to each other, extensively applied in mathematics, physics, engineering, astronomy, and many other fields. ",(0,i.jsx)(n.img,{alt:"image.png",src:t(4535).A+"",width:"560",height:"560"})]}),"\n",(0,i.jsx)(n.h3,{id:"23-data-storage-formats",children:"2.3 Data Storage Formats"}),"\n",(0,i.jsx)(n.p,{children:"OGC (Open Geospatial Consortium) has defined standard representation formats for spatial data, namely WKT and WKB formats, for exchanging and storing spatial data between different systems and platforms, which have now been widely adopted. WKT (Well-Known Text) format is a text markup language that is easy to read and write for humans, while WKB (Well-Known Binary) format uses a series of bytes to encode spatial data, which is more suitable for storage in computers."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"WKT:"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"POINT( )\nLINESTRING( , , ...)\n"})}),"\n",(0,i.jsx)(n.p,{children:"The WKT format data is as shown above, first specifying the spatial data type, then specifying the coordinates in parentheses, with a pair of coordinates representing a point, separated by commas between each coordinate pair. For Polygon type data, the first coordinate pair needs to be the same as the last coordinate pair to form a closed surface."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"WKB:"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(5019).A+"",width:"858",height:"264"})}),"\n",(0,i.jsx)(n.p,{children:"The encoding for the EWKB format is explained as follows:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Positions 0 - 1: Encoding method;"}),"\n",(0,i.jsxs)(n.li,{children:["Positions 2 - 5: Spatial data type;\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"0100: point"}),"\n",(0,i.jsx)(n.li,{children:"0200: linestring"}),"\n",(0,i.jsx)(n.li,{children:"0300: polygon"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Positions 6 - 9: Data dimension;\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"0020: two-dimensional"}),"\n",(0,i.jsx)(n.li,{children:"0030: three-dimensional"}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:"Positions 10 - 17: EPSG code of the coordinate system;"}),"\n",(0,i.jsx)(n.li,{children:"Positions 18 - n: 16-bit hex representation of pairs of double-type coordinates."}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"24-common-functions",children:"2.4 Common functions"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Name"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Signature"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"dbms.graph.createGraph"})}),(0,i.jsx)(n.td,{children:"create a subgraph"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"dbms.graph.createGraph(graph_name::STRING, description::STRING, max_size_GB::INTEGER) :: (::VOID)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.createVertexLabel"})}),(0,i.jsx)(n.td,{children:"create a vertex label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.createVertexLabel(label_name::STRING,field_specs::LIST) :: (::VOID)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.getLabelSchema"})}),(0,i.jsx)(n.td,{children:"get the schema of label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.getLabelSchema(label_type::STRING,label_name::STRING) :: (name::STRING,type::STRING,optional::BOOLEAN)"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.deleteLabel"})}),(0,i.jsx)(n.td,{children:"delete vertex label"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"db.deleteLabel(label_type::STRING,label_name::STRING) :: (::VOID)"})})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["\u66f4\u5b8c\u6574\u8be6\u7ec6\u7684\u51fd\u6570\u4f7f\u7528\u4ee5\u53ca\u63d2\u5165\u6570\u636e\u7684\u8bed\u53e5\uff0c\u53ef\u4ee5\u53c2\u8003 ",(0,i.jsx)(n.a,{href:"/tugraph-db/en/query/cypher",children:"Cypher API"})]}),"\n",(0,i.jsx)(n.h2,{id:"3-data-types",children:"3. Data Types"}),"\n",(0,i.jsx)(n.p,{children:"Currently, in TuGraph, we support three types of spatial data: Point, Linestring, and Polygon."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Point: POINT(2.0, 2.0, 7203)"}),"\n",(0,i.jsx)(n.li,{children:"Linestring: LINESTRING(0 2,1 1,2 0)"}),"\n",(0,i.jsx)(n.li,{children:"Polygon: POLYGON((0 0,0 7,4 2,2 0,0 0))"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Coordinates are of double type. Examples for creating graph models and inserting data as follows:"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex to mark food locations"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true) \n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(6547).A+"",width:"932",height:"322"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Insert data to mark food points"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CREATE (n:food {id:10001, name: 'aco Bell',pointTest:point(3.0,4.0,7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(8635).A+"",width:"1112",height:"706"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex with polyline attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('lineTest', 'id', 'id', int64, false, 'name', string, true,'linestringTest',linestring,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(4962).A+"",width:"953",height:"432"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Insert data for vertex with linestring attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:lineTest {id:102, name: 'Tom',linestringTest:linestringwkt('LINESTRING(0 2,1 1,2 0)', 7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(289).A+"",width:"1777",height:"854"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create a vertex with polygon attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CALL db.createVertexLabel('polygonTest', 'id', 'id', int64, false, 'name', string, true,'polygonTest',polygon,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(2976).A+"",width:"922",height:"389"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Inser data for vertex with polygon attributes"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:polygonTest {id:103, name: 'polygonTest',polygonTest:polygonwkt('POLYGON((0 0,0 7,4 2,2 0,0 0))', 7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.h2,{id:"4-function-introduction",children:"4. Function Introduction"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Function Name"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Input Parameters"}),(0,i.jsx)(n.th,{children:"Return Type"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Distance()"}),(0,i.jsx)(n.td,{children:"Calculate the distance between two spatial data (requires the same coordinate system)"}),(0,i.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,i.jsx)(n.td,{children:"double"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Disjoint()"}),(0,i.jsx)(n.td,{children:"Determine whether two spatial data intersect (under development)"}),(0,i.jsx)(n.td,{children:"Spatial data1, Spatial data2"}),(0,i.jsx)(n.td,{children:"bool"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"WithinBBox()"}),(0,i.jsx)(n.td,{children:"Determine whether a spatial data is within a given rectangular area (under development)"}),(0,i.jsx)(n.td,{children:"Spatial data, Point1"}),(0,i.jsx)(n.td,{children:"bool"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"5-food-exploration",children:"5. Food Exploration"}),"\n",(0,i.jsx)(n.h3,{id:"51-personalized-recommendations-based-on-geographic-location",children:"5.1 Personalized Recommendations Based on Geographic Location"}),"\n",(0,i.jsx)(n.p,{children:'In this section, we will explore how to use the TuGraph graph database\'s geospatial capabilities to create a vivid and interesting food exploration application that connects "people" and "food" through geographical locations to achieve personalized food recommendations. Imagine, no matter where you are, with just a gentle tap, the tempting food around you is at a glance \u2013 this is precisely the charm of the scene we\'re about to build.'}),"\n",(0,i.jsx)(n.h3,{id:"52-data-model-design",children:"5.2 Data Model Design"}),"\n",(0,i.jsx)(n.p,{children:"We first define two core types of vertex:\uff1a"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Food vertex: Each restaurant or snack shop can serve as a Food node, with attributes that include but are not limited to the name, address, rating, food category, etc. Notably, we will attach geographic coordinate information to every Food node to record its precise location accurately."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CALL db.createVertexLabel('food', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true,'mark',double,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Prepare data:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"CREATE (n:food {id:10001, name: 'Starbucks',pointTest:point(1.0,1.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10002, name: 'KFC',pointTest:point(2.0,1.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10003, name: 'Pizza Hut',pointTest:point(2.0,5.0,7203),mark:4.5}) RETURN n\nCREATE (n:food {id:10004, name: 'Taco Bell',pointTest:point(3.0,4.0,7203),mark:4.7}) RETURN n\nCREATE (n:food {id:10005, name: 'Pizza Fusion',pointTest:point(5.0,3.0,7203),mark:4.9}) RETURN n\nCREATE (n:food {id:10006, name: 'HaiDiLao Hot Pot',pointTest:point(2.0,2.0,7203),mark:4.8}) RETURN n\nCREATE (n:food {id:10007, name: 'Lao Sze Chuan',pointTest:point(4.0,3.0,7203),mark:4.7}) RETURN n\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Person vertex: Represents the user of the application, with attributes including username, current location, etc. The user's current location is also represented by geographic coordinates, facilitating subsequent geospatial queries."}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CALL db.createVertexLabel('person', 'id', 'id', int64, false, 'name', string, true,'pointTest',point,true)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Prepare data:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:" CREATE (n:person {id:1, name: 'Tom',pointTest:point(3.0,3.0,7203)}) RETURN n\n"})}),"\n",(0,i.jsx)(n.h3,{id:"53-building-the-food-exploration-query",children:"5.3 Building the Food Exploration Query"}),"\n",(0,i.jsx)(n.p,{children:"The ability to find food within a distance of 2.5 based on the user's current location, and sort by distance in ascending order allows users to have a better experience by seeing the distance and rating."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Query Statement"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"match (n:person{id:1}),(m:food) with n.pointTest as p1,m.pointTest as p2,m.name as food,m.mark as mark\nCALL spatial.distance(p1,p2) YIELD distance \nWHERE distance<2.5\nRETURN food,distance,mark ORDER by distance\n"})}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image.png",src:t(379).A+"",width:"1786",height:"821"})}),"\n",(0,i.jsx)(n.p,{children:'This query first matches a specific Person node (taking the user "Tom" as an example) and then finds all Food nodes. Using the custom distance function, the query calculates the straight-line distance between the current location of the Person node and each Food node, filtering out food within a distance of 2.5. Finally, the results are sorted by distance in ascending order, and the rating is provided as a reference to offer users the best possible recommendations.'}),"\n",(0,i.jsx)(n.h2,{id:"6-outlook",children:"6. Outlook"}),"\n",(0,i.jsx)(n.p,{children:"The aforementioned sections not only showcase TuGraph's capabilities in handling geospatial data but also depict an attractive food exploration scenario, proving the great potential of graph databases in providing personalized services that combine geographic location information. Whether it's finding a relaxing spot for the weekend or exploring unique cuisines during travel, such applications are set to greatly enrich people's life experiences.\nTuGraph will continue to implement Disjoint() and WithinBBox() functions, enriching more use cases. Of course, everyone is welcome to participate and collaborate in developing geospatial functionalities."})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},7720:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/EPSG_4326-ebcf508237a6a659deda1c1c05da731b.png"},4535:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/EPSG_7203-813d52c83637ec9bff32110935eb851d.png"},5019:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/WKB-fe5482c2e6681a0467a03cbf55761578.png"},8635:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createFoodData-42a1476e438f5b07b017a493510a074f.png"},289:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createLineTestData-d6b3f97eeae6bc43b1db36b3ac1536d4.png"},6547:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel-6b5834819d1f4d20958b9ba6f13ebbde.png"},2976:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel_PolygonTest-6c36f0248cb4843d13546b71df5b0eb1.png"},4962:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/createVertexLabel_lineTest-b37d40db2f4c254af64535f30a2842c5.png"},379:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/querryFood-bd53767c9a6b584a1ba73dae4f429efb.png"},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var i=t(6540);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7a14f772.11c2848e.js b/assets/js/7a14f772.11c2848e.js
new file mode 100644
index 0000000000..b91d80334e
--- /dev/null
+++ b/assets/js/7a14f772.11c2848e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2674],{7959:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var t=i(4848),r=i(8453);const s={},o="OlapOnDisk API",a={id:"olap&procedure/olap/olap-on-disk-api",title:"OlapOnDisk API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDisk API\u7684\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/9.olap&procedure/2.olap/4.olap-on-disk-api.md",sourceDirName:"9.olap&procedure/2.olap",slug:"/olap&procedure/olap/olap-on-disk-api",permalink:"/tugraph-db/zh/olap&procedure/olap/olap-on-disk-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDB API",permalink:"/tugraph-db/zh/olap&procedure/olap/olap-on-db-api"},next:{title:"Python Olap API",permalink:"/tugraph-db/zh/olap&procedure/olap/python-api"}},c={},d=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u7b97\u6cd5\u4e3e\u4f8b",id:"2-\u7b97\u6cd5\u4e3e\u4f8b",level:2},{value:"2.1 \u5934\u6587\u4ef6",id:"21-\u5934\u6587\u4ef6",level:3},{value:"2.2 \u914d\u7f6e\u7c7bMyConfig",id:"22-\u914d\u7f6e\u7c7bmyconfig",level:3},{value:"2.3 \u4e3b\u51fd\u6570",id:"23-\u4e3b\u51fd\u6570",level:3},{value:"2.4 bfs\u7b97\u6cd5\u6d41\u7a0b",id:"24-bfs\u7b97\u6cd5\u6d41\u7a0b",level:3},{value:"3. \u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",id:"3-\u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",level:2},{value:"3.1 \u56fe\u52a0\u8f7d",id:"31-\u56fe\u52a0\u8f7d",level:3},{value:"3.2 \u56fe\u5199\u5165",id:"32-\u56fe\u5199\u5165",level:3},{value:"3.3 \u56fe\u89e3\u6790\u51fd\u6570",id:"33-\u56fe\u89e3\u6790\u51fd\u6570",level:3}];function l(n){const e={blockquote:"blockquote",code:"code",edgedata:"edgedata",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"olapondisk-api",children:"OlapOnDisk API"})}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDisk API\u7684\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u7684Standalone\u6a21\u5f0f\u53ef\u7528\u4e8e\u52a0\u8f7d\u56fe\u6570\u636e\u6587\u4ef6\uff0c\u5176\u4e2d\u56fe\u6570\u636e\u6587\u4ef6\u6765\u6e90\u53ef\u5305\u542btext\u6587\u672c\u6587\u4ef6\u3001BINARY_FILE\u4e8c\u8fdb\u5236\u6587\u4ef6\u548cODPS\u6e90\u3002\u5728\u8be5\u6a21\u5f0f\u4e0b\uff0cTuGraph\u53ef\u5b9e\u73b0\u591a\u6570\u636e\u6765\u6e90\u5feb\u901f\u52a0\u8f7d\u6210\u56fe\uff0c\u7136\u540e\u5728\u8be5\u56fe\u4e0a\u8fd0\u884c\u5982BFS\u3001WCC\u3001SSSP\u7b49\u8fed\u4ee3\u5f0f\u7b97\u6cd5\uff0c\u5e76\u8f93\u51fa\u6700\u7ec8\u7ed3\u679c\u81f3\u7ec8\u7aef\u3002"}),"\n",(0,t.jsx)(e.p,{children:"\u5728TuGraph\u4e2d\uff0c\u5bfc\u51fa\u548c\u8ba1\u7b97\u8fc7\u7a0b\u5747\u53ef\u4ee5\u901a\u8fc7\u5728\u5185\u5b58\u4e2d\u5e76\u884c\u5904\u7406\u7684\u65b9\u5f0f\u8fdb\u884c\u52a0\u901f\uff0c\u4ece\u800c\u8fbe\u5230\u8fd1\u4e4e\u5b9e\u65f6\u7684\u5904\u7406\u5206\u6790\uff0c\u548c\u4f20\u7edf\u65b9\u6cd5\u76f8\u6bd4\uff0c\u5373\u907f\u514d\u4e86\u6570\u636e\u5bfc\u51fa\u843d\u76d8\u7684\u5f00\u9500\uff0c\u53c8\u80fd\u4f7f\u7528\u7d27\u51d1\u7684\u56fe\u6570\u636e\u7ed3\u6784\u83b7\u5f97\u8ba1\u7b97\u7684\u7406\u60f3\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u5185\u7f6e\u4e86\u5927\u91cf\u7684\u5e38\u89c1\u56fe\u5206\u6790\u7b97\u6cd5\u548c\u4e30\u5bcc\u7684\u8f85\u52a9\u63a5\u53e3\uff0c\u56e0\u6b64\u7528\u6237\u51e0\u4e4e\u4e0d\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u5177\u4f53\u7684\u56fe\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u53ea\u9700\u8981\u5728\u5b9e\u73b0\u81ea\u5df1\u7684\u5b58\u50a8\u8fc7\u7a0b\u7684\u65f6\u5019\u5c06\u76f8\u5e94\u7b97\u6cd5\u5e93\u7684\u5934\u6587\u4ef6(.h)\u5305\u542b\u5230\u81ea\u5df1\u7684\u7a0b\u5e8f\u4e2d\uff0c\u5e76\u5728\u7f16\u8bd1\u9636\u6bb5\u94fe\u63a5\u81ea\u5df1\u7684\u52a8\u6001\u5e93\u6587\u4ef6\u5373\u53ef\u3002"}),"\n",(0,t.jsx)(e.p,{children:"\u8be5\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86Standalone\u7684\u5e38\u7528\u63a5\u53e3\uff0c\u4f7f\u7528\u5230\u7684\u8f85\u52a9\u51fd\u6570\u4e3b\u8981\u5305\u542b\u5728OlapOnDB\u7c7b\u3002\u540c\u65f6\u4e3a\u5e2e\u52a9\u7528\u6237\u7406\u89e3\u65b9\u4fbf\uff0c\u5bf9BFS\u7b97\u6cd5\u8fdb\u884c\u4e3e\u4f8b\u8bf4\u660e\u3002"}),"\n",(0,t.jsx)(e.h2,{id:"2-\u7b97\u6cd5\u4e3e\u4f8b",children:"2. \u7b97\u6cd5\u4e3e\u4f8b"}),"\n",(0,t.jsxs)(e.p,{children:["\u5728\u8fd9\u91cc\u5bf9BFS\u7b97\u6cd5\u5206\u5757\u505a\u89e3\u91ca\uff0c\u5927\u4f53\u4e0a\u5206\u4e3a\u4e3b\u51fd\u6570",(0,t.jsx)(e.code,{children:"main"}),"\u3001BFS\u7b97\u6cd5\u6d41\u7a0b",(0,t.jsx)(e.code,{children:"BFSCore"}),"\u51fd\u6570\u548c\u914d\u7f6e\u7c7bMyConfig\u3002"]}),"\n",(0,t.jsx)(e.h3,{id:"21-\u5934\u6587\u4ef6",children:"2.1 \u5934\u6587\u4ef6"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'#include "olap/olap_on_disk.h" \n#include "tools/json.hpp" //\u4f7f\u7528 TuGraph \u65f6\u9700\u8981\u5305\u542b\u7684\u5934\u6587\u4ef6\n#include "./algo.h" //\u5305\u542b\u5404\u79cd\u7b97\u6cd5\u903b\u8f91\u51fd\u6570\u7684\u5934\u6587\u4ef6\n'})}),"\n",(0,t.jsx)(e.p,{children:"\u5728\u4f7f\u7528 TuGraph \u5b9e\u73b0\u56fe\u6570\u636e\u6587\u4ef6\u8ba1\u7b97\u5e94\u7528\u65f6\uff0c\u4e00\u822c\u9996\u5148\u5efa\u7acbStandaloneGraph\u7c7b\u5bf9\u8c61graph\uff0c\u5c06\u56fe\u6587\u4ef6\u6570\u636e\u52a0\u8f7d\u8fdbgraph\u4e2d\uff0c\u4e4b\u540e\u901a\u8fc7\u8c03\u7528\u56fe\u903b\u8f91\u51fd\u6570\u5b9e\u73b0\u56fe\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u6700\u540e\u5bf9\u56fe\u8ba1\u7b97\u7684\u7ed3\u679c\u8fdb\u884c\u6253\u5370\u8f93\u51fa\u3002"}),"\n",(0,t.jsx)(e.h3,{id:"22-\u914d\u7f6e\u7c7bmyconfig",children:"2.2 \u914d\u7f6e\u7c7bMyConfig"}),"\n",(0,t.jsxs)(e.p,{children:["MyConfig\u914d\u7f6e\u7c7b\u51fd\u6570\u7528\u4e8e\u63d0\u4f9b\u7b97\u6cd5\u903b\u8f91\u8ba1\u7b97\u65f6\u6240\u9700\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u7ee7\u627f\u4e8eConfigBase",(0,t.jsx)(e.edgedata,{children:",\u5176\u4e2dEdgeDate\u53ef\u6839\u636e\u52a0\u8f7d\u56fe\u7c7b\u578b\u4e0d\u540c\u9009\u62e9Empty\uff08\u65e0\u6743\u56fe\uff09\u3001int\uff08\u5e26\u6743\u56fe\u6743\u91cd\u4e3a\u6574\u6570\uff09\u6216\u8005double\uff08\u5e26\u6743\u56fe\u6743\u91cd\u4e3adouble\uff09\u7c7b\u578b\u3002"})]}),"\n",(0,t.jsx)(e.p,{children:"MyConfig\u914d\u7f6e\u7c7b\u4e00\u822c\u6839\u636e\u7b97\u6cd5\u4e0d\u540c\uff0c\u9700\u8981\u989d\u5916\u914d\u7f6e\u4fe1\u606f\u5982\u4e0b\uff1a"}),"\n",(0,t.jsx)(e.p,{children:"1.\u7b97\u6cd5\u6240\u9700\u53c2\u6570\n2.\u7b97\u6cd5\u540d\u79f0\n3.\u914d\u7f6e\u7c7b\u5185Print\u51fd\u6570\n\u5176\u4f59\u516c\u7528\u6210\u5458\u7ee7\u627f\u4e0eConfigBase\uff0c\u53ef\u53c2\u8003src/olap/olap_config.h\u67e5\u9605\u3002"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'class MyConfig : public ConfigBase {\n public:\n\n // \u7b97\u6cd5\u6240\u9700\u53c2\u6570\u521d\u59cb\u5316\n size_t root = 0;\n std::string name = std::string("bfs");\n void AddParameter(fma_common::Configuration & config) {\n ConfigBase::AddParameter(config);\n config.Add(root, "root", true)\n .Comment("the root of bfs");\n }\n void Print() {\n ConfigBase::Print();\n std::cout << " name: " << name << std::endl;\n if (root != size_t(-1)) {\n std::cout << " root: " << root << std::endl;\n } else {\n std::cout << " root: UNSET" << std::endl;\n }\n }\n // \u914d\u7f6e\u6587\u4ef6\u63a5\u53d7\u547d\u4ee4\u884c\u53c2\u6570\uff0c\u8be5\u7528\u4f8b\u4f1a\u987a\u6b21\u8bfb\u53d6\u547d\u4ee4\u884c\u8c03\u7528\u7b97\u6cd5\u65f6\u7684\u53c2\u6570\uff0c\u4f18\u5148\u4f7f\u7528\u7528\u6237\u6307\u5b9a\u6570\u503c\uff0c\u82e5\u7528\u6237\u5e76\u672a\u6307\u5b9a\u5219\u9009\u62e9\u9ed8\u8ba4\u53c2\u6570\u3002\n MyConfig(int &argc, char** &argv): ConfigBase(argc, argv) {\n fma_common::Configuration config;\n AddParameter(config);\n config.ExitAfterHelp(true);\n config.ParseAndFinalize(argc, argv);\n Print();\n }\n};\n'})}),"\n",(0,t.jsx)(e.h3,{id:"23-\u4e3b\u51fd\u6570",children:"2.3 \u4e3b\u51fd\u6570"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'int main(int argc, char** argv) {\n double start_time;\n // \u7edf\u8ba1\u5185\u5b58\u6d88\u8017\u7c7bMemUsage\u5b9e\u4f8b\u5316\n MemUsage memUsage;\n memUsage.startMemRecord();\n\n // prepare\n start_time = get_time();\n // \u914d\u7f6e\u7c7bMyConfig\u5b9e\u4f8b\u5316\n MyConfig config(argc, argv);\n size_t root_vid = config.root;\n // OlapOnDisk\u7c7b\u5b9e\u4f8b\u5316\n OlapOnDisk graph;\n graph.Load(config, DUAL_DIRECTION);\n memUsage.print();\n memUsage.reset();\n // \u7edf\u8ba1\u56fe\u52a0\u8f7d\u6d88\u8017\u65f6\u95f4\n auto prepare_cost = get_time() - start_time;\n printf("prepare_cost = %.2lf(s)\\n", prepare_cost);\n\n // core\n start_time = get_time();\n // \u521b\u5efa\u6570\u7ec4\u7528\u4e8e\u7edf\u8ba1\u67d0\u8282\u70b9\u662f\u5426\u904d\u5386\u8fc7\n auto parent = graph.AllocVertexArray();\n // \u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\u7b97\u6cd5\uff0c\u8fd4\u56de\u56fe\u5185root_vid\u6839\u7ed3\u70b9\u8fde\u63a5\u7684\u8282\u70b9\u4e2a\u6570\n size_t count = BFSCore(graph, root_vid, parent);\n memUsage.print();\n memUsage.reset();\n auto core_cost = get_time() - start_time;\n printf("core_cost = %.2lf(s)\\n", core_cost);\n\n // output\n start_time = get_time();\n // \u6253\u5370\u76f8\u5173\u4fe1\u606f\u81f3\u7ec8\u7aef\n printf("found_vertices = %ld\\n", count);\n auto output_cost = get_time() - start_time;\n printf("output_cost = %.2lf(s)\\n", output_cost);\n\n printf("total_cost = %.2lf(s)\\n", prepare_cost + core_cost + output_cost);\n printf("DONE.");\n\n return 0;\n}\n'})}),"\n",(0,t.jsx)(e.h3,{id:"24-bfs\u7b97\u6cd5\u6d41\u7a0b",children:"2.4 bfs\u7b97\u6cd5\u6d41\u7a0b"}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"bfs"}),"\u4e3b\u6d41\u7a0b\u6709\u4e24\u4e2a\u8f93\u5165\u53c2\u6570\uff0c\u5feb\u7167\u7c7b\uff08\u5b50\u56fe\uff09\u8fd8\u6709\u8fed\u4ee3\u6b21\u6570\uff0c\u6574\u4f53\u6d41\u7a0b\u53ef\u4ee5\u5206\u4e3a\u4ee5\u4e0b\u51e0\u6b65\uff1a"]}),"\n",(0,t.jsxs)(e.ol,{children:["\n",(0,t.jsx)(e.li,{children:"\u76f8\u5173\u5b9a\u4e49\u3001\u6570\u636e\u7ed3\u6784\u7684\u521d\u59cb\u5316"}),"\n",(0,t.jsx)(e.li,{children:"\u4f7f\u7528\u6279\u5904\u7406\u51fd\u6570\u5bf9\u6bcf\u4e2a\u8282\u70b9\u8fdb\u884c\u5faa\u73af\u8ba1\u7b97\uff0c\u6bcf\u4e00\u8f6e\u627e\u5230\u4e0e\u5f53\u524d\u8282\u70b9\u76f8\u90bb\u7684\u5168\u90e8\u8282\u70b9\uff0c\u5e76\u5728\u8be5\u8f6e\u6b21\u7ec8\u6b62\u65f6\u8fdb\u884c\u4ea4\u6362\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u76f4\u5230\u627e\u5230\u5168\u90e8\u8282\u70b9\uff0c\u8fd4\u56de\u8282\u70b9\u4e2a\u6570discovered_vertices\u3002"}),"\n"]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'size_t BFSCore(Graph& graph, size_t root_vid, ParallelVector& parent){\n\n size_t root = root_vid;\n auto active_in = graph.AllocVertexSubset(); //\u5206\u914d\u6570\u7ec4\uff0cactive_in\u7528\u4e8e\u5b58\u653e\u4e0a\u4e00\u5faa\u73af\u9636\u6bb5\u5df2\u627e\u5230\u7684\u8282\u70b9\n active_in.Add(root); //\u628a\u8ddf\u8282\u70b9\u52a0\u5165\u6570\u7ec4\u4e2d\n auto active_out = graph.AllocVertexSubset(); //\u5206\u914d\u6570\u7ec4active_out\u7528\u4e8e\u5b58\u653e\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\n parent.Fill((size_t)-1); //\u5c06parent\u6570\u7ec4\u4e2d\u7684\u8282\u70b9\u8d4b\u503c\u4e3a-1\uff0c-1\u8868\u793a\u672a\u88ab\u627e\u5230\n parent[root] = root;\n size_t num_activations = 1; //\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\u4e2a\u6570\n size_t discovered_vertices = 0; //\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u8282\u70b9\u7684\u603b\u4e2a\u6570\n\n for (int ii = 0; num_activations != 0; ii++) { //num_activations\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\u4e2a\u6570\n printf("activates(%d) <= %lu\\n", ii, num_activations);\n discovered_vertices += num_activations; //discovered_vertices\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u8282\u70b9\u7684\u603b\u4e2a\u6570\n active_out.Clear();\n num_activations = graph.ProcessVertexActive(\n [&](size_t vi) {\n size_t num_activations = 0;\n for (auto& edge : graph.OutEdges(vi)) { //\u6bcf\u4e00\u6b21\u5faa\u73af\u4ece\u6839\u8282\u70b9\u51fa\u53d1\uff0c\u67e5\u627e\u90bb\u8fd1\u7684\u76f8\u90bb\u8282\u70b9\uff0c\u5bf9\u5176parent\u503c\u6539\u53d8\uff0c\u5e76num_activations+1\u64cd\u4f5c\n size_t dst = edge.neighbour;\n if (parent[dst] == (size_t)-1) {\n auto lock = graph.GuardVertexLock(dst);\n if (parent[dst] == (size_t)-1) {\n parent[dst] = vi;\n num_activations += 1;\n active_out.Add(dst); //\u5b58\u653e\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\n }\n }\n }\n return num_activations;\n },\n active_in);\n active_in.Swap(active_out);\n }\n // \u8fd4\u56de\u5168\u90e8\u8282\u70b9\u6570\n return discovered_vertices;\n}\n'})}),"\n",(0,t.jsx)(e.h2,{id:"3-\u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",children:"3. \u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0"}),"\n",(0,t.jsx)(e.h3,{id:"31-\u56fe\u52a0\u8f7d",children:"3.1 \u56fe\u52a0\u8f7d"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph-Standalone\u5bf9\u4e8e\u56fe\u6570\u636e\u6587\u4ef6\u7684\u52a0\u8f7d\u6765\u6e90\u4e3b\u8981\u5206\u4e3a\u4e09\u5927\u7c7b\uff1a\u6587\u672c\u6587\u4ef6\u3001\u4e8c\u8fdb\u5236\u6587\u4ef6\u548cODPS\u3002\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e3a\u5c06\u8fb9\u6570\u636e\u7684\u4e8c\u8fdb\u5236\u8868\u793a\u6309\u987a\u5e8f\u6392\u5217\u7684\u6587\u4ef6\uff0c\u80fd\u591f\u8282\u7701\u5927\u91cf\u5b58\u50a8\u7a7a\u95f4\u3002\u5176\u52a0\u8f7d\u51fd\u6570\u5206\u4e3a\u4e09\u79cd\uff0c\u5206\u522b\u662f\uff1a"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"void Load(ConfigBase config,EdgeDirectionPolicy edge_direction_policy = DUAL_DIRECTION)"}),"\uff1a\u56fe\u6570\u636e\u6587\u4ef6\u7684\u52a0\u8f7d\u65b9\u5f0f\uff0c\u5305\u542b\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u542b\u4e49\u5206\u522b\u8868\u793a\uff1a"]}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"config"}),"\uff1a\u9700\u8981\u52a0\u8f7d\u7684\u914d\u7f6e\u53c2\u6570\u3002\u8be5\u53c2\u6570\u5185\u4fdd\u5b58\u4e86\u8be5\u56fe\u7684\u4e00\u822c\u4fe1\u606f\uff08\u5982\u6570\u636e\u6765\u6e90\uff0c\u7b97\u6cd5\u540d\u79f0\uff0c\u6570\u636e\u8f93\u5165\u3001\u8f93\u51fa\u8def\u5f84\uff0c\u70b9\u4e2a\u6570\u7b49\uff09\u4ee5\u53ca\u6839\u636e\u4e0d\u540c\u6570\u636e\u6765\u6e90\u3001\u4e0d\u540c\u7b97\u6cd5\u6240\u914d\u7f6e\u7684\u4e0d\u540c\u4fe1\u606f\u53c2\u6570\u3002"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"edge_direction_policy"}),"\uff1a\u6307\u5b9a\u56fe\u4e3a\u6709\u5411\u6216\u65e0\u5411\uff0c\u5305\u542b\u4e09\u79cd\u6a21\u5f0f\uff0c\u5206\u522b\u4e3aDUAL_DIRECTION\u3001MAKE_SYMMETRIC\u4ee5\u53caINPUT_SYMMETRIC\u3002\u5176\u4e2dDUAL_DIRECTION\u4e3a\u9ed8\u8ba4\u7684\u56fe\u52a0\u8f7d\u65b9\u5f0f\u3002\nDUAL_DIRECTION : \u8f93\u5165\u6587\u4ef6\u4e3a\u975e\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u975e\u5bf9\u79f0\u56fe\u3002\nMAKE_SYMMETRIC : \u8f93\u5165\u6587\u4ef6\u4e3a\u975e\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u5bf9\u79f0\u56fe\u3002\nINPUT_SYMMETRIC : \u8f93\u5165\u6587\u4ef6\u4e3a\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u5bf9\u79f0\u56fe\u3002\n\u5bf9\u5e94\u7684\u8be6\u7ec6\u4ecb\u7ecd\u89c1lgraph\u6587\u4ef6\u5939\u4e0b\u7684olap_config.h\u6587\u4ef6\u7684",(0,t.jsx)(e.code,{children:"enum EdgeDirectionPolicy"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"void LoadVertexArrayTxt(V * array, std::string path, std::function &)> parse_line)"}),"\uff1a\u5c06\u6587\u4ef6\u4e2d\u7684\u70b9-\u6570\u636e\u5bf9\u6309\u7167\u70b9id\u7684\u987a\u5e8f\u52a0\u8f7d\u5230\u6570\u7ec4\u4e2d\u3002\u5404\u53c2\u6570\u8868\u793a\u610f\u4e49\u5206\u522b\u4e3a\uff1a"]}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array"}),"\uff1a\u5f85\u8bfb\u5165\u6570\u636e\u7684\u6570\u7ec4"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"path"}),"\uff1a\u8bfb\u53d6\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u6587\u4ef6\u4e2d\u6bcf\u884c\u8868\u793a\u4e00\u5bf9\u70b9-\u6570\u636e\u5bf9"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"parse_line"}),"\uff1a\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u544a\u8bc9\u7cfb\u7edf\u5982\u4f55\u5c06\u4e00\u884c\u6587\u672c\u6570\u636e\u89e3\u6790\u4e3a\u4e00\u4e2a\u70b9-\u6570\u636e\u5bf9\u3002"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.h3,{id:"32-\u56fe\u5199\u5165",children:"3.2 \u56fe\u5199\u5165"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"void Write(ConfigBase & config, ParallelVector& array, size_t array_size, std::string name, std::function filter_output = filter_output_default)"}),"\uff1a\u628aarray\u4e2d\u6570\u636e\u5199\u56de\u6587\u4ef6\u4e2d\uff0c\u5404\u53c2\u6570\u8868\u793a\u610f\u4e49\u5206\u522b\u662f\uff1a\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"config"}),"\uff1a\u9700\u8981\u52a0\u8f7d\u7684\u914d\u7f6e\u53c2\u6570\u3002\u8be5\u53c2\u6570\u5185\u4fdd\u5b58\u4e86\u8be5\u56fe\u7684\u4e00\u822c\u4fe1\u606f\uff08\u5982\u6570\u636e\u6765\u6e90\uff0c\u7b97\u6cd5\u540d\u79f0\uff0c\u6570\u636e\u8f93\u5165\u3001\u8f93\u51fa\u8def\u5f84\uff0c\u70b9\u4e2a\u6570\u7b49\uff09\u4ee5\u53ca\u6839\u636e\u4e0d\u540c\u6570\u636e\u6765\u6e90\u3001\u4e0d\u540c\u7b97\u6cd5\u6240\u914d\u7f6e\u7684\u4e0d\u540c\u4fe1\u606f\u53c2\u6570\u3002"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array"}),"\uff1a\u5f85\u5199\u5165\u6570\u636e\u7684\u6570\u7ec4"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array_size"}),"\uff1a\u5f85\u5199\u5165\u6570\u636e\u7684\u6570\u5b57\u957f\u5ea6"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"name"}),"\uff1a\u7b97\u6cd5\u540d\u79f0"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"filter_output"}),"\uff1a\u5199\u5165\u6570\u636e\u89c4\u5219\u51fd\u6570\uff0c\u5f85\u5199\u5165\u6570\u636e\u9700\u8981\u6ee1\u8db3\u8be5\u51fd\u6570\u7684\u8981\u6c42\u3002"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.h3,{id:"33-\u56fe\u89e3\u6790\u51fd\u6570",children:"3.3 \u56fe\u89e3\u6790\u51fd\u6570"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"std::tuple parse_line_unweighted(const char *p, const char *end, EdgeUnit &e)"}),"\uff1a\u5bf9\u56fe\u6570\u636e\u6587\u4ef6\u8fdb\u884c\u89e3\u6790\uff0c\u52a0\u8f7d\u56fe\u4e3a\u65e0\u6743\u56fe\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"std::tuple parse_line_weighted(const char* p, const char* end, EdgeUnit& e)"}),"\uff1a\u5bf9\u56fe\u6570\u636e\u6587\u4ef6\u8fdb\u884c\u89e3\u6790\uff0c\u52a0\u8f7d\u56fe\u4e3a\u6709\u6743\u56fe\uff0c\u6743\u91cd\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539",(0,t.jsx)(e.edgedata,{children:"\u6307\u5b9a\u3002"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"\u8be5\u51fd\u6570\u53ef\u901a\u8fc7MyConfig\u7c7b\u5b9a\u4e49\u65f6\u7684\u6784\u9020\u51fd\u6570parse_line\u8fdb\u884c\u6307\u5b9a\u3002"})]})}function p(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>o,x:()=>a});var t=i(6540);const r={},s=t.createContext(r);function o(n){const e=t.useContext(s);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:o(n.components),t.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7a14f772.2e62e012.js b/assets/js/7a14f772.2e62e012.js
deleted file mode 100644
index d8da7d80ff..0000000000
--- a/assets/js/7a14f772.2e62e012.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2674],{7959:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var t=i(4848),r=i(8453);const s={},o="OlapOnDisk API",a={id:"zh-CN/source/olap&procedure/olap/olap-on-disk-api",title:"OlapOnDisk API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDisk API\u7684\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/9.olap&procedure/2.olap/4.olap-on-disk-api.md",sourceDirName:"zh-CN/source/9.olap&procedure/2.olap",slug:"/zh-CN/source/olap&procedure/olap/olap-on-disk-api",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/olap-on-disk-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDB API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/olap-on-db-api"},next:{title:"Python Olap API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/python-api"}},c={},d=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u7b97\u6cd5\u4e3e\u4f8b",id:"2-\u7b97\u6cd5\u4e3e\u4f8b",level:2},{value:"2.1 \u5934\u6587\u4ef6",id:"21-\u5934\u6587\u4ef6",level:3},{value:"2.2 \u914d\u7f6e\u7c7bMyConfig",id:"22-\u914d\u7f6e\u7c7bmyconfig",level:3},{value:"2.3 \u4e3b\u51fd\u6570",id:"23-\u4e3b\u51fd\u6570",level:3},{value:"2.4 bfs\u7b97\u6cd5\u6d41\u7a0b",id:"24-bfs\u7b97\u6cd5\u6d41\u7a0b",level:3},{value:"3. \u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",id:"3-\u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",level:2},{value:"3.1 \u56fe\u52a0\u8f7d",id:"31-\u56fe\u52a0\u8f7d",level:3},{value:"3.2 \u56fe\u5199\u5165",id:"32-\u56fe\u5199\u5165",level:3},{value:"3.3 \u56fe\u89e3\u6790\u51fd\u6570",id:"33-\u56fe\u89e3\u6790\u51fd\u6570",level:3}];function l(n){const e={blockquote:"blockquote",code:"code",edgedata:"edgedata",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"olapondisk-api",children:"OlapOnDisk API"})}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8be6\u7ec6\u4ecb\u7ecd\u4e86OlapOnDisk API\u7684\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u7684Standalone\u6a21\u5f0f\u53ef\u7528\u4e8e\u52a0\u8f7d\u56fe\u6570\u636e\u6587\u4ef6\uff0c\u5176\u4e2d\u56fe\u6570\u636e\u6587\u4ef6\u6765\u6e90\u53ef\u5305\u542btext\u6587\u672c\u6587\u4ef6\u3001BINARY_FILE\u4e8c\u8fdb\u5236\u6587\u4ef6\u548cODPS\u6e90\u3002\u5728\u8be5\u6a21\u5f0f\u4e0b\uff0cTuGraph\u53ef\u5b9e\u73b0\u591a\u6570\u636e\u6765\u6e90\u5feb\u901f\u52a0\u8f7d\u6210\u56fe\uff0c\u7136\u540e\u5728\u8be5\u56fe\u4e0a\u8fd0\u884c\u5982BFS\u3001WCC\u3001SSSP\u7b49\u8fed\u4ee3\u5f0f\u7b97\u6cd5\uff0c\u5e76\u8f93\u51fa\u6700\u7ec8\u7ed3\u679c\u81f3\u7ec8\u7aef\u3002"}),"\n",(0,t.jsx)(e.p,{children:"\u5728TuGraph\u4e2d\uff0c\u5bfc\u51fa\u548c\u8ba1\u7b97\u8fc7\u7a0b\u5747\u53ef\u4ee5\u901a\u8fc7\u5728\u5185\u5b58\u4e2d\u5e76\u884c\u5904\u7406\u7684\u65b9\u5f0f\u8fdb\u884c\u52a0\u901f\uff0c\u4ece\u800c\u8fbe\u5230\u8fd1\u4e4e\u5b9e\u65f6\u7684\u5904\u7406\u5206\u6790\uff0c\u548c\u4f20\u7edf\u65b9\u6cd5\u76f8\u6bd4\uff0c\u5373\u907f\u514d\u4e86\u6570\u636e\u5bfc\u51fa\u843d\u76d8\u7684\u5f00\u9500\uff0c\u53c8\u80fd\u4f7f\u7528\u7d27\u51d1\u7684\u56fe\u6570\u636e\u7ed3\u6784\u83b7\u5f97\u8ba1\u7b97\u7684\u7406\u60f3\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u5185\u7f6e\u4e86\u5927\u91cf\u7684\u5e38\u89c1\u56fe\u5206\u6790\u7b97\u6cd5\u548c\u4e30\u5bcc\u7684\u8f85\u52a9\u63a5\u53e3\uff0c\u56e0\u6b64\u7528\u6237\u51e0\u4e4e\u4e0d\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u5177\u4f53\u7684\u56fe\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u53ea\u9700\u8981\u5728\u5b9e\u73b0\u81ea\u5df1\u7684\u5b58\u50a8\u8fc7\u7a0b\u7684\u65f6\u5019\u5c06\u76f8\u5e94\u7b97\u6cd5\u5e93\u7684\u5934\u6587\u4ef6(.h)\u5305\u542b\u5230\u81ea\u5df1\u7684\u7a0b\u5e8f\u4e2d\uff0c\u5e76\u5728\u7f16\u8bd1\u9636\u6bb5\u94fe\u63a5\u81ea\u5df1\u7684\u52a8\u6001\u5e93\u6587\u4ef6\u5373\u53ef\u3002"}),"\n",(0,t.jsx)(e.p,{children:"\u8be5\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86Standalone\u7684\u5e38\u7528\u63a5\u53e3\uff0c\u4f7f\u7528\u5230\u7684\u8f85\u52a9\u51fd\u6570\u4e3b\u8981\u5305\u542b\u5728OlapOnDB\u7c7b\u3002\u540c\u65f6\u4e3a\u5e2e\u52a9\u7528\u6237\u7406\u89e3\u65b9\u4fbf\uff0c\u5bf9BFS\u7b97\u6cd5\u8fdb\u884c\u4e3e\u4f8b\u8bf4\u660e\u3002"}),"\n",(0,t.jsx)(e.h2,{id:"2-\u7b97\u6cd5\u4e3e\u4f8b",children:"2. \u7b97\u6cd5\u4e3e\u4f8b"}),"\n",(0,t.jsxs)(e.p,{children:["\u5728\u8fd9\u91cc\u5bf9BFS\u7b97\u6cd5\u5206\u5757\u505a\u89e3\u91ca\uff0c\u5927\u4f53\u4e0a\u5206\u4e3a\u4e3b\u51fd\u6570",(0,t.jsx)(e.code,{children:"main"}),"\u3001BFS\u7b97\u6cd5\u6d41\u7a0b",(0,t.jsx)(e.code,{children:"BFSCore"}),"\u51fd\u6570\u548c\u914d\u7f6e\u7c7bMyConfig\u3002"]}),"\n",(0,t.jsx)(e.h3,{id:"21-\u5934\u6587\u4ef6",children:"2.1 \u5934\u6587\u4ef6"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'#include "olap/olap_on_disk.h" \n#include "tools/json.hpp" //\u4f7f\u7528 TuGraph \u65f6\u9700\u8981\u5305\u542b\u7684\u5934\u6587\u4ef6\n#include "./algo.h" //\u5305\u542b\u5404\u79cd\u7b97\u6cd5\u903b\u8f91\u51fd\u6570\u7684\u5934\u6587\u4ef6\n'})}),"\n",(0,t.jsx)(e.p,{children:"\u5728\u4f7f\u7528 TuGraph \u5b9e\u73b0\u56fe\u6570\u636e\u6587\u4ef6\u8ba1\u7b97\u5e94\u7528\u65f6\uff0c\u4e00\u822c\u9996\u5148\u5efa\u7acbStandaloneGraph\u7c7b\u5bf9\u8c61graph\uff0c\u5c06\u56fe\u6587\u4ef6\u6570\u636e\u52a0\u8f7d\u8fdbgraph\u4e2d\uff0c\u4e4b\u540e\u901a\u8fc7\u8c03\u7528\u56fe\u903b\u8f91\u51fd\u6570\u5b9e\u73b0\u56fe\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u6700\u540e\u5bf9\u56fe\u8ba1\u7b97\u7684\u7ed3\u679c\u8fdb\u884c\u6253\u5370\u8f93\u51fa\u3002"}),"\n",(0,t.jsx)(e.h3,{id:"22-\u914d\u7f6e\u7c7bmyconfig",children:"2.2 \u914d\u7f6e\u7c7bMyConfig"}),"\n",(0,t.jsxs)(e.p,{children:["MyConfig\u914d\u7f6e\u7c7b\u51fd\u6570\u7528\u4e8e\u63d0\u4f9b\u7b97\u6cd5\u903b\u8f91\u8ba1\u7b97\u65f6\u6240\u9700\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u7ee7\u627f\u4e8eConfigBase",(0,t.jsx)(e.edgedata,{children:",\u5176\u4e2dEdgeDate\u53ef\u6839\u636e\u52a0\u8f7d\u56fe\u7c7b\u578b\u4e0d\u540c\u9009\u62e9Empty\uff08\u65e0\u6743\u56fe\uff09\u3001int\uff08\u5e26\u6743\u56fe\u6743\u91cd\u4e3a\u6574\u6570\uff09\u6216\u8005double\uff08\u5e26\u6743\u56fe\u6743\u91cd\u4e3adouble\uff09\u7c7b\u578b\u3002"})]}),"\n",(0,t.jsx)(e.p,{children:"MyConfig\u914d\u7f6e\u7c7b\u4e00\u822c\u6839\u636e\u7b97\u6cd5\u4e0d\u540c\uff0c\u9700\u8981\u989d\u5916\u914d\u7f6e\u4fe1\u606f\u5982\u4e0b\uff1a"}),"\n",(0,t.jsx)(e.p,{children:"1.\u7b97\u6cd5\u6240\u9700\u53c2\u6570\n2.\u7b97\u6cd5\u540d\u79f0\n3.\u914d\u7f6e\u7c7b\u5185Print\u51fd\u6570\n\u5176\u4f59\u516c\u7528\u6210\u5458\u7ee7\u627f\u4e0eConfigBase\uff0c\u53ef\u53c2\u8003src/olap/olap_config.h\u67e5\u9605\u3002"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'class MyConfig : public ConfigBase {\n public:\n\n // \u7b97\u6cd5\u6240\u9700\u53c2\u6570\u521d\u59cb\u5316\n size_t root = 0;\n std::string name = std::string("bfs");\n void AddParameter(fma_common::Configuration & config) {\n ConfigBase::AddParameter(config);\n config.Add(root, "root", true)\n .Comment("the root of bfs");\n }\n void Print() {\n ConfigBase::Print();\n std::cout << " name: " << name << std::endl;\n if (root != size_t(-1)) {\n std::cout << " root: " << root << std::endl;\n } else {\n std::cout << " root: UNSET" << std::endl;\n }\n }\n // \u914d\u7f6e\u6587\u4ef6\u63a5\u53d7\u547d\u4ee4\u884c\u53c2\u6570\uff0c\u8be5\u7528\u4f8b\u4f1a\u987a\u6b21\u8bfb\u53d6\u547d\u4ee4\u884c\u8c03\u7528\u7b97\u6cd5\u65f6\u7684\u53c2\u6570\uff0c\u4f18\u5148\u4f7f\u7528\u7528\u6237\u6307\u5b9a\u6570\u503c\uff0c\u82e5\u7528\u6237\u5e76\u672a\u6307\u5b9a\u5219\u9009\u62e9\u9ed8\u8ba4\u53c2\u6570\u3002\n MyConfig(int &argc, char** &argv): ConfigBase(argc, argv) {\n fma_common::Configuration config;\n AddParameter(config);\n config.ExitAfterHelp(true);\n config.ParseAndFinalize(argc, argv);\n Print();\n }\n};\n'})}),"\n",(0,t.jsx)(e.h3,{id:"23-\u4e3b\u51fd\u6570",children:"2.3 \u4e3b\u51fd\u6570"}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'int main(int argc, char** argv) {\n double start_time;\n // \u7edf\u8ba1\u5185\u5b58\u6d88\u8017\u7c7bMemUsage\u5b9e\u4f8b\u5316\n MemUsage memUsage;\n memUsage.startMemRecord();\n\n // prepare\n start_time = get_time();\n // \u914d\u7f6e\u7c7bMyConfig\u5b9e\u4f8b\u5316\n MyConfig config(argc, argv);\n size_t root_vid = config.root;\n // OlapOnDisk\u7c7b\u5b9e\u4f8b\u5316\n OlapOnDisk graph;\n graph.Load(config, DUAL_DIRECTION);\n memUsage.print();\n memUsage.reset();\n // \u7edf\u8ba1\u56fe\u52a0\u8f7d\u6d88\u8017\u65f6\u95f4\n auto prepare_cost = get_time() - start_time;\n printf("prepare_cost = %.2lf(s)\\n", prepare_cost);\n\n // core\n start_time = get_time();\n // \u521b\u5efa\u6570\u7ec4\u7528\u4e8e\u7edf\u8ba1\u67d0\u8282\u70b9\u662f\u5426\u904d\u5386\u8fc7\n auto parent = graph.AllocVertexArray();\n // \u5bbd\u5ea6\u4f18\u5148\u641c\u7d22\u7b97\u6cd5\uff0c\u8fd4\u56de\u56fe\u5185root_vid\u6839\u7ed3\u70b9\u8fde\u63a5\u7684\u8282\u70b9\u4e2a\u6570\n size_t count = BFSCore(graph, root_vid, parent);\n memUsage.print();\n memUsage.reset();\n auto core_cost = get_time() - start_time;\n printf("core_cost = %.2lf(s)\\n", core_cost);\n\n // output\n start_time = get_time();\n // \u6253\u5370\u76f8\u5173\u4fe1\u606f\u81f3\u7ec8\u7aef\n printf("found_vertices = %ld\\n", count);\n auto output_cost = get_time() - start_time;\n printf("output_cost = %.2lf(s)\\n", output_cost);\n\n printf("total_cost = %.2lf(s)\\n", prepare_cost + core_cost + output_cost);\n printf("DONE.");\n\n return 0;\n}\n'})}),"\n",(0,t.jsx)(e.h3,{id:"24-bfs\u7b97\u6cd5\u6d41\u7a0b",children:"2.4 bfs\u7b97\u6cd5\u6d41\u7a0b"}),"\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"bfs"}),"\u4e3b\u6d41\u7a0b\u6709\u4e24\u4e2a\u8f93\u5165\u53c2\u6570\uff0c\u5feb\u7167\u7c7b\uff08\u5b50\u56fe\uff09\u8fd8\u6709\u8fed\u4ee3\u6b21\u6570\uff0c\u6574\u4f53\u6d41\u7a0b\u53ef\u4ee5\u5206\u4e3a\u4ee5\u4e0b\u51e0\u6b65\uff1a"]}),"\n",(0,t.jsxs)(e.ol,{children:["\n",(0,t.jsx)(e.li,{children:"\u76f8\u5173\u5b9a\u4e49\u3001\u6570\u636e\u7ed3\u6784\u7684\u521d\u59cb\u5316"}),"\n",(0,t.jsx)(e.li,{children:"\u4f7f\u7528\u6279\u5904\u7406\u51fd\u6570\u5bf9\u6bcf\u4e2a\u8282\u70b9\u8fdb\u884c\u5faa\u73af\u8ba1\u7b97\uff0c\u6bcf\u4e00\u8f6e\u627e\u5230\u4e0e\u5f53\u524d\u8282\u70b9\u76f8\u90bb\u7684\u5168\u90e8\u8282\u70b9\uff0c\u5e76\u5728\u8be5\u8f6e\u6b21\u7ec8\u6b62\u65f6\u8fdb\u884c\u4ea4\u6362\u3002"}),"\n",(0,t.jsx)(e.li,{children:"\u76f4\u5230\u627e\u5230\u5168\u90e8\u8282\u70b9\uff0c\u8fd4\u56de\u8282\u70b9\u4e2a\u6570discovered_vertices\u3002"}),"\n"]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-C++",children:'size_t BFSCore(Graph& graph, size_t root_vid, ParallelVector& parent){\n\n size_t root = root_vid;\n auto active_in = graph.AllocVertexSubset(); //\u5206\u914d\u6570\u7ec4\uff0cactive_in\u7528\u4e8e\u5b58\u653e\u4e0a\u4e00\u5faa\u73af\u9636\u6bb5\u5df2\u627e\u5230\u7684\u8282\u70b9\n active_in.Add(root); //\u628a\u8ddf\u8282\u70b9\u52a0\u5165\u6570\u7ec4\u4e2d\n auto active_out = graph.AllocVertexSubset(); //\u5206\u914d\u6570\u7ec4active_out\u7528\u4e8e\u5b58\u653e\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\n parent.Fill((size_t)-1); //\u5c06parent\u6570\u7ec4\u4e2d\u7684\u8282\u70b9\u8d4b\u503c\u4e3a-1\uff0c-1\u8868\u793a\u672a\u88ab\u627e\u5230\n parent[root] = root;\n size_t num_activations = 1; //\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\u4e2a\u6570\n size_t discovered_vertices = 0; //\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u8282\u70b9\u7684\u603b\u4e2a\u6570\n\n for (int ii = 0; num_activations != 0; ii++) { //num_activations\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\u4e2a\u6570\n printf("activates(%d) <= %lu\\n", ii, num_activations);\n discovered_vertices += num_activations; //discovered_vertices\u8868\u793a\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u8282\u70b9\u7684\u603b\u4e2a\u6570\n active_out.Clear();\n num_activations = graph.ProcessVertexActive(\n [&](size_t vi) {\n size_t num_activations = 0;\n for (auto& edge : graph.OutEdges(vi)) { //\u6bcf\u4e00\u6b21\u5faa\u73af\u4ece\u6839\u8282\u70b9\u51fa\u53d1\uff0c\u67e5\u627e\u90bb\u8fd1\u7684\u76f8\u90bb\u8282\u70b9\uff0c\u5bf9\u5176parent\u503c\u6539\u53d8\uff0c\u5e76num_activations+1\u64cd\u4f5c\n size_t dst = edge.neighbour;\n if (parent[dst] == (size_t)-1) {\n auto lock = graph.GuardVertexLock(dst);\n if (parent[dst] == (size_t)-1) {\n parent[dst] = vi;\n num_activations += 1;\n active_out.Add(dst); //\u5b58\u653e\u5f53\u524d\u5faa\u73af\u9636\u6bb5\u627e\u5230\u7684\u8282\u70b9\n }\n }\n }\n return num_activations;\n },\n active_in);\n active_in.Swap(active_out);\n }\n // \u8fd4\u56de\u5168\u90e8\u8282\u70b9\u6570\n return discovered_vertices;\n}\n'})}),"\n",(0,t.jsx)(e.h2,{id:"3-\u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0",children:"3. \u5176\u4ed6\u5e38\u7528\u51fd\u6570\u529f\u80fd\u63cf\u8ff0"}),"\n",(0,t.jsx)(e.h3,{id:"31-\u56fe\u52a0\u8f7d",children:"3.1 \u56fe\u52a0\u8f7d"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph-Standalone\u5bf9\u4e8e\u56fe\u6570\u636e\u6587\u4ef6\u7684\u52a0\u8f7d\u6765\u6e90\u4e3b\u8981\u5206\u4e3a\u4e09\u5927\u7c7b\uff1a\u6587\u672c\u6587\u4ef6\u3001\u4e8c\u8fdb\u5236\u6587\u4ef6\u548cODPS\u3002\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e3a\u5c06\u8fb9\u6570\u636e\u7684\u4e8c\u8fdb\u5236\u8868\u793a\u6309\u987a\u5e8f\u6392\u5217\u7684\u6587\u4ef6\uff0c\u80fd\u591f\u8282\u7701\u5927\u91cf\u5b58\u50a8\u7a7a\u95f4\u3002\u5176\u52a0\u8f7d\u51fd\u6570\u5206\u4e3a\u4e09\u79cd\uff0c\u5206\u522b\u662f\uff1a"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"void Load(ConfigBase config,EdgeDirectionPolicy edge_direction_policy = DUAL_DIRECTION)"}),"\uff1a\u56fe\u6570\u636e\u6587\u4ef6\u7684\u52a0\u8f7d\u65b9\u5f0f\uff0c\u5305\u542b\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u542b\u4e49\u5206\u522b\u8868\u793a\uff1a"]}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"config"}),"\uff1a\u9700\u8981\u52a0\u8f7d\u7684\u914d\u7f6e\u53c2\u6570\u3002\u8be5\u53c2\u6570\u5185\u4fdd\u5b58\u4e86\u8be5\u56fe\u7684\u4e00\u822c\u4fe1\u606f\uff08\u5982\u6570\u636e\u6765\u6e90\uff0c\u7b97\u6cd5\u540d\u79f0\uff0c\u6570\u636e\u8f93\u5165\u3001\u8f93\u51fa\u8def\u5f84\uff0c\u70b9\u4e2a\u6570\u7b49\uff09\u4ee5\u53ca\u6839\u636e\u4e0d\u540c\u6570\u636e\u6765\u6e90\u3001\u4e0d\u540c\u7b97\u6cd5\u6240\u914d\u7f6e\u7684\u4e0d\u540c\u4fe1\u606f\u53c2\u6570\u3002"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"edge_direction_policy"}),"\uff1a\u6307\u5b9a\u56fe\u4e3a\u6709\u5411\u6216\u65e0\u5411\uff0c\u5305\u542b\u4e09\u79cd\u6a21\u5f0f\uff0c\u5206\u522b\u4e3aDUAL_DIRECTION\u3001MAKE_SYMMETRIC\u4ee5\u53caINPUT_SYMMETRIC\u3002\u5176\u4e2dDUAL_DIRECTION\u4e3a\u9ed8\u8ba4\u7684\u56fe\u52a0\u8f7d\u65b9\u5f0f\u3002\nDUAL_DIRECTION : \u8f93\u5165\u6587\u4ef6\u4e3a\u975e\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u975e\u5bf9\u79f0\u56fe\u3002\nMAKE_SYMMETRIC : \u8f93\u5165\u6587\u4ef6\u4e3a\u975e\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u5bf9\u79f0\u56fe\u3002\nINPUT_SYMMETRIC : \u8f93\u5165\u6587\u4ef6\u4e3a\u5bf9\u79f0\u56fe\uff0c\u52a0\u8f7d\u56fe\u4e3a\u5bf9\u79f0\u56fe\u3002\n\u5bf9\u5e94\u7684\u8be6\u7ec6\u4ecb\u7ecd\u89c1lgraph\u6587\u4ef6\u5939\u4e0b\u7684olap_config.h\u6587\u4ef6\u7684",(0,t.jsx)(e.code,{children:"enum EdgeDirectionPolicy"}),"\u3002"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"void LoadVertexArrayTxt(V * array, std::string path, std::function &)> parse_line)"}),"\uff1a\u5c06\u6587\u4ef6\u4e2d\u7684\u70b9-\u6570\u636e\u5bf9\u6309\u7167\u70b9id\u7684\u987a\u5e8f\u52a0\u8f7d\u5230\u6570\u7ec4\u4e2d\u3002\u5404\u53c2\u6570\u8868\u793a\u610f\u4e49\u5206\u522b\u4e3a\uff1a"]}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array"}),"\uff1a\u5f85\u8bfb\u5165\u6570\u636e\u7684\u6570\u7ec4"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"path"}),"\uff1a\u8bfb\u53d6\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u6587\u4ef6\u4e2d\u6bcf\u884c\u8868\u793a\u4e00\u5bf9\u70b9-\u6570\u636e\u5bf9"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"parse_line"}),"\uff1a\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u544a\u8bc9\u7cfb\u7edf\u5982\u4f55\u5c06\u4e00\u884c\u6587\u672c\u6570\u636e\u89e3\u6790\u4e3a\u4e00\u4e2a\u70b9-\u6570\u636e\u5bf9\u3002"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.h3,{id:"32-\u56fe\u5199\u5165",children:"3.2 \u56fe\u5199\u5165"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"void Write(ConfigBase & config, ParallelVector& array, size_t array_size, std::string name, std::function filter_output = filter_output_default)"}),"\uff1a\u628aarray\u4e2d\u6570\u636e\u5199\u56de\u6587\u4ef6\u4e2d\uff0c\u5404\u53c2\u6570\u8868\u793a\u610f\u4e49\u5206\u522b\u662f\uff1a\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"config"}),"\uff1a\u9700\u8981\u52a0\u8f7d\u7684\u914d\u7f6e\u53c2\u6570\u3002\u8be5\u53c2\u6570\u5185\u4fdd\u5b58\u4e86\u8be5\u56fe\u7684\u4e00\u822c\u4fe1\u606f\uff08\u5982\u6570\u636e\u6765\u6e90\uff0c\u7b97\u6cd5\u540d\u79f0\uff0c\u6570\u636e\u8f93\u5165\u3001\u8f93\u51fa\u8def\u5f84\uff0c\u70b9\u4e2a\u6570\u7b49\uff09\u4ee5\u53ca\u6839\u636e\u4e0d\u540c\u6570\u636e\u6765\u6e90\u3001\u4e0d\u540c\u7b97\u6cd5\u6240\u914d\u7f6e\u7684\u4e0d\u540c\u4fe1\u606f\u53c2\u6570\u3002"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array"}),"\uff1a\u5f85\u5199\u5165\u6570\u636e\u7684\u6570\u7ec4"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"array_size"}),"\uff1a\u5f85\u5199\u5165\u6570\u636e\u7684\u6570\u5b57\u957f\u5ea6"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"name"}),"\uff1a\u7b97\u6cd5\u540d\u79f0"]}),"\n",(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.code,{children:"filter_output"}),"\uff1a\u5199\u5165\u6570\u636e\u89c4\u5219\u51fd\u6570\uff0c\u5f85\u5199\u5165\u6570\u636e\u9700\u8981\u6ee1\u8db3\u8be5\u51fd\u6570\u7684\u8981\u6c42\u3002"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.h3,{id:"33-\u56fe\u89e3\u6790\u51fd\u6570",children:"3.3 \u56fe\u89e3\u6790\u51fd\u6570"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"std::tuple parse_line_unweighted(const char *p, const char *end, EdgeUnit &e)"}),"\uff1a\u5bf9\u56fe\u6570\u636e\u6587\u4ef6\u8fdb\u884c\u89e3\u6790\uff0c\u52a0\u8f7d\u56fe\u4e3a\u65e0\u6743\u56fe\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(e.li,{children:["\n",(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.code,{children:"std::tuple parse_line_weighted(const char* p, const char* end, EdgeUnit& e)"}),"\uff1a\u5bf9\u56fe\u6570\u636e\u6587\u4ef6\u8fdb\u884c\u89e3\u6790\uff0c\u52a0\u8f7d\u56fe\u4e3a\u6709\u6743\u56fe\uff0c\u6743\u91cd\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539",(0,t.jsx)(e.edgedata,{children:"\u6307\u5b9a\u3002"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"\u8be5\u51fd\u6570\u53ef\u901a\u8fc7MyConfig\u7c7b\u5b9a\u4e49\u65f6\u7684\u6784\u9020\u51fd\u6570parse_line\u8fdb\u884c\u6307\u5b9a\u3002"})]})}function p(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>o,x:()=>a});var t=i(6540);const r={},s=t.createContext(r);function o(n){const e=t.useContext(s);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:o(n.components),t.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7b1606a6.524bd6e4.js b/assets/js/7b1606a6.524bd6e4.js
deleted file mode 100644
index 4429971ca6..0000000000
--- a/assets/js/7b1606a6.524bd6e4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7506],{8677:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>u,contentTitle:()=>t,default:()=>o,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var l=i(4848),r=i(8453);const s={},t="\u793e\u533a\u89d2\u8272",c={id:"zh-CN/source/contributor-manual/community-roles",title:"\u793e\u533a\u89d2\u8272",description:"1. \u524d\u8a00",source:"@site/../docs/zh-CN/source/12.contributor-manual/2.community-roles.md",sourceDirName:"zh-CN/source/12.contributor-manual",slug:"/zh-CN/source/contributor-manual/community-roles",permalink:"/tugraph-db/zh-CN/source/contributor-manual/community-roles",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5982\u4f55\u8d21\u732e",permalink:"/tugraph-db/zh-CN/source/contributor-manual/contributing"},next:{title:"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",permalink:"/tugraph-db/zh-CN/source/contributor-manual/individual-cla"}},u={},d=[{value:"1. \u524d\u8a00",id:"1-\u524d\u8a00",level:2},{value:"2. \u2ec6\u8272\u6458\u8981",id:"2-\u8272\u6458\u8981",level:2},{value:"3. Contributor",id:"3-contributor",level:2},{value:"3.1. \u8981\u6c42",id:"31-\u8981\u6c42",level:3},{value:"3.2. \u804c\u8d23",id:"32-\u804c\u8d23",level:3},{value:"3.3. \u6743\u9650",id:"33-\u6743\u9650",level:3},{value:"4. Maintainer",id:"4-maintainer",level:2},{value:"4.1. \u8981\u6c42",id:"41-\u8981\u6c42",level:3},{value:"4.2. \u804c\u8d23",id:"42-\u804c\u8d23",level:3},{value:"4.3. \u6743\u9650",id:"43-\u6743\u9650",level:3},{value:"5. PMC",id:"5-pmc",level:2},{value:"5.1. \u8981\u6c42",id:"51-\u8981\u6c42",level:3},{value:"5.2. \u804c\u8d23",id:"52-\u804c\u8d23",level:3},{value:"5.3. \u6743\u9650",id:"53-\u6743\u9650",level:3}];function h(n){const e={h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.header,{children:(0,l.jsx)(e.h1,{id:"\u793e\u533a\u89d2\u8272",children:"\u793e\u533a\u89d2\u8272"})}),"\n",(0,l.jsx)(e.h2,{id:"1-\u524d\u8a00",children:"1. \u524d\u8a00"}),"\n",(0,l.jsx)(e.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u793e\u533a\u4e2d\u6210\u5458\u8eab\u4efd\u7684\u2ec6\u8272\uff0c\u5bf9\u6bcf\u79cd\u2ec6\u8272\u7684\u8981\u6c42\u53ca\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"2-\u8272\u6458\u8981",children:"2. \u2ec6\u8272\u6458\u8981"}),"\n",(0,l.jsx)(e.p,{children:"\u8fd9\u662f TuGraph \u793e\u533a\u7684\u2ec6\u8272\u5212\u5206\uff0c\u63cf\u8ff0\u4e86\u6bcf\u79cd\u2ec6\u8272\u7684\u804c\u8d23\uff0c\u6210\u4e3a\u67d0\u79cd\u2ec6\u8272\u5e76\u4fdd\u6301\u8be5\u2ec6\u8272\u7684\u8981\u6c42\uff0c\u4ee5\u53ca\u76f8\u5e94\u2ec6\u8272\u7684\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u793e\u533a\u53c2\u7167 Apache \u89c4\u8303\u5212\u5206\u4e3a\u4ee5\u4e0b\u4e09\u79cd\u2ec6\u8272\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Contributor"}),"\n",(0,l.jsx)(e.li,{children:"Maintainer"}),"\n",(0,l.jsx)(e.li,{children:"PMC"}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u4ee5\u4e0b\u63cf\u8ff0\u4e86\u6bcf\u79cd\u2ec6\u8272\u7684\u8981\u6c42\u3001\u804c\u8d23\u548c\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"3-contributor",children:"3. Contributor"}),"\n",(0,l.jsx)(e.h3,{id:"31-\u8981\u6c42",children:"3.1. \u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:"\u5728 TuGraph \u7684\u4efb\u4f55\u4e00\u4e2a\u6b63\u5f0f\u9879\u76ee\u4e2d\u6210\u529f\u63d0\u4ea4\u4e00\u4e2a PR \u5e76\u5408\u5e76\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"32-\u804c\u8d23",children:"3.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u54cd\u5e94\u6307\u6d3e\u7ed9\u60a8\u7684 Issue \u6216 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u4e00\u8d77\u5e2e\u5fd9\u56de\u590d Issue \u6216 PR\uff0c\u628a Issue \u5206\u914d\u7ed9\u5bf9\u5e94\u6a21\u5757\u7684\u8d1f\u8d23\u4eba"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"33-\u6743\u9650",children:"3.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u52a0\u5165 TuGraph GitHub \u7ec4\u7ec7\uff0c\u6210\u4e3a TuGraph \u5f00\u6e90\u793e\u533a\u7684\u4e00\u5458\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"4-maintainer",children:"4. Maintainer"}),"\n",(0,l.jsx)(e.h3,{id:"41-\u8981\u6c42",children:"4.1. \u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:"\u65b0\u7684 Committer \u7531\u5df2\u6709\u7684 PMC \u63a8\u8350\uff0c\u5e76\u901a\u8fc7 2/3 \u4ee5\u4e0a\u6295\u7968\u901a\u8fc7\uff0cCommitter \u81f3\u5c11\u6ee1\u8db3\u4ee5\u4e0b\u4e00\u4e2a\u6761\u4ef6\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6210\u4e3a\u793e\u533a\u6210\u5458\u65f6\u95f4\u8d85\u8fc7\u4e09\u4e2a\u6708"}),"\n",(0,l.jsx)(e.li,{children:"\u8d85\u8fc7 10 \u4e2a PMC approve \u7684 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u5b8c\u6210\u91cd\u5927\u529f\u80fd"}),"\n",(0,l.jsx)(e.li,{children:"\u4fee\u590d\u4e25\u91cd Bug"}),"\n",(0,l.jsx)(e.li,{children:"\u957f\u671f\u5173\u6ce8\u9879\u76ee\u53d1\u5c55\u5e76\u53c2\u4e0e\u793e\u533a\u8ba8\u8bba"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"42-\u804c\u8d23",children:"4.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u793e\u533a\u54a8\u8be2\u652f\u6301"}),"\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u54cd\u5e94\u6307\u6d3e\u7ed9\u60a8\u7684 Issue \u6216 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u5bf9\u4e8e\u793e\u533a\u91cd\u5927\u51b3\u5b9a\u7684\u6295\u7968\u6743"}),"\n",(0,l.jsx)(e.li,{children:"Review \u793e\u533a\u7684 PR"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"43-\u6743\u9650",children:"4.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Pull Request review \u6743\u9650"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"5-pmc",children:"5. PMC"}),"\n",(0,l.jsx)(e.h3,{id:"51-\u8981\u6c42",children:"5.1. \u8981\u6c42"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6682\u4e0d\u5f00\u653e\uff0c\u5982\u6709\u5f3a\u70c8\u613f\u671b\u8bf7\u8054\u7cfbPMC"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"52-\u804c\u8d23",children:"5.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u53c2\u4e0e\u793e\u533a\u8ba8\u8bba\uff0c\u5bf9\u793e\u533a\u91cd\u5927\u51b3\u7b56\u7ed9\u4e88\u6307\u5bfc"}),"\n",(0,l.jsx)(e.li,{children:"\u8d1f\u8d23\u4fdd\u8bc1\u5f00\u6e90\u9879\u76ee\u7684\u793e\u533a\u6d3b\u52a8\u90fd\u80fd\u8fd0\u8f6c\u826f\u597d"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"53-\u6743\u9650",children:"5.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Pull Request review \u6743\u9650"}),"\n",(0,l.jsx)(e.li,{children:"Pull Request approve \u6743\u9650"}),"\n",(0,l.jsx)(e.li,{children:"\u793e\u533a\u89d2\u8272\u6210\u5458\u7ba1\u7406"}),"\n"]})]})}function o(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(h,{...n})}):h(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>t,x:()=>c});var l=i(6540);const r={},s=l.createContext(r);function t(n){const e=l.useContext(s);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:t(n.components),l.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7b1606a6.88237d1f.js b/assets/js/7b1606a6.88237d1f.js
new file mode 100644
index 0000000000..923c873fc9
--- /dev/null
+++ b/assets/js/7b1606a6.88237d1f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7506],{8677:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>s,metadata:()=>d,toc:()=>u});var l=i(4848),r=i(8453);const s={},t="\u793e\u533a\u89d2\u8272",d={id:"contributor-manual/community-roles",title:"\u793e\u533a\u89d2\u8272",description:"1. \u524d\u8a00",source:"@site/../docs/zh-CN/source/12.contributor-manual/2.community-roles.md",sourceDirName:"12.contributor-manual",slug:"/contributor-manual/community-roles",permalink:"/tugraph-db/zh/contributor-manual/community-roles",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5982\u4f55\u8d21\u732e",permalink:"/tugraph-db/zh/contributor-manual/contributing"},next:{title:"\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae",permalink:"/tugraph-db/zh/contributor-manual/individual-cla"}},c={},u=[{value:"1. \u524d\u8a00",id:"1-\u524d\u8a00",level:2},{value:"2. \u2ec6\u8272\u6458\u8981",id:"2-\u8272\u6458\u8981",level:2},{value:"3. Contributor",id:"3-contributor",level:2},{value:"3.1. \u8981\u6c42",id:"31-\u8981\u6c42",level:3},{value:"3.2. \u804c\u8d23",id:"32-\u804c\u8d23",level:3},{value:"3.3. \u6743\u9650",id:"33-\u6743\u9650",level:3},{value:"4. Maintainer",id:"4-maintainer",level:2},{value:"4.1. \u8981\u6c42",id:"41-\u8981\u6c42",level:3},{value:"4.2. \u804c\u8d23",id:"42-\u804c\u8d23",level:3},{value:"4.3. \u6743\u9650",id:"43-\u6743\u9650",level:3},{value:"5. PMC",id:"5-pmc",level:2},{value:"5.1. \u8981\u6c42",id:"51-\u8981\u6c42",level:3},{value:"5.2. \u804c\u8d23",id:"52-\u804c\u8d23",level:3},{value:"5.3. \u6743\u9650",id:"53-\u6743\u9650",level:3}];function h(n){const e={h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.header,{children:(0,l.jsx)(e.h1,{id:"\u793e\u533a\u89d2\u8272",children:"\u793e\u533a\u89d2\u8272"})}),"\n",(0,l.jsx)(e.h2,{id:"1-\u524d\u8a00",children:"1. \u524d\u8a00"}),"\n",(0,l.jsx)(e.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u793e\u533a\u4e2d\u6210\u5458\u8eab\u4efd\u7684\u2ec6\u8272\uff0c\u5bf9\u6bcf\u79cd\u2ec6\u8272\u7684\u8981\u6c42\u53ca\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"2-\u8272\u6458\u8981",children:"2. \u2ec6\u8272\u6458\u8981"}),"\n",(0,l.jsx)(e.p,{children:"\u8fd9\u662f TuGraph \u793e\u533a\u7684\u2ec6\u8272\u5212\u5206\uff0c\u63cf\u8ff0\u4e86\u6bcf\u79cd\u2ec6\u8272\u7684\u804c\u8d23\uff0c\u6210\u4e3a\u67d0\u79cd\u2ec6\u8272\u5e76\u4fdd\u6301\u8be5\u2ec6\u8272\u7684\u8981\u6c42\uff0c\u4ee5\u53ca\u76f8\u5e94\u2ec6\u8272\u7684\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u793e\u533a\u53c2\u7167 Apache \u89c4\u8303\u5212\u5206\u4e3a\u4ee5\u4e0b\u4e09\u79cd\u2ec6\u8272\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Contributor"}),"\n",(0,l.jsx)(e.li,{children:"Maintainer"}),"\n",(0,l.jsx)(e.li,{children:"PMC"}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u4ee5\u4e0b\u63cf\u8ff0\u4e86\u6bcf\u79cd\u2ec6\u8272\u7684\u8981\u6c42\u3001\u804c\u8d23\u548c\u6743\u9650\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"3-contributor",children:"3. Contributor"}),"\n",(0,l.jsx)(e.h3,{id:"31-\u8981\u6c42",children:"3.1. \u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:"\u5728 TuGraph \u7684\u4efb\u4f55\u4e00\u4e2a\u6b63\u5f0f\u9879\u76ee\u4e2d\u6210\u529f\u63d0\u4ea4\u4e00\u4e2a PR \u5e76\u5408\u5e76\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"32-\u804c\u8d23",children:"3.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u54cd\u5e94\u6307\u6d3e\u7ed9\u60a8\u7684 Issue \u6216 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u4e00\u8d77\u5e2e\u5fd9\u56de\u590d Issue \u6216 PR\uff0c\u628a Issue \u5206\u914d\u7ed9\u5bf9\u5e94\u6a21\u5757\u7684\u8d1f\u8d23\u4eba"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"33-\u6743\u9650",children:"3.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u52a0\u5165 TuGraph GitHub \u7ec4\u7ec7\uff0c\u6210\u4e3a TuGraph \u5f00\u6e90\u793e\u533a\u7684\u4e00\u5458\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"4-maintainer",children:"4. Maintainer"}),"\n",(0,l.jsx)(e.h3,{id:"41-\u8981\u6c42",children:"4.1. \u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:"\u65b0\u7684 Committer \u7531\u5df2\u6709\u7684 PMC \u63a8\u8350\uff0c\u5e76\u901a\u8fc7 2/3 \u4ee5\u4e0a\u6295\u7968\u901a\u8fc7\uff0cCommitter \u81f3\u5c11\u6ee1\u8db3\u4ee5\u4e0b\u4e00\u4e2a\u6761\u4ef6\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6210\u4e3a\u793e\u533a\u6210\u5458\u65f6\u95f4\u8d85\u8fc7\u4e09\u4e2a\u6708"}),"\n",(0,l.jsx)(e.li,{children:"\u8d85\u8fc7 10 \u4e2a PMC approve \u7684 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u5b8c\u6210\u91cd\u5927\u529f\u80fd"}),"\n",(0,l.jsx)(e.li,{children:"\u4fee\u590d\u4e25\u91cd Bug"}),"\n",(0,l.jsx)(e.li,{children:"\u957f\u671f\u5173\u6ce8\u9879\u76ee\u53d1\u5c55\u5e76\u53c2\u4e0e\u793e\u533a\u8ba8\u8bba"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"42-\u804c\u8d23",children:"4.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u793e\u533a\u54a8\u8be2\u652f\u6301"}),"\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u54cd\u5e94\u6307\u6d3e\u7ed9\u60a8\u7684 Issue \u6216 PR"}),"\n",(0,l.jsx)(e.li,{children:"\u5bf9\u4e8e\u793e\u533a\u91cd\u5927\u51b3\u5b9a\u7684\u6295\u7968\u6743"}),"\n",(0,l.jsx)(e.li,{children:"Review \u793e\u533a\u7684 PR"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"43-\u6743\u9650",children:"4.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Pull Request review \u6743\u9650"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"5-pmc",children:"5. PMC"}),"\n",(0,l.jsx)(e.h3,{id:"51-\u8981\u6c42",children:"5.1. \u8981\u6c42"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6682\u4e0d\u5f00\u653e\uff0c\u5982\u6709\u5f3a\u70c8\u613f\u671b\u8bf7\u8054\u7cfbPMC"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"52-\u804c\u8d23",children:"5.2. \u804c\u8d23"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u79ef\u6781\u53c2\u4e0e\u793e\u533a\u8ba8\u8bba\uff0c\u5bf9\u793e\u533a\u91cd\u5927\u51b3\u7b56\u7ed9\u4e88\u6307\u5bfc"}),"\n",(0,l.jsx)(e.li,{children:"\u8d1f\u8d23\u4fdd\u8bc1\u5f00\u6e90\u9879\u76ee\u7684\u793e\u533a\u6d3b\u52a8\u90fd\u80fd\u8fd0\u8f6c\u826f\u597d"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"53-\u6743\u9650",children:"5.3. \u6743\u9650"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"Pull Request review \u6743\u9650"}),"\n",(0,l.jsx)(e.li,{children:"Pull Request approve \u6743\u9650"}),"\n",(0,l.jsx)(e.li,{children:"\u793e\u533a\u89d2\u8272\u6210\u5458\u7ba1\u7406"}),"\n"]})]})}function a(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(h,{...n})}):h(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>t,x:()=>d});var l=i(6540);const r={},s=l.createContext(r);function t(n){const e=l.useContext(s);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:t(n.components),l.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c05b63b.c8c4f137.js b/assets/js/7c05b63b.c8c4f137.js
new file mode 100644
index 0000000000..306f8f7684
--- /dev/null
+++ b/assets/js/7c05b63b.c8c4f137.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3291],{5828:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>h});var n=t(4848),i=t(8453);const s={},r="What is a graph database",o={id:"introduction/what-is-gdbms",title:"What is a graph database",description:"This document mainly introduce what is a graph database, the advantages of graph database compared with relational database, and the comparison between graph database and relational database",source:"@site/../docs/en-US/source/2.introduction/2.what-is-gdbms.md",sourceDirName:"2.introduction",slug:"/introduction/what-is-gdbms",permalink:"/tugraph-db/en/introduction/what-is-gdbms",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"What is Graph",permalink:"/tugraph-db/en/introduction/what-is-graph"},next:{title:"What is TuGraph",permalink:"/tugraph-db/en/introduction/what-is-tugraph"}},d={},h=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. Advantages of graph databases over relational databases",id:"2-advantages-of-graph-databases-over-relational-databases",level:2},{value:"2.1 Performance",id:"21-performance",level:3},{value:"2.2 Compatibility",id:"22-compatibility",level:3},{value:"2.3 Intuitive",id:"23-intuitive",level:3},{value:"3. Comparison between graph database and relational database",id:"3-comparison-between-graph-database-and-relational-database",level:2}];function l(a){const e={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...a.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"what-is-a-graph-database",children:"What is a graph database"})}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsx)(e.p,{children:"This document mainly introduce what is a graph database, the advantages of graph database compared with relational database, and the comparison between graph database and relational database"}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,n.jsx)(e.p,{children:"Graph database is a database based on graph model. The main function of graph database is to manage graph data, so it needs to support efficient vertex/edge query and update; To facilitate user use, it is usually necessary to add transaction support to ensure the normal operation of concurrent operations."}),"\n",(0,n.jsx)(e.h2,{id:"2-advantages-of-graph-databases-over-relational-databases",children:"2. Advantages of graph databases over relational databases"}),"\n",(0,n.jsx)(e.p,{children:"The function of graph database is an extension of traditional relational database. Compared with relational database, the graph structure supported by graph data is more flexible. Graph database is different from other databases in terms of data addition, deletion, query and modification based on graph. On the operation abstraction of graph data, a vertex-based perspective is adopted, for example, a vertex accesses its neighboring vertices through all its outgoing edges. This kind of operation is also the core of the design of graph database system."}),"\n",(0,n.jsx)(e.p,{children:"The uniqueness of graph database can be reflected in the following three aspects:"}),"\n",(0,n.jsx)(e.h3,{id:"21-performance",children:"2.1 Performance"}),"\n",(0,n.jsx)(e.p,{children:"Handling the relationship between data, it is inevitable to use table JOIN operation in relational database, which has a great impact on performance. Graph database is a direct access, similar to pointer access, which is more efficient operation of associated data, compared with relational database performance improvement of 2 to 4 orders of magnitude."}),"\n",(0,n.jsx)(e.h3,{id:"22-compatibility",children:"2.2 Compatibility"}),"\n",(0,n.jsx)(e.p,{children:"In reality, the process of a project is often evolutionary. The content and even the format of the data are constantly changing. In a relational database, this means that a change in the table structure, or the creation of multiple new tables, significantly changes the source data. In the graph database, you simply add new vertices, edges, and attributes, and set them to the corresponding types. In essence, a table represents a type of data, and a vertex represents a specific data, meaning that relational databases pay more attention to the type of data, while graph databases pay more attention to the individuals of data and identify their association relationships."}),"\n",(0,n.jsx)(e.h3,{id:"23-intuitive",children:"2.3 Intuitive"}),"\n",(0,n.jsx)(e.p,{children:"Using graphs (or nets) to express real-world relationships is more straightforward and natural, especially in the Internet of Things era. If relational data used, a high degree of abstract thinking required to build a table of characters first, then a table of relations, and finally a map of data. When analyzing and querying the graph data, you can also intuitively find the desired data interactively through the point-edge connection topology, without any professional knowledge."}),"\n",(0,n.jsx)(e.h2,{id:"3-comparison-between-graph-database-and-relational-database",children:"3. Comparison between graph database and relational database"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(e.table,{children:[(0,n.jsx)(e.thead,{children:(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.th,{children:"classification"}),(0,n.jsx)(e.th,{children:"model"}),(0,n.jsx)(e.th,{children:"advantage"}),(0,n.jsx)(e.th,{children:"disadvantage"}),(0,n.jsx)(e.th,{children:"example"})]})}),(0,n.jsxs)(e.tbody,{children:[(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:"Relational database"}),(0,n.jsx)(e.td,{children:"Table structure"}),(0,n.jsx)(e.td,{children:"Data is highly structured, consistent, and software maturity is high"}),(0,n.jsx)(e.td,{children:"The multi-hop association query is inefficient or not supported"}),(0,n.jsx)(e.td,{children:"MySQL\u3001Oracle"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:"Graph database"}),(0,n.jsx)(e.td,{children:"graph structure"}),(0,n.jsx)(e.td,{children:"Modeling and manipulating associations is very efficient"}),(0,n.jsx)(e.td,{children:"Highly structured data processing is not as powerful as relational databases"}),(0,n.jsx)(e.td,{children:"Neo4j\u3001TuGraph"})]})]})]}),"\n",(0,n.jsx)(e.p,{children:"In a word, in the face of massive data storage and processing problems, the traditional relational database has been unable to meet most of the daily data storage needs. Graph database technology can store relational information as entities and expand data model flexibly. Because it provides the most direct expression of related data, and the graph model is naturally tolerant to heterogeneous data. In the future, graph database technology will become one of the most popular technologies, which will provide powerful support for enterprises to store and analyze large-scale graph data."})]})}function c(a={}){const{wrapper:e}={...(0,i.R)(),...a.components};return e?(0,n.jsx)(e,{...a,children:(0,n.jsx)(l,{...a})}):l(a)}},8453:(a,e,t)=>{t.d(e,{R:()=>r,x:()=>o});var n=t(6540);const i={},s=n.createContext(i);function r(a){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function o(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(i):a.components||i:r(a.components),n.createElement(s.Provider,{value:e},a.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c05b63b.d6b61803.js b/assets/js/7c05b63b.d6b61803.js
deleted file mode 100644
index 90790a2467..0000000000
--- a/assets/js/7c05b63b.d6b61803.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3291],{4402:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>h});var n=t(4848),i=t(8453);const s={},r="What is a graph database",o={id:"en-US/source/introduction/what-is-gdbms",title:"What is a graph database",description:"This document mainly introduce what is a graph database, the advantages of graph database compared with relational database, and the comparison between graph database and relational database",source:"@site/../docs/en-US/source/2.introduction/2.what-is-gdbms.md",sourceDirName:"en-US/source/2.introduction",slug:"/en-US/source/introduction/what-is-gdbms",permalink:"/tugraph-db/en-US/source/introduction/what-is-gdbms",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"What is Graph",permalink:"/tugraph-db/en-US/source/introduction/what-is-graph"},next:{title:"What is TuGraph",permalink:"/tugraph-db/en-US/source/introduction/what-is-tugraph"}},d={},h=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. Advantages of graph databases over relational databases",id:"2-advantages-of-graph-databases-over-relational-databases",level:2},{value:"2.1 Performance",id:"21-performance",level:3},{value:"2.2 Compatibility",id:"22-compatibility",level:3},{value:"2.3 Intuitive",id:"23-intuitive",level:3},{value:"3. Comparison between graph database and relational database",id:"3-comparison-between-graph-database-and-relational-database",level:2}];function l(a){const e={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...a.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"what-is-a-graph-database",children:"What is a graph database"})}),"\n",(0,n.jsxs)(e.blockquote,{children:["\n",(0,n.jsx)(e.p,{children:"This document mainly introduce what is a graph database, the advantages of graph database compared with relational database, and the comparison between graph database and relational database"}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,n.jsx)(e.p,{children:"Graph database is a database based on graph model. The main function of graph database is to manage graph data, so it needs to support efficient vertex/edge query and update; To facilitate user use, it is usually necessary to add transaction support to ensure the normal operation of concurrent operations."}),"\n",(0,n.jsx)(e.h2,{id:"2-advantages-of-graph-databases-over-relational-databases",children:"2. Advantages of graph databases over relational databases"}),"\n",(0,n.jsx)(e.p,{children:"The function of graph database is an extension of traditional relational database. Compared with relational database, the graph structure supported by graph data is more flexible. Graph database is different from other databases in terms of data addition, deletion, query and modification based on graph. On the operation abstraction of graph data, a vertex-based perspective is adopted, for example, a vertex accesses its neighboring vertices through all its outgoing edges. This kind of operation is also the core of the design of graph database system."}),"\n",(0,n.jsx)(e.p,{children:"The uniqueness of graph database can be reflected in the following three aspects:"}),"\n",(0,n.jsx)(e.h3,{id:"21-performance",children:"2.1 Performance"}),"\n",(0,n.jsx)(e.p,{children:"Handling the relationship between data, it is inevitable to use table JOIN operation in relational database, which has a great impact on performance. Graph database is a direct access, similar to pointer access, which is more efficient operation of associated data, compared with relational database performance improvement of 2 to 4 orders of magnitude."}),"\n",(0,n.jsx)(e.h3,{id:"22-compatibility",children:"2.2 Compatibility"}),"\n",(0,n.jsx)(e.p,{children:"In reality, the process of a project is often evolutionary. The content and even the format of the data are constantly changing. In a relational database, this means that a change in the table structure, or the creation of multiple new tables, significantly changes the source data. In the graph database, you simply add new vertices, edges, and attributes, and set them to the corresponding types. In essence, a table represents a type of data, and a vertex represents a specific data, meaning that relational databases pay more attention to the type of data, while graph databases pay more attention to the individuals of data and identify their association relationships."}),"\n",(0,n.jsx)(e.h3,{id:"23-intuitive",children:"2.3 Intuitive"}),"\n",(0,n.jsx)(e.p,{children:"Using graphs (or nets) to express real-world relationships is more straightforward and natural, especially in the Internet of Things era. If relational data used, a high degree of abstract thinking required to build a table of characters first, then a table of relations, and finally a map of data. When analyzing and querying the graph data, you can also intuitively find the desired data interactively through the point-edge connection topology, without any professional knowledge."}),"\n",(0,n.jsx)(e.h2,{id:"3-comparison-between-graph-database-and-relational-database",children:"3. Comparison between graph database and relational database"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(e.table,{children:[(0,n.jsx)(e.thead,{children:(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.th,{children:"classification"}),(0,n.jsx)(e.th,{children:"model"}),(0,n.jsx)(e.th,{children:"advantage"}),(0,n.jsx)(e.th,{children:"disadvantage"}),(0,n.jsx)(e.th,{children:"example"})]})}),(0,n.jsxs)(e.tbody,{children:[(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:"Relational database"}),(0,n.jsx)(e.td,{children:"Table structure"}),(0,n.jsx)(e.td,{children:"Data is highly structured, consistent, and software maturity is high"}),(0,n.jsx)(e.td,{children:"The multi-hop association query is inefficient or not supported"}),(0,n.jsx)(e.td,{children:"MySQL\u3001Oracle"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:"Graph database"}),(0,n.jsx)(e.td,{children:"graph structure"}),(0,n.jsx)(e.td,{children:"Modeling and manipulating associations is very efficient"}),(0,n.jsx)(e.td,{children:"Highly structured data processing is not as powerful as relational databases"}),(0,n.jsx)(e.td,{children:"Neo4j\u3001TuGraph"})]})]})]}),"\n",(0,n.jsx)(e.p,{children:"In a word, in the face of massive data storage and processing problems, the traditional relational database has been unable to meet most of the daily data storage needs. Graph database technology can store relational information as entities and expand data model flexibly. Because it provides the most direct expression of related data, and the graph model is naturally tolerant to heterogeneous data. In the future, graph database technology will become one of the most popular technologies, which will provide powerful support for enterprises to store and analyze large-scale graph data."})]})}function c(a={}){const{wrapper:e}={...(0,i.R)(),...a.components};return e?(0,n.jsx)(e,{...a,children:(0,n.jsx)(l,{...a})}):l(a)}},8453:(a,e,t)=>{t.d(e,{R:()=>r,x:()=>o});var n=t(6540);const i={},s=n.createContext(i);function r(a){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function o(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(i):a.components||i:r(a.components),n.createElement(s.Provider,{value:e},a.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c2e3ba5.9c48e345.js b/assets/js/7c2e3ba5.9c48e345.js
deleted file mode 100644
index c7e2bc7dc4..0000000000
--- a/assets/js/7c2e3ba5.9c48e345.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2767],{4484:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>t,metadata:()=>c,toc:()=>i});var l=r(4848),s=r(8453);const t={},d="\u5feb\u901f\u4e0a\u624b",c={id:"zh-CN/source/quick-start/preparation",title:"\u5feb\u901f\u4e0a\u624b",description:"\u6b64\u6587\u6863\u4e3b\u8981\u7528\u4e8e\u65b0\u7528\u6237\u5feb\u901f\u4e0a\u624b\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u7684\u7b80\u4ecb\u3001\u7279\u5f81\u3001\u5b89\u88c5\u548c\u4f7f\u7528\u3002",source:"@site/../docs/zh-CN/source/3.quick-start/1.preparation.md",sourceDirName:"zh-CN/source/3.quick-start",slug:"/zh-CN/source/quick-start/preparation",permalink:"/tugraph-db/zh-CN/source/quick-start/preparation",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u540d\u8bcd\u89e3\u91ca",permalink:"/tugraph-db/zh-CN/source/introduction/glossary"},next:{title:"\u573a\u666f\uff1a\u5f71\u89c6",permalink:"/tugraph-db/zh-CN/source/quick-start/demo/movie"}},h={},i=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"1.1.\u652f\u6301\u7684\u5e73\u53f0",id:"11\u652f\u6301\u7684\u5e73\u53f0",level:3},{value:"1.2.\u786c\u4ef6\u8981\u6c42",id:"12\u786c\u4ef6\u8981\u6c42",level:3},{value:"2.\u5b89\u88c5",id:"2\u5b89\u88c5",level:2},{value:"2.1.\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",id:"21\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",level:3},{value:"2.2.\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",id:"22\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",level:3}];function a(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.header,{children:(0,l.jsx)(e.h1,{id:"\u5feb\u901f\u4e0a\u624b",children:"\u5feb\u901f\u4e0a\u624b"})}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u7528\u4e8e\u65b0\u7528\u6237\u5feb\u901f\u4e0a\u624b\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u7684\u7b80\u4ecb\u3001\u7279\u5f81\u3001\u5b89\u88c5\u548c\u4f7f\u7528\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u662f\u8682\u8681\u96c6\u56e2\u81ea\u4e3b\u7814\u53d1\u7684\u5927\u89c4\u6a21\u56fe\u8ba1\u7b97\u7cfb\u7edf\uff0c\u63d0\u4f9b\u56fe\u6570\u636e\u5e93\u5f15\u64ce\u548c\u56fe\u5206\u6790\u5f15\u64ce\u3002\u5176\u4e3b\u8981\u7279\u70b9\u662f\u5927\u6570\u636e\u91cf\u5b58\u50a8\u548c\u8ba1\u7b97\uff0c\u9ad8\u541e\u5410\u7387\uff0c\u4ee5\u53ca\u7075\u6d3b\u7684 API\uff0c\u540c\u65f6\u652f\u6301\u9ad8\u6548\u7684\u5728\u7ebf\u4e8b\u52a1\u5904\u7406\uff08OLTP\uff09\u548c\u5728\u7ebf\u5206\u6790\u5904\u7406\uff08OLAP\uff09\u3002 LightGraph\u3001GeaGraph \u662f TuGraph \u7684\u66fe\u7528\u540d\u3002"}),"\n",(0,l.jsx)(e.p,{children:"\u4e3b\u8981\u529f\u80fd\u7279\u5f81\u5305\u62ec\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6807\u7b7e\u5c5e\u6027\u56fe\u6a21\u578b"}),"\n",(0,l.jsx)(e.li,{children:"\u652f\u6301\u591a\u56fe"}),"\n",(0,l.jsx)(e.li,{children:"\u5b8c\u5584\u7684 ACID \u4e8b\u52a1\u5904\u7406"}),"\n",(0,l.jsx)(e.li,{children:"\u5185\u7f6e 34 \u56fe\u5206\u6790\u7b97\u6cd5"}),"\n",(0,l.jsx)(e.li,{children:"\u57fa\u4e8e web \u5ba2\u6237\u7aef\u7684\u56fe\u53ef\u89c6\u5316\u5de5\u5177"}),"\n",(0,l.jsx)(e.li,{children:"\u652f\u6301 RESTful API \u548c RPC"}),"\n",(0,l.jsx)(e.li,{children:"OpenCypher \u56fe\u67e5\u8be2\u8bed\u8a00"}),"\n",(0,l.jsx)(e.li,{children:"\u57fa\u4e8e C++/Python \u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,l.jsx)(e.li,{children:"\u9002\u7528\u4e8e\u9ad8\u6548\u56fe\u7b97\u6cd5\u5f00\u53d1\u7684 Traversal API"}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u6027\u80fd\u53ca\u53ef\u6269\u5c55\u6027\u7279\u5f81\u5305\u62ec\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"TB \u7ea7\u5927\u5bb9\u91cf"}),"\n",(0,l.jsx)(e.li,{children:"\u5343\u4e07\u70b9/\u79d2\u7684\u9ad8\u541e\u5410\u7387"}),"\n",(0,l.jsx)(e.li,{children:"\u9ad8\u53ef\u7528\u6027\u652f\u6301"}),"\n",(0,l.jsx)(e.li,{children:"\u9ad8\u6027\u80fd\u6279\u91cf\u5bfc\u5165"}),"\n",(0,l.jsx)(e.li,{children:"\u5728\u7ebf/\u79bb\u7ebf\u5907\u4efd"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"11\u652f\u6301\u7684\u5e73\u53f0",children:"1.1.\u652f\u6301\u7684\u5e73\u53f0"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u65e0\u8bba\u662f\u7269\u7406\u3001\u865a\u62df\u8fd8\u662f\u5bb9\u5668\u5316\u73af\u5883\uff0c\u5747\u652f\u6301 X86_64 \u548c ARM64 \u67b6\u6784\u7684\u7684\u5e73\u53f0\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"12\u786c\u4ef6\u8981\u6c42",children:"1.2.\u786c\u4ef6\u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.em,{children:"\u76ee\u524d\u6211\u4eec\u5efa\u8bae\u7528\u6237\u4f7f\u7528 NVMe SSD \u914d\u5408\u8f83\u5927\u7684\u5185\u5b58\u914d\u7f6e\u4ee5\u83b7\u53d6\u6700\u4f73\u6027\u80fd\u3002"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(e.table,{children:[(0,l.jsx)(e.thead,{children:(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.th,{children:"\u786c\u4ef6"}),(0,l.jsx)(e.th,{children:"\u6700\u4f4e\u914d\u7f6e"}),(0,l.jsx)(e.th,{children:"\u5efa\u8bae\u914d\u7f6e"})]})}),(0,l.jsxs)(e.tbody,{children:[(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"CPU"}),(0,l.jsx)(e.td,{children:"X86_64"}),(0,l.jsx)(e.td,{children:"Xeon E5 2670 v4"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u5185\u5b58"}),(0,l.jsx)(e.td,{children:"4GB"}),(0,l.jsx)(e.td,{children:"256GB"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u786c\u76d8"}),(0,l.jsx)(e.td,{children:"100GB"}),(0,l.jsx)(e.td,{children:"1TB NVMe SSD"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u64cd\u4f5c\u7cfb\u7edf"}),(0,l.jsx)(e.td,{children:"Linux 2.6"}),(0,l.jsx)(e.td,{children:"Ubuntu 18.04, CentOS 7.3"})]})]})]}),"\n",(0,l.jsx)(e.h2,{id:"2\u5b89\u88c5",children:"2.\u5b89\u88c5"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u53ef\u4ee5\u901a\u8fc7 Docker Image \u5feb\u901f\u5b89\u88c5\uff0c\u6216\u8005\u901a\u8fc7 rpm/deb \u5305\u672c\u5730\u5b89\u88c5\u3002\u53e6\u5916TuGraph\u5728\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u4e0a\u63d0\u4f9b\u4e86\u793e\u533a\u7248\u670d\u52a1\uff0c\u60a8\u65e0\u9700\u81ea\u884c\u8d2d\u7f6e\u4e91\u4e3b\u673a\uff0c\u5373\u53ef\u5728\u8ba1\u7b97\u5de2\u4e0a\u5feb\u901f\u90e8\u7f72TuGraph\u670d\u52a1\u3001\u5b9e\u73b0\u8fd0\u7ef4\u76d1\u63a7\uff0c\u4ece\u800c\u642d\u5efa\u60a8\u81ea\u5df1\u7684\u56fe\u5e94\u7528\u3002"}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsxs)(e.p,{children:["\u5b89\u88c5\u5305/\u955c\u50cf\u4e0b\u8f7d\uff1a\u53c2\u8003",(0,l.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/guide",children:"\u4e0b\u8f7d\u5730\u5740"}),"\u4e2d\u7684\u201cTuGraph\u6700\u65b0\u7248\u672c\u201d\u7ae0\u8282\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsxs)(e.p,{children:["\u8ba1\u7b97\u5de2\u90e8\u7f72\uff1a\u53ef\u4ee5\u5728\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u81ea\u884c\u641c\u7d22\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7",(0,l.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/cloud-deployment",children:"\u90e8\u7f72\u94fe\u63a5"}),"\u5feb\u901f\u8bbf\u95ee\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"21\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",children:"2.1.\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u672c\u5730\u5b89\u88c5 docker \u73af\u5883"}),"\n",(0,l.jsxs)(e.p,{children:["\u53c2\u8003 docker \u5b98\u65b9\u6587\u6863\uff1a",(0,l.jsx)(e.a,{href:"https://docs.docker.com/get-started/",children:"https://docs.docker.com/get-started/"})]}),"\n"]}),"\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u62c9\u53d6\u955c\u50cf"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:"docker pull tugraph/tugraph-runtime-centos7\n"})}),"\n"]}),"\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u542f\u52a8docker"}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u542f\u52a8 TuGraph \u670d\u52a1\u53ef\u4ee5\u901a\u8fc7\u4e24\u79cd\u65b9\u5f0f\u6765\u5b9e\u73b0\u3002\u7b2c\u4e00\u79cd\u65b9\u5f0f\u5c06\u955c\u50cf\u62c9\u53d6\u4e0e\u670d\u52a1\u542f\u52a8\u6574\u5408\u5728\u4e00\u8d77\uff0c\u7528\u6237\u53ea\u9700\u6267\u884c\u8fd0\u884c\u5bb9\u5668\u7684\u64cd\u4f5c\uff0c\u5373\u53ef\u540c\u65f6\u542f\u52a8 TuGraph \u670d\u52a1\u3002\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u5219\u662f\u5728\u521b\u5efa TuGraph \u5bb9\u5668\u540e\uff0c\u624b\u52a8\u8fdb\u5165\u5bb9\u5668\u5185\u90e8\u4ee5\u89e6\u53d1\u670d\u52a1\u542f\u52a8\u3002\u5c3d\u7ba1\u8fd9\u79cd\u65b9\u6cd5\u521d\u671f\u6b65\u9aa4\u7a0d\u663e\u7e41\u7410\uff0c\u4f46\u5728\u5982\u5fd8\u8bb0\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u5b83\u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u7684\u5bc6\u7801\u91cd\u7f6e\u9009\u9879\u3002"}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.strong,{children:"\u65b9\u5f0f\u4e00"})}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:" docker run -d -p 7070:7070 -p 7687:7687 -p 9090:9090 -v /root/tugraph/data:/var/lib/lgraph/data -v /root/tugraph/log:/var/log/lgraph_log \\\n --name tugraph_demo ${REPOSITORY}:${VERSION}\n\n# ${REPOSITORY}\u662f\u955c\u50cf\u5730\u5740\uff0c${VERSION}\u662f\u7248\u672c\u53f7\u3002\n# 7070\u662f\u9ed8\u8ba4\u7684http\u7aef\u53e3\uff0c\u8bbf\u95eetugraph-db-browser\u4f7f\u7528\u3002 \n# 7687\u662fbolt\u7aef\u53e3\uff0cbolt client\u8bbf\u95ee\u4f7f\u7528\u3002\n# 9090\u662f\u9ed8\u8ba4\u7684rpc\u7aef\u53e3\uff0crpc client\u8bbf\u95ee\u4f7f\u7528\u3002\n# /var/lib/lgraph/data\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u6570\u636e\u76ee\u5f55\uff0c/var/log/lgraph_log\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u65e5\u5fd7\u76ee\u5f55\n# \u547d\u4ee4\u5c06\u6570\u636e\u76ee\u5f55\u548c\u65e5\u5fd7\u76ee\u5f55\u6302\u8f7d\u5230\u4e86\u5bbf\u4e3b\u673a\u7684/root/tugraph/\u4e0a\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u3002\n"})}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.strong,{children:"\u65b9\u5f0f\u4e8c"})}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:" docker run -dt -p 7070:7070 -p 7687:7687 -p 9090:9090 -v /root/tugraph/data:/var/lib/lgraph/data -v /root/tugraph/log:/var/log/lgraph_log \\\n --name tugraph_demo ${REPOSITORY}:${VERSION} /bin/bash\n \n docker exec -it tugraph_demo bash\n lgraph_server -c /usr/local/etc/lgraph.json -d start\n \n# ${REPOSITORY}\u662f\u955c\u50cf\u5730\u5740\uff0c${VERSION}\u662f\u7248\u672c\u53f7\u3002\n# 7070\u662f\u9ed8\u8ba4\u7684http\u7aef\u53e3\uff0c\u8bbf\u95eetugraph-db-browser\u4f7f\u7528\u3002 \n# 7687\u662fbolt\u7aef\u53e3\uff0cbolt client\u8bbf\u95ee\u4f7f\u7528\u3002\n# 9090\u662f\u9ed8\u8ba4\u7684rpc\u7aef\u53e3\uff0crpc client\u8bbf\u95ee\u4f7f\u7528\u3002\n# /var/lib/lgraph/data\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u6570\u636e\u76ee\u5f55\uff0c/var/log/lgraph_log\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u65e5\u5fd7\u76ee\u5f55\n# \u547d\u4ee4\u5c06\u6570\u636e\u76ee\u5f55\u548c\u65e5\u5fd7\u76ee\u5f55\u6302\u8f7d\u5230\u4e86\u5bbf\u4e3b\u673a\u7684/root/tugraph/\u4e0a\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u3002\n"})}),"\n",(0,l.jsxs)(e.ol,{start:"5",children:["\n",(0,l.jsx)(e.li,{children:"\u524d\u7aef\u8bbf\u95ee"}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["\u8bbf\u95eetugraph-db-browser: ",(0,l.jsx)(e.code,{children:"http://x.x.x.x:7070"}),"\uff0c\u6570\u636e\u5e93\u5730\u5740\u683c\u5f0f\u4e3a ",(0,l.jsx)(e.code,{children:"bolt://ip:bolt_port"}),"\uff08\u8001\u7248\u672c\u4e0d\u7528\u586b\uff09\uff0c\u9ed8\u8ba4\u7528\u6237\u540d\u4e3a ",(0,l.jsx)(e.code,{children:"admin"}),"\uff0c\u5bc6\u7801\u4e3a ",(0,l.jsx)(e.code,{children:"73@TuGraph"}),"\u3002\n\u9996\u6b21\u767b\u5f55\u4f1a\u9ed8\u8ba4\u8df3\u8f6c\u4fee\u6539\u5bc6\u7801\u9875\u9762\uff0c\u8bf7\u5c3d\u5feb\u4fee\u6539\u9ed8\u8ba4\u5bc6\u7801\u907f\u514d\u5b89\u5168\u98ce\u9669\u3002"]}),"\n",(0,l.jsx)(e.h3,{id:"22\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",children:"2.2.\u65b0\u65e7\u524d\u7aef\u8bf4\u660e"}),"\n",(0,l.jsxs)(e.p,{children:['\u8fdb\u5165\u5bb9\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539\u914d\u7f6e\u6587\u4ef6"/usr/local/etc/lgraph.json"\u4e2d\u7684"web"\u53c2\u6570\u6765\u9009\u62e9\u4f7f\u7528\u8001\u7248\u672c\u6216\u65b0\u7248\u672c\u7684\u524d\u7aef\u3002\u5bf9\u4e8e\u8001\u7248\u672c\uff0c\u53ef\u4ee5\u5c06"web"\u7684\u503c\u8bbe\u4e3a"/usr/local/share/lgraph/resource"\uff1b\u5bf9\u4e8e\u65b0\u7248\u672c\uff0c\u53ef\u4ee5\u5c06"web"\u7684\u503c\u8bbe\u4e3a"/usr/local/share/lgraph/browser-resource"\u3002\u5b8c\u6210\u914d\u7f6e\u6587\u4ef6\u7684\u4fee\u6539\u540e\uff0c\u8bf7\u6267\u884c\u547d\u4ee4 ',(0,l.jsx)(e.code,{children:"docker restart tugraph"})," \u4ee5\u4f7f\u66f4\u6539\u751f\u6548\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u65b0\u7248\u672c\u662f\u9ed8\u8ba4\u9009\u9879\u3002"]})]})}function o(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>d,x:()=>c});var l=r(6540);const s={},t=l.createContext(s);function d(n){const e=l.useContext(t);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:d(n.components),l.createElement(t.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c2e3ba5.c2d73884.js b/assets/js/7c2e3ba5.c2d73884.js
new file mode 100644
index 0000000000..16e6794e8c
--- /dev/null
+++ b/assets/js/7c2e3ba5.c2d73884.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2767],{4484:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>c,contentTitle:()=>d,default:()=>o,frontMatter:()=>s,metadata:()=>h,toc:()=>i});var l=r(4848),t=r(8453);const s={},d="\u5feb\u901f\u4e0a\u624b",h={id:"quick-start/preparation",title:"\u5feb\u901f\u4e0a\u624b",description:"\u6b64\u6587\u6863\u4e3b\u8981\u7528\u4e8e\u65b0\u7528\u6237\u5feb\u901f\u4e0a\u624b\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u7684\u7b80\u4ecb\u3001\u7279\u5f81\u3001\u5b89\u88c5\u548c\u4f7f\u7528\u3002",source:"@site/../docs/zh-CN/source/3.quick-start/1.preparation.md",sourceDirName:"3.quick-start",slug:"/quick-start/preparation",permalink:"/tugraph-db/zh/quick-start/preparation",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u540d\u8bcd\u89e3\u91ca",permalink:"/tugraph-db/zh/introduction/glossary"},next:{title:"\u573a\u666f\uff1a\u5f71\u89c6",permalink:"/tugraph-db/zh/quick-start/demo/movie"}},c={},i=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"1.1.\u652f\u6301\u7684\u5e73\u53f0",id:"11\u652f\u6301\u7684\u5e73\u53f0",level:3},{value:"1.2.\u786c\u4ef6\u8981\u6c42",id:"12\u786c\u4ef6\u8981\u6c42",level:3},{value:"2.\u5b89\u88c5",id:"2\u5b89\u88c5",level:2},{value:"2.1.\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",id:"21\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",level:3},{value:"2.2.\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",id:"22\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",level:3}];function a(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.header,{children:(0,l.jsx)(e.h1,{id:"\u5feb\u901f\u4e0a\u624b",children:"\u5feb\u901f\u4e0a\u624b"})}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u7528\u4e8e\u65b0\u7528\u6237\u5feb\u901f\u4e0a\u624b\uff0c\u5176\u4e2d\u5305\u542b\u4e86 TuGraph \u7684\u7b80\u4ecb\u3001\u7279\u5f81\u3001\u5b89\u88c5\u548c\u4f7f\u7528\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u662f\u8682\u8681\u96c6\u56e2\u81ea\u4e3b\u7814\u53d1\u7684\u5927\u89c4\u6a21\u56fe\u8ba1\u7b97\u7cfb\u7edf\uff0c\u63d0\u4f9b\u56fe\u6570\u636e\u5e93\u5f15\u64ce\u548c\u56fe\u5206\u6790\u5f15\u64ce\u3002\u5176\u4e3b\u8981\u7279\u70b9\u662f\u5927\u6570\u636e\u91cf\u5b58\u50a8\u548c\u8ba1\u7b97\uff0c\u9ad8\u541e\u5410\u7387\uff0c\u4ee5\u53ca\u7075\u6d3b\u7684 API\uff0c\u540c\u65f6\u652f\u6301\u9ad8\u6548\u7684\u5728\u7ebf\u4e8b\u52a1\u5904\u7406\uff08OLTP\uff09\u548c\u5728\u7ebf\u5206\u6790\u5904\u7406\uff08OLAP\uff09\u3002 LightGraph\u3001GeaGraph \u662f TuGraph \u7684\u66fe\u7528\u540d\u3002"}),"\n",(0,l.jsx)(e.p,{children:"\u4e3b\u8981\u529f\u80fd\u7279\u5f81\u5305\u62ec\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6807\u7b7e\u5c5e\u6027\u56fe\u6a21\u578b"}),"\n",(0,l.jsx)(e.li,{children:"\u652f\u6301\u591a\u56fe"}),"\n",(0,l.jsx)(e.li,{children:"\u5b8c\u5584\u7684 ACID \u4e8b\u52a1\u5904\u7406"}),"\n",(0,l.jsx)(e.li,{children:"\u5185\u7f6e 34 \u56fe\u5206\u6790\u7b97\u6cd5"}),"\n",(0,l.jsx)(e.li,{children:"\u57fa\u4e8e web \u5ba2\u6237\u7aef\u7684\u56fe\u53ef\u89c6\u5316\u5de5\u5177"}),"\n",(0,l.jsx)(e.li,{children:"\u652f\u6301 RESTful API \u548c RPC"}),"\n",(0,l.jsx)(e.li,{children:"OpenCypher \u56fe\u67e5\u8be2\u8bed\u8a00"}),"\n",(0,l.jsx)(e.li,{children:"\u57fa\u4e8e C++/Python \u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,l.jsx)(e.li,{children:"\u9002\u7528\u4e8e\u9ad8\u6548\u56fe\u7b97\u6cd5\u5f00\u53d1\u7684 Traversal API"}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u6027\u80fd\u53ca\u53ef\u6269\u5c55\u6027\u7279\u5f81\u5305\u62ec\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"TB \u7ea7\u5927\u5bb9\u91cf"}),"\n",(0,l.jsx)(e.li,{children:"\u5343\u4e07\u70b9/\u79d2\u7684\u9ad8\u541e\u5410\u7387"}),"\n",(0,l.jsx)(e.li,{children:"\u9ad8\u53ef\u7528\u6027\u652f\u6301"}),"\n",(0,l.jsx)(e.li,{children:"\u9ad8\u6027\u80fd\u6279\u91cf\u5bfc\u5165"}),"\n",(0,l.jsx)(e.li,{children:"\u5728\u7ebf/\u79bb\u7ebf\u5907\u4efd"}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"11\u652f\u6301\u7684\u5e73\u53f0",children:"1.1.\u652f\u6301\u7684\u5e73\u53f0"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u65e0\u8bba\u662f\u7269\u7406\u3001\u865a\u62df\u8fd8\u662f\u5bb9\u5668\u5316\u73af\u5883\uff0c\u5747\u652f\u6301 X86_64 \u548c ARM64 \u67b6\u6784\u7684\u7684\u5e73\u53f0\u3002"}),"\n",(0,l.jsx)(e.h3,{id:"12\u786c\u4ef6\u8981\u6c42",children:"1.2.\u786c\u4ef6\u8981\u6c42"}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.em,{children:"\u76ee\u524d\u6211\u4eec\u5efa\u8bae\u7528\u6237\u4f7f\u7528 NVMe SSD \u914d\u5408\u8f83\u5927\u7684\u5185\u5b58\u914d\u7f6e\u4ee5\u83b7\u53d6\u6700\u4f73\u6027\u80fd\u3002"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(e.table,{children:[(0,l.jsx)(e.thead,{children:(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.th,{children:"\u786c\u4ef6"}),(0,l.jsx)(e.th,{children:"\u6700\u4f4e\u914d\u7f6e"}),(0,l.jsx)(e.th,{children:"\u5efa\u8bae\u914d\u7f6e"})]})}),(0,l.jsxs)(e.tbody,{children:[(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"CPU"}),(0,l.jsx)(e.td,{children:"X86_64"}),(0,l.jsx)(e.td,{children:"Xeon E5 2670 v4"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u5185\u5b58"}),(0,l.jsx)(e.td,{children:"4GB"}),(0,l.jsx)(e.td,{children:"256GB"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u786c\u76d8"}),(0,l.jsx)(e.td,{children:"100GB"}),(0,l.jsx)(e.td,{children:"1TB NVMe SSD"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{children:"\u64cd\u4f5c\u7cfb\u7edf"}),(0,l.jsx)(e.td,{children:"Linux 2.6"}),(0,l.jsx)(e.td,{children:"Ubuntu 18.04, CentOS 7.3"})]})]})]}),"\n",(0,l.jsx)(e.h2,{id:"2\u5b89\u88c5",children:"2.\u5b89\u88c5"}),"\n",(0,l.jsx)(e.p,{children:"TuGraph \u53ef\u4ee5\u901a\u8fc7 Docker Image \u5feb\u901f\u5b89\u88c5\uff0c\u6216\u8005\u901a\u8fc7 rpm/deb \u5305\u672c\u5730\u5b89\u88c5\u3002\u53e6\u5916TuGraph\u5728\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u4e0a\u63d0\u4f9b\u4e86\u793e\u533a\u7248\u670d\u52a1\uff0c\u60a8\u65e0\u9700\u81ea\u884c\u8d2d\u7f6e\u4e91\u4e3b\u673a\uff0c\u5373\u53ef\u5728\u8ba1\u7b97\u5de2\u4e0a\u5feb\u901f\u90e8\u7f72TuGraph\u670d\u52a1\u3001\u5b9e\u73b0\u8fd0\u7ef4\u76d1\u63a7\uff0c\u4ece\u800c\u642d\u5efa\u60a8\u81ea\u5df1\u7684\u56fe\u5e94\u7528\u3002"}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsxs)(e.p,{children:["\u5b89\u88c5\u5305/\u955c\u50cf\u4e0b\u8f7d\uff1a\u53c2\u8003",(0,l.jsx)(e.a,{href:"/tugraph-db/zh/guide",children:"\u4e0b\u8f7d\u5730\u5740"}),"\u4e2d\u7684\u201cTuGraph\u6700\u65b0\u7248\u672c\u201d\u7ae0\u8282\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(e.blockquote,{children:["\n",(0,l.jsxs)(e.p,{children:["\u8ba1\u7b97\u5de2\u90e8\u7f72\uff1a\u53ef\u4ee5\u5728\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u81ea\u884c\u641c\u7d22\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7",(0,l.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/cloud-deployment",children:"\u90e8\u7f72\u94fe\u63a5"}),"\u5feb\u901f\u8bbf\u95ee\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"21\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c",children:"2.1.\u901a\u8fc7docker\u5feb\u901f\u4f53\u9a8c"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u672c\u5730\u5b89\u88c5 docker \u73af\u5883"}),"\n",(0,l.jsxs)(e.p,{children:["\u53c2\u8003 docker \u5b98\u65b9\u6587\u6863\uff1a",(0,l.jsx)(e.a,{href:"https://docs.docker.com/get-started/",children:"https://docs.docker.com/get-started/"})]}),"\n"]}),"\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u62c9\u53d6\u955c\u50cf"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:"docker pull tugraph/tugraph-runtime-centos7\n"})}),"\n"]}),"\n",(0,l.jsxs)(e.li,{children:["\n",(0,l.jsx)(e.p,{children:"\u542f\u52a8docker"}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(e.p,{children:"\u542f\u52a8 TuGraph \u670d\u52a1\u53ef\u4ee5\u901a\u8fc7\u4e24\u79cd\u65b9\u5f0f\u6765\u5b9e\u73b0\u3002\u7b2c\u4e00\u79cd\u65b9\u5f0f\u5c06\u955c\u50cf\u62c9\u53d6\u4e0e\u670d\u52a1\u542f\u52a8\u6574\u5408\u5728\u4e00\u8d77\uff0c\u7528\u6237\u53ea\u9700\u6267\u884c\u8fd0\u884c\u5bb9\u5668\u7684\u64cd\u4f5c\uff0c\u5373\u53ef\u540c\u65f6\u542f\u52a8 TuGraph \u670d\u52a1\u3002\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u5219\u662f\u5728\u521b\u5efa TuGraph \u5bb9\u5668\u540e\uff0c\u624b\u52a8\u8fdb\u5165\u5bb9\u5668\u5185\u90e8\u4ee5\u89e6\u53d1\u670d\u52a1\u542f\u52a8\u3002\u5c3d\u7ba1\u8fd9\u79cd\u65b9\u6cd5\u521d\u671f\u6b65\u9aa4\u7a0d\u663e\u7e41\u7410\uff0c\u4f46\u5728\u5982\u5fd8\u8bb0\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u5b83\u63d0\u4f9b\u4e86\u66f4\u7075\u6d3b\u7684\u5bc6\u7801\u91cd\u7f6e\u9009\u9879\u3002"}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.strong,{children:"\u65b9\u5f0f\u4e00"})}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:" docker run -d -p 7070:7070 -p 7687:7687 -p 9090:9090 -v /root/tugraph/data:/var/lib/lgraph/data -v /root/tugraph/log:/var/log/lgraph_log \\\n --name tugraph_demo ${REPOSITORY}:${VERSION}\n\n# ${REPOSITORY}\u662f\u955c\u50cf\u5730\u5740\uff0c${VERSION}\u662f\u7248\u672c\u53f7\u3002\n# 7070\u662f\u9ed8\u8ba4\u7684http\u7aef\u53e3\uff0c\u8bbf\u95eetugraph-db-browser\u4f7f\u7528\u3002 \n# 7687\u662fbolt\u7aef\u53e3\uff0cbolt client\u8bbf\u95ee\u4f7f\u7528\u3002\n# 9090\u662f\u9ed8\u8ba4\u7684rpc\u7aef\u53e3\uff0crpc client\u8bbf\u95ee\u4f7f\u7528\u3002\n# /var/lib/lgraph/data\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u6570\u636e\u76ee\u5f55\uff0c/var/log/lgraph_log\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u65e5\u5fd7\u76ee\u5f55\n# \u547d\u4ee4\u5c06\u6570\u636e\u76ee\u5f55\u548c\u65e5\u5fd7\u76ee\u5f55\u6302\u8f7d\u5230\u4e86\u5bbf\u4e3b\u673a\u7684/root/tugraph/\u4e0a\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u3002\n"})}),"\n",(0,l.jsx)(e.p,{children:(0,l.jsx)(e.strong,{children:"\u65b9\u5f0f\u4e8c"})}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-shell",children:" docker run -dt -p 7070:7070 -p 7687:7687 -p 9090:9090 -v /root/tugraph/data:/var/lib/lgraph/data -v /root/tugraph/log:/var/log/lgraph_log \\\n --name tugraph_demo ${REPOSITORY}:${VERSION} /bin/bash\n \n docker exec -it tugraph_demo bash\n lgraph_server -c /usr/local/etc/lgraph.json -d start\n \n# ${REPOSITORY}\u662f\u955c\u50cf\u5730\u5740\uff0c${VERSION}\u662f\u7248\u672c\u53f7\u3002\n# 7070\u662f\u9ed8\u8ba4\u7684http\u7aef\u53e3\uff0c\u8bbf\u95eetugraph-db-browser\u4f7f\u7528\u3002 \n# 7687\u662fbolt\u7aef\u53e3\uff0cbolt client\u8bbf\u95ee\u4f7f\u7528\u3002\n# 9090\u662f\u9ed8\u8ba4\u7684rpc\u7aef\u53e3\uff0crpc client\u8bbf\u95ee\u4f7f\u7528\u3002\n# /var/lib/lgraph/data\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u6570\u636e\u76ee\u5f55\uff0c/var/log/lgraph_log\u662f\u5bb9\u5668\u5185\u7684\u9ed8\u8ba4\u65e5\u5fd7\u76ee\u5f55\n# \u547d\u4ee4\u5c06\u6570\u636e\u76ee\u5f55\u548c\u65e5\u5fd7\u76ee\u5f55\u6302\u8f7d\u5230\u4e86\u5bbf\u4e3b\u673a\u7684/root/tugraph/\u4e0a\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u3002\n"})}),"\n",(0,l.jsxs)(e.ol,{start:"5",children:["\n",(0,l.jsx)(e.li,{children:"\u524d\u7aef\u8bbf\u95ee"}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["\u8bbf\u95eetugraph-db-browser: ",(0,l.jsx)(e.code,{children:"http://x.x.x.x:7070"}),"\uff0c\u6570\u636e\u5e93\u5730\u5740\u683c\u5f0f\u4e3a ",(0,l.jsx)(e.code,{children:"bolt://ip:bolt_port"}),"\uff08\u8001\u7248\u672c\u4e0d\u7528\u586b\uff09\uff0c\u9ed8\u8ba4\u7528\u6237\u540d\u4e3a ",(0,l.jsx)(e.code,{children:"admin"}),"\uff0c\u5bc6\u7801\u4e3a ",(0,l.jsx)(e.code,{children:"73@TuGraph"}),"\u3002\n\u9996\u6b21\u767b\u5f55\u4f1a\u9ed8\u8ba4\u8df3\u8f6c\u4fee\u6539\u5bc6\u7801\u9875\u9762\uff0c\u8bf7\u5c3d\u5feb\u4fee\u6539\u9ed8\u8ba4\u5bc6\u7801\u907f\u514d\u5b89\u5168\u98ce\u9669\u3002"]}),"\n",(0,l.jsx)(e.h3,{id:"22\u65b0\u65e7\u524d\u7aef\u8bf4\u660e",children:"2.2.\u65b0\u65e7\u524d\u7aef\u8bf4\u660e"}),"\n",(0,l.jsxs)(e.p,{children:['\u8fdb\u5165\u5bb9\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539\u914d\u7f6e\u6587\u4ef6"/usr/local/etc/lgraph.json"\u4e2d\u7684"web"\u53c2\u6570\u6765\u9009\u62e9\u4f7f\u7528\u8001\u7248\u672c\u6216\u65b0\u7248\u672c\u7684\u524d\u7aef\u3002\u5bf9\u4e8e\u8001\u7248\u672c\uff0c\u53ef\u4ee5\u5c06"web"\u7684\u503c\u8bbe\u4e3a"/usr/local/share/lgraph/resource"\uff1b\u5bf9\u4e8e\u65b0\u7248\u672c\uff0c\u53ef\u4ee5\u5c06"web"\u7684\u503c\u8bbe\u4e3a"/usr/local/share/lgraph/browser-resource"\u3002\u5b8c\u6210\u914d\u7f6e\u6587\u4ef6\u7684\u4fee\u6539\u540e\uff0c\u8bf7\u6267\u884c\u547d\u4ee4 ',(0,l.jsx)(e.code,{children:"docker restart tugraph"})," \u4ee5\u4f7f\u66f4\u6539\u751f\u6548\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u65b0\u7248\u672c\u662f\u9ed8\u8ba4\u9009\u9879\u3002"]})]})}function o(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>d,x:()=>h});var l=r(6540);const t={},s=l.createContext(t);function d(n){const e=l.useContext(s);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function h(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:d(n.components),l.createElement(s.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c75d82b.472a4844.js b/assets/js/7c75d82b.472a4844.js
new file mode 100644
index 0000000000..1c3c98ee53
--- /dev/null
+++ b/assets/js/7c75d82b.472a4844.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8153],{7042:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>_,toc:()=>l});var o=t(4848),i=t(8453);const r={},s="Corporate Contributor License Agreement",_={id:"contributor-manual/corporate-cla",title:"Corporate Contributor License Agreement",description:"AntGroupOpenSourceCorporateCLAEnglishChinese2021",source:"@site/../docs/en-US/source/12.contributor-manual/4.corporate-cla.md",sourceDirName:"12.contributor-manual",slug:"/contributor-manual/corporate-cla",permalink:"/tugraph-db/en/contributor-manual/corporate-cla",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Individual Contributor License Agreement",permalink:"/tugraph-db/en/contributor-manual/individual-cla"},next:{title:"TuGraph Roadmap",permalink:"/tugraph-db/en/contributor-manual/roadmap"}},a={},l=[];function c(e){const n={h1:"h1",header:"header",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"corporate-contributor-license-agreement",children:"Corporate Contributor License Agreement"})}),"\n",(0,o.jsx)(n.p,{children:"Ant_Group_Open_Source_Corporate_CLA_English_Chinese_2021"}),"\n",(0,o.jsx)(n.p,{children:"Ant Group"}),"\n",(0,o.jsx)(n.p,{children:"Corporate Contributor License Agreement"}),"\n",(0,o.jsx)(n.p,{children:"\u8682\u8681\u96c6\u56e2"}),"\n",(0,o.jsx)(n.p,{children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"}),"\n",(0,o.jsx)(n.p,{children:'Thank you for your interest in contributing documentation and related software code to a project hosted or managed by Ant Group, or any of its affiliates. In order to clarify the intellectual property license granted with Contributions from any person or entity, Ant Group must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This version of the Contributor License Agreement allows a legal entity (the "Corporation") to submit Contributions to the applicable project. If you are an individual making a submission on your own behalf, then you should sign the separation Individual Contributor License Agreement.'}),"\n",(0,o.jsx)(n.p,{children:"\u611f\u8c22\u60a8\u5bf9\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4efb\u4f55\u5173\u8054\u65b9\u4e3b\u529e\u6216\u7ba1\u7406\u7684\u9879\u76ee\u8d21\u732e\u6587\u6863\u548c\u76f8\u5173\u8f6f\u4ef6\u4ee3\u7801\u7684\u5174\u8da3\u3002\u4e3a\u5398\u6e05\u5c31\u4e2a\u4eba\u6216\u5b9e\u4f53\u8d21\u732e\u5185\u5bb9\u800c\u6388\u4e88\u7684\u77e5\u8bc6\u4ea7\u6743\u8bb8\u53ef\uff0c\u8682\u8681\u96c6\u56e2\u5fc5\u987b\u5bf9\u6bcf\u4f4d\u8d21\u732e\u8005\u7b7e\u7f72\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\uff08\u201cCLA\u201d\uff09\u8fdb\u884c\u5f52\u6863\uff0c\u4ee5\u8bc1\u660e\u5c31\u4ee5\u4e0b\u8bb8\u53ef\u6761\u4ef6\u8fbe\u6210\u7684\u4e00\u81f4\u3002\u6b64\u7248\u672c\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u5141\u8bb8\u6cd5\u4eba\u5b9e\u4f53\uff08\u201c\u516c\u53f8\u201d\uff09\u5411\u76f8\u5e94\u9879\u76ee\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002\u5982\u679c\u60a8\u662f\u4ee5\u81ea\u8eab\u540d\u4e49\u8fdb\u884c\u63d0\u4ea4\u7684\u4e2a\u4eba\uff0c\u60a8\u5e94\u5f53\u53e6\u884c\u7b7e\u7f72\u4e00\u4efd\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u3002"}),"\n",(0,o.jsx)(n.p,{children:"You accept and agree to the following terms and conditions for Your present and future Contributions submitted to Ant Group. Except for the license granted herein to Ant Group and recipients of documentation and software distributed by Ant Group, You reserve all right, title, and interest in and to Your Contributions."}),"\n",(0,o.jsx)(n.p,{children:"\u5c31\u60a8\u76ee\u524d\u548c\u5c06\u6765\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u60a8\u63a5\u53d7\u5e76\u540c\u610f\u4ee5\u4e0b\u6761\u6b3e\u548c\u6761\u4ef6\u3002\u9664\u4e86\u6839\u636e\u672c\u534f\u8bae\u5411\u8682\u8681\u96c6\u56e2\u548c\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6388\u4e88\u7684\u8bb8\u53ef\uff0c\u60a8\u5bf9\u4e8e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fdd\u7559\u6240\u6709\u6743\u5229\u3001\u6240\u6709\u6743\u548c\u5229\u76ca\u3002"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Definitions."}),"\n",(0,o.jsx)(n.li,{children:"\u5b9a\u4e49\u3002"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:'"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Ant Group. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u60a8\u201d\uff08\u6216\u201c\u60a8\u7684\u201d\uff09\u7cfb\u6307\u4e0e\u8682\u8681\u96c6\u56e2\u7b7e\u7f72\u672c\u534f\u8bae\u7684\u8457\u4f5c\u6743\u4eba\u6216\u7ecf\u8457\u4f5c\u6743\u4eba\u6388\u6743\u7684\u6cd5\u5f8b\u5b9e\u4f53\u3002\u5bf9\u4e8e\u6cd5\u5f8b\u5b9e\u4f53\u800c\u8a00\uff0c\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u5b9e\u4f53\u4ee5\u53ca\u5176\u4ed6\u4efb\u4f55\u63a7\u5236\u8be5\u5b9e\u4f53\u3001\u53d7\u5176\u63a7\u5236\u6216\u4e0e\u5176\u53d7\u5230\u540c\u4e00\u4e3b\u4f53\u63a7\u5236\u7684\u5b9e\u4f53\u88ab\u89c6\u4e3a\u5355\u4e2a\u8d21\u732e\u8005\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63a7\u5236\u201d \u7cfb\u6307\uff08i\uff09\u901a\u8fc7\u5408\u540c\u6216\u5176\u4ed6\u65b9\u5f0f\uff0c\u76f4\u63a5\u6216\u95f4\u63a5\u5bf9\u8be5\u5b9e\u4f53\u8fdb\u884c\u6307\u5bfc\u548c\u7ba1\u7406\u7684\u6743\u529b\uff0c\uff08ii\uff09\u6301\u6709\u8be5\u5b9e\u4f53\u767e\u5206\u4e4b\u4e94\u5341\uff0850%\uff09\u6216\u66f4\u591a\u7684\u5df2\u53d1\u884c\u80a1\u4efd\uff0c\u6216\uff08iii\uff09\u95f4\u63a5\u6301\u6709\u8be5\u5b9e\u4f53\u6743\u76ca\u3002"}),"\n",(0,o.jsx)(n.p,{children:'"Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to Ant Group for inclusion in, or documentation of, any of the products or projects owned or managed by Ant Group (the "Work"), including without limitation any Work described in Schedule B. For the purposes of this definition, "submitted" means any form of electronic or written communication sent to Ant Group or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Ant Group for the purpose of discussing and improving the Work.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u8d21\u732e\u5185\u5bb9\u201d\u7cfb\u6307\u7531\u60a8\u6709\u610f\u5730\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u4ee5\u4fbf\u88ab\u5305\u542b\u6216\u8bb0\u8f7d\u5728\u4efb\u4f55\u8682\u8681\u96c6\u56e2\u62e5\u6709\u6216\u7ba1\u7406\u7684\u4ea7\u54c1\u6216\u9879\u76ee\uff08\u201c\u4f5c\u54c1\u201d\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4efb\u4f55\u5728\u9644\u5f55B\u4e2d\u5217\u4e3e\u7684\u4f5c\u54c1\uff09\u4e2d\u7684\u4efb\u4f55\u539f\u521b\u4f5c\u54c1\uff0c\u5305\u62ec\u5bf9\u65e2\u5b58\u4f5c\u54c1\u7684\u4efb\u4f55\u4fee\u6539\u548c\u589e\u52a0\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63d0\u4ea4\u201d\u7cfb\u6307\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4ee3\u8868\u8fdb\u884c\u7684\u4efb\u4f55\u5f62\u5f0f\u7684\u7535\u5b50\u6216\u4e66\u9762\u4ea4\u6d41\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u8ba8\u8bba\u548c\u6539\u5584\u4f5c\u54c1\u4e3a\u76ee\u7684\uff0c\u901a\u8fc7\u8682\u8681\u96c6\u56e2\u7ba1\u7406\u7684\uff08\u6216\u4ee5\u8682\u8681\u96c6\u56e2\u540d\u4e49\u7ba1\u7406\u7684\uff09\u7535\u5b50\u90ae\u4ef6\u5217\u8868\u3001\u6e90\u4ee3\u7801\u63a7\u5236\u7cfb\u7edf\u548c\u95ee\u9898\u8ddf\u8e2a\u7cfb\u7edf\u8fdb\u884c\u7684\u4ea4\u6d41\u3002"}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u8457\u4f5c\u6743\u8bb8\u53ef\u7684\u6388\u4e88\u3002\u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\u7684\u8457\u4f5c\u6743\u8bb8\u53ef\uff0c\u4ee5\u590d\u5236\u3001\u884d\u751f\u3001\u516c\u5f00\u5c55\u793a\u3001\u516c\u5f00\u6267\u884c\u3001\u8f6c\u6388\u6743\u548c\u53d1\u5e03\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u548c\u8be5\u7b49\u884d\u751f\u4f5c\u54c1\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e13\u5229\u8bb8\u53ef\u7684\u6388\u4e88\u3002 \u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\uff08\u672c\u8282\u89c4\u5b9a\u7684\u60c5\u5f62\u9664\u5916\uff09\u7684\u4e13\u5229\u8bb8\u53ef\uff0c\u4ee5\u5f00\u53d1\u3001\u5229\u7528\u3001\u8981\u7ea6\u51fa\u552e\u3001\u51fa\u552e\u3001\u5bfc\u5165\u6216\u4ee5\u5176\u4ed6\u65b9\u5f0f\u8f6c\u8ba9\u4f5c\u54c1\uff0c\u4f46\u8be5\u8bb8\u53ef\u4ec5\u9002\u7528\u4e8e\u60a8\u6709\u6743\u8bb8\u53ef\u7684\uff0c\u4e14\u5fc5\u7136\u4f1a\u88ab\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fb5\u6743\uff08\u8d21\u732e\u5185\u5bb9\u5355\u72ec\u6784\u6210\u4fb5\u6743\u3001\u6216\u4e0e\u8d21\u732e\u5185\u5bb9\u7684\u76f8\u5173\u4f5c\u54c1\u4e00\u540c\u6784\u6210\u4fb5\u6743\uff09\u7684\u4e13\u5229\u7533\u8bf7\u8303\u56f4\u3002\u5982\u679c\u4efb\u4f55\u5b9e\u4f53\u9488\u5bf9\u60a8\u6216\u5176\u4ed6\u5b9e\u4f53\u63d0\u8d77\u4e13\u5229\u8bc9\u8bbc\uff08\u5305\u62ec\u8bc9\u8bbc\u4e2d\u7684\u4ea4\u53c9\u8bf7\u6c42\u6216\u53cd\u8bc9\uff09\uff0c\u4e3b\u5f20\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff08\u6216\u60a8\u53c2\u4e0e\u8d21\u732e\u7684\u4f5c\u54c1\uff09\u9020\u6210\u4e86\u76f4\u63a5\u6027\u6216\u8f85\u52a9\u6027\u7684\u4e13\u5229\u4fb5\u6743\uff0c\u5219\u4efb\u4f55\u6839\u636e\u672c\u534f\u8bae\u9488\u5bf9\u8be5\u8d21\u732e\u5185\u5bb9\u6216\u4f5c\u54c1\u6388\u4e88\u8be5\u5b9e\u4f53\u7684\u4e13\u5229\u8bb8\u53ef\u5e94\u5f53\u5728\u8d77\u8bc9\u4e4b\u65e5\u7ec8\u6b62\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that you are legally entitled to grant the above license. You represent further that each employee of the Corporation designated on Schedule A below (or in a subsequent written modification to that Schedule) is authorized to submit Contributions on behalf of the Corporation."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u4f9d\u6cd5\u6709\u6743\u6388\u4e88\u4e0a\u8ff0\u8bb8\u53ef\u3002\u60a8\u8fdb\u4e00\u6b65\u4fdd\u8bc1\u4e0b\u6587\u9644\u8868A\uff08\u8be5\u9644\u8868\u53ef\u901a\u8fc7\u4e66\u9762\u65b9\u5f0f\u8fdb\u884c\u540e\u7eed\u66f4\u6539\uff09\u6240\u6307\u5b9a\u7684\u4efb\u610f\u516c\u53f8\u5458\u5de5\u5747\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u6240\u6709\u7684\u8d21\u732e\u5185\u5bb9\u5747\u4e3a\u60a8\u7684\u539f\u521b\u4f5c\u54c1\uff08\u5173\u4e8e\u4e3a\u4ed6\u4eba\u63d0\u4ea4\u4f5c\u54c1\u7684\u89c4\u5b9a\uff0c\u53ef\u53c2\u89c1\u7b2c7\u8282\uff09\u3002\u60a8\u4fdd\u8bc1\u60a8\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\u5305\u62ec\u4efb\u4f55\u7b2c\u4e09\u65b9\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u6216\u5546\u6807\uff09\u7684\u5168\u90e8\u7ec6\u8282\uff0c\u53ea\u8981\u8be5\u7b49\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\u4e3a\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u4e14\u4e0e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u7684\u4efb\u4f55\u90e8\u5206\u76f8\u5173\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5728\u60a8\u81ea\u613f\u63d0\u4f9b\u652f\u6301\u7684\u8303\u56f4\u4e4b\u5916\uff0c\u60a8\u65e0\u9700\u5bf9\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u63d0\u4f9b\u652f\u6301\u3002\u60a8\u53ef\u4ee5\u63d0\u4f9b\u514d\u8d39\u652f\u6301\u6216\u6536\u8d39\u652f\u6301\uff0c\u4e5f\u53ef\u4ee5\u5b8c\u5168\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u9664\u975e\u9002\u7528\u6cd5\u5f8b\u53e6\u6709\u89c4\u5b9a\u6216\u53e6\u6709\u4e66\u9762\u7ea6\u5b9a\uff0c\u60a8\u201c\u6309\u7167\u73b0\u72b6\u201d\u63d0\u4f9b\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u800c\u4e0d\u5bf9\u5176\u63d0\u4f9b\u4efb\u4f55\u7c7b\u578b\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\uff0c\u65e0\u8bba\u660e\u793a\u8fd8\u662f\u9ed8\u793a\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u4efb\u4f55\u7279\u5b9a\u76ee\u7684\u5bf9\u6240\u6709\u6743\u3001\u65e0\u4fb5\u6743\u3001\u9002\u9500\u6027\u6216\u9002\u5f53\u6027\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'Should You wish to submit work that is not Your original creation, You may submit it to Ant Group separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5982\u679c\u60a8\u5e0c\u671b\u63d0\u4ea4\u5e76\u975e\u60a8\u539f\u521b\u7684\u4f5c\u54c1\uff0c\u60a8\u53ef\u4ee5\u5728\u4efb\u4f55\u8d21\u732e\u5185\u5bb9\u4e4b\u5916\u5355\u72ec\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u6807\u6ce8\u5173\u4e8e\u5176\u6765\u6e90\u548c\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u7684\u4efb\u4f55\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u3001\u5546\u6807\u548c\u8bb8\u53ef\u534f\u8bae\uff09\u7684\u5b8c\u6574\u4fe1\u606f\uff0c\u5e76\u4ee5\u663e\u8457\u65b9\u5f0f\u6807\u660e\u8be5\u4f5c\u54c1\u5c5e\u4e8e\u201c\u4ee5\u7b2c\u4e09\u65b9\u540d\u4e49\u63d0\u4ea4\uff1a\u3010\u586b\u5199\u59d3\u540d\u3011\u201d\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You agree to notify Ant Group of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u540c\u610f\u5728\u60a8\u83b7\u6089\u4efb\u4f55\u53ef\u80fd\u5bfc\u81f4\u4e0a\u8ff0\u4fdd\u8bc1\u5728\u4efb\u4f55\u65b9\u9762\u4e0d\u51c6\u786e\u7684\u4e8b\u5b9e\u6216\u60c5\u51b5\u4e4b\u65f6\u901a\u77e5\u8682\u8681\u96c6\u56e2\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"This Agreement will be governed by and construed in accordance with the laws of the People's Republic of China excluding that body of laws known as conflict of laws. The parties expressly agree that the United Nations Convention on Contracts for the International Sale of Goods will not apply. Any legal action or proceeding arising under this Agreement will be brought exclusively in the courts located in Hangzhou, China, and the parties hereby irrevocably consent to the personal jurisdiction and venue therein."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u672c\u534f\u8bae\u53d7\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u6cd5\u5f8b\u7ba1\u8f96\uff0c\u5e76\u4f9d\u636e\u5176\u8fdb\u884c\u89e3\u91ca\uff0c\u4f46\u51b2\u7a81\u6cd5\u89c4\u5219\u9664\u5916\u3002\u534f\u8bae\u5404\u65b9\u660e\u786e\u540c\u610f\u6392\u9664\u300a\u8054\u5408\u56fd\u56fd\u9645\u8d27\u7269\u9500\u552e\u5408\u540c\u516c\u7ea6\u300b\u7684\u9002\u7528\u3002\u4efb\u4f55\u7531\u672c\u534f\u8bae\u4ea7\u751f\u7684\u6cd5\u5f8b\u8bc9\u8bbc\u6216\u7a0b\u5e8f\u5747\u5e94\u6392\u4ed6\u6027\u5730\u63d0\u4ea4\u81f3\u4e2d\u56fd\u676d\u5dde\u7684\u6cd5\u9662\u8fdb\u884c\u5ba1\u7406\uff0c\u4e14\u5404\u65b9\u5728\u6b64\u4e0d\u53ef\u64a4\u9500\u5730\u540c\u610f\u8be5\u7b49\u5173\u4e8e\u5c5e\u4eba\u7ba1\u8f96\u548c\u6cd5\u9662\u5730\u7684\u5b89\u6392\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"For your reading convenience, this Agreement is written in parallel English and Chinese sections. To the extent there is a conflict between the English and Chinese sections, the English sections shall govern."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e3a\u4e86\u60a8\u7684\u9605\u8bfb\u65b9\u4fbf\uff0c\u672c\u534f\u8bae\u540c\u65f6\u63d0\u4f9b\u4e86\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u3002\u5982\u679c\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u6709\u77db\u76fe\uff0c\u5219\u4ee5\u82f1\u6587\u6bb5\u843d\u4e3a\u51c6\u3002"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Please sign\u8bf7\u7b7e\u7f72: __________________________________ Date\u65e5\u671f: ____________"}),"\n",(0,o.jsx)(n.p,{children:"Company Name\u516c\u53f8\u540d\u79f0: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Full name\u5168\u540d: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Title\u804c\u52a1: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Mailing Address\u4fe1\u4ef6\u5730\u5740: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Country\u56fd\u5bb6: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Telephone\u7535\u8bdd: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"E-Mail\u7535\u5b50\u90ae\u7bb1: ______________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Schedule A\u9644\u5f55A:"}),"\n",(0,o.jsx)(n.p,{children:"Please provide an initial list of designated employees authorized to submit Contributions on behalf of the Corporation:"}),"\n",(0,o.jsx)(n.p,{children:"\u8bf7\u63d0\u4f9b\u4e00\u4efd\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u6307\u5b9a\u5458\u5de5\u7684\u521d\u59cb\u540d\u5355\uff1a"}),"\n",(0,o.jsx)(n.p,{children:"Schedule B \u9644\u5f55B:"}),"\n",(0,o.jsx)(n.p,{children:"Description of Initial Contribution:"}),"\n",(0,o.jsx)(n.p,{children:"\u63cf\u8ff0\u521d\u59cb\u8d21\u732e\u5185\u5bb9\uff1a"})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>_});var o=t(6540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function _(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7c75d82b.f76ef59f.js b/assets/js/7c75d82b.f76ef59f.js
deleted file mode 100644
index 4aa8ec5fc2..0000000000
--- a/assets/js/7c75d82b.f76ef59f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8153],{7276:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>_,toc:()=>l});var o=t(4848),i=t(8453);const r={},s="Corporate Contributor License Agreement",_={id:"en-US/source/contributor-manual/corporate-cla",title:"Corporate Contributor License Agreement",description:"AntGroupOpenSourceCorporateCLAEnglishChinese2021",source:"@site/../docs/en-US/source/12.contributor-manual/4.corporate-cla.md",sourceDirName:"en-US/source/12.contributor-manual",slug:"/en-US/source/contributor-manual/corporate-cla",permalink:"/tugraph-db/en-US/source/contributor-manual/corporate-cla",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Individual Contributor License Agreement",permalink:"/tugraph-db/en-US/source/contributor-manual/individual-cla"},next:{title:"TuGraph Roadmap",permalink:"/tugraph-db/en-US/source/contributor-manual/roadmap"}},a={},l=[];function c(e){const n={h1:"h1",header:"header",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"corporate-contributor-license-agreement",children:"Corporate Contributor License Agreement"})}),"\n",(0,o.jsx)(n.p,{children:"Ant_Group_Open_Source_Corporate_CLA_English_Chinese_2021"}),"\n",(0,o.jsx)(n.p,{children:"Ant Group"}),"\n",(0,o.jsx)(n.p,{children:"Corporate Contributor License Agreement"}),"\n",(0,o.jsx)(n.p,{children:"\u8682\u8681\u96c6\u56e2"}),"\n",(0,o.jsx)(n.p,{children:"\u516c\u53f8\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae"}),"\n",(0,o.jsx)(n.p,{children:'Thank you for your interest in contributing documentation and related software code to a project hosted or managed by Ant Group, or any of its affiliates. In order to clarify the intellectual property license granted with Contributions from any person or entity, Ant Group must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This version of the Contributor License Agreement allows a legal entity (the "Corporation") to submit Contributions to the applicable project. If you are an individual making a submission on your own behalf, then you should sign the separation Individual Contributor License Agreement.'}),"\n",(0,o.jsx)(n.p,{children:"\u611f\u8c22\u60a8\u5bf9\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4efb\u4f55\u5173\u8054\u65b9\u4e3b\u529e\u6216\u7ba1\u7406\u7684\u9879\u76ee\u8d21\u732e\u6587\u6863\u548c\u76f8\u5173\u8f6f\u4ef6\u4ee3\u7801\u7684\u5174\u8da3\u3002\u4e3a\u5398\u6e05\u5c31\u4e2a\u4eba\u6216\u5b9e\u4f53\u8d21\u732e\u5185\u5bb9\u800c\u6388\u4e88\u7684\u77e5\u8bc6\u4ea7\u6743\u8bb8\u53ef\uff0c\u8682\u8681\u96c6\u56e2\u5fc5\u987b\u5bf9\u6bcf\u4f4d\u8d21\u732e\u8005\u7b7e\u7f72\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\uff08\u201cCLA\u201d\uff09\u8fdb\u884c\u5f52\u6863\uff0c\u4ee5\u8bc1\u660e\u5c31\u4ee5\u4e0b\u8bb8\u53ef\u6761\u4ef6\u8fbe\u6210\u7684\u4e00\u81f4\u3002\u6b64\u7248\u672c\u7684\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u5141\u8bb8\u6cd5\u4eba\u5b9e\u4f53\uff08\u201c\u516c\u53f8\u201d\uff09\u5411\u76f8\u5e94\u9879\u76ee\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002\u5982\u679c\u60a8\u662f\u4ee5\u81ea\u8eab\u540d\u4e49\u8fdb\u884c\u63d0\u4ea4\u7684\u4e2a\u4eba\uff0c\u60a8\u5e94\u5f53\u53e6\u884c\u7b7e\u7f72\u4e00\u4efd\u4e2a\u4eba\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u3002"}),"\n",(0,o.jsx)(n.p,{children:"You accept and agree to the following terms and conditions for Your present and future Contributions submitted to Ant Group. Except for the license granted herein to Ant Group and recipients of documentation and software distributed by Ant Group, You reserve all right, title, and interest in and to Your Contributions."}),"\n",(0,o.jsx)(n.p,{children:"\u5c31\u60a8\u76ee\u524d\u548c\u5c06\u6765\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u60a8\u63a5\u53d7\u5e76\u540c\u610f\u4ee5\u4e0b\u6761\u6b3e\u548c\u6761\u4ef6\u3002\u9664\u4e86\u6839\u636e\u672c\u534f\u8bae\u5411\u8682\u8681\u96c6\u56e2\u548c\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6388\u4e88\u7684\u8bb8\u53ef\uff0c\u60a8\u5bf9\u4e8e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fdd\u7559\u6240\u6709\u6743\u5229\u3001\u6240\u6709\u6743\u548c\u5229\u76ca\u3002"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Definitions."}),"\n",(0,o.jsx)(n.li,{children:"\u5b9a\u4e49\u3002"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:'"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Ant Group. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u60a8\u201d\uff08\u6216\u201c\u60a8\u7684\u201d\uff09\u7cfb\u6307\u4e0e\u8682\u8681\u96c6\u56e2\u7b7e\u7f72\u672c\u534f\u8bae\u7684\u8457\u4f5c\u6743\u4eba\u6216\u7ecf\u8457\u4f5c\u6743\u4eba\u6388\u6743\u7684\u6cd5\u5f8b\u5b9e\u4f53\u3002\u5bf9\u4e8e\u6cd5\u5f8b\u5b9e\u4f53\u800c\u8a00\uff0c\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u5b9e\u4f53\u4ee5\u53ca\u5176\u4ed6\u4efb\u4f55\u63a7\u5236\u8be5\u5b9e\u4f53\u3001\u53d7\u5176\u63a7\u5236\u6216\u4e0e\u5176\u53d7\u5230\u540c\u4e00\u4e3b\u4f53\u63a7\u5236\u7684\u5b9e\u4f53\u88ab\u89c6\u4e3a\u5355\u4e2a\u8d21\u732e\u8005\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63a7\u5236\u201d \u7cfb\u6307\uff08i\uff09\u901a\u8fc7\u5408\u540c\u6216\u5176\u4ed6\u65b9\u5f0f\uff0c\u76f4\u63a5\u6216\u95f4\u63a5\u5bf9\u8be5\u5b9e\u4f53\u8fdb\u884c\u6307\u5bfc\u548c\u7ba1\u7406\u7684\u6743\u529b\uff0c\uff08ii\uff09\u6301\u6709\u8be5\u5b9e\u4f53\u767e\u5206\u4e4b\u4e94\u5341\uff0850%\uff09\u6216\u66f4\u591a\u7684\u5df2\u53d1\u884c\u80a1\u4efd\uff0c\u6216\uff08iii\uff09\u95f4\u63a5\u6301\u6709\u8be5\u5b9e\u4f53\u6743\u76ca\u3002"}),"\n",(0,o.jsx)(n.p,{children:'"Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to Ant Group for inclusion in, or documentation of, any of the products or projects owned or managed by Ant Group (the "Work"), including without limitation any Work described in Schedule B. For the purposes of this definition, "submitted" means any form of electronic or written communication sent to Ant Group or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Ant Group for the purpose of discussing and improving the Work.'}),"\n",(0,o.jsx)(n.p,{children:"\u201c\u8d21\u732e\u5185\u5bb9\u201d\u7cfb\u6307\u7531\u60a8\u6709\u610f\u5730\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u4ee5\u4fbf\u88ab\u5305\u542b\u6216\u8bb0\u8f7d\u5728\u4efb\u4f55\u8682\u8681\u96c6\u56e2\u62e5\u6709\u6216\u7ba1\u7406\u7684\u4ea7\u54c1\u6216\u9879\u76ee\uff08\u201c\u4f5c\u54c1\u201d\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4efb\u4f55\u5728\u9644\u5f55B\u4e2d\u5217\u4e3e\u7684\u4f5c\u54c1\uff09\u4e2d\u7684\u4efb\u4f55\u539f\u521b\u4f5c\u54c1\uff0c\u5305\u62ec\u5bf9\u65e2\u5b58\u4f5c\u54c1\u7684\u4efb\u4f55\u4fee\u6539\u548c\u589e\u52a0\u3002\u4e3a\u672c\u5b9a\u4e49\u4e4b\u76ee\u7684\uff0c\u201c\u63d0\u4ea4\u201d\u7cfb\u6307\u5411\u8682\u8681\u96c6\u56e2\u6216\u5176\u4ee3\u8868\u8fdb\u884c\u7684\u4efb\u4f55\u5f62\u5f0f\u7684\u7535\u5b50\u6216\u4e66\u9762\u4ea4\u6d41\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u8ba8\u8bba\u548c\u6539\u5584\u4f5c\u54c1\u4e3a\u76ee\u7684\uff0c\u901a\u8fc7\u8682\u8681\u96c6\u56e2\u7ba1\u7406\u7684\uff08\u6216\u4ee5\u8682\u8681\u96c6\u56e2\u540d\u4e49\u7ba1\u7406\u7684\uff09\u7535\u5b50\u90ae\u4ef6\u5217\u8868\u3001\u6e90\u4ee3\u7801\u63a7\u5236\u7cfb\u7edf\u548c\u95ee\u9898\u8ddf\u8e2a\u7cfb\u7edf\u8fdb\u884c\u7684\u4ea4\u6d41\u3002"}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u8457\u4f5c\u6743\u8bb8\u53ef\u7684\u6388\u4e88\u3002\u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\u7684\u8457\u4f5c\u6743\u8bb8\u53ef\uff0c\u4ee5\u590d\u5236\u3001\u884d\u751f\u3001\u516c\u5f00\u5c55\u793a\u3001\u516c\u5f00\u6267\u884c\u3001\u8f6c\u6388\u6743\u548c\u53d1\u5e03\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u548c\u8be5\u7b49\u884d\u751f\u4f5c\u54c1\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to Ant Group and to recipients of documentation and software distributed by Ant Group a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e13\u5229\u8bb8\u53ef\u7684\u6388\u4e88\u3002 \u53d7\u9650\u4e8e\u672c\u534f\u8bae\u7684\u6761\u6b3e\u548c\u6761\u4ef6\uff0c\u60a8\u5728\u6b64\u6388\u4e88\u8682\u8681\u96c6\u56e2\u4ee5\u53ca\u8682\u8681\u96c6\u56e2\u53d1\u5e03\u6587\u6863\u548c\u8f6f\u4ef6\u7684\u63a5\u6536\u65b9\u6c38\u4e45\u6027\u7684\u3001\u5168\u7403\u8303\u56f4\u5185\u7684\u3001\u975e\u6392\u4ed6\u7684\u3001\u5b8c\u5168\u65e0\u987b\u8bb8\u53ef\u8d39\u7684\u3001\u5b8c\u5168\u65e0\u987b\u7248\u6743\u8d39\u7684\u548c\u4e0d\u53ef\u64a4\u9500\uff08\u672c\u8282\u89c4\u5b9a\u7684\u60c5\u5f62\u9664\u5916\uff09\u7684\u4e13\u5229\u8bb8\u53ef\uff0c\u4ee5\u5f00\u53d1\u3001\u5229\u7528\u3001\u8981\u7ea6\u51fa\u552e\u3001\u51fa\u552e\u3001\u5bfc\u5165\u6216\u4ee5\u5176\u4ed6\u65b9\u5f0f\u8f6c\u8ba9\u4f5c\u54c1\uff0c\u4f46\u8be5\u8bb8\u53ef\u4ec5\u9002\u7528\u4e8e\u60a8\u6709\u6743\u8bb8\u53ef\u7684\uff0c\u4e14\u5fc5\u7136\u4f1a\u88ab\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u4fb5\u6743\uff08\u8d21\u732e\u5185\u5bb9\u5355\u72ec\u6784\u6210\u4fb5\u6743\u3001\u6216\u4e0e\u8d21\u732e\u5185\u5bb9\u7684\u76f8\u5173\u4f5c\u54c1\u4e00\u540c\u6784\u6210\u4fb5\u6743\uff09\u7684\u4e13\u5229\u7533\u8bf7\u8303\u56f4\u3002\u5982\u679c\u4efb\u4f55\u5b9e\u4f53\u9488\u5bf9\u60a8\u6216\u5176\u4ed6\u5b9e\u4f53\u63d0\u8d77\u4e13\u5229\u8bc9\u8bbc\uff08\u5305\u62ec\u8bc9\u8bbc\u4e2d\u7684\u4ea4\u53c9\u8bf7\u6c42\u6216\u53cd\u8bc9\uff09\uff0c\u4e3b\u5f20\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff08\u6216\u60a8\u53c2\u4e0e\u8d21\u732e\u7684\u4f5c\u54c1\uff09\u9020\u6210\u4e86\u76f4\u63a5\u6027\u6216\u8f85\u52a9\u6027\u7684\u4e13\u5229\u4fb5\u6743\uff0c\u5219\u4efb\u4f55\u6839\u636e\u672c\u534f\u8bae\u9488\u5bf9\u8be5\u8d21\u732e\u5185\u5bb9\u6216\u4f5c\u54c1\u6388\u4e88\u8be5\u5b9e\u4f53\u7684\u4e13\u5229\u8bb8\u53ef\u5e94\u5f53\u5728\u8d77\u8bc9\u4e4b\u65e5\u7ec8\u6b62\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that you are legally entitled to grant the above license. You represent further that each employee of the Corporation designated on Schedule A below (or in a subsequent written modification to that Schedule) is authorized to submit Contributions on behalf of the Corporation."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u4f9d\u6cd5\u6709\u6743\u6388\u4e88\u4e0a\u8ff0\u8bb8\u53ef\u3002\u60a8\u8fdb\u4e00\u6b65\u4fdd\u8bc1\u4e0b\u6587\u9644\u8868A\uff08\u8be5\u9644\u8868\u53ef\u901a\u8fc7\u4e66\u9762\u65b9\u5f0f\u8fdb\u884c\u540e\u7eed\u66f4\u6539\uff09\u6240\u6307\u5b9a\u7684\u4efb\u610f\u516c\u53f8\u5458\u5de5\u5747\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u4fdd\u8bc1\u60a8\u6240\u6709\u7684\u8d21\u732e\u5185\u5bb9\u5747\u4e3a\u60a8\u7684\u539f\u521b\u4f5c\u54c1\uff08\u5173\u4e8e\u4e3a\u4ed6\u4eba\u63d0\u4ea4\u4f5c\u54c1\u7684\u89c4\u5b9a\uff0c\u53ef\u53c2\u89c1\u7b2c7\u8282\uff09\u3002\u60a8\u4fdd\u8bc1\u60a8\u63d0\u4ea4\u7684\u8d21\u732e\u5185\u5bb9\u5305\u62ec\u4efb\u4f55\u7b2c\u4e09\u65b9\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u6216\u5546\u6807\uff09\u7684\u5168\u90e8\u7ec6\u8282\uff0c\u53ea\u8981\u8be5\u7b49\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\u4e3a\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u4e14\u4e0e\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u7684\u4efb\u4f55\u90e8\u5206\u76f8\u5173\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5728\u60a8\u81ea\u613f\u63d0\u4f9b\u652f\u6301\u7684\u8303\u56f4\u4e4b\u5916\uff0c\u60a8\u65e0\u9700\u5bf9\u60a8\u7684\u8d21\u732e\u5185\u5bb9\u63d0\u4f9b\u652f\u6301\u3002\u60a8\u53ef\u4ee5\u63d0\u4f9b\u514d\u8d39\u652f\u6301\u6216\u6536\u8d39\u652f\u6301\uff0c\u4e5f\u53ef\u4ee5\u5b8c\u5168\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u9664\u975e\u9002\u7528\u6cd5\u5f8b\u53e6\u6709\u89c4\u5b9a\u6216\u53e6\u6709\u4e66\u9762\u7ea6\u5b9a\uff0c\u60a8\u201c\u6309\u7167\u73b0\u72b6\u201d\u63d0\u4f9b\u60a8\u7684\u8d21\u732e\u5185\u5bb9\uff0c\u800c\u4e0d\u5bf9\u5176\u63d0\u4f9b\u4efb\u4f55\u7c7b\u578b\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\uff0c\u65e0\u8bba\u660e\u793a\u8fd8\u662f\u9ed8\u793a\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4e3a\u4efb\u4f55\u7279\u5b9a\u76ee\u7684\u5bf9\u6240\u6709\u6743\u3001\u65e0\u4fb5\u6743\u3001\u9002\u9500\u6027\u6216\u9002\u5f53\u6027\u7684\u4fdd\u8bc1\u6216\u6761\u4ef6\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:'Should You wish to submit work that is not Your original creation, You may submit it to Ant Group separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u5982\u679c\u60a8\u5e0c\u671b\u63d0\u4ea4\u5e76\u975e\u60a8\u539f\u521b\u7684\u4f5c\u54c1\uff0c\u60a8\u53ef\u4ee5\u5728\u4efb\u4f55\u8d21\u732e\u5185\u5bb9\u4e4b\u5916\u5355\u72ec\u5411\u8682\u8681\u96c6\u56e2\u63d0\u4ea4\uff0c\u6807\u6ce8\u5173\u4e8e\u5176\u6765\u6e90\u548c\u60a8\u4e2a\u4eba\u6240\u77e5\u6089\u7684\u4efb\u4f55\u8bb8\u53ef\u6216\u5176\u4ed6\u9650\u5236\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u76f8\u5173\u4e13\u5229\u3001\u5546\u6807\u548c\u8bb8\u53ef\u534f\u8bae\uff09\u7684\u5b8c\u6574\u4fe1\u606f\uff0c\u5e76\u4ee5\u663e\u8457\u65b9\u5f0f\u6807\u660e\u8be5\u4f5c\u54c1\u5c5e\u4e8e\u201c\u4ee5\u7b2c\u4e09\u65b9\u540d\u4e49\u63d0\u4ea4\uff1a\u3010\u586b\u5199\u59d3\u540d\u3011\u201d\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"You agree to notify Ant Group of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u60a8\u540c\u610f\u5728\u60a8\u83b7\u6089\u4efb\u4f55\u53ef\u80fd\u5bfc\u81f4\u4e0a\u8ff0\u4fdd\u8bc1\u5728\u4efb\u4f55\u65b9\u9762\u4e0d\u51c6\u786e\u7684\u4e8b\u5b9e\u6216\u60c5\u51b5\u4e4b\u65f6\u901a\u77e5\u8682\u8681\u96c6\u56e2\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"This Agreement will be governed by and construed in accordance with the laws of the People's Republic of China excluding that body of laws known as conflict of laws. The parties expressly agree that the United Nations Convention on Contracts for the International Sale of Goods will not apply. Any legal action or proceeding arising under this Agreement will be brought exclusively in the courts located in Hangzhou, China, and the parties hereby irrevocably consent to the personal jurisdiction and venue therein."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u672c\u534f\u8bae\u53d7\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u6cd5\u5f8b\u7ba1\u8f96\uff0c\u5e76\u4f9d\u636e\u5176\u8fdb\u884c\u89e3\u91ca\uff0c\u4f46\u51b2\u7a81\u6cd5\u89c4\u5219\u9664\u5916\u3002\u534f\u8bae\u5404\u65b9\u660e\u786e\u540c\u610f\u6392\u9664\u300a\u8054\u5408\u56fd\u56fd\u9645\u8d27\u7269\u9500\u552e\u5408\u540c\u516c\u7ea6\u300b\u7684\u9002\u7528\u3002\u4efb\u4f55\u7531\u672c\u534f\u8bae\u4ea7\u751f\u7684\u6cd5\u5f8b\u8bc9\u8bbc\u6216\u7a0b\u5e8f\u5747\u5e94\u6392\u4ed6\u6027\u5730\u63d0\u4ea4\u81f3\u4e2d\u56fd\u676d\u5dde\u7684\u6cd5\u9662\u8fdb\u884c\u5ba1\u7406\uff0c\u4e14\u5404\u65b9\u5728\u6b64\u4e0d\u53ef\u64a4\u9500\u5730\u540c\u610f\u8be5\u7b49\u5173\u4e8e\u5c5e\u4eba\u7ba1\u8f96\u548c\u6cd5\u9662\u5730\u7684\u5b89\u6392\u3002"}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"For your reading convenience, this Agreement is written in parallel English and Chinese sections. To the extent there is a conflict between the English and Chinese sections, the English sections shall govern."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"\u4e3a\u4e86\u60a8\u7684\u9605\u8bfb\u65b9\u4fbf\uff0c\u672c\u534f\u8bae\u540c\u65f6\u63d0\u4f9b\u4e86\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u3002\u5982\u679c\u82f1\u6587\u548c\u4e2d\u6587\u6bb5\u843d\u6709\u77db\u76fe\uff0c\u5219\u4ee5\u82f1\u6587\u6bb5\u843d\u4e3a\u51c6\u3002"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Please sign\u8bf7\u7b7e\u7f72: __________________________________ Date\u65e5\u671f: ____________"}),"\n",(0,o.jsx)(n.p,{children:"Company Name\u516c\u53f8\u540d\u79f0: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Full name\u5168\u540d: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Title\u804c\u52a1: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Mailing Address\u4fe1\u4ef6\u5730\u5740: ________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Country\u56fd\u5bb6: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Telephone\u7535\u8bdd: _____________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"E-Mail\u7535\u5b50\u90ae\u7bb1: ______________________________________________________"}),"\n",(0,o.jsx)(n.p,{children:"Schedule A\u9644\u5f55A:"}),"\n",(0,o.jsx)(n.p,{children:"Please provide an initial list of designated employees authorized to submit Contributions on behalf of the Corporation:"}),"\n",(0,o.jsx)(n.p,{children:"\u8bf7\u63d0\u4f9b\u4e00\u4efd\u6709\u6743\u4ee5\u516c\u53f8\u540d\u4e49\u63d0\u4ea4\u8d21\u732e\u5185\u5bb9\u7684\u6307\u5b9a\u5458\u5de5\u7684\u521d\u59cb\u540d\u5355\uff1a"}),"\n",(0,o.jsx)(n.p,{children:"Schedule B \u9644\u5f55B:"}),"\n",(0,o.jsx)(n.p,{children:"Description of Initial Contribution:"}),"\n",(0,o.jsx)(n.p,{children:"\u63cf\u8ff0\u521d\u59cb\u8d21\u732e\u5185\u5bb9\uff1a"})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>_});var o=t(6540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function _(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7ca1a5df.3683e3f1.js b/assets/js/7ca1a5df.3683e3f1.js
new file mode 100644
index 0000000000..3ad8f7e1cf
--- /dev/null
+++ b/assets/js/7ca1a5df.3683e3f1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9583],{4268:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=r(4848),a=r(8453);const o={},s="Traversal API",i={id:"olap&procedure/procedure/traversal",title:"Traversal API",description:"This document mainly explains the Traversal API in the stored procedure of TuGraph.",source:"@site/../docs/en-US/source/9.olap&procedure/1.procedure/2.traversal.md",sourceDirName:"9.olap&procedure/1.procedure",slug:"/olap&procedure/procedure/traversal",permalink:"/tugraph-db/en/olap&procedure/procedure/traversal",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Stored Procedure Guide",permalink:"/tugraph-db/en/olap&procedure/procedure/"},next:{title:"Rust Stored Procedures",permalink:"/tugraph-db/en/olap&procedure/procedure/Rust-procedure"}},l={},d=[{value:"2. Interface",id:"2-interface",level:2},{value:"2.1. Snapshot",id:"21-snapshot",level:3},{value:"2.2. Traversal",id:"22-traversal",level:3}];function c(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"traversal-api",children:"Traversal API"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly explains the Traversal API in the stored procedure of TuGraph."}),"\n"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Introduction\nThe powerful online analytical processing (OLAP) capability of TuGraph is an important feature that sets it apart from other graph databases. With the help of the C++ OLAP API (olap_on_db.h), users can quickly export a subgraph that needs to be analyzed, and then run iterative graph computing processes such as PageRank, connected components, and community detection on it, and then make corresponding decisions based on the results. The export and computation processes can be accelerated through parallel processing, achieving almost real-time analysis and processing, and avoiding the lengthy steps of traditional solutions that require exporting, transforming, and reimporting (ETL) data into dedicated analytical systems for offline processing."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"TuGraph has built-in many commonly used graph analysis algorithms and rich auxiliary interfaces, so users hardly need to implement specific graph computing processes themselves. They just need to include the header files (.h files) of the corresponding algorithm library in their own programs when implementing their own storage procedures, and link the corresponding dynamic library files (.so) during compilation. In general, the only process that users need to implement themselves is the extraction of the subgraph to be analyzed."}),"\n",(0,n.jsx)(t.p,{children:"Currently, the Traversal API only supports C++."}),"\n",(0,n.jsx)(t.h2,{id:"2-interface",children:"2. Interface"}),"\n",(0,n.jsx)(t.h3,{id:"21-snapshot",children:"2.1. Snapshot"}),"\n",(0,n.jsx)(t.p,{children:"The Snapshot template class in C++ OLAP API is used to represent extracted static subgraphs. The EdgeData is used to represent the data type of the weight used for each edge in the subgraph. If the edges do not require weights, Empty is used as the EdgeData."}),"\n",(0,n.jsx)(t.p,{children:"The extracted subgraph can be described using the constructor of the Snapshot class."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"Snapshot::Snapshot(\n GraphDB & db,\n Transaction & txn,\n size_t flags = 0,\n std::function vertex_filter = nullptr,\n std::function out_edge_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'In the above text, "db" represents the database handle, "txn" represents the transaction handle, and "flags" represents the options used during generation, with the optional values including the following combinations: SNAPSHOT_PARALLEL indicates that multiple threads are used for parallel extraction during export; SNAPSHOT_UNDIRECTED indicates that the exported graph needs to be transformed into an undirected graph.'}),"\n",(0,n.jsx)(t.p,{children:'"vertex_filter" is a user-defined filtering function for vertices, where a return value of true indicates that the vertex needs to be included in the extracted subgraph, and vice versa.'}),"\n",(0,n.jsx)(t.p,{children:'"out_edge_filter" is a user-defined filtering function for edges, where a return value of true indicates that the edge needs to be included in the extracted subgraph, and vice versa.'}),"\n",(0,n.jsx)(t.p,{children:"When the filtering functions are set to default values, it means that all vertices/edges should be included."}),"\n",(0,n.jsx)(t.p,{children:"For other methods provided by the Snapshot class, please refer to the detailed C++ API documentation (olap_on_db.h)."}),"\n",(0,n.jsx)(t.h3,{id:"22-traversal",children:"2.2. Traversal"}),"\n",(0,n.jsx)(t.p,{children:"A common type of analysis in graph databases is to start from one or more vertices and iteratively expand and access their neighbors. Although this type of analysis can be done using Cypher, its performance is limited by the serial interpretation and execution when the depth of traversal is large. Writing stored procedures using the C++ Core API eliminates the overhead of interpretation but is still limited by the processing power of a single thread."}),"\n",(0,n.jsx)(t.p,{children:"In order to enable users to accelerate these types of analysis tasks through parallel processing, we have wrapped a Traversal framework based on the C++ OLAP API. Users can directly use the FrontierTraversal and PathTraversal classes in this framework to perform iterative traversal analysis tasks. For specific usage instructions, please refer to the corresponding C++ API documentation (lgraph_traversal.h)."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"ParallelVector FindVertices(\n GraphDB & db,\n Transaction & txn,\n std::function filter,\n bool parallel = false\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'This method can be used to find all vertices that satisfy a certain condition (when the filter returns true). When the "parallel" parameter is set to true, the search process will be executed in parallel.'}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"template \nParallelVector ExtractVertexData(\n GraphDB & db,\n Transaction & txn,\n ParallelVector & frontier,\n std::function extract,\n bool parallel = false\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'This method can be used to extract (VertexData type) properties from a specified set of vertices (frontier) using the extract method. When the "parallel" parameter is set to true, the extraction process will be executed in parallel.'}),"\n",(0,n.jsx)(t.p,{children:"FrontierTraversal is suitable for cases where only the traversed set of vertices is of interest. When a user needs to access information along the path (vertices/edges along the path) in the traversal process or result, PathTraversal needs to be used. Both types of traversal have four parameters in their constructor, namely the database handle db, transaction handle txn, options flags and capacity. The available options include the following combinations: TRAVERSAL_PARALLEL indicates that multiple threads are used for parallel traversal; TRAVERSAL_ALLOW_REVISITS indicates that vertices can be visited repeatedly during traversal (PathTraversal implicitly includes this option).\ncapacity indicates the capacity of the path collection during initialization."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void SetFrontier(size_t root_vid);\nvoid SetFrontier(ParallelVector & root_vids);\nvoid SetFrontier(std::function root_vertex_filter);\n"})}),"\n",(0,n.jsx)(t.p,{children:"Both types of traversal have three ways to set the starting vertex/vertex set for traversal. The first two methods directly specify the vertex ID, while the last method is similar to FindVertices."}),"\n",(0,n.jsx)(t.p,{children:"Both types of traversal start from the set of vertices in the current layer. They use the extension function to access each outgoing edge/incoming edge/outgoing and incoming edges, and use a user-defined filter function to determine if the extension is successful. If successful, the neighboring vertex/appended path with the edge is added to the set of vertices/paths in the next layer."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void ExpandOutEdges(\n std::function out_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr\n);\nvoid ExpandInEdges(\n std::function in_edge_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\nvoid ExpandEdges(\n std::function out_edge_filter = nullptr,\n std::function in_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:"The above describes the three traversal methods of FrontierTraversal. It starts from the current set of vertices and, for each vertex in the set, iterates through each outgoing edge/incoming edge/outgoing and incoming edges. If the edge or neighbor vertex satisfies the user-defined filter conditions (where edge_filter is the filter function for edges and neighbour_filter is the filter function for neighbor vertices), the neighbor vertex is added to the new set of vertices."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"ParallelVector & GetFrontier();\n"})}),"\n",(0,n.jsx)(t.p,{children:"After the expansion of the current set of vertices is finished, the new set of vertices can be obtained using the above method."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void ExpandOutEdges(\n std::function out_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr\n);\nvoid ExpandInEdges(\n std::function in_edge_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\nvoid ExpandEdges(\n std::function out_edge_filter = nullptr,\n std::function in_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:"The three traversal methods of PathTraversal are similar to FrontierTraversal, except that the user-defined filter function adds two additional parameters: Path, which contains the path before the new edge is expanded, and IteratorHelper, which can be used to convert the vertices/edges in the path to corresponding iterators in the database. The relevant documentation can be found in the corresponding C++ API documentation."})]})}function h(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>i});var n=r(6540);const a={},o=n.createContext(a);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7ca1a5df.8e317600.js b/assets/js/7ca1a5df.8e317600.js
deleted file mode 100644
index 2c0002638b..0000000000
--- a/assets/js/7ca1a5df.8e317600.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9583],{7322:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=r(4848),a=r(8453);const o={},s="Traversal API",i={id:"en-US/source/olap&procedure/procedure/traversal",title:"Traversal API",description:"This document mainly explains the Traversal API in the stored procedure of TuGraph.",source:"@site/../docs/en-US/source/9.olap&procedure/1.procedure/2.traversal.md",sourceDirName:"en-US/source/9.olap&procedure/1.procedure",slug:"/en-US/source/olap&procedure/procedure/traversal",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/traversal",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph Stored Procedure Guide",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/"},next:{title:"Rust Stored Procedures",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/Rust-procedure"}},l={},d=[{value:"2. Interface",id:"2-interface",level:2},{value:"2.1. Snapshot",id:"21-snapshot",level:3},{value:"2.2. Traversal",id:"22-traversal",level:3}];function c(e){const t={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"traversal-api",children:"Traversal API"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"This document mainly explains the Traversal API in the stored procedure of TuGraph."}),"\n"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Introduction\nThe powerful online analytical processing (OLAP) capability of TuGraph is an important feature that sets it apart from other graph databases. With the help of the C++ OLAP API (olap_on_db.h), users can quickly export a subgraph that needs to be analyzed, and then run iterative graph computing processes such as PageRank, connected components, and community detection on it, and then make corresponding decisions based on the results. The export and computation processes can be accelerated through parallel processing, achieving almost real-time analysis and processing, and avoiding the lengthy steps of traditional solutions that require exporting, transforming, and reimporting (ETL) data into dedicated analytical systems for offline processing."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"TuGraph has built-in many commonly used graph analysis algorithms and rich auxiliary interfaces, so users hardly need to implement specific graph computing processes themselves. They just need to include the header files (.h files) of the corresponding algorithm library in their own programs when implementing their own storage procedures, and link the corresponding dynamic library files (.so) during compilation. In general, the only process that users need to implement themselves is the extraction of the subgraph to be analyzed."}),"\n",(0,n.jsx)(t.p,{children:"Currently, the Traversal API only supports C++."}),"\n",(0,n.jsx)(t.h2,{id:"2-interface",children:"2. Interface"}),"\n",(0,n.jsx)(t.h3,{id:"21-snapshot",children:"2.1. Snapshot"}),"\n",(0,n.jsx)(t.p,{children:"The Snapshot template class in C++ OLAP API is used to represent extracted static subgraphs. The EdgeData is used to represent the data type of the weight used for each edge in the subgraph. If the edges do not require weights, Empty is used as the EdgeData."}),"\n",(0,n.jsx)(t.p,{children:"The extracted subgraph can be described using the constructor of the Snapshot class."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"Snapshot::Snapshot(\n GraphDB & db,\n Transaction & txn,\n size_t flags = 0,\n std::function vertex_filter = nullptr,\n std::function out_edge_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'In the above text, "db" represents the database handle, "txn" represents the transaction handle, and "flags" represents the options used during generation, with the optional values including the following combinations: SNAPSHOT_PARALLEL indicates that multiple threads are used for parallel extraction during export; SNAPSHOT_UNDIRECTED indicates that the exported graph needs to be transformed into an undirected graph.'}),"\n",(0,n.jsx)(t.p,{children:'"vertex_filter" is a user-defined filtering function for vertices, where a return value of true indicates that the vertex needs to be included in the extracted subgraph, and vice versa.'}),"\n",(0,n.jsx)(t.p,{children:'"out_edge_filter" is a user-defined filtering function for edges, where a return value of true indicates that the edge needs to be included in the extracted subgraph, and vice versa.'}),"\n",(0,n.jsx)(t.p,{children:"When the filtering functions are set to default values, it means that all vertices/edges should be included."}),"\n",(0,n.jsx)(t.p,{children:"For other methods provided by the Snapshot class, please refer to the detailed C++ API documentation (olap_on_db.h)."}),"\n",(0,n.jsx)(t.h3,{id:"22-traversal",children:"2.2. Traversal"}),"\n",(0,n.jsx)(t.p,{children:"A common type of analysis in graph databases is to start from one or more vertices and iteratively expand and access their neighbors. Although this type of analysis can be done using Cypher, its performance is limited by the serial interpretation and execution when the depth of traversal is large. Writing stored procedures using the C++ Core API eliminates the overhead of interpretation but is still limited by the processing power of a single thread."}),"\n",(0,n.jsx)(t.p,{children:"In order to enable users to accelerate these types of analysis tasks through parallel processing, we have wrapped a Traversal framework based on the C++ OLAP API. Users can directly use the FrontierTraversal and PathTraversal classes in this framework to perform iterative traversal analysis tasks. For specific usage instructions, please refer to the corresponding C++ API documentation (lgraph_traversal.h)."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"ParallelVector FindVertices(\n GraphDB & db,\n Transaction & txn,\n std::function filter,\n bool parallel = false\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'This method can be used to find all vertices that satisfy a certain condition (when the filter returns true). When the "parallel" parameter is set to true, the search process will be executed in parallel.'}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"template \nParallelVector ExtractVertexData(\n GraphDB & db,\n Transaction & txn,\n ParallelVector & frontier,\n std::function extract,\n bool parallel = false\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:'This method can be used to extract (VertexData type) properties from a specified set of vertices (frontier) using the extract method. When the "parallel" parameter is set to true, the extraction process will be executed in parallel.'}),"\n",(0,n.jsx)(t.p,{children:"FrontierTraversal is suitable for cases where only the traversed set of vertices is of interest. When a user needs to access information along the path (vertices/edges along the path) in the traversal process or result, PathTraversal needs to be used. Both types of traversal have four parameters in their constructor, namely the database handle db, transaction handle txn, options flags and capacity. The available options include the following combinations: TRAVERSAL_PARALLEL indicates that multiple threads are used for parallel traversal; TRAVERSAL_ALLOW_REVISITS indicates that vertices can be visited repeatedly during traversal (PathTraversal implicitly includes this option).\ncapacity indicates the capacity of the path collection during initialization."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void SetFrontier(size_t root_vid);\nvoid SetFrontier(ParallelVector & root_vids);\nvoid SetFrontier(std::function root_vertex_filter);\n"})}),"\n",(0,n.jsx)(t.p,{children:"Both types of traversal have three ways to set the starting vertex/vertex set for traversal. The first two methods directly specify the vertex ID, while the last method is similar to FindVertices."}),"\n",(0,n.jsx)(t.p,{children:"Both types of traversal start from the set of vertices in the current layer. They use the extension function to access each outgoing edge/incoming edge/outgoing and incoming edges, and use a user-defined filter function to determine if the extension is successful. If successful, the neighboring vertex/appended path with the edge is added to the set of vertices/paths in the next layer."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void ExpandOutEdges(\n std::function out_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr\n);\nvoid ExpandInEdges(\n std::function in_edge_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\nvoid ExpandEdges(\n std::function out_edge_filter = nullptr,\n std::function in_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:"The above describes the three traversal methods of FrontierTraversal. It starts from the current set of vertices and, for each vertex in the set, iterates through each outgoing edge/incoming edge/outgoing and incoming edges. If the edge or neighbor vertex satisfies the user-defined filter conditions (where edge_filter is the filter function for edges and neighbour_filter is the filter function for neighbor vertices), the neighbor vertex is added to the new set of vertices."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"ParallelVector & GetFrontier();\n"})}),"\n",(0,n.jsx)(t.p,{children:"After the expansion of the current set of vertices is finished, the new set of vertices can be obtained using the above method."}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-c",children:"void ExpandOutEdges(\n std::function out_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr\n);\nvoid ExpandInEdges(\n std::function in_edge_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\nvoid ExpandEdges(\n std::function out_edge_filter = nullptr,\n std::function in_edge_filter = nullptr,\n std::function out_neighbour_filter = nullptr,\n std::function in_neighbour_filter = nullptr\n);\n"})}),"\n",(0,n.jsx)(t.p,{children:"The three traversal methods of PathTraversal are similar to FrontierTraversal, except that the user-defined filter function adds two additional parameters: Path, which contains the path before the new edge is expanded, and IteratorHelper, which can be used to convert the vertices/edges in the path to corresponding iterators in the database. The relevant documentation can be found in the corresponding C++ API documentation."})]})}function h(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>i});var n=r(6540);const a={},o=n.createContext(a);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7d21d01b.7aba89c6.js b/assets/js/7d21d01b.7aba89c6.js
deleted file mode 100644
index bb0d44a2ff..0000000000
--- a/assets/js/7d21d01b.7aba89c6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9660],{4256:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=t(4848),r=t(8453);const s={},a="Python Olap API",o={id:"en-US/source/olap&procedure/olap/python-api",title:"Python Olap API",description:"This document mainly introduces the API usage of OlapBase OlapOnDB and OlapOnDisk in Python",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/5.python-api.md",sourceDirName:"en-US/source/9.olap&procedure/2.olap",slug:"/en-US/source/olap&procedure/olap/python-api",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/python-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDisk API",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/olap-on-disk-api"},next:{title:"TuGraph Built-in Algorithm Description",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/algorithms"}},l={},c=[{value:"Table of contents",id:"table-of-contents",level:2},{value:"1 Overview",id:"1-overview",level:2},{value:"2. Configuration requirements",id:"2-configuration-requirements",level:2},{value:"3. Cython",id:"3-cython",level:2},{value:"4. Olap API",id:"4-olap-api",level:2},{value:"Atomic operations",id:"atomic-operations",level:3},{value:"Vertex collection class ParallelBitset",id:"vertex-collection-class-parallelbitset",level:3},{value:"Vertex array class ParallelVector",id:"vertex-array-class-parallelvector",level:3},{value:"Custom Data Structure",id:"custom-data-structure",level:3},{value:"Graph class OlapBase",id:"graph-class-olapbase",level:3},{value:"Graph class OlapOnDB:",id:"graph-class-olapondb",level:3},{value:"Graph class OlapOnDisk",id:"graph-class-olapondisk",level:3},{value:"ConfigBase:",id:"configbase",level:4},{value:"5. lgraph_db API",id:"5-lgraph_db-api",level:2},{value:"VertexIndexIterator",id:"vertexindexiterator",level:3},{value:"Galaxy",id:"galaxy",level:3},{value:"GraphDB:",id:"graphdb",level:3},{value:"Transaction:",id:"transaction",level:3},{value:"PyGalaxy:",id:"pygalaxy",level:3},{value:"PyGraphDB:",id:"pygraphdb",level:3},{value:"6. Algorithm plug-in example",id:"6-algorithm-plug-in-example",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"python-olap-api",children:"Python Olap API"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the API usage of OlapBase OlapOnDB and OlapOnDisk in Python"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"table-of-contents",children:"Table of contents"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#1-overview",children:"1.Overview"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#2-configuration-requirements",children:"2.Configuration Requirements"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#3-cython",children:"3.Cython"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#4-olap-api",children:"4.Olap API"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#atomic-operations",children:"4.1. Atomic operations"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#vertex-collection-class-parallelbitset",children:"4.2. Vertex collection class ParallelBitset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#vertex-array-class-parallelvector",children:"4.3. Vertex array class ParallelVector"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#custom-data-structure",children:"4.4. Custom data structure"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapbase",children:"4.5.Graph class OlapBase"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapondb",children:"4.6. Graph Class OlapOnDB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapondisk",children:"4.7.Graph class OlapOnDisk"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#5-lgraph_db-api",children:"5.lgraph DB API"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#6-algorithm-plug-in-example",children:"6.Algorithm plugin example"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-overview",children:"1 Overview"}),"\n",(0,i.jsx)(n.p,{children:"This manual will introduce the simple configuration required to use the Python interface of the TuGraph graph computing system, and explain the TuGraph Python API in conjunction with the code. For details about the functions of class ParallelBitset, OlapBase, etc., see olap-base-api.md, olap-on-db-api.md and olap-on-disk-api.md."}),"\n",(0,i.jsx)(n.h2,{id:"2-configuration-requirements",children:"2. Configuration requirements"}),"\n",(0,i.jsx)(n.p,{children:"If you want to use TuGraph to write and compile your own applications, the required configuration requirements are:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Linux operating system, currently running successfully on Ubuntu16.04.2 and Centos7 systems."}),"\n",(0,i.jsx)(n.li,{children:"A compiler that supports C++17 requires GCC version 5.4.1 or later."}),"\n",(0,i.jsx)(n.li,{children:"Cython, version 3.0a1 or above is required, and the tested version is 3.0.0a11"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"3-cython",children:"3. Cython"}),"\n",(0,i.jsx)(n.p,{children:"Cython is an efficient programming language that is a superset of Python. Cython can translate .py files into C/C++ codes and compile them into Python extension modules, which can be called through import in Python. In TuGraph, all Python procedures are compiled into Python extension modules by Cython and then used."}),"\n",(0,i.jsx)(n.p,{children:"The main advantage of using Cython is that it combines the simplicity and ease of use of Python with the performance of C/C++. The TuGraph Python interface is implemented using Cython."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://cython.readthedocs.io/en/latest/index.html",children:"Cython Documentation"})}),"\n",(0,i.jsx)(n.h2,{id:"4-olap-api",children:"4. Olap API"}),"\n",(0,i.jsxs)(n.p,{children:["The Olap API is used for graph computing and is implemented in C++. The usage and functions are basically the same as the C++ interface. To use the API in a Python file, the interfaces declared in procedures/algo_cython/olap_base.pxd must be imported using ",(0,i.jsx)(n.code,{children:"cython.cimports.olap_base import *"}),". The Python file can only be run after being compiled by Cython."]}),"\n",(0,i.jsx)(n.h3,{id:"atomic-operations",children:"Atomic operations"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"cas[T](ptr: cython.pointer(T), oldv: T, newv: T)-> cython.bint"}),": If the value pointed to by ptr is equal to oldv, assign the value pointed to by ptr to newv and return True, otherwise return False."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_min[T](a: cython.pointer(T), b: T)->cython.bint"}),": If b is smaller than the value pointed to by a, then assign the value pointed to by a to b and return true, otherwise return false."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_max[T](a: cython.pointer(T), b: T)->cython.bint"}),": If b is greater than the value pointed to by a, then assign the value pointed to by a to b and return true, otherwise return false."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_add[T](a: cython.pointer(T), b: T)->cython.bint"}),": Add the value of b to the value pointed to by a."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_sub[T](a: cython.pointer(T), b: T)->cython.bint"}),": Subtract the value pointed to by a from the value of b."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"vertex-collection-class-parallelbitset",children:"Vertex collection class ParallelBitset"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Size() -> size_t"}),": Indicates the number of vertices in the Bitmap."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ParallelBitset(size: size_t)"}),": Initializes size and data, where the length of data is (size >> 6) + 1."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Clear() -> cython.void"}),": Empties the collection."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Fill() -> cython.void"}),": Adds all vertices to the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Has(i: size_t) -> cython.bint"}),": Checks if vertex i is in the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Add(i: size_t) -> cython.bint"}),": Adds vertex i to the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Swap(other: ParallelBitset) -> cython.void"}),": Exchanges elements with another ParallelBitset set."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"vertex-array-class-parallelvector",children:"Vertex array class ParallelVector"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ParallelVector[T](size_t capacity)"}),": Constructs a ParallelVector, where capacity is the initial capacity of the vertex array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"operator[](i: size_t) -> T"}),": Returns the data at index i."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"begin() -> cython.pointer(T)"}),": Returns the start pointer of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"end() -> cython.pointer(T)"}),": Returns the end pointer of ParallelVector. The usage of begin() and end() is similar to the begin and end pointers of the vector container, and these two pointers can be used to sequentially access the array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Back() -> T"}),": Returns the last data of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Data() -> cython.pointer(T)"}),": Indicates the data of the array itself."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Destroy() -> cython.void"}),": Clears the data in the ParallelVector array and deletes the array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Size() -> size_t"}),": Indicates the number of data in ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Resize(size: size_t) -> cython.void"}),": Changes ParallelVector to size, which should be greater than or equal to the size before the change and less than capacity."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Clear() -> cython.void"}),": Clears the data in ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ReAlloc(capacity: size_t) -> cython.void"}),": Allocates a new capacity size to ParallelVector. If the array has data, it migrates the data to the new memory."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Fill(elem: T) -> cython.void"}),": Assigns elem to all data of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Append(elem: T, atomic: cython.bint = true) -> cython.void"}),": Adds a data to the end of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Swap(other: ParallelVector[T]) -> cython.void"}),": Exchanges data with another ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Copy() -> ParallelVector[T]"}),": Copies the current ParallelVector data and stores it in the copy array."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"custom-data-structure",children:"Custom Data Structure"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Empty"}),": A special data type whose content is empty."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"EdgeUnit[EdgeData]"}),": Indicates the edge whose weight type is EdgeData, used to parse the input file, including three member variables:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"src: size_t"}),": starting vertex of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"dst: size_t"}),": end of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_data: EdgeData"}),": edge weight"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"AdjUnit[EdgeData]"}),": indicates the edge whose weight type is EdgeData, which is used in the batch calculation process and contains two member variables:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"neighbor: size_t"}),": neighbor vertex of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_data: EdgeData"}),": edge weight"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"AdjList[EdgeData]"}),": The adjacency list of vertices whose weight type is EdgeData, often used to represent the set of incoming and outgoing edges of vertices, including three member functions:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"begin()->cython.pointer(AdjUnit[T])"}),": the starting pointer of the list"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"end()->cython.pointer(AdjUnit[T])"}),": the end pointer of the list"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"operator[](i: size_t)-> AdjUnit[EdgeData]"}),": the data whose subscript is i"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapbase",children:"Graph class OlapBase"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"NumVertices()->size_t"}),": get the number of vertices"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"NumEdges()-> size_t"}),": get the number of edges"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"OutDegree(vid: size_t)-> size_t"}),": out-degree of vertex vid"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"InDegree(vid: size_t)->size_t"}),": in-degree of the vertex vid"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AllocVertexArray[VertexData]() ->ParallelVector[VertexData]"}),": Allocates an array of type VertexData with size as the number of vertices"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AllocVertexSubset()-> ParallelBitset"}),": Assigns a subset of ParallelBitsets to denote whether the state of all vertices is activated"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"OutEdges(vid: size_t)-> AdjList[EdgeData]"}),": Get the list of all outgoing edges of vertex v"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"InEdges(vid: size_t)-> AdjList[EdgeData]"}),": Get the list of all incoming edges of vertex v"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Transpose()->cython.void"}),": transpose of a directed graph"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"LoadFromArray(edge_array: cython.p_char, input_vertices: size_t, input_edges: size_t, edge_direction_policy: EdgeDirectionPolicy)"}),": Loads the graph data from the array, contains four parameters, the meaning of which are respectively:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"edge_array"})," : reads the data from the array into the graph. Normally, the array contains multiple edges."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"input_vertices"}),": specifies the number of vertices read into the graph by the array."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"input_edges"})," : specifies the number of edges that the array reads into the image."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"edge_direction_policy"})," : indicates that the graph is directed or undirected. The graph can be divided into three modes: DUAL_DIRECTION, MAKE_SYMMETRIC, and INPUT_SYMMETRIC. For details, see 'enum EdgeDirectionPolicy' in the config.h file in the core folder."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AcquireVertexLock(vid: size_t)-> cython.void"}),": locks a vertex vid and prohibits other threads from accessing the vertex data corresponding to this lock"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void ReleaseVertexLock(vid: size_t)-> cython.void"}),": unlocks the vertex vid and all threads can access the vertex data corresponding to the lock"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"TuGraph provides two batch operations to perform point-centric batch processing in parallel, which is slightly different from C++ in Python."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Function name: ProcessVertexInRange[ReducedSum, Algorithm](\n# work: (algo: Algorithm, vi: size_t)-> ReducedSum,\n# lower: size_t, upper: size_t,\n# algo: Algorithm,\n# zero: ReducedSum = 0,\n# reduce: (a: ReducedSum, b: ReducedSum)-> ReducedSum = reduce_plus[ReducedSum])\n#\n# Function purpose: Executes the work function on nodes whose node numbers are between lower and upper in the Graph. The fourth parameter indicates the base of accumulation, which is 0 by default.\n# The fifth parameter indicates that the iterative reduce function operation is performed on the node return value after each work process, and the default is the accumulation operation.\n# For specific implementation, please refer to the specific code in include/lgraph/olap_base.h\n#\n# Example usage: Count the number of vertices with edges in the parent array.\n\nimport cython\nfrom cython.cimports.olap_base import *\n\n\n@cython.cclass\nclass CountCore:\n graph: cython.pointer(OlapBase[Empty])\n parent: ParallelVector[size_t]\n\n @cython.cfunc\n @cython.nogil\n def Work(self, vi: size_t) -> size_t:\n if self.graph.OutDegree(self.parent[vi]) > 0:\n return 1\n return 0\n\n def run(self, pointer_g: cython.pointer(OlapBase[Empty])):\n self.graph = pointer_g\n self.parent = self.graph.AllocVertexArray[size_t]()\n vertex_num: size_t\n vertex_num = self.graph.ProcessVertexInRange[size_t, CountCore](self.Work, 0, self.parent.Size(), self)\n print("the number is", vertex_num)\n\nif __name__ == "__main__":\n count_core = CountCore()\n count_core.run(cython.address(g))\n'})}),"\n",(0,i.jsx)(n.p,{children:"g is the instantiated object of graph class OlapBase"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Function name: ProcessVertexActive[ReducedSum, Algorithm](\n# work: (algo: Algorithm, vi: size_t)-> ReducedSum,\n# active: ParallelBitset,\n# algo: Algorithm,\n# zero: ReducedSum = 0,\n# reduce: (a: ReducedSum, b: ReducedSum)-> ReducedSum = reduce_plus[ReducedSum])\n#\n# Function purpose: Execute the work function on the nodes corresponding to 1 in the active_vertices bitset. The third parameter indicates the base of accumulation, which is 0 by default;\n# The fourth parameter indicates that the iterative reduce function operation is performed on the node return value after each work process, and the default is the accumulation operation.\n# For specific implementation, please refer to the specific code in /include/lgraph/olap_base.h\n#\n# Usage example: Output all out-degree neighbors of nodes 1, 2, and 3 in the Graph, and count the total out-degree of these three nodes.\n\nimport cython\nfrom cython.cimports.olap_base import *\nfrom cython.cimports.libc.stdio import printf\n\n\n@cython.cclass\nclass NeighborCore:\n graph: cython.pointer(OlapBase[Empty])\n active_in: ParallelBitset\n\n @cython.cfunc\n @cython.nogil\n def Work(self, vi: size_t) -> size_t:\n degree = self. graph. OutDegree(vi)\n dst: size_t\n edges = self. graph. OutEdges(vi)\n local_out_degree: size_t\n for i in range(degree):\n dst = edges[i].neighbor\n printf("node %lu has neighbor %lu\\n", vi, dst)\n local_out_degree += 1\n return local_out_degree\n\n def run(self, pointer_g: cython.pointer(OlapBase[Empty])):\n self.graph = pointer_g\n self.active_in = self.graph.AllocVertexSubset()\n self. active_in. Add(1)\n self. active_in. Add(2)\n self. active_in. Add(3)\n total_outdegree = cython.declare(\n size_t,\n self.graph.ProcessVertexActive[size_t, CountCore](self.Work, self.active_in, self))\n printf("total outdegree of node1,2,3 is %lu\\n",total_outdegree)\n\nif __name__ == "__main__":\n neighbor_core = NeighborCore()\n neighbor_core.run(cython.address(g))\n'})}),"\n",(0,i.jsx)(n.p,{children:"As shown in the above two examples, ProcessVertexActive and ProcessVertexInRange in Python require an additional algorithm class pointer parameter compared to their C++ counterparts. The Work function is generally used as a member function of the algorithm class to access member variables, such as in the graph and ParallelVector parent examples shown above. When calling the batch function, the Work function and the self pointer of the algorithm class are passed to the batch function."}),"\n",(0,i.jsxs)(n.p,{children:["The Work function will be called in multiple threads, so the @cython.nogil decorator is added to release the Python global interpretation lock. In code executed by multiple threads, such as the Work function in the batch function, variables are better declared as C/C++ types using ",(0,i.jsx)(n.code,{children:"dst: type"})," or ",(0,i.jsx)(n.code,{children:"dst = cython.declare(type)"}),". This is because Python objects cannot be used in multi-threaded code."]}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapondb",children:"Graph class OlapOnDB:"}),"\n",(0,i.jsx)(n.p,{children:"Parallelize to create a directed graph:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Parallelize to create an undirected graph"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL | SNAPSHOT_UNDIRECTED)\n"})}),"\n",(0,i.jsx)(n.p,{children:"ID_MAPPING creates a directed graph"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL | SNAPSHOT_IDMAPPING)\n"})}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapondisk",children:"Graph class OlapOnDisk"}),"\n",(0,i.jsx)(n.h4,{id:"configbase",children:"ConfigBase:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ConfigBase()"}),": Constructor"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::string input_dir"}),": graph edge table data path"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::string output_dir"}),": output path"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Load(config: ConfigBase[EdgeData], edge_direction_policy: EdgeDirectionPolicy)-> void"}),": read in graph data"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"5-lgraph_db-api",children:"5. lgraph_db API"}),"\n",(0,i.jsx)(n.p,{children:"Please refer to the files procedures/algo_cython/lgraph_db.pxd and lgraph_db_python.py for the lgraph_db API."}),"\n",(0,i.jsxs)(n.p,{children:["The usage and functions of the interface in lgraph_db.pxd are basically the same as the C++ interface. The interface declared in lgraph_db.pxd is implemented in C++. In the py file, it must be imported by ",(0,i.jsx)(n.code,{children:"cython.cimports.olap_db import *"})," and compiled by the Cython file to run."]}),"\n",(0,i.jsx)(n.h3,{id:"vertexindexiterator",children:"VertexIndexIterator"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"GetVid()-> int64_t"}),": Get the vid of the vertex"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"galaxy",children:"Galaxy"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Galaxy(dir_path: std::string)"}),": constructor, dir_path is the db path"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetCurrentUser(user: std::string, password: std::string)-> cython.void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetUser(user: std::string)-> cython.void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"OpenGraph(graph: std::string, read_only: bint)-> GraphDB"}),": create GraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"graphdb",children:"GraphDB:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CreateReadTxn()-> Transaction"}),": create a read-only transaction"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CreateWriteTxn()-> Transaction"}),": create a write transaction"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ForkTxn(txn: Transaction)-> Transaction"}),": Copy transactions, only read transactions can be copied"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"transaction",children:"Transaction:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"GetVertexIndexIterator(\n label: std::string,\n field: std::string,\n key_start: std::string,\n key_end: std::string) -> VertexIndexIterator\n"})}),"\n",(0,i.jsx)(n.p,{children:"Gets index iterator. The iterator has field value [key_start, key_end]. So key_start=key_end=v returns an iterator pointing to all vertexes that has field value v"}),"\n",(0,i.jsxs)(n.p,{children:["lgraph_db_python.py packages the C++ classes Galaxy and GraphDB from lgraph_db.pxd as Python classes. After compiling lgraph_db_python.py into a Python extension, you can directly access it in a Python file or from the Python command line by importing it with ",(0,i.jsx)(n.code,{children:"import lgraph_db_python"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"pygalaxy",children:"PyGalaxy:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"PyGalaxy(self, dir_path: str)"}),": constructor, dir_path is the db path"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetCurrentUser(self, user: str password: str)-> void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetUser(self, user: std::string)-> void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"OpenGraph(self, graph: str, read_only: bool)-> PyGraphDB"}),": create PyGraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"pygraphdb",children:"PyGraphDB:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"get_pointer(self)->cython.Py_ssize_t"}),": address of C++ class GraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"6-algorithm-plug-in-example",children:"6. Algorithm plug-in example"}),"\n",(0,i.jsx)(n.p,{children:"The following is a code example of the BFS algorithm implemented in Python:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# cython: language_level=3, cpp_locals=True, boundscheck=False, wraparound=False, initializedcheck=False\n# distutils: language = c++\n\n# Comments work as follows:\n# language_level=3: use Python3\n# cpp_locals=True: C++17 is required, and std::optional is used to manage C++ objects in Python code, which can avoid copy construction of C++ objects\n# boundscheck=False: Turn off bounds checking for indexes\n# wraparound=False: Turn off the processing of negative subscripts (similar to Python List)\n# initializedcheck=False: Turn off checking whether the memory is initialized, and the running performance will be faster after turning off the check\n# language = c++: translate this .py file to C++ instead of C file. TuGraph uses a lot of template functions, so C++ should be used\n\nimport json\n\nimport cython\nfrom cython.cimports.olap_base import *\nfrom cython.cimports.lgraph_db import *\n# From procedures/algo_cython/ cimportolap_base.pxd and lgraph_db.pxd, similar to #include "xxx.h" in C++\n\nfrom cython.cimports.libc.stdio import printf\n# Similar to #include in C++\n# Other common ones include cython.cimports.libcpp.unordered_map, etc.\n\nimport time\n\n@cython.cclass\n# cython.cclass indicates that BFSCore is a C-type Class\nclass BFSCore:\n graph: cython.pointer(OlapBase[Empty])\n # cython.pointer(OlapBase[Empty]) indicates the pointer of OlapBase[Empty], similar to OlapBase[Empty]* in C++\n # Cython provides common types of pointers, such as cython.p_int, cython.p_char, etc.\n parent: ParallelVector[size_t]\n active_in: ParallelBitset\n active_out: ParallelBitset\n root: size_t\n # root: size_t declares root as a C++ size_t type variable, equivalent to root = cython.declare(size_t)\n # Variables that do not declare a type are Python object types\n # Declaring variable types will greatly improve performance, and in the multi-threaded part, only C/C++ type variables can be accessed\n\n @cython.cfunc\n # cython.cfunc indicates that Work is a C-type function, and the parameters and return values should be declared\n # cfunc has good performance and can accept C/C++ objects as parameters and return values, but it cannot be called in other python files\n # Similar to cython.ccall, such as Standalone function, which can be called in other python files\n @cython.nogil\n # cython.nogil means to release the Python global interpretation lock. In the part modified by nogil, Python objects cannot be accessed\n # In the multi-threaded part, there should be nogil decorator\n @cython.exceptval(check=False)\n # cython.exceptval(check=False) means that exception propagation is disabled, and Python exceptions raised inside the function will be ignored\n def Work(self, vi: size_t) -> size_t:\n degree = cython.declare(size_t, self.graph.OutDegree(vi))\n out_edges = cython.declare(AdjList[Empty], self.graph.OutEdges(vi))\n i = cython.declare(size_t, 0)\n local_num_activations = cython.declare(size_t, 0)\n dst: size_t\n for i in range(degree):\n dst = out_edges[i].neighbor\n if self.parent[dst] == cython.cast(size_t, -1):\n # parent[dst] == -1 means that dst has not been visited by bfs\n if self.active_out.Add(dst):\n # Set dst as an active node; ParallelBitmap.Add is an atomic operation to prevent double calculation\n self.parent[dst] = vi\n local_num_activations += 1\n return local_num_activations\n\n @cython.cfunc\n @cython.nogil\n @cython.exceptval(check=False)\n def run(self, g: cython.pointer(OlapBase[Empty]), r: size_t) -> cython. size_t:\n self. graph = g\n self.root = r\n self.active_in = g.AllocVertexSubset()\n self.active_out = g.AllocVertexSubset()\n self.parent = g.AllocVertexArray[size_t]()\n self. parent. Fill(-1)\n num_vertices = cython.declare(size_t, self.graph.NumVertices())\n printf("num_vertices = %lu\\n", num_vertices)\n self.parent[self.root] = self.root\n num_activations = cython.declare(size_t, 1)\n discovered_vertices = cython.declare(size_t, num_activations)\n self. active_in. Add(self. root)\n while num_activations > 0:\n self. active_out. Clear()\n num_activations = g.ProcessVertexActive[size_t, BFSCore](self.Work, self.active_in, self)\n discovered_vertices += num_activations\n self. active_out. Swap(self. active_in)\n printf("num_activations = %lu\\n", num_activations)\n return discovered_vertices\n\n\n@cython.cfunc\ndef procedure_process(db: cython.pointer(GraphDB), request: dict, response: dict) -> cython.bint:\n cost = time. time()\n root_id = "0"\n label = "node"\n field = "id"\n if "root" in request:\n root_id = request["root"]\n if "label" in request:\n label = request["label"]\n if "field" in request:\n field = request["field"]\n\n txn = db.CreateReadTxn()\n olapondb = OlapOnDB[Empty](db[0], txn, SNAPSHOT_PARALLEL)\n # Create OlapOnDB in parallel\n # Cython does not support dereference operations such as *db, use db[0] to dereference\n root_vid = txn.GetVertexIndexIterator(\n label.encode(\'utf-8\'), field.encode(\'utf-8\'),\n root_id.encode(\'utf-8\'), root_id.encode(\'utf-8\')\n ).GetVid()\n # Get the iterator of the root node through GetVertexIndexIterator based on the root node label name, field name and field value (root_id),\n # and get the vid through the iterator. When there is no ID_MAPPING, the vid is the same as the id in OlapOnDB\n cost = time. time() - cost\n printf("prepare_cost = %lf s\\n", cython.cast(cython.double, cost))\n a = BFSCore()\n cost = time. time()\n count = a. run(cython. address(olapondb), root_vid)\n cost = time. time() - cost\n printf("core_cost = %lf s\\n", cython.cast(cython.double, cost))\n response["found_vertices"] = count\n response["num_vertices"] = olapondb. NumVertices()\n response["num_edges"] = olapondb. NumEdges()\n return True\n\n\n@cython.ccall\ndef Process(db: lgraph_db_python.PyGraphDB, inp: bytes):\n # Process is the plug-in entry in embed mode and procedure mode, modified with cython.ccall\n # The Process function must be named Process, and the parameters are lgraph_db_python.PyGraphDB and bytes\n # The return value must be (bool, str)\n _inp = inp.decode("utf-8")\n request = json.loads(_inp)\n response = {}\n addr = cython.declare(cython.Py_ssize_t, db.get_pointer())\n # Get the address of the GraphDB object in the PyGraphDB, convert it to a pointer and pass it\n procedure_process(cython.cast(cython.pointer(GraphDB), addr),\n request, response)\n return (True, json.dumps(response))\n\n'})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7d21d01b.e18fdcc4.js b/assets/js/7d21d01b.e18fdcc4.js
new file mode 100644
index 0000000000..5c4457bccf
--- /dev/null
+++ b/assets/js/7d21d01b.e18fdcc4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9660],{6070:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=t(4848),r=t(8453);const s={},a="Python Olap API",o={id:"olap&procedure/olap/python-api",title:"Python Olap API",description:"This document mainly introduces the API usage of OlapBase OlapOnDB and OlapOnDisk in Python",source:"@site/../docs/en-US/source/9.olap&procedure/2.olap/5.python-api.md",sourceDirName:"9.olap&procedure/2.olap",slug:"/olap&procedure/olap/python-api",permalink:"/tugraph-db/en/olap&procedure/olap/python-api",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"OlapOnDisk API",permalink:"/tugraph-db/en/olap&procedure/olap/olap-on-disk-api"},next:{title:"TuGraph Built-in Algorithm Description",permalink:"/tugraph-db/en/olap&procedure/olap/algorithms"}},l={},c=[{value:"Table of contents",id:"table-of-contents",level:2},{value:"1 Overview",id:"1-overview",level:2},{value:"2. Configuration requirements",id:"2-configuration-requirements",level:2},{value:"3. Cython",id:"3-cython",level:2},{value:"4. Olap API",id:"4-olap-api",level:2},{value:"Atomic operations",id:"atomic-operations",level:3},{value:"Vertex collection class ParallelBitset",id:"vertex-collection-class-parallelbitset",level:3},{value:"Vertex array class ParallelVector",id:"vertex-array-class-parallelvector",level:3},{value:"Custom Data Structure",id:"custom-data-structure",level:3},{value:"Graph class OlapBase",id:"graph-class-olapbase",level:3},{value:"Graph class OlapOnDB:",id:"graph-class-olapondb",level:3},{value:"Graph class OlapOnDisk",id:"graph-class-olapondisk",level:3},{value:"ConfigBase:",id:"configbase",level:4},{value:"5. lgraph_db API",id:"5-lgraph_db-api",level:2},{value:"VertexIndexIterator",id:"vertexindexiterator",level:3},{value:"Galaxy",id:"galaxy",level:3},{value:"GraphDB:",id:"graphdb",level:3},{value:"Transaction:",id:"transaction",level:3},{value:"PyGalaxy:",id:"pygalaxy",level:3},{value:"PyGraphDB:",id:"pygraphdb",level:3},{value:"6. Algorithm plug-in example",id:"6-algorithm-plug-in-example",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"python-olap-api",children:"Python Olap API"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"This document mainly introduces the API usage of OlapBase OlapOnDB and OlapOnDisk in Python"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"table-of-contents",children:"Table of contents"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#1-overview",children:"1.Overview"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#2-configuration-requirements",children:"2.Configuration Requirements"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#3-cython",children:"3.Cython"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"#4-olap-api",children:"4.Olap API"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#atomic-operations",children:"4.1. Atomic operations"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#vertex-collection-class-parallelbitset",children:"4.2. Vertex collection class ParallelBitset"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#vertex-array-class-parallelvector",children:"4.3. Vertex array class ParallelVector"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#custom-data-structure",children:"4.4. Custom data structure"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapbase",children:"4.5.Graph class OlapBase"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapondb",children:"4.6. Graph Class OlapOnDB"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#graph-class-olapondisk",children:"4.7.Graph class OlapOnDisk"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#5-lgraph_db-api",children:"5.lgraph DB API"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#6-algorithm-plug-in-example",children:"6.Algorithm plugin example"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"1-overview",children:"1 Overview"}),"\n",(0,i.jsx)(n.p,{children:"This manual will introduce the simple configuration required to use the Python interface of the TuGraph graph computing system, and explain the TuGraph Python API in conjunction with the code. For details about the functions of class ParallelBitset, OlapBase, etc., see olap-base-api.md, olap-on-db-api.md and olap-on-disk-api.md."}),"\n",(0,i.jsx)(n.h2,{id:"2-configuration-requirements",children:"2. Configuration requirements"}),"\n",(0,i.jsx)(n.p,{children:"If you want to use TuGraph to write and compile your own applications, the required configuration requirements are:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Linux operating system, currently running successfully on Ubuntu16.04.2 and Centos7 systems."}),"\n",(0,i.jsx)(n.li,{children:"A compiler that supports C++17 requires GCC version 5.4.1 or later."}),"\n",(0,i.jsx)(n.li,{children:"Cython, version 3.0a1 or above is required, and the tested version is 3.0.0a11"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"3-cython",children:"3. Cython"}),"\n",(0,i.jsx)(n.p,{children:"Cython is an efficient programming language that is a superset of Python. Cython can translate .py files into C/C++ codes and compile them into Python extension modules, which can be called through import in Python. In TuGraph, all Python procedures are compiled into Python extension modules by Cython and then used."}),"\n",(0,i.jsx)(n.p,{children:"The main advantage of using Cython is that it combines the simplicity and ease of use of Python with the performance of C/C++. The TuGraph Python interface is implemented using Cython."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://cython.readthedocs.io/en/latest/index.html",children:"Cython Documentation"})}),"\n",(0,i.jsx)(n.h2,{id:"4-olap-api",children:"4. Olap API"}),"\n",(0,i.jsxs)(n.p,{children:["The Olap API is used for graph computing and is implemented in C++. The usage and functions are basically the same as the C++ interface. To use the API in a Python file, the interfaces declared in procedures/algo_cython/olap_base.pxd must be imported using ",(0,i.jsx)(n.code,{children:"cython.cimports.olap_base import *"}),". The Python file can only be run after being compiled by Cython."]}),"\n",(0,i.jsx)(n.h3,{id:"atomic-operations",children:"Atomic operations"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"cas[T](ptr: cython.pointer(T), oldv: T, newv: T)-> cython.bint"}),": If the value pointed to by ptr is equal to oldv, assign the value pointed to by ptr to newv and return True, otherwise return False."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_min[T](a: cython.pointer(T), b: T)->cython.bint"}),": If b is smaller than the value pointed to by a, then assign the value pointed to by a to b and return true, otherwise return false."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_max[T](a: cython.pointer(T), b: T)->cython.bint"}),": If b is greater than the value pointed to by a, then assign the value pointed to by a to b and return true, otherwise return false."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_add[T](a: cython.pointer(T), b: T)->cython.bint"}),": Add the value of b to the value pointed to by a."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"write_sub[T](a: cython.pointer(T), b: T)->cython.bint"}),": Subtract the value pointed to by a from the value of b."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"vertex-collection-class-parallelbitset",children:"Vertex collection class ParallelBitset"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Size() -> size_t"}),": Indicates the number of vertices in the Bitmap."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ParallelBitset(size: size_t)"}),": Initializes size and data, where the length of data is (size >> 6) + 1."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Clear() -> cython.void"}),": Empties the collection."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Fill() -> cython.void"}),": Adds all vertices to the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Has(i: size_t) -> cython.bint"}),": Checks if vertex i is in the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Add(i: size_t) -> cython.bint"}),": Adds vertex i to the set."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Swap(other: ParallelBitset) -> cython.void"}),": Exchanges elements with another ParallelBitset set."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"vertex-array-class-parallelvector",children:"Vertex array class ParallelVector"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ParallelVector[T](size_t capacity)"}),": Constructs a ParallelVector, where capacity is the initial capacity of the vertex array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"operator[](i: size_t) -> T"}),": Returns the data at index i."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"begin() -> cython.pointer(T)"}),": Returns the start pointer of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"end() -> cython.pointer(T)"}),": Returns the end pointer of ParallelVector. The usage of begin() and end() is similar to the begin and end pointers of the vector container, and these two pointers can be used to sequentially access the array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Back() -> T"}),": Returns the last data of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Data() -> cython.pointer(T)"}),": Indicates the data of the array itself."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Destroy() -> cython.void"}),": Clears the data in the ParallelVector array and deletes the array."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Size() -> size_t"}),": Indicates the number of data in ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Resize(size: size_t) -> cython.void"}),": Changes ParallelVector to size, which should be greater than or equal to the size before the change and less than capacity."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Clear() -> cython.void"}),": Clears the data in ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ReAlloc(capacity: size_t) -> cython.void"}),": Allocates a new capacity size to ParallelVector. If the array has data, it migrates the data to the new memory."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Fill(elem: T) -> cython.void"}),": Assigns elem to all data of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Append(elem: T, atomic: cython.bint = true) -> cython.void"}),": Adds a data to the end of ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Swap(other: ParallelVector[T]) -> cython.void"}),": Exchanges data with another ParallelVector."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Copy() -> ParallelVector[T]"}),": Copies the current ParallelVector data and stores it in the copy array."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"custom-data-structure",children:"Custom Data Structure"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Empty"}),": A special data type whose content is empty."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"EdgeUnit[EdgeData]"}),": Indicates the edge whose weight type is EdgeData, used to parse the input file, including three member variables:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"src: size_t"}),": starting vertex of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"dst: size_t"}),": end of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_data: EdgeData"}),": edge weight"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"AdjUnit[EdgeData]"}),": indicates the edge whose weight type is EdgeData, which is used in the batch calculation process and contains two member variables:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"neighbor: size_t"}),": neighbor vertex of the edge"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"edge_data: EdgeData"}),": edge weight"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"AdjList[EdgeData]"}),": The adjacency list of vertices whose weight type is EdgeData, often used to represent the set of incoming and outgoing edges of vertices, including three member functions:\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"begin()->cython.pointer(AdjUnit[T])"}),": the starting pointer of the list"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"end()->cython.pointer(AdjUnit[T])"}),": the end pointer of the list"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"operator[](i: size_t)-> AdjUnit[EdgeData]"}),": the data whose subscript is i"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapbase",children:"Graph class OlapBase"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"NumVertices()->size_t"}),": get the number of vertices"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"NumEdges()-> size_t"}),": get the number of edges"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"OutDegree(vid: size_t)-> size_t"}),": out-degree of vertex vid"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"InDegree(vid: size_t)->size_t"}),": in-degree of the vertex vid"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AllocVertexArray[VertexData]() ->ParallelVector[VertexData]"}),": Allocates an array of type VertexData with size as the number of vertices"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AllocVertexSubset()-> ParallelBitset"}),": Assigns a subset of ParallelBitsets to denote whether the state of all vertices is activated"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"OutEdges(vid: size_t)-> AdjList[EdgeData]"}),": Get the list of all outgoing edges of vertex v"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"InEdges(vid: size_t)-> AdjList[EdgeData]"}),": Get the list of all incoming edges of vertex v"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Transpose()->cython.void"}),": transpose of a directed graph"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"LoadFromArray(edge_array: cython.p_char, input_vertices: size_t, input_edges: size_t, edge_direction_policy: EdgeDirectionPolicy)"}),": Loads the graph data from the array, contains four parameters, the meaning of which are respectively:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"edge_array"})," : reads the data from the array into the graph. Normally, the array contains multiple edges."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"input_vertices"}),": specifies the number of vertices read into the graph by the array."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"input_edges"})," : specifies the number of edges that the array reads into the image."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"edge_direction_policy"})," : indicates that the graph is directed or undirected. The graph can be divided into three modes: DUAL_DIRECTION, MAKE_SYMMETRIC, and INPUT_SYMMETRIC. For details, see 'enum EdgeDirectionPolicy' in the config.h file in the core folder."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"AcquireVertexLock(vid: size_t)-> cython.void"}),": locks a vertex vid and prohibits other threads from accessing the vertex data corresponding to this lock"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"void ReleaseVertexLock(vid: size_t)-> cython.void"}),": unlocks the vertex vid and all threads can access the vertex data corresponding to the lock"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"TuGraph provides two batch operations to perform point-centric batch processing in parallel, which is slightly different from C++ in Python."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Function name: ProcessVertexInRange[ReducedSum, Algorithm](\n# work: (algo: Algorithm, vi: size_t)-> ReducedSum,\n# lower: size_t, upper: size_t,\n# algo: Algorithm,\n# zero: ReducedSum = 0,\n# reduce: (a: ReducedSum, b: ReducedSum)-> ReducedSum = reduce_plus[ReducedSum])\n#\n# Function purpose: Executes the work function on nodes whose node numbers are between lower and upper in the Graph. The fourth parameter indicates the base of accumulation, which is 0 by default.\n# The fifth parameter indicates that the iterative reduce function operation is performed on the node return value after each work process, and the default is the accumulation operation.\n# For specific implementation, please refer to the specific code in include/lgraph/olap_base.h\n#\n# Example usage: Count the number of vertices with edges in the parent array.\n\nimport cython\nfrom cython.cimports.olap_base import *\n\n\n@cython.cclass\nclass CountCore:\n graph: cython.pointer(OlapBase[Empty])\n parent: ParallelVector[size_t]\n\n @cython.cfunc\n @cython.nogil\n def Work(self, vi: size_t) -> size_t:\n if self.graph.OutDegree(self.parent[vi]) > 0:\n return 1\n return 0\n\n def run(self, pointer_g: cython.pointer(OlapBase[Empty])):\n self.graph = pointer_g\n self.parent = self.graph.AllocVertexArray[size_t]()\n vertex_num: size_t\n vertex_num = self.graph.ProcessVertexInRange[size_t, CountCore](self.Work, 0, self.parent.Size(), self)\n print("the number is", vertex_num)\n\nif __name__ == "__main__":\n count_core = CountCore()\n count_core.run(cython.address(g))\n'})}),"\n",(0,i.jsx)(n.p,{children:"g is the instantiated object of graph class OlapBase"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# Function name: ProcessVertexActive[ReducedSum, Algorithm](\n# work: (algo: Algorithm, vi: size_t)-> ReducedSum,\n# active: ParallelBitset,\n# algo: Algorithm,\n# zero: ReducedSum = 0,\n# reduce: (a: ReducedSum, b: ReducedSum)-> ReducedSum = reduce_plus[ReducedSum])\n#\n# Function purpose: Execute the work function on the nodes corresponding to 1 in the active_vertices bitset. The third parameter indicates the base of accumulation, which is 0 by default;\n# The fourth parameter indicates that the iterative reduce function operation is performed on the node return value after each work process, and the default is the accumulation operation.\n# For specific implementation, please refer to the specific code in /include/lgraph/olap_base.h\n#\n# Usage example: Output all out-degree neighbors of nodes 1, 2, and 3 in the Graph, and count the total out-degree of these three nodes.\n\nimport cython\nfrom cython.cimports.olap_base import *\nfrom cython.cimports.libc.stdio import printf\n\n\n@cython.cclass\nclass NeighborCore:\n graph: cython.pointer(OlapBase[Empty])\n active_in: ParallelBitset\n\n @cython.cfunc\n @cython.nogil\n def Work(self, vi: size_t) -> size_t:\n degree = self. graph. OutDegree(vi)\n dst: size_t\n edges = self. graph. OutEdges(vi)\n local_out_degree: size_t\n for i in range(degree):\n dst = edges[i].neighbor\n printf("node %lu has neighbor %lu\\n", vi, dst)\n local_out_degree += 1\n return local_out_degree\n\n def run(self, pointer_g: cython.pointer(OlapBase[Empty])):\n self.graph = pointer_g\n self.active_in = self.graph.AllocVertexSubset()\n self. active_in. Add(1)\n self. active_in. Add(2)\n self. active_in. Add(3)\n total_outdegree = cython.declare(\n size_t,\n self.graph.ProcessVertexActive[size_t, CountCore](self.Work, self.active_in, self))\n printf("total outdegree of node1,2,3 is %lu\\n",total_outdegree)\n\nif __name__ == "__main__":\n neighbor_core = NeighborCore()\n neighbor_core.run(cython.address(g))\n'})}),"\n",(0,i.jsx)(n.p,{children:"As shown in the above two examples, ProcessVertexActive and ProcessVertexInRange in Python require an additional algorithm class pointer parameter compared to their C++ counterparts. The Work function is generally used as a member function of the algorithm class to access member variables, such as in the graph and ParallelVector parent examples shown above. When calling the batch function, the Work function and the self pointer of the algorithm class are passed to the batch function."}),"\n",(0,i.jsxs)(n.p,{children:["The Work function will be called in multiple threads, so the @cython.nogil decorator is added to release the Python global interpretation lock. In code executed by multiple threads, such as the Work function in the batch function, variables are better declared as C/C++ types using ",(0,i.jsx)(n.code,{children:"dst: type"})," or ",(0,i.jsx)(n.code,{children:"dst = cython.declare(type)"}),". This is because Python objects cannot be used in multi-threaded code."]}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapondb",children:"Graph class OlapOnDB:"}),"\n",(0,i.jsx)(n.p,{children:"Parallelize to create a directed graph:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL)\n"})}),"\n",(0,i.jsx)(n.p,{children:"Parallelize to create an undirected graph"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL | SNAPSHOT_UNDIRECTED)\n"})}),"\n",(0,i.jsx)(n.p,{children:"ID_MAPPING creates a directed graph"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"olapondb = OlapOnDB[Empty](db, txn, SNAPSHOT_PARALLEL | SNAPSHOT_IDMAPPING)\n"})}),"\n",(0,i.jsx)(n.h3,{id:"graph-class-olapondisk",children:"Graph class OlapOnDisk"}),"\n",(0,i.jsx)(n.h4,{id:"configbase",children:"ConfigBase:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ConfigBase()"}),": Constructor"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::string input_dir"}),": graph edge table data path"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"std::string output_dir"}),": output path"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Load(config: ConfigBase[EdgeData], edge_direction_policy: EdgeDirectionPolicy)-> void"}),": read in graph data"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"5-lgraph_db-api",children:"5. lgraph_db API"}),"\n",(0,i.jsx)(n.p,{children:"Please refer to the files procedures/algo_cython/lgraph_db.pxd and lgraph_db_python.py for the lgraph_db API."}),"\n",(0,i.jsxs)(n.p,{children:["The usage and functions of the interface in lgraph_db.pxd are basically the same as the C++ interface. The interface declared in lgraph_db.pxd is implemented in C++. In the py file, it must be imported by ",(0,i.jsx)(n.code,{children:"cython.cimports.olap_db import *"})," and compiled by the Cython file to run."]}),"\n",(0,i.jsx)(n.h3,{id:"vertexindexiterator",children:"VertexIndexIterator"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"GetVid()-> int64_t"}),": Get the vid of the vertex"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"galaxy",children:"Galaxy"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Galaxy(dir_path: std::string)"}),": constructor, dir_path is the db path"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetCurrentUser(user: std::string, password: std::string)-> cython.void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetUser(user: std::string)-> cython.void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"OpenGraph(graph: std::string, read_only: bint)-> GraphDB"}),": create GraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"graphdb",children:"GraphDB:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CreateReadTxn()-> Transaction"}),": create a read-only transaction"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CreateWriteTxn()-> Transaction"}),": create a write transaction"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ForkTxn(txn: Transaction)-> Transaction"}),": Copy transactions, only read transactions can be copied"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"transaction",children:"Transaction:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"GetVertexIndexIterator(\n label: std::string,\n field: std::string,\n key_start: std::string,\n key_end: std::string) -> VertexIndexIterator\n"})}),"\n",(0,i.jsx)(n.p,{children:"Gets index iterator. The iterator has field value [key_start, key_end]. So key_start=key_end=v returns an iterator pointing to all vertexes that has field value v"}),"\n",(0,i.jsxs)(n.p,{children:["lgraph_db_python.py packages the C++ classes Galaxy and GraphDB from lgraph_db.pxd as Python classes. After compiling lgraph_db_python.py into a Python extension, you can directly access it in a Python file or from the Python command line by importing it with ",(0,i.jsx)(n.code,{children:"import lgraph_db_python"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"pygalaxy",children:"PyGalaxy:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"PyGalaxy(self, dir_path: str)"}),": constructor, dir_path is the db path"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetCurrentUser(self, user: str password: str)-> void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"SetUser(self, user: std::string)-> void"}),": set user"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"OpenGraph(self, graph: str, read_only: bool)-> PyGraphDB"}),": create PyGraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"pygraphdb",children:"PyGraphDB:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"get_pointer(self)->cython.Py_ssize_t"}),": address of C++ class GraphDB"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"6-algorithm-plug-in-example",children:"6. Algorithm plug-in example"}),"\n",(0,i.jsx)(n.p,{children:"The following is a code example of the BFS algorithm implemented in Python:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:'# cython: language_level=3, cpp_locals=True, boundscheck=False, wraparound=False, initializedcheck=False\n# distutils: language = c++\n\n# Comments work as follows:\n# language_level=3: use Python3\n# cpp_locals=True: C++17 is required, and std::optional is used to manage C++ objects in Python code, which can avoid copy construction of C++ objects\n# boundscheck=False: Turn off bounds checking for indexes\n# wraparound=False: Turn off the processing of negative subscripts (similar to Python List)\n# initializedcheck=False: Turn off checking whether the memory is initialized, and the running performance will be faster after turning off the check\n# language = c++: translate this .py file to C++ instead of C file. TuGraph uses a lot of template functions, so C++ should be used\n\nimport json\n\nimport cython\nfrom cython.cimports.olap_base import *\nfrom cython.cimports.lgraph_db import *\n# From procedures/algo_cython/ cimportolap_base.pxd and lgraph_db.pxd, similar to #include "xxx.h" in C++\n\nfrom cython.cimports.libc.stdio import printf\n# Similar to #include in C++\n# Other common ones include cython.cimports.libcpp.unordered_map, etc.\n\nimport time\n\n@cython.cclass\n# cython.cclass indicates that BFSCore is a C-type Class\nclass BFSCore:\n graph: cython.pointer(OlapBase[Empty])\n # cython.pointer(OlapBase[Empty]) indicates the pointer of OlapBase[Empty], similar to OlapBase[Empty]* in C++\n # Cython provides common types of pointers, such as cython.p_int, cython.p_char, etc.\n parent: ParallelVector[size_t]\n active_in: ParallelBitset\n active_out: ParallelBitset\n root: size_t\n # root: size_t declares root as a C++ size_t type variable, equivalent to root = cython.declare(size_t)\n # Variables that do not declare a type are Python object types\n # Declaring variable types will greatly improve performance, and in the multi-threaded part, only C/C++ type variables can be accessed\n\n @cython.cfunc\n # cython.cfunc indicates that Work is a C-type function, and the parameters and return values should be declared\n # cfunc has good performance and can accept C/C++ objects as parameters and return values, but it cannot be called in other python files\n # Similar to cython.ccall, such as Standalone function, which can be called in other python files\n @cython.nogil\n # cython.nogil means to release the Python global interpretation lock. In the part modified by nogil, Python objects cannot be accessed\n # In the multi-threaded part, there should be nogil decorator\n @cython.exceptval(check=False)\n # cython.exceptval(check=False) means that exception propagation is disabled, and Python exceptions raised inside the function will be ignored\n def Work(self, vi: size_t) -> size_t:\n degree = cython.declare(size_t, self.graph.OutDegree(vi))\n out_edges = cython.declare(AdjList[Empty], self.graph.OutEdges(vi))\n i = cython.declare(size_t, 0)\n local_num_activations = cython.declare(size_t, 0)\n dst: size_t\n for i in range(degree):\n dst = out_edges[i].neighbor\n if self.parent[dst] == cython.cast(size_t, -1):\n # parent[dst] == -1 means that dst has not been visited by bfs\n if self.active_out.Add(dst):\n # Set dst as an active node; ParallelBitmap.Add is an atomic operation to prevent double calculation\n self.parent[dst] = vi\n local_num_activations += 1\n return local_num_activations\n\n @cython.cfunc\n @cython.nogil\n @cython.exceptval(check=False)\n def run(self, g: cython.pointer(OlapBase[Empty]), r: size_t) -> cython. size_t:\n self. graph = g\n self.root = r\n self.active_in = g.AllocVertexSubset()\n self.active_out = g.AllocVertexSubset()\n self.parent = g.AllocVertexArray[size_t]()\n self. parent. Fill(-1)\n num_vertices = cython.declare(size_t, self.graph.NumVertices())\n printf("num_vertices = %lu\\n", num_vertices)\n self.parent[self.root] = self.root\n num_activations = cython.declare(size_t, 1)\n discovered_vertices = cython.declare(size_t, num_activations)\n self. active_in. Add(self. root)\n while num_activations > 0:\n self. active_out. Clear()\n num_activations = g.ProcessVertexActive[size_t, BFSCore](self.Work, self.active_in, self)\n discovered_vertices += num_activations\n self. active_out. Swap(self. active_in)\n printf("num_activations = %lu\\n", num_activations)\n return discovered_vertices\n\n\n@cython.cfunc\ndef procedure_process(db: cython.pointer(GraphDB), request: dict, response: dict) -> cython.bint:\n cost = time. time()\n root_id = "0"\n label = "node"\n field = "id"\n if "root" in request:\n root_id = request["root"]\n if "label" in request:\n label = request["label"]\n if "field" in request:\n field = request["field"]\n\n txn = db.CreateReadTxn()\n olapondb = OlapOnDB[Empty](db[0], txn, SNAPSHOT_PARALLEL)\n # Create OlapOnDB in parallel\n # Cython does not support dereference operations such as *db, use db[0] to dereference\n root_vid = txn.GetVertexIndexIterator(\n label.encode(\'utf-8\'), field.encode(\'utf-8\'),\n root_id.encode(\'utf-8\'), root_id.encode(\'utf-8\')\n ).GetVid()\n # Get the iterator of the root node through GetVertexIndexIterator based on the root node label name, field name and field value (root_id),\n # and get the vid through the iterator. When there is no ID_MAPPING, the vid is the same as the id in OlapOnDB\n cost = time. time() - cost\n printf("prepare_cost = %lf s\\n", cython.cast(cython.double, cost))\n a = BFSCore()\n cost = time. time()\n count = a. run(cython. address(olapondb), root_vid)\n cost = time. time() - cost\n printf("core_cost = %lf s\\n", cython.cast(cython.double, cost))\n response["found_vertices"] = count\n response["num_vertices"] = olapondb. NumVertices()\n response["num_edges"] = olapondb. NumEdges()\n return True\n\n\n@cython.ccall\ndef Process(db: lgraph_db_python.PyGraphDB, inp: bytes):\n # Process is the plug-in entry in embed mode and procedure mode, modified with cython.ccall\n # The Process function must be named Process, and the parameters are lgraph_db_python.PyGraphDB and bytes\n # The return value must be (bool, str)\n _inp = inp.decode("utf-8")\n request = json.loads(_inp)\n response = {}\n addr = cython.declare(cython.Py_ssize_t, db.get_pointer())\n # Get the address of the GraphDB object in the PyGraphDB, convert it to a pointer and pass it\n procedure_process(cython.cast(cython.pointer(GraphDB), addr),\n request, response)\n return (True, json.dumps(response))\n\n'})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(6540);const r={},s=i.createContext(r);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7e1f0287.c147dc47.js b/assets/js/7e1f0287.c147dc47.js
deleted file mode 100644
index a958354bc2..0000000000
--- a/assets/js/7e1f0287.c147dc47.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3499],{3799:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>a});var s=r(4848),t=r(8453);const l={},i="RPC API",c={id:"zh-CN/source/client-tools/rpc-api",title:"RPC API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684 RPC API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/8.rpc-api.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/rpc-api",permalink:"/tugraph-db/zh-CN/source/client-tools/rpc-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RESTful API",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api"},next:{title:"RESTful API Legacy",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api-legacy"}},u={},a=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42",id:"2\u8bf7\u6c42",level:2},{value:"2.1.\u5efa\u7acb\u8fde\u63a5",id:"21\u5efa\u7acb\u8fde\u63a5",level:3},{value:"2.2.\u8bf7\u6c42\u7c7b\u578b",id:"22\u8bf7\u6c42\u7c7b\u578b",level:3},{value:"3.\u767b\u5f55",id:"3\u767b\u5f55",level:2},{value:"4.\u67e5\u8be2",id:"4\u67e5\u8be2",level:2},{value:"5.\u5b58\u50a8\u8fc7\u7a0b",id:"5\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"52\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.3.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"53\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.4.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"54\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3}];function o(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"rpc-api",children:"RPC API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684 RPC API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph \u63d0\u4f9b\u4e30\u5bcc\u7684 RPC API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 RPC \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,s.jsx)(n.p,{children:"RPC\uff08\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\uff09\u662f\u4e00\u79cd\u901a\u8fc7\u7f51\u7edc\u4ece\u8fdc\u7a0b\u8ba1\u7b97\u673a\u7a0b\u5e8f\u4e0a\u8bf7\u6c42\u670d\u52a1\uff0c\u800c\u4e0d\u9700\u8981\u4e86\u89e3\u5e95\u5c42\u7f51\u7edc\u6280\u672f\u7684\u534f\u8bae\u3002\n\u76f8\u6bd4REST\uff0cRPC \u9762\u5411\u65b9\u6cd5\uff0c\u4e3b\u8981\u7528\u4e8e\u51fd\u6570\u65b9\u6cd5\u7684\u8c03\u7528\uff0c\u53ef\u4ee5\u9002\u5408\u66f4\u590d\u6742\u901a\u4fe1\u9700\u6c42\u7684\u573a\u666f\uff0c\u4e14\u6027\u80fd\u66f4\u9ad8\u3002\nbrpc\u662f\u7528c++\u8bed\u8a00\u7f16\u5199\u7684\u5de5\u4e1a\u7ea7RPC\u6846\u67b6\uff0c\u57fa\u4e8ebrpc\uff0cTuGraph \u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684RPC API\uff0c\u672c\u6587\u6863\u63cf\u8ff0\nTuGraph \u7684 RPC API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2\u8bf7\u6c42",children:"2.\u8bf7\u6c42"}),"\n",(0,s.jsx)(n.h3,{id:"21\u5efa\u7acb\u8fde\u63a5",children:"2.1.\u5efa\u7acb\u8fde\u63a5"}),"\n",(0,s.jsx)(n.p,{children:"\u5f00\u53d1\u8005\u5411TuGraph\u670d\u52a1\u53d1\u9001RPC\u8bf7\u6c42\uff0c\u9996\u5148\u8981\u5efa\u7acb\u8fde\u63a5\u3002\u4ee5C++\u8bed\u8a00\u4e3a\u4f8b\uff0c\u5f00\u53d1\u8005\u521b\u5efa\u6307\u5b9aurl\u7684\u901a\u9053\uff08channel\uff09\uff0c\n\u7531\u901a\u9053\u521b\u5efa\u6307\u5b9a\u7684\u670d\u52a1\u5b58\u6839\uff08LGraphRPCService_Stub\uff09\uff0c\u540e\u7eed\u5373\u53ef\u901a\u8fc7\u5b58\u6839\u50cf\u8c03\u7528\u672c\u5730\u65b9\u6cd5\u4e00\u6837\u5411\u8fdc\u7a0b\n\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' std::shared_ptr options = std::make_shared();\n options->protocol = "baidu_std";\n options->connection_type = "";\n options->timeout_ms = 60 * 60 * 1000 /*milliseconds*/;\n options->max_retry = 3;\n std::string load_balancer = "";\n std::shared_ptr channel = std::make_shared();\n if (channel->Init(url.c_str(), load_balancer, options.get()) != 0)\n throw RpcException("Fail to initialize channel");\n LGraphRPCService_Stub stub(channel.get());\n'})}),"\n",(0,s.jsx)(n.h3,{id:"22\u8bf7\u6c42\u7c7b\u578b",children:"2.2.\u8bf7\u6c42\u7c7b\u578b"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u652f\u630110\u79cdRPC\u8bf7\u6c42\uff0c\u5176\u4e2d\u6bcf\u79cd\u8bf7\u6c42\u7684\u529f\u80fd\u5982\u4e0b\u8868\u6240\u793a\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u8bf7\u6c42"}),(0,s.jsx)(n.th,{children:"\u529f\u80fd"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphApiRequest"}),(0,s.jsx)(n.td,{children:"\u70b9\u8fb9\u7d22\u5f15\u64cd\u4f5c\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CypherRequest"}),(0,s.jsx)(n.td,{children:"cypher\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PluginRequest"}),(0,s.jsx)(n.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"HARequest"}),(0,s.jsx)(n.td,{children:"\u9ad8\u53ef\u7528\u6a21\u5f0f\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ImportRequest"}),(0,s.jsx)(n.td,{children:"\u6570\u636e\u5bfc\u5165\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphRequest"}),(0,s.jsx)(n.td,{children:"\u5b50\u56fe\u64cd\u4f5c\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AclRequest"}),(0,s.jsx)(n.td,{children:"\u6743\u9650\u7ba1\u7406\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ConfigRequest"}),(0,s.jsx)(n.td,{children:"\u914d\u7f6e\u7ba1\u7406\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"RestoreRequest"}),(0,s.jsx)(n.td,{children:"\u5907\u4efd\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SchemaRequest"}),(0,s.jsx)(n.td,{children:"schema\u7ba1\u7406\u8bf7\u6c42"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u9700\u8981\u4f20\u5165\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["client_version: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u53ef\u901a\u8fc7\u5bf9\u6bd4",(0,s.jsx)(n.code,{children:"client_version"}),"\u548c",(0,s.jsx)(n.code,{children:"server_version"}),"\u9632\u6b62\u54cd\u5e94\u8fc7\u65f6\u7684\u8bf7\u6c42"]}),"\n",(0,s.jsx)(n.li,{children:"token: \u5fc5\u8981\u53c2\u6570\uff0c\u5ba2\u6237\u7aef\u767b\u9646\u4e4b\u540e\u83b7\u5f97token\uff0c\u6bcf\u6b21\u8bf7\u6c42\u4f20\u5165token\u4ee5\u6821\u9a8c\u7528\u6237\u8eab\u4efd"}),"\n",(0,s.jsx)(n.li,{children:"is_write_op: \u53ef\u9009\u53c2\u6570\uff0c\u6807\u5fd7\u8bf7\u6c42\u662f\u5426\u662f\u5199\u8bf7\u6c42"}),"\n",(0,s.jsx)(n.li,{children:"user: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u4e3b\u4ece\u4e4b\u95f4\u540c\u6b65\u8bf7\u6c42\u65f6\u8bbe\u7f6euser\uff0c\u4e0d\u9700\u9a8c\u8bc1token"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u670d\u52a1\u5904\u7406\u5b8cRPC\u8bf7\u6c42\u4e4b\u540e\u53d1\u56de\u54cd\u5e94\uff0c\u54cd\u5e94\u6d88\u606f\u4e2d\u9664\u4e86\u5305\u542b\u6bcf\u4e2a\u8bf7\u6c42\u7684\u5355\u72ec\u54cd\u5e94\u4fe1\u606f\u4e4b\u5916\uff0c\u8fd8\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"error_code: \u5fc5\u8981\u53c2\u6570\uff0c\u6807\u5fd7\u8bf7\u6c42\u5904\u7406\u72b6\u6001"}),"\n",(0,s.jsx)(n.li,{children:"redirect: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u5411follower\u53d1\u9001\u5199\u8bf7\u6c42\u65f6\u5904\u7406\u5931\u8d25\uff0c\u8bbe\u7f6eredirect\u4e3a\u8bf7\u6c42\u8f6c\u53d1\u5730\u5740\uff0c\u5373leader\u5730\u5740"}),"\n",(0,s.jsx)(n.li,{children:"error: \u53ef\u9009\u53c2\u6570\uff0c\u8bf7\u6c42\u9519\u8bef\u4fe1\u606f"}),"\n",(0,s.jsxs)(n.li,{children:["server_version: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u7684\u8bf7\u6c42\u54cd\u5e94\u4e2d\u8bbe\u7f6e",(0,s.jsx)(n.code,{children:"server_version"}),"\u4ee5\u907f\u514dclient\u8bfb\u53d6\u6570\u636e\u65f6\u53d1\u751f\u53cd\u5411\u65f6\u95f4\u65c5\u884c\u95ee\u9898"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,s.jsx)(n.strong,{children:"\u9664CypherRequest\u3001PluginRequest\u3001HARequest\u548cAclRequest\u5916\uff0c\u5176\u4f59RPC\u63a5\u53e3\u5c06\u9010\u6b65\u5e9f\u5f03\uff0c\u5176\u529f\u80fd\u7edf\u4e00\u81f3CypherRequest\u63a5\u53e3\u3002"})]}),"\n",(0,s.jsx)(n.h2,{id:"3\u767b\u5f55",children:"3.\u767b\u5f55"}),"\n",(0,s.jsx)(n.p,{children:"\u767b\u5f55\u8bf7\u6c42\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"user: \u5fc5\u8981\u53c2\u6570\uff0c\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"pass: \u5fc5\u8981\u53c2\u6570\uff0c\u5bc6\u7801\n\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u4f7f\u7528\u6784\u5efa\u597d\u7684\u670d\u52a1\u5b58\u6839\u53d1\u9001\u767b\u5f55\u8bf7\u6c42\uff1a"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:" auto* req = request.mutable_acl_request();\n auto* auth = req->mutable_auth_request()->mutable_login();\n auth->set_user(user);\n auth->set_password(pass);\n // send data\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req->set_client_version(server_version);\n req->set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), req, &resp, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n token = res.acl_response().auth_response().token();\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u767b\u5f55\u54cd\u5e94\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"token: \u5fc5\u8981\u53c2\u6570\uff0c\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c\uff0c\u5373 Json Web Token\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5e76\u4e14\u7528\u4e8e\u4ee5\u540e\u7684\u6bcf\u6b21\u53d1\u9001\u8bf7\u6c42\u3002\n\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"4\u67e5\u8be2",children:"4.\u67e5\u8be2"}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Cypher\u67e5\u8be2\u548cTuGraph\u8fdb\u884c\u7edd\u5927\u591a\u6570\u7684\u4ea4\u4e92\uff0cCypher\u8bf7\u6c42\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"query: \u5fc5\u8981\u53c2\u6570\uff0cCypher\u67e5\u8be2\u8bed\u53e5"}),"\n",(0,s.jsx)(n.li,{children:"param_names: \u53ef\u9009\u53c2\u6570\uff0c\u53c2\u6570\u540d"}),"\n",(0,s.jsx)(n.li,{children:"param_values: \u53ef\u9009\u53c2\u6570\uff0c\u53c2\u6570\u503c"}),"\n",(0,s.jsx)(n.li,{children:"result_in_json_format: \u5fc5\u8981\u53c2\u6570\uff0c\u67e5\u8be2\u7ed3\u679c\u662f\u5426\u4ee5JSON\u683c\u5f0f\u8fd4\u56de"}),"\n",(0,s.jsx)(n.li,{children:"graph: \u53ef\u9009\u53c2\u6570\uff0cCypher\u8bed\u53e5\u6267\u884c\u7684\u5b50\u56fe\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"timeout: \u53ef\u9009\u53c2\u6570\uff0cCypher\u8bed\u53e5\u6267\u884c\u7684\u8d85\u65f6\u65f6\u95f4"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u53d1\u9001Cypher\u8bf7\u6c42\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:" LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n LGraphRequest req;\n req.set_client_version(server_version);\n req.set_token(token);\n lgraph::CypherRequest* cypher_req = req.mutable_cypher_request();\n cypher_req->set_graph(graph);\n cypher_req->set_query(query);\n cypher_req->set_timeout(timeout);\n cypher_req->set_result_in_json_format(true);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n server_version = std::max(server_version, res.server_version());\n CypherResponse cypher_res = res.cypher_response();\n"})}),"\n",(0,s.jsx)(n.p,{children:"Cypher\u8bf7\u6c42\u54cd\u5e94\u4e3a\u4ee5\u4e0b\u4e24\u4e2a\u53c2\u6570\u4e4b\u4e00\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"json_result: JSON\u683c\u5f0f\u7684cypher\u67e5\u8be2\u7ed3\u679c"}),"\n",(0,s.jsx)(n.li,{children:"binary_result: CypherResult\u683c\u5f0f\u7684cypher\u67e5\u8be2\u7ed3\u679c"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"5\u5b58\u50a8\u8fc7\u7a0b",children:"5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u4e3a\u6ee1\u8db3\u7528\u6237\u8f83\u4e3a\u590d\u6742\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\uff0cTuGraph\u652f\u6301 C \u8bed\u8a00\u548c Python \u8bed\u8a00\u7f16\u5199\u7684\u5b58\u50a8\u8fc7\u7a0b\u3002\n\u7528\u6237\u53ef\u4ee5\u4f7f\u7528RPC\u8bf7\u6c42\u5bf9\u5b58\u50a8\u8fc7\u7a0b\u8fdb\u884c\u589e\u5220\u6539\u67e5\u64cd\u4f5c\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"read_only: \u5fc5\u8981\u53c2\u6570\uff0c\u662f\u5426\u53ea\u8bfb"}),"\n",(0,s.jsx)(n.li,{children:"code: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u6587\u4ef6\u8bfb\u5165\u751f\u6210\u7684ByteString"}),"\n",(0,s.jsx)(n.li,{children:"desc: \u53ef\u9009\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),"\n",(0,s.jsx)(n.li,{children:"code_type: \u53ef\u9009\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u4ee3\u7801\u7c7b\u578b\uff0cPY\u3001SO\u3001CPP\u3001ZIP\u56db\u8005\u4e4b\u4e00"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' std::string content;\n if (!FieldSpecSerializer::FileReader(source_file, content)) {\n std::swap(content, result);\n return false;\n }\n LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->set_version(version);\n lgraph::LoadPluginRequest* loadPluginRequest = pluginRequest->mutable_load_plugin_request();\n loadPluginRequest->set_code_type([](const std::string& type) {\n std::unordered_map um{\n {"SO", lgraph::LoadPluginRequest::SO},\n {"PY", lgraph::LoadPluginRequest::PY},\n {"ZIP", lgraph::LoadPluginRequest::ZIP},\n {"CPP", lgraph::LoadPluginRequest::CPP}};\n return um[type];\n }(code_type));\n loadPluginRequest->set_name(procedure_name);\n loadPluginRequest->set_desc(procedure_description);\n loadPluginRequest->set_read_only(read_only);\n loadPluginRequest->set_code(content);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e0d\u5305\u542b\u53c2\u6570\uff0c\u5982\u679c\u52a0\u8f7d\u5931\u8d25\u5219\u629b\u51faBadInput\u5f02\u5e38"}),"\n",(0,s.jsx)(n.h3,{id:"52\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"param: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u53c2\u6570"}),"\n",(0,s.jsx)(n.li,{children:"result_in_json_format: \u53ef\u9009\u53c2\u6570\uff0c\u8c03\u7528\u7ed3\u679c\u662f\u5426\u4ee5JSON\u683c\u5f0f\u8fd4\u56de"}),"\n",(0,s.jsx)(n.li,{children:"in_process: \u53ef\u9009\u53c2\u6570\uff0c\u672a\u6765\u652f\u6301"}),"\n",(0,s.jsx)(n.li,{children:"timeout: \u53ef\u9009\u53c2\u6570\uff0c\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u8d85\u65f6\u65f6\u95f4"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::CallPluginRequest *cpRequest = pluginRequest->mutable_call_plugin_request();\n cpRequest->set_name(procedure_name);\n cpRequest->set_in_process(in_process);\n cpRequest->set_param(param);\n cpRequest->set_timeout(procedure_time_out);\n cpRequest->set_result_in_json_format(json_format);\n LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n if (json_format) {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->json_result();\n } else {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->reply();\n }\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e3a\u4ee5\u4e0b\u4e24\u4e2a\u53c2\u6570\u4e4b\u4e00\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reply: ByteString\u683c\u5f0f\u7684\u5b58\u50a8\u8fc7\u7a0b\u8c03\u7528\u7ed3\u679c"}),"\n",(0,s.jsx)(n.li,{children:"json_result: JSON\u683c\u5f0f\u7684\u5b58\u50a8\u8fc7\u7a0b\u8c03\u7528\u7ed3\u679c"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"53\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"5.3.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::DelPluginRequest* dpRequest = pluginRequest->mutable_del_plugin_request();\n dpRequest->set_name(procedure_name);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e0d\u5305\u542b\u53c2\u6570\uff0c\u5982\u679c\u5220\u9664\u5931\u8d25\u5219\u629b\u51faBadInput\u5f02\u5e38"}),"\n",(0,s.jsx)(n.h3,{id:"54\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"5.4.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u4e0d\u9700\u8981\u53c2\u6570\uff0c\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(false);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->mutable_list_plugin_request();\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n result = res.mutable_plugin_response()->mutable_list_plugin_response()->reply();\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u7684\u53c2\u6570\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reply: JSON\u683c\u5f0f\u7684procedure\u5217\u8868"}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var s=r(6540);const t={},l=s.createContext(t);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7e1f0287.cf13a33d.js b/assets/js/7e1f0287.cf13a33d.js
new file mode 100644
index 0000000000..b180117fea
--- /dev/null
+++ b/assets/js/7e1f0287.cf13a33d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3499],{3799:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>o,frontMatter:()=>l,metadata:()=>c,toc:()=>a});var s=r(4848),t=r(8453);const l={},i="RPC API",c={id:"client-tools/rpc-api",title:"RPC API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684 RPC API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/8.rpc-api.md",sourceDirName:"7.client-tools",slug:"/client-tools/rpc-api",permalink:"/tugraph-db/zh/client-tools/rpc-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RESTful API",permalink:"/tugraph-db/zh/client-tools/restful-api"},next:{title:"RESTful API Legacy",permalink:"/tugraph-db/zh/client-tools/restful-api-legacy"}},u={},a=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42",id:"2\u8bf7\u6c42",level:2},{value:"2.1.\u5efa\u7acb\u8fde\u63a5",id:"21\u5efa\u7acb\u8fde\u63a5",level:3},{value:"2.2.\u8bf7\u6c42\u7c7b\u578b",id:"22\u8bf7\u6c42\u7c7b\u578b",level:3},{value:"3.\u767b\u5f55",id:"3\u767b\u5f55",level:2},{value:"4.\u67e5\u8be2",id:"4\u67e5\u8be2",level:2},{value:"5.\u5b58\u50a8\u8fc7\u7a0b",id:"5\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"52\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.3.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"53\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.4.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"54\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3}];function p(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"rpc-api",children:"RPC API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684 RPC API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph \u63d0\u4f9b\u4e30\u5bcc\u7684 RPC API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 RPC \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,s.jsx)(n.p,{children:"RPC\uff08\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\uff09\u662f\u4e00\u79cd\u901a\u8fc7\u7f51\u7edc\u4ece\u8fdc\u7a0b\u8ba1\u7b97\u673a\u7a0b\u5e8f\u4e0a\u8bf7\u6c42\u670d\u52a1\uff0c\u800c\u4e0d\u9700\u8981\u4e86\u89e3\u5e95\u5c42\u7f51\u7edc\u6280\u672f\u7684\u534f\u8bae\u3002\n\u76f8\u6bd4REST\uff0cRPC \u9762\u5411\u65b9\u6cd5\uff0c\u4e3b\u8981\u7528\u4e8e\u51fd\u6570\u65b9\u6cd5\u7684\u8c03\u7528\uff0c\u53ef\u4ee5\u9002\u5408\u66f4\u590d\u6742\u901a\u4fe1\u9700\u6c42\u7684\u573a\u666f\uff0c\u4e14\u6027\u80fd\u66f4\u9ad8\u3002\nbrpc\u662f\u7528c++\u8bed\u8a00\u7f16\u5199\u7684\u5de5\u4e1a\u7ea7RPC\u6846\u67b6\uff0c\u57fa\u4e8ebrpc\uff0cTuGraph \u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684RPC API\uff0c\u672c\u6587\u6863\u63cf\u8ff0\nTuGraph \u7684 RPC API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"2\u8bf7\u6c42",children:"2.\u8bf7\u6c42"}),"\n",(0,s.jsx)(n.h3,{id:"21\u5efa\u7acb\u8fde\u63a5",children:"2.1.\u5efa\u7acb\u8fde\u63a5"}),"\n",(0,s.jsx)(n.p,{children:"\u5f00\u53d1\u8005\u5411TuGraph\u670d\u52a1\u53d1\u9001RPC\u8bf7\u6c42\uff0c\u9996\u5148\u8981\u5efa\u7acb\u8fde\u63a5\u3002\u4ee5C++\u8bed\u8a00\u4e3a\u4f8b\uff0c\u5f00\u53d1\u8005\u521b\u5efa\u6307\u5b9aurl\u7684\u901a\u9053\uff08channel\uff09\uff0c\n\u7531\u901a\u9053\u521b\u5efa\u6307\u5b9a\u7684\u670d\u52a1\u5b58\u6839\uff08LGraphRPCService_Stub\uff09\uff0c\u540e\u7eed\u5373\u53ef\u901a\u8fc7\u5b58\u6839\u50cf\u8c03\u7528\u672c\u5730\u65b9\u6cd5\u4e00\u6837\u5411\u8fdc\u7a0b\n\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42\u3002"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' std::shared_ptr options = std::make_shared();\n options->protocol = "baidu_std";\n options->connection_type = "";\n options->timeout_ms = 60 * 60 * 1000 /*milliseconds*/;\n options->max_retry = 3;\n std::string load_balancer = "";\n std::shared_ptr channel = std::make_shared();\n if (channel->Init(url.c_str(), load_balancer, options.get()) != 0)\n throw RpcException("Fail to initialize channel");\n LGraphRPCService_Stub stub(channel.get());\n'})}),"\n",(0,s.jsx)(n.h3,{id:"22\u8bf7\u6c42\u7c7b\u578b",children:"2.2.\u8bf7\u6c42\u7c7b\u578b"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u652f\u630110\u79cdRPC\u8bf7\u6c42\uff0c\u5176\u4e2d\u6bcf\u79cd\u8bf7\u6c42\u7684\u529f\u80fd\u5982\u4e0b\u8868\u6240\u793a\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"\u8bf7\u6c42"}),(0,s.jsx)(n.th,{children:"\u529f\u80fd"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphApiRequest"}),(0,s.jsx)(n.td,{children:"\u70b9\u8fb9\u7d22\u5f15\u64cd\u4f5c\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CypherRequest"}),(0,s.jsx)(n.td,{children:"cypher\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PluginRequest"}),(0,s.jsx)(n.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"HARequest"}),(0,s.jsx)(n.td,{children:"\u9ad8\u53ef\u7528\u6a21\u5f0f\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ImportRequest"}),(0,s.jsx)(n.td,{children:"\u6570\u636e\u5bfc\u5165\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GraphRequest"}),(0,s.jsx)(n.td,{children:"\u5b50\u56fe\u64cd\u4f5c\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AclRequest"}),(0,s.jsx)(n.td,{children:"\u6743\u9650\u7ba1\u7406\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ConfigRequest"}),(0,s.jsx)(n.td,{children:"\u914d\u7f6e\u7ba1\u7406\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"RestoreRequest"}),(0,s.jsx)(n.td,{children:"\u5907\u4efd\u8bf7\u6c42"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SchemaRequest"}),(0,s.jsx)(n.td,{children:"schema\u7ba1\u7406\u8bf7\u6c42"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u9700\u8981\u4f20\u5165\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["client_version: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u53ef\u901a\u8fc7\u5bf9\u6bd4",(0,s.jsx)(n.code,{children:"client_version"}),"\u548c",(0,s.jsx)(n.code,{children:"server_version"}),"\u9632\u6b62\u54cd\u5e94\u8fc7\u65f6\u7684\u8bf7\u6c42"]}),"\n",(0,s.jsx)(n.li,{children:"token: \u5fc5\u8981\u53c2\u6570\uff0c\u5ba2\u6237\u7aef\u767b\u9646\u4e4b\u540e\u83b7\u5f97token\uff0c\u6bcf\u6b21\u8bf7\u6c42\u4f20\u5165token\u4ee5\u6821\u9a8c\u7528\u6237\u8eab\u4efd"}),"\n",(0,s.jsx)(n.li,{children:"is_write_op: \u53ef\u9009\u53c2\u6570\uff0c\u6807\u5fd7\u8bf7\u6c42\u662f\u5426\u662f\u5199\u8bf7\u6c42"}),"\n",(0,s.jsx)(n.li,{children:"user: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u4e3b\u4ece\u4e4b\u95f4\u540c\u6b65\u8bf7\u6c42\u65f6\u8bbe\u7f6euser\uff0c\u4e0d\u9700\u9a8c\u8bc1token"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u670d\u52a1\u5904\u7406\u5b8cRPC\u8bf7\u6c42\u4e4b\u540e\u53d1\u56de\u54cd\u5e94\uff0c\u54cd\u5e94\u6d88\u606f\u4e2d\u9664\u4e86\u5305\u542b\u6bcf\u4e2a\u8bf7\u6c42\u7684\u5355\u72ec\u54cd\u5e94\u4fe1\u606f\u4e4b\u5916\uff0c\u8fd8\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"error_code: \u5fc5\u8981\u53c2\u6570\uff0c\u6807\u5fd7\u8bf7\u6c42\u5904\u7406\u72b6\u6001"}),"\n",(0,s.jsx)(n.li,{children:"redirect: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u4e0b\u5411follower\u53d1\u9001\u5199\u8bf7\u6c42\u65f6\u5904\u7406\u5931\u8d25\uff0c\u8bbe\u7f6eredirect\u4e3a\u8bf7\u6c42\u8f6c\u53d1\u5730\u5740\uff0c\u5373leader\u5730\u5740"}),"\n",(0,s.jsx)(n.li,{children:"error: \u53ef\u9009\u53c2\u6570\uff0c\u8bf7\u6c42\u9519\u8bef\u4fe1\u606f"}),"\n",(0,s.jsxs)(n.li,{children:["server_version: \u53ef\u9009\u53c2\u6570\uff0cHA\u6a21\u5f0f\u7684\u8bf7\u6c42\u54cd\u5e94\u4e2d\u8bbe\u7f6e",(0,s.jsx)(n.code,{children:"server_version"}),"\u4ee5\u907f\u514dclient\u8bfb\u53d6\u6570\u636e\u65f6\u53d1\u751f\u53cd\u5411\u65f6\u95f4\u65c5\u884c\u95ee\u9898"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,s.jsx)(n.strong,{children:"\u9664CypherRequest\u3001PluginRequest\u3001HARequest\u548cAclRequest\u5916\uff0c\u5176\u4f59RPC\u63a5\u53e3\u5c06\u9010\u6b65\u5e9f\u5f03\uff0c\u5176\u529f\u80fd\u7edf\u4e00\u81f3CypherRequest\u63a5\u53e3\u3002"})]}),"\n",(0,s.jsx)(n.h2,{id:"3\u767b\u5f55",children:"3.\u767b\u5f55"}),"\n",(0,s.jsx)(n.p,{children:"\u767b\u5f55\u8bf7\u6c42\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"user: \u5fc5\u8981\u53c2\u6570\uff0c\u7528\u6237\u540d"}),"\n",(0,s.jsx)(n.li,{children:"pass: \u5fc5\u8981\u53c2\u6570\uff0c\u5bc6\u7801\n\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u4f7f\u7528\u6784\u5efa\u597d\u7684\u670d\u52a1\u5b58\u6839\u53d1\u9001\u767b\u5f55\u8bf7\u6c42\uff1a"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:" auto* req = request.mutable_acl_request();\n auto* auth = req->mutable_auth_request()->mutable_login();\n auth->set_user(user);\n auth->set_password(pass);\n // send data\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req->set_client_version(server_version);\n req->set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), req, &resp, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n token = res.acl_response().auth_response().token();\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u767b\u5f55\u54cd\u5e94\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"token: \u5fc5\u8981\u53c2\u6570\uff0c\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c\uff0c\u5373 Json Web Token\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5e76\u4e14\u7528\u4e8e\u4ee5\u540e\u7684\u6bcf\u6b21\u53d1\u9001\u8bf7\u6c42\u3002\n\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"4\u67e5\u8be2",children:"4.\u67e5\u8be2"}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Cypher\u67e5\u8be2\u548cTuGraph\u8fdb\u884c\u7edd\u5927\u591a\u6570\u7684\u4ea4\u4e92\uff0cCypher\u8bf7\u6c42\u4fe1\u606f\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"query: \u5fc5\u8981\u53c2\u6570\uff0cCypher\u67e5\u8be2\u8bed\u53e5"}),"\n",(0,s.jsx)(n.li,{children:"param_names: \u53ef\u9009\u53c2\u6570\uff0c\u53c2\u6570\u540d"}),"\n",(0,s.jsx)(n.li,{children:"param_values: \u53ef\u9009\u53c2\u6570\uff0c\u53c2\u6570\u503c"}),"\n",(0,s.jsx)(n.li,{children:"result_in_json_format: \u5fc5\u8981\u53c2\u6570\uff0c\u67e5\u8be2\u7ed3\u679c\u662f\u5426\u4ee5JSON\u683c\u5f0f\u8fd4\u56de"}),"\n",(0,s.jsx)(n.li,{children:"graph: \u53ef\u9009\u53c2\u6570\uff0cCypher\u8bed\u53e5\u6267\u884c\u7684\u5b50\u56fe\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"timeout: \u53ef\u9009\u53c2\u6570\uff0cCypher\u8bed\u53e5\u6267\u884c\u7684\u8d85\u65f6\u65f6\u95f4"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u53d1\u9001Cypher\u8bf7\u6c42\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:" LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n LGraphRequest req;\n req.set_client_version(server_version);\n req.set_token(token);\n lgraph::CypherRequest* cypher_req = req.mutable_cypher_request();\n cypher_req->set_graph(graph);\n cypher_req->set_query(query);\n cypher_req->set_timeout(timeout);\n cypher_req->set_result_in_json_format(true);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n server_version = std::max(server_version, res.server_version());\n CypherResponse cypher_res = res.cypher_response();\n"})}),"\n",(0,s.jsx)(n.p,{children:"Cypher\u8bf7\u6c42\u54cd\u5e94\u4e3a\u4ee5\u4e0b\u4e24\u4e2a\u53c2\u6570\u4e4b\u4e00\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"json_result: JSON\u683c\u5f0f\u7684cypher\u67e5\u8be2\u7ed3\u679c"}),"\n",(0,s.jsx)(n.li,{children:"binary_result: CypherResult\u683c\u5f0f\u7684cypher\u67e5\u8be2\u7ed3\u679c"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"5\u5b58\u50a8\u8fc7\u7a0b",children:"5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u4e3a\u6ee1\u8db3\u7528\u6237\u8f83\u4e3a\u590d\u6742\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\uff0cTuGraph\u652f\u6301 C \u8bed\u8a00\u548c Python \u8bed\u8a00\u7f16\u5199\u7684\u5b58\u50a8\u8fc7\u7a0b\u3002\n\u7528\u6237\u53ef\u4ee5\u4f7f\u7528RPC\u8bf7\u6c42\u5bf9\u5b58\u50a8\u8fc7\u7a0b\u8fdb\u884c\u589e\u5220\u6539\u67e5\u64cd\u4f5c\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"read_only: \u5fc5\u8981\u53c2\u6570\uff0c\u662f\u5426\u53ea\u8bfb"}),"\n",(0,s.jsx)(n.li,{children:"code: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u6587\u4ef6\u8bfb\u5165\u751f\u6210\u7684ByteString"}),"\n",(0,s.jsx)(n.li,{children:"desc: \u53ef\u9009\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),"\n",(0,s.jsx)(n.li,{children:"code_type: \u53ef\u9009\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u4ee3\u7801\u7c7b\u578b\uff0cPY\u3001SO\u3001CPP\u3001ZIP\u56db\u8005\u4e4b\u4e00"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' std::string content;\n if (!FieldSpecSerializer::FileReader(source_file, content)) {\n std::swap(content, result);\n return false;\n }\n LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->set_version(version);\n lgraph::LoadPluginRequest* loadPluginRequest = pluginRequest->mutable_load_plugin_request();\n loadPluginRequest->set_code_type([](const std::string& type) {\n std::unordered_map um{\n {"SO", lgraph::LoadPluginRequest::SO},\n {"PY", lgraph::LoadPluginRequest::PY},\n {"ZIP", lgraph::LoadPluginRequest::ZIP},\n {"CPP", lgraph::LoadPluginRequest::CPP}};\n return um[type];\n }(code_type));\n loadPluginRequest->set_name(procedure_name);\n loadPluginRequest->set_desc(procedure_description);\n loadPluginRequest->set_read_only(read_only);\n loadPluginRequest->set_code(content);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e0d\u5305\u542b\u53c2\u6570\uff0c\u5982\u679c\u52a0\u8f7d\u5931\u8d25\u5219\u629b\u51faBadInput\u5f02\u5e38"}),"\n",(0,s.jsx)(n.h3,{id:"52\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n",(0,s.jsx)(n.li,{children:"param: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u53c2\u6570"}),"\n",(0,s.jsx)(n.li,{children:"result_in_json_format: \u53ef\u9009\u53c2\u6570\uff0c\u8c03\u7528\u7ed3\u679c\u662f\u5426\u4ee5JSON\u683c\u5f0f\u8fd4\u56de"}),"\n",(0,s.jsx)(n.li,{children:"in_process: \u53ef\u9009\u53c2\u6570\uff0c\u672a\u6765\u652f\u6301"}),"\n",(0,s.jsx)(n.li,{children:"timeout: \u53ef\u9009\u53c2\u6570\uff0c\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u8d85\u65f6\u65f6\u95f4"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::CallPluginRequest *cpRequest = pluginRequest->mutable_call_plugin_request();\n cpRequest->set_name(procedure_name);\n cpRequest->set_in_process(in_process);\n cpRequest->set_param(param);\n cpRequest->set_timeout(procedure_time_out);\n cpRequest->set_result_in_json_format(json_format);\n LGraphResponse res;\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n if (json_format) {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->json_result();\n } else {\n result = res.mutable_plugin_response()->mutable_call_plugin_response()->reply();\n }\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e3a\u4ee5\u4e0b\u4e24\u4e2a\u53c2\u6570\u4e4b\u4e00\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reply: ByteString\u683c\u5f0f\u7684\u5b58\u50a8\u8fc7\u7a0b\u8c03\u7528\u7ed3\u679c"}),"\n",(0,s.jsx)(n.li,{children:"json_result: JSON\u683c\u5f0f\u7684\u5b58\u50a8\u8fc7\u7a0b\u8c03\u7528\u7ed3\u679c"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"53\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"5.3.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u8bf7\u6c42\u5305\u542b\u4ee5\u4e0b\u53c2\u6570\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"name: \u5fc5\u8981\u53c2\u6570\uff0c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(true);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n lgraph::DelPluginRequest* dpRequest = pluginRequest->mutable_del_plugin_request();\n dpRequest->set_name(procedure_name);\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u4e0d\u5305\u542b\u53c2\u6570\uff0c\u5982\u679c\u5220\u9664\u5931\u8d25\u5219\u629b\u51faBadInput\u5f02\u5e38"}),"\n",(0,s.jsx)(n.h3,{id:"54\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"5.4.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u4e0d\u9700\u8981\u53c2\u6570\uff0c\u4ee5C++\u4e3a\u4f8b\uff0c\u7528\u6237\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u7684\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-C++",children:' LGraphRequest req;\n req.set_is_write_op(false);\n lgraph::PluginRequest* pluginRequest = req.mutable_plugin_request();\n pluginRequest->set_graph(graph);\n pluginRequest->set_type(procedure_type == "CPP" ? lgraph::PluginRequest::CPP\n : lgraph::PluginRequest::PYTHON);\n pluginRequest->mutable_list_plugin_request();\n cntl->Reset();\n cntl->request_attachment().append(FLAGS_attachment);\n req.set_client_version(server_version);\n req.set_token(token);\n LGraphRPCService_Stub stub(channel.get());\n LGraphResponse res;\n stub.HandleRequest(cntl.get(), &req, &res, nullptr);\n if (cntl->Failed()) throw RpcConnectionException(cntl->ErrorText());\n server_version = std::max(server_version, res.server_version());\n if (res.error_code() != LGraphResponse::SUCCESS) throw RpcStatusException(res.error());\n result = res.mutable_plugin_response()->mutable_list_plugin_response()->reply();\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b\u7684\u54cd\u5e94\u7684\u53c2\u6570\u5982\u4e0b\u6240\u793a\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reply: JSON\u683c\u5f0f\u7684procedure\u5217\u8868"}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>c});var s=r(6540);const t={},l=s.createContext(t);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7e9b634d.b1019014.js b/assets/js/7e9b634d.b1019014.js
deleted file mode 100644
index abf9e00d97..0000000000
--- a/assets/js/7e9b634d.b1019014.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1355],{1502:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>h,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>u});var t=n(4848),c=n(8453);const s={},i="\u591a\u5c42\u7ea7\u63a5\u53e3",o={id:"zh-CN/source/introduction/characteristics/multi-level-Interfaces",title:"\u591a\u5c42\u7ea7\u63a5\u53e3",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u591a\u5c42\u7ea7\u63a5\u53e3\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/5.characteristics/2.multi-level-Interfaces.md",sourceDirName:"zh-CN/source/2.introduction/5.characteristics",slug:"/zh-CN/source/introduction/characteristics/multi-level-Interfaces",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/multi-level-Interfaces",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6027\u80fd\u4f18\u5148",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/performance-oriented"},next:{title:"HTAP",permalink:"/tugraph-db/zh-CN/source/introduction/characteristics/htap"}},h={},u=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5ba2\u6237\u7aef\u63a5\u53e3",id:"2\u5ba2\u6237\u7aef\u63a5\u53e3",level:2},{value:"3.\u670d\u52a1\u7aef\u63a5\u53e3",id:"3\u670d\u52a1\u7aef\u63a5\u53e3",level:2}];function l(e){const r={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u591a\u5c42\u7ea7\u63a5\u53e3",children:"\u591a\u5c42\u7ea7\u63a5\u53e3"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsx)(r.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u591a\u5c42\u7ea7\u63a5\u53e3\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002"}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,t.jsx)(r.p,{children:"\u591a\u5c42\u7ea7\u63a5\u53e3\u662f TuGraph \u9488\u5bf9\u591a\u4e30\u5bcc\u7684\u4f7f\u7528\u573a\u666f\uff0c\u5728\u6613\u7528\u6027\u548c\u9ad8\u6027\u4e2d\u4f5c\u51fa\u7684\u5e73\u8861\u3002\u6bd4\u5982\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Cypher \u80fd\u591f\u62b9\u53bb\u56fe\u6570\u636e\u5e93\u5b9e\u73b0\u7684\u7ec6\u8282\uff0c\u57fa\u4e8e\u56fe\u6a21\u578b\u7684\u62bd\u8c61\u6765\u8fdb\u884c\u8868\u8fbe\u3002Cypher \u8fc7\u4e8e\u9ad8\u5c42\u7684\u8868\u8ff0\uff0c\u65e0\u6cd5\u9ad8\u6548\u8f6c\u5316\u6210\u5e95\u5c42\u7684\u6267\u884c\uff0c\u56e0\u6b64\u63d0\u4f9b\u4e86 Procedure API \u7684\u8fc7\u7a0b\u5f0f\u8bed\u8a00\uff0c\u6765\u53d1\u6325\u56fe\u6570\u636e\u5e93\u7684\u6700\u4f73\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u63a5\u53e3\u53ef\u4ee5\u5927\u81f4\u5206\u4e3a\u5ba2\u6237\u7aef\u63a5\u53e3\u548c\u670d\u52a1\u7aef\u63a5\u53e3\uff0c\u5927\u90e8\u5206\u64cd\u4f5c\u90fd\u5728\u670d\u52a1\u7aef\u5b8c\u6210\uff0c\u5ba2\u6237\u7aef\u53ea\u505a\u6570\u636e\u7684\u5c01\u88c5\u548c\u89e3\u6790\u3002\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u901a\u8fc7\u7f51\u7edc\u8fde\u63a5\uff0cTuGraph \u652f\u6301\u66f4\u52a0\u7075\u6d3b\u7684\u77ed\u8fde\u63a5 REST \u534f\u8bae\uff0c\u4ee5\u53ca\u66f4\u52a0\u9ad8\u6548\u7684\u957f\u94fe\u63a5 RPC \u534f\u8bae\uff0c\u53ef\u6839\u636e\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\u6765\u9009\u62e9\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u670d\u52a1\u7aef\u63a5\u53e3\u5747\u5904\u5728\u8ba1\u7b97\u5c42\uff0c\u548c\u56fe\u6570\u636e\u5b58\u50a8\u95f4\u7528\u4e00\u5c42 Core API \u5728\u903b\u8f91\u4e0a\u9694\u5f00\u3002"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"\u591a\u5c42\u7ea7\u63a5\u53e3\u67b6\u6784",src:n(9511).A+"",width:"740",height:"478"})}),"\n",(0,t.jsx)(r.h2,{id:"2\u5ba2\u6237\u7aef\u63a5\u53e3",children:"2.\u5ba2\u6237\u7aef\u63a5\u53e3"}),"\n",(0,t.jsx)(r.p,{children:"\u5ba2\u6237\u7aef\u63a5\u53e3\u6307\u5728\u5ba2\u6237\u7aef\u6267\u884c\u7684\u63a5\u53e3\uff0c\u901a\u5e38\u7528\u4e8e\u96c6\u6210\u5230\u8f6f\u4ef6\u5e94\u7528\u4e2d\u3002TuGraph \u7684\u5ba2\u6237\u7aef\u7684\u63a5\u53e3\u6bd4\u8f83\u7b80\u5355\uff0c\u5305\u62ec\u767b\u5f55\u767b\u51fa\u3001\u6570\u636e\u5bfc\u5165\u5bfc\u51fa\u3001\u5b58\u50a8\u8fc7\u7a0b\u52a0\u8f7d\u8c03\u7528\u3001Cypher\u64cd\u4f5c\u7b49\u3002\u5176\u4e2d Cypher \u4e2d\u96c6\u6210\u4e86\u5927\u90e8\u5206\u7684\u529f\u80fd\uff0c\u5305\u62ec\u6570\u636e\u64cd\u4f5c\u3001\u56fe\u6a21\u578b\u64cd\u4f5c\u3001\u8fd0\u7ef4\u7ba1\u7406\u3001\u8d26\u6237\u7ba1\u7406\u7b49\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u7531\u4e8e Cypher \u7684\u53c2\u6570\u548c\u8fd4\u56de\u503c\u90fd\u662f\u5b57\u7b26\u4e32\uff0cJAVA OGM \u662f\u5bf9 Cypher \u7684\u7ed3\u6784\u5316\u5c01\u88c5\uff0c\u5373\u67e5\u8be2\u7ed3\u679c\u80fd\u591f\u88ab\u5c01\u88c5\u4e3a\u4e00\u4e2a\u6709\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u65b9\u4fbf\u4f7f\u7528\u3002"}),"\n",(0,t.jsx)(r.h2,{id:"3\u670d\u52a1\u7aef\u63a5\u53e3",children:"3.\u670d\u52a1\u7aef\u63a5\u53e3"}),"\n",(0,t.jsx)(r.p,{children:"\u670d\u52a1\u7aef\u63a5\u53e3\u5305\u62ec\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Cypher\u3001\u8fc7\u7a0b\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Procedure API\u3001\u56fe\u5206\u6790\u7f16\u7a0b\u6846\u67b6 OLAP API \u548c\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6 GNN PI\uff0c\u4e3a\u56fe\u4e8b\u52a1\u5f15\u64ce\u3001\u56fe\u5206\u6790\u5f15\u64ce\u3001\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u63d0\u4f9b\u670d\u52a1\uff0c\u4e0b\u9762\u5148\u5c55\u5f00\u4ecb\u7ecd\u5404\u4e2a\u63a5\u53e3\u7684\u7279\u70b9\u3002"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00"})," \u662f\u5bf9\u67e5\u8be2\u903b\u8f91\u7684\u62bd\u8c61\u63cf\u8ff0\uff0c\u800c\u4e0e\u6267\u884c\u903b\u8f91\u65e0\u5173\uff0c\u5bf9\u56fe\u6570\u636e\u5e93\u5e94\u7528\u8005\u6bd4\u8f83\u53cb\u597d\uff0c\u7c7b\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684 SQL \u8bed\u8a00\u3002TuGraph \u7684 Cypher \u8bed\u8a00\u4e3b\u8981\u4f9d\u7167 Neo4j \u5f00\u6e90\u7684 OpenCypher \u67e5\u8be2\u6807\u51c6\uff0c\u540c\u65f6\u5bf9\u8fd0\u7ef4\u7ba1\u7406\u7b49\u8f85\u52a9\u529f\u80fd\u8fdb\u884c\u4e86\u6269\u5c55\uff0c\u5728\u529f\u80fd\u4e0a\u56ca\u62ec\u4e86 TuGraph \u7684\u5927\u90e8\u5206\u64cd\u4f5c\u3002\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00\u4f1a\u6210\u4e3a\u56fe\u6570\u636e\u5e93\u7684\u4e3b\u8981\u6570\u636e\u64cd\u4f5c\u65b9\u5f0f\uff0c\u4f46\u7531\u4e8e\u63cf\u8ff0\u5230\u6267\u884c\u4e4b\u95f4\u9700\u8981\u751f\u6210\u6267\u884c\u8ba1\u5212\uff08Execution Plan\uff09\uff0c\u751f\u6210\u6700\u4f18\u6267\u884c\u8ba1\u5212\u5728\u5b66\u672f\u754c\u548c\u5de5\u4e1a\u754c\u5747\u6709\u5f88\u957f\u7684\u8def\u8981\u8d70\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u8fc7\u7a0b\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00"})," \u662f\u4e3a\u4e86\u89e3\u51b3\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00\u4e0e\u6700\u4f18\u6027\u80fd\u95f4\u7684\u9e3f\u6c9f\u3002TuGraph\u7684 Procedure API \u662f\u5728 Core API \u4e0a\u505a\u4e86\u4e00\u5c42\u7b80\u5355\u7684\u5c01\u88c5\uff0cC++ Procedure API\u7684\u7075\u6d3b\u6027\u548c\u9ad8\u6548\u6027\u80fd\u591f\u5145\u5206\u53d1\u6325\u5b58\u50a8\u7684\u6781\u81f4\u6027\u80fd\uff0c\u4e5f\u662f Cypher \u4f18\u5316\u7684\u4e0a\u9650\u6027\u80fd\u3002Python Procedure API \u662f C++ Procedure API \u4e0a\u7684\u4e00\u5c42\u8de8\u8bed\u8a00\u5c01\u88c5\uff0c\u7ffb\u8bd1\u8fc7\u7a0b\u4e2d\u503c\u7684\u62f7\u8d1d\u4f1a\u5e26\u6765\u4e00\u5b9a\u7684\u6027\u80fd\u635f\u5931\uff0c\u4f18\u52bf\u5219\u4e3b\u8981\u662f python \u8bed\u8a00\u672c\u8eab\u7684\u6613\u7528\u6027\u3002raversal API \u662f\u5e76\u884c\u6267\u884c\u7684 Procedure \u63a5\u53e3\uff0c\u63cf\u8ff0\u4e0a\u66f4\u63a5\u8fd1\u4e8e\u96c6\u5408\u7684\u64cd\u4f5c\uff0c\u6bd4\u5982\u6269\u5c55\u70b9\u96c6\u5408\u6240\u6709\u51fa\u5ea6\u90bb\u5c45\uff0c\u83b7\u5f97\u4e00\u4e2a\u65b0\u7684\u70b9\u96c6\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u56fe\u5206\u6790\u7f16\u7a0b\u6846\u67b6"})," \u5c5e\u4e8e \u2018\u56fe\u8ba1\u7b97\u7cfb\u7edf\u2019 \u7684\u8303\u7574\uff0c\u4f1a\u5c06\u56fe\u6570\u636e\u4ece\u652f\u6301\u589e\u5220\u6539\u67e5\u7684\u5b58\u50a8\u4e2d\u5bfc\u51fa\u5feb\u7167\uff0c\u4ee5\u66f4\u7d27\u51d1\u7684\u6570\u636e\u5b58\u50a8\u683c\u5f0f\u6765\u652f\u6301\u53ea\u8bfb\u7684\u590d\u6742\u56fe\u5206\u6790\uff0c\u8fd9\u91cc\u53eb\u505aOLAP API\u3002OLAP API \u5c01\u88c5\u4e86\u9ad8\u5e76\u53d1\u6267\u884c\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec Vector\u3001Bitmap\u7b49\uff0c\u4ee5\u53ca\u57fa\u4e8e CSR \u683c\u5f0f\u7684\u56fe\u5feb\u7167\u6570\u636e\u7ed3\u6784\uff0c\u7136\u540e\u63d0\u4f9b\u4e00\u5957\u5e76\u53d1\u7684\u5feb\u901f\u70b9\u8fb9\u64cd\u4f5c\u6846\u67b6\u3002\u5728\u56fe\u5206\u6790\u4efb\u52a1\u5b8c\u6210\u540e\uff0c\u6570\u636e\u53ef\u4ee5\u901a\u8fc7\u63a5\u53e3\u5199\u56de\u56fe\u6570\u636e\u5e93\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6"})," \u4e3b\u8981\u63d0\u4f9b\u4e86\u56fe\u795e\u7ecf\u7f51\u7edc\u5e94\u7528\u7f16\u7a0b\u6240\u9700\u8981\u7684\u63a5\u53e3\uff0c\u80fd\u591f\u5bf9\u63a5PyTorch \u7b49\u673a\u5668\u5b66\u4e60\u6846\u67b6\u3002TuGraph \u7684\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6\u4e3b\u8981\u96c6\u6210\u4e86 DGL\uff0c\u5728 Python \u7684\u8bed\u8a00\u73af\u5883\u4e2d\u5b8c\u6210\u4ece\u56fe\u5b58\u50a8\u5230\u56fe\u795e\u7ecf\u7f51\u7edc\u5e94\u7528\u7684\u5b8c\u6574\u6d41\u7a0b\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"\u9664\u4e86 Cypher \u662f\u89e3\u91ca\u6267\u884c\u5916\uff0c\u5176\u4f59\u670d\u52a1\u7aef\u63a5\u53e3\u90fd\u662f\u7f16\u8bd1\u6267\u884c\uff0c\u5373\u9700\u8981\u5c06\u5bf9\u5e94\u4ee3\u7801\u4f20\u5230\u670d\u52a1\u7aef\u540e\uff0c\u8fdb\u884c\u7f16\u8bd1\uff08\u53ef\u80fd\u4f1a\u6709\u65f6\u95f4\u5f00\u9500\uff09\uff0c\u518d\u5728\u670d\u52a1\u7aef\u6267\u884c\u3002\u6240\u4ee5\u901a\u5e38\u9700\u8981\u5148\u52a0\u8f7d\uff0c\u7136\u540e\u518d\u5df2\u52a0\u8f7d\u7684\u5e94\u7528\u5217\u8868\u4e2d\u627e\u5230\u7a0b\u5e8f\uff0c\u4f20\u8f93\u5165\u53c2\u6570\u540e\u6267\u884c\u3002"})]})}function d(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},9511:(e,r,n)=>{n.d(r,{A:()=>t});const t=n.p+"assets/images/multi-level-Interfaces-8ff5e9f00b26371a33f6de384bc2d9cb.png"},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var t=n(6540);const c={},s=t.createContext(c);function i(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7e9b634d.d789e32b.js b/assets/js/7e9b634d.d789e32b.js
new file mode 100644
index 0000000000..f94e51cad4
--- /dev/null
+++ b/assets/js/7e9b634d.d789e32b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1355],{1502:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>h,contentTitle:()=>i,default:()=>a,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var t=n(4848),c=n(8453);const s={},i="\u591a\u5c42\u7ea7\u63a5\u53e3",o={id:"introduction/characteristics/multi-level-Interfaces",title:"\u591a\u5c42\u7ea7\u63a5\u53e3",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u591a\u5c42\u7ea7\u63a5\u53e3\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002",source:"@site/../docs/zh-CN/source/2.introduction/5.characteristics/2.multi-level-Interfaces.md",sourceDirName:"2.introduction/5.characteristics",slug:"/introduction/characteristics/multi-level-Interfaces",permalink:"/tugraph-db/zh/introduction/characteristics/multi-level-Interfaces",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6027\u80fd\u4f18\u5148",permalink:"/tugraph-db/zh/introduction/characteristics/performance-oriented"},next:{title:"HTAP",permalink:"/tugraph-db/zh/introduction/characteristics/htap"}},h={},l=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5ba2\u6237\u7aef\u63a5\u53e3",id:"2\u5ba2\u6237\u7aef\u63a5\u53e3",level:2},{value:"3.\u670d\u52a1\u7aef\u63a5\u53e3",id:"3\u670d\u52a1\u7aef\u63a5\u53e3",level:2}];function d(e){const r={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",strong:"strong",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u591a\u5c42\u7ea7\u63a5\u53e3",children:"\u591a\u5c42\u7ea7\u63a5\u53e3"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsx)(r.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u591a\u5c42\u7ea7\u63a5\u53e3\u7684\u8bbe\u8ba1\u7406\u5ff5\u3002"}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,t.jsx)(r.p,{children:"\u591a\u5c42\u7ea7\u63a5\u53e3\u662f TuGraph \u9488\u5bf9\u591a\u4e30\u5bcc\u7684\u4f7f\u7528\u573a\u666f\uff0c\u5728\u6613\u7528\u6027\u548c\u9ad8\u6027\u4e2d\u4f5c\u51fa\u7684\u5e73\u8861\u3002\u6bd4\u5982\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Cypher \u80fd\u591f\u62b9\u53bb\u56fe\u6570\u636e\u5e93\u5b9e\u73b0\u7684\u7ec6\u8282\uff0c\u57fa\u4e8e\u56fe\u6a21\u578b\u7684\u62bd\u8c61\u6765\u8fdb\u884c\u8868\u8fbe\u3002Cypher \u8fc7\u4e8e\u9ad8\u5c42\u7684\u8868\u8ff0\uff0c\u65e0\u6cd5\u9ad8\u6548\u8f6c\u5316\u6210\u5e95\u5c42\u7684\u6267\u884c\uff0c\u56e0\u6b64\u63d0\u4f9b\u4e86 Procedure API \u7684\u8fc7\u7a0b\u5f0f\u8bed\u8a00\uff0c\u6765\u53d1\u6325\u56fe\u6570\u636e\u5e93\u7684\u6700\u4f73\u6027\u80fd\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u63a5\u53e3\u53ef\u4ee5\u5927\u81f4\u5206\u4e3a\u5ba2\u6237\u7aef\u63a5\u53e3\u548c\u670d\u52a1\u7aef\u63a5\u53e3\uff0c\u5927\u90e8\u5206\u64cd\u4f5c\u90fd\u5728\u670d\u52a1\u7aef\u5b8c\u6210\uff0c\u5ba2\u6237\u7aef\u53ea\u505a\u6570\u636e\u7684\u5c01\u88c5\u548c\u89e3\u6790\u3002\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u901a\u8fc7\u7f51\u7edc\u8fde\u63a5\uff0cTuGraph \u652f\u6301\u66f4\u52a0\u7075\u6d3b\u7684\u77ed\u8fde\u63a5 REST \u534f\u8bae\uff0c\u4ee5\u53ca\u66f4\u52a0\u9ad8\u6548\u7684\u957f\u94fe\u63a5 RPC \u534f\u8bae\uff0c\u53ef\u6839\u636e\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\u6765\u9009\u62e9\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u670d\u52a1\u7aef\u63a5\u53e3\u5747\u5904\u5728\u8ba1\u7b97\u5c42\uff0c\u548c\u56fe\u6570\u636e\u5b58\u50a8\u95f4\u7528\u4e00\u5c42 Core API \u5728\u903b\u8f91\u4e0a\u9694\u5f00\u3002"}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"\u591a\u5c42\u7ea7\u63a5\u53e3\u67b6\u6784",src:n(9511).A+"",width:"740",height:"478"})}),"\n",(0,t.jsx)(r.h2,{id:"2\u5ba2\u6237\u7aef\u63a5\u53e3",children:"2.\u5ba2\u6237\u7aef\u63a5\u53e3"}),"\n",(0,t.jsx)(r.p,{children:"\u5ba2\u6237\u7aef\u63a5\u53e3\u6307\u5728\u5ba2\u6237\u7aef\u6267\u884c\u7684\u63a5\u53e3\uff0c\u901a\u5e38\u7528\u4e8e\u96c6\u6210\u5230\u8f6f\u4ef6\u5e94\u7528\u4e2d\u3002TuGraph \u7684\u5ba2\u6237\u7aef\u7684\u63a5\u53e3\u6bd4\u8f83\u7b80\u5355\uff0c\u5305\u62ec\u767b\u5f55\u767b\u51fa\u3001\u6570\u636e\u5bfc\u5165\u5bfc\u51fa\u3001\u5b58\u50a8\u8fc7\u7a0b\u52a0\u8f7d\u8c03\u7528\u3001Cypher\u64cd\u4f5c\u7b49\u3002\u5176\u4e2d Cypher \u4e2d\u96c6\u6210\u4e86\u5927\u90e8\u5206\u7684\u529f\u80fd\uff0c\u5305\u62ec\u6570\u636e\u64cd\u4f5c\u3001\u56fe\u6a21\u578b\u64cd\u4f5c\u3001\u8fd0\u7ef4\u7ba1\u7406\u3001\u8d26\u6237\u7ba1\u7406\u7b49\u3002"}),"\n",(0,t.jsx)(r.p,{children:"\u7531\u4e8e Cypher \u7684\u53c2\u6570\u548c\u8fd4\u56de\u503c\u90fd\u662f\u5b57\u7b26\u4e32\uff0cJAVA OGM \u662f\u5bf9 Cypher \u7684\u7ed3\u6784\u5316\u5c01\u88c5\uff0c\u5373\u67e5\u8be2\u7ed3\u679c\u80fd\u591f\u88ab\u5c01\u88c5\u4e3a\u4e00\u4e2a\u6709\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u65b9\u4fbf\u4f7f\u7528\u3002"}),"\n",(0,t.jsx)(r.h2,{id:"3\u670d\u52a1\u7aef\u63a5\u53e3",children:"3.\u670d\u52a1\u7aef\u63a5\u53e3"}),"\n",(0,t.jsx)(r.p,{children:"\u670d\u52a1\u7aef\u63a5\u53e3\u5305\u62ec\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Cypher\u3001\u8fc7\u7a0b\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00 Procedure API\u3001\u56fe\u5206\u6790\u7f16\u7a0b\u6846\u67b6 OLAP API \u548c\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6 GNN PI\uff0c\u4e3a\u56fe\u4e8b\u52a1\u5f15\u64ce\u3001\u56fe\u5206\u6790\u5f15\u64ce\u3001\u56fe\u795e\u7ecf\u7f51\u7edc\u5f15\u64ce\u63d0\u4f9b\u670d\u52a1\uff0c\u4e0b\u9762\u5148\u5c55\u5f00\u4ecb\u7ecd\u5404\u4e2a\u63a5\u53e3\u7684\u7279\u70b9\u3002"}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00"})," \u662f\u5bf9\u67e5\u8be2\u903b\u8f91\u7684\u62bd\u8c61\u63cf\u8ff0\uff0c\u800c\u4e0e\u6267\u884c\u903b\u8f91\u65e0\u5173\uff0c\u5bf9\u56fe\u6570\u636e\u5e93\u5e94\u7528\u8005\u6bd4\u8f83\u53cb\u597d\uff0c\u7c7b\u6bd4\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684 SQL \u8bed\u8a00\u3002TuGraph \u7684 Cypher \u8bed\u8a00\u4e3b\u8981\u4f9d\u7167 Neo4j \u5f00\u6e90\u7684 OpenCypher \u67e5\u8be2\u6807\u51c6\uff0c\u540c\u65f6\u5bf9\u8fd0\u7ef4\u7ba1\u7406\u7b49\u8f85\u52a9\u529f\u80fd\u8fdb\u884c\u4e86\u6269\u5c55\uff0c\u5728\u529f\u80fd\u4e0a\u56ca\u62ec\u4e86 TuGraph \u7684\u5927\u90e8\u5206\u64cd\u4f5c\u3002\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00\u4f1a\u6210\u4e3a\u56fe\u6570\u636e\u5e93\u7684\u4e3b\u8981\u6570\u636e\u64cd\u4f5c\u65b9\u5f0f\uff0c\u4f46\u7531\u4e8e\u63cf\u8ff0\u5230\u6267\u884c\u4e4b\u95f4\u9700\u8981\u751f\u6210\u6267\u884c\u8ba1\u5212\uff08Execution Plan\uff09\uff0c\u751f\u6210\u6700\u4f18\u6267\u884c\u8ba1\u5212\u5728\u5b66\u672f\u754c\u548c\u5de5\u4e1a\u754c\u5747\u6709\u5f88\u957f\u7684\u8def\u8981\u8d70\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u8fc7\u7a0b\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00"})," \u662f\u4e3a\u4e86\u89e3\u51b3\u63cf\u8ff0\u5f0f\u56fe\u67e5\u8be2\u8bed\u8a00\u4e0e\u6700\u4f18\u6027\u80fd\u95f4\u7684\u9e3f\u6c9f\u3002TuGraph\u7684 Procedure API \u662f\u5728 Core API \u4e0a\u505a\u4e86\u4e00\u5c42\u7b80\u5355\u7684\u5c01\u88c5\uff0cC++ Procedure API\u7684\u7075\u6d3b\u6027\u548c\u9ad8\u6548\u6027\u80fd\u591f\u5145\u5206\u53d1\u6325\u5b58\u50a8\u7684\u6781\u81f4\u6027\u80fd\uff0c\u4e5f\u662f Cypher \u4f18\u5316\u7684\u4e0a\u9650\u6027\u80fd\u3002Python Procedure API \u662f C++ Procedure API \u4e0a\u7684\u4e00\u5c42\u8de8\u8bed\u8a00\u5c01\u88c5\uff0c\u7ffb\u8bd1\u8fc7\u7a0b\u4e2d\u503c\u7684\u62f7\u8d1d\u4f1a\u5e26\u6765\u4e00\u5b9a\u7684\u6027\u80fd\u635f\u5931\uff0c\u4f18\u52bf\u5219\u4e3b\u8981\u662f python \u8bed\u8a00\u672c\u8eab\u7684\u6613\u7528\u6027\u3002raversal API \u662f\u5e76\u884c\u6267\u884c\u7684 Procedure \u63a5\u53e3\uff0c\u63cf\u8ff0\u4e0a\u66f4\u63a5\u8fd1\u4e8e\u96c6\u5408\u7684\u64cd\u4f5c\uff0c\u6bd4\u5982\u6269\u5c55\u70b9\u96c6\u5408\u6240\u6709\u51fa\u5ea6\u90bb\u5c45\uff0c\u83b7\u5f97\u4e00\u4e2a\u65b0\u7684\u70b9\u96c6\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u56fe\u5206\u6790\u7f16\u7a0b\u6846\u67b6"})," \u5c5e\u4e8e \u2018\u56fe\u8ba1\u7b97\u7cfb\u7edf\u2019 \u7684\u8303\u7574\uff0c\u4f1a\u5c06\u56fe\u6570\u636e\u4ece\u652f\u6301\u589e\u5220\u6539\u67e5\u7684\u5b58\u50a8\u4e2d\u5bfc\u51fa\u5feb\u7167\uff0c\u4ee5\u66f4\u7d27\u51d1\u7684\u6570\u636e\u5b58\u50a8\u683c\u5f0f\u6765\u652f\u6301\u53ea\u8bfb\u7684\u590d\u6742\u56fe\u5206\u6790\uff0c\u8fd9\u91cc\u53eb\u505aOLAP API\u3002OLAP API \u5c01\u88c5\u4e86\u9ad8\u5e76\u53d1\u6267\u884c\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec Vector\u3001Bitmap\u7b49\uff0c\u4ee5\u53ca\u57fa\u4e8e CSR \u683c\u5f0f\u7684\u56fe\u5feb\u7167\u6570\u636e\u7ed3\u6784\uff0c\u7136\u540e\u63d0\u4f9b\u4e00\u5957\u5e76\u53d1\u7684\u5feb\u901f\u70b9\u8fb9\u64cd\u4f5c\u6846\u67b6\u3002\u5728\u56fe\u5206\u6790\u4efb\u52a1\u5b8c\u6210\u540e\uff0c\u6570\u636e\u53ef\u4ee5\u901a\u8fc7\u63a5\u53e3\u5199\u56de\u56fe\u6570\u636e\u5e93\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6"})," \u4e3b\u8981\u63d0\u4f9b\u4e86\u56fe\u795e\u7ecf\u7f51\u7edc\u5e94\u7528\u7f16\u7a0b\u6240\u9700\u8981\u7684\u63a5\u53e3\uff0c\u80fd\u591f\u5bf9\u63a5PyTorch \u7b49\u673a\u5668\u5b66\u4e60\u6846\u67b6\u3002TuGraph \u7684\u56fe\u795e\u7ecf\u7f51\u7edc\u7f16\u7a0b\u6846\u67b6\u4e3b\u8981\u96c6\u6210\u4e86 DGL\uff0c\u5728 Python \u7684\u8bed\u8a00\u73af\u5883\u4e2d\u5b8c\u6210\u4ece\u56fe\u5b58\u50a8\u5230\u56fe\u795e\u7ecf\u7f51\u7edc\u5e94\u7528\u7684\u5b8c\u6574\u6d41\u7a0b\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.p,{children:"\u9664\u4e86 Cypher \u662f\u89e3\u91ca\u6267\u884c\u5916\uff0c\u5176\u4f59\u670d\u52a1\u7aef\u63a5\u53e3\u90fd\u662f\u7f16\u8bd1\u6267\u884c\uff0c\u5373\u9700\u8981\u5c06\u5bf9\u5e94\u4ee3\u7801\u4f20\u5230\u670d\u52a1\u7aef\u540e\uff0c\u8fdb\u884c\u7f16\u8bd1\uff08\u53ef\u80fd\u4f1a\u6709\u65f6\u95f4\u5f00\u9500\uff09\uff0c\u518d\u5728\u670d\u52a1\u7aef\u6267\u884c\u3002\u6240\u4ee5\u901a\u5e38\u9700\u8981\u5148\u52a0\u8f7d\uff0c\u7136\u540e\u518d\u5df2\u52a0\u8f7d\u7684\u5e94\u7528\u5217\u8868\u4e2d\u627e\u5230\u7a0b\u5e8f\uff0c\u4f20\u8f93\u5165\u53c2\u6570\u540e\u6267\u884c\u3002"})]})}function a(e={}){const{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},9511:(e,r,n)=>{n.d(r,{A:()=>t});const t=n.p+"assets/images/multi-level-Interfaces-8ff5e9f00b26371a33f6de384bc2d9cb.png"},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var t=n(6540);const c={},s=t.createContext(c);function i(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7f99a0c3.7878e52e.js b/assets/js/7f99a0c3.7878e52e.js
new file mode 100644
index 0000000000..29d721b8e9
--- /dev/null
+++ b/assets/js/7f99a0c3.7878e52e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9503],{9904:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>s,toc:()=>a});var i=n(4848),r=n(8453);const t={},l="Log",s={id:"permission/log",title:"Log",description:"This document mainly introduces the logging function of TuGraph.",source:"@site/../docs/en-US/source/10.permission/5.log.md",sourceDirName:"10.permission",slug:"/permission/log",permalink:"/tugraph-db/en/permission/log",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Monitoring",permalink:"/tugraph-db/en/permission/monitoring"},next:{title:"Unit Testing",permalink:"/tugraph-db/en/quality/unit-testing"}},d={},a=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Server log",id:"2server-log",level:2},{value:"2.1.Server Log Configuration Items",id:"21server-log-configuration-items",level:3},{value:"2.2.Example of Server Log Output Macro Usage",id:"22example-of-server-log-output-macro-usage",level:3},{value:"2.3.Procedure log",id:"23procedure-log",level:3},{value:"2.3.1.Cpp procedure",id:"231cpp-procedure",level:4},{value:"2.3.1.python procedure",id:"231python-procedure",level:4},{value:"3.Audit log",id:"3audit-log",level:2}];function c(e){const o={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.header,{children:(0,i.jsx)(o.h1,{id:"log",children:"Log"})}),"\n",(0,i.jsxs)(o.blockquote,{children:["\n",(0,i.jsx)(o.p,{children:"This document mainly introduces the logging function of TuGraph."}),"\n"]}),"\n",(0,i.jsx)(o.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,i.jsx)(o.p,{children:"TuGraph keeps two types of logs: server logs and audit logs. Server logs record human-readable server status information, while audit logs maintain encrypted information for every operation performed on the server."}),"\n",(0,i.jsx)(o.h2,{id:"2server-log",children:"2.Server log"}),"\n",(0,i.jsx)(o.h3,{id:"21server-log-configuration-items",children:"2.1.Server Log Configuration Items"}),"\n",(0,i.jsxs)(o.p,{children:["The output directory of server logs can be specified through the ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item. The level of log can be specified through the ",(0,i.jsx)(o.code,{children:"verbose"})," configuration item."]}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty by default. If ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty, then all logs will be write to the console(nothing will be written to the console if the ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty under daemon mode); if ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is configured specifically, log files will bew generated under that path. The maximum size of a single log file is 256MB."]}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"verbose"})," configuration item controls the level of log, and is divided into three levels of ",(0,i.jsx)(o.code,{children:"0, 1, 2"}),". Ther verbosity of log record grows as the number grows. The default level is ",(0,i.jsx)(o.code,{children:"1"}),". When the level is set to ",(0,i.jsx)(o.code,{children:"2"}),", the server will print logs in ",(0,i.jsx)(o.code,{children:"DEBUG"})," level and above. When the level is set to ",(0,i.jsx)(o.code,{children:"1"}),", the server will print logs in ",(0,i.jsx)(o.code,{children:"INFO"})," level and above. When the level is set to ",(0,i.jsx)(o.code,{children:"0"}),", the server will print log in ",(0,i.jsx)(o.code,{children:"ERROR"})," level and above."]}),"\n",(0,i.jsx)(o.h3,{id:"22example-of-server-log-output-macro-usage",children:"2.2.Example of Server Log Output Macro Usage"}),"\n",(0,i.jsx)(o.p,{children:"If the developer wants to add logs to the code during development, they can refer to the following example:"}),"\n",(0,i.jsx)(o.pre,{children:(0,i.jsx)(o.code,{children:'#include "tools/lgraph_log.h" // add log dependency.\n\nvoid LogExample() {\n // The log module has been initialized during the database startup, and developers can directly call the macro.\n // The log level is divided into five levels: DEBUG, INFO, WARNING, ERROR, and FATAL.\n\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n LOG_FATAL() << "This is a fatal level log message.";\n}\n'})}),"\n",(0,i.jsx)(o.p,{children:"You can also refer to the log macro usage in test/test_lgraph_log.cpp."}),"\n",(0,i.jsx)(o.h3,{id:"23procedure-log",children:"2.3.Procedure log"}),"\n",(0,i.jsxs)(o.p,{children:["Developers can use the log function to output debug information that they need to the log for looking up and assisting development during the development of procedures. Debug information will be output to the same log file as the server log (if ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is not specified, it will also be output to the console)"]}),"\n",(0,i.jsx)(o.h4,{id:"231cpp-procedure",children:"2.3.1.Cpp procedure"}),"\n",(0,i.jsxs)(o.p,{children:["Please use the log macro provided in 2.2 to output debug information, and avoid using output methods such as cout or printf. For specific usage, please refer to the following sample code (see ",(0,i.jsx)(o.code,{children:"procedures/demo/log_demo.cpp"})," for details)"]}),"\n",(0,i.jsx)(o.pre,{children:(0,i.jsx)(o.code,{children:'#include \n#include "lgraph/lgraph.h"\n#include "tools/lgraph_log.h" // add log dependency\nusing namespace lgraph_api;\n\nvoid LogExample() {\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n}\n\nextern "C" bool Process(GraphDB& db, const std::string& request, std::string& response) {\n response = "TuGraph log demo";\n LogExample();\n return true;\n}\n'})}),"\n",(0,i.jsx)(o.p,{children:"After inserting the above sample code into the database as a procedure and running it, you can see the corresponding log entries in the log file."}),"\n",(0,i.jsx)(o.h4,{id:"231python-procedure",children:"2.3.1.python procedure"}),"\n",(0,i.jsx)(o.p,{children:"Please use Python's built-in print to output debug information. The debug information will be merged into a WARN-level log entry and output to the log file after the procedure is executed."}),"\n",(0,i.jsx)(o.h2,{id:"3audit-log",children:"3.Audit log"}),"\n",(0,i.jsx)(o.p,{children:"Audit logs record each request and response, as well as the user who sent the request and when the request received. Audit logging can only be turned on or off. The results can be queried using the TuGraph visualization tool and the REST API."}),"\n",(0,i.jsxs)(o.p,{children:["To enable the Audit Log, you need to set the ",(0,i.jsx)(o.code,{children:"enable_audit_log"})," parameter to ",(0,i.jsx)(o.code,{children:"true"})," in the configuration file. For the configuration file and parameter descriptions, see:",(0,i.jsx)(o.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"Tugraph Running/Service configuration"})]})]})}function u(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,o,n)=>{n.d(o,{R:()=>l,x:()=>s});var i=n(6540);const r={},t=i.createContext(r);function l(e){const o=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:o},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/7f99a0c3.91caa96e.js b/assets/js/7f99a0c3.91caa96e.js
deleted file mode 100644
index e9dc777735..0000000000
--- a/assets/js/7f99a0c3.91caa96e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9503],{6178:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>s,toc:()=>a});var i=n(4848),r=n(8453);const t={},l="Log",s={id:"en-US/source/permission/log",title:"Log",description:"This document mainly introduces the logging function of TuGraph.",source:"@site/../docs/en-US/source/10.permission/5.log.md",sourceDirName:"en-US/source/10.permission",slug:"/en-US/source/permission/log",permalink:"/tugraph-db/en-US/source/permission/log",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Monitoring",permalink:"/tugraph-db/en-US/source/permission/monitoring"},next:{title:"Unit Testing",permalink:"/tugraph-db/en-US/source/quality/unit-testing"}},d={},a=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Server log",id:"2server-log",level:2},{value:"2.1.Server Log Configuration Items",id:"21server-log-configuration-items",level:3},{value:"2.2.Example of Server Log Output Macro Usage",id:"22example-of-server-log-output-macro-usage",level:3},{value:"2.3.Procedure log",id:"23procedure-log",level:3},{value:"2.3.1.Cpp procedure",id:"231cpp-procedure",level:4},{value:"2.3.1.python procedure",id:"231python-procedure",level:4},{value:"3.Audit log",id:"3audit-log",level:2}];function c(e){const o={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.header,{children:(0,i.jsx)(o.h1,{id:"log",children:"Log"})}),"\n",(0,i.jsxs)(o.blockquote,{children:["\n",(0,i.jsx)(o.p,{children:"This document mainly introduces the logging function of TuGraph."}),"\n"]}),"\n",(0,i.jsx)(o.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,i.jsx)(o.p,{children:"TuGraph keeps two types of logs: server logs and audit logs. Server logs record human-readable server status information, while audit logs maintain encrypted information for every operation performed on the server."}),"\n",(0,i.jsx)(o.h2,{id:"2server-log",children:"2.Server log"}),"\n",(0,i.jsx)(o.h3,{id:"21server-log-configuration-items",children:"2.1.Server Log Configuration Items"}),"\n",(0,i.jsxs)(o.p,{children:["The output directory of server logs can be specified through the ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item. The level of log can be specified through the ",(0,i.jsx)(o.code,{children:"verbose"})," configuration item."]}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty by default. If ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty, then all logs will be write to the console(nothing will be written to the console if the ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is empty under daemon mode); if ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is configured specifically, log files will bew generated under that path. The maximum size of a single log file is 256MB."]}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"verbose"})," configuration item controls the level of log, and is divided into three levels of ",(0,i.jsx)(o.code,{children:"0, 1, 2"}),". Ther verbosity of log record grows as the number grows. The default level is ",(0,i.jsx)(o.code,{children:"1"}),". When the level is set to ",(0,i.jsx)(o.code,{children:"2"}),", the server will print logs in ",(0,i.jsx)(o.code,{children:"DEBUG"})," level and above. When the level is set to ",(0,i.jsx)(o.code,{children:"1"}),", the server will print logs in ",(0,i.jsx)(o.code,{children:"INFO"})," level and above. When the level is set to ",(0,i.jsx)(o.code,{children:"0"}),", the server will print log in ",(0,i.jsx)(o.code,{children:"ERROR"})," level and above."]}),"\n",(0,i.jsx)(o.h3,{id:"22example-of-server-log-output-macro-usage",children:"2.2.Example of Server Log Output Macro Usage"}),"\n",(0,i.jsx)(o.p,{children:"If the developer wants to add logs to the code during development, they can refer to the following example:"}),"\n",(0,i.jsx)(o.pre,{children:(0,i.jsx)(o.code,{children:'#include "tools/lgraph_log.h" // add log dependency.\n\nvoid LogExample() {\n // The log module has been initialized during the database startup, and developers can directly call the macro.\n // The log level is divided into five levels: DEBUG, INFO, WARNING, ERROR, and FATAL.\n\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n LOG_FATAL() << "This is a fatal level log message.";\n}\n'})}),"\n",(0,i.jsx)(o.p,{children:"You can also refer to the log macro usage in test/test_lgraph_log.cpp."}),"\n",(0,i.jsx)(o.h3,{id:"23procedure-log",children:"2.3.Procedure log"}),"\n",(0,i.jsxs)(o.p,{children:["Developers can use the log function to output debug information that they need to the log for looking up and assisting development during the development of procedures. Debug information will be output to the same log file as the server log (if ",(0,i.jsx)(o.code,{children:"log_dir"})," configuration item is not specified, it will also be output to the console)"]}),"\n",(0,i.jsx)(o.h4,{id:"231cpp-procedure",children:"2.3.1.Cpp procedure"}),"\n",(0,i.jsxs)(o.p,{children:["Please use the log macro provided in 2.2 to output debug information, and avoid using output methods such as cout or printf. For specific usage, please refer to the following sample code (see ",(0,i.jsx)(o.code,{children:"procedures/demo/log_demo.cpp"})," for details)"]}),"\n",(0,i.jsx)(o.pre,{children:(0,i.jsx)(o.code,{children:'#include \n#include "lgraph/lgraph.h"\n#include "tools/lgraph_log.h" // add log dependency\nusing namespace lgraph_api;\n\nvoid LogExample() {\n LOG_DEBUG() << "This is a debug level log message.";\n LOG_INFO() << "This is a info level log message.";\n LOG_WARN() << "This is a warning level log message.";\n LOG_ERROR() << "This is a error level log message.";\n}\n\nextern "C" bool Process(GraphDB& db, const std::string& request, std::string& response) {\n response = "TuGraph log demo";\n LogExample();\n return true;\n}\n'})}),"\n",(0,i.jsx)(o.p,{children:"After inserting the above sample code into the database as a procedure and running it, you can see the corresponding log entries in the log file."}),"\n",(0,i.jsx)(o.h4,{id:"231python-procedure",children:"2.3.1.python procedure"}),"\n",(0,i.jsx)(o.p,{children:"Please use Python's built-in print to output debug information. The debug information will be merged into a WARN-level log entry and output to the log file after the procedure is executed."}),"\n",(0,i.jsx)(o.h2,{id:"3audit-log",children:"3.Audit log"}),"\n",(0,i.jsx)(o.p,{children:"Audit logs record each request and response, as well as the user who sent the request and when the request received. Audit logging can only be turned on or off. The results can be queried using the TuGraph visualization tool and the REST API."}),"\n",(0,i.jsxs)(o.p,{children:["To enable the Audit Log, you need to set the ",(0,i.jsx)(o.code,{children:"enable_audit_log"})," parameter to ",(0,i.jsx)(o.code,{children:"true"})," in the configuration file. For the configuration file and parameter descriptions, see:",(0,i.jsx)(o.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"Tugraph Running/Service configuration"})]})]})}function u(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,o,n)=>{n.d(o,{R:()=>l,x:()=>s});var i=n(6540);const r={},t=i.createContext(r);function l(e){const o=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function s(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:o},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8110278a.a56540c8.js b/assets/js/8110278a.a56540c8.js
deleted file mode 100644
index 99124332e3..0000000000
--- a/assets/js/8110278a.a56540c8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7213],{5955:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(4848),i=t(8453);const r={},a="Cloud Deployment",c={id:"en-US/source/installation&running/cloud-deployment",title:"Cloud Deployment",description:"This document mainly introduces the cloud deployment of TuGraph, and you can also refer to theAlibaba Cloud ComputeNest deployment document.\u3002",source:"@site/../docs/en-US/source/5.installation&running/5.cloud-deployment.md",sourceDirName:"en-US/source/5.installation&running",slug:"/en-US/source/installation&running/cloud-deployment",permalink:"/tugraph-db/en-US/source/installation&running/cloud-deployment",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Local Package Deployment",permalink:"/tugraph-db/en-US/source/installation&running/local-package-deployment"},next:{title:"Compile",permalink:"/tugraph-db/en-US/source/installation&running/compile"}},o={},l=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Instance Description",id:"2instance-description",level:2},{value:"3.Deployment Process",id:"3deployment-process",level:2},{value:"3.1.Preparation",id:"31preparation",level:3},{value:"3.2.Deployment Entrance",id:"32deployment-entrance",level:3},{value:"3.3.Apply for Trial Use",id:"33apply-for-trial-use",level:3},{value:"3.4.Create TuGraph Service",id:"34create-tugraph-service",level:3},{value:"3.4.1.Parameter List",id:"341parameter-list",level:4},{value:"3.4.2.Specific Steps",id:"342specific-steps",level:4},{value:"3.5.Start TuGraph Service",id:"35start-tugraph-service",level:3},{value:"4.Common FAQs",id:"4common-faqs",level:2},{value:"No available resources in the selected deployment area",id:"no-available-resources-in-the-selected-deployment-area",level:3},{value:"Unaccessible to the web port",id:"unaccessible-to-the-web-port",level:3},{value:"Username or password is not correct",id:"username-or-password-is-not-correct",level:3}];function d(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"cloud-deployment",children:"Cloud Deployment"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["This document mainly introduces the cloud deployment of TuGraph, and you can also refer to the",(0,s.jsx)(n.a,{href:"https://aliyun-computenest.github.io/quickstart-tugraph/",children:"Alibaba Cloud ComputeNest deployment document."}),"\u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph (tugraph.antgroup.com) is a high-performance graph database of Alibaba Group. TuGraph provides community version services on ComputeNest, so you can quickly deploy TuGraph services on ComputeNest and achieve operation and maintenance monitoring, thereby building your own graph application. This document introduces how to open TuGraph community version services on ComputeNest, as well as deployment process and usage instructions."}),"\n",(0,s.jsx)(n.h2,{id:"2instance-description",children:"2.Instance Description"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph is deployed as a community open source version, and the source code can be found in the Github Repo. Currently, the available instance specifications are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Instance Family"}),(0,s.jsx)(n.th,{children:"vCPU and Memory"}),(0,s.jsx)(n.th,{children:"System Disk"}),(0,s.jsx)(n.th,{children:"Public Bandwidth"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ecs.r7a.xlarge"}),(0,s.jsx)(n.td,{children:"AMD Memory r7a, 4vCPU 32GiB"}),(0,s.jsx)(n.td,{children:"ESSD Cloud Disk 200GiB PL0"}),(0,s.jsx)(n.td,{children:"Fixed bandwidth of 1Mbps"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ecs.r6.xlarge"}),(0,s.jsx)(n.td,{children:"Memory r6, 4vCPU 32GiB"}),(0,s.jsx)(n.td,{children:"ESSD Cloud Disk 200GiB PL0"}),(0,s.jsx)(n.td,{children:"Fixed bandwidth of 1Mbps"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Estimated costs can be seen in real time when creating instances (currently free). If you need more specifications or other services (such as cluster high availability requirements, enterprise-level support services, etc.), please contact us at ",(0,s.jsx)(n.a,{href:"mailto:tugraph@service.alipay.com",children:"tugraph@service.alipay.com"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"3deployment-process",children:"3.Deployment Process"}),"\n",(0,s.jsx)(n.h3,{id:"31preparation",children:"3.1.Preparation"}),"\n",(0,s.jsx)(n.p,{children:"Before starting to use, you need an Alibaba Cloud account to access and create resources such as ECS and VPC."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If you use a personal account, you can directly create a service instance."}),"\n",(0,s.jsxs)(n.li,{children:["If you create a service instance using a RAM user and use Alibaba Cloud ComputeNest for the first time:\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Before creating a service instance, you need to add permissions for the corresponding resources to the account of the RAM user. For detailed operations on adding RAM permissions, please see Grant RAM user permissions. The required permissions are shown in the following table."}),"\n",(0,s.jsx)(n.li,{children:"Authorization to create associated roles is also required. Refer to the following figure and select Agree to authorize and create associated roles."}),"\n"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Permission Policy Name"}),(0,s.jsx)(n.th,{children:"Remark"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunECSFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing cloud server services (ECS)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunVPCFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Virtual Private Cloud (VPC)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunROSFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Resource Orchestration Service (ROS)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunComputeNestUserFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing ComputeNest services (ComputeNest) on the user side"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunCloudMonitorFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Alibaba Cloud Monitor (CloudMonitor)"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Cloud Deployment",src:t(2931).A+"",width:"2390",height:"612"})}),"\n",(0,s.jsx)(n.h3,{id:"32deployment-entrance",children:"3.2.Deployment Entrance"}),"\n",(0,s.jsx)(n.p,{children:"You can search in Alibaba Cloud ComputeNest, or quickly access it through the following deployment link."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstanceCreate?ServiceId=service-7b50ea3d20e643da95bf&&isTrial=true",children:"Deployment Link"})}),"\n",(0,s.jsx)(n.h3,{id:"33apply-for-trial-use",children:"3.3.Apply for Trial Use"}),"\n",(0,s.jsx)(n.p,{children:"Before formal trial use, you need to apply for trial use, fill in the information as prompted, and create the TuGraph service after passing the review."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Apply for Trial Use",src:t(7656).A+"",width:"2071",height:"949"})}),"\n",(0,s.jsx)(n.h3,{id:"34create-tugraph-service",children:"3.4.Create TuGraph Service"}),"\n",(0,s.jsx)(n.h4,{id:"341parameter-list",children:"3.4.1.Parameter List"}),"\n",(0,s.jsx)(n.p,{children:"During the process of creating a service instance, you need to configure the parameter list of the service instance information. The specific parameters are as follows."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Parameter Group"}),(0,s.jsx)(n.th,{children:"Parameter Item"}),(0,s.jsx)(n.th,{children:"Example"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Service Instance Name"}),(0,s.jsx)(n.td,{children:"N/A"}),(0,s.jsx)(n.td,{children:"test"}),(0,s.jsx)(n.td,{children:"The name of the instance."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Region"}),(0,s.jsx)(n.td,{children:"N/A"}),(0,s.jsx)(n.td,{children:"China East 1 (Hangzhou)"}),(0,s.jsx)(n.td,{children:"Select the region of the service instance. It is recommended to select nearby regions to obtain better network latency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Payment Type Configuration"}),(0,s.jsx)(n.td,{children:"Payment Type"}),(0,s.jsx)(n.td,{children:"Pay-As-You-Go"}),(0,s.jsx)(n.td,{children:"For free use, please select Pay-As-You-Go."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Availability Zone Configuration"}),(0,s.jsx)(n.td,{children:"Deployment Area"}),(0,s.jsx)(n.td,{children:"Availability ZoneI"}),(0,s.jsx)(n.td,{children:"Different available zones under the region, ensure that the instance is not empty."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Select Existing Basic Resource Configuration"}),(0,s.jsx)(n.td,{children:"VPC ID"}),(0,s.jsx)(n.td,{children:"vpc-xxx"}),(0,s.jsx)(n.td,{children:"Select the ID of the Virtual Private Cloud according to the actual situation."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Select Existing Basic Resource Configuration"}),(0,s.jsx)(n.td,{children:"Switch ID"}),(0,s.jsx)(n.td,{children:"vsw-xxx"}),(0,s.jsx)(n.td,{children:"Select the Switch ID according to the actual situation. If the Switch ID cannot be found, try switching the region and available zone."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ECS Instance Configuration"}),(0,s.jsx)(n.td,{children:"Instance Type"}),(0,s.jsx)(n.td,{children:"ecs.r6.xlarge"}),(0,s.jsx)(n.td,{children:"Currently supports ecs.r6.xlarge and ecs.r7a.xlarge specifications."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ECS Instance Configuration"}),(0,s.jsx)(n.td,{children:"Instance Password"}),(0,s.jsx)(n.td,{children:"**"}),(0,s.jsx)(n.td,{children:"Set the instance password. Length of 8-30 characters, must include three items (uppercase letters, lowercase letters, numbers, special characters in ()`~!@#$%^&*_-+={}[]:;'<>,.?/)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"342specific-steps",children:"3.4.2.Specific Steps"}),"\n",(0,s.jsx)(n.p,{children:"The creation of the service is carried out according to the following steps, refer to the figure below:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Create an instance name, such as "test" in the figure below'}),"\n",(0,s.jsx)(n.li,{children:'Select the region, such as "China East 1 (Hangzhou)" in the figure below'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Instance",src:t(1873).A+"",width:"2874",height:"1066"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Select the instance type, currently supports ecs.r6.xlarge and ecs.r7a.xlarge specifications. If there is no model available in the list, try selecting other deployment areas."}),"\n",(0,s.jsx)(n.li,{children:"Select the model"}),"\n",(0,s.jsx)(n.li,{children:"Configure the password for the instance"}),"\n",(0,s.jsx)(n.li,{children:'Select the deployment area, such as "Availability Zone I" in the figure below'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Select Region",src:t(862).A+"",width:"4102",height:"1242"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click next to enter the order confirmation page"}),"\n",(0,s.jsx)(n.li,{children:'Check the checkboxes for "Permission Confirmation" and "Service Terms"'}),"\n",(0,s.jsx)(n.li,{children:'Click the green "Start Free Trial" button in the lower left corner to create a service instance'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Confirmation",src:t(9175).A+"",width:"3414",height:"2180"})}),"\n",(0,s.jsx)(n.h3,{id:"35start-tugraph-service",children:"3.5.Start TuGraph Service"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View the service instance: After the service instance is created successfully, it takes about 2 minutes for deployment. After the deployment is complete, you can see the corresponding service instance on the page, as shown in the figure below."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"View Instance",src:t(2764).A+"",width:"4616",height:"1264"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click the service instance to access TuGraph. After entering the corresponding service instance, you can get 3 ways to\nuse it on the page: web, rpc, ssh. You can also see the password of user admin on the page."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Access Method",src:t(8213).A+"",width:"1216",height:"612"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Click the link of web to jump to the deployed TuGraph Web. It is recommended that novice users first use the demo to quickly get started with TuGraph.\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"First, on the TuGraph Web login page, enter the default username (admin) and the password on the page to log in, as shown in the figure below."}),"\n",(0,s.jsx)(n.li,{children:'After the login is completed, click "New Instance" -> "Create Instance" in sequence, wait for the creation to be completed, and the steps in 3 will change to green in turn, and it will automatically switch to the subgraph MovieDemo1, as shown in the figure below.'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"Login",src:t(9058).A+"",width:"1527",height:"1120"}),"\n",(0,s.jsx)(n.img,{alt:"Create Demo",src:t(6923).A+"",width:"1709",height:"592"})]}),"\n",(0,s.jsx)(n.h2,{id:"4common-faqs",children:"4.Common FAQs"}),"\n",(0,s.jsx)(n.h3,{id:"no-available-resources-in-the-selected-deployment-area",children:"No available resources in the selected deployment area"}),"\n",(0,s.jsx)(n.p,{children:"Sometimes, the selected deployment area (such as Availability Zone G) does not have available resources for the selected package, and an error will be reported as shown in the figure below."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Deployment Error",src:t(2859).A+"",width:"596",height:"544"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Solution"}),":Try selecting other regions, such as Availability Zone I"]}),"\n",(0,s.jsx)(n.h3,{id:"unaccessible-to-the-web-port",children:"Unaccessible to the web port"}),"\n",(0,s.jsx)(n.p,{children:"It takes some time for the server to get ready. Just wait for a few seconds."}),"\n",(0,s.jsx)(n.h3,{id:"username-or-password-is-not-correct",children:"Username or password is not correct"}),"\n",(0,s.jsx)(n.p,{children:"Please make sure that you are using the password on the page instead of the default one."})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},2931:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-1-6de73b2cfb5fe70e92e5e3435ad8574f.png"},2859:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-10-55820cf0e6bb8fac4c2e7d548b97a1fc.png"},7656:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-2-2424fad73dbcd8267de47772bd60d29f.png"},1873:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-3-72b2b61772400506bd9a80eb4d343017.png"},862:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-4-0372e82170ac8bffe6d2d02b03b0a9e2.png"},9175:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-5-f4512e5e080e0b9f6138224cc49d424e.png"},2764:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-6-66d573e42075d2367c35e77b3330e2ac.png"},8213:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-7-a23a6b3eff495502a4c3dcb7e92e19ca.png"},9058:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-8-3141da1eed5c4e147ecdef322cf1c58d.png"},6923:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-9-8778b1296f1ca19397384c068bab67ea.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>c});var s=t(6540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8110278a.af0bfd97.js b/assets/js/8110278a.af0bfd97.js
new file mode 100644
index 0000000000..a2340afa33
--- /dev/null
+++ b/assets/js/8110278a.af0bfd97.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7213],{1645:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>o});var s=t(4848),i=t(8453);const r={},a="Cloud Deployment",c={id:"installation&running/cloud-deployment",title:"Cloud Deployment",description:"This document mainly introduces the cloud deployment of TuGraph, and you can also refer to theAlibaba Cloud ComputeNest deployment document.\u3002",source:"@site/../docs/en-US/source/5.installation&running/5.cloud-deployment.md",sourceDirName:"5.installation&running",slug:"/installation&running/cloud-deployment",permalink:"/tugraph-db/en/installation&running/cloud-deployment",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Local Package Deployment",permalink:"/tugraph-db/en/installation&running/local-package-deployment"},next:{title:"Compile",permalink:"/tugraph-db/en/installation&running/compile"}},l={},o=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Instance Description",id:"2instance-description",level:2},{value:"3.Deployment Process",id:"3deployment-process",level:2},{value:"3.1.Preparation",id:"31preparation",level:3},{value:"3.2.Deployment Entrance",id:"32deployment-entrance",level:3},{value:"3.3.Apply for Trial Use",id:"33apply-for-trial-use",level:3},{value:"3.4.Create TuGraph Service",id:"34create-tugraph-service",level:3},{value:"3.4.1.Parameter List",id:"341parameter-list",level:4},{value:"3.4.2.Specific Steps",id:"342specific-steps",level:4},{value:"3.5.Start TuGraph Service",id:"35start-tugraph-service",level:3},{value:"4.Common FAQs",id:"4common-faqs",level:2},{value:"No available resources in the selected deployment area",id:"no-available-resources-in-the-selected-deployment-area",level:3},{value:"Unaccessible to the web port",id:"unaccessible-to-the-web-port",level:3},{value:"Username or password is not correct",id:"username-or-password-is-not-correct",level:3}];function d(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"cloud-deployment",children:"Cloud Deployment"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["This document mainly introduces the cloud deployment of TuGraph, and you can also refer to the",(0,s.jsx)(n.a,{href:"https://aliyun-computenest.github.io/quickstart-tugraph/",children:"Alibaba Cloud ComputeNest deployment document."}),"\u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph (tugraph.antgroup.com) is a high-performance graph database of Alibaba Group. TuGraph provides community version services on ComputeNest, so you can quickly deploy TuGraph services on ComputeNest and achieve operation and maintenance monitoring, thereby building your own graph application. This document introduces how to open TuGraph community version services on ComputeNest, as well as deployment process and usage instructions."}),"\n",(0,s.jsx)(n.h2,{id:"2instance-description",children:"2.Instance Description"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph is deployed as a community open source version, and the source code can be found in the Github Repo. Currently, the available instance specifications are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Instance Family"}),(0,s.jsx)(n.th,{children:"vCPU and Memory"}),(0,s.jsx)(n.th,{children:"System Disk"}),(0,s.jsx)(n.th,{children:"Public Bandwidth"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ecs.r7a.xlarge"}),(0,s.jsx)(n.td,{children:"AMD Memory r7a, 4vCPU 32GiB"}),(0,s.jsx)(n.td,{children:"ESSD Cloud Disk 200GiB PL0"}),(0,s.jsx)(n.td,{children:"Fixed bandwidth of 1Mbps"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ecs.r6.xlarge"}),(0,s.jsx)(n.td,{children:"Memory r6, 4vCPU 32GiB"}),(0,s.jsx)(n.td,{children:"ESSD Cloud Disk 200GiB PL0"}),(0,s.jsx)(n.td,{children:"Fixed bandwidth of 1Mbps"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Estimated costs can be seen in real time when creating instances (currently free). If you need more specifications or other services (such as cluster high availability requirements, enterprise-level support services, etc.), please contact us at ",(0,s.jsx)(n.a,{href:"mailto:tugraph@service.alipay.com",children:"tugraph@service.alipay.com"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"3deployment-process",children:"3.Deployment Process"}),"\n",(0,s.jsx)(n.h3,{id:"31preparation",children:"3.1.Preparation"}),"\n",(0,s.jsx)(n.p,{children:"Before starting to use, you need an Alibaba Cloud account to access and create resources such as ECS and VPC."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If you use a personal account, you can directly create a service instance."}),"\n",(0,s.jsxs)(n.li,{children:["If you create a service instance using a RAM user and use Alibaba Cloud ComputeNest for the first time:\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Before creating a service instance, you need to add permissions for the corresponding resources to the account of the RAM user. For detailed operations on adding RAM permissions, please see Grant RAM user permissions. The required permissions are shown in the following table."}),"\n",(0,s.jsx)(n.li,{children:"Authorization to create associated roles is also required. Refer to the following figure and select Agree to authorize and create associated roles."}),"\n"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Permission Policy Name"}),(0,s.jsx)(n.th,{children:"Remark"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunECSFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing cloud server services (ECS)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunVPCFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Virtual Private Cloud (VPC)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunROSFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Resource Orchestration Service (ROS)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunComputeNestUserFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing ComputeNest services (ComputeNest) on the user side"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"AliyunCloudMonitorFullAccess"}),(0,s.jsx)(n.td,{children:"Permissions for managing Alibaba Cloud Monitor (CloudMonitor)"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Cloud Deployment",src:t(2931).A+"",width:"2390",height:"612"})}),"\n",(0,s.jsx)(n.h3,{id:"32deployment-entrance",children:"3.2.Deployment Entrance"}),"\n",(0,s.jsx)(n.p,{children:"You can search in Alibaba Cloud ComputeNest, or quickly access it through the following deployment link."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstanceCreate?ServiceId=service-7b50ea3d20e643da95bf&&isTrial=true",children:"Deployment Link"})}),"\n",(0,s.jsx)(n.h3,{id:"33apply-for-trial-use",children:"3.3.Apply for Trial Use"}),"\n",(0,s.jsx)(n.p,{children:"Before formal trial use, you need to apply for trial use, fill in the information as prompted, and create the TuGraph service after passing the review."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Apply for Trial Use",src:t(7656).A+"",width:"2071",height:"949"})}),"\n",(0,s.jsx)(n.h3,{id:"34create-tugraph-service",children:"3.4.Create TuGraph Service"}),"\n",(0,s.jsx)(n.h4,{id:"341parameter-list",children:"3.4.1.Parameter List"}),"\n",(0,s.jsx)(n.p,{children:"During the process of creating a service instance, you need to configure the parameter list of the service instance information. The specific parameters are as follows."}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Parameter Group"}),(0,s.jsx)(n.th,{children:"Parameter Item"}),(0,s.jsx)(n.th,{children:"Example"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Service Instance Name"}),(0,s.jsx)(n.td,{children:"N/A"}),(0,s.jsx)(n.td,{children:"test"}),(0,s.jsx)(n.td,{children:"The name of the instance."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Region"}),(0,s.jsx)(n.td,{children:"N/A"}),(0,s.jsx)(n.td,{children:"China East 1 (Hangzhou)"}),(0,s.jsx)(n.td,{children:"Select the region of the service instance. It is recommended to select nearby regions to obtain better network latency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Payment Type Configuration"}),(0,s.jsx)(n.td,{children:"Payment Type"}),(0,s.jsx)(n.td,{children:"Pay-As-You-Go"}),(0,s.jsx)(n.td,{children:"For free use, please select Pay-As-You-Go."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Availability Zone Configuration"}),(0,s.jsx)(n.td,{children:"Deployment Area"}),(0,s.jsx)(n.td,{children:"Availability ZoneI"}),(0,s.jsx)(n.td,{children:"Different available zones under the region, ensure that the instance is not empty."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Select Existing Basic Resource Configuration"}),(0,s.jsx)(n.td,{children:"VPC ID"}),(0,s.jsx)(n.td,{children:"vpc-xxx"}),(0,s.jsx)(n.td,{children:"Select the ID of the Virtual Private Cloud according to the actual situation."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Select Existing Basic Resource Configuration"}),(0,s.jsx)(n.td,{children:"Switch ID"}),(0,s.jsx)(n.td,{children:"vsw-xxx"}),(0,s.jsx)(n.td,{children:"Select the Switch ID according to the actual situation. If the Switch ID cannot be found, try switching the region and available zone."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ECS Instance Configuration"}),(0,s.jsx)(n.td,{children:"Instance Type"}),(0,s.jsx)(n.td,{children:"ecs.r6.xlarge"}),(0,s.jsx)(n.td,{children:"Currently supports ecs.r6.xlarge and ecs.r7a.xlarge specifications."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ECS Instance Configuration"}),(0,s.jsx)(n.td,{children:"Instance Password"}),(0,s.jsx)(n.td,{children:"**"}),(0,s.jsx)(n.td,{children:"Set the instance password. Length of 8-30 characters, must include three items (uppercase letters, lowercase letters, numbers, special characters in ()`~!@#$%^&*_-+={}[]:;'<>,.?/)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"342specific-steps",children:"3.4.2.Specific Steps"}),"\n",(0,s.jsx)(n.p,{children:"The creation of the service is carried out according to the following steps, refer to the figure below:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Create an instance name, such as "test" in the figure below'}),"\n",(0,s.jsx)(n.li,{children:'Select the region, such as "China East 1 (Hangzhou)" in the figure below'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Create Instance",src:t(1873).A+"",width:"2874",height:"1066"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Select the instance type, currently supports ecs.r6.xlarge and ecs.r7a.xlarge specifications. If there is no model available in the list, try selecting other deployment areas."}),"\n",(0,s.jsx)(n.li,{children:"Select the model"}),"\n",(0,s.jsx)(n.li,{children:"Configure the password for the instance"}),"\n",(0,s.jsx)(n.li,{children:'Select the deployment area, such as "Availability Zone I" in the figure below'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Select Region",src:t(862).A+"",width:"4102",height:"1242"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click next to enter the order confirmation page"}),"\n",(0,s.jsx)(n.li,{children:'Check the checkboxes for "Permission Confirmation" and "Service Terms"'}),"\n",(0,s.jsx)(n.li,{children:'Click the green "Start Free Trial" button in the lower left corner to create a service instance'}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Confirmation",src:t(9175).A+"",width:"3414",height:"2180"})}),"\n",(0,s.jsx)(n.h3,{id:"35start-tugraph-service",children:"3.5.Start TuGraph Service"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"View the service instance: After the service instance is created successfully, it takes about 2 minutes for deployment. After the deployment is complete, you can see the corresponding service instance on the page, as shown in the figure below."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"View Instance",src:t(2764).A+"",width:"4616",height:"1264"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Click the service instance to access TuGraph. After entering the corresponding service instance, you can get 3 ways to\nuse it on the page: web, rpc, ssh. You can also see the password of user admin on the page."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Access Method",src:t(8213).A+"",width:"1216",height:"612"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Click the link of web to jump to the deployed TuGraph Web. It is recommended that novice users first use the demo to quickly get started with TuGraph.\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"First, on the TuGraph Web login page, enter the default username (admin) and the password on the page to log in, as shown in the figure below."}),"\n",(0,s.jsx)(n.li,{children:'After the login is completed, click "New Instance" -> "Create Instance" in sequence, wait for the creation to be completed, and the steps in 3 will change to green in turn, and it will automatically switch to the subgraph MovieDemo1, as shown in the figure below.'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"Login",src:t(9058).A+"",width:"1527",height:"1120"}),"\n",(0,s.jsx)(n.img,{alt:"Create Demo",src:t(6923).A+"",width:"1709",height:"592"})]}),"\n",(0,s.jsx)(n.h2,{id:"4common-faqs",children:"4.Common FAQs"}),"\n",(0,s.jsx)(n.h3,{id:"no-available-resources-in-the-selected-deployment-area",children:"No available resources in the selected deployment area"}),"\n",(0,s.jsx)(n.p,{children:"Sometimes, the selected deployment area (such as Availability Zone G) does not have available resources for the selected package, and an error will be reported as shown in the figure below."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Deployment Error",src:t(2859).A+"",width:"596",height:"544"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Solution"}),":Try selecting other regions, such as Availability Zone I"]}),"\n",(0,s.jsx)(n.h3,{id:"unaccessible-to-the-web-port",children:"Unaccessible to the web port"}),"\n",(0,s.jsx)(n.p,{children:"It takes some time for the server to get ready. Just wait for a few seconds."}),"\n",(0,s.jsx)(n.h3,{id:"username-or-password-is-not-correct",children:"Username or password is not correct"}),"\n",(0,s.jsx)(n.p,{children:"Please make sure that you are using the password on the page instead of the default one."})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},2931:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-1-6de73b2cfb5fe70e92e5e3435ad8574f.png"},2859:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-10-55820cf0e6bb8fac4c2e7d548b97a1fc.png"},7656:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-2-2424fad73dbcd8267de47772bd60d29f.png"},1873:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-3-72b2b61772400506bd9a80eb4d343017.png"},862:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-4-0372e82170ac8bffe6d2d02b03b0a9e2.png"},9175:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-5-f4512e5e080e0b9f6138224cc49d424e.png"},2764:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-6-66d573e42075d2367c35e77b3330e2ac.png"},8213:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-7-a23a6b3eff495502a4c3dcb7e92e19ca.png"},9058:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-8-3141da1eed5c4e147ecdef322cf1c58d.png"},6923:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/cloud-deployment-9-8778b1296f1ca19397384c068bab67ea.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>c});var s=t(6540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/811fe2fb.0b75b716.js b/assets/js/811fe2fb.0b75b716.js
deleted file mode 100644
index cbf52a234d..0000000000
--- a/assets/js/811fe2fb.0b75b716.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7738],{3694:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=a(4848),t=a(8453);const i={},o="Training",s={id:"en-US/source/olap&procedure/learn/training",title:"Training",description:"This document details how to use TuGraph for training Graph Neural Networks (GNNs).",source:"@site/../docs/en-US/source/9.olap&procedure/3.learn/3.training.md",sourceDirName:"en-US/source/9.olap&procedure/3.learn",slug:"/en-US/source/olap&procedure/learn/training",permalink:"/tugraph-db/en-US/source/olap&procedure/learn/training",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Sampling API",permalink:"/tugraph-db/en-US/source/olap&procedure/learn/sampling_api"},next:{title:"Heterogeneous Graph",permalink:"/tugraph-db/en-US/source/olap&procedure/learn/heterogeneous_graph"}},l={},d=[{value:"1. Training",id:"1-training",level:2},{value:"2. Mini-Batch Training",id:"2-mini-batch-training",level:2},{value:"3. Full-Batch training",id:"3-full-batch-training",level:2}];function h(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"training",children:"Training"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"This document details how to use TuGraph for training Graph Neural Networks (GNNs)."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"1-training",children:"1. Training"}),"\n",(0,r.jsx)(n.p,{children:"When using TuGraph's graph learning module for training, it can be divided into two categories: full graph training and mini-batch training."}),"\n",(0,r.jsx)(n.p,{children:"Full graph training involves loading the entire graph from the TuGraph db into memory and training the GNN. Mini-batch training uses the sampling operator of the TuGraph graph learning module to sample the entire graph data and then input it into the training framework for training."}),"\n",(0,r.jsx)(n.h2,{id:"2-mini-batch-training",children:"2. Mini-Batch Training"}),"\n",(0,r.jsx)(n.p,{children:"Mini-batch training requires the use of TuGraph's graph learning module's sampling operators, which currently support Neighbor Sampling, Edge Sampling, Random Walk Sampling, and Negative Sampling. The sampling result of the TuGraph graph learning module's sampling operator is returned in the form of a List."}),"\n",(0,r.jsx)(n.p,{children:"The following takes Neighbor Sampling as an example to introduce how to convert the sampled results into the training framework for format conversion.\nThe user needs to provide a Sample class:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"class TuGraphSample(object):\n def __init__(self, args=None):\n super(TuGraphSample, self).__init__()\n self.args = args\n def sample(self, g, seed_nodes):\n args = self.args\n # 1. Load graph data\n galaxy = PyGalaxy(args.db_path)\n galaxy.SetCurrentUser(args.username, args.password)\n db = galaxy.OpenGraph(args.graph_name, False)\n sample_node = seed_nodes.tolist()\n length = args.randomwalk_length\n NodeInfo = []\n EdgeInfo = []\n # 2. Sampling method, the result is stored in NodeInfo and EdgeInfo\n if args.sample_method == 'randomwalk':\n randomwalk.Process(db, 100, sample_node, length, NodeInfo, EdgeInfo)\n elif args.sample_method == 'negative':\n negativesample.Process(db, 100)\n else:\n neighborsample(db, 100, sample_node, args.nbor_sample_num, NodeInfo, EdgeInfo)\n del db\n del galaxy\n # 3. Format conversion of the result to fit the training format\n remap(EdgeInfo[0], EdgeInfo[1], NodeInfo[0])\n g = dgl.graph((EdgeInfo[0], EdgeInfo[1]))\n g.ndata['feat'] = torch.tensor(NodeInfo[1])\n g.ndata['label'] = torch.tensor(NodeInfo[2])\n return g\n"})}),"\n",(0,r.jsx)(n.p,{children:"As shown in the code, the graph data is first loaded into memory. Then use the sampling operator to sample the graph data, and the results are stored in NodeInfo and EdgeInfo. NodeInfo and EdgeInfo are python list results, and the stored information results are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Graph Data"}),(0,r.jsx)(n.th,{children:"Storage Position"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Edge source"}),(0,r.jsx)(n.td,{children:"EdgeInfo[0]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Edge destination"}),(0,r.jsx)(n.td,{children:"EdgeInfo[1]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex ID"}),(0,r.jsx)(n.td,{children:"NodeInfo[0]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex features"}),(0,r.jsx)(n.td,{children:"NodeInfo[1]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex label"}),(0,r.jsx)(n.td,{children:"NodeInfo[2]"})]})]})]}),"\n",(0,r.jsx)(n.p,{children:"Finally, we format the result to fit the training format. Here we use the DGL training framework, so we construct a DGL Graph using the result data, and then return the DGL Graph."}),"\n",(0,r.jsx)(n.p,{children:"Once we provide the TuGraphSample class, we can use it for Mini-Batch training. Let the data loading part of DGL use the sampler instance of TuGraphSample as follows:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:" sampler = TugraphSample(args)\n fake_g = construct_graph() # just make dgl happy\n dataloader = dgl.dataloading.DataLoader(fake_g,\n torch.arange(train_nids),\n sampler,\n batch_size=batch_size,\n device=device,\n use_ddp=True,\n num_workers=0,\n drop_last=False,\n )\n"})}),"\n",(0,r.jsx)(n.p,{children:"Use DGL for model training:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"def train(dataloader, model):\n optimizer = torch.optim.Adam(model.parameters(), lr=1e-2, weight_decay=5e-4)\n model.train()\n s = time.time()\n for graph in dataloader:\n load_time = time.time()\n graph = dgl.add_self_loop(graph)\n logits = model(graph, graph.ndata['feat'])\n loss = loss_fcn(logits, graph.ndata['label'])\n optimizer.zero_grad()\n loss.backward()\n optimizer.step()\n train_time = time.time()\n print('load time', load_time - s, 'train_time', train_time - load_time)\n s = time.time()\n return float(loss)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"3-full-batch-training",children:"3. Full-Batch training"}),"\n",(0,r.jsx)(n.p,{children:"Full-Batch training of GNNs (Graph Neural Networks) is a type of training that involves processing the entire training dataset at once. It is one of the simplest and most straightforward training methods for GNNs, where the entire graph is treated as a single instance. In full-batch training, the entire dataset is loaded into memory and the model is trained on the entire graph. This type of training is especially useful for small to medium-sized graphs, and is mainly used for static graphs that do not change over time."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"getdb. Process(db, olapondb, feature_len, NodeInfo, EdgeInfo)\n"})}),"\n",(0,r.jsx)(n.p,{children:"The full graph are then fed into the training framework for training.\nFull code: learn/examples/train_full_cora.py\u3002"})]})}function g(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>o,x:()=>s});var r=a(6540);const t={},i=r.createContext(t);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/811fe2fb.a4ef1e3e.js b/assets/js/811fe2fb.a4ef1e3e.js
new file mode 100644
index 0000000000..7a3d552e8a
--- /dev/null
+++ b/assets/js/811fe2fb.a4ef1e3e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7738],{3720:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=a(4848),t=a(8453);const i={},o="Training",s={id:"olap&procedure/learn/training",title:"Training",description:"This document details how to use TuGraph for training Graph Neural Networks (GNNs).",source:"@site/../docs/en-US/source/9.olap&procedure/3.learn/3.training.md",sourceDirName:"9.olap&procedure/3.learn",slug:"/olap&procedure/learn/training",permalink:"/tugraph-db/en/olap&procedure/learn/training",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Sampling API",permalink:"/tugraph-db/en/olap&procedure/learn/sampling_api"},next:{title:"Heterogeneous Graph",permalink:"/tugraph-db/en/olap&procedure/learn/heterogeneous_graph"}},l={},d=[{value:"1. Training",id:"1-training",level:2},{value:"2. Mini-Batch Training",id:"2-mini-batch-training",level:2},{value:"3. Full-Batch training",id:"3-full-batch-training",level:2}];function h(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"training",children:"Training"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"This document details how to use TuGraph for training Graph Neural Networks (GNNs)."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"1-training",children:"1. Training"}),"\n",(0,r.jsx)(n.p,{children:"When using TuGraph's graph learning module for training, it can be divided into two categories: full graph training and mini-batch training."}),"\n",(0,r.jsx)(n.p,{children:"Full graph training involves loading the entire graph from the TuGraph db into memory and training the GNN. Mini-batch training uses the sampling operator of the TuGraph graph learning module to sample the entire graph data and then input it into the training framework for training."}),"\n",(0,r.jsx)(n.h2,{id:"2-mini-batch-training",children:"2. Mini-Batch Training"}),"\n",(0,r.jsx)(n.p,{children:"Mini-batch training requires the use of TuGraph's graph learning module's sampling operators, which currently support Neighbor Sampling, Edge Sampling, Random Walk Sampling, and Negative Sampling. The sampling result of the TuGraph graph learning module's sampling operator is returned in the form of a List."}),"\n",(0,r.jsx)(n.p,{children:"The following takes Neighbor Sampling as an example to introduce how to convert the sampled results into the training framework for format conversion.\nThe user needs to provide a Sample class:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"class TuGraphSample(object):\n def __init__(self, args=None):\n super(TuGraphSample, self).__init__()\n self.args = args\n def sample(self, g, seed_nodes):\n args = self.args\n # 1. Load graph data\n galaxy = PyGalaxy(args.db_path)\n galaxy.SetCurrentUser(args.username, args.password)\n db = galaxy.OpenGraph(args.graph_name, False)\n sample_node = seed_nodes.tolist()\n length = args.randomwalk_length\n NodeInfo = []\n EdgeInfo = []\n # 2. Sampling method, the result is stored in NodeInfo and EdgeInfo\n if args.sample_method == 'randomwalk':\n randomwalk.Process(db, 100, sample_node, length, NodeInfo, EdgeInfo)\n elif args.sample_method == 'negative':\n negativesample.Process(db, 100)\n else:\n neighborsample(db, 100, sample_node, args.nbor_sample_num, NodeInfo, EdgeInfo)\n del db\n del galaxy\n # 3. Format conversion of the result to fit the training format\n remap(EdgeInfo[0], EdgeInfo[1], NodeInfo[0])\n g = dgl.graph((EdgeInfo[0], EdgeInfo[1]))\n g.ndata['feat'] = torch.tensor(NodeInfo[1])\n g.ndata['label'] = torch.tensor(NodeInfo[2])\n return g\n"})}),"\n",(0,r.jsx)(n.p,{children:"As shown in the code, the graph data is first loaded into memory. Then use the sampling operator to sample the graph data, and the results are stored in NodeInfo and EdgeInfo. NodeInfo and EdgeInfo are python list results, and the stored information results are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Graph Data"}),(0,r.jsx)(n.th,{children:"Storage Position"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Edge source"}),(0,r.jsx)(n.td,{children:"EdgeInfo[0]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Edge destination"}),(0,r.jsx)(n.td,{children:"EdgeInfo[1]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex ID"}),(0,r.jsx)(n.td,{children:"NodeInfo[0]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex features"}),(0,r.jsx)(n.td,{children:"NodeInfo[1]"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Vertex label"}),(0,r.jsx)(n.td,{children:"NodeInfo[2]"})]})]})]}),"\n",(0,r.jsx)(n.p,{children:"Finally, we format the result to fit the training format. Here we use the DGL training framework, so we construct a DGL Graph using the result data, and then return the DGL Graph."}),"\n",(0,r.jsx)(n.p,{children:"Once we provide the TuGraphSample class, we can use it for Mini-Batch training. Let the data loading part of DGL use the sampler instance of TuGraphSample as follows:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:" sampler = TugraphSample(args)\n fake_g = construct_graph() # just make dgl happy\n dataloader = dgl.dataloading.DataLoader(fake_g,\n torch.arange(train_nids),\n sampler,\n batch_size=batch_size,\n device=device,\n use_ddp=True,\n num_workers=0,\n drop_last=False,\n )\n"})}),"\n",(0,r.jsx)(n.p,{children:"Use DGL for model training:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"def train(dataloader, model):\n optimizer = torch.optim.Adam(model.parameters(), lr=1e-2, weight_decay=5e-4)\n model.train()\n s = time.time()\n for graph in dataloader:\n load_time = time.time()\n graph = dgl.add_self_loop(graph)\n logits = model(graph, graph.ndata['feat'])\n loss = loss_fcn(logits, graph.ndata['label'])\n optimizer.zero_grad()\n loss.backward()\n optimizer.step()\n train_time = time.time()\n print('load time', load_time - s, 'train_time', train_time - load_time)\n s = time.time()\n return float(loss)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"3-full-batch-training",children:"3. Full-Batch training"}),"\n",(0,r.jsx)(n.p,{children:"Full-Batch training of GNNs (Graph Neural Networks) is a type of training that involves processing the entire training dataset at once. It is one of the simplest and most straightforward training methods for GNNs, where the entire graph is treated as a single instance. In full-batch training, the entire dataset is loaded into memory and the model is trained on the entire graph. This type of training is especially useful for small to medium-sized graphs, and is mainly used for static graphs that do not change over time."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:"getdb. Process(db, olapondb, feature_len, NodeInfo, EdgeInfo)\n"})}),"\n",(0,r.jsx)(n.p,{children:"The full graph are then fed into the training framework for training.\nFull code: learn/examples/train_full_cora.py\u3002"})]})}function g(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>o,x:()=>s});var r=a(6540);const t={},i=r.createContext(t);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84903e8d.b9fca817.js b/assets/js/84903e8d.b9fca817.js
deleted file mode 100644
index be49202829..0000000000
--- a/assets/js/84903e8d.b9fca817.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1680],{1991:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>u});var n=s(4848),r=s(8453);const c={},a="\u8054\u7cfb\u65b9\u5f0f",o={id:"zh-CN/source/contacts",title:"\u8054\u7cfb\u65b9\u5f0f",description:"\u60a8\u6709\u4efb\u4f55\u5bf9\u4ea7\u54c1\u7684\u610f\u89c1\u548c\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u8054\u7cfb\u65b9\u5f0f\u52a0\u5165\u8ba8\u8bba\uff0c\u6216\u63d0\u51fa\u5efa\u8bae\u3002",source:"@site/../docs/zh-CN/source/15.contacts.md",sourceDirName:"zh-CN/source",slug:"/zh-CN/source/contacts",permalink:"/tugraph-db/zh-CN/source/contacts",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:15,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"FAQ",permalink:"/tugraph-db/zh-CN/source/faq"},next:{title:"\u4e1a\u52a1\u5f00\u53d1\u6307\u5357",permalink:"/tugraph-db/zh-CN/source/development_guide"}},i={},u=[];function h(e){const t={a:"a",h1:"h1",header:"header",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"\u8054\u7cfb\u65b9\u5f0f",children:"\u8054\u7cfb\u65b9\u5f0f"})}),"\n",(0,n.jsx)(t.p,{children:"\u60a8\u6709\u4efb\u4f55\u5bf9\u4ea7\u54c1\u7684\u610f\u89c1\u548c\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u8054\u7cfb\u65b9\u5f0f\u52a0\u5165\u8ba8\u8bba\uff0c\u6216\u63d0\u51fa\u5efa\u8bae\u3002"}),"\n",(0,n.jsxs)(t.p,{children:["\u5b98\u7f51: ",(0,n.jsx)(t.a,{href:"https://www.tugraph.org",children:"www.tugraph.org"})]}),"\n",(0,n.jsxs)(t.p,{children:["Github Issue (\u9519\u8bef\u53cd\u9988\u3001\u529f\u80fd\u8ba8\u8bba)\n",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-db/tugraph-db/issues",children:"Issue"})]}),"\n",(0,n.jsxs)(t.p,{children:["Github Discussions (\u6280\u672f\u8ba8\u8bba)\n",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions",children:"Discussions"})]}),"\n",(0,n.jsxs)(t.p,{children:["Slack (\u5728\u7ebf\u5f00\u53d1\u6c9f\u901a):\n",(0,n.jsx)(t.a,{href:"https://join.slack.com/t/tugraph/shared_invite/zt-1hha8nuli-bqdkwn~w4zH1vlk0QvqIfg",children:"TuGraph.slack"})]}),"\n",(0,n.jsxs)(t.p,{children:["\u901a\u8fc7\u9489\u9489\u7fa4\u3001\u5fae\u4fe1\u7fa4\u3001\u5fae\u4fe1\u516c\u4f17\u53f7\u3001\u90ae\u7bb1\u548c\u7535\u8bdd\u8054\u7cfb\u6211\u4eec:\n",(0,n.jsx)(t.img,{alt:"contacts",src:s(9060).A+"",width:"1547",height:"516"})]})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},9060:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/contact-zh-f0efa46ecfe8a05be9fc5eff2aa1a386.png"},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>o});var n=s(6540);const r={},c=n.createContext(r);function a(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84903e8d.e481179f.js b/assets/js/84903e8d.e481179f.js
new file mode 100644
index 0000000000..5541a6e59b
--- /dev/null
+++ b/assets/js/84903e8d.e481179f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1680],{1991:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>h});var n=s(4848),r=s(8453);const c={},a="\u8054\u7cfb\u65b9\u5f0f",i={id:"contacts",title:"\u8054\u7cfb\u65b9\u5f0f",description:"\u60a8\u6709\u4efb\u4f55\u5bf9\u4ea7\u54c1\u7684\u610f\u89c1\u548c\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u8054\u7cfb\u65b9\u5f0f\u52a0\u5165\u8ba8\u8bba\uff0c\u6216\u63d0\u51fa\u5efa\u8bae\u3002",source:"@site/../docs/zh-CN/source/15.contacts.md",sourceDirName:".",slug:"/contacts",permalink:"/tugraph-db/zh/contacts",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:15,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"FAQ",permalink:"/tugraph-db/zh/faq"},next:{title:"\u4e1a\u52a1\u5f00\u53d1\u6307\u5357",permalink:"/tugraph-db/zh/development_guide"}},o={},h=[];function u(t){const e={a:"a",h1:"h1",header:"header",img:"img",p:"p",...(0,r.R)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.header,{children:(0,n.jsx)(e.h1,{id:"\u8054\u7cfb\u65b9\u5f0f",children:"\u8054\u7cfb\u65b9\u5f0f"})}),"\n",(0,n.jsx)(e.p,{children:"\u60a8\u6709\u4efb\u4f55\u5bf9\u4ea7\u54c1\u7684\u610f\u89c1\u548c\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u8054\u7cfb\u65b9\u5f0f\u52a0\u5165\u8ba8\u8bba\uff0c\u6216\u63d0\u51fa\u5efa\u8bae\u3002"}),"\n",(0,n.jsxs)(e.p,{children:["\u5b98\u7f51: ",(0,n.jsx)(e.a,{href:"https://www.tugraph.org",children:"www.tugraph.org"})]}),"\n",(0,n.jsxs)(e.p,{children:["Github Issue (\u9519\u8bef\u53cd\u9988\u3001\u529f\u80fd\u8ba8\u8bba)\n",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/issues",children:"Issue"})]}),"\n",(0,n.jsxs)(e.p,{children:["Github Discussions (\u6280\u672f\u8ba8\u8bba)\n",(0,n.jsx)(e.a,{href:"https://github.com/TuGraph-db/tugraph-db/discussions",children:"Discussions"})]}),"\n",(0,n.jsxs)(e.p,{children:["Slack (\u5728\u7ebf\u5f00\u53d1\u6c9f\u901a):\n",(0,n.jsx)(e.a,{href:"https://join.slack.com/t/tugraph/shared_invite/zt-1hha8nuli-bqdkwn~w4zH1vlk0QvqIfg",children:"TuGraph.slack"})]}),"\n",(0,n.jsxs)(e.p,{children:["\u901a\u8fc7\u9489\u9489\u7fa4\u3001\u5fae\u4fe1\u7fa4\u3001\u5fae\u4fe1\u516c\u4f17\u53f7\u3001\u90ae\u7bb1\u548c\u7535\u8bdd\u8054\u7cfb\u6211\u4eec:\n",(0,n.jsx)(e.img,{alt:"contacts",src:s(9060).A+"",width:"1547",height:"516"})]})]})}function d(t={}){const{wrapper:e}={...(0,r.R)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},9060:(t,e,s)=>{s.d(e,{A:()=>n});const n=s.p+"assets/images/contact-zh-f0efa46ecfe8a05be9fc5eff2aa1a386.png"},8453:(t,e,s)=>{s.d(e,{R:()=>a,x:()=>i});var n=s(6540);const r={},c=n.createContext(r);function a(t){const e=n.useContext(c);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function i(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:a(t.components),n.createElement(c.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84ed95ea.248c56fc.js b/assets/js/84ed95ea.248c56fc.js
deleted file mode 100644
index 02623b1a5c..0000000000
--- a/assets/js/84ed95ea.248c56fc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4012],{4344:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=r(4848),d=r(8453);const s={},o="Round The World Demo",i={id:"zh-CN/source/quick-start/demo/round-the-world",title:"Round The World Demo",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u57fa\u4e8etugraph-db\u5f00\u53d1\u7684\u73af\u7403\u65c5\u884c\uff08Round The World\uff09demo",source:"@site/../docs/zh-CN/source/3.quick-start/2.demo/5.round-the-world.md",sourceDirName:"zh-CN/source/3.quick-start/2.demo",slug:"/zh-CN/source/quick-start/demo/round-the-world",permalink:"/tugraph-db/zh-CN/source/quick-start/demo/round-the-world",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u573a\u666f\uff1a\u4e09\u56fd",permalink:"/tugraph-db/zh-CN/source/quick-start/demo/three-kingdoms"},next:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",permalink:"/tugraph-db/zh-CN/source/user-guide/tugraph-browser"}},l={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:2},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:2},{value:"\u767b\u5f55\u9875\u9762",id:"\u767b\u5f55\u9875\u9762",level:3},{value:"\u67e5\u8be2\u9875\u9762",id:"\u67e5\u8be2\u9875\u9762",level:3},{value:"\u67e5\u8be2\u793a\u4f8b",id:"\u67e5\u8be2\u793a\u4f8b",level:3}];function h(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"round-the-world-demo",children:"Round The World Demo"})}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u57fa\u4e8etugraph-db\u5f00\u53d1\u7684\u73af\u7403\u65c5\u884c\uff08Round The World\uff09demo"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"\u7b80\u4ecb",children:"\u7b80\u4ecb"}),"\n",(0,n.jsx)(t.p,{children:'\u57fa\u4e8e"80\u5929\u73af\u6e38\u4e16\u754c"\u7684\u865a\u62df\u80cc\u666f\uff0c\u57fa\u4e8e\u90e8\u5206\u516c\u5f00\u5386\u53f2\u822a\u73ed\u6570\u636e\uff0c\u5e2e\u52a9\u7528\u6237\u8bbe\u8ba1\u591a\u4e2a\u57ce\u5e02\u7684\u6700\u4f18\u822a\u73ed\u89c4\u5212\u3002'}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"demo\u8bbe\u8ba1\u4e86\u81ea\u5b9a\u4e49\u7f51\u7ad9\u670d\u52a1"}),"\n",(0,n.jsx)(t.li,{children:"\u6570\u636e\u6765\u6e90\u4e3a\u56fd\u5916\u67d0\u5f00\u6e90\u7f51\u7ad9\uff0c\u4e0d\u5305\u542b\u5927\u9646\u57ce\u5e02\u822a\u73ed\u6570\u636e"}),"\n",(0,n.jsx)(t.li,{children:"\u6570\u636e\u4e2d\u822a\u73ed\u4ef7\u683c\u4e3a\u6a21\u62df\u6570\u636e\uff0c\u4e0d\u4ee3\u8868\u771f\u5b9e\u4ef7\u683c"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,n.jsx)(t.h3,{id:"\u767b\u5f55\u9875\u9762",children:"\u767b\u5f55\u9875\u9762"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"data",src:r(5941).A+"",width:"2556",height:"1358"})}),"\n",(0,n.jsx)(t.h3,{id:"\u67e5\u8be2\u9875\u9762",children:"\u67e5\u8be2\u9875\u9762"}),"\n",(0,n.jsx)(t.p,{children:"\u5728\u767b\u5f55\u9875\u9762\u70b9\u51fb\u540e\u8fdb\u5165\u67e5\u8be2\u9875\u9762"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"data",src:r(5662).A+"",width:"2558",height:"1361"})}),"\n",(0,n.jsx)(t.h3,{id:"\u67e5\u8be2\u793a\u4f8b",children:"\u67e5\u8be2\u793a\u4f8b"}),"\n",(0,n.jsx)(t.p,{children:"\u5728\u5de6\u4e0b\u89d2\u7684\u57ce\u5e02\u5217\u8868\u4e2d\u9009\u62e9\u4e0d\u8d85\u8fc78\u4e2a\u57ce\u5e02\uff0c\u70b9\u51fb\u67e5\u8be2\u53ef\u8fd4\u56de\u63a8\u8350\u7684\u822a\u73ed\u89c4\u5212\uff0c\u5728\u6ee1\u8db3\u524d\u540e\u822a\u73ed\u95f4\u9694\u57282-6\u5c0f\u65f6\u7684\u8981\u6c42\u4e0b\uff0c\u8fd4\u56de\u8d39\u7528\u6700\u4f4e\u548c\u98de\u884c\u65f6\u95f4\u6700\u77ed\u768410\u6761\u8def\u5f84\u89c4\u5212\u3002"}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"data",src:r(7960).A+"",width:"2557",height:"1360"})}),"\n",(0,n.jsxs)(t.p,{children:["\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e\u89c1 ",(0,n.jsx)(t.a,{href:"https://github.com/TuGraph-family/tugraph-db-demo/tree/main/round_the_world",children:"Round The World Demo"})," \u6587\u6863\u3002"]})]})}function a(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5662:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/flight_page-52024a09a0e4385775cfe4b1a1c94016.jpg"},5941:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/main_page-482d2f905c0e41f6410f7d21a9bc37de.jpg"},7960:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/search_example-39f5b10fdbf276e8025bbf2f3e27d468.jpg"},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>i});var n=r(6540);const d={},s=n.createContext(d);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84ed95ea.64f6fcd8.js b/assets/js/84ed95ea.64f6fcd8.js
new file mode 100644
index 0000000000..d398d7a230
--- /dev/null
+++ b/assets/js/84ed95ea.64f6fcd8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4012],{4344:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>a});var r=n(4848),d=n(8453);const s={},i="Round The World Demo",o={id:"quick-start/demo/round-the-world",title:"Round The World Demo",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u57fa\u4e8etugraph-db\u5f00\u53d1\u7684\u73af\u7403\u65c5\u884c\uff08Round The World\uff09demo",source:"@site/../docs/zh-CN/source/3.quick-start/2.demo/5.round-the-world.md",sourceDirName:"3.quick-start/2.demo",slug:"/quick-start/demo/round-the-world",permalink:"/tugraph-db/zh/quick-start/demo/round-the-world",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u573a\u666f\uff1a\u4e09\u56fd",permalink:"/tugraph-db/zh/quick-start/demo/three-kingdoms"},next:{title:"\u53ef\u89c6\u5316\u64cd\u4f5c\u624b\u518c",permalink:"/tugraph-db/zh/user-guide/tugraph-browser"}},l={},a=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:2},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:2},{value:"\u767b\u5f55\u9875\u9762",id:"\u767b\u5f55\u9875\u9762",level:3},{value:"\u67e5\u8be2\u9875\u9762",id:"\u67e5\u8be2\u9875\u9762",level:3},{value:"\u67e5\u8be2\u793a\u4f8b",id:"\u67e5\u8be2\u793a\u4f8b",level:3}];function h(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"round-the-world-demo",children:"Round The World Demo"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd\u4e86\u57fa\u4e8etugraph-db\u5f00\u53d1\u7684\u73af\u7403\u65c5\u884c\uff08Round The World\uff09demo"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"\u7b80\u4ecb",children:"\u7b80\u4ecb"}),"\n",(0,r.jsx)(t.p,{children:'\u57fa\u4e8e"80\u5929\u73af\u6e38\u4e16\u754c"\u7684\u865a\u62df\u80cc\u666f\uff0c\u57fa\u4e8e\u90e8\u5206\u516c\u5f00\u5386\u53f2\u822a\u73ed\u6570\u636e\uff0c\u5e2e\u52a9\u7528\u6237\u8bbe\u8ba1\u591a\u4e2a\u57ce\u5e02\u7684\u6700\u4f18\u822a\u73ed\u89c4\u5212\u3002'}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"demo\u8bbe\u8ba1\u4e86\u81ea\u5b9a\u4e49\u7f51\u7ad9\u670d\u52a1"}),"\n",(0,r.jsx)(t.li,{children:"\u6570\u636e\u6765\u6e90\u4e3a\u56fd\u5916\u67d0\u5f00\u6e90\u7f51\u7ad9\uff0c\u4e0d\u5305\u542b\u5927\u9646\u57ce\u5e02\u822a\u73ed\u6570\u636e"}),"\n",(0,r.jsx)(t.li,{children:"\u6570\u636e\u4e2d\u822a\u73ed\u4ef7\u683c\u4e3a\u6a21\u62df\u6570\u636e\uff0c\u4e0d\u4ee3\u8868\u771f\u5b9e\u4ef7\u683c"}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,r.jsx)(t.h3,{id:"\u767b\u5f55\u9875\u9762",children:"\u767b\u5f55\u9875\u9762"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"data",src:n(5941).A+"",width:"2556",height:"1358"})}),"\n",(0,r.jsx)(t.h3,{id:"\u67e5\u8be2\u9875\u9762",children:"\u67e5\u8be2\u9875\u9762"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u767b\u5f55\u9875\u9762\u70b9\u51fb\u540e\u8fdb\u5165\u67e5\u8be2\u9875\u9762"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"data",src:n(5662).A+"",width:"2558",height:"1361"})}),"\n",(0,r.jsx)(t.h3,{id:"\u67e5\u8be2\u793a\u4f8b",children:"\u67e5\u8be2\u793a\u4f8b"}),"\n",(0,r.jsx)(t.p,{children:"\u5728\u5de6\u4e0b\u89d2\u7684\u57ce\u5e02\u5217\u8868\u4e2d\u9009\u62e9\u4e0d\u8d85\u8fc78\u4e2a\u57ce\u5e02\uff0c\u70b9\u51fb\u67e5\u8be2\u53ef\u8fd4\u56de\u63a8\u8350\u7684\u822a\u73ed\u89c4\u5212\uff0c\u5728\u6ee1\u8db3\u524d\u540e\u822a\u73ed\u95f4\u9694\u57282-6\u5c0f\u65f6\u7684\u8981\u6c42\u4e0b\uff0c\u8fd4\u56de\u8d39\u7528\u6700\u4f4e\u548c\u98de\u884c\u65f6\u95f4\u6700\u77ed\u768410\u6761\u8def\u5f84\u89c4\u5212\u3002"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"data",src:n(7960).A+"",width:"2557",height:"1360"})}),"\n",(0,r.jsxs)(t.p,{children:["\u8be6\u7ec6\u4f7f\u7528\u8bf4\u660e\u89c1 ",(0,r.jsx)(t.a,{href:"https://github.com/TuGraph-family/tugraph-db-demo/tree/main/round_the_world",children:"Round The World Demo"})," \u6587\u6863\u3002"]})]})}function c(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},5662:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/flight_page-52024a09a0e4385775cfe4b1a1c94016.jpg"},5941:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/main_page-482d2f905c0e41f6410f7d21a9bc37de.jpg"},7960:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/search_example-39f5b10fdbf276e8025bbf2f3e27d468.jpg"},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var r=n(6540);const d={},s=r.createContext(d);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84f7962c.0bfdf4a5.js b/assets/js/84f7962c.0bfdf4a5.js
deleted file mode 100644
index 8b744b0b5f..0000000000
--- a/assets/js/84f7962c.0bfdf4a5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3282],{1298:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>d,metadata:()=>t,toc:()=>h});var r=s(4848),i=s(8453);const d={},l="TuGraph RESTful API Legacy",t={id:"en-US/source/client-tools/restful-api-legacy",title:"TuGraph RESTful API Legacy",description:"This document describes how to call the Rest API of TuGrpah.",source:"@site/../docs/en-US/source/7.client-tools/9.restful-api-legacy.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/restful-api-legacy",permalink:"/tugraph-db/en-US/source/client-tools/restful-api-legacy",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RPC API",permalink:"/tugraph-db/en-US/source/client-tools/rpc-api"},next:{title:"Cypher API",permalink:"/tugraph-db/en-US/source/query/cypher"}},c={},h=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Protocols And Data Format",id:"2protocols-and-data-format",level:2},{value:"2.1.Protocols",id:"21protocols",level:3},{value:"2.2.Request",id:"22request",level:3},{value:"2.3.Response",id:"23response",level:3},{value:"2.4.Data Format",id:"24data-format",level:3},{value:"2.5.URI Format",id:"25uri-format",level:3},{value:"3.Login",id:"3login",level:2},{value:"3.1.User Login",id:"31user-login",level:3},{value:"3.2.Token Refresh",id:"32token-refresh",level:3},{value:"3.3.Modify Token Validity Period",id:"33modify-token-validity-period",level:3},{value:"3.4.Query Token validity period",id:"34query-token-validity-period",level:3},{value:"3.5.Logout",id:"35logout",level:3},{value:"4.Query",id:"4query",level:2},{value:"4.1.Call Cypher",id:"41call-cypher",level:3},{value:"4.2.Call Cypher with Parameters",id:"42call-cypher-with-parameters",level:3},{value:"5.Stored Procedures",id:"5stored-procedures",level:2},{value:"5.1.Create Stored Procedure",id:"51create-stored-procedure",level:3},{value:"5.2.List Stored Procedures",id:"52list-stored-procedures",level:3},{value:"5.3.Retrieve Stored Procedure Detail",id:"53retrieve-stored-procedure-detail",level:3},{value:"5.4.Call Stored Procedure",id:"54call-stored-procedure",level:3},{value:"5.5.Delete Stored Procedure",id:"55delete-stored-procedure",level:3},{value:"6.Deprecated",id:"6deprecated",level:2},{value:"6.1.User Management",id:"61user-management",level:3},{value:"6.1.1.Add User",id:"611add-user",level:4},{value:"6.1.2.Change Password",id:"612change-password",level:4},{value:"6.1.3.List All Users",id:"613list-all-users",level:4},{value:"6.1.4.Delete User",id:"614delete-user",level:4},{value:"6.2.Access Control",id:"62access-control",level:3},{value:"6.2.1.Query User's Access Level",id:"621query-users-access-level",level:4},{value:"6.2.2.Change User's Access Level",id:"622change-users-access-level",level:4},{value:"6.2.3.Remove User's Access Right",id:"623remove-users-access-right",level:4},{value:"6.3.Server Status",id:"63server-status",level:3},{value:"6.3.1.Modify Server Configuration",id:"631modify-server-configuration",level:4},{value:"6.3.2.Current Server Status",id:"632current-server-status",level:4},{value:"6.3.3.CPU Status",id:"633cpu-status",level:4},{value:"6.3.4.Disk Status",id:"634disk-status",level:4},{value:"6.3.5.Memory Status",id:"635memory-status",level:4},{value:"6.3.6.Database Size",id:"636database-size",level:4},{value:"6.3.7.DB Configuration",id:"637db-configuration",level:4},{value:"6.3.7.High Availability Server List",id:"637high-availability-server-list",level:4},{value:"6.3.8.Current Leader Information",id:"638current-leader-information",level:4},{value:"6.3.9.Server Statistics",id:"639server-statistics",level:4},{value:"6.3.10.Get Audit Logs",id:"6310get-audit-logs",level:4},{value:"6.4.Task Management",id:"64task-management",level:3},{value:"6.4.1.List Running Tasks",id:"641list-running-tasks",level:4},{value:"6.4.2.Abort Task",id:"642abort-task",level:4},{value:"6.5.Subgraph Management",id:"65subgraph-management",level:3},{value:"6.5.1.Create New Subgraph",id:"651create-new-subgraph",level:4},{value:"6.5.2.Delete Subgraph",id:"652delete-subgraph",level:4},{value:"6.5.3.List All Subgraphs",id:"653list-all-subgraphs",level:4},{value:"6.6.Label",id:"66label",level:3},{value:"6.6.1.Create Label",id:"661create-label",level:4},{value:"6.6.2.List All Labels",id:"662list-all-labels",level:4},{value:"6.6.3.Get Label Data Format",id:"663get-label-data-format",level:4},{value:"6.6.4.Schema Import",id:"664schema-import",level:4},{value:"6.7.Vertex Operation",id:"67vertex-operation",level:3},{value:"6.7.1.List Vertex and Label Number",id:"671list-vertex-and-label-number",level:4},{value:"6.7.2.Create New Vertex",id:"672create-new-vertex",level:4},{value:"6.7.3.Batch Create Vertexes",id:"673batch-create-vertexes",level:4},{value:"6.7.4.Get Vertex",id:"674get-vertex",level:4},{value:"6.7.5.Delete Vertex",id:"675delete-vertex",level:4},{value:"6.7.6.Get Vertex Property",id:"676get-vertex-property",level:4},{value:"6.7.7.Get Vertex Field",id:"677get-vertex-field",level:4},{value:"6.7.8.Update Vertex Property",id:"678update-vertex-property",level:4},{value:"6.8.Edge Operation",id:"68edge-operation",level:3},{value:"6.8.1.Create Edge",id:"681create-edge",level:4},{value:"6.8.2.Batch Create Edges",id:"682batch-create-edges",level:4},{value:"6.8.3.List Out-going Edges",id:"683list-out-going-edges",level:4},{value:"6.8.4.List Incoming Edges",id:"684list-incoming-edges",level:4},{value:"6.8.5.List All Edges",id:"685list-all-edges",level:4},{value:"6.8.6.Get Edge Information",id:"686get-edge-information",level:4},{value:"6.8.7.Delete Edge",id:"687delete-edge",level:4},{value:"6.8.8.Get Edge Properties",id:"688get-edge-properties",level:4},{value:"6.8.9.Get Edge Field",id:"689get-edge-field",level:4},{value:"6.8.10.Update Edge Property",id:"6810update-edge-property",level:4},{value:"6.9.Index",id:"69index",level:3},{value:"6.9.1.Create Index",id:"691create-index",level:4},{value:"6.9.2.List All Indexes",id:"692list-all-indexes",level:4},{value:"6.9.3.List Indexes Related with Specified Label",id:"693list-indexes-related-with-specified-label",level:4},{value:"6.9.4.Delete Index",id:"694delete-index",level:4},{value:"6.9.5.Get Vertex by Index",id:"695get-vertex-by-index",level:4},{value:"6.10.Data Import",id:"610data-import",level:3},{value:"6.11.Miscellany",id:"611miscellany",level:3},{value:"6.11.1.Extract Subgraph",id:"6111extract-subgraph",level:4}];function x(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"tugraph-restful-api-legacy",children:"TuGraph RESTful API Legacy"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"This document describes how to call the Rest API of TuGrpah."}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph provides HTTP RESTful APIs, which allow users to access TuGraph servers through HTTP requests remotely."}),"\n",(0,r.jsx)(e.p,{children:"This document specifiers the TuGraph HTTP RESTful API."}),"\n",(0,r.jsxs)(e.p,{children:["\u26a0\ufe0f ",(0,r.jsx)(e.strong,{children:"All the other RESTful APIs excluding the three below will be deprived after 4/30/2023."})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Login"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Query"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Store Procedures"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"2protocols-and-data-format",children:"2.Protocols And Data Format"}),"\n",(0,r.jsx)(e.h3,{id:"21protocols",children:"2.1.Protocols"}),"\n",(0,r.jsxs)(e.p,{children:["Both HTTP and HTTPS protocols are supported by TuGraph. The system uses HTTP protocol by default. To use HTTPS, the ",(0,r.jsx)(e.code,{children:"ssl_auth"})," option should be set to ",(0,r.jsx)(e.code,{children:"true"})," in the DB configuration."]}),"\n",(0,r.jsx)(e.h3,{id:"22request",children:"2.2.Request"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph supports HTTP GET/POST/PUT/DELETE requests, in which:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"GET"})," requests are used for read-only requests, such as getting vertex properties, edge properties, etc."]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"POST"})," requests are used to create entities, submit Cypher, and to manage and call stored procedures;"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"PUT"})," requests are used to modify existing entities, for example, to modify vertex properties, edge properties, etc."]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"DELETE"})," requests are used to delete existing entities, such as vertices, edges, etc."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["In high-availability mode, users can set ",(0,r.jsx)(e.code,{children:"ServerVersion"})," in the request header to make sure the request is never served with an outdated version.\nThe current ",(0,r.jsx)(e.code,{children:"ServerVersion"})," can be obtained from the header returned by the server."]}),"\n",(0,r.jsx)(e.h3,{id:"23response",children:"2.3.Response"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph returns the following HTTP status codes:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"200 OK"}),": operation is successful."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"307 Temporary Redirect"}),": the operation is redirected, typically in high-availability mode, to the master."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"400 Bad Request"}),": incorrect input, such as URI error, or invalid parameters."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"500 Internal Server Error"}),": server error."]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["When the operation is successful, the JSON response contains the return value of the operation. When the operation is redirected, the ",(0,r.jsx)(e.code,{children:"location"})," field in the returned HTTP header contains the redirect destination address.\nWhen an input error or server error occurs, the JSON response contains a ",(0,r.jsx)(e.code,{children:"error_message"})," field that describes the error."]}),"\n",(0,r.jsxs)(e.p,{children:["In high-availability mode, the server will set ",(0,r.jsx)(e.code,{children:"server_version"})," field in the header to inform the client of the data version of the current server. When clients switch between several different servers, this version number guarantees that the client will not read from an outdated server."]}),"\n",(0,r.jsx)(e.h3,{id:"24data-format",children:"2.4.Data Format"}),"\n",(0,r.jsxs)(e.p,{children:["The server and clients exchange data in JSON format. When sending a request, the header of the HTTP request should be set with ",(0,r.jsx)(e.code,{children:"Accept:application/json, Content-Type:app/json"}),".\nFor example, to create a new vertex, the request header should look like the following:"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" Accept: application/json; charset=UTF-8\n Content-Type: application/json\n server_version: 12\n"})}),"\n",(0,r.jsx)(e.h3,{id:"25uri-format",children:"2.5.URI Format"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph REST API provides access to: web visualization, login, db info, label, index, node, relationship, cypher, task, cpp_plugin, and python_plugin.\nThe URI format used for each function is as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/web"}),(0,r.jsx)(e.td,{children:"web visualization"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/cypher"}),(0,r.jsx)(e.td,{children:"cypher request"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/acl"}),(0,r.jsx)(e.td,{children:"access control"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/user"}),(0,r.jsx)(e.td,{children:"user management"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/login"}),(0,r.jsx)(e.td,{children:"user login"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/info"}),(0,r.jsx)(e.td,{children:"database status and information"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/task"}),(0,r.jsx)(e.td,{children:"task management"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"subgraph management"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"For each subgraph, the following interfaces are provided:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"create, modify, and delete subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/node"]}),(0,r.jsx)(e.td,{children:"vertex operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/relationship"]}),(0,r.jsx)(e.td,{children:"edge operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/label"]}),(0,r.jsx)(e.td,{children:"label-related operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/index"]}),(0,r.jsx)(e.td,{children:"index-related operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cypher"]}),(0,r.jsx)(e.td,{children:"subgraph-specific cypher operation"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cpp_plugin"]}),(0,r.jsx)(e.td,{children:"C++ plugin(stored procedure)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/python_plugin"]}),(0,r.jsx)(e.td,{children:"Python plugin(stored procedure)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/import"]}),(0,r.jsx)(e.td,{children:"online import"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/misc"]}),(0,r.jsx)(e.td,{children:"other operations"})]})]})]}),"\n",(0,r.jsx)(e.h2,{id:"3login",children:"3.Login"}),"\n",(0,r.jsxs)(e.p,{children:["The system creates an administrator by default, whose username is ",(0,r.jsx)(e.em,{children:"admin"})," and password is ",(0,r.jsx)(e.em,{children:"73@TuGraph"}),". For security reasons, please remember to change your password after first starting the server."]}),"\n",(0,r.jsx)(e.h3,{id:"31user-login",children:"3.1.User Login"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph provides JWT-based user authentication. To log in to the server, the REST client should send a login request containing a username and password. Upon success, the client will receive a signed token in the form of a Json Web Token (JWT) and a Boolean variable (default_password) to determine whether it is the default password. The jwt token should be stored by the client and used for each subsequent request."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/login"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default_password"}),(0,r.jsx)(e.td,{children:"whether it is the default password"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/login\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "user":"admin",\n "password":"73@TuGraph"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek",\n "default_password": true\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"32token-refresh",children:"3.2.Token Refresh"}),"\n",(0,r.jsx)(e.p,{children:"After the token expires, the front-end initiates a refresh token interface, and the back-end verifies the validity of the token.\nIf the verification passes, a new token is generated; if the verification fails, status code 401 is returned."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/refresh"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization": "Bearer eyJhbGciOiJIUz32NiIsInR5cCI6IkpXVDJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byj3fYVAH4D88dfTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"33modify-token-validity-period",children:"3.3.Modify Token Validity Period"}),"\n",(0,r.jsx)(e.p,{children:"To modify the validity period of Token, three parameters need to be transmitted: jwt, refresh_time and expire_time, among which jwt is used to verify the user\u2019s identity. When refresh_time and expire_time are equal to 0, the validity period is indefinite. When refresh_time exceeds, you need to call the refresh interface to obtain a new Token; When expire_time expires, you need to log in again. (This interface call needs to confirm the security by itself, do not call unless necessary)"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/update_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"refresh_time"}),(0,r.jsx)(e.td,{children:"Valid time (deafult set to 0)"}),(0,r.jsx)(e.td,{children:"Int64"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"expire_time"}),(0,r.jsx)(e.td,{children:"Expire time (deafult set to 0)"}),(0,r.jsx)(e.td,{children:"Int64"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/update_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n "refresh_time":0\n "expire_time":0\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"34query-token-validity-period",children:"3.4.Query Token validity period"}),"\n",(0,r.jsx)(e.p,{children:"To query the validity period of the Token, you need to transmit jwt to verify the user's identity, and return, refresh_time and expire_time, where refresh_time indicates the refresh time, and you need to call the refresh interface to obtain a new Token when it exceeds; expire_time indicates the expiration time, and you need to log in again when it exceeds."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/get_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': if successful, return "refresh_time" and "expire_time".']}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/get_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "refresh_time":600,\n "expire_time":3600\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"35logout",children:"3.5.Logout"}),"\n",(0,r.jsx)(e.p,{children:"The user logs out and deletes the token at the same time."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/logout"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"4query",children:"4.Query"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/cypher\n"})}),"\n",(0,r.jsx)(e.h3,{id:"41call-cypher",children:"4.1.Call Cypher"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"Cypher query"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"running results"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"elapsed"}),(0,r.jsx)(e.td,{children:"running time in seconds"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"header"}),(0,r.jsx)(e.td,{children:"header of the results"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"size"}),(0,r.jsx)(e.td,{children:"number of results"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"header"})," is a list with each element in the form of:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of column"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"column data type, 0 is scalar, 1 is vertex id, 2 is vector"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n) RETURN n,n.name LIMIT 10"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.001224517822265625,\n "header": [\n {\n "name": "n",\n "type": 1\n },\n {\n "name": "n.name",\n "type": 0\n }\n ]\n "result": [\n [\n 0,\n "Rachel Kempson"\n ],\n [\n 1,\n "Michael Redgrave"\n ],\n [\n 2,\n "Vanessa Redgrave"\n ]\n ],\n "size": 3\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"42call-cypher-with-parameters",children:"4.2.Call Cypher with Parameters"}),"\n",(0,r.jsx)(e.p,{children:"Cypher supports querying with parameters. When a Cypher query with parameters is called, TuGraph caches the execution plan for that query to speed up the following queries of the same kind."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"Cypher query"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["Same as ",(0,r.jsx)(e.a,{href:"#Call-Cypher",children:"Call Cypher"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n:Person {name:$param1}) RETURN n.birthyear",\n "parameters": {\n "$param1": "Lindsay Lohan"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.005886077880859375,\n "header": [\n {\n "name": "n.birthyear",\n "type": 0\n }\n ],\n "result": [\n [\n 1986\n ]\n ],\n "size": 1\n }\n'})}),"\n",(0,r.jsx)(e.h2,{id:"5stored-procedures",children:"5.Stored Procedures"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/cpp_plugin|python_plugin\n"})}),"\n",(0,r.jsx)(e.h3,{id:"51create-stored-procedure",children:"5.1.Create Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"name of the plugin"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the plugin"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"code of plugin encoded in base64"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"whether it is a read-only stored procedure"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"type of plugin code, can be zip/cpp/so for cpp_plugin, while py for python_plugin"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.em,{children:["Note: read-only plugins are more efficient than write plugins. Always specify ",(0,r.jsx)(e.code,{children:"read-only=true"})," for read-only transactions."]})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.so}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"52list-stored-procedures",children:"5.2.List Stored Procedures"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list in which each element is a plugin description, in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"name of the stored procedure"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the stored procedure"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"whether the stored procedure is read-only"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n [\n {\n "description":"adds a vertex label to the db",\n "name":"add_label",\n "read_only":false\n },\n {\n "description": "scans graph and get number of edges",\n "name": "scan_graph",\n "read_only": true\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"53retrieve-stored-procedure-detail",children:"5.3.Retrieve Stored Procedure Detail"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Procedure detail, including code, in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"Procedure name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"Procedure descrition"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"Read only or not"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"String, Base64 encoded"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"Type of procedue code, can be zip/cpp/so for cpp_plugin, while py for python_plugin"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"54call-stored-procedure",children:"5.4.Call Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": String input."]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"input data"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"timeout"}),(0,r.jsx)(e.td,{children:"timeout in seconds, defaults to 0, which means no timeout"}),(0,r.jsx)(e.td,{children:"Float"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"running results"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/python_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n data : "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!",\n timeout : 0,\n in_process : true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "result": "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"55delete-stored-procedure",children:"5.5.Delete Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/cpp_plugin/example_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"6deprecated",children:"6.Deprecated"}),"\n",(0,r.jsx)(e.p,{children:"The APIs below will be removed after 4/30/2023."}),"\n",(0,r.jsx)(e.h3,{id:"61user-management",children:"6.1.User Management"}),"\n",(0,r.jsx)(e.h4,{id:"611add-user",children:"6.1.1.Add User"}),"\n",(0,r.jsx)(e.p,{children:"Add a new user and set the initial password for the user. Only administrators have permission to add new users. The username can only have letters, numbers, and underscores, and should not begin with a number. The password can contain any character. The username and password have a maximum length of 64 bytes."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_admin"}),(0,r.jsx)(e.td,{children:"whether the user is an administrator or not"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "USER1",\n "password": "AN_INITIAL_PASSWORD",\n "is_admin": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"612change-password",children:"6.1.2.Change Password"}),"\n",(0,r.jsx)(e.p,{children:"Users can change their own passwords, in which case the original password needs to be verified."}),"\n",(0,r.jsx)(e.p,{children:"Administrators can change the passwords of any user and promote non-admin users to administrators, or demote administrator users to regular users. When modifying another user's password, the original password of the user is not needed."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"user's current password, if modifying its own password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"user's new password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_admin"}),(0,r.jsx)(e.td,{children:"should this user be administrator or not, used when promoting or demoting users"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "current_password": "THE_CURRENT_PASSWORD"\n "new_password": "A_NEW_PASSWORD"\n "is_admin": true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"613list-all-users",children:"6.1.3.List All Users"}),"\n",(0,r.jsx)(e.p,{children:"List all users of the database. Only administrators are allowed to perform this operation."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": a dictionary of {",(0,r.jsx)(e.code,{children:"user_name"}),":",(0,r.jsx)(e.code,{children:"is_admin"}),"}"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": true,\n "guest1": false\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"614delete-user",children:"6.1.4.Delete User"}),"\n",(0,r.jsx)(e.p,{children:"Delete a user from the DB. Only administrators have permission to do so."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"62access-control",children:"6.2.Access Control"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph has four access levels. Different users can have different permissions for each subgraph. The four access levels are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Access Level"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"NONE"}),(0,r.jsx)(e.td,{children:"no access"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"READ"}),(0,r.jsx)(e.td,{children:"read-only"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"WRITE"}),(0,r.jsx)(e.td,{children:"can read and write vertexes and edges of the subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"FULL"}),(0,r.jsx)(e.td,{children:"full access, including changing metadata (label, index), managing stored procedures and deleting all data in the subgraph"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"Administrators have full access on all subgraphs, and a newly created non-admin user does not have access for any subgraph. Users who have full access on a subgraph can set the access level for other users on that subgraph."}),"\n",(0,r.jsx)(e.h4,{id:"621query-users-access-level",children:"6.2.1.Query User's Access Level"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl/?user={user_name}&graph={graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["When both ",(0,r.jsx)(e.code,{children:"user"})," and ",(0,r.jsx)(e.code,{children:"graph"})," are specified, the user's access level for the subgraph is returned, such as ",(0,r.jsx)(e.code,{children:"READ"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:["When only ",(0,r.jsx)(e.code,{children:"user"})," is specified, all subgraphs that the user can access (access level not ",(0,r.jsx)(e.code,{children:"NONE"}),") are returned, as well as the user's access level on the subgraph."]}),"\n",(0,r.jsxs)(e.p,{children:["When only ",(0,r.jsx)(e.code,{children:"graph"})," is specified, all users who have access level on this graph (excluding administrators, who have implicit ",(0,r.jsx)(e.code,{children:"FULL"})," access) and their access levels are returned. This operation requires administrator permission."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/acl/?user=user1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": "READ",\n "graph2": "WRITE",\n "graph3": "FULL"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"622change-users-access-level",children:"6.2.2.Change User's Access Level"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph's name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"acl"}),(0,r.jsx)(e.td,{children:"access level"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/acl\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "user1",\n "graph": "graph1",\n "acl": "FULL"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"623remove-users-access-right",children:"6.2.3.Remove User's Access Right"}),"\n",(0,r.jsxs)(e.p,{children:["This is equivalent to setting access level to ",(0,r.jsx)(e.code,{children:"NONE"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl/?user={user_name}&graph={graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/acl/?user=user1&graph=graph1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"63server-status",children:"6.3.Server Status"}),"\n",(0,r.jsx)(e.h4,{id:"631modify-server-configuration",children:"6.3.1.Modify Server Configuration"}),"\n",(0,r.jsx)(e.p,{children:"Modifying the server configuration will take effect immediately after the configuration modification and will affect all servers. These configurations take precedence over configuration files and command line arguments."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/config"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_async"}),(0,r.jsx)(e.td,{children:"Whether to enable asynchronous mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optimistic_txn"}),(0,r.jsx)(e.td,{children:"Whether to use optimistic transaction lock by default"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_audit_log"}),(0,r.jsx)(e.td,{children:"Whether to enable audit logging"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": If successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/config\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "db_async": true,\n "enable_audit_log": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"632current-server-status",children:"6.3.2.Current Server Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"lgraph_version"}),(0,r.jsx)(e.td,{children:"TuGraph version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_branch"}),(0,r.jsx)(e.td,{children:"server's git branch"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_commit"}),(0,r.jsx)(e.td,{children:"server's git commit version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"web_commit"}),(0,r.jsx)(e.td,{children:"web client commit version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_id"}),(0,r.jsx)(e.td,{children:"cpp compiler id"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_version"}),(0,r.jsx)(e.td,{children:"cpp compiler version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"python_version"}),(0,r.jsx)(e.td,{children:"python lib version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpu"}),(0,r.jsx)(e.td,{children:"cpu information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#CPU-Status",children:"CPU Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk"}),(0,r.jsx)(e.td,{children:"disk IO information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Disk-Status",children:"Disk Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"memory"}),(0,r.jsx)(e.td,{children:"memory information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Memory-Status",children:"Memory Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_space"}),(0,r.jsx)(e.td,{children:"graph database storage"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Graph-Database-Storage",children:"Graph Database Storage"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_config"}),(0,r.jsx)(e.td,{children:"graph database configuration"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Graph-Database-Configuration",children:"Graph Database Configuration"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"up_time"}),(0,r.jsx)(e.td,{children:"database's online running time"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "lgraph_version": "1.2.0",\n "git_branch": "master",\n "git_commit": "9e2977d",\n "web_commit": "1e2823d",\n "cpu_id": "GUN",\n "cpu_version": "4.8.5",\n "python_version": "3.2",\n "node": "/node",\n "relationship": "/relationship",\n "cpu": {\n "self": 25,\n "server": 35,\n "unit": "%"\n },\n "disk": {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n },\n "memory": {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n },\n "db_space": {\n "space": 57344,\n "unit": "B"\n },\n "db_config": {\n "db_async": false,\n "disable_auth": false,\n "enable_ha": false,\n ...\n },\n "up_time": 3235\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"633cpu-status",children:"6.3.3.CPU Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/cpu"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"TuGraph CPU usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server"}),(0,r.jsx)(e.td,{children:"server's CPU usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/cpu\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25,\n "server": 35,\n "unit": "%"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"634disk-status",children:"6.3.4.Disk Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/disk"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read"}),(0,r.jsx)(e.td,{children:"server's disk read rate"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"write"}),(0,r.jsx)(e.td,{children:"server's disk wrtie rate"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/disk\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"635memory-status",children:"6.3.5.Memory Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/memory"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"TuGraph memory usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_avail"}),(0,r.jsx)(e.td,{children:"server's available memory"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_total"}),(0,r.jsx)(e.td,{children:"server's total memory"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/memory\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"636database-size",children:"6.3.6.Database Size"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_space"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"space"}),(0,r.jsx)(e.td,{children:"total size of the database"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_space\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "space": 57344,\n "unit": "B"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637db-configuration",children:"6.3.7.DB Configuration"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_config"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"async"}),(0,r.jsx)(e.td,{children:"asynchronous mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disable_auth"}),(0,r.jsx)(e.td,{children:"whether to disable authentication"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ha"}),(0,r.jsx)(e.td,{children:"whether to enable high-availability mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_rpc"}),(0,r.jsx)(e.td,{children:"whether to enable RPC server"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"host"}),(0,r.jsx)(e.td,{children:"bound host address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"port"}),(0,r.jsx)(e.td,{children:"port of REST server"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_port"}),(0,r.jsx)(e.td,{children:"port of RPC server"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"thread_limit"}),(0,r.jsx)(e.td,{children:"limit of available threads for the graph database"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"use_ssl"}),(0,r.jsx)(e.td,{children:"whether to use SSL for authentication"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"verbose"}),(0,r.jsx)(e.td,{children:"verbose level of the output"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_config\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "async":false,\n "disable_auth":false,\n "enable_ha":false,\n "enable_rpc":false,\n "host":"127.0.0.1",\n "port":7070,\n "rpc_port":9091,\n "thread_limit":0,\n "use_ssl":false,\n "verbose":2\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637high-availability-server-list",children:"6.3.7.High Availability Server List"}),"\n",(0,r.jsx)(e.p,{children:"Get a list of replication servers. Valid only in high-availability mode."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/peers"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and a list of server information, each of server information is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"server's RPC address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"server's REST address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"state"}),(0,r.jsx)(e.td,{children:"server state"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["The server state can be ",(0,r.jsx)(e.code,{children:"MASTER"}),", ",(0,r.jsx)(e.code,{children:"SLAVE"}),", or ",(0,r.jsx)(e.code,{children:"OFFLINE"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/peers\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091",\n "state":"MASTER"\n },\n {\n "rest_address":"192.168.1.22:17072",\n "rpc_address":"192.168.1.22:19092",\n "state":"SLAVE"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"638current-leader-information",children:"6.3.8.Current Leader Information"}),"\n",(0,r.jsx)(e.p,{children:"Get information of current leader. Valid only in HA mode."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/leader"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the current leader server information, which is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"server's RPC address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"server's REST address"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/leader\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"639server-statistics",children:"6.3.9.Server Statistics"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/statistics"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the current server statistics, which is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"requests/second"}),(0,r.jsx)(e.td,{children:"number of requests processed per second"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"writes/second"}),(0,r.jsx)(e.td,{children:"number of write requests processed per second"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"running_tasks"}),(0,r.jsx)(e.td,{children:"number of requests in progress"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"failure_rate"}),(0,r.jsx)(e.td,{children:"request failure rate"}),(0,r.jsx)(e.td,{children:"Float"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/statistics\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "failure_rate": 0.023,\n "requests/second": 122.3,\n "running_tasks": 10,\n "writes/second": 12.4\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6310get-audit-logs",children:"6.3.10.Get Audit Logs"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/log/?begin_time={begin_time}&end_time={end_time}&user={user}&num_log={num_log}&descending_order={descending_order}"})]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"start time of the queried log (required, format YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"Timestamp"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"end time of the queried log (default is current time, format YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"Timestamp"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"the operator of the queried log (administrator can query all users' logs, ordinary users can only query their own logs)"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_log"}),(0,r.jsx)(e.td,{children:"maximum number of logs to return (default 100)"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"descending_order"}),(0,r.jsx)(e.td,{children:"whether to sort the result in descending order(default is true)"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and a list of audit logs, each of which is an action log in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"index"}),(0,r.jsx)(e.td,{children:"the index of the operation"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"the start time of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"the end time of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"the user of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"the graph of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_write"}),(0,r.jsx)(e.td,{children:"the operation is read operation or write operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"success"}),(0,r.jsx)(e.td,{children:"whether the operation is successful"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"content"}),(0,r.jsx)(e.td,{children:"the content of the operation"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/log/?begin_time=2020-02-17%2015:00:00&end_time=2020-02-20%2012:00:00&user=admin&num_log=100&descending_order=false\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "post /login Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "",\n "index": 1,\n "read_write": "read",\n "success": true,\n "type": "Security",\n "user":"admin"\n },\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "Load plugin : `echo` Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "default",\n "index": 2,\n "read_write": "write",\n "success": true,\n "type": "Plugin",\n "user": "admin"\n },\n ...\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"64task-management",children:"6.4.Task Management"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph tracks long-running tasks such as complex Cypher queries and plugins. Administrators can query currently running tasks through the REST API and choose to abort the queries if necessary."}),"\n",(0,r.jsx)(e.p,{children:"The URI format for task management is :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/task/{task_id}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"641list-running-tasks",children:"6.4.1.List Running Tasks"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"The returned JSON is an array, each of which is formatted as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"the description of the task"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"time_elapsed"}),(0,r.jsx)(e.td,{children:"time the task has been executing for, in seconds"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"task_id"}),(0,r.jsx)(e.td,{children:"the ID of the task"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/task\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "description" : "[CPP_PLUGIN] scan_graph",\n "time_elapsed" : 13.987,\n "task_id" : "3_10"\n },\n {\n "description" : "[CYPHER] MATCH(n) return n",\n "time_elapsed" : 30.887,\n "task_id" : "2_6"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"642abort-task",children:"6.4.2.Abort Task"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task/{task_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["Where ",(0,r.jsx)(e.code,{children:"task_id"})," is the ",(0,r.jsx)(e.code,{children:"task_id"})," returned by ",(0,r.jsx)(e.code,{children:"GET /task"})," ."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/task/3_10\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"65subgraph-management",children:"6.5.Subgraph Management"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph supports multiple subgraphs and all subgraphs are completely independent from others. Different subgraphs can have different permissions to different users. Administrators can add, modify and delete subgraphs."}),"\n",(0,r.jsx)(e.h4,{id:"651create-new-subgraph",children:"6.5.1.Create New Subgraph"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of subgraph"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"the configuration of subgraph"}),(0,r.jsx)(e.td,{children:"Dictionary, in the format of {{column name 1}:{column value 1},...}"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"graph1"\n "config" : {\n "max_size_GB":2048,\n "async":True\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"652delete-subgraph",children:"6.5.2.Delete Subgraph"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"653list-all-subgraphs",children:"6.5.3.List All Subgraphs"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of all subgraphs."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": {\n "max_size_gb":1024,\n "async":false\n }\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"66label",children:"6.6.Label"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph is a strong-schema database. In each subgraph, each vertex and edge need to have a predefined data format. The data format is determined by Label. Users can use the REST API to add, delete, and query labels and their corresponding data format."}),"\n",(0,r.jsx)(e.p,{children:"The URI format of the Label operation is"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/label/{type}/{label_name}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["Where the {type} can be ",(0,r.jsx)(e.code,{children:"node"})," or ",(0,r.jsx)(e.code,{children:"relationship"}),"."]}),"\n",(0,r.jsx)(e.h4,{id:"661create-label",children:"6.6.1.Create Label"}),"\n",(0,r.jsx)(e.p,{children:"A label is created with a fixed data format. A label must be defined before any node or relationship can be created with that label."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"data column definition"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_vertex"}),(0,r.jsx)(e.td,{children:"whether it is a vertex Label"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary"}),(0,r.jsx)(e.td,{children:"vertex primary property"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"edge constraints"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"primary"})," should be set when ",(0,r.jsx)(e.code,{children:"is_vertex"})," is ",(0,r.jsx)(e.code,{children:"true"}),". This field is only available for Vertex, and must be set when creating Vertex."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," could be set when ",(0,r.jsx)(e.code,{children:"is_vertex"})," is ",(0,r.jsx)(e.code,{children:"false"}),", This field is only available for Edge. This field limits the combination of starting and ending vertex of the edge, for example: ",(0,r.jsx)(e.code,{children:'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]'}),", which limits the edge direction can only be from ",(0,r.jsx)(e.code,{children:"vertex_label1"})," to ",(0,r.jsx)(e.code,{children:"vertex_label2"})," or from ",(0,r.jsx)(e.code,{children:"vertex_label3"})," to ",(0,r.jsx)(e.code,{children:"vertex_label4"}),". If you don't want to have any constraints, just leave this field unset."]}),"\n",(0,r.jsxs)(e.p,{children:["In which ",(0,r.jsx)(e.code,{children:"fields"})," is an array, in which each element defines a column of data, as follows:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of the column"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the data type of the column"}),(0,r.jsx)(e.td,{children:"String, with following types: int8, int16, int32, int64, float, double, string, date, datetime, binary, blob"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"whether the data can be empty (optional, default is false)"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"Actor",\n "fields": [\n {"name":"uid", "type":"int64", "optional":false},\n {"name":"name", "type":"string", "optional":true}\n ],\n "is_vertex":true,\n "primary" : "uid"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"662list-all-labels",children:"6.6.2.List All Labels"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"the list of edge labels"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex"}),(0,r.jsx)(e.td,{children:"the list of vertex labels"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "edge": [\n "HAS_CHILD",\n "MARRIED",\n "BORN_IN",\n "DIRECTED",\n "WROTE_MUSIC_FOR",\n "ACTED_IN"\n ],\n "vertex": [\n "Person",\n "City",\n "Film"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"663get-label-data-format",children:"6.6.3.Get Label Data Format"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label/{[node|relationship]}/{label_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Data column definition table as a dictionary, in which each key is the column name, and corresponding value is the column definition defined as follows:"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"whether the column value can be empty"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of the column value"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label/node/person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "age":{\n "optional":false,\n "type":"int16"\n },\n "id":{\n "optional":false,\n "type":"int8"\n },\n "name":{\n "optional":false,\n "type":"string"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"664schema-import",children:"6.6.4.Schema Import"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/schema/text"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"Graph labels description"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.p,{children:["The detail description can refer to ",(0,r.jsx)(e.code,{children:"TuGraph Manual"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Schema import will check the new schema and original schema in database if compatible or not. If yes, this request will add the label only in new schema. If no, will return an error code."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/schema/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"schema\\\\":[{\\\\"label\\\\":\\\\"actor\\\\",\\\\"primary\\\\":\\\\"aid\\\\",\\\\"properties\\\\":[{\\\\"name\\\\":\\\\"aid\\\\",\\\\"type\\\\":\\\\"STRING\\\\"}],\\\\"type\\\\":\\\\"VERTEX\\\\"}]}"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"The value of the above description is the following json serialized string :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [{ "name": "aid", "type": "STRING" }],\n "primary": "aid"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": ""\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"67vertex-operation",children:"6.7.Vertex Operation"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/node/{vid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"vid"})," is a unique integer identifying the vertex, which can be obtained when creating new vertexes or by looking up index."]}),"\n",(0,r.jsx)(e.h4,{id:"671list-vertex-and-label-number",children:"6.7.1.List Vertex and Label Number"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_label"}),(0,r.jsx)(e.td,{children:"the number of vertex label"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_vertex"}),(0,r.jsx)(e.td,{children:"the number of vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.em,{children:["Note: ",(0,r.jsx)(e.code,{children:"num_vertex"})," returns an estimate of the number of vertexes, not the exact number. To get the exact number, please use Cypher queries."]})}),"\n",(0,r.jsx)(e.h4,{id:"672create-new-vertex",children:"6.7.2.Create New Vertex"}),"\n",(0,r.jsx)(e.p,{children:"Insert a vertex into the database."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the properties of the vertex"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"property"})," is a dictionary of {",(0,r.jsx)(e.code,{children:"column_name"}),":",(0,r.jsx)(e.code,{children:"column_value"}),"}."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the new vertex's vid, which can be used in later vertex operations."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "property" : {\n "name" : "Passerby A",\n "birthyear" : 1989\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n 21\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"673batch-create-vertexes",children:"6.7.3.Batch Create Vertexes"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph allows multiple vertices to be inserted as one batch to reduce network overhead."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of Label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"the column names"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"the values of each vertex"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"fields"})," is a list of strings specifying column names, and ",(0,r.jsx)(e.code,{children:"values"})," is a list in which each element is a list of ",(0,r.jsx)(e.code,{children:"column_values"})," corresponding to the column names as specified in ",(0,r.jsx)(e.code,{children:"fields"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200, and return the vid list of newly added vertices in the JSON content, where each vid corresponds to each vertex in the request."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "fields" : ["name", "birthyear"],\n "values" : [["alex", 2000],\n ["bob", 1999]]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n 22,\n 23\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"674get-vertex",children:"6.7.4.Get Vertex"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of Label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"Dictionary, in the format of {column_name_1:column_value_1, ...}"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "label": "Person"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"675delete-vertex",children:"6.7.5.Delete Vertex"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200, and also the following content in JSON:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"number of incoming edges of the deleted vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"number of outgoing edges of the deleted vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/{graph_name}/node/4\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "in": 0,\n "out": 0\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"676get-vertex-property",children:"6.7.6.Get Vertex Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Vertex properties as a dictionary of {",(0,r.jsx)(e.code,{children:"column_name"}),":",(0,r.jsx)(e.code,{children:"column_value"}),"}"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"677get-vertex-field",children:"6.7.7.Get Vertex Field"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Value corresponding to the specified ",(0,r.jsx)(e.code,{children:"field"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"678update-vertex-property",children:"6.7.8.Update Vertex Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"properties to update"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "birthyear" : 1964,\n "mobile" : "13737299333"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"68edge-operation",children:"6.8.Edge Operation"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/relationship/{euid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"euid"})," is a string uniquely identifying the edge, which can be obtained when creating edges or by iterating through the edges of a vertex."]}),"\n",(0,r.jsx)(e.h4,{id:"681create-edge",children:"6.8.1.Create Edge"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src_vid}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsxs)(e.td,{children:["the ",(0,r.jsx)(e.code,{children:"vid"})," of destination vertex"]}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the property of edge"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the ",(0,r.jsx)(e.code,{children:"euid"})," of new created edge (type is String)."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node/{src}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "destination" : 14,\n "label" : "BORN_IN",\n "property" : {}\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "1_14_1_0"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"682batch-create-edges",children:"6.8.2.Batch Create Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"the data column name"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"the data of edge"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"where the edge is a list of data, each of which specifies and edge, defined as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"source"}),(0,r.jsx)(e.td,{children:"source vertex id"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"destination vertex id"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"the data list"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"values"})," is a list of column values, each of which correspond to the a column name specified in ",(0,r.jsx)(e.code,{children:"fields"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of the newly created edges."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "knows",\n "fields" : ["from_year", "weight"],\n "edge" : [\n {"source":0, "destination":1, "values":[2011, 0.8]},\n {"source":1, "destination":2, "values":[2008, 0.9]}\n ]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_1_0_0",\n "1_2_0_0"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"683list-out-going-edges",children:"6.8.3.List Out-going Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/out"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of source vertex's out-going edges."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/out\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "4_5_0_0",\n "4_7_1_2"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"684list-incoming-edges",children:"6.8.4.List Incoming Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{dst}/relationship/in"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of destination vertex's incoming edges."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/in\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"685list-all-edges",children:"6.8.5.List All Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/all"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsxs)(e.td,{children:["list of incoming edges' ",(0,r.jsx)(e.code,{children:"euid"}),"s"]}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsxs)(e.td,{children:["list of outgoing edges' ",(0,r.jsx)(e.code,{children:"euid"}),"s"]}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/all\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "out": [\n "4_5_0_0",\n "4_7_1_2"\n ],\n "in": [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"686get-edge-information",children:"6.8.6.Get Edge Information"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of the edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the properties of the edge"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/0_4_0_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n },\n "label": "MARRIED"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"687delete-edge",children:"6.8.7.Delete Edge"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/relationship/14_0_1_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"688get-edge-properties",children:"6.8.8.Get Edge Properties"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The dictionary of edge's properties."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/14_0_2_0/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n {\n "weight": 0.8,\n "begin": 20180922\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"689get-edge-field",children:"6.8.9.Get Edge Field"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the value corresponding to given ",(0,r.jsx)(e.code,{children:"field"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/17_0_2_2/property/charactername\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Henri Ducard"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6810update-edge-property",children:"6.8.10.Update Edge Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"properties to be updated"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/graph1/relationship/17_0_2_2\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "charactername" : "Henri Ducard/passer a"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"69index",children:"6.9.Index"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/index/{label}/{field}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"691create-index",children:"6.9.1.Create Index"}),"\n",(0,r.jsx)(e.p,{children:"Create an index on a (label, field) pair. Blocks until the index is successfully built."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field"}),(0,r.jsx)(e.td,{children:"field to be indexed"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of index, 0 means nonunique index, 1 means unique index, 2 means pair_unique index"}),(0,r.jsx)(e.td,{children:"int"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label": "Person",\n "field": "birthyear",\n "is_unique" : false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"692list-all-indexes",children:"6.9.2.List All Indexes"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of index specifications, each of which has the same format as use in ",(0,r.jsx)(e.a,{href:"#Create-Index",children:"Create Index"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "field": "name",\n "label": "City",\n "is_unique": false\n },\n {\n "field": "title",\n "label": "Film",\n "is_unique": false\n },\n {\n "field": "name",\n "label": "Person",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"693list-indexes-related-with-specified-label",children:"6.9.3.List Indexes Related with Specified Label"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of index specifications, each of which has the same format as use in ",(0,r.jsx)(e.a,{href:"#Create-Index",children:"Create Index"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "label": "Person",\n "field": "name",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"694delete-index",children:"6.9.4.Delete Index"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/index/Person/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"695get-vertex-by-index",children:"6.9.5.Get Vertex by Index"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/?field={field}&value={value}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of ",(0,r.jsx)(e.code,{children:"vid"}),"s."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person/?field=birthyear&value=1986\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n Output:\n {\n [\n 1,\n 8\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h3,{id:"610data-import",children:"6.10.Data Import"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/import/text"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the file content"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"contents of the file to be imported (recommended to have a size of 16MB, has a hard limit of 17MB)"}),(0,r.jsx)(e.td,{children:"Strings / Arrays / Objects"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"continue_on_error"}),(0,r.jsxs)(e.td,{children:["whether to continue import when an error occurred (optional, default is ",(0,r.jsx)(e.code,{children:"false"}),")"]}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"delimiter"}),(0,r.jsxs)(e.td,{children:["delimiter used in the data file (optional, default is ",(0,r.jsx)(e.code,{children:"\u201c,\u201d"}),")"]}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["The details of the ",(0,r.jsx)(e.code,{children:"description"})," field can be found in ",(0,r.jsx)(e.a,{href:"/tugraph-db/en-US/source/utility-tools/data-import",children:"TuGraph Import Tool"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"delimiter"})," can be a single character or multi-character string, but must not contain ",(0,r.jsx)(e.code,{children:"\\r"})," or ",(0,r.jsx)(e.code,{children:"\\n"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"data"})," can be one of the following:"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["String, such as ",(0,r.jsx)(e.code,{children:'"1,2\\n3,4\\n"'})]}),"\n",(0,r.jsxs)(e.li,{children:["Array of ASCII codes, such as ",(0,r.jsx)(e.code,{children:"[49,44,50,10,51,44,52,10]"})]}),"\n",(0,r.jsxs)(e.li,{children:["Dictionary shaped like the above array, such as ",(0,r.jsx)(e.code,{children:'{"0":49,"1":44,"2":50,"3":10,"4":51,"5":44,"6":52,"7":10}'})]}),"\n"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["The system ",(0,r.jsx)(e.strong,{children:"will not"})," automatically perform actions such as creating a new label, adding an index, and so on. Before you do this, please make sure that the label involved already exists and has an appropriate index."]}),"\n",(0,r.jsxs)(e.p,{children:["If the import is successful, return code 200 and return log information (possibly empty) in the ",(0,r.jsx)(e.code,{children:"log"})," field. Otherwise, returns status code 400. None of the data is imported on failure, and error message is set in ",(0,r.jsx)(e.code,{children:"error_message"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/import/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"files\\\\":[{\\\\"columns\\\\":[\\\\"SRC_ID\\\\",\\\\"role\\\\",\\\\"DST_ID\\\\"],\\\\"format\\\\":\\\\"CSV\\\\",\\\\"label\\\\":\\\\"role\\\\",\\\\"SRC_ID\\\\":\\\\"actor\\\\",\\\\"DST_ID\\\\":\\\\"movie\\\\"}]}"}",\n "data": "1,Role1,2\\n3,Role2,4\\n",\n "continue_on_error": true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"The value of the above description is the following json serialized string :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "files": [\n {\n "format": "CSV",\n "label": "role",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": "Missing src uid 1\\n"\n }\n'})}),"\n",(0,r.jsxs)(e.p,{children:["Because the request specifies ",(0,r.jsx)(e.code,{children:"continue_on_error: true"}),", the returned ",(0,r.jsx)(e.code,{children:"log"})," indicates that the first edge cannot be inserted because there is no vertex with uid==1, while the second edge was imported successfully."]}),"\n",(0,r.jsx)(e.h3,{id:"611miscellany",children:"6.11.Miscellany"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/misc\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6111extract-subgraph",children:"6.11.1.Extract Subgraph"}),"\n",(0,r.jsxs)(e.p,{children:["Give a set of ",(0,r.jsx)(e.code,{children:"vid"}),"s and return the minimum subgraph which contains the vertex set and the edges between them."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/misc/sub_graph"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex_ids"}),(0,r.jsx)(e.td,{children:"vertex id set"}),(0,r.jsx)(e.td,{children:"List"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"nodes"}),(0,r.jsx)(e.td,{children:"vertex information"}),(0,r.jsx)(e.td,{children:"List, each element contains vid, label, and properties."})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationships"}),(0,r.jsx)(e.td,{children:"edge information"}),(0,r.jsx)(e.td,{children:"List, each element contains src, dst, euid, label, and properties."})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/misc/sub_graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "vertex_ids": [2, 5, 14, 20]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "nodes": [\n {\n "label": "Person",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "vid": 2\n },\n {\n "label": "Person",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "vid": 5\n },\n {\n "label": "City",\n "properties": {\n "name": "London"\n },\n "vid": 14\n },\n {\n "label": "Film",\n "properties": {\n "title": "Camelot"\n },\n "vid": 20\n }\n ],\n "relationships": [\n {\n "destination": 5,\n "label": "HAS_CHILD",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 20,\n "label": "ACTED_IN",\n "properties": {\n "birthyear": 1937,\n "charactername": "Guenevere",\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "source": 5\n }\n ]\n }\n'})})]})}function o(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(x,{...n})}):x(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>l,x:()=>t});var r=s(6540);const i={},d=r.createContext(i);function l(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:l(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/84f7962c.d1670fe1.js b/assets/js/84f7962c.d1670fe1.js
new file mode 100644
index 0000000000..aebf17daa0
--- /dev/null
+++ b/assets/js/84f7962c.d1670fe1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3282],{7160:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>d,metadata:()=>t,toc:()=>h});var r=s(4848),i=s(8453);const d={},l="TuGraph RESTful API Legacy",t={id:"client-tools/restful-api-legacy",title:"TuGraph RESTful API Legacy",description:"This document describes how to call the Rest API of TuGrpah.",source:"@site/../docs/en-US/source/7.client-tools/9.restful-api-legacy.md",sourceDirName:"7.client-tools",slug:"/client-tools/restful-api-legacy",permalink:"/tugraph-db/en/client-tools/restful-api-legacy",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RPC API",permalink:"/tugraph-db/en/client-tools/rpc-api"},next:{title:"Cypher API",permalink:"/tugraph-db/en/query/cypher"}},c={},h=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Protocols And Data Format",id:"2protocols-and-data-format",level:2},{value:"2.1.Protocols",id:"21protocols",level:3},{value:"2.2.Request",id:"22request",level:3},{value:"2.3.Response",id:"23response",level:3},{value:"2.4.Data Format",id:"24data-format",level:3},{value:"2.5.URI Format",id:"25uri-format",level:3},{value:"3.Login",id:"3login",level:2},{value:"3.1.User Login",id:"31user-login",level:3},{value:"3.2.Token Refresh",id:"32token-refresh",level:3},{value:"3.3.Modify Token Validity Period",id:"33modify-token-validity-period",level:3},{value:"3.4.Query Token validity period",id:"34query-token-validity-period",level:3},{value:"3.5.Logout",id:"35logout",level:3},{value:"4.Query",id:"4query",level:2},{value:"4.1.Call Cypher",id:"41call-cypher",level:3},{value:"4.2.Call Cypher with Parameters",id:"42call-cypher-with-parameters",level:3},{value:"5.Stored Procedures",id:"5stored-procedures",level:2},{value:"5.1.Create Stored Procedure",id:"51create-stored-procedure",level:3},{value:"5.2.List Stored Procedures",id:"52list-stored-procedures",level:3},{value:"5.3.Retrieve Stored Procedure Detail",id:"53retrieve-stored-procedure-detail",level:3},{value:"5.4.Call Stored Procedure",id:"54call-stored-procedure",level:3},{value:"5.5.Delete Stored Procedure",id:"55delete-stored-procedure",level:3},{value:"6.Deprecated",id:"6deprecated",level:2},{value:"6.1.User Management",id:"61user-management",level:3},{value:"6.1.1.Add User",id:"611add-user",level:4},{value:"6.1.2.Change Password",id:"612change-password",level:4},{value:"6.1.3.List All Users",id:"613list-all-users",level:4},{value:"6.1.4.Delete User",id:"614delete-user",level:4},{value:"6.2.Access Control",id:"62access-control",level:3},{value:"6.2.1.Query User's Access Level",id:"621query-users-access-level",level:4},{value:"6.2.2.Change User's Access Level",id:"622change-users-access-level",level:4},{value:"6.2.3.Remove User's Access Right",id:"623remove-users-access-right",level:4},{value:"6.3.Server Status",id:"63server-status",level:3},{value:"6.3.1.Modify Server Configuration",id:"631modify-server-configuration",level:4},{value:"6.3.2.Current Server Status",id:"632current-server-status",level:4},{value:"6.3.3.CPU Status",id:"633cpu-status",level:4},{value:"6.3.4.Disk Status",id:"634disk-status",level:4},{value:"6.3.5.Memory Status",id:"635memory-status",level:4},{value:"6.3.6.Database Size",id:"636database-size",level:4},{value:"6.3.7.DB Configuration",id:"637db-configuration",level:4},{value:"6.3.7.High Availability Server List",id:"637high-availability-server-list",level:4},{value:"6.3.8.Current Leader Information",id:"638current-leader-information",level:4},{value:"6.3.9.Server Statistics",id:"639server-statistics",level:4},{value:"6.3.10.Get Audit Logs",id:"6310get-audit-logs",level:4},{value:"6.4.Task Management",id:"64task-management",level:3},{value:"6.4.1.List Running Tasks",id:"641list-running-tasks",level:4},{value:"6.4.2.Abort Task",id:"642abort-task",level:4},{value:"6.5.Subgraph Management",id:"65subgraph-management",level:3},{value:"6.5.1.Create New Subgraph",id:"651create-new-subgraph",level:4},{value:"6.5.2.Delete Subgraph",id:"652delete-subgraph",level:4},{value:"6.5.3.List All Subgraphs",id:"653list-all-subgraphs",level:4},{value:"6.6.Label",id:"66label",level:3},{value:"6.6.1.Create Label",id:"661create-label",level:4},{value:"6.6.2.List All Labels",id:"662list-all-labels",level:4},{value:"6.6.3.Get Label Data Format",id:"663get-label-data-format",level:4},{value:"6.6.4.Schema Import",id:"664schema-import",level:4},{value:"6.7.Vertex Operation",id:"67vertex-operation",level:3},{value:"6.7.1.List Vertex and Label Number",id:"671list-vertex-and-label-number",level:4},{value:"6.7.2.Create New Vertex",id:"672create-new-vertex",level:4},{value:"6.7.3.Batch Create Vertexes",id:"673batch-create-vertexes",level:4},{value:"6.7.4.Get Vertex",id:"674get-vertex",level:4},{value:"6.7.5.Delete Vertex",id:"675delete-vertex",level:4},{value:"6.7.6.Get Vertex Property",id:"676get-vertex-property",level:4},{value:"6.7.7.Get Vertex Field",id:"677get-vertex-field",level:4},{value:"6.7.8.Update Vertex Property",id:"678update-vertex-property",level:4},{value:"6.8.Edge Operation",id:"68edge-operation",level:3},{value:"6.8.1.Create Edge",id:"681create-edge",level:4},{value:"6.8.2.Batch Create Edges",id:"682batch-create-edges",level:4},{value:"6.8.3.List Out-going Edges",id:"683list-out-going-edges",level:4},{value:"6.8.4.List Incoming Edges",id:"684list-incoming-edges",level:4},{value:"6.8.5.List All Edges",id:"685list-all-edges",level:4},{value:"6.8.6.Get Edge Information",id:"686get-edge-information",level:4},{value:"6.8.7.Delete Edge",id:"687delete-edge",level:4},{value:"6.8.8.Get Edge Properties",id:"688get-edge-properties",level:4},{value:"6.8.9.Get Edge Field",id:"689get-edge-field",level:4},{value:"6.8.10.Update Edge Property",id:"6810update-edge-property",level:4},{value:"6.9.Index",id:"69index",level:3},{value:"6.9.1.Create Index",id:"691create-index",level:4},{value:"6.9.2.List All Indexes",id:"692list-all-indexes",level:4},{value:"6.9.3.List Indexes Related with Specified Label",id:"693list-indexes-related-with-specified-label",level:4},{value:"6.9.4.Delete Index",id:"694delete-index",level:4},{value:"6.9.5.Get Vertex by Index",id:"695get-vertex-by-index",level:4},{value:"6.10.Data Import",id:"610data-import",level:3},{value:"6.11.Miscellany",id:"611miscellany",level:3},{value:"6.11.1.Extract Subgraph",id:"6111extract-subgraph",level:4}];function x(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"tugraph-restful-api-legacy",children:"TuGraph RESTful API Legacy"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"This document describes how to call the Rest API of TuGrpah."}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph provides HTTP RESTful APIs, which allow users to access TuGraph servers through HTTP requests remotely."}),"\n",(0,r.jsx)(e.p,{children:"This document specifiers the TuGraph HTTP RESTful API."}),"\n",(0,r.jsxs)(e.p,{children:["\u26a0\ufe0f ",(0,r.jsx)(e.strong,{children:"All the other RESTful APIs excluding the three below will be deprived after 4/30/2023."})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Login"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Query"})}),"\n",(0,r.jsx)(e.li,{children:(0,r.jsx)(e.strong,{children:"Store Procedures"})}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"2protocols-and-data-format",children:"2.Protocols And Data Format"}),"\n",(0,r.jsx)(e.h3,{id:"21protocols",children:"2.1.Protocols"}),"\n",(0,r.jsxs)(e.p,{children:["Both HTTP and HTTPS protocols are supported by TuGraph. The system uses HTTP protocol by default. To use HTTPS, the ",(0,r.jsx)(e.code,{children:"ssl_auth"})," option should be set to ",(0,r.jsx)(e.code,{children:"true"})," in the DB configuration."]}),"\n",(0,r.jsx)(e.h3,{id:"22request",children:"2.2.Request"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph supports HTTP GET/POST/PUT/DELETE requests, in which:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"GET"})," requests are used for read-only requests, such as getting vertex properties, edge properties, etc."]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"POST"})," requests are used to create entities, submit Cypher, and to manage and call stored procedures;"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"PUT"})," requests are used to modify existing entities, for example, to modify vertex properties, edge properties, etc."]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"DELETE"})," requests are used to delete existing entities, such as vertices, edges, etc."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["In high-availability mode, users can set ",(0,r.jsx)(e.code,{children:"ServerVersion"})," in the request header to make sure the request is never served with an outdated version.\nThe current ",(0,r.jsx)(e.code,{children:"ServerVersion"})," can be obtained from the header returned by the server."]}),"\n",(0,r.jsx)(e.h3,{id:"23response",children:"2.3.Response"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph returns the following HTTP status codes:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"200 OK"}),": operation is successful."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"307 Temporary Redirect"}),": the operation is redirected, typically in high-availability mode, to the master."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"400 Bad Request"}),": incorrect input, such as URI error, or invalid parameters."]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"500 Internal Server Error"}),": server error."]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["When the operation is successful, the JSON response contains the return value of the operation. When the operation is redirected, the ",(0,r.jsx)(e.code,{children:"location"})," field in the returned HTTP header contains the redirect destination address.\nWhen an input error or server error occurs, the JSON response contains a ",(0,r.jsx)(e.code,{children:"error_message"})," field that describes the error."]}),"\n",(0,r.jsxs)(e.p,{children:["In high-availability mode, the server will set ",(0,r.jsx)(e.code,{children:"server_version"})," field in the header to inform the client of the data version of the current server. When clients switch between several different servers, this version number guarantees that the client will not read from an outdated server."]}),"\n",(0,r.jsx)(e.h3,{id:"24data-format",children:"2.4.Data Format"}),"\n",(0,r.jsxs)(e.p,{children:["The server and clients exchange data in JSON format. When sending a request, the header of the HTTP request should be set with ",(0,r.jsx)(e.code,{children:"Accept:application/json, Content-Type:app/json"}),".\nFor example, to create a new vertex, the request header should look like the following:"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" Accept: application/json; charset=UTF-8\n Content-Type: application/json\n server_version: 12\n"})}),"\n",(0,r.jsx)(e.h3,{id:"25uri-format",children:"2.5.URI Format"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph REST API provides access to: web visualization, login, db info, label, index, node, relationship, cypher, task, cpp_plugin, and python_plugin.\nThe URI format used for each function is as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/web"}),(0,r.jsx)(e.td,{children:"web visualization"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/cypher"}),(0,r.jsx)(e.td,{children:"cypher request"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/acl"}),(0,r.jsx)(e.td,{children:"access control"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/user"}),(0,r.jsx)(e.td,{children:"user management"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/login"}),(0,r.jsx)(e.td,{children:"user login"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/info"}),(0,r.jsx)(e.td,{children:"database status and information"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/task"}),(0,r.jsx)(e.td,{children:"task management"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"subgraph management"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"For each subgraph, the following interfaces are provided:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"create, modify, and delete subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/node"]}),(0,r.jsx)(e.td,{children:"vertex operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/relationship"]}),(0,r.jsx)(e.td,{children:"edge operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/label"]}),(0,r.jsx)(e.td,{children:"label-related operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/index"]}),(0,r.jsx)(e.td,{children:"index-related operations"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cypher"]}),(0,r.jsx)(e.td,{children:"subgraph-specific cypher operation"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cpp_plugin"]}),(0,r.jsx)(e.td,{children:"C++ plugin(stored procedure)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/python_plugin"]}),(0,r.jsx)(e.td,{children:"Python plugin(stored procedure)"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/import"]}),(0,r.jsx)(e.td,{children:"online import"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/misc"]}),(0,r.jsx)(e.td,{children:"other operations"})]})]})]}),"\n",(0,r.jsx)(e.h2,{id:"3login",children:"3.Login"}),"\n",(0,r.jsxs)(e.p,{children:["The system creates an administrator by default, whose username is ",(0,r.jsx)(e.em,{children:"admin"})," and password is ",(0,r.jsx)(e.em,{children:"73@TuGraph"}),". For security reasons, please remember to change your password after first starting the server."]}),"\n",(0,r.jsx)(e.h3,{id:"31user-login",children:"3.1.User Login"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph provides JWT-based user authentication. To log in to the server, the REST client should send a login request containing a username and password. Upon success, the client will receive a signed token in the form of a Json Web Token (JWT) and a Boolean variable (default_password) to determine whether it is the default password. The jwt token should be stored by the client and used for each subsequent request."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/login"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default_password"}),(0,r.jsx)(e.td,{children:"whether it is the default password"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/login\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "user":"admin",\n "password":"73@TuGraph"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek",\n "default_password": true\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"32token-refresh",children:"3.2.Token Refresh"}),"\n",(0,r.jsx)(e.p,{children:"After the token expires, the front-end initiates a refresh token interface, and the back-end verifies the validity of the token.\nIf the verification passes, a new token is generated; if the verification fails, status code 401 is returned."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/refresh"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization": "Bearer eyJhbGciOiJIUz32NiIsInR5cCI6IkpXVDJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byj3fYVAH4D88dfTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"33modify-token-validity-period",children:"3.3.Modify Token Validity Period"}),"\n",(0,r.jsx)(e.p,{children:"To modify the validity period of Token, three parameters need to be transmitted: jwt, refresh_time and expire_time, among which jwt is used to verify the user\u2019s identity. When refresh_time and expire_time are equal to 0, the validity period is indefinite. When refresh_time exceeds, you need to call the refresh interface to obtain a new Token; When expire_time expires, you need to log in again. (This interface call needs to confirm the security by itself, do not call unless necessary)"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/update_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"refresh_time"}),(0,r.jsx)(e.td,{children:"Valid time (deafult set to 0)"}),(0,r.jsx)(e.td,{children:"Int64"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"expire_time"}),(0,r.jsx)(e.td,{children:"Expire time (deafult set to 0)"}),(0,r.jsx)(e.td,{children:"Int64"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/update_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n "refresh_time":0\n "expire_time":0\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"34query-token-validity-period",children:"3.4.Query Token validity period"}),"\n",(0,r.jsx)(e.p,{children:"To query the validity period of the Token, you need to transmit jwt to verify the user's identity, and return, refresh_time and expire_time, where refresh_time indicates the refresh time, and you need to call the refresh interface to obtain a new Token when it exceeds; expire_time indicates the expiration time, and you need to log in again when it exceeds."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/get_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': if successful, return "refresh_time" and "expire_time".']}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/get_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "refresh_time":600,\n "expire_time":3600\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"35logout",children:"3.5.Logout"}),"\n",(0,r.jsx)(e.p,{children:"The user logs out and deletes the token at the same time."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/logout"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"token"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"4query",children:"4.Query"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/cypher\n"})}),"\n",(0,r.jsx)(e.h3,{id:"41call-cypher",children:"4.1.Call Cypher"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"Cypher query"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"running results"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"elapsed"}),(0,r.jsx)(e.td,{children:"running time in seconds"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"header"}),(0,r.jsx)(e.td,{children:"header of the results"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"size"}),(0,r.jsx)(e.td,{children:"number of results"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"header"})," is a list with each element in the form of:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of column"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"column data type, 0 is scalar, 1 is vertex id, 2 is vector"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n) RETURN n,n.name LIMIT 10"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.001224517822265625,\n "header": [\n {\n "name": "n",\n "type": 1\n },\n {\n "name": "n.name",\n "type": 0\n }\n ]\n "result": [\n [\n 0,\n "Rachel Kempson"\n ],\n [\n 1,\n "Michael Redgrave"\n ],\n [\n 2,\n "Vanessa Redgrave"\n ]\n ],\n "size": 3\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"42call-cypher-with-parameters",children:"4.2.Call Cypher with Parameters"}),"\n",(0,r.jsx)(e.p,{children:"Cypher supports querying with parameters. When a Cypher query with parameters is called, TuGraph caches the execution plan for that query to speed up the following queries of the same kind."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"Cypher query"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["Same as ",(0,r.jsx)(e.a,{href:"#Call-Cypher",children:"Call Cypher"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n:Person {name:$param1}) RETURN n.birthyear",\n "parameters": {\n "$param1": "Lindsay Lohan"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.005886077880859375,\n "header": [\n {\n "name": "n.birthyear",\n "type": 0\n }\n ],\n "result": [\n [\n 1986\n ]\n ],\n "size": 1\n }\n'})}),"\n",(0,r.jsx)(e.h2,{id:"5stored-procedures",children:"5.Stored Procedures"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/cpp_plugin|python_plugin\n"})}),"\n",(0,r.jsx)(e.h3,{id:"51create-stored-procedure",children:"5.1.Create Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"name of the plugin"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the plugin"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"code of plugin encoded in base64"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"whether it is a read-only stored procedure"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"type of plugin code, can be zip/cpp/so for cpp_plugin, while py for python_plugin"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.em,{children:["Note: read-only plugins are more efficient than write plugins. Always specify ",(0,r.jsx)(e.code,{children:"read-only=true"})," for read-only transactions."]})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.so}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"52list-stored-procedures",children:"5.2.List Stored Procedures"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list in which each element is a plugin description, in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"name of the stored procedure"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the stored procedure"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"whether the stored procedure is read-only"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n [\n {\n "description":"adds a vertex label to the db",\n "name":"add_label",\n "read_only":false\n },\n {\n "description": "scans graph and get number of edges",\n "name": "scan_graph",\n "read_only": true\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"53retrieve-stored-procedure-detail",children:"5.3.Retrieve Stored Procedure Detail"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Procedure detail, including code, in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"Procedure name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"Procedure descrition"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"Read only or not"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"String, Base64 encoded"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"Type of procedue code, can be zip/cpp/so for cpp_plugin, while py for python_plugin"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"54call-stored-procedure",children:"5.4.Call Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": String input."]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"input data"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"timeout"}),(0,r.jsx)(e.td,{children:"timeout in seconds, defaults to 0, which means no timeout"}),(0,r.jsx)(e.td,{children:"Float"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"running results"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/python_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n data : "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!",\n timeout : 0,\n in_process : true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "result": "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"55delete-stored-procedure",children:"5.5.Delete Stored Procedure"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/cpp_plugin/example_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"6deprecated",children:"6.Deprecated"}),"\n",(0,r.jsx)(e.p,{children:"The APIs below will be removed after 4/30/2023."}),"\n",(0,r.jsx)(e.h3,{id:"61user-management",children:"6.1.User Management"}),"\n",(0,r.jsx)(e.h4,{id:"611add-user",children:"6.1.1.Add User"}),"\n",(0,r.jsx)(e.p,{children:"Add a new user and set the initial password for the user. Only administrators have permission to add new users. The username can only have letters, numbers, and underscores, and should not begin with a number. The password can contain any character. The username and password have a maximum length of 64 bytes."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_admin"}),(0,r.jsx)(e.td,{children:"whether the user is an administrator or not"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "USER1",\n "password": "AN_INITIAL_PASSWORD",\n "is_admin": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"612change-password",children:"6.1.2.Change Password"}),"\n",(0,r.jsx)(e.p,{children:"Users can change their own passwords, in which case the original password needs to be verified."}),"\n",(0,r.jsx)(e.p,{children:"Administrators can change the passwords of any user and promote non-admin users to administrators, or demote administrator users to regular users. When modifying another user's password, the original password of the user is not needed."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"user's current password, if modifying its own password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"user's new password"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_admin"}),(0,r.jsx)(e.td,{children:"should this user be administrator or not, used when promoting or demoting users"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "current_password": "THE_CURRENT_PASSWORD"\n "new_password": "A_NEW_PASSWORD"\n "is_admin": true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"613list-all-users",children:"6.1.3.List All Users"}),"\n",(0,r.jsx)(e.p,{children:"List all users of the database. Only administrators are allowed to perform this operation."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": a dictionary of {",(0,r.jsx)(e.code,{children:"user_name"}),":",(0,r.jsx)(e.code,{children:"is_admin"}),"}"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": true,\n "guest1": false\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"614delete-user",children:"6.1.4.Delete User"}),"\n",(0,r.jsx)(e.p,{children:"Delete a user from the DB. Only administrators have permission to do so."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"62access-control",children:"6.2.Access Control"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph has four access levels. Different users can have different permissions for each subgraph. The four access levels are as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Access Level"}),(0,r.jsx)(e.th,{children:"Description"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"NONE"}),(0,r.jsx)(e.td,{children:"no access"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"READ"}),(0,r.jsx)(e.td,{children:"read-only"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"WRITE"}),(0,r.jsx)(e.td,{children:"can read and write vertexes and edges of the subgraph"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"FULL"}),(0,r.jsx)(e.td,{children:"full access, including changing metadata (label, index), managing stored procedures and deleting all data in the subgraph"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"Administrators have full access on all subgraphs, and a newly created non-admin user does not have access for any subgraph. Users who have full access on a subgraph can set the access level for other users on that subgraph."}),"\n",(0,r.jsx)(e.h4,{id:"621query-users-access-level",children:"6.2.1.Query User's Access Level"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl/?user={user_name}&graph={graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["When both ",(0,r.jsx)(e.code,{children:"user"})," and ",(0,r.jsx)(e.code,{children:"graph"})," are specified, the user's access level for the subgraph is returned, such as ",(0,r.jsx)(e.code,{children:"READ"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:["When only ",(0,r.jsx)(e.code,{children:"user"})," is specified, all subgraphs that the user can access (access level not ",(0,r.jsx)(e.code,{children:"NONE"}),") are returned, as well as the user's access level on the subgraph."]}),"\n",(0,r.jsxs)(e.p,{children:["When only ",(0,r.jsx)(e.code,{children:"graph"})," is specified, all users who have access level on this graph (excluding administrators, who have implicit ",(0,r.jsx)(e.code,{children:"FULL"})," access) and their access levels are returned. This operation requires administrator permission."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/acl/?user=user1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": "READ",\n "graph2": "WRITE",\n "graph3": "FULL"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"622change-users-access-level",children:"6.2.2.Change User's Access Level"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"username"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"subgraph's name"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"acl"}),(0,r.jsx)(e.td,{children:"access level"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/acl\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "user1",\n "graph": "graph1",\n "acl": "FULL"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"623remove-users-access-right",children:"6.2.3.Remove User's Access Right"}),"\n",(0,r.jsxs)(e.p,{children:["This is equivalent to setting access level to ",(0,r.jsx)(e.code,{children:"NONE"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/acl/?user={user_name}&graph={graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/acl/?user=user1&graph=graph1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"63server-status",children:"6.3.Server Status"}),"\n",(0,r.jsx)(e.h4,{id:"631modify-server-configuration",children:"6.3.1.Modify Server Configuration"}),"\n",(0,r.jsx)(e.p,{children:"Modifying the server configuration will take effect immediately after the configuration modification and will affect all servers. These configurations take precedence over configuration files and command line arguments."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/config"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_async"}),(0,r.jsx)(e.td,{children:"Whether to enable asynchronous mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optimistic_txn"}),(0,r.jsx)(e.td,{children:"Whether to use optimistic transaction lock by default"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_audit_log"}),(0,r.jsx)(e.td,{children:"Whether to enable audit logging"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": If successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/config\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "db_async": true,\n "enable_audit_log": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"632current-server-status",children:"6.3.2.Current Server Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"lgraph_version"}),(0,r.jsx)(e.td,{children:"TuGraph version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_branch"}),(0,r.jsx)(e.td,{children:"server's git branch"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_commit"}),(0,r.jsx)(e.td,{children:"server's git commit version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"web_commit"}),(0,r.jsx)(e.td,{children:"web client commit version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_id"}),(0,r.jsx)(e.td,{children:"cpp compiler id"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_version"}),(0,r.jsx)(e.td,{children:"cpp compiler version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"python_version"}),(0,r.jsx)(e.td,{children:"python lib version"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpu"}),(0,r.jsx)(e.td,{children:"cpu information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#CPU-Status",children:"CPU Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk"}),(0,r.jsx)(e.td,{children:"disk IO information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Disk-Status",children:"Disk Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"memory"}),(0,r.jsx)(e.td,{children:"memory information"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Memory-Status",children:"Memory Status"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_space"}),(0,r.jsx)(e.td,{children:"graph database storage"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Graph-Database-Storage",children:"Graph Database Storage"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_config"}),(0,r.jsx)(e.td,{children:"graph database configuration"}),(0,r.jsxs)(e.td,{children:["Dictionary, format refers ",(0,r.jsx)(e.a,{href:"#Graph-Database-Configuration",children:"Graph Database Configuration"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"up_time"}),(0,r.jsx)(e.td,{children:"database's online running time"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "lgraph_version": "1.2.0",\n "git_branch": "master",\n "git_commit": "9e2977d",\n "web_commit": "1e2823d",\n "cpu_id": "GUN",\n "cpu_version": "4.8.5",\n "python_version": "3.2",\n "node": "/node",\n "relationship": "/relationship",\n "cpu": {\n "self": 25,\n "server": 35,\n "unit": "%"\n },\n "disk": {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n },\n "memory": {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n },\n "db_space": {\n "space": 57344,\n "unit": "B"\n },\n "db_config": {\n "db_async": false,\n "disable_auth": false,\n "enable_ha": false,\n ...\n },\n "up_time": 3235\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"633cpu-status",children:"6.3.3.CPU Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/cpu"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"TuGraph CPU usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server"}),(0,r.jsx)(e.td,{children:"server's CPU usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/cpu\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25,\n "server": 35,\n "unit": "%"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"634disk-status",children:"6.3.4.Disk Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/disk"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read"}),(0,r.jsx)(e.td,{children:"server's disk read rate"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"write"}),(0,r.jsx)(e.td,{children:"server's disk wrtie rate"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/disk\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"635memory-status",children:"6.3.5.Memory Status"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/memory"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"TuGraph memory usage"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_avail"}),(0,r.jsx)(e.td,{children:"server's available memory"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_total"}),(0,r.jsx)(e.td,{children:"server's total memory"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/memory\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"636database-size",children:"6.3.6.Database Size"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_space"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"space"}),(0,r.jsx)(e.td,{children:"total size of the database"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"metric unit"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_space\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "space": 57344,\n "unit": "B"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637db-configuration",children:"6.3.7.DB Configuration"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_config"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"async"}),(0,r.jsx)(e.td,{children:"asynchronous mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disable_auth"}),(0,r.jsx)(e.td,{children:"whether to disable authentication"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ha"}),(0,r.jsx)(e.td,{children:"whether to enable high-availability mode"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_rpc"}),(0,r.jsx)(e.td,{children:"whether to enable RPC server"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"host"}),(0,r.jsx)(e.td,{children:"bound host address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"port"}),(0,r.jsx)(e.td,{children:"port of REST server"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_port"}),(0,r.jsx)(e.td,{children:"port of RPC server"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"thread_limit"}),(0,r.jsx)(e.td,{children:"limit of available threads for the graph database"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"use_ssl"}),(0,r.jsx)(e.td,{children:"whether to use SSL for authentication"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"verbose"}),(0,r.jsx)(e.td,{children:"verbose level of the output"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_config\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "async":false,\n "disable_auth":false,\n "enable_ha":false,\n "enable_rpc":false,\n "host":"127.0.0.1",\n "port":7070,\n "rpc_port":9091,\n "thread_limit":0,\n "use_ssl":false,\n "verbose":2\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637high-availability-server-list",children:"6.3.7.High Availability Server List"}),"\n",(0,r.jsx)(e.p,{children:"Get a list of replication servers. Valid only in high-availability mode."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/peers"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and a list of server information, each of server information is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"server's RPC address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"server's REST address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"state"}),(0,r.jsx)(e.td,{children:"server state"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["The server state can be ",(0,r.jsx)(e.code,{children:"MASTER"}),", ",(0,r.jsx)(e.code,{children:"SLAVE"}),", or ",(0,r.jsx)(e.code,{children:"OFFLINE"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/peers\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091",\n "state":"MASTER"\n },\n {\n "rest_address":"192.168.1.22:17072",\n "rpc_address":"192.168.1.22:19092",\n "state":"SLAVE"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"638current-leader-information",children:"6.3.8.Current Leader Information"}),"\n",(0,r.jsx)(e.p,{children:"Get information of current leader. Valid only in HA mode."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/leader"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the current leader server information, which is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"server's RPC address"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"server's REST address"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/leader\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"639server-statistics",children:"6.3.9.Server Statistics"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/statistics"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the current server statistics, which is formatted as:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"requests/second"}),(0,r.jsx)(e.td,{children:"number of requests processed per second"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"writes/second"}),(0,r.jsx)(e.td,{children:"number of write requests processed per second"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"running_tasks"}),(0,r.jsx)(e.td,{children:"number of requests in progress"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"failure_rate"}),(0,r.jsx)(e.td,{children:"request failure rate"}),(0,r.jsx)(e.td,{children:"Float"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/statistics\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "failure_rate": 0.023,\n "requests/second": 122.3,\n "running_tasks": 10,\n "writes/second": 12.4\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6310get-audit-logs",children:"6.3.10.Get Audit Logs"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/log/?begin_time={begin_time}&end_time={end_time}&user={user}&num_log={num_log}&descending_order={descending_order}"})]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"start time of the queried log (required, format YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"Timestamp"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"end time of the queried log (default is current time, format YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"Timestamp"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"the operator of the queried log (administrator can query all users' logs, ordinary users can only query their own logs)"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_log"}),(0,r.jsx)(e.td,{children:"maximum number of logs to return (default 100)"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"descending_order"}),(0,r.jsx)(e.td,{children:"whether to sort the result in descending order(default is true)"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and a list of audit logs, each of which is an action log in the format of:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"index"}),(0,r.jsx)(e.td,{children:"the index of the operation"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"the start time of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"the end time of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"the user of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"the graph of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of the operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_write"}),(0,r.jsx)(e.td,{children:"the operation is read operation or write operation"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"success"}),(0,r.jsx)(e.td,{children:"whether the operation is successful"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"content"}),(0,r.jsx)(e.td,{children:"the content of the operation"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/log/?begin_time=2020-02-17%2015:00:00&end_time=2020-02-20%2012:00:00&user=admin&num_log=100&descending_order=false\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "post /login Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "",\n "index": 1,\n "read_write": "read",\n "success": true,\n "type": "Security",\n "user":"admin"\n },\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "Load plugin : `echo` Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "default",\n "index": 2,\n "read_write": "write",\n "success": true,\n "type": "Plugin",\n "user": "admin"\n },\n ...\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"64task-management",children:"6.4.Task Management"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph tracks long-running tasks such as complex Cypher queries and plugins. Administrators can query currently running tasks through the REST API and choose to abort the queries if necessary."}),"\n",(0,r.jsx)(e.p,{children:"The URI format for task management is :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/task/{task_id}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"641list-running-tasks",children:"6.4.1.List Running Tasks"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"The returned JSON is an array, each of which is formatted as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"the description of the task"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"time_elapsed"}),(0,r.jsx)(e.td,{children:"time the task has been executing for, in seconds"}),(0,r.jsx)(e.td,{children:"Float"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"task_id"}),(0,r.jsx)(e.td,{children:"the ID of the task"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/task\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "description" : "[CPP_PLUGIN] scan_graph",\n "time_elapsed" : 13.987,\n "task_id" : "3_10"\n },\n {\n "description" : "[CYPHER] MATCH(n) return n",\n "time_elapsed" : 30.887,\n "task_id" : "2_6"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"642abort-task",children:"6.4.2.Abort Task"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task/{task_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["Where ",(0,r.jsx)(e.code,{children:"task_id"})," is the ",(0,r.jsx)(e.code,{children:"task_id"})," returned by ",(0,r.jsx)(e.code,{children:"GET /task"})," ."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/task/3_10\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"65subgraph-management",children:"6.5.Subgraph Management"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph supports multiple subgraphs and all subgraphs are completely independent from others. Different subgraphs can have different permissions to different users. Administrators can add, modify and delete subgraphs."}),"\n",(0,r.jsx)(e.h4,{id:"651create-new-subgraph",children:"6.5.1.Create New Subgraph"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of subgraph"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"the configuration of subgraph"}),(0,r.jsx)(e.td,{children:"Dictionary, in the format of {{column name 1}:{column value 1},...}"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"graph1"\n "config" : {\n "max_size_GB":2048,\n "async":True\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"652delete-subgraph",children:"6.5.2.Delete Subgraph"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"653list-all-subgraphs",children:"6.5.3.List All Subgraphs"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of all subgraphs."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": {\n "max_size_gb":1024,\n "async":false\n }\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"66label",children:"6.6.Label"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph is a strong-schema database. In each subgraph, each vertex and edge need to have a predefined data format. The data format is determined by Label. Users can use the REST API to add, delete, and query labels and their corresponding data format."}),"\n",(0,r.jsx)(e.p,{children:"The URI format of the Label operation is"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/label/{type}/{label_name}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["Where the {type} can be ",(0,r.jsx)(e.code,{children:"node"})," or ",(0,r.jsx)(e.code,{children:"relationship"}),"."]}),"\n",(0,r.jsx)(e.h4,{id:"661create-label",children:"6.6.1.Create Label"}),"\n",(0,r.jsx)(e.p,{children:"A label is created with a fixed data format. A label must be defined before any node or relationship can be created with that label."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"data column definition"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_vertex"}),(0,r.jsx)(e.td,{children:"whether it is a vertex Label"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary"}),(0,r.jsx)(e.td,{children:"vertex primary property"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"edge constraints"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"primary"})," should be set when ",(0,r.jsx)(e.code,{children:"is_vertex"})," is ",(0,r.jsx)(e.code,{children:"true"}),". This field is only available for Vertex, and must be set when creating Vertex."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," could be set when ",(0,r.jsx)(e.code,{children:"is_vertex"})," is ",(0,r.jsx)(e.code,{children:"false"}),", This field is only available for Edge. This field limits the combination of starting and ending vertex of the edge, for example: ",(0,r.jsx)(e.code,{children:'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]'}),", which limits the edge direction can only be from ",(0,r.jsx)(e.code,{children:"vertex_label1"})," to ",(0,r.jsx)(e.code,{children:"vertex_label2"})," or from ",(0,r.jsx)(e.code,{children:"vertex_label3"})," to ",(0,r.jsx)(e.code,{children:"vertex_label4"}),". If you don't want to have any constraints, just leave this field unset."]}),"\n",(0,r.jsxs)(e.p,{children:["In which ",(0,r.jsx)(e.code,{children:"fields"})," is an array, in which each element defines a column of data, as follows:"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"the name of the column"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the data type of the column"}),(0,r.jsx)(e.td,{children:"String, with following types: int8, int16, int32, int64, float, double, string, date, datetime, binary, blob"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"whether the data can be empty (optional, default is false)"}),(0,r.jsx)(e.td,{children:"Bool"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"Actor",\n "fields": [\n {"name":"uid", "type":"int64", "optional":false},\n {"name":"name", "type":"string", "optional":true}\n ],\n "is_vertex":true,\n "primary" : "uid"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"662list-all-labels",children:"6.6.2.List All Labels"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"the list of edge labels"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex"}),(0,r.jsx)(e.td,{children:"the list of vertex labels"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "edge": [\n "HAS_CHILD",\n "MARRIED",\n "BORN_IN",\n "DIRECTED",\n "WROTE_MUSIC_FOR",\n "ACTED_IN"\n ],\n "vertex": [\n "Person",\n "City",\n "Film"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"663get-label-data-format",children:"6.6.3.Get Label Data Format"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label/{[node|relationship]}/{label_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Data column definition table as a dictionary, in which each key is the column name, and corresponding value is the column definition defined as follows:"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"whether the column value can be empty"}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of the column value"}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label/node/person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "age":{\n "optional":false,\n "type":"int16"\n },\n "id":{\n "optional":false,\n "type":"int8"\n },\n "name":{\n "optional":false,\n "type":"string"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"664schema-import",children:"6.6.4.Schema Import"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/schema/text"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"Graph labels description"}),(0,r.jsx)(e.td,{children:"String"})]})})]}),"\n",(0,r.jsxs)(e.p,{children:["The detail description can refer to ",(0,r.jsx)(e.code,{children:"TuGraph Manual"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Schema import will check the new schema and original schema in database if compatible or not. If yes, this request will add the label only in new schema. If no, will return an error code."}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/schema/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"schema\\\\":[{\\\\"label\\\\":\\\\"actor\\\\",\\\\"primary\\\\":\\\\"aid\\\\",\\\\"properties\\\\":[{\\\\"name\\\\":\\\\"aid\\\\",\\\\"type\\\\":\\\\"STRING\\\\"}],\\\\"type\\\\":\\\\"VERTEX\\\\"}]}"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"The value of the above description is the following json serialized string :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [{ "name": "aid", "type": "STRING" }],\n "primary": "aid"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": ""\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"67vertex-operation",children:"6.7.Vertex Operation"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/node/{vid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"vid"})," is a unique integer identifying the vertex, which can be obtained when creating new vertexes or by looking up index."]}),"\n",(0,r.jsx)(e.h4,{id:"671list-vertex-and-label-number",children:"6.7.1.List Vertex and Label Number"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_label"}),(0,r.jsx)(e.td,{children:"the number of vertex label"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_vertex"}),(0,r.jsx)(e.td,{children:"the number of vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.em,{children:["Note: ",(0,r.jsx)(e.code,{children:"num_vertex"})," returns an estimate of the number of vertexes, not the exact number. To get the exact number, please use Cypher queries."]})}),"\n",(0,r.jsx)(e.h4,{id:"672create-new-vertex",children:"6.7.2.Create New Vertex"}),"\n",(0,r.jsx)(e.p,{children:"Insert a vertex into the database."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the properties of the vertex"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"property"})," is a dictionary of {",(0,r.jsx)(e.code,{children:"column_name"}),":",(0,r.jsx)(e.code,{children:"column_value"}),"}."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the new vertex's vid, which can be used in later vertex operations."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "property" : {\n "name" : "Passerby A",\n "birthyear" : 1989\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n 21\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"673batch-create-vertexes",children:"6.7.3.Batch Create Vertexes"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph allows multiple vertices to be inserted as one batch to reduce network overhead."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of Label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"the column names"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"the values of each vertex"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"fields"})," is a list of strings specifying column names, and ",(0,r.jsx)(e.code,{children:"values"})," is a list in which each element is a list of ",(0,r.jsx)(e.code,{children:"column_values"})," corresponding to the column names as specified in ",(0,r.jsx)(e.code,{children:"fields"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200, and return the vid list of newly added vertices in the JSON content, where each vid corresponds to each vertex in the request."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "fields" : ["name", "birthyear"],\n "values" : [["alex", 2000],\n ["bob", 1999]]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n 22,\n 23\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"674get-vertex",children:"6.7.4.Get Vertex"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of Label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"Dictionary, in the format of {column_name_1:column_value_1, ...}"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "label": "Person"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"675delete-vertex",children:"6.7.5.Delete Vertex"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200, and also the following content in JSON:"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"number of incoming edges of the deleted vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"number of outgoing edges of the deleted vertex"}),(0,r.jsx)(e.td,{children:"Integer"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/{graph_name}/node/4\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "in": 0,\n "out": 0\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"676get-vertex-property",children:"6.7.6.Get Vertex Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Vertex properties as a dictionary of {",(0,r.jsx)(e.code,{children:"column_name"}),":",(0,r.jsx)(e.code,{children:"column_value"}),"}"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"677get-vertex-field",children:"6.7.7.Get Vertex Field"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Value corresponding to the specified ",(0,r.jsx)(e.code,{children:"field"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"678update-vertex-property",children:"6.7.8.Update Vertex Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"properties to update"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "birthyear" : 1964,\n "mobile" : "13737299333"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"68edge-operation",children:"6.8.Edge Operation"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/relationship/{euid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"euid"})," is a string uniquely identifying the edge, which can be obtained when creating edges or by iterating through the edges of a vertex."]}),"\n",(0,r.jsx)(e.h4,{id:"681create-edge",children:"6.8.1.Create Edge"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src_vid}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsxs)(e.td,{children:["the ",(0,r.jsx)(e.code,{children:"vid"})," of destination vertex"]}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the property of edge"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the ",(0,r.jsx)(e.code,{children:"euid"})," of new created edge (type is String)."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node/{src}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "destination" : 14,\n "label" : "BORN_IN",\n "property" : {}\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "1_14_1_0"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"682batch-create-edges",children:"6.8.2.Batch Create Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"the data column name"}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"the data of edge"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"where the edge is a list of data, each of which specifies and edge, defined as follows:"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"source"}),(0,r.jsx)(e.td,{children:"source vertex id"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"destination vertex id"}),(0,r.jsx)(e.td,{children:"Integer"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"the data list"}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["in which ",(0,r.jsx)(e.code,{children:"values"})," is a list of column values, each of which correspond to the a column name specified in ",(0,r.jsx)(e.code,{children:"fields"}),"."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of the newly created edges."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "knows",\n "fields" : ["from_year", "weight"],\n "edge" : [\n {"source":0, "destination":1, "values":[2011, 0.8]},\n {"source":1, "destination":2, "values":[2008, 0.9]}\n ]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_1_0_0",\n "1_2_0_0"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"683list-out-going-edges",children:"6.8.3.List Out-going Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/out"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of source vertex's out-going edges."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/out\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "4_5_0_0",\n "4_7_1_2"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"684list-incoming-edges",children:"6.8.4.List Incoming Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{dst}/relationship/in"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The list of ",(0,r.jsx)(e.code,{children:"euid"}),"s of destination vertex's incoming edges."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/in\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"685list-all-edges",children:"6.8.5.List All Edges"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/all"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsxs)(e.td,{children:["list of incoming edges' ",(0,r.jsx)(e.code,{children:"euid"}),"s"]}),(0,r.jsx)(e.td,{children:"List"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsxs)(e.td,{children:["list of outgoing edges' ",(0,r.jsx)(e.code,{children:"euid"}),"s"]}),(0,r.jsx)(e.td,{children:"List"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/all\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "out": [\n "4_5_0_0",\n "4_7_1_2"\n ],\n "in": [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"686get-edge-information",children:"6.8.6.Get Edge Information"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the label of the edge"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"the properties of the edge"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/0_4_0_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n },\n "label": "MARRIED"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"687delete-edge",children:"6.8.7.Delete Edge"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/relationship/14_0_1_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"688get-edge-properties",children:"6.8.8.Get Edge Properties"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": The dictionary of edge's properties."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/14_0_2_0/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n {\n "weight": 0.8,\n "begin": 20180922\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"689get-edge-field",children:"6.8.9.Get Edge Field"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200 and the value corresponding to given ",(0,r.jsx)(e.code,{children:"field"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/17_0_2_2/property/charactername\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Henri Ducard"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6810update-edge-property",children:"6.8.10.Update Edge Property"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"properties to be updated"}),(0,r.jsx)(e.td,{children:"Dictionary"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/graph1/relationship/17_0_2_2\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "charactername" : "Henri Ducard/passer a"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"69index",children:"6.9.Index"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/index/{label}/{field}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"691create-index",children:"6.9.1.Create Index"}),"\n",(0,r.jsx)(e.p,{children:"Create an index on a (label, field) pair. Blocks until the index is successfully built."}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"the name of label"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field"}),(0,r.jsx)(e.td,{children:"field to be indexed"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"the type of index, 0 means nonunique index, 1 means unique index, 2 means pair_unique index"}),(0,r.jsx)(e.td,{children:"int"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label": "Person",\n "field": "birthyear",\n "is_unique" : false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"692list-all-indexes",children:"6.9.2.List All Indexes"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of index specifications, each of which has the same format as use in ",(0,r.jsx)(e.a,{href:"#Create-Index",children:"Create Index"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "field": "name",\n "label": "City",\n "is_unique": false\n },\n {\n "field": "title",\n "label": "Film",\n "is_unique": false\n },\n {\n "field": "name",\n "label": "Person",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"693list-indexes-related-with-specified-label",children:"6.9.3.List Indexes Related with Specified Label"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of index specifications, each of which has the same format as use in ",(0,r.jsx)(e.a,{href:"#Create-Index",children:"Create Index"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "label": "Person",\n "field": "name",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"694delete-index",children:"6.9.4.Delete Index"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/{field}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": if successful, return status code 200."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/index/Person/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"695get-vertex-by-index",children:"6.9.5.Get Vertex by Index"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/?field={field}&value={value}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": A list of ",(0,r.jsx)(e.code,{children:"vid"}),"s."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person/?field=birthyear&value=1986\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n Output:\n {\n [\n 1,\n 8\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h3,{id:"610data-import",children:"6.10.Data Import"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/import/text"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"description of the file content"}),(0,r.jsx)(e.td,{children:"String"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"contents of the file to be imported (recommended to have a size of 16MB, has a hard limit of 17MB)"}),(0,r.jsx)(e.td,{children:"Strings / Arrays / Objects"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"continue_on_error"}),(0,r.jsxs)(e.td,{children:["whether to continue import when an error occurred (optional, default is ",(0,r.jsx)(e.code,{children:"false"}),")"]}),(0,r.jsx)(e.td,{children:"Bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"delimiter"}),(0,r.jsxs)(e.td,{children:["delimiter used in the data file (optional, default is ",(0,r.jsx)(e.code,{children:"\u201c,\u201d"}),")"]}),(0,r.jsx)(e.td,{children:"String"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["The details of the ",(0,r.jsx)(e.code,{children:"description"})," field can be found in ",(0,r.jsx)(e.a,{href:"/tugraph-db/en/utility-tools/data-import",children:"TuGraph Import Tool"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"delimiter"})," can be a single character or multi-character string, but must not contain ",(0,r.jsx)(e.code,{children:"\\r"})," or ",(0,r.jsx)(e.code,{children:"\\n"}),"."]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"data"})," can be one of the following:"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["String, such as ",(0,r.jsx)(e.code,{children:'"1,2\\n3,4\\n"'})]}),"\n",(0,r.jsxs)(e.li,{children:["Array of ASCII codes, such as ",(0,r.jsx)(e.code,{children:"[49,44,50,10,51,44,52,10]"})]}),"\n",(0,r.jsxs)(e.li,{children:["Dictionary shaped like the above array, such as ",(0,r.jsx)(e.code,{children:'{"0":49,"1":44,"2":50,"3":10,"4":51,"5":44,"6":52,"7":10}'})]}),"\n"]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["The system ",(0,r.jsx)(e.strong,{children:"will not"})," automatically perform actions such as creating a new label, adding an index, and so on. Before you do this, please make sure that the label involved already exists and has an appropriate index."]}),"\n",(0,r.jsxs)(e.p,{children:["If the import is successful, return code 200 and return log information (possibly empty) in the ",(0,r.jsx)(e.code,{children:"log"})," field. Otherwise, returns status code 400. None of the data is imported on failure, and error message is set in ",(0,r.jsx)(e.code,{children:"error_message"}),"."]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/import/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"files\\\\":[{\\\\"columns\\\\":[\\\\"SRC_ID\\\\",\\\\"role\\\\",\\\\"DST_ID\\\\"],\\\\"format\\\\":\\\\"CSV\\\\",\\\\"label\\\\":\\\\"role\\\\",\\\\"SRC_ID\\\\":\\\\"actor\\\\",\\\\"DST_ID\\\\":\\\\"movie\\\\"}]}"}",\n "data": "1,Role1,2\\n3,Role2,4\\n",\n "continue_on_error": true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"The value of the above description is the following json serialized string :"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "files": [\n {\n "format": "CSV",\n "label": "role",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": "Missing src uid 1\\n"\n }\n'})}),"\n",(0,r.jsxs)(e.p,{children:["Because the request specifies ",(0,r.jsx)(e.code,{children:"continue_on_error: true"}),", the returned ",(0,r.jsx)(e.code,{children:"log"})," indicates that the first edge cannot be inserted because there is no vertex with uid==1, while the second edge was imported successfully."]}),"\n",(0,r.jsx)(e.h3,{id:"611miscellany",children:"6.11.Miscellany"}),"\n",(0,r.jsx)(e.p,{children:"URI format is:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/misc\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6111extract-subgraph",children:"6.11.1.Extract Subgraph"}),"\n",(0,r.jsxs)(e.p,{children:["Give a set of ",(0,r.jsx)(e.code,{children:"vid"}),"s and return the minimum subgraph which contains the vertex set and the edges between them."]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/misc/sub_graph"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"Description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex_ids"}),(0,r.jsx)(e.td,{children:"vertex id set"}),(0,r.jsx)(e.td,{children:"List"})]})})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"Field"}),(0,r.jsx)(e.th,{children:"description"}),(0,r.jsx)(e.th,{children:"Type"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"nodes"}),(0,r.jsx)(e.td,{children:"vertex information"}),(0,r.jsx)(e.td,{children:"List, each element contains vid, label, and properties."})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationships"}),(0,r.jsx)(e.td,{children:"edge information"}),(0,r.jsx)(e.td,{children:"List, each element contains src, dst, euid, label, and properties."})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Request:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/misc/sub_graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "vertex_ids": [2, 5, 14, 20]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example Response:"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "nodes": [\n {\n "label": "Person",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "vid": 2\n },\n {\n "label": "Person",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "vid": 5\n },\n {\n "label": "City",\n "properties": {\n "name": "London"\n },\n "vid": 14\n },\n {\n "label": "Film",\n "properties": {\n "title": "Camelot"\n },\n "vid": 20\n }\n ],\n "relationships": [\n {\n "destination": 5,\n "label": "HAS_CHILD",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 20,\n "label": "ACTED_IN",\n "properties": {\n "birthyear": 1937,\n "charactername": "Guenevere",\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "source": 5\n }\n ]\n }\n'})})]})}function o(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(x,{...n})}):x(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>l,x:()=>t});var r=s(6540);const i={},d=r.createContext(i);function l(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:l(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8534c110.026fb00e.js b/assets/js/8534c110.026fb00e.js
deleted file mode 100644
index 7500ab4dd7..0000000000
--- a/assets/js/8534c110.026fb00e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4892],{9:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>o});var t=n(4848),s=n(8453);const i={},d="DEMO",a={id:"en-US/source/quick-start/demo/movie",title:"DEMO:Movie",description:"This document mainly introduces the usage of the movie demo.",source:"@site/../docs/en-US/source/3.quick-start/2.demo/1.movie.md",sourceDirName:"en-US/source/3.quick-start/2.demo",slug:"/en-US/source/quick-start/demo/movie",permalink:"/tugraph-db/en-US/source/quick-start/demo/movie",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Quick Start",permalink:"/tugraph-db/en-US/source/quick-start/preparation"},next:{title:"DEMO:Wandering Earth",permalink:"/tugraph-db/en-US/source/quick-start/demo/wandering-earth"}},l={},o=[{value:"1.Modeling and Data Import",id:"1modeling-and-data-import",level:2},{value:"2.Query Examples",id:"2query-examples",level:2},{value:"2.1.Example One",id:"21example-one",level:3},{value:"2.2.Example Two",id:"22example-two",level:3},{value:"2.3.Example Three",id:"23example-three",level:3},{value:"2.4.Example Four",id:"24example-four",level:3},{value:"2.5.Example Five",id:"25example-five",level:3},{value:"2.6.Example Six",id:"26example-six",level:3},{value:"2.7.Example Seven",id:"27example-seven",level:3}];function c(e){const r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"demo",children:"DEMO:Movie"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsx)(r.p,{children:"This document mainly introduces the usage of the movie demo."}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1modeling-and-data-import",children:"1.Modeling and Data Import"}),"\n",(0,t.jsx)(r.p,{children:'After logging in, click "Create Graph Project", select the movie dataset, fill in the graph project configuration, and the system will automatically complete the creation of the Movie scenario graph project.Other scenarios can also be created in the same manner.'}),"\n",(0,t.jsx)(r.p,{children:"Movie\uff1a"}),"\n",(0,t.jsx)(r.img,{src:"https://tugraph-web-static.oss-cn-beijing.aliyuncs.com/%E6%96%87%E6%A1%A3/1.Guide/2.quick-start.png",alt:"movie_schema",style:{zoom:"25%"}}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Label"}),(0,t.jsx)(r.th,{children:"Type"}),(0,t.jsx)(r.th,{children:"Description"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"movie"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:'Represents a specific movie, such as "Forrest Gump".'})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"person"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents a person, who may be an actor, director, or screenwriter for a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"genre"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents the genre of a movie, such as drama, horror."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"keyword"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:'Represents some keywords related to the movie, such as "save the world", "virtual reality", "subway".'})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"user"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents a user who watches movies."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"produce"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between the producer of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"acted_in"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between actors and the movies they have appeared in."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"direct"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between a movie and its director."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"write"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the screenwriting relationship of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"has_genre"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the genre classification of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"has_keyword"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents some keywords of a movie, which are more specific labels for classification."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"rate"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the rating given by a user to a movie."})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"2query-examples",children:"2.Query Examples"}),"\n",(0,t.jsx)(r.h3,{id:"21example-one",children:"2.1.Example One"}),"\n",(0,t.jsx)(r.p,{children:"Query all actors of the movie 'Forrest Gump' and return the subgraph composed of the movie and the actors."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title: 'Forrest Gump'})<-[:acted_in]-(a:person) RETURN a, m\n"})}),"\n",(0,t.jsx)(r.h3,{id:"22example-two",children:"2.2.Example Two"}),"\n",(0,t.jsx)(r.p,{children:"Query all actors of the movie 'Forrest Gump' and list the roles they played in the movie."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title: 'Forrest Gump'})<-[r:acted_in]-(a:person) RETURN a.name,r.role\n"})}),"\n",(0,t.jsx)(r.h3,{id:"23example-three",children:"2.3.Example Three"}),"\n",(0,t.jsx)(r.p,{children:"Query all movies rated below 3 by Michael."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie) WHERE r.stars < 3 RETURN m.title, r.stars\n"})}),"\n",(0,t.jsx)(r.h3,{id:"24example-four",children:"2.4.Example Four"}),"\n",(0,t.jsx)(r.p,{children:"Query users who have the same dislike of movies as Michael, where the standard for dislike is a rating of less than three."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v) WHERE r.stars < 3 AND s.stars < 3 RETURN u, m, v\n"})}),"\n",(0,t.jsx)(r.h3,{id:"25example-five",children:"2.5.Example Five"}),"\n",(0,t.jsx)(r.p,{children:"Recommend movies to Michael by first finding users who dislike the same movies as Michael, and then filtering out the movies that these users like."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v)-[r2:rate]->(m2:movie) WHERE r.stars < 3 AND s.stars < 3 AND r2.stars > 3 RETURN u, m, v, m2\n"})}),"\n",(0,t.jsx)(r.h3,{id:"26example-six",children:"2.6.Example Six"}),"\n",(0,t.jsx)(r.p,{children:"Query the movies that Michael's friends like."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[:is_friend]->(v:user)-[r:rate]->(m:movie) WHERE r.stars > 3 RETURN u, v, m\n"})}),"\n",(0,t.jsx)(r.h3,{id:"27example-seven",children:"2.7.Example Seven"}),"\n",(0,t.jsx)(r.p,{children:"By querying the movies that people who gave 'Forrest Gump' a high rating also like, recommend similar movies to users who like 'Forrest Gump'."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title:'Forrest Gump'})<-[r:rate]-(u:user)-[r2:rate]->(m2:movie) WHERE r.stars>3 AND r2.stars>3 RETURN m, u,m2\n"})})]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>a});var t=n(6540);const s={},i=t.createContext(s);function d(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8534c110.827af05f.js b/assets/js/8534c110.827af05f.js
new file mode 100644
index 0000000000..8a962d5f94
--- /dev/null
+++ b/assets/js/8534c110.827af05f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[4892],{9339:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>o});var t=n(4848),s=n(8453);const i={},d="DEMO",a={id:"quick-start/demo/movie",title:"DEMO:Movie",description:"This document mainly introduces the usage of the movie demo.",source:"@site/../docs/en-US/source/3.quick-start/2.demo/1.movie.md",sourceDirName:"3.quick-start/2.demo",slug:"/quick-start/demo/movie",permalink:"/tugraph-db/en/quick-start/demo/movie",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Quick Start",permalink:"/tugraph-db/en/quick-start/preparation"},next:{title:"DEMO:Wandering Earth",permalink:"/tugraph-db/en/quick-start/demo/wandering-earth"}},l={},o=[{value:"1.Modeling and Data Import",id:"1modeling-and-data-import",level:2},{value:"2.Query Examples",id:"2query-examples",level:2},{value:"2.1.Example One",id:"21example-one",level:3},{value:"2.2.Example Two",id:"22example-two",level:3},{value:"2.3.Example Three",id:"23example-three",level:3},{value:"2.4.Example Four",id:"24example-four",level:3},{value:"2.5.Example Five",id:"25example-five",level:3},{value:"2.6.Example Six",id:"26example-six",level:3},{value:"2.7.Example Seven",id:"27example-seven",level:3}];function h(e){const r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"demo",children:"DEMO:Movie"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsx)(r.p,{children:"This document mainly introduces the usage of the movie demo."}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"1modeling-and-data-import",children:"1.Modeling and Data Import"}),"\n",(0,t.jsx)(r.p,{children:'After logging in, click "Create Graph Project", select the movie dataset, fill in the graph project configuration, and the system will automatically complete the creation of the Movie scenario graph project.Other scenarios can also be created in the same manner.'}),"\n",(0,t.jsx)(r.p,{children:"Movie\uff1a"}),"\n",(0,t.jsx)(r.img,{src:"https://tugraph-web-static.oss-cn-beijing.aliyuncs.com/%E6%96%87%E6%A1%A3/1.Guide/2.quick-start.png",alt:"movie_schema",style:{zoom:"25%"}}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Label"}),(0,t.jsx)(r.th,{children:"Type"}),(0,t.jsx)(r.th,{children:"Description"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"movie"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:'Represents a specific movie, such as "Forrest Gump".'})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"person"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents a person, who may be an actor, director, or screenwriter for a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"genre"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents the genre of a movie, such as drama, horror."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"keyword"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:'Represents some keywords related to the movie, such as "save the world", "virtual reality", "subway".'})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"user"}),(0,t.jsx)(r.td,{children:"Vertex"}),(0,t.jsx)(r.td,{children:"Represents a user who watches movies."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"produce"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between the producer of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"acted_in"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between actors and the movies they have appeared in."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"direct"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the relationship between a movie and its director."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"write"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the screenwriting relationship of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"has_genre"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the genre classification of a movie."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"has_keyword"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents some keywords of a movie, which are more specific labels for classification."})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"rate"}),(0,t.jsx)(r.td,{children:"Edge"}),(0,t.jsx)(r.td,{children:"Represents the rating given by a user to a movie."})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"2query-examples",children:"2.Query Examples"}),"\n",(0,t.jsx)(r.h3,{id:"21example-one",children:"2.1.Example One"}),"\n",(0,t.jsx)(r.p,{children:"Query all actors of the movie 'Forrest Gump' and return the subgraph composed of the movie and the actors."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title: 'Forrest Gump'})<-[:acted_in]-(a:person) RETURN a, m\n"})}),"\n",(0,t.jsx)(r.h3,{id:"22example-two",children:"2.2.Example Two"}),"\n",(0,t.jsx)(r.p,{children:"Query all actors of the movie 'Forrest Gump' and list the roles they played in the movie."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title: 'Forrest Gump'})<-[r:acted_in]-(a:person) RETURN a.name,r.role\n"})}),"\n",(0,t.jsx)(r.h3,{id:"23example-three",children:"2.3.Example Three"}),"\n",(0,t.jsx)(r.p,{children:"Query all movies rated below 3 by Michael."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie) WHERE r.stars < 3 RETURN m.title, r.stars\n"})}),"\n",(0,t.jsx)(r.h3,{id:"24example-four",children:"2.4.Example Four"}),"\n",(0,t.jsx)(r.p,{children:"Query users who have the same dislike of movies as Michael, where the standard for dislike is a rating of less than three."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v) WHERE r.stars < 3 AND s.stars < 3 RETURN u, m, v\n"})}),"\n",(0,t.jsx)(r.h3,{id:"25example-five",children:"2.5.Example Five"}),"\n",(0,t.jsx)(r.p,{children:"Recommend movies to Michael by first finding users who dislike the same movies as Michael, and then filtering out the movies that these users like."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v)-[r2:rate]->(m2:movie) WHERE r.stars < 3 AND s.stars < 3 AND r2.stars > 3 RETURN u, m, v, m2\n"})}),"\n",(0,t.jsx)(r.h3,{id:"26example-six",children:"2.6.Example Six"}),"\n",(0,t.jsx)(r.p,{children:"Query the movies that Michael's friends like."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (u:user {login: 'Michael'})-[:is_friend]->(v:user)-[r:rate]->(m:movie) WHERE r.stars > 3 RETURN u, v, m\n"})}),"\n",(0,t.jsx)(r.h3,{id:"27example-seven",children:"2.7.Example Seven"}),"\n",(0,t.jsx)(r.p,{children:"By querying the movies that people who gave 'Forrest Gump' a high rating also like, recommend similar movies to users who like 'Forrest Gump'."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:"MATCH (m:movie {title:'Forrest Gump'})<-[r:rate]-(u:user)-[r2:rate]->(m2:movie) WHERE r.stars>3 AND r2.stars>3 RETURN m, u,m2\n"})})]})}function c(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>d,x:()=>a});var t=n(6540);const s={},i=t.createContext(s);function d(e){const r=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8652d030.3a5cdcb6.js b/assets/js/8652d030.3a5cdcb6.js
new file mode 100644
index 0000000000..6851b6905e
--- /dev/null
+++ b/assets/js/8652d030.3a5cdcb6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5965],{756:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var a=r(4848),t=r(8453);const i={},s="TuGraph DataX",o={id:"utility-tools/tugraph-datax",title:"TuGraph DataX",description:"This document mainly introduces the installation, compilation and usage examples of TuGraph DataX",source:"@site/../docs/en-US/source/6.utility-tools/7.tugraph-datax.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/tugraph-datax",permalink:"/tugraph-db/en/utility-tools/tugraph-datax",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tugraph CLI",permalink:"/tugraph-db/en/utility-tools/tugraph-cli"},next:{title:"TuGraph Explorer",permalink:"/tugraph-db/en/utility-tools/tugraph-explorer"}},l={},d=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Compile and Install",id:"2compile-and-install",level:2},{value:"3.Import TuGraph",id:"3import-tugraph",level:2},{value:"3.1.Text data imported into TuGraph with DataX",id:"31text-data-imported-into-tugraph-with-datax",level:3},{value:"3.2.MySQL's data imported into TuGraph with DataX",id:"32mysqls-data-imported-into-tugraph-with-datax",level:3},{value:"4.Export TuGraph",id:"4export-tugraph",level:2},{value:"4.1. Configuration example",id:"41-configuration-example",level:3},{value:"4.2. Parameter Description",id:"42-parameter-description",level:3}];function h(n){const e={a:"a",blockquote:"blockquote",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...n.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.header,{children:(0,a.jsx)(e.h1,{id:"tugraph-datax",children:"TuGraph DataX"})}),"\n",(0,a.jsxs)(e.blockquote,{children:["\n",(0,a.jsx)(e.p,{children:"This document mainly introduces the installation, compilation and usage examples of TuGraph DataX"}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,a.jsxs)(e.p,{children:["On the basis of Ali's open source DataX, TuGraph implements the support of writing plug-ins and jsonline data format, and other data sources can write data into TuGraph through DataX.\nTuGraph DataX introduces ",(0,a.jsx)(e.a,{href:"https://github.com/TuGraph-family/DataX",children:"https://github.com/TuGraph-family/DataX"}),", Supported features include:"]}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"Import TuGraph from various heterogeneous data sources such as MySQL, SQL Server,Oracle, PostgreSQL, HDFS, Hive, HBase, OTS, ODPS, Kafka and so on."}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"Import TuGraph to the corresponding target source (to be developed)."}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Reference for DataX Original Project Introduction ",(0,a.jsx)(e.a,{href:"https://github.com/alibaba/DataX",children:"https://github.com/alibaba/DataX"})]}),"\n",(0,a.jsx)(e.h2,{id:"2compile-and-install",children:"2.Compile and Install"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-bash",children:"git clone https://github.com/TuGraph-family/DataX.git\nyum install maven\nmvn -U clean package assembly:assembly -Dmaven.test.skip=true\n"})}),"\n",(0,a.jsx)(e.p,{children:"The compiled DataX file is in the target directory"}),"\n",(0,a.jsx)(e.h2,{id:"3import-tugraph",children:"3.Import TuGraph"}),"\n",(0,a.jsx)(e.h3,{id:"31text-data-imported-into-tugraph-with-datax",children:"3.1.Text data imported into TuGraph with DataX"}),"\n",(0,a.jsxs)(e.p,{children:["Using the data from the lgraph_import section of the TuGraph manual as an example, we have three csv data files, as follows:\n",(0,a.jsx)(e.code,{children:"actors.csv"})]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\nnm015950,Stephen Chow\nnm0628806,Man-Tat Ng\nnm0156444,Cecilia Cheung\nnm2514879,Yuqi Zhang\n\n"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"movies.csv"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\ntt0188766,King of Comedy,1999,7.3\ntt0286112,Shaolin Soccer,2001,7.3\ntt4701660,The Mermaid,2016,6.3\n\n"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"roles.csv"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\nnm015950,Tianchou Yin,tt0188766\nnm015950,Steel Leg,tt0286112\nnm0628806,,tt0188766\nnm0628806,coach,tt0286112\nnm0156444,PiaoPiao Liu,tt0188766\nnm2514879,Ruolan Li,tt4701660\n\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Then create three DataX job profiles:\n",(0,a.jsx)(e.code,{children:"job_actors.json"})]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["actors.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [\n { "name": "aid", "type": "STRING" },\n { "name": "name", "type": "STRING" }\n ],\n "primary": "aid"\n }\n ],\n "files": [\n {\n "label": "actor",\n "format": "JSON",\n "columns": ["aid", "name"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_movies.json"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["movies.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n },\n {\n "index": 2,\n "type": "string"\n },\n {\n "index": 3,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_roles.json"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["roles.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n },\n {\n "index": 2,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "play_in",\n "type": "EDGE",\n "properties": [{ "name": "role", "type": "STRING" }]\n }\n ],\n "files": [\n {\n "label": "play_in",\n "format": "JSON",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.code,{children:"/lgraph_server -c lgraph_standalone.json -d 'run'"})," 'Start TuGraph and run the following commands in sequence:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_actors.json\n"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_movies.json\n"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_roles.json\n"})}),"\n",(0,a.jsx)(e.h3,{id:"32mysqls-data-imported-into-tugraph-with-datax",children:"3.2.MySQL's data imported into TuGraph with DataX"}),"\n",(0,a.jsx)(e.p,{children:"We create the following table of movies under 'test' database"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-sql",children:"CREATE TABLE `movies` (\n `mid` varchar(200) NOT NULL,\n `name` varchar(100) NOT NULL,\n `year` int(11) NOT NULL,\n `rate` float(5,2) unsigned NOT NULL,\n PRIMARY KEY (`mid`)\n);\n"})}),"\n",(0,a.jsx)(e.p,{children:"Insert some data into the table"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-sql",children:"insert into\ntest.movies (mid, name, year, rate)\nvalues\n('tt0188766', 'King of Comedy', 1999, 7.3),\n('tt0286112', 'Shaolin Soccer', 2001, 7.3),\n('tt4701660', 'The Mermaid', 2016, 6.3);\n"})}),"\n",(0,a.jsx)(e.p,{children:"Create a DataX job configuration file"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_mysql_to_tugraph.json"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"Configuring Field"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "mysqlreader",\n "parameter": {\n "username": "root",\n "password": "root",\n "column": ["mid", "name", "year", "rate"],\n "splitPk": "mid",\n "connection": [\n {\n "table": ["movies"],\n "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/test?useSSL=false"]\n }\n ]\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"Write simple sql"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "mysqlreader",\n "parameter": {\n "username": "root",\n "password": "root",\n "connection": [\n {\n "querySql": [\n "select mid, name, year, rate from test.movies where year > 2000;"\n ],\n "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/test?useSSL=false"]\n }\n ]\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.code,{children:"./lgraph_server -c lgraph_standalone.json -d 'run'"})," Start TuGraph and run the following command\uff1a"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-shell",children:"python3 datax/bin/datax.py job_mysql_to_tugraph.json\n"})}),"\n",(0,a.jsx)(e.h2,{id:"4export-tugraph",children:"4.Export TuGraph"}),"\n",(0,a.jsx)(e.h3,{id:"41-configuration-example",children:"4.1. Configuration example"}),"\n",(0,a.jsx)(e.p,{children:"TuGraph supports exporting data using DataX. Use the following configuration to export data to text data"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "tugraphreader",\n "parameter": {\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "Movie_8C5C",\n "queryCypher": "match (n:person) return n.id,n.name,n.born;",\n "url": "bolt://100.83.30.35:27687"\n }\n },\n "writer": {\n "name": "txtfilewriter",\n "parameter": {\n "path": "./result",\n "fileName": "luohw",\n "writeMode": "truncate"\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:"Using this configuration file, you can export all the id, name and born attributes of the person node in the TuGraph Movie_8C5C subgraph,\nexport them to the result directory under the current directory, and the file name is luohw+random suffix."}),"\n",(0,a.jsx)(e.h3,{id:"42-parameter-description",children:"4.2. Parameter Description"}),"\n",(0,a.jsx)(e.p,{children:"When using DataX to export TuGraph data, you need to set the reader to tugraphreader and configure the following 5 parameters:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"url"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's bolt server address ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"username"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's username ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"password"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's password ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"graphName"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: The selected TuGraph subgraph to be synchronized ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"queryCypher"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: Read data in TuGraph through cypher statements ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: No ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n"]})]})}function c(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,a.jsx)(e,{...n,children:(0,a.jsx)(h,{...n})}):h(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>s,x:()=>o});var a=r(6540);const t={},i=a.createContext(t);function s(n){const e=a.useContext(i);return a.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function o(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:s(n.components),a.createElement(i.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8652d030.cac6cca6.js b/assets/js/8652d030.cac6cca6.js
deleted file mode 100644
index 069433a21e..0000000000
--- a/assets/js/8652d030.cac6cca6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5965],{5486:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var a=r(4848),t=r(8453);const i={},s="TuGraph DataX",o={id:"en-US/source/utility-tools/tugraph-datax",title:"TuGraph DataX",description:"This document mainly introduces the installation, compilation and usage examples of TuGraph DataX",source:"@site/../docs/en-US/source/6.utility-tools/7.tugraph-datax.md",sourceDirName:"en-US/source/6.utility-tools",slug:"/en-US/source/utility-tools/tugraph-datax",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-datax",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tugraph CLI",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-cli"},next:{title:"TuGraph Explorer",permalink:"/tugraph-db/en-US/source/utility-tools/tugraph-explorer"}},l={},d=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Compile and Install",id:"2compile-and-install",level:2},{value:"3.Import TuGraph",id:"3import-tugraph",level:2},{value:"3.1.Text data imported into TuGraph with DataX",id:"31text-data-imported-into-tugraph-with-datax",level:3},{value:"3.2.MySQL's data imported into TuGraph with DataX",id:"32mysqls-data-imported-into-tugraph-with-datax",level:3},{value:"4.Export TuGraph",id:"4export-tugraph",level:2},{value:"4.1. Configuration example",id:"41-configuration-example",level:3},{value:"4.2. Parameter Description",id:"42-parameter-description",level:3}];function c(n){const e={a:"a",blockquote:"blockquote",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...n.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.header,{children:(0,a.jsx)(e.h1,{id:"tugraph-datax",children:"TuGraph DataX"})}),"\n",(0,a.jsxs)(e.blockquote,{children:["\n",(0,a.jsx)(e.p,{children:"This document mainly introduces the installation, compilation and usage examples of TuGraph DataX"}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,a.jsxs)(e.p,{children:["On the basis of Ali's open source DataX, TuGraph implements the support of writing plug-ins and jsonline data format, and other data sources can write data into TuGraph through DataX.\nTuGraph DataX introduces ",(0,a.jsx)(e.a,{href:"https://github.com/TuGraph-family/DataX",children:"https://github.com/TuGraph-family/DataX"}),", Supported features include:"]}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"Import TuGraph from various heterogeneous data sources such as MySQL, SQL Server,Oracle, PostgreSQL, HDFS, Hive, HBase, OTS, ODPS, Kafka and so on."}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:"Import TuGraph to the corresponding target source (to be developed)."}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["Reference for DataX Original Project Introduction ",(0,a.jsx)(e.a,{href:"https://github.com/alibaba/DataX",children:"https://github.com/alibaba/DataX"})]}),"\n",(0,a.jsx)(e.h2,{id:"2compile-and-install",children:"2.Compile and Install"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-bash",children:"git clone https://github.com/TuGraph-family/DataX.git\nyum install maven\nmvn -U clean package assembly:assembly -Dmaven.test.skip=true\n"})}),"\n",(0,a.jsx)(e.p,{children:"The compiled DataX file is in the target directory"}),"\n",(0,a.jsx)(e.h2,{id:"3import-tugraph",children:"3.Import TuGraph"}),"\n",(0,a.jsx)(e.h3,{id:"31text-data-imported-into-tugraph-with-datax",children:"3.1.Text data imported into TuGraph with DataX"}),"\n",(0,a.jsxs)(e.p,{children:["Using the data from the lgraph_import section of the TuGraph manual as an example, we have three csv data files, as follows:\n",(0,a.jsx)(e.code,{children:"actors.csv"})]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\nnm015950,Stephen Chow\nnm0628806,Man-Tat Ng\nnm0156444,Cecilia Cheung\nnm2514879,Yuqi Zhang\n\n"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"movies.csv"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\ntt0188766,King of Comedy,1999,7.3\ntt0286112,Shaolin Soccer,2001,7.3\ntt4701660,The Mermaid,2016,6.3\n\n"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"roles.csv"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"\nnm015950,Tianchou Yin,tt0188766\nnm015950,Steel Leg,tt0286112\nnm0628806,,tt0188766\nnm0628806,coach,tt0286112\nnm0156444,PiaoPiao Liu,tt0188766\nnm2514879,Ruolan Li,tt4701660\n\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Then create three DataX job profiles:\n",(0,a.jsx)(e.code,{children:"job_actors.json"})]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["actors.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [\n { "name": "aid", "type": "STRING" },\n { "name": "name", "type": "STRING" }\n ],\n "primary": "aid"\n }\n ],\n "files": [\n {\n "label": "actor",\n "format": "JSON",\n "columns": ["aid", "name"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_movies.json"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["movies.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n },\n {\n "index": 2,\n "type": "string"\n },\n {\n "index": 3,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_roles.json"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "txtfilereader",\n "parameter": {\n "path": ["roles.csv"],\n "encoding": "UTF-8",\n "column": [\n {\n "index": 0,\n "type": "string"\n },\n {\n "index": 1,\n "type": "string"\n },\n {\n "index": 2,\n "type": "string"\n }\n ],\n "fieldDelimiter": ","\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "play_in",\n "type": "EDGE",\n "properties": [{ "name": "role", "type": "STRING" }]\n }\n ],\n "files": [\n {\n "label": "play_in",\n "format": "JSON",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.code,{children:"/lgraph_server -c lgraph_standalone.json -d 'run'"})," 'Start TuGraph and run the following commands in sequence:"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_actors.json\n"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_movies.json\n"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{children:"python3 datax/bin/datax.py job_roles.json\n"})}),"\n",(0,a.jsx)(e.h3,{id:"32mysqls-data-imported-into-tugraph-with-datax",children:"3.2.MySQL's data imported into TuGraph with DataX"}),"\n",(0,a.jsx)(e.p,{children:"We create the following table of movies under 'test' database"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-sql",children:"CREATE TABLE `movies` (\n `mid` varchar(200) NOT NULL,\n `name` varchar(100) NOT NULL,\n `year` int(11) NOT NULL,\n `rate` float(5,2) unsigned NOT NULL,\n PRIMARY KEY (`mid`)\n);\n"})}),"\n",(0,a.jsx)(e.p,{children:"Insert some data into the table"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-sql",children:"insert into\ntest.movies (mid, name, year, rate)\nvalues\n('tt0188766', 'King of Comedy', 1999, 7.3),\n('tt0286112', 'Shaolin Soccer', 2001, 7.3),\n('tt4701660', 'The Mermaid', 2016, 6.3);\n"})}),"\n",(0,a.jsx)(e.p,{children:"Create a DataX job configuration file"}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.code,{children:"job_mysql_to_tugraph.json"})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"Configuring Field"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "mysqlreader",\n "parameter": {\n "username": "root",\n "password": "root",\n "column": ["mid", "name", "year", "rate"],\n "splitPk": "mid",\n "connection": [\n {\n "table": ["movies"],\n "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/test?useSSL=false"]\n }\n ]\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"Write simple sql"})}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "mysqlreader",\n "parameter": {\n "username": "root",\n "password": "root",\n "connection": [\n {\n "querySql": [\n "select mid, name, year, rate from test.movies where year > 2000;"\n ],\n "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/test?useSSL=false"]\n }\n ]\n }\n },\n "writer": {\n "name": "tugraphwriter",\n "parameter": {\n "host": "127.0.0.1",\n "port": 7071,\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "default",\n "schema": [\n {\n "label": "movie",\n "type": "VERTEX",\n "properties": [\n { "name": "mid", "type": "STRING" },\n { "name": "name", "type": "STRING" },\n { "name": "year", "type": "STRING" },\n { "name": "rate", "type": "FLOAT", "optional": true }\n ],\n "primary": "mid"\n }\n ],\n "files": [\n {\n "label": "movie",\n "format": "JSON",\n "columns": ["mid", "name", "year", "rate"]\n }\n ]\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.code,{children:"./lgraph_server -c lgraph_standalone.json -d 'run'"})," Start TuGraph and run the following command\uff1a"]}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-shell",children:"python3 datax/bin/datax.py job_mysql_to_tugraph.json\n"})}),"\n",(0,a.jsx)(e.h2,{id:"4export-tugraph",children:"4.Export TuGraph"}),"\n",(0,a.jsx)(e.h3,{id:"41-configuration-example",children:"4.1. Configuration example"}),"\n",(0,a.jsx)(e.p,{children:"TuGraph supports exporting data using DataX. Use the following configuration to export data to text data"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-json",children:'{\n "job": {\n "setting": {\n "speed": {\n "channel": 1\n }\n },\n "content": [\n {\n "reader": {\n "name": "tugraphreader",\n "parameter": {\n "username": "admin",\n "password": "73@TuGraph",\n "graphName": "Movie_8C5C",\n "queryCypher": "match (n:person) return n.id,n.name,n.born;",\n "url": "bolt://100.83.30.35:27687"\n }\n },\n "writer": {\n "name": "txtfilewriter",\n "parameter": {\n "path": "./result",\n "fileName": "luohw",\n "writeMode": "truncate"\n }\n }\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(e.p,{children:"Using this configuration file, you can export all the id, name and born attributes of the person node in the TuGraph Movie_8C5C subgraph,\nexport them to the result directory under the current directory, and the file name is luohw+random suffix."}),"\n",(0,a.jsx)(e.h3,{id:"42-parameter-description",children:"4.2. Parameter Description"}),"\n",(0,a.jsx)(e.p,{children:"When using DataX to export TuGraph data, you need to set the reader to tugraphreader and configure the following 5 parameters:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"url"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's bolt server address ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"username"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's username ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"password"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: TuGraph's password ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"graphName"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: The selected TuGraph subgraph to be synchronized ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: Yes ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(e.li,{children:["\n",(0,a.jsx)(e.p,{children:(0,a.jsx)(e.strong,{children:"queryCypher"})}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Description: Read data in TuGraph through cypher statements ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Required: No ",(0,a.jsx)(e.br,{})]}),"\n",(0,a.jsxs)(e.li,{children:["Default value: None ",(0,a.jsx)(e.br,{})]}),"\n"]}),"\n"]}),"\n"]})]})}function h(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,a.jsx)(e,{...n,children:(0,a.jsx)(c,{...n})}):c(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>s,x:()=>o});var a=r(6540);const t={},i=a.createContext(t);function s(n){const e=a.useContext(i);return a.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function o(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:s(n.components),a.createElement(i.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/86859d92.2091b9a5.js b/assets/js/86859d92.2091b9a5.js
new file mode 100644
index 0000000000..f949f395cf
--- /dev/null
+++ b/assets/js/86859d92.2091b9a5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3882],{539:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>h,metadata:()=>a,toc:()=>u});var r=t(4848),i=t(8453);const h={},s="Guide",a={id:"guide",title:"Guide",description:"Here is the document map that helps users learn and use the TuGraph community version quickly.",source:"@site/../docs/en-US/source/1.guide.md",sourceDirName:".",slug:"/guide",permalink:"/tugraph-db/en/guide",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",next:{title:"What is Graph",permalink:"/tugraph-db/en/introduction/what-is-graph"}},c={},u=[{value:"Quick Start",id:"quick-start",level:2},{value:"Development Guide",id:"development-guide",level:2},{value:"Community Contribution",id:"community-contribution",level:2},{value:"Main warehouse",id:"main-warehouse",level:2},{value:"Video Center",id:"video-center",level:2},{value:"TuGraph-Latest-Version",id:"tugraph-latest-version",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"guide",children:"Guide"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:"Here is the document map that helps users learn and use the TuGraph community version quickly."}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Understand ",(0,r.jsx)(n.a,{href:"/tugraph-db/en/introduction/what-is-graph",children:"What is a Graph"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/introduction/scenarios",children:"The application scenarios of graph"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/introduction/what-is-tugraph",children:"What is TuGraph"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Quickly Install and deploy TuGraph:",(0,r.jsx)(n.a,{href:"/tugraph-db/en/installation&running/cloud-deployment",children:"Cloud Deployment"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/installation&running/docker-deployment",children:"Docker Deployment"}),"Rapid deployment TuGraph."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Quickly get started with DEMO:",(0,r.jsx)(n.a,{href:"/tugraph-db/en/quick-start/demo/movie",children:"Movie"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/quick-start/demo/wandering-earth",children:"The Wandering Earth"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/quick-start/demo/the-three-body",children:"Three Body"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/quick-start/demo/three-kingdoms",children:"Three Kingdoms"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["User Guide:",(0,r.jsx)(n.a,{href:"/tugraph-db/en/user-guide/tugraph-browser",children:"TuGraph Browser"}),",",(0,r.jsx)(n.a,{href:"/tugraph-db/en/user-guide/tugraph-browser-legacy",children:"TuGraph Browser Legacy"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"development-guide",children:"Development Guide"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Client Tools: ",(0,r.jsx)(n.a,{href:"/tugraph-db/en/client-tools/bolt-client",children:"Bolt Client"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["TuGraph Query Language:",(0,r.jsx)(n.a,{href:"/tugraph-db/en/query/cypher",children:"Cypher API"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Procedure And Algorithm:",(0,r.jsx)(n.a,{href:"/tugraph-db/en/olap&procedure/procedure/",children:"Procedure API (POG API)"}),"\u3001",(0,r.jsx)(n.a,{href:"/tugraph-db/en/olap&procedure/olap/tutorial",children:"OLAP API"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["C++/Python Procedure Interfaces:",(0,r.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(137).A+"",children:"C++/Python Procedure API"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"community-contribution",children:"Community Contribution"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Before starting to contribute, you can learn ",(0,r.jsx)(n.a,{href:"/tugraph-db/en/contributor-manual/contributing",children:"how to contribute"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["If you want to understand the division of community roles, please visit ",(0,r.jsx)(n.a,{href:"/tugraph-db/en/contributor-manual/community-roles",children:"community roles"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"main-warehouse",children:"Main warehouse"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["TuGraph-DB repository: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db",children:"https://github.com/TuGraph-family/tugraph-db"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Visual interface: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db-browser",children:"https://github.com/TuGraph-family/tugraph-db-browser"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Java client: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db-client-java",children:"https://github.com/TuGraph-family/tugraph-db-client-java"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Simple test method based on twitter data: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/gdbms-microbenchmark",children:"https://github.com/TuGraph-family/gdbms-microbenchmark"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["Test method based on standard LDBC-SNB: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-snb-interactive",children:"https://github.com/TuGraph-family/tugraph-snb-interactive"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["TuGraph-Analytics repository: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-analytics",children:"https://github.com/TuGraph-family/tugraph-analytics"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"video-center",children:"Video Center"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=2593741",children:"Get started quickly with TuGraph"})}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=3009777",children:"TuGraph technology sharing collection"})}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://www.bilibili.com/video/BV15U4y1r7AW/",children:"Understand graph calculation in 3 minutes"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"tugraph-latest-version",children:"TuGraph-Latest-Version"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"File"}),(0,r.jsx)(n.th,{children:"Link"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS7 runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-4.5.0-1.el7.x86_64.rpm"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el7.x86_64.rpm",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS8 runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-4.5.0-1.el8.x86_64.rpm"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el8.x86_64.rpm",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Ubuntu18.04 runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-4.5.0-1.x86_64.deb"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.x86_64.deb",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS7 runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-runtime-centos7-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos7-4.5.0.tar",children:"Download"}),", ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos7",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS8 runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-runtime-centos8-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos8-4.5.0.tar",children:"Download"}),", ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos8",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Ubuntu18.04 runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-runtime-ubuntu18.04-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-ubuntu18.04-4.5.0.tar",children:"Download"})," , ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-ubuntu18.04",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS7 mini runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el7.x86_64.rpm"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el7.x86_64.rpm",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS8 mini runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el8.x86_64.rpm"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el8.x86_64.rpm",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Ubuntu18.04 mini runtime package"}),(0,r.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.x86_64.deb"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.x86_64.deb",children:"Download"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS7 mini runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-mini-runtime-centos7-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos7-4.5.0.tar",children:"Download"})," , ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos7",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS8 mini runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-mini-runtime-centos8-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos8-4.5.0.tar",children:"Download"})," , ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos8",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Ubuntu18.04 mini runtime image"}),(0,r.jsx)(n.td,{children:"tugraph-mini-runtime-ubuntu18.04-4.5.0.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-ubuntu18.04-4.5.0.tar",children:"Download"}),", ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-ubuntu18.04",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS7 compilation image"}),(0,r.jsx)(n.td,{children:"tugraph-compile-centos7-1.3.2.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos7-1.3.2.tar",children:"Download"}),", ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos7",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"CentOS8 compilation image"}),(0,r.jsx)(n.td,{children:"tugraph-compile-centos8-1.3.2.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos8-1.3.2.tar",children:"Download"}),", ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos8",children:"Visit"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Ubuntu18.04 compilation image"}),(0,r.jsx)(n.td,{children:"tugraph-compile-ubuntu18.04-1.3.2.tar"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-ubuntu18.04-1.3.2.tar",children:"Download"})," , ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-ubuntu18.04",children:"Visit"})]})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["For the version update log, see: ",(0,r.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/blob/master/release/CHANGELOG_CN.md",children:"Link"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["If you don't know how to use installation packages and images, please refer to ",(0,r.jsx)(n.a,{href:"/tugraph-db/en/best-practices/selection",children:"Environment and Version Selection"}),"."]})]})}function l(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},137:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/files/index-90ee395bc1dca6015837e5ccb32c96e1.rst"},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var r=t(6540);const i={},h=r.createContext(i);function s(e){const n=r.useContext(h);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(h.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/86859d92.32727cbc.js b/assets/js/86859d92.32727cbc.js
deleted file mode 100644
index b669b49fa1..0000000000
--- a/assets/js/86859d92.32727cbc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3882],{1053:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>h,default:()=>o,frontMatter:()=>s,metadata:()=>a,toc:()=>u});var t=r(4848),i=r(8453);const s={},h="Guide",a={id:"en-US/source/guide",title:"Guide",description:"Here is the document map that helps users learn and use the TuGraph community version quickly.",source:"@site/../docs/en-US/source/1.guide.md",sourceDirName:"en-US/source",slug:"/en-US/source/guide",permalink:"/tugraph-db/en-US/source/guide",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",next:{title:"What is Graph",permalink:"/tugraph-db/en-US/source/introduction/what-is-graph"}},c={},u=[{value:"Quick Start",id:"quick-start",level:2},{value:"Development Guide",id:"development-guide",level:2},{value:"Community Contribution",id:"community-contribution",level:2},{value:"Main warehouse",id:"main-warehouse",level:2},{value:"Video Center",id:"video-center",level:2},{value:"TuGraph-Latest-Version",id:"tugraph-latest-version",level:2}];function d(e){const n={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"guide",children:"Guide"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"Here is the document map that helps users learn and use the TuGraph community version quickly."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Understand ",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/introduction/what-is-graph",children:"What is a Graph"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/introduction/scenarios",children:"The application scenarios of graph"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/introduction/what-is-tugraph",children:"What is TuGraph"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Quickly Install and deploy TuGraph:",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/installation&running/cloud-deployment",children:"Cloud Deployment"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/installation&running/docker-deployment",children:"Docker Deployment"}),"Rapid deployment TuGraph."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Quickly get started with DEMO:",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/quick-start/demo/movie",children:"Movie"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/quick-start/demo/wandering-earth",children:"The Wandering Earth"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/quick-start/demo/the-three-body",children:"Three Body"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/quick-start/demo/three-kingdoms",children:"Three Kingdoms"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["User Guide:",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/user-guide/tugraph-browser",children:"TuGraph Browser"}),",",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/user-guide/tugraph-browser-legacy",children:"TuGraph Browser Legacy"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"development-guide",children:"Development Guide"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Client Tools: ",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/client-tools/bolt-client",children:"Bolt Client"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["TuGraph Query Language:",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/query/cypher",children:"Cypher API"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Procedure And Algorithm:",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/olap&procedure/procedure/",children:"Procedure API (POG API)"}),"\u3001",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/olap&procedure/olap/tutorial",children:"OLAP API"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["C++/Python Procedure Interfaces:",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:r(137).A+"",children:"C++/Python Procedure API"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"community-contribution",children:"Community Contribution"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Before starting to contribute, you can learn ",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/contributor-manual/contributing",children:"how to contribute"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["If you want to understand the division of community roles, please visit ",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/contributor-manual/community-roles",children:"community roles"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"main-warehouse",children:"Main warehouse"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["TuGraph-DB repository: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db",children:"https://github.com/TuGraph-family/tugraph-db"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Visual interface: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db-browser",children:"https://github.com/TuGraph-family/tugraph-db-browser"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Java client: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db-client-java",children:"https://github.com/TuGraph-family/tugraph-db-client-java"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Simple test method based on twitter data: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/gdbms-microbenchmark",children:"https://github.com/TuGraph-family/gdbms-microbenchmark"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["Test method based on standard LDBC-SNB: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-snb-interactive",children:"https://github.com/TuGraph-family/tugraph-snb-interactive"})]}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:["TuGraph-Analytics repository: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-analytics",children:"https://github.com/TuGraph-family/tugraph-analytics"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"video-center",children:"Video Center"}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=2593741",children:"Get started quickly with TuGraph"})}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://space.bilibili.com/1196053065/channel/seriesdetail?sid=3009777",children:"TuGraph technology sharing collection"})}),"\n"]}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"https://www.bilibili.com/video/BV15U4y1r7AW/",children:"Understand graph calculation in 3 minutes"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"tugraph-latest-version",children:"TuGraph-Latest-Version"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Description"}),(0,t.jsx)(n.th,{children:"File"}),(0,t.jsx)(n.th,{children:"Link"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el7.x86_64.rpm",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.el8.x86_64.rpm",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-4.5.0-1.x86_64.deb"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-4.5.0-1.x86_64.deb",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos7-4.5.0.tar",children:"Download"}),", ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos7",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-centos8-4.5.0.tar",children:"Download"}),", ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-centos8",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-runtime-ubuntu18.04-4.5.0.tar",children:"Download"})," , ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-runtime-ubuntu18.04",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 mini runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el7.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el7.x86_64.rpm",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 mini runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.el8.x86_64.rpm"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.el8.x86_64.rpm",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 mini runtime package"}),(0,t.jsx)(n.td,{children:"tugraph-mini-4.5.0-1.x86_64.deb"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-4.5.0-1.x86_64.deb",children:"Download"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 mini runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-centos7-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos7-4.5.0.tar",children:"Download"})," , ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos7",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 mini runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-centos8-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-centos8-4.5.0.tar",children:"Download"})," , ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-centos8",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 mini runtime image"}),(0,t.jsx)(n.td,{children:"tugraph-mini-runtime-ubuntu18.04-4.5.0.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-4.5.0/tugraph-mini-runtime-ubuntu18.04-4.5.0.tar",children:"Download"}),", ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-mini-runtime-ubuntu18.04",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS7 compilation image"}),(0,t.jsx)(n.td,{children:"tugraph-compile-centos7-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos7-1.3.2.tar",children:"Download"}),", ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos7",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"CentOS8 compilation image"}),(0,t.jsx)(n.td,{children:"tugraph-compile-centos8-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-centos8-1.3.2.tar",children:"Download"}),", ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-centos8",children:"Visit"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ubuntu18.04 compilation image"}),(0,t.jsx)(n.td,{children:"tugraph-compile-ubuntu18.04-1.3.2.tar"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://tugraph-web.oss-cn-beijing.aliyuncs.com/tugraph/tugraph-docker-compile/tugraph-compile-ubuntu18.04-1.3.2.tar",children:"Download"})," , ",(0,t.jsx)(n.a,{href:"https://hub.docker.com/r/tugraph/tugraph-compile-ubuntu18.04",children:"Visit"})]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["For the version update log, see: ",(0,t.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/blob/master/release/CHANGELOG_CN.md",children:"Link"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["If you don't know how to use installation packages and images, please refer to ",(0,t.jsx)(n.a,{href:"/tugraph-db/en-US/source/best-practices/selection",children:"Environment and Version Selection"}),"."]})]})}function o(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},137:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/files/index-90ee395bc1dca6015837e5ccb32c96e1.rst"},8453:(e,n,r)=>{r.d(n,{R:()=>h,x:()=>a});var t=r(6540);const i={},s=t.createContext(i);function h(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:h(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8c80cb2e.7e5203db.js b/assets/js/8c80cb2e.7e5203db.js
deleted file mode 100644
index 4f5896882f..0000000000
--- a/assets/js/8c80cb2e.7e5203db.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7184],{4860:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>u,toc:()=>a});var r=n(4848),s=n(8453);const i={},o="\u5355\u5143\u6d4b\u8bd5",u={id:"zh-CN/source/quality/unit-testing",title:"\u5355\u5143\u6d4b\u8bd5",description:"\u8be5\u6587\u6863\u662fTuGraph\u7684\u5355\u5143\u6d4b\u8bd5\u6587\u6863",source:"@site/../docs/zh-CN/source/11.quality/1.unit-testing.md",sourceDirName:"zh-CN/source/11.quality",slug:"/zh-CN/source/quality/unit-testing",permalink:"/tugraph-db/zh-CN/source/quality/unit-testing",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u65e5\u5fd7\u4fe1\u606f",permalink:"/tugraph-db/zh-CN/source/permission/log"},next:{title:"\u96c6\u6210\u6d4b\u8bd5",permalink:"/tugraph-db/zh-CN/source/quality/integration-testing"}},c={},a=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2}];function l(t){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",...(0,s.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u5355\u5143\u6d4b\u8bd5",children:"\u5355\u5143\u6d4b\u8bd5"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u8be5\u6587\u6863\u662fTuGraph\u7684\u5355\u5143\u6d4b\u8bd5\u6587\u6863"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u5355\u5143\u6d4b\u8bd5\u91c7\u7528gtest\u6846\u67b6\uff0c\u53ef\u4ee5\u9009\u62e9\u4e00\u6b21\u8dd1\u5168\u90e8test\u6216\u8005\u5236\u5b9a\u67d0\u4e9btest\u3002"})]})}function d(t={}){const{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(l,{...t})}):l(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>u});var r=n(6540);const s={},i=r.createContext(s);function o(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function u(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:o(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8c80cb2e.9e7aec57.js b/assets/js/8c80cb2e.9e7aec57.js
new file mode 100644
index 0000000000..ccbc8d4c6f
--- /dev/null
+++ b/assets/js/8c80cb2e.9e7aec57.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7184],{4860:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var r=n(4848),i=n(8453);const s={},o="\u5355\u5143\u6d4b\u8bd5",u={id:"quality/unit-testing",title:"\u5355\u5143\u6d4b\u8bd5",description:"\u8be5\u6587\u6863\u662fTuGraph\u7684\u5355\u5143\u6d4b\u8bd5\u6587\u6863",source:"@site/../docs/zh-CN/source/11.quality/1.unit-testing.md",sourceDirName:"11.quality",slug:"/quality/unit-testing",permalink:"/tugraph-db/zh/quality/unit-testing",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u65e5\u5fd7\u4fe1\u606f",permalink:"/tugraph-db/zh/permission/log"},next:{title:"\u96c6\u6210\u6d4b\u8bd5",permalink:"/tugraph-db/zh/quality/integration-testing"}},a={},c=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2}];function l(t){const e={blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",...(0,i.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u5355\u5143\u6d4b\u8bd5",children:"\u5355\u5143\u6d4b\u8bd5"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u8be5\u6587\u6863\u662fTuGraph\u7684\u5355\u5143\u6d4b\u8bd5\u6587\u6863"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u5355\u5143\u6d4b\u8bd5\u91c7\u7528gtest\u6846\u67b6\uff0c\u53ef\u4ee5\u9009\u62e9\u4e00\u6b21\u8dd1\u5168\u90e8test\u6216\u8005\u5236\u5b9a\u67d0\u4e9btest\u3002"})]})}function d(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(l,{...t})}):l(t)}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>u});var r=n(6540);const i={},s=r.createContext(i);function o(t){const e=r.useContext(s);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function u(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),r.createElement(s.Provider,{value:e},t.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8e6640c6.49514d49.js b/assets/js/8e6640c6.49514d49.js
deleted file mode 100644
index cf5119a4c0..0000000000
--- a/assets/js/8e6640c6.49514d49.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2817],{2047:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var o=t(4848),n=t(8453);const s={},i="Rust Stored Procedures",a={id:"en-US/source/olap&procedure/procedure/Rust-procedure",title:"Rust Stored Procedures",description:"1. Introduction",source:"@site/../docs/en-US/source/9.olap&procedure/1.procedure/5.Rust-procedure.md",sourceDirName:"en-US/source/9.olap&procedure/1.procedure",slug:"/en-US/source/olap&procedure/procedure/Rust-procedure",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/Rust-procedure",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Traversal API",permalink:"/tugraph-db/en-US/source/olap&procedure/procedure/traversal"},next:{title:"Bootstrap program",permalink:"/tugraph-db/en-US/source/olap&procedure/olap/tutorial"}},u={},c=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. How to Use",id:"2-how-to-use",level:2},{value:"3. API Documentation",id:"3-api-documentation",level:2}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"rust-stored-procedures",children:"Rust Stored Procedures"})}),"\n",(0,o.jsx)(r.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,o.jsx)(r.p,{children:"Rust stored procedures currently only support v1 version. TuGraph supports plugins in any language that can be compiled into a dynamic library. Rust, as a rising star in system programming languages, has significant advantages in terms of safety, reliability, and ergonomics compared to C++."}),"\n",(0,o.jsxs)(r.p,{children:["We provide the Rust binding library for TuGraph to support calling lgrahp API in Rust. We also provide the ",(0,o.jsx)(r.a,{href:"https://crates.io/crates/tugraph-plugin-util",children:"tugraph-plugin-util"})," utility library to help simplify the process of writing Rust plugins."]}),"\n",(0,o.jsx)(r.h2,{id:"2-how-to-use",children:"2. How to Use"}),"\n",(0,o.jsx)(r.p,{children:"Using Rust stored procedures involves three steps:"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:["Compilation: Compile the Rust source code into a dynamic library (so file). We have prepared a comprehensive plugin development tutorial that covers everything from IDE plugin installation and environment setup to compilation. Please refer to the ",(0,o.jsx)(r.code,{children:"rust-tugraph-plugin-tutorial"})," for detailed instructions."]}),"\n",(0,o.jsxs)(r.li,{children:["Loading: Load the dynamic library (so file) into the server. This can be done through the REST or RPC interface, similar to the usage of C++ libraries. Please refer to the documentation for more details on the ",(0,o.jsx)(r.a,{href:"/tugraph-db/en-US/source/olap&procedure/procedure/",children:"Procedure v1 API"}),"."]}),"\n",(0,o.jsx)(r.li,{children:"Execution: Once the library is loaded, use it as you would with a C++ stored procedure. The process is the same and does not need further explanation."}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"3-api-documentation",children:"3. API Documentation"}),"\n",(0,o.jsxs)(r.p,{children:["In the Rust community, all code and documentation can be found on ",(0,o.jsx)(r.a,{href:"https://crates.io/crates/tugraph",children:(0,o.jsx)(r.code,{children:"crates.io"})})," and ",(0,o.jsx)(r.a,{href:"https://docs.rs/tugraph/latest/tugraph",children:(0,o.jsx)(r.code,{children:"docs.rs"})}),"."]})]})}function l(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>a});var o=t(6540);const n={},s=o.createContext(n);function i(e){const r=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(s.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8e6640c6.97eff1d8.js b/assets/js/8e6640c6.97eff1d8.js
new file mode 100644
index 0000000000..c5da5859bb
--- /dev/null
+++ b/assets/js/8e6640c6.97eff1d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[2817],{401:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var o=t(4848),n=t(8453);const s={},i="Rust Stored Procedures",a={id:"olap&procedure/procedure/Rust-procedure",title:"Rust Stored Procedures",description:"1. Introduction",source:"@site/../docs/en-US/source/9.olap&procedure/1.procedure/5.Rust-procedure.md",sourceDirName:"9.olap&procedure/1.procedure",slug:"/olap&procedure/procedure/Rust-procedure",permalink:"/tugraph-db/en/olap&procedure/procedure/Rust-procedure",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Traversal API",permalink:"/tugraph-db/en/olap&procedure/procedure/traversal"},next:{title:"Bootstrap program",permalink:"/tugraph-db/en/olap&procedure/olap/tutorial"}},u={},d=[{value:"1. Introduction",id:"1-introduction",level:2},{value:"2. How to Use",id:"2-how-to-use",level:2},{value:"3. API Documentation",id:"3-api-documentation",level:2}];function c(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"rust-stored-procedures",children:"Rust Stored Procedures"})}),"\n",(0,o.jsx)(r.h2,{id:"1-introduction",children:"1. Introduction"}),"\n",(0,o.jsx)(r.p,{children:"Rust stored procedures currently only support v1 version. TuGraph supports plugins in any language that can be compiled into a dynamic library. Rust, as a rising star in system programming languages, has significant advantages in terms of safety, reliability, and ergonomics compared to C++."}),"\n",(0,o.jsxs)(r.p,{children:["We provide the Rust binding library for TuGraph to support calling lgrahp API in Rust. We also provide the ",(0,o.jsx)(r.a,{href:"https://crates.io/crates/tugraph-plugin-util",children:"tugraph-plugin-util"})," utility library to help simplify the process of writing Rust plugins."]}),"\n",(0,o.jsx)(r.h2,{id:"2-how-to-use",children:"2. How to Use"}),"\n",(0,o.jsx)(r.p,{children:"Using Rust stored procedures involves three steps:"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:["Compilation: Compile the Rust source code into a dynamic library (so file). We have prepared a comprehensive plugin development tutorial that covers everything from IDE plugin installation and environment setup to compilation. Please refer to the ",(0,o.jsx)(r.code,{children:"rust-tugraph-plugin-tutorial"})," for detailed instructions."]}),"\n",(0,o.jsxs)(r.li,{children:["Loading: Load the dynamic library (so file) into the server. This can be done through the REST or RPC interface, similar to the usage of C++ libraries. Please refer to the documentation for more details on the ",(0,o.jsx)(r.a,{href:"/tugraph-db/en/olap&procedure/procedure/",children:"Procedure v1 API"}),"."]}),"\n",(0,o.jsx)(r.li,{children:"Execution: Once the library is loaded, use it as you would with a C++ stored procedure. The process is the same and does not need further explanation."}),"\n"]}),"\n",(0,o.jsx)(r.h2,{id:"3-api-documentation",children:"3. API Documentation"}),"\n",(0,o.jsxs)(r.p,{children:["In the Rust community, all code and documentation can be found on ",(0,o.jsx)(r.a,{href:"https://crates.io/crates/tugraph",children:(0,o.jsx)(r.code,{children:"crates.io"})})," and ",(0,o.jsx)(r.a,{href:"https://docs.rs/tugraph/latest/tugraph",children:(0,o.jsx)(r.code,{children:"docs.rs"})}),"."]})]})}function l(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>i,x:()=>a});var o=t(6540);const n={},s=o.createContext(n);function i(e){const r=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(s.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8f17638f.711047e8.js b/assets/js/8f17638f.711047e8.js
deleted file mode 100644
index c1253428c3..0000000000
--- a/assets/js/8f17638f.711047e8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[178],{7682:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>t,default:()=>h,frontMatter:()=>c,metadata:()=>o,toc:()=>a});var d=r(4848),s=r(8453);const c={},t="Vector index",o={id:"zh-CN/source/query/vector_index",title:"Vector index",description:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",source:"@site/../docs/zh-CN/source/8.query/3.vector_index.md",sourceDirName:"zh-CN/source/8.query",slug:"/zh-CN/source/query/vector_index",permalink:"/tugraph-db/zh-CN/source/query/vector_index",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"ISO GQL",permalink:"/tugraph-db/zh-CN/source/query/gql"},next:{title:"Procedure API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/procedure/"}},i={},a=[{value:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",id:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",level:2},{value:"\u5411\u91cf\u67e5\u8be2",id:"\u5411\u91cf\u67e5\u8be2",level:2},{value:"KnnSearch",id:"knnsearch",level:3},{value:"RangeSearch",id:"rangesearch",level:3}];function l(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"vector-index",children:"Vector index"})}),"\n",(0,d.jsx)(n.h2,{id:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",children:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15"}),"\n",(0,d.jsxs)(n.p,{children:["\u5982\u4e0bjson\u5b9a\u4e49\u4e86\u4e00\u4e2a\u70b9\u7c7b\u578b\uff0c\u540d\u5b57\u662f",(0,d.jsx)(n.code,{children:"person"}),", \u91cc\u9762\u6709\u4e2a\u5b57\u6bb5\u662f",(0,d.jsx)(n.code,{children:"embedding"}),"\uff0c\u7c7b\u578b\u662f",(0,d.jsx)(n.code,{children:"FLOAT_VECTOR"}),"\uff0c\u7528\u6765\u5b58\u50a8\u5411\u91cf\u6570\u636e\u3002\n\u76ee\u524d\u5411\u91cf\u6570\u636e\u53ea\u80fd\u5728\u70b9\u4e0a\u521b\u5efa\u3002"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n\t"label": "person",\n\t"primary": "id",\n\t"type": "VERTEX",\n\t"properties": [{\n\t\t"name": "id",\n\t\t"type": "INT32",\n\t\t"optional": false\n\t}, {\n\t\t"name": "age",\n\t\t"type": "INT32",\n\t\t"optional": false\n\t}, {\n\t\t"name": "embedding",\n\t\t"type": "FLOAT_VECTOR",\n\t\t"optional": false\n\t}]\n}\n\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u628a\u4e0a\u9762\u8fd9\u4e2ajson\u5e8f\u5217\u5316\u6210\u5b57\u7b26\u4e32\uff0c\u4f5c\u4e3a\u53c2\u6570\u4f20\u5165\uff0c\u5efa\u8bae\u4f7f\u7528\u9a71\u52a8\u7684\u53c2\u6570\u5316\u7279\u6027\uff0c\u907f\u514d\u81ea\u5df1\u62fc\u63a5\u8bed\u53e5\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.createVertexLabelByJson($json_data)\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u7ed9",(0,d.jsx)(n.code,{children:"embedding"}),"\u5b57\u6bb5\u6dfb\u52a0\u5411\u91cf\u7d22\u5f15\uff0c\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f\u4e2amap\uff0c\u91cc\u9762\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e9b\u5411\u91cf\u7d22\u5f15\u7684\u914d\u7f6e\u53c2\u6570\uff0c\u5982\u4e0b\uff0c",(0,d.jsx)(n.code,{children:"dimension"}),"\u8bbe\u7f6e\u5411\u91cf\u7ef4\u5ea6\u662f4"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.addVertexVectorIndex('person','embedding', {dimension: 4});\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u518d\u5b9a\u4e49\u4e00\u4e2a\u8fb9\uff0c\u7528\u6765\u6d4b\u8bd5\uff0c\u5982\u4e0bjson\u5b9a\u4e49\u4e86\u4e00\u4e2a\u8fb9\u7c7b\u578b\uff0c\u540d\u5b57\u662f",(0,d.jsx)(n.code,{children:"like"}),"\u3002"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n "label": "like",\n "type": "EDGE",\n "constraints": [\n ["person", "person"]\n ],\n "properties": []\n}\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u628a\u4e0a\u9762\u8fd9\u4e2ajson\u5e8f\u5217\u5316\u6210\u5b57\u7b26\u4e32\uff0c\u4f5c\u4e3a\u53c2\u6570\u4f20\u5165\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.createEdgeLabelByJson($json_data)\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u5199\u5165\u51e0\u6761\u6d4b\u8bd5\u6570\u636e"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CREATE (n1:person {id:1, age:10, embedding: [1.0,1.0,1.0,1.0]})\nCREATE (n2:person {id:2, age:20, embedding: [2.0,2.0,2.0,2.0]})\nCREATE (n3:person {id:3, age:30, embedding: [3.0,3.0,3.0,3.0]})\nCREATE (n1)-[r:like]->(n2),\n (n2)-[r:like]->(n3),\n (n3)-[r:like]->(n1);\n"})}),"\n",(0,d.jsx)(n.h2,{id:"\u5411\u91cf\u67e5\u8be2",children:"\u5411\u91cf\u67e5\u8be2"}),"\n",(0,d.jsx)(n.h3,{id:"knnsearch",children:"KnnSearch"}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u7b2c\u56db\u4e2a\u53c2\u6570\u662f\u4e2amap\uff0c\u91cc\u9762\u53ef\u4ee5\u6307\u5b9a\u4e00\u4e9b\u5411\u91cf\u641c\u7d22\u7684\u53c2\u6570\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding', [1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node return node\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u8fd4\u56de",(0,d.jsx)(n.code,{children:"age"}),"\u5c0f\u4e8e30\u7684"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding',[1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node where node.age < 30 return node\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u8fd4\u56deage\u5c0f\u4e8e30\u7684\u70b9\uff0c\u7136\u540e\u518d\u67e5\u8fd9\u4e9b\u70b9\u7684\u4e00\u5ea6\u90bb\u5c45\u662f\u8c01\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding',[1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node where node.age < 30 with node as p\nmatch(p)-[r]->(m) return m\n"})}),"\n",(0,d.jsx)(n.h3,{id:"rangesearch",children:"RangeSearch"}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u8ddd\u79bb\u5c0f\u4e8e10\u7684\u3001age\u5c0f\u4e8e30\u7684\u70b9\uff0c\u7136\u540e\u518d\u67e5\u8fd9\u4e9b\u70b9\u7684\u4e00\u5ea6\u90bb\u5c45\u662f\u8c01\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorRangeSearch('person','embedding',[1.0,2.0,3.0,4.0], {radius:10.0, hnsw_ef_search:10})\nyield node where node.age < 30 with node as p\nmatch(p)-[r]->(m) return m\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>o});var d=r(6540);const s={},c=d.createContext(s);function t(e){const n=d.useContext(c);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),d.createElement(c.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8f17638f.7592c693.js b/assets/js/8f17638f.7592c693.js
new file mode 100644
index 0000000000..c2af35a3a0
--- /dev/null
+++ b/assets/js/8f17638f.7592c693.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[178],{7682:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>a});var d=r(4848),t=r(8453);const s={},c="Vector index",i={id:"query/vector_index",title:"Vector index",description:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",source:"@site/../docs/zh-CN/source/8.query/3.vector_index.md",sourceDirName:"8.query",slug:"/query/vector_index",permalink:"/tugraph-db/zh/query/vector_index",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"ISO GQL",permalink:"/tugraph-db/zh/query/gql"},next:{title:"Procedure API",permalink:"/tugraph-db/zh/olap&procedure/procedure/"}},o={},a=[{value:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",id:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",level:2},{value:"\u5411\u91cf\u67e5\u8be2",id:"\u5411\u91cf\u67e5\u8be2",level:2},{value:"KnnSearch",id:"knnsearch",level:3},{value:"RangeSearch",id:"rangesearch",level:3}];function l(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"vector-index",children:"Vector index"})}),"\n",(0,d.jsx)(n.h2,{id:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15",children:"\u521b\u5efa\u5411\u91cf\u7d22\u5f15"}),"\n",(0,d.jsxs)(n.p,{children:["\u5982\u4e0bjson\u5b9a\u4e49\u4e86\u4e00\u4e2a\u70b9\u7c7b\u578b\uff0c\u540d\u5b57\u662f",(0,d.jsx)(n.code,{children:"person"}),", \u91cc\u9762\u6709\u4e2a\u5b57\u6bb5\u662f",(0,d.jsx)(n.code,{children:"embedding"}),"\uff0c\u7c7b\u578b\u662f",(0,d.jsx)(n.code,{children:"FLOAT_VECTOR"}),"\uff0c\u7528\u6765\u5b58\u50a8\u5411\u91cf\u6570\u636e\u3002\n\u76ee\u524d\u5411\u91cf\u6570\u636e\u53ea\u80fd\u5728\u70b9\u4e0a\u521b\u5efa\u3002"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n\t"label": "person",\n\t"primary": "id",\n\t"type": "VERTEX",\n\t"properties": [{\n\t\t"name": "id",\n\t\t"type": "INT32",\n\t\t"optional": false\n\t}, {\n\t\t"name": "age",\n\t\t"type": "INT32",\n\t\t"optional": false\n\t}, {\n\t\t"name": "embedding",\n\t\t"type": "FLOAT_VECTOR",\n\t\t"optional": false\n\t}]\n}\n\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u628a\u4e0a\u9762\u8fd9\u4e2ajson\u5e8f\u5217\u5316\u6210\u5b57\u7b26\u4e32\uff0c\u4f5c\u4e3a\u53c2\u6570\u4f20\u5165\uff0c\u5efa\u8bae\u4f7f\u7528\u9a71\u52a8\u7684\u53c2\u6570\u5316\u7279\u6027\uff0c\u907f\u514d\u81ea\u5df1\u62fc\u63a5\u8bed\u53e5\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.createVertexLabelByJson($json_data)\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u7ed9",(0,d.jsx)(n.code,{children:"embedding"}),"\u5b57\u6bb5\u6dfb\u52a0\u5411\u91cf\u7d22\u5f15\uff0c\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f\u4e2amap\uff0c\u91cc\u9762\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e9b\u5411\u91cf\u7d22\u5f15\u7684\u914d\u7f6e\u53c2\u6570\uff0c\u5982\u4e0b\uff0c",(0,d.jsx)(n.code,{children:"dimension"}),"\u8bbe\u7f6e\u5411\u91cf\u7ef4\u5ea6\u662f4"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.addVertexVectorIndex('person','embedding', {dimension: 4});\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u518d\u5b9a\u4e49\u4e00\u4e2a\u8fb9\uff0c\u7528\u6765\u6d4b\u8bd5\uff0c\u5982\u4e0bjson\u5b9a\u4e49\u4e86\u4e00\u4e2a\u8fb9\u7c7b\u578b\uff0c\u540d\u5b57\u662f",(0,d.jsx)(n.code,{children:"like"}),"\u3002"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n "label": "like",\n "type": "EDGE",\n "constraints": [\n ["person", "person"]\n ],\n "properties": []\n}\n'})}),"\n",(0,d.jsx)(n.p,{children:"\u628a\u4e0a\u9762\u8fd9\u4e2ajson\u5e8f\u5217\u5316\u6210\u5b57\u7b26\u4e32\uff0c\u4f5c\u4e3a\u53c2\u6570\u4f20\u5165\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.createEdgeLabelByJson($json_data)\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u5199\u5165\u51e0\u6761\u6d4b\u8bd5\u6570\u636e"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CREATE (n1:person {id:1, age:10, embedding: [1.0,1.0,1.0,1.0]})\nCREATE (n2:person {id:2, age:20, embedding: [2.0,2.0,2.0,2.0]})\nCREATE (n3:person {id:3, age:30, embedding: [3.0,3.0,3.0,3.0]})\nCREATE (n1)-[r:like]->(n2),\n (n2)-[r:like]->(n3),\n (n3)-[r:like]->(n1);\n"})}),"\n",(0,d.jsx)(n.h2,{id:"\u5411\u91cf\u67e5\u8be2",children:"\u5411\u91cf\u67e5\u8be2"}),"\n",(0,d.jsx)(n.h3,{id:"knnsearch",children:"KnnSearch"}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u7b2c\u56db\u4e2a\u53c2\u6570\u662f\u4e2amap\uff0c\u91cc\u9762\u53ef\u4ee5\u6307\u5b9a\u4e00\u4e9b\u5411\u91cf\u641c\u7d22\u7684\u53c2\u6570\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding', [1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node return node\n"})}),"\n",(0,d.jsxs)(n.p,{children:["\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u8fd4\u56de",(0,d.jsx)(n.code,{children:"age"}),"\u5c0f\u4e8e30\u7684"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding',[1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node where node.age < 30 return node\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u70b9\uff0c\u8fd4\u56deage\u5c0f\u4e8e30\u7684\u70b9\uff0c\u7136\u540e\u518d\u67e5\u8fd9\u4e9b\u70b9\u7684\u4e00\u5ea6\u90bb\u5c45\u662f\u8c01\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorKnnSearch('person','embedding',[1.0,2.0,3.0,4.0], {top_k:2, hnsw_ef_search:10})\nyield node where node.age < 30 with node as p\nmatch(p)-[r]->(m) return m\n"})}),"\n",(0,d.jsx)(n.h3,{id:"rangesearch",children:"RangeSearch"}),"\n",(0,d.jsx)(n.p,{children:"\u6839\u636e\u5411\u91cf\u641c\u7d22\u51fa\u8ddd\u79bb\u5c0f\u4e8e10\u7684\u3001age\u5c0f\u4e8e30\u7684\u70b9\uff0c\u7136\u540e\u518d\u67e5\u8fd9\u4e9b\u70b9\u7684\u4e00\u5ea6\u90bb\u5c45\u662f\u8c01\u3002"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"CALL db.vertexVectorRangeSearch('person','embedding',[1.0,2.0,3.0,4.0], {radius:10.0, hnsw_ef_search:10})\nyield node where node.age < 30 with node as p\nmatch(p)-[r]->(m) return m\n"})})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>i});var d=r(6540);const t={},s=d.createContext(t);function c(e){const n=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),d.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8fce0df1.cb54f709.js b/assets/js/8fce0df1.cb54f709.js
deleted file mode 100644
index 748237ebc9..0000000000
--- a/assets/js/8fce0df1.cb54f709.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3590],{6284:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(4848),a=n(8453);const i={},o="Multi Level Interfaces",s={id:"en-US/source/introduction/characteristics/multi-level-Interfaces",title:"Multi Level Interfaces",description:"This document mainly introduces the design concept of TuGraph's multi-level interfaces.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/2.multi-level-Interfaces.md",sourceDirName:"en-US/source/2.introduction/5.characteristics",slug:"/en-US/source/introduction/characteristics/multi-level-Interfaces",permalink:"/tugraph-db/en-US/source/introduction/characteristics/multi-level-Interfaces",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Performance Oriented",permalink:"/tugraph-db/en-US/source/introduction/characteristics/performance-oriented"},next:{title:"HTAP",permalink:"/tugraph-db/en-US/source/introduction/characteristics/htap"}},c={},l=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Client Interface",id:"2client-interface",level:3},{value:"3.Server Interface",id:"3server-interface",level:3}];function d(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"multi-level-interfaces",children:"Multi Level Interfaces"})}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"This document mainly introduces the design concept of TuGraph's multi-level interfaces."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,r.jsx)(t.p,{children:"The multi-level interface is a balance between usability and high performance that TuGraph has designed to meet a variety of use cases. For example, Cypher, a declarative graph query language, can abstract away the implementation details of a graph database and express queries based on the graph model. However, Cypher's high-level descriptions cannot be efficiently translated into low-level execution, so TuGraph provides a procedural language, Procedure API, to achieve optimal database performance."}),"\n",(0,r.jsx)(t.p,{children:"Interfaces can be roughly divided into client interfaces and server interfaces. Most operations are performed on the server, and the client only does data encapsulation and parsing. The client and server are connected through a network, and TuGraph supports both flexible short-connection REST protocol and more efficient long-connection RPC protocol, which can be selected according to different business scenarios."}),"\n",(0,r.jsx)(t.p,{children:"The server interfaces are all at the calculation layer and are logically separated from the graph data storage by a Core API layer."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Multi Level Interfaces",src:n(6239).A+"",width:"742",height:"476"})}),"\n",(0,r.jsx)(t.h3,{id:"2client-interface",children:"2.Client Interface"}),"\n",(0,r.jsx)(t.p,{children:"The client interface refers to the interface executed on the client and is typically used for integration into software applications. TuGraph's client interface is relatively simple, including login/logout, data import/export, stored procedure loading and calling, and Cypher operations. Cypher integrates most of the functions, including data operations, graph model operations, operations and account management."}),"\n",(0,r.jsx)(t.p,{children:"Since the parameters and return values of Cypher are strings, JAVA OGM is a structured wrapper for Cypher, meaning that query results can be encapsulated into a typed object for ease of use."}),"\n",(0,r.jsx)(t.h3,{id:"3server-interface",children:"3.Server Interface"}),"\n",(0,r.jsx)(t.p,{children:"The server interface includes Cypher, Procedure API, OLAP API, and GNN PI, which provide services for graph transaction engines, graph analysis engines, and graph neural network engines. The characteristics of each interface are explained in detail below."}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Cypher"})," is an abstract description of query logic that is independent of execution logic and is more user-friendly for graph database applications, similar to the SQL language of relational databases. TuGraph's Cypher language mainly follows the OpenCypher query standard open-sourced by Neo4j and extends auxiliary functions such as operations and maintenance management. Descriptive graph query language will become the main data operation method for graph databases, but generating the optimal execution plan between description and execution still requires a long way to go in both academia and industry."]}),"\n"]}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Procedure API"})," is designed to bridge the gap between descriptive graph query language and optimal performance. TuGraph's Procedure API provides a simple wrapper on top of the Core API, which maximizes the storage's performance efficiency and is the upper limit of Cypher optimization performance. Python Procedure API is a cross-language wrapper on top of C++ Procedure API, but the copying of values during translation may result in some performance loss, and its advantage lies mainly in the ease of use of the Python language. The traversal API is a parallel-executing Procedure interface that is more similar to set operations in terms of description, such as expanding all outgoing neighbors of a point set to obtain a new point set."]}),"\n"]}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"OLAP API"}),' belongs to the category of "graph computing systems" and exports snapshots of graph data from storage that supports insert, update, delete, and query operations to support read-only complex graph analysis in a more compact data storage format. OLAP API encapsulates data structures that support high-concurrency execution, including Vector, Bitmap, and CSR-based graph snapshot data structures, and provides a set of concurrent fast point-edge operation frameworks. After the graph analysis task is completed, the data can be written back to the graph database through the interface.']}),"\n"]}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"GNN API"})," mainly provides the interfaces needed for graph neural network applications and can be integrated with machine learning frameworks such as PyTorch. TuGraph's GNN PI mainly integrates DGL and completes the entire process from graph storage to graph neural network application in the Python language environment."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Except for Cypher's interpretive execution, all other server interfaces are compiled and executed, meaning that the corresponding code needs to be sent to the server and compiled (which may take some time) before execution on the server. Therefore, it is usually necessary to load the program first, then find it in the list of loaded applications, and execute it after passing in the input parameters."})]})}function h(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},6239:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/multi-level-Interfaces-en-78e3e2c8e270a26703bede09a6377d7e.png"},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var r=n(6540);const a={},i=r.createContext(a);function o(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/8fce0df1.db80b012.js b/assets/js/8fce0df1.db80b012.js
new file mode 100644
index 0000000000..213e96d5fb
--- /dev/null
+++ b/assets/js/8fce0df1.db80b012.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[3590],{9658:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var a=n(4848),r=n(8453);const i={},o="Multi Level Interfaces",s={id:"introduction/characteristics/multi-level-Interfaces",title:"Multi Level Interfaces",description:"This document mainly introduces the design concept of TuGraph's multi-level interfaces.",source:"@site/../docs/en-US/source/2.introduction/5.characteristics/2.multi-level-Interfaces.md",sourceDirName:"2.introduction/5.characteristics",slug:"/introduction/characteristics/multi-level-Interfaces",permalink:"/tugraph-db/en/introduction/characteristics/multi-level-Interfaces",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Performance Oriented",permalink:"/tugraph-db/en/introduction/characteristics/performance-oriented"},next:{title:"HTAP",permalink:"/tugraph-db/en/introduction/characteristics/htap"}},c={},l=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Client Interface",id:"2client-interface",level:3},{value:"3.Server Interface",id:"3server-interface",level:3}];function d(e){const t={blockquote:"blockquote",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"multi-level-interfaces",children:"Multi Level Interfaces"})}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsx)(t.p,{children:"This document mainly introduces the design concept of TuGraph's multi-level interfaces."}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,a.jsx)(t.p,{children:"The multi-level interface is a balance between usability and high performance that TuGraph has designed to meet a variety of use cases. For example, Cypher, a declarative graph query language, can abstract away the implementation details of a graph database and express queries based on the graph model. However, Cypher's high-level descriptions cannot be efficiently translated into low-level execution, so TuGraph provides a procedural language, Procedure API, to achieve optimal database performance."}),"\n",(0,a.jsx)(t.p,{children:"Interfaces can be roughly divided into client interfaces and server interfaces. Most operations are performed on the server, and the client only does data encapsulation and parsing. The client and server are connected through a network, and TuGraph supports both flexible short-connection REST protocol and more efficient long-connection RPC protocol, which can be selected according to different business scenarios."}),"\n",(0,a.jsx)(t.p,{children:"The server interfaces are all at the calculation layer and are logically separated from the graph data storage by a Core API layer."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"Multi Level Interfaces",src:n(6239).A+"",width:"742",height:"476"})}),"\n",(0,a.jsx)(t.h3,{id:"2client-interface",children:"2.Client Interface"}),"\n",(0,a.jsx)(t.p,{children:"The client interface refers to the interface executed on the client and is typically used for integration into software applications. TuGraph's client interface is relatively simple, including login/logout, data import/export, stored procedure loading and calling, and Cypher operations. Cypher integrates most of the functions, including data operations, graph model operations, operations and account management."}),"\n",(0,a.jsx)(t.p,{children:"Since the parameters and return values of Cypher are strings, JAVA OGM is a structured wrapper for Cypher, meaning that query results can be encapsulated into a typed object for ease of use."}),"\n",(0,a.jsx)(t.h3,{id:"3server-interface",children:"3.Server Interface"}),"\n",(0,a.jsx)(t.p,{children:"The server interface includes Cypher, Procedure API, OLAP API, and GNN PI, which provide services for graph transaction engines, graph analysis engines, and graph neural network engines. The characteristics of each interface are explained in detail below."}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Cypher"})," is an abstract description of query logic that is independent of execution logic and is more user-friendly for graph database applications, similar to the SQL language of relational databases. TuGraph's Cypher language mainly follows the OpenCypher query standard open-sourced by Neo4j and extends auxiliary functions such as operations and maintenance management. Descriptive graph query language will become the main data operation method for graph databases, but generating the optimal execution plan between description and execution still requires a long way to go in both academia and industry."]}),"\n"]}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Procedure API"})," is designed to bridge the gap between descriptive graph query language and optimal performance. TuGraph's Procedure API provides a simple wrapper on top of the Core API, which maximizes the storage's performance efficiency and is the upper limit of Cypher optimization performance. Python Procedure API is a cross-language wrapper on top of C++ Procedure API, but the copying of values during translation may result in some performance loss, and its advantage lies mainly in the ease of use of the Python language. The traversal API is a parallel-executing Procedure interface that is more similar to set operations in terms of description, such as expanding all outgoing neighbors of a point set to obtain a new point set."]}),"\n"]}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"OLAP API"}),' belongs to the category of "graph computing systems" and exports snapshots of graph data from storage that supports insert, update, delete, and query operations to support read-only complex graph analysis in a more compact data storage format. OLAP API encapsulates data structures that support high-concurrency execution, including Vector, Bitmap, and CSR-based graph snapshot data structures, and provides a set of concurrent fast point-edge operation frameworks. After the graph analysis task is completed, the data can be written back to the graph database through the interface.']}),"\n"]}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"GNN API"})," mainly provides the interfaces needed for graph neural network applications and can be integrated with machine learning frameworks such as PyTorch. TuGraph's GNN PI mainly integrates DGL and completes the entire process from graph storage to graph neural network application in the Python language environment."]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Except for Cypher's interpretive execution, all other server interfaces are compiled and executed, meaning that the corresponding code needs to be sent to the server and compiled (which may take some time) before execution on the server. Therefore, it is usually necessary to load the program first, then find it in the list of loaded applications, and execute it after passing in the input parameters."})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},6239:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/multi-level-Interfaces-en-78e3e2c8e270a26703bede09a6377d7e.png"},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var a=n(6540);const r={},i=a.createContext(r);function o(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/90892322.123fe8f7.js b/assets/js/90892322.123fe8f7.js
deleted file mode 100644
index 9bf8bf3b00..0000000000
--- a/assets/js/90892322.123fe8f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9704],{1799:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=r(4848),t=r(8453);const o={},i="Bolt\u5ba2\u6237\u7aef",a={id:"zh-CN/source/client-tools/bolt-client",title:"Bolt\u5ba2\u6237\u7aef",description:"TuGraph\u76ee\u524d\u517c\u5bb9\u4e86Neo4j\u7684Bolt\u534f\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Neo4j\u7684\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/5.bolt-client.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/bolt-client",permalink:"/tugraph-db/zh-CN/source/client-tools/bolt-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph-OGM",permalink:"/tugraph-db/zh-CN/source/client-tools/tugraph-ogm"},next:{title:"TuGraph console client",permalink:"/tugraph-db/zh-CN/source/client-tools/bolt-console-client"}},l={},d=[{value:"\u5f00\u542fBolt\u7aef\u53e3",id:"\u5f00\u542fbolt\u7aef\u53e3",level:2},{value:"\u4f7f\u7528\u793a\u4f8b",id:"\u4f7f\u7528\u793a\u4f8b",level:2},{value:"Neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",id:"neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",level:2},{value:"\u5ba2\u6237\u7aef\u793a\u4f8b",id:"\u5ba2\u6237\u7aef\u793a\u4f8b",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"bolt\u5ba2\u6237\u7aef",children:"Bolt\u5ba2\u6237\u7aef"})}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u517c\u5bb9\u4e86Neo4j\u7684Bolt\u534f\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Neo4j\u7684\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u5f00\u542fbolt\u7aef\u53e3",children:"\u5f00\u542fBolt\u7aef\u53e3"}),"\n",(0,s.jsxs)(n.p,{children:["Bolt\u7aef\u53e3\u662f\u9ed8\u8ba4\u5f00\u542f\u7684\uff0c\u9ed8\u8ba4\u7aef\u53e3\u662f7687\u3002\u5982\u679c\u9700\u8981\u4fee\u6539\u7aef\u53e3\uff0c\u8bf7\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u81ea\u884c\u4fee\u6539\u3002\u57fa\u4e8edocker\u65b9\u5f0f\u90e8\u7f72\u7684\u670d\u52a1\uff0c\u914d\u7f6e\u6587\u4ef6\u5728\u5bb9\u5668\u5185 ",(0,s.jsx)(n.code,{children:"/usr/local/etc/lgraph.json"}),"\u6587\u4ef6\u4e2d\uff1b\u5982\u679c\u662f\u7528rpm\u5305\u90e8\u7f72\u7684\u670d\u52a1\uff0c\u914d\u7f6e\u6587\u4ef6\u5728\u670d\u52a1\u5668\u7684",(0,s.jsx)(n.code,{children:"/usr/local/etc/lgraph.json"}),"\u3002 \u4fee\u6539\u7aef\u53e3\u540e\u4e3a\u4e86\u4f7f\u7aef\u53e3\u751f\u6548\uff0c\u9700\u8981\u91cd\u542f\u670d\u52a1\uff0c\u91cd\u542f\u670d\u52a1\u7684\u5177\u4f53\u64cd\u4f5c\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c"}),"\u3002\u53e6\u5916\uff0c\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u8be6\u7ec6\u914d\u7f6e\u9879\uff0c\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c"}),"\u4e2d\u7684\u670d\u52a1\u914d\u7f6e\u7ae0\u8282\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"\u4f7f\u7528\u793a\u4f8b",children:"\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,s.jsx)(n.p,{children:"\u6dfb\u52a0Maven\u4f9d\u8d56"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n org.neo4j.driver \n neo4j-java-driver \n 4.4.2 \n \n"})}),"\n",(0,s.jsx)(n.p,{children:"Client\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:' Driver driver = GraphDatabase.driver("bolt://ip:port", AuthTokens.basic("admin", "73@TuGraph"));\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5e38\u7528\u8bed\u53e5"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:' //\u901a\u8fc7 driver \u5bf9\u8c61\u521b\u5efa\u4e00\u4e2a Session\uff0c\u8bbe\u7f6e\u4f1a\u8bdd\u8fde\u63a5\u5230\u7279\u5b9a\u7684\u6570\u636e\u5e93\uff0c\u7528\u4e8e\u6267\u884cCypher\u8bed\u53e5\n Session session = driver.session(SessionConfig.forDatabase("default"));\n //\u6e05\u7a7a\u56fe\u9879\u76ee\uff0c\u8bf7\u4e0d\u8981\u8f7b\u6613\u5c1d\u8bd5\uff0c\u5b83\u4f1a\u6e05\u7a7a\u4f60\u9009\u4e2d\u7684\u56fe\u9879\u76ee\u7684\u6a21\u578b\u4ee5\u53ca\u6570\u636e\n session.run("CALL db.dropDB()");\n //\u521b\u5efa\u70b9\u6a21\u578b\n session.run("CALL db.createVertexLabel(\'person\', \'id\' , \'id\' ,INT32, false, \'name\' ,STRING, false)");\n //\u521b\u5efa\u8fb9\u6a21\u578b\n session.run("CALL db.createEdgeLabel(\'is_friend\',\'[[\\"person\\",\\"person\\"]]\')");\n //\u521b\u5efa\u7d22\u5f15\n session.run("CALL db.addIndex(\\"person\\", \\"name\\", false)");\n //\u63d2\u5165\u70b9\u6570\u636e\n session.run("create (n1:person {name:\'jack\',id:1}), (n2:person {name:\'lucy\',id:2})");\n //\u63d2\u5165\u8fb9\u6570\u636e\n session.run("match (n1:person {id:1}), (n2:person {id:2}) create (n1)-[r:is_friend]->(n2)");\n //\u67e5\u8be2\u70b9\u548c\u8fb9\n Result res = session.run("match (n)-[r]->(m) return n,r,m");\n //Parameterized Query\n String cypherQuery = "MATCH (n1:person {id:$id})-[r]-(n2:person {name:$name}) RETURN n1, r, n2";\n Result result1 = session.run(cypherQuery, parameters("id", 1, "name", "lucy"));\n while (result1.hasNext()) {\n Record record = result1.next();\n System.out.println("n1: " + record.get("n1").asMap());\n System.out.println("r: " + record.get("r").asMap());\n System.out.println("n2: " + record.get("n2").asMap());\n }\n //\u5220\u9664\u70b9\u6570\u636e\n session.run("match (n1:person {id:1}) delete n1");\n //\u5220\u9664\u8fb9\u6570\u636e\n session.run("match (n1:person {id:1})-[r]-(n2:person{id:2}) delete r");\n //\u5220\u9664\u8fb9\u6a21\u578b\n session.run("CALL db.deleteLabel(\'edge\', \'is_friend\')");\n //\u5220\u9664\u70b9\u6a21\u578b\n session.run("CALL db.deleteLabel(\'vertex\', \'person\')");\n'})}),"\n",(0,s.jsxs)(n.p,{children:["\u8be6\u7ec6Cypher\u548c\u5b58\u50a8\u8fc7\u7a0b\u7684\u4f7f\u7528\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../8.query/1.cypher.md",children:"Cypher"})]}),"\n",(0,s.jsx)(n.h2,{id:"neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",children:"Neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524d\uff0c\u6211\u4eec\u7684\u7cfb\u7edf\u5c1a\u672a\u5168\u9762\u517c\u5bb9Neo4j Bolt\u534f\u8bae\u7684\u6240\u6709\u9ad8\u7ea7\u7279\u6027\u3002\u7279\u522b\u5730\uff0c\u5bf9\u4e8eNeo4j\u5ba2\u6237\u7aef\u6240\u5177\u5907\u7684\u5373\u65f6\u4e8b\u52a1\u5904\u7406\u529f\u80fd\u53ca\u5f31schema\u7075\u6d3b\u6027\u8fd9\u4e24\u9879\u72ec\u7279\u80fd\u529b\uff0c\u5f53\u524d\u5c1a\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u56e0\u6b64\uff0c\u5728\u91c7\u7528\u5ba2\u6237\u7aef\u8fdb\u884c\u64cd\u4f5c\u65f6\uff0c\u8bf7\u52a1\u5fc5\u7559\u610f\u89c4\u907f\u6d89\u53ca\u6b64\u7c7b\u7279\u6027\u7684\u64cd\u4f5c\uff0c\u4ee5\u786e\u4fdd\u5e94\u7528\u7684\u987a\u7545\u8fd0\u884c\u4e0e\u6570\u636e\u7684\u4e00\u81f4\u6027\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u5ba2\u6237\u7aef\u793a\u4f8b",children:"\u5ba2\u6237\u7aef\u793a\u4f8b"}),"\n",(0,s.jsxs)(n.p,{children:["\u5728\u4ee3\u7801\u76ee\u5f55\u4e2d\u7684demo/Bolt\u4e0b\u9762\u6709Golang\u3001Java\u3001JavaScript\u3001Python\u3001Rust \u8fd9\u51e0\u4e2a\u8bed\u8a00\u7684\u7684\u4f8b\u5b50\u3002\u60f3\u8981\u4e86\u89e3\u66f4\u591a\u53ef\u89c1",(0,s.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/tree/master/demo",children:"\u5ba2\u6237\u7aef\u793a\u4f8b"})]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>a});var s=r(6540);const t={},o=s.createContext(t);function i(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/90892322.d047a257.js b/assets/js/90892322.d047a257.js
new file mode 100644
index 0000000000..8d32e0d33a
--- /dev/null
+++ b/assets/js/90892322.d047a257.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9704],{1799:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=r(4848),t=r(8453);const o={},i="Bolt\u5ba2\u6237\u7aef",a={id:"client-tools/bolt-client",title:"Bolt\u5ba2\u6237\u7aef",description:"TuGraph\u76ee\u524d\u517c\u5bb9\u4e86Neo4j\u7684Bolt\u534f\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Neo4j\u7684\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/5.bolt-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/bolt-client",permalink:"/tugraph-db/zh/client-tools/bolt-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph-OGM",permalink:"/tugraph-db/zh/client-tools/tugraph-ogm"},next:{title:"TuGraph console client",permalink:"/tugraph-db/zh/client-tools/bolt-console-client"}},l={},d=[{value:"\u5f00\u542fBolt\u7aef\u53e3",id:"\u5f00\u542fbolt\u7aef\u53e3",level:2},{value:"\u4f7f\u7528\u793a\u4f8b",id:"\u4f7f\u7528\u793a\u4f8b",level:2},{value:"Neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",id:"neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",level:2},{value:"\u5ba2\u6237\u7aef\u793a\u4f8b",id:"\u5ba2\u6237\u7aef\u793a\u4f8b",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"bolt\u5ba2\u6237\u7aef",children:"Bolt\u5ba2\u6237\u7aef"})}),"\n",(0,s.jsx)(n.p,{children:"TuGraph\u76ee\u524d\u517c\u5bb9\u4e86Neo4j\u7684Bolt\u534f\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Neo4j\u7684\u5ba2\u6237\u7aef\u8bbf\u95eeTuGraph\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u5f00\u542fbolt\u7aef\u53e3",children:"\u5f00\u542fBolt\u7aef\u53e3"}),"\n",(0,s.jsxs)(n.p,{children:["Bolt\u7aef\u53e3\u662f\u9ed8\u8ba4\u5f00\u542f\u7684\uff0c\u9ed8\u8ba4\u7aef\u53e3\u662f7687\u3002\u5982\u679c\u9700\u8981\u4fee\u6539\u7aef\u53e3\uff0c\u8bf7\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u81ea\u884c\u4fee\u6539\u3002\u57fa\u4e8edocker\u65b9\u5f0f\u90e8\u7f72\u7684\u670d\u52a1\uff0c\u914d\u7f6e\u6587\u4ef6\u5728\u5bb9\u5668\u5185 ",(0,s.jsx)(n.code,{children:"/usr/local/etc/lgraph.json"}),"\u6587\u4ef6\u4e2d\uff1b\u5982\u679c\u662f\u7528rpm\u5305\u90e8\u7f72\u7684\u670d\u52a1\uff0c\u914d\u7f6e\u6587\u4ef6\u5728\u670d\u52a1\u5668\u7684",(0,s.jsx)(n.code,{children:"/usr/local/etc/lgraph.json"}),"\u3002 \u4fee\u6539\u7aef\u53e3\u540e\u4e3a\u4e86\u4f7f\u7aef\u53e3\u751f\u6548\uff0c\u9700\u8981\u91cd\u542f\u670d\u52a1\uff0c\u91cd\u542f\u670d\u52a1\u7684\u5177\u4f53\u64cd\u4f5c\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c"}),"\u3002\u53e6\u5916\uff0c\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u8be6\u7ec6\u914d\u7f6e\u9879\uff0c\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../5.installation&running/7.tugraph-running.md",children:"\u6570\u636e\u5e93\u8fd0\u884c"}),"\u4e2d\u7684\u670d\u52a1\u914d\u7f6e\u7ae0\u8282\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"\u4f7f\u7528\u793a\u4f8b",children:"\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,s.jsx)(n.p,{children:"\u6dfb\u52a0Maven\u4f9d\u8d56"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n org.neo4j.driver \n neo4j-java-driver \n 4.4.2 \n \n"})}),"\n",(0,s.jsx)(n.p,{children:"Client\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:' Driver driver = GraphDatabase.driver("bolt://ip:port", AuthTokens.basic("admin", "73@TuGraph"));\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u5e38\u7528\u8bed\u53e5"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",children:' //\u901a\u8fc7 driver \u5bf9\u8c61\u521b\u5efa\u4e00\u4e2a Session\uff0c\u8bbe\u7f6e\u4f1a\u8bdd\u8fde\u63a5\u5230\u7279\u5b9a\u7684\u6570\u636e\u5e93\uff0c\u7528\u4e8e\u6267\u884cCypher\u8bed\u53e5\n Session session = driver.session(SessionConfig.forDatabase("default"));\n //\u6e05\u7a7a\u56fe\u9879\u76ee\uff0c\u8bf7\u4e0d\u8981\u8f7b\u6613\u5c1d\u8bd5\uff0c\u5b83\u4f1a\u6e05\u7a7a\u4f60\u9009\u4e2d\u7684\u56fe\u9879\u76ee\u7684\u6a21\u578b\u4ee5\u53ca\u6570\u636e\n session.run("CALL db.dropDB()");\n //\u521b\u5efa\u70b9\u6a21\u578b\n session.run("CALL db.createVertexLabel(\'person\', \'id\' , \'id\' ,INT32, false, \'name\' ,STRING, false)");\n //\u521b\u5efa\u8fb9\u6a21\u578b\n session.run("CALL db.createEdgeLabel(\'is_friend\',\'[[\\"person\\",\\"person\\"]]\')");\n //\u521b\u5efa\u7d22\u5f15\n session.run("CALL db.addIndex(\\"person\\", \\"name\\", false)");\n //\u63d2\u5165\u70b9\u6570\u636e\n session.run("create (n1:person {name:\'jack\',id:1}), (n2:person {name:\'lucy\',id:2})");\n //\u63d2\u5165\u8fb9\u6570\u636e\n session.run("match (n1:person {id:1}), (n2:person {id:2}) create (n1)-[r:is_friend]->(n2)");\n //\u67e5\u8be2\u70b9\u548c\u8fb9\n Result res = session.run("match (n)-[r]->(m) return n,r,m");\n //Parameterized Query\n String cypherQuery = "MATCH (n1:person {id:$id})-[r]-(n2:person {name:$name}) RETURN n1, r, n2";\n Result result1 = session.run(cypherQuery, parameters("id", 1, "name", "lucy"));\n while (result1.hasNext()) {\n Record record = result1.next();\n System.out.println("n1: " + record.get("n1").asMap());\n System.out.println("r: " + record.get("r").asMap());\n System.out.println("n2: " + record.get("n2").asMap());\n }\n //\u5220\u9664\u70b9\u6570\u636e\n session.run("match (n1:person {id:1}) delete n1");\n //\u5220\u9664\u8fb9\u6570\u636e\n session.run("match (n1:person {id:1})-[r]-(n2:person{id:2}) delete r");\n //\u5220\u9664\u8fb9\u6a21\u578b\n session.run("CALL db.deleteLabel(\'edge\', \'is_friend\')");\n //\u5220\u9664\u70b9\u6a21\u578b\n session.run("CALL db.deleteLabel(\'vertex\', \'person\')");\n'})}),"\n",(0,s.jsxs)(n.p,{children:["\u8be6\u7ec6Cypher\u548c\u5b58\u50a8\u8fc7\u7a0b\u7684\u4f7f\u7528\u53ef\u89c1",(0,s.jsx)(n.a,{href:"../../8.query/1.cypher.md",children:"Cypher"})]}),"\n",(0,s.jsx)(n.h2,{id:"neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236",children:"Neo4j\u5ba2\u6237\u7aef\u4f7f\u7528\u9650\u5236"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524d\uff0c\u6211\u4eec\u7684\u7cfb\u7edf\u5c1a\u672a\u5168\u9762\u517c\u5bb9Neo4j Bolt\u534f\u8bae\u7684\u6240\u6709\u9ad8\u7ea7\u7279\u6027\u3002\u7279\u522b\u5730\uff0c\u5bf9\u4e8eNeo4j\u5ba2\u6237\u7aef\u6240\u5177\u5907\u7684\u5373\u65f6\u4e8b\u52a1\u5904\u7406\u529f\u80fd\u53ca\u5f31schema\u7075\u6d3b\u6027\u8fd9\u4e24\u9879\u72ec\u7279\u80fd\u529b\uff0c\u5f53\u524d\u5c1a\u4e0d\u63d0\u4f9b\u652f\u6301\u3002\u56e0\u6b64\uff0c\u5728\u91c7\u7528\u5ba2\u6237\u7aef\u8fdb\u884c\u64cd\u4f5c\u65f6\uff0c\u8bf7\u52a1\u5fc5\u7559\u610f\u89c4\u907f\u6d89\u53ca\u6b64\u7c7b\u7279\u6027\u7684\u64cd\u4f5c\uff0c\u4ee5\u786e\u4fdd\u5e94\u7528\u7684\u987a\u7545\u8fd0\u884c\u4e0e\u6570\u636e\u7684\u4e00\u81f4\u6027\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"\u5ba2\u6237\u7aef\u793a\u4f8b",children:"\u5ba2\u6237\u7aef\u793a\u4f8b"}),"\n",(0,s.jsxs)(n.p,{children:["\u5728\u4ee3\u7801\u76ee\u5f55\u4e2d\u7684demo/Bolt\u4e0b\u9762\u6709Golang\u3001Java\u3001JavaScript\u3001Python\u3001Rust \u8fd9\u51e0\u4e2a\u8bed\u8a00\u7684\u7684\u4f8b\u5b50\u3002\u60f3\u8981\u4e86\u89e3\u66f4\u591a\u53ef\u89c1",(0,s.jsx)(n.a,{href:"https://github.com/TuGraph-family/tugraph-db/tree/master/demo",children:"\u5ba2\u6237\u7aef\u793a\u4f8b"})]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>a});var s=r(6540);const t={},o=s.createContext(t);function i(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/916cc991.00252d9d.js b/assets/js/916cc991.00252d9d.js
deleted file mode 100644
index 684864ab5f..0000000000
--- a/assets/js/916cc991.00252d9d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8466],{7098:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=t(4848),r=t(8453);const i={},d="TuGraph RESTful API",l={id:"en-US/source/client-tools/restful-api",title:"TuGraph RESTful API",description:"This document describes how to call the Rest API of TuGrpah.",source:"@site/../docs/en-US/source/7.client-tools/7.restful-api.md",sourceDirName:"en-US/source/7.client-tools",slug:"/en-US/source/client-tools/restful-api",permalink:"/tugraph-db/en-US/source/client-tools/restful-api",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph console client",permalink:"/tugraph-db/en-US/source/client-tools/bolt-console-client"},next:{title:"RPC API",permalink:"/tugraph-db/en-US/source/client-tools/rpc-api"}},h={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Request And Response Format",id:"2request-and-response-format",level:2},{value:"2.1.Standard Response Format",id:"21standard-response-format",level:3},{value:"2.2. Request Type",id:"22-request-type",level:3},{value:"2.2.1. User Login",id:"221-user-login",level:4},{value:"2.2.2. User Logout",id:"222-user-logout",level:4},{value:"2.2.3. Refresh Token",id:"223-refresh-token",level:4},{value:"2.2.4. Call Cypher",id:"224-call-cypher",level:4},{value:"2.2.5. Upload File",id:"225-upload-file",level:4},{value:"2.2.6. Check File",id:"226-check-file",level:4},{value:"2.2.7. Delete Cached File",id:"227-delete-cached-file",level:4},{value:"2.2.8. Import Schema",id:"228-import-schema",level:4},{value:"2.2.9. Import Data",id:"229-import-data",level:4},{value:"2.2.10. Import Progress Query",id:"2210-import-progress-query",level:4}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"tugraph-restful-api",children:"TuGraph RESTful API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"This document describes how to call the Rest API of TuGrpah."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph provides HTTP RESTful APIs, which allow users to access TuGraph servers through HTTP requests remotely."}),"\n",(0,s.jsx)(n.p,{children:"This document specifiers the TuGraph HTTP RESTful API."}),"\n",(0,s.jsx)(n.h2,{id:"2request-and-response-format",children:"2.Request And Response Format"}),"\n",(0,s.jsx)(n.p,{children:"Tugraph HTTP Server receives requests in json format\uff0cAfter authentication, fields in the request are extracted, the request is processed according to the defined interface logic, and the response in json format is returned."}),"\n",(0,s.jsx)(n.h3,{id:"21standard-response-format",children:"2.1.Standard Response Format"}),"\n",(0,s.jsx)(n.p,{children:"Each response is returned in the standard response format, as follows\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"errorCode"}),(0,s.jsx)(n.td,{children:"error code"}),(0,s.jsx)(n.td,{children:"int"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"success"}),(0,s.jsx)(n.td,{children:"Whether the request was successful"}),(0,s.jsx)(n.td,{children:"int"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"errorMessage"}),(0,s.jsx)(n.td,{children:"error message"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data"}),(0,s.jsx)(n.td,{children:"the response information returned when the request is successful"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"22-request-type",children:"2.2. Request Type"}),"\n",(0,s.jsx)(n.h4,{id:"221-user-login",children:"2.2.1. User Login"}),"\n",(0,s.jsx)(n.p,{children:"The user sends the login request to the server with the user name and password. After successful login, the client receives a signed token (the Json Web Token) and a Boolean variable (default_password) to determine whether it is the default password. The jwt token stored by the client and added to the Authorization domain of the request header in subsequent requests. If the login fails, you will receive the Authentication failed error."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /login"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"userName"}),(0,s.jsx)(n.td,{children:"name of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"password"}),(0,s.jsx)(n.td,{children:"password of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00 and the token will be included in data"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"authorization"}),(0,s.jsx)(n.td,{children:"token"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"default_password"}),(0,s.jsx)(n.td,{children:"whether the password is the default password"}),(0,s.jsx)(n.td,{children:"bool"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:' {"userName" : "test", "password" : "123456"}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"222-user-logout",children:"2.2.2. User Logout"}),"\n",(0,s.jsx)(n.p,{children:"When a user logs out, the authenticated token is deleted. and the user needs to log in again to obtain a new token when sending subsequent requests."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /logout"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":\nThe http request header carries the token returned by login interface, and the body has no parameters"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and data is empty"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"223-refresh-token",children:"2.2.3. Refresh Token"}),"\n",(0,s.jsx)(n.p,{children:"If the delivered token becomes invalid, you need to invoke this interface for re-authentication. The token is valid within one hour after the first login and needs to be refreshed"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /refresh"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":\nThe http request header carries the token returned by login interface, and the body has no parameters"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and the token will be included in data"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"authorization"}),(0,s.jsx)(n.td,{children:"token"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.h4,{id:"224-call-cypher",children:"2.2.4. Call Cypher"}),"\n",(0,s.jsx)(n.p,{children:"User manipulation of data and models in tugraph requires calling the cypher interface and is initiated through the standard cypher query language"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /cypher"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"the name of the subgraph to be queried"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"script"}),(0,s.jsx)(n.td,{children:"query statement"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and the query results will be included in data"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"result"}),(0,s.jsx)(n.td,{children:"query results"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:' {"script" : "Match (n) return n", "graph" : "default"}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"225-upload-file",children:"2.2.5. Upload File"}),"\n",(0,s.jsx)(n.p,{children:"This interface is used to upload local files to the TuGraph machine. You can upload text/binary files, large files, and small files. For large files, the client must split the files, and each file fragment must not be larger than 1MB. Parameters Begin-Pos and Size correspond to the offset and fragment size of this fragment in the complete file. The parameter must be placed in the header of the http request, and the request body contains only the file fragment content. The request header of this interface contains more than token parameters"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /upload_file"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"header parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"File-Name"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Begin-Pos"}),(0,s.jsx)(n.td,{children:"Offset of the start position of the current file fragment within the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Size"}),(0,s.jsx)(n.td,{children:"the current file fragment size"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"226-check-file",children:"2.2.6. Check File"}),"\n",(0,s.jsx)(n.p,{children:"this interface is used to check the correctness of uploaded files. If the check succeeds, the system returns a success message when the same file is uploaded again"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /check_file"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileName"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"checkSum"}),(0,s.jsx)(n.td,{children:"the checksum of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "1"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileSize"}),(0,s.jsx)(n.td,{children:"the size of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "2"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:'If flag is "1", check md5. If flag is "2"\uff0ccheck file size'}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"pass"}),(0,s.jsx)(n.td,{children:"true on success, false otherwise"}),(0,s.jsx)(n.td,{children:"bool"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"fileName" : "test.csv", "checkSum" : "$MD5", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"227-delete-cached-file",children:"2.2.7. Delete Cached File"}),"\n",(0,s.jsx)(n.p,{children:"The admin user can delete all the files uploaded by anyone. Other users can delete their own files. You can delete a file with a specified name, a file uploaded by a specified user, or all files"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /clear_cache"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileName"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "0"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"userName"}),(0,s.jsx)(n.td,{children:"the name of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "1"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:"When flag is set to 0, the file specified by fileName is deleted; when flag is set to 1, all files uploaded by userName are deleted; when flag is set to 2, all files are deleted"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"fileName" : "test.csv", "userName" : "test", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"228-import-schema",children:"2.2.8. Import Schema"}),"\n",(0,s.jsx)(n.p,{children:"This interface can create a schema model based on the schema information specified by description parameter. For details about the schema format, refer to data-import.md"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_schema"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"name of the subgraph"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"description"}),(0,s.jsx)(n.td,{children:"schema infomation"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{\n\t"graph": "test_graph",\n\t"description": {\n\t\t"schema": [{\n\t\t\t"label": "Person",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}, {\n\t\t\t\t"name": "birthyear",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"optional": true\n\t\t\t}, {\n\t\t\t\t"name": "phone",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"unique": true,\n\t\t\t\t"index": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "City",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "Film",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "title",\n\t\t\t"properties": [{\n\t\t\t\t"name": "title",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "HAS_CHILD",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "MARRIED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "BORN_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "weight",\n\t\t\t\t"type": "FLOAT",\n\t\t\t\t"optional": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "DIRECTED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "WROTE_MUSIC_FOR",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "ACTED_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "charactername",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "PLAY_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "role",\n\t\t\t\t"type": "STRING",\n\t\t\t\t"optional": true\n\t\t\t}],\n\t\t\t"constraints": [\n\t\t\t\t["Person", "Film"]\n\t\t\t]\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"229-import-data",children:"2.2.9. Import Data"}),"\n",(0,s.jsx)(n.p,{children:"This interface allows users to specify uploaded and verified files as data files and import them to the subgraph specified by the graph parameter. The import process is asynchronous, and the server returns a task id after receiving the import request"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_data"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"name of the subgraph"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"schema"}),(0,s.jsx)(n.td,{children:"schema infomation"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delimiter"}),(0,s.jsx)(n.td,{children:"column delimiter"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"continueOnError"}),(0,s.jsx)(n.td,{children:"Whether to skip the error and continue when an error occurs"}),(0,s.jsx)(n.td,{children:"boolean"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"skipPackages"}),(0,s.jsx)(n.td,{children:"number of packets skipped"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"used to restart the failed task"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:"If flag is set to 1, the data file is deleted after the import is successful"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"other"}),(0,s.jsx)(n.td,{children:"other parameter"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"task id is used to find a import task"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{\n "graph": "default", //\u5bfc\u5165\u7684\u5b50\u56fe\u540d\u79f0\n "delimiter": ",",\t\t\t\t\t\t//\u6570\u636e\u5206\u9694\u7b26\n "continueOnError": true,\t\t//\u9047\u5230\u9519\u8bef\u65f6\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u6570\u636e\u5e76\u7ee7\u7eed\u5bfc\u5165\n "skipPackages": \u201c0\u201d,\t\t\t\t\t//\u8df3\u8fc7\u7684\u5305\u4e2a\u6570\n "flag" : "1",\n\t "schema": {\n\t\t"files": [{\n\t\t\t"DST_ID": "Film",\t\t\t\t//\u7ec8\u70b9label\u7c7b\u578b\n\t\t\t"SRC_ID": "Person",\t\t\t//\u8d77\u70b9label\u7c7b\u578b\n\t\t\t"columns": [\t\t\t\t\t\t//\u6570\u636e\u683c\u5f0f\u8bf4\u660e\n\t\t\t\t"SRC_ID",\t\t\t\t\t\t\t//\u8d77\u70b9id\n\t\t\t\t"DST_ID",\t\t\t\t\t\t\t//\u7ec8\u70b9id\n "SKIP",\t\t\t\t\t\t\t\t//\u8868\u793a\u8df3\u8fc7\u6b64\u5217\u6570\u636e\n\t\t\t\t"charactername"\t\t\t\t//\u5c5e\u6027\u540d\u79f0\n\t\t\t],\n\t\t\t"format": "CSV",\t\t\t\t//\u6570\u636e\u6587\u4ef6\u683c\u5f0f\u7c7b\u578b,\u652f\u6301csv\u548cjson\n\t\t\t"path": "acted_in.csv",\t//\u6570\u636e\u6587\u4ef6\u540d\u79f0\n\t\t\t"header": 0, \t\t\t\t\t\t//\u6570\u636e\u4ece\u7b2c\u51e0\u884c\u5f00\u59cb\n\t\t\t"label": "ACTED_IN"\t\t\t//\u8fb9\u7684\u7c7b\u578b\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2210-import-progress-query",children:"2.2.10. Import Progress Query"}),"\n",(0,s.jsx)(n.p,{children:"This interface is used to query the execution progress of a import task"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_progress"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"task id returned by import_data interface"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"success"}),(0,s.jsx)(n.td,{children:"whether import is successful"}),(0,s.jsx)(n.td,{children:"boolean"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"reason"}),(0,s.jsx)(n.td,{children:"reason of the import failure"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes if success is false"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"progress"}),(0,s.jsx)(n.td,{children:"import progress at the current time"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"taskId" : "$taskId"}\n'})})]})}function o(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>l});var s=t(6540);const r={},i=s.createContext(r);function d(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/916cc991.c73c9a1b.js b/assets/js/916cc991.c73c9a1b.js
new file mode 100644
index 0000000000..3b2c58250e
--- /dev/null
+++ b/assets/js/916cc991.c73c9a1b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[8466],{7256:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=t(4848),r=t(8453);const i={},d="TuGraph RESTful API",l={id:"client-tools/restful-api",title:"TuGraph RESTful API",description:"This document describes how to call the Rest API of TuGrpah.",source:"@site/../docs/en-US/source/7.client-tools/7.restful-api.md",sourceDirName:"7.client-tools",slug:"/client-tools/restful-api",permalink:"/tugraph-db/en/client-tools/restful-api",draft:!1,unlisted:!1,tags:[],version:"current",lastUpdatedBy:"wanzhongyun",lastUpdatedAt:1728991741e3,sidebarPosition:7,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"TuGraph console client",permalink:"/tugraph-db/en/client-tools/bolt-console-client"},next:{title:"RPC API",permalink:"/tugraph-db/en/client-tools/rpc-api"}},h={},c=[{value:"1.Introduction",id:"1introduction",level:2},{value:"2.Request And Response Format",id:"2request-and-response-format",level:2},{value:"2.1.Standard Response Format",id:"21standard-response-format",level:3},{value:"2.2. Request Type",id:"22-request-type",level:3},{value:"2.2.1. User Login",id:"221-user-login",level:4},{value:"2.2.2. User Logout",id:"222-user-logout",level:4},{value:"2.2.3. Refresh Token",id:"223-refresh-token",level:4},{value:"2.2.4. Call Cypher",id:"224-call-cypher",level:4},{value:"2.2.5. Upload File",id:"225-upload-file",level:4},{value:"2.2.6. Check File",id:"226-check-file",level:4},{value:"2.2.7. Delete Cached File",id:"227-delete-cached-file",level:4},{value:"2.2.8. Import Schema",id:"228-import-schema",level:4},{value:"2.2.9. Import Data",id:"229-import-data",level:4},{value:"2.2.10. Import Progress Query",id:"2210-import-progress-query",level:4}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"tugraph-restful-api",children:"TuGraph RESTful API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"This document describes how to call the Rest API of TuGrpah."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1introduction",children:"1.Introduction"}),"\n",(0,s.jsx)(n.p,{children:"TuGraph provides HTTP RESTful APIs, which allow users to access TuGraph servers through HTTP requests remotely."}),"\n",(0,s.jsx)(n.p,{children:"This document specifiers the TuGraph HTTP RESTful API."}),"\n",(0,s.jsx)(n.h2,{id:"2request-and-response-format",children:"2.Request And Response Format"}),"\n",(0,s.jsx)(n.p,{children:"Tugraph HTTP Server receives requests in json format\uff0cAfter authentication, fields in the request are extracted, the request is processed according to the defined interface logic, and the response in json format is returned."}),"\n",(0,s.jsx)(n.h3,{id:"21standard-response-format",children:"2.1.Standard Response Format"}),"\n",(0,s.jsx)(n.p,{children:"Each response is returned in the standard response format, as follows\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"errorCode"}),(0,s.jsx)(n.td,{children:"error code"}),(0,s.jsx)(n.td,{children:"int"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"success"}),(0,s.jsx)(n.td,{children:"Whether the request was successful"}),(0,s.jsx)(n.td,{children:"int"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"errorMessage"}),(0,s.jsx)(n.td,{children:"error message"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data"}),(0,s.jsx)(n.td,{children:"the response information returned when the request is successful"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"22-request-type",children:"2.2. Request Type"}),"\n",(0,s.jsx)(n.h4,{id:"221-user-login",children:"2.2.1. User Login"}),"\n",(0,s.jsx)(n.p,{children:"The user sends the login request to the server with the user name and password. After successful login, the client receives a signed token (the Json Web Token) and a Boolean variable (default_password) to determine whether it is the default password. The jwt token stored by the client and added to the Authorization domain of the request header in subsequent requests. If the login fails, you will receive the Authentication failed error."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /login"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"userName"}),(0,s.jsx)(n.td,{children:"name of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"password"}),(0,s.jsx)(n.td,{children:"password of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00 and the token will be included in data"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"authorization"}),(0,s.jsx)(n.td,{children:"token"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"default_password"}),(0,s.jsx)(n.td,{children:"whether the password is the default password"}),(0,s.jsx)(n.td,{children:"bool"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:' {"userName" : "test", "password" : "123456"}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"222-user-logout",children:"2.2.2. User Logout"}),"\n",(0,s.jsx)(n.p,{children:"When a user logs out, the authenticated token is deleted. and the user needs to log in again to obtain a new token when sending subsequent requests."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /logout"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":\nThe http request header carries the token returned by login interface, and the body has no parameters"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and data is empty"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"223-refresh-token",children:"2.2.3. Refresh Token"}),"\n",(0,s.jsx)(n.p,{children:"If the delivered token becomes invalid, you need to invoke this interface for re-authentication. The token is valid within one hour after the first login and needs to be refreshed"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /refresh"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":\nThe http request header carries the token returned by login interface, and the body has no parameters"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and the token will be included in data"]}),"\n"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"authorization"}),(0,s.jsx)(n.td,{children:"token"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.h4,{id:"224-call-cypher",children:"2.2.4. Call Cypher"}),"\n",(0,s.jsx)(n.p,{children:"User manipulation of data and models in tugraph requires calling the cypher interface and is initiated through the standard cypher query language"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /cypher"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"the name of the subgraph to be queried"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"script"}),(0,s.jsx)(n.td,{children:"query statement"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00, and the query results will be included in data"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"result"}),(0,s.jsx)(n.td,{children:"query results"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:' {"script" : "Match (n) return n", "graph" : "default"}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"225-upload-file",children:"2.2.5. Upload File"}),"\n",(0,s.jsx)(n.p,{children:"This interface is used to upload local files to the TuGraph machine. You can upload text/binary files, large files, and small files. For large files, the client must split the files, and each file fragment must not be larger than 1MB. Parameters Begin-Pos and Size correspond to the offset and fragment size of this fragment in the complete file. The parameter must be placed in the header of the http request, and the request body contains only the file fragment content. The request header of this interface contains more than token parameters"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /upload_file"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"header parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"File-Name"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Begin-Pos"}),(0,s.jsx)(n.td,{children:"Offset of the start position of the current file fragment within the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Size"}),(0,s.jsx)(n.td,{children:"the current file fragment size"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"226-check-file",children:"2.2.6. Check File"}),"\n",(0,s.jsx)(n.p,{children:"this interface is used to check the correctness of uploaded files. If the check succeeds, the system returns a success message when the same file is uploaded again"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /check_file"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileName"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"checkSum"}),(0,s.jsx)(n.td,{children:"the checksum of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "1"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileSize"}),(0,s.jsx)(n.td,{children:"the size of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "2"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:'If flag is "1", check md5. If flag is "2"\uff0ccheck file size'}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"pass"}),(0,s.jsx)(n.td,{children:"true on success, false otherwise"}),(0,s.jsx)(n.td,{children:"bool"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"fileName" : "test.csv", "checkSum" : "$MD5", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"227-delete-cached-file",children:"2.2.7. Delete Cached File"}),"\n",(0,s.jsx)(n.p,{children:"The admin user can delete all the files uploaded by anyone. Other users can delete their own files. You can delete a file with a specified name, a file uploaded by a specified user, or all files"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /clear_cache"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"fileName"}),(0,s.jsx)(n.td,{children:"the name of the file"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "0"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"userName"}),(0,s.jsx)(n.td,{children:"the name of the user"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:'yes when flag set to "1"'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:"When flag is set to 0, the file specified by fileName is deleted; when flag is set to 1, all files uploaded by userName are deleted; when flag is set to 2, all files are deleted"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"fileName" : "test.csv", "userName" : "test", "flag" : \u201c1\u201d}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"228-import-schema",children:"2.2.8. Import Schema"}),"\n",(0,s.jsx)(n.p,{children:"This interface can create a schema model based on the schema information specified by description parameter. For details about the schema format, refer to data-import.md"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_schema"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"name of the subgraph"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"description"}),(0,s.jsx)(n.td,{children:"schema infomation"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{\n\t"graph": "test_graph",\n\t"description": {\n\t\t"schema": [{\n\t\t\t"label": "Person",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}, {\n\t\t\t\t"name": "birthyear",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"optional": true\n\t\t\t}, {\n\t\t\t\t"name": "phone",\n\t\t\t\t"type": "INT16",\n\t\t\t\t"unique": true,\n\t\t\t\t"index": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "City",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "name",\n\t\t\t"properties": [{\n\t\t\t\t"name": "name",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "Film",\n\t\t\t"type": "VERTEX",\n\t\t\t"primary": "title",\n\t\t\t"properties": [{\n\t\t\t\t"name": "title",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "HAS_CHILD",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "MARRIED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "BORN_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "weight",\n\t\t\t\t"type": "FLOAT",\n\t\t\t\t"optional": true\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "DIRECTED",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "WROTE_MUSIC_FOR",\n\t\t\t"type": "EDGE"\n\t\t}, {\n\t\t\t"label": "ACTED_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "charactername",\n\t\t\t\t"type": "STRING"\n\t\t\t}]\n\t\t}, {\n\t\t\t"label": "PLAY_IN",\n\t\t\t"type": "EDGE",\n\t\t\t"properties": [{\n\t\t\t\t"name": "role",\n\t\t\t\t"type": "STRING",\n\t\t\t\t"optional": true\n\t\t\t}],\n\t\t\t"constraints": [\n\t\t\t\t["Person", "Film"]\n\t\t\t]\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"229-import-data",children:"2.2.9. Import Data"}),"\n",(0,s.jsx)(n.p,{children:"This interface allows users to specify uploaded and verified files as data files and import them to the subgraph specified by the graph parameter. The import process is asynchronous, and the server returns a task id after receiving the import request"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_data"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"graph"}),(0,s.jsx)(n.td,{children:"name of the subgraph"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"schema"}),(0,s.jsx)(n.td,{children:"schema infomation"}),(0,s.jsx)(n.td,{children:"json string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"delimiter"}),(0,s.jsx)(n.td,{children:"column delimiter"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"continueOnError"}),(0,s.jsx)(n.td,{children:"Whether to skip the error and continue when an error occurs"}),(0,s.jsx)(n.td,{children:"boolean"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"skipPackages"}),(0,s.jsx)(n.td,{children:"number of packets skipped"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"used to restart the failed task"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"flag"}),(0,s.jsx)(n.td,{children:"If flag is set to 1, the data file is deleted after the import is successful"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"other"}),(0,s.jsx)(n.td,{children:"other parameter"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"no"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"task id is used to find a import task"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{\n "graph": "default", //\u5bfc\u5165\u7684\u5b50\u56fe\u540d\u79f0\n "delimiter": ",",\t\t\t\t\t\t//\u6570\u636e\u5206\u9694\u7b26\n "continueOnError": true,\t\t//\u9047\u5230\u9519\u8bef\u65f6\u662f\u5426\u8df3\u8fc7\u9519\u8bef\u6570\u636e\u5e76\u7ee7\u7eed\u5bfc\u5165\n "skipPackages": \u201c0\u201d,\t\t\t\t\t//\u8df3\u8fc7\u7684\u5305\u4e2a\u6570\n "flag" : "1",\n\t "schema": {\n\t\t"files": [{\n\t\t\t"DST_ID": "Film",\t\t\t\t//\u7ec8\u70b9label\u7c7b\u578b\n\t\t\t"SRC_ID": "Person",\t\t\t//\u8d77\u70b9label\u7c7b\u578b\n\t\t\t"columns": [\t\t\t\t\t\t//\u6570\u636e\u683c\u5f0f\u8bf4\u660e\n\t\t\t\t"SRC_ID",\t\t\t\t\t\t\t//\u8d77\u70b9id\n\t\t\t\t"DST_ID",\t\t\t\t\t\t\t//\u7ec8\u70b9id\n "SKIP",\t\t\t\t\t\t\t\t//\u8868\u793a\u8df3\u8fc7\u6b64\u5217\u6570\u636e\n\t\t\t\t"charactername"\t\t\t\t//\u5c5e\u6027\u540d\u79f0\n\t\t\t],\n\t\t\t"format": "CSV",\t\t\t\t//\u6570\u636e\u6587\u4ef6\u683c\u5f0f\u7c7b\u578b,\u652f\u6301csv\u548cjson\n\t\t\t"path": "acted_in.csv",\t//\u6570\u636e\u6587\u4ef6\u540d\u79f0\n\t\t\t"header": 0, \t\t\t\t\t\t//\u6570\u636e\u4ece\u7b2c\u51e0\u884c\u5f00\u59cb\n\t\t\t"label": "ACTED_IN"\t\t\t//\u8fb9\u7684\u7c7b\u578b\n\t\t}]\n\t}\n}\n'})}),"\n",(0,s.jsx)(n.h4,{id:"2210-import-progress-query",children:"2.2.10. Import Progress Query"}),"\n",(0,s.jsx)(n.p,{children:"This interface is used to query the execution progress of a import task"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"URI"}),": /import_progress"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"METHOD"}),": POST"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"taskId"}),(0,s.jsx)(n.td,{children:"task id returned by import_data interface"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"\u662f"})]})})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"RESPONSE"}),":\nIf successful, the success field in the returned response message will be set to 00"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"body parameter"}),(0,s.jsx)(n.th,{children:"parameter description"}),(0,s.jsx)(n.th,{children:"parameter type"}),(0,s.jsx)(n.th,{children:"necessary"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"success"}),(0,s.jsx)(n.td,{children:"whether import is successful"}),(0,s.jsx)(n.td,{children:"boolean"}),(0,s.jsx)(n.td,{children:"yes"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"reason"}),(0,s.jsx)(n.td,{children:"reason of the import failure"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes if success is false"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"progress"}),(0,s.jsx)(n.td,{children:"import progress at the current time"}),(0,s.jsx)(n.td,{children:"string"}),(0,s.jsx)(n.td,{children:"yes"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Example request."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'{"taskId" : "$taskId"}\n'})})]})}function o(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>l});var s=t(6540);const r={},i=s.createContext(r);function d(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/91f32ff5.89796f69.js b/assets/js/91f32ff5.89796f69.js
deleted file mode 100644
index c37b80ed7d..0000000000
--- a/assets/js/91f32ff5.89796f69.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1591],{4364:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var a=n(4848),t=n(8453);const l={},i="Java\u5ba2\u6237\u7aef",o={id:"zh-CN/source/client-tools/java-client",title:"Java\u5ba2\u6237\u7aef",description:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Java SDK\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662fTuGraph Java SDK\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 bolt\u5ba2\u6237\u7aef",source:"@site/../docs/zh-CN/source/7.client-tools/3.java-client.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/java-client",permalink:"/tugraph-db/zh-CN/source/client-tools/java-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"C++\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh-CN/source/client-tools/cpp-client"},next:{title:"TuGraph-OGM",permalink:"/tugraph-db/zh-CN/source/client-tools/tugraph-ogm"}},c={},d=[{value:"1.\u7f16\u8bd1java client\u4ee3\u7801",id:"1\u7f16\u8bd1java-client\u4ee3\u7801",level:2},{value:"2.\u4f7f\u7528\u793a\u4f8b",id:"2\u4f7f\u7528\u793a\u4f8b",level:2},{value:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61",id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",level:3},{value:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",level:4},{value:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.2.\u8c03\u7528cypher",id:"22\u8c03\u7528cypher",level:3},{value:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",level:3},{value:"2.4.\u8c03\u7528GQL",id:"24\u8c03\u7528gql",level:3},{value:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42",id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",level:3},{value:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",level:3},{value:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3},{value:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",level:3},{value:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3}];function p(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"java\u5ba2\u6237\u7aef",children:"Java\u5ba2\u6237\u7aef"})}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:["\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Java SDK\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662fTuGraph Java SDK\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 ",(0,a.jsx)(r.a,{href:"/tugraph-db/zh-CN/source/client-tools/bolt-client",children:"bolt\u5ba2\u6237\u7aef"})]}),"\n"]}),"\n",(0,a.jsx)(r.h2,{id:"1\u7f16\u8bd1java-client\u4ee3\u7801",children:"1.\u7f16\u8bd1java client\u4ee3\u7801"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-shell",children:"cd deps/tugraph-db-client-java\nsh local_build.sh\n"})}),"\n",(0,a.jsx)(r.h2,{id:"2\u4f7f\u7528\u793a\u4f8b",children:"2.\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,a.jsx)(r.h3,{id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",children:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u6dfb\u52a0maven\u4f9d\u8d56"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-xml",children:"\n com.antgroup.tugraph \n tugraph-db-java-rpc-client \n 1.4.1 \n \n"})}),"\n",(0,a.jsx)(r.p,{children:"\u5f15\u5165\u4f9d\u8d56"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:"import com.antgroup.tugraph.TuGraphDbRpcClient;\n"})}),"\n",(0,a.jsx)(r.h4,{id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",children:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u4ee5\u5355\u8282\u70b9\u6a21\u5f0f\u542f\u52a8server\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,a.jsx)(r.h4,{id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u53ef\u4ee5\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316\u3002"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name \n@param password: login password\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u7528\u6237\u53ea\u9700\u8981\u4f20\u5165HA\u96c6\u7fa4\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u7684url\u5373\u53ef\uff0cclient\u4f1a\u6839\u636eserver\u7aef\u8fd4\u56de\u7684\u67e5\u8be2\u4fe1\u606f\u81ea\u52a8\u7ef4\u62a4\u8fde\u63a5\u6c60\uff0c\u5728HA\u96c6\u7fa4\u6a2a\u5411\u6269\u5bb9\u65f6\n\u4e5f\u4e0d\u9700\u8981\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,a.jsx)(r.h4,{id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u4e0d\u80fd\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u800c\u5fc5\u987b\u4f7f\u7528\u95f4\u63a5\u7f51\u5740\uff08\u5982\u963f\u91cc\u4e91\u516c\u7f51\u7f51\u5740\uff09\u8fde\u63a5\u65f6\uff0c\nclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'List urls = new ArrayList<>();\nurls.add("189.33.97.23:9091");\nurls.add("189.33.97.24:9091");\nurls.add("189.33.97.25:9091");\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(List urls, String user, String password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u56e0\u4e3a\u7528\u6237\u8fde\u63a5\u7684\u7f51\u5740\u548cserver\u542f\u52a8\u65f6\u914d\u7f6e\u7684\u4fe1\u606f\u4e0d\u540c\uff0c\u4e0d\u80fd\u901a\u8fc7\u5411\u96c6\u7fa4\u53d1\u8bf7\u6c42\u7684\u65b9\u5f0f\u81ea\u52a8\u66f4\u65b0client\u8fde\u63a5\u6c60\uff0c\u6240\u4ee5\u9700\u8981\u5728\u542f\u52a8\nclient\u65f6\u624b\u52a8\u4f20\u5165\u6240\u6709\u96c6\u7fa4\u4e2d\u8282\u70b9\u7684\u7f51\u5740\uff0c\u5e76\u5728\u96c6\u7fa4\u8282\u70b9\u53d8\u66f4\u65f6\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"22\u8c03\u7528cypher",children:"2.2.\u8c03\u7528cypher"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callCypher("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling cypher\n @return: the result of cypher query execution\n public String callCypher(String cypher, String graph, double timeout, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002\n\u6ce8\uff1aJAVA\u4e0d\u652f\u6301\u9ed8\u8ba4\u53c2\u6570\uff0c\u56e0\u6b64\uff0cJAVA\u4e2d\u7684\u9ed8\u8ba4\u53c2\u6570\u662f\u4f7f\u7528\u91cd\u8f7d\u51fd\u6570\u5b9e\u73b0\u7684\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",children:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callCypherToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"24\u8c03\u7528gql",children:"2.4.\u8c03\u7528GQL"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callGql("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling GQL\n @return: the result of GQL query execution\n public String callGql(String gql, String graph, double timeout, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002\n\u6ce8\uff1aJAVA\u4e0d\u652f\u6301\u9ed8\u8ba4\u53c2\u6570\uff0c\u56e0\u6b64\uff0cJAVA\u4e2d\u7684\u9ed8\u8ba4\u53c2\u6570\u662f\u4f7f\u7528\u91cd\u8f7d\u51fd\u6570\u5b9e\u73b0\u7684\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",children:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callGqlToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedure("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @param url: (Optional) Node address of calling procedure\n @return: the result of procedure execution\n public String callProcedure(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5\u5b57\u7b26\u4e32\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3atrue\u53ef\u4ee5\u8fd4\u56dejson\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002\n\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedureToLeader : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @return: the result of procedure execution\n public String callProcedureToLeader(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5\u5b57\u7b26\u4e32\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3atrue\u53ef\u4ee5\u8fd4\u56dejson\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean result = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param sourceFile: the source_file contain procedure code\n @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param codeType: code type, currently supported PY, SO, CPP, ZIP\n @param procedureDescription: procedure description\n @param readOnly: procedure is read only or not\n @param version: The version of procedure\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean loadProcedure(String sourceFile, String procedureType, String procedureName, String codeType,\n String procedureDescription, boolean readOnly, String version, String graph) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.listProcedures("CPP", "any", "default");\n log.info("listProcedures : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param version: The version of procedure\n @param graph: the graph to query.\n @param url: (Optional) Node address of listing procedure\n @return: the list of procedure\n public String listProcedures(String procedureType, String version, String graph, String url) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.deleteProcedure("CPP", "sortstr", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean deleteProcedure(String procedureType, String procedureName, String graph) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",children:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromContent(schema, "default", 1000);\n log.info("importSchemaFromContent : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param schema: the schema to be imported\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromContent(String schema, String graph, double timeout) throws UnsupportedEncodingException \n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000);\n log.info("importDataFromContent : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param desc: data format description\n @param data: the data to be imported\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromContent(String desc, String data, String delimiter, boolean continueOnError,\n int threadNums, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",children:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000);\n log.info("importSchemaFromFile : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param schemaFile: the schema_file contain schema\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromFile(String schemaFile, String graph, double timeout) \n throws UnsupportedEncodingException, IOException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000);\n log.info("importDataFromFile : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param confFile: data file contain format description and data\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param skipPackages: skip packages number\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromFile(String confFile, String delimiter, boolean continueOnError, int threadNums,\n int skipPackages, String graph, double timeout) throws IOException, UnsupportedEncodingException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"})]})}function s(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var a=n(6540);const t={},l=a.createContext(t);function i(e){const r=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(l.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/91f32ff5.8edd6d6d.js b/assets/js/91f32ff5.8edd6d6d.js
new file mode 100644
index 0000000000..6120622ee7
--- /dev/null
+++ b/assets/js/91f32ff5.8edd6d6d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[1591],{4364:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var a=n(4848),t=n(8453);const l={},i="Java\u5ba2\u6237\u7aef",o={id:"client-tools/java-client",title:"Java\u5ba2\u6237\u7aef",description:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Java SDK\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662fTuGraph Java SDK\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 bolt\u5ba2\u6237\u7aef",source:"@site/../docs/zh-CN/source/7.client-tools/3.java-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/java-client",permalink:"/tugraph-db/zh/client-tools/java-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"C++\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh/client-tools/cpp-client"},next:{title:"TuGraph-OGM",permalink:"/tugraph-db/zh/client-tools/tugraph-ogm"}},c={},d=[{value:"1.\u7f16\u8bd1java client\u4ee3\u7801",id:"1\u7f16\u8bd1java-client\u4ee3\u7801",level:2},{value:"2.\u4f7f\u7528\u793a\u4f8b",id:"2\u4f7f\u7528\u793a\u4f8b",level:2},{value:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61",id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",level:3},{value:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",level:4},{value:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.2.\u8c03\u7528cypher",id:"22\u8c03\u7528cypher",level:3},{value:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",level:3},{value:"2.4.\u8c03\u7528GQL",id:"24\u8c03\u7528gql",level:3},{value:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42",id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",level:3},{value:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",level:3},{value:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3},{value:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",level:3},{value:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3}];function p(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"java\u5ba2\u6237\u7aef",children:"Java\u5ba2\u6237\u7aef"})}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:["\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph Java SDK\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662fTuGraph Java SDK\u5c06\u6765\u4e0d\u518d\u66f4\u65b0\u7ef4\u62a4\uff0c\u5efa\u8bae\u4f7f\u7528 ",(0,a.jsx)(r.a,{href:"/tugraph-db/zh/client-tools/bolt-client",children:"bolt\u5ba2\u6237\u7aef"})]}),"\n"]}),"\n",(0,a.jsx)(r.h2,{id:"1\u7f16\u8bd1java-client\u4ee3\u7801",children:"1.\u7f16\u8bd1java client\u4ee3\u7801"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-shell",children:"cd deps/tugraph-db-client-java\nsh local_build.sh\n"})}),"\n",(0,a.jsx)(r.h2,{id:"2\u4f7f\u7528\u793a\u4f8b",children:"2.\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,a.jsx)(r.h3,{id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",children:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u6dfb\u52a0maven\u4f9d\u8d56"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-xml",children:"\n com.antgroup.tugraph \n tugraph-db-java-rpc-client \n 1.4.1 \n \n"})}),"\n",(0,a.jsx)(r.p,{children:"\u5f15\u5165\u4f9d\u8d56"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:"import com.antgroup.tugraph.TuGraphDbRpcClient;\n"})}),"\n",(0,a.jsx)(r.h4,{id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",children:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u4ee5\u5355\u8282\u70b9\u6a21\u5f0f\u542f\u52a8server\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,a.jsx)(r.h4,{id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u8fde\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u53ef\u4ee5\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316\u3002"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'TuGraphDbRpcClient client = new TuGraphDbRpcClient("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(String url, String user, String pass)\n@param url: tugraph host looks like ip:port\n@param user: login user name \n@param password: login password\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u7528\u6237\u53ea\u9700\u8981\u4f20\u5165HA\u96c6\u7fa4\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u7684url\u5373\u53ef\uff0cclient\u4f1a\u6839\u636eserver\u7aef\u8fd4\u56de\u7684\u67e5\u8be2\u4fe1\u606f\u81ea\u52a8\u7ef4\u62a4\u8fde\u63a5\u6c60\uff0c\u5728HA\u96c6\u7fa4\u6a2a\u5411\u6269\u5bb9\u65f6\n\u4e5f\u4e0d\u9700\u8981\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,a.jsx)(r.h4,{id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,a.jsx)(r.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u4e0d\u80fd\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u800c\u5fc5\u987b\u4f7f\u7528\u95f4\u63a5\u7f51\u5740\uff08\u5982\u963f\u91cc\u4e91\u516c\u7f51\u7f51\u5740\uff09\u8fde\u63a5\u65f6\uff0c\nclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:'List urls = new ArrayList<>();\nurls.add("189.33.97.23:9091");\nurls.add("189.33.97.24:9091");\nurls.add("189.33.97.25:9091");\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:"public TuGraphDbRpcClient(List urls, String user, String password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u56e0\u4e3a\u7528\u6237\u8fde\u63a5\u7684\u7f51\u5740\u548cserver\u542f\u52a8\u65f6\u914d\u7f6e\u7684\u4fe1\u606f\u4e0d\u540c\uff0c\u4e0d\u80fd\u901a\u8fc7\u5411\u96c6\u7fa4\u53d1\u8bf7\u6c42\u7684\u65b9\u5f0f\u81ea\u52a8\u66f4\u65b0client\u8fde\u63a5\u6c60\uff0c\u6240\u4ee5\u9700\u8981\u5728\u542f\u52a8\nclient\u65f6\u624b\u52a8\u4f20\u5165\u6240\u6709\u96c6\u7fa4\u4e2d\u8282\u70b9\u7684\u7f51\u5740\uff0c\u5e76\u5728\u96c6\u7fa4\u8282\u70b9\u53d8\u66f4\u65f6\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"22\u8c03\u7528cypher",children:"2.2.\u8c03\u7528cypher"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callCypher("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling cypher\n @return: the result of cypher query execution\n public String callCypher(String cypher, String graph, double timeout, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002\n\u6ce8\uff1aJAVA\u4e0d\u652f\u6301\u9ed8\u8ba4\u53c2\u6570\uff0c\u56e0\u6b64\uff0cJAVA\u4e2d\u7684\u9ed8\u8ba4\u53c2\u6570\u662f\u4f7f\u7528\u91cd\u8f7d\u51fd\u6570\u5b9e\u73b0\u7684\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",children:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callCypherToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param cypher: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callCypherToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"24\u8c03\u7528gql",children:"2.4.\u8c03\u7528GQL"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callGql("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @param url: (Optional) Node address of calling GQL\n @return: the result of GQL query execution\n public String callGql(String gql, String graph, double timeout, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002\n\u6ce8\uff1aJAVA\u4e0d\u652f\u6301\u9ed8\u8ba4\u53c2\u6570\uff0c\u56e0\u6b64\uff0cJAVA\u4e2d\u7684\u9ed8\u8ba4\u53c2\u6570\u662f\u4f7f\u7528\u91cd\u8f7d\u51fd\u6570\u5b9e\u73b0\u7684\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",children:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String res = client.callGqlToLeader("CALL db.edgeLabels()", "default", 10);\n log.info("db.edgeLabels() : " + res);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param gql: inquire statement.\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of cypher query execution\n public String callGqlToLeader(String cypher, String graph, double timeout)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedure("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @param url: (Optional) Node address of calling procedure\n @return: the result of procedure execution\n public String callProcedure(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph, String url)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5\u5b57\u7b26\u4e32\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3atrue\u53ef\u4ee5\u8fd4\u56dejson\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002\n\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.callProcedureToLeader("CPP", "khop", kHopParamGen(), 1000, false, "default");\n log.info("testCallProcedureToLeader : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param param: the execution parameters\n @param procedureTimeOut: Maximum execution time, overruns will be interrupted\n @param inProcess: Running query or not\n @param graph: the graph to query\n @param jsonFormat: (Optional) Return format of calling stored procedure\n @return: the result of procedure execution\n public String callProcedureToLeader(String procedureType, String procedureName, String param, double procedureTimeOut,\n boolean inProcess, String graph)\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5\u5b57\u7b26\u4e32\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3atrue\u53ef\u4ee5\u8fd4\u56dejson\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean result = client.loadProcedure("./test/procedure/khop.so", "CPP", "khop", "SO", "test loadprocedure", true, "v1", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param sourceFile: the source_file contain procedure code\n @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param codeType: code type, currently supported PY, SO, CPP, ZIP\n @param procedureDescription: procedure description\n @param readOnly: procedure is read only or not\n @param version: The version of procedure\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean loadProcedure(String sourceFile, String procedureType, String procedureName, String codeType,\n String procedureDescription, boolean readOnly, String version, String graph) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.listProcedures("CPP", "any", "default");\n log.info("listProcedures : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param version: The version of procedure\n @param graph: the graph to query.\n @param url: (Optional) Node address of listing procedure\n @return: the list of procedure\n public String listProcedures(String procedureType, String version, String graph, String url) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' String result = client.deleteProcedure("CPP", "sortstr", "default");\n log.info("loadProcedure : " + result);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param procedureType: the procedure type, currently supported CPP and PY\n @param procedureName: procedure name\n @param graph: the graph to query.\n @return: the result of procedure execution\n public boolean deleteProcedure(String procedureType, String procedureName, String graph) throws Exception\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",children:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromContent(schema, "default", 1000);\n log.info("importSchemaFromContent : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param schema: the schema to be imported\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromContent(String schema, String graph, double timeout) throws UnsupportedEncodingException \n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromContent(personDesc, person, ",", true, 16, "default", 1000);\n log.info("importDataFromContent : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param desc: data format description\n @param data: the data to be imported\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromContent(String desc, String data, String delimiter, boolean continueOnError,\n int threadNums, String graph, double timeout) throws UnsupportedEncodingException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",children:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importSchemaFromFile("./test/data/yago.conf", "default", 1000);\n log.info("importSchemaFromFile : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param schemaFile: the schema_file contain schema\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import schema\n public boolean importSchemaFromFile(String schemaFile, String graph, double timeout) \n throws UnsupportedEncodingException, IOException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,a.jsx)(r.h3,{id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-java",children:' boolean ret = client.importDataFromFile("./test/data/yago.conf", ",", true, 16, 0, "default", 1000000000);\n log.info("importDataFromFile : " + ret);\n'})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{children:" @param confFile: data file contain format description and data\n @param delimiter: data separator\n @param continueOnError: whether to continue when importing data fails\n @param threadNums: maximum number of threads\n @param skipPackages: skip packages number\n @param graph: the graph to query.\n @param timeout: Maximum execution time, overruns will be interrupted\n @return: the result of import data\n public boolean importDataFromFile(String confFile, String delimiter, boolean continueOnError, int threadNums,\n int skipPackages, String graph, double timeout) throws IOException, UnsupportedEncodingException\n"})}),"\n",(0,a.jsx)(r.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"})]})}function s(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>o});var a=n(6540);const t={},l=a.createContext(t);function i(e){const r=a.useContext(l);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(l.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/94a49e13.2a2f3425.js b/assets/js/94a49e13.2a2f3425.js
deleted file mode 100644
index 13577c531c..0000000000
--- a/assets/js/94a49e13.2a2f3425.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7981],{5132:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>i,default:()=>x,frontMatter:()=>d,metadata:()=>c,toc:()=>t});var r=s(4848),l=s(8453);const d={},i="RESTful API Legacy",c={id:"zh-CN/source/client-tools/restful-api-legacy",title:"RESTful API Legacy",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/9.restful-api-legacy.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/restful-api-legacy",permalink:"/tugraph-db/zh-CN/source/client-tools/restful-api-legacy",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RPC API",permalink:"/tugraph-db/zh-CN/source/client-tools/rpc-api"},next:{title:"Cypher API",permalink:"/tugraph-db/zh-CN/source/query/cypher"}},h={},t=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",id:"2\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",level:2},{value:"2.1\u8bf7\u6c42",id:"21\u8bf7\u6c42",level:3},{value:"2.2.\u6570\u636e\u683c\u5f0f",id:"22\u6570\u636e\u683c\u5f0f",level:3},{value:"2.3.\u8fd4\u56de\u503c",id:"23\u8fd4\u56de\u503c",level:3},{value:"2.4.URI\u683c\u5f0f",id:"24uri\u683c\u5f0f",level:3},{value:"3.\u767b\u5f55",id:"3\u767b\u5f55",level:2},{value:"3.1.\u767b\u5f55",id:"31\u767b\u5f55",level:3},{value:"3.2.\u8eab\u4efd\u5237\u65b0",id:"32\u8eab\u4efd\u5237\u65b0",level:3},{value:"3.3.\u4fee\u6539Token\u6709\u6548\u671f",id:"33\u4fee\u6539token\u6709\u6548\u671f",level:3},{value:"3.4.\u67e5\u8be2Token\u6709\u6548\u671f",id:"34\u67e5\u8be2token\u6709\u6548\u671f",level:3},{value:"3.5.\u767b\u51fa",id:"35\u767b\u51fa",level:3},{value:"4.\u67e5\u8be2",id:"4\u67e5\u8be2",level:2},{value:"4.1.\u8c03\u7528Cypher",id:"41\u8c03\u7528cypher",level:3},{value:"4.2.\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher",id:"42\u8c03\u7528\u5e26\u53c2\u6570\u7684-cypher",level:3},{value:"5.\u5b58\u50a8\u8fc7\u7a0b",id:"5\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",id:"52\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",id:"53\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",level:3},{value:"5.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"54\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"55\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"6.Deprecated",id:"6deprecated",level:2},{value:"6.1.\u7528\u6237\u7ba1\u7406",id:"61\u7528\u6237\u7ba1\u7406",level:3},{value:"6.1.1.\u6dfb\u52a0\u7528\u6237",id:"611\u6dfb\u52a0\u7528\u6237",level:4},{value:"6.1.2.\u5217\u51fa\u6240\u6709\u7528\u6237",id:"612\u5217\u51fa\u6240\u6709\u7528\u6237",level:4},{value:"6.1.3.\u83b7\u53d6\u7528\u6237\u4fe1\u606f",id:"613\u83b7\u53d6\u7528\u6237\u4fe1\u606f",level:4},{value:"6.1.4.\u5217\u51fa\u7528\u6237\u6743\u9650",id:"614\u5217\u51fa\u7528\u6237\u6743\u9650",level:4},{value:"6.1.5.\u66f4\u6539\u7528\u6237\u5bc6\u7801",id:"615\u66f4\u6539\u7528\u6237\u5bc6\u7801",level:4},{value:"6.1.6.\u4fee\u6539\u7528\u6237\u63cf\u8ff0",id:"616\u4fee\u6539\u7528\u6237\u63cf\u8ff0",level:4},{value:"6.1.7.\u5220\u9664\u7528\u6237",id:"617\u5220\u9664\u7528\u6237",level:4},{value:"6.1.8.\u7981\u7528\u7528\u6237",id:"618\u7981\u7528\u7528\u6237",level:4},{value:"6.1.9.\u542f\u7528\u7528\u6237",id:"619\u542f\u7528\u7528\u6237",level:4},{value:"6.1.10.\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",id:"6110\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",level:4},{value:"6.2.\u89d2\u8272\u7ba1\u7406",id:"62\u89d2\u8272\u7ba1\u7406",level:3},{value:"6.2.1.\u6dfb\u52a0\u89d2\u8272",id:"621\u6dfb\u52a0\u89d2\u8272",level:4},{value:"6.2.2.\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",id:"622\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",level:4},{value:"6.2.3.\u5217\u51fa\u6240\u6709\u89d2\u8272",id:"623\u5217\u51fa\u6240\u6709\u89d2\u8272",level:4},{value:"6.2.4.\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",id:"624\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",level:4},{value:"6.2.5.\u5220\u9664\u89d2\u8272",id:"625\u5220\u9664\u89d2\u8272",level:4},{value:"6.2.6.\u7981\u7528\u89d2\u8272",id:"626\u7981\u7528\u89d2\u8272",level:4},{value:"6.2.7.\u542f\u7528\u89d2\u8272",id:"627\u542f\u7528\u89d2\u8272",level:4},{value:"6.2.8.\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",id:"628\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",level:4},{value:"6.3.\u670d\u52a1\u5668\u72b6\u6001",id:"63\u670d\u52a1\u5668\u72b6\u6001",level:3},{value:"6.3.1.\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",id:"631\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",level:4},{value:"6.3.2.\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",id:"632\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",level:4},{value:"6.3.3.\u670d\u52a1\u5668 CPU \u72b6\u6001",id:"633\u670d\u52a1\u5668-cpu-\u72b6\u6001",level:4},{value:"6.3.4.\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",id:"634\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",level:4},{value:"6.3.5.\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",id:"635\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",level:4},{value:"6.3.6.\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",id:"636\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",level:4},{value:"6.3.7.\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",id:"637\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",level:4},{value:"6.3.8.\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",id:"638\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",level:4},{value:"6.3.9.\u5f53\u524d Leader \u4fe1\u606f",id:"639\u5f53\u524d-leader-\u4fe1\u606f",level:4},{value:"6.3.10.\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",id:"6310\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",level:4},{value:"6.3.11.\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",id:"6311\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",level:4},{value:"6.4.\u4efb\u52a1\u7ba1\u7406",id:"64\u4efb\u52a1\u7ba1\u7406",level:3},{value:"6.4.1.\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",id:"641\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",level:4},{value:"6.4.2.\u4e2d\u6b62\u4efb\u52a1",id:"642\u4e2d\u6b62\u4efb\u52a1",level:4},{value:"6.5.\u5b50\u56fe\u7ba1\u7406",id:"65\u5b50\u56fe\u7ba1\u7406",level:3},{value:"6.5.1.\u521b\u5efa\u65b0\u5b50\u56fe",id:"651\u521b\u5efa\u65b0\u5b50\u56fe",level:4},{value:"6.5.2.\u5220\u9664\u5b50\u56fe",id:"652\u5220\u9664\u5b50\u56fe",level:4},{value:"6.5.3.\u5217\u51fa\u6240\u6709\u5b50\u56fe",id:"653\u5217\u51fa\u6240\u6709\u5b50\u56fe",level:4},{value:"6.5.4.\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",id:"654\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",level:4},{value:"6.6.\u5143\u6570\u636e\u7ba1\u7406",id:"66\u5143\u6570\u636e\u7ba1\u7406",level:3},{value:"6.6.1.\u521b\u5efaLabel",id:"661\u521b\u5efalabel",level:4},{value:"6.6.2.\u5217\u51fa\u6240\u6709 Label",id:"662\u5217\u51fa\u6240\u6709-label",level:4},{value:"6.6.3.\u83b7\u53d6 Label \u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",id:"663\u83b7\u53d6-label-\u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",level:4},{value:"6.6.4.Schema \u5bfc\u5165",id:"664schema-\u5bfc\u5165",level:4},{value:"6.7.\u70b9\u64cd\u4f5c",id:"67\u70b9\u64cd\u4f5c",level:3},{value:"6.7.1.\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",id:"671\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",level:4},{value:"6.7.2.\u521b\u5efa\u4e00\u4e2a\u70b9",id:"672\u521b\u5efa\u4e00\u4e2a\u70b9",level:4},{value:"6.7.3.\u6279\u91cf\u521b\u5efa\u70b9",id:"673\u6279\u91cf\u521b\u5efa\u70b9",level:4},{value:"6.7.4.\u83b7\u53d6\u70b9",id:"674\u83b7\u53d6\u70b9",level:4},{value:"6.7.5.\u5220\u9664\u70b9",id:"675\u5220\u9664\u70b9",level:4},{value:"6.7.6.\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",id:"676\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",level:4},{value:"6.7.7.\u83b7\u53d6\u70b9\u5c5e\u6027",id:"677\u83b7\u53d6\u70b9\u5c5e\u6027",level:4},{value:"6.7.8.\u66f4\u65b0\u70b9\u5c5e\u6027",id:"678\u66f4\u65b0\u70b9\u5c5e\u6027",level:4},{value:"6.8.\u8fb9\u64cd\u4f5c",id:"68\u8fb9\u64cd\u4f5c",level:3},{value:"6.8.1.\u521b\u5efa\u4e00\u6761\u8fb9",id:"681\u521b\u5efa\u4e00\u6761\u8fb9",level:4},{value:"6.8.2.\u6279\u91cf\u521b\u5efa\u8fb9",id:"682\u6279\u91cf\u521b\u5efa\u8fb9",level:4},{value:"6.8.3.\u5217\u51fa\u6240\u6709\u51fa\u8fb9\uff08outgoing relationships\uff09",id:"683\u5217\u51fa\u6240\u6709\u51fa\u8fb9outgoing-relationships",level:4},{value:"6.8.4.\u5217\u51fa\u6240\u6709\u5165\u8fb9\uff08incoming relationships\uff09",id:"684\u5217\u51fa\u6240\u6709\u5165\u8fb9incoming-relationships",level:4},{value:"6.8.5.\u5217\u51fa\u6240\u6709\u8fb9",id:"685\u5217\u51fa\u6240\u6709\u8fb9",level:4},{value:"6.8.6.\u83b7\u53d6\u8fb9",id:"686\u83b7\u53d6\u8fb9",level:4},{value:"6.8.7.\u5220\u9664\u8fb9",id:"687\u5220\u9664\u8fb9",level:4},{value:"6.8.8.\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",id:"688\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",level:4},{value:"6.8.9.\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",id:"689\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",level:4},{value:"6.8.10.\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",id:"6810\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",level:4},{value:"6.9.\u7d22\u5f15",id:"69\u7d22\u5f15",level:3},{value:"6.9.1.\u521b\u5efa\u7d22\u5f15",id:"691\u521b\u5efa\u7d22\u5f15",level:4},{value:"6.9.2.\u5217\u51fa\u6240\u6709\u7d22\u5f15",id:"692\u5217\u51fa\u6240\u6709\u7d22\u5f15",level:4},{value:"6.9.3.\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a Label \u76f8\u5173\u7684\u7d22\u5f15",id:"693\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a-label-\u76f8\u5173\u7684\u7d22\u5f15",level:4},{value:"6.9.4.\u5220\u9664\u7d22\u5f15",id:"694\u5220\u9664\u7d22\u5f15",level:4},{value:"6.9.5.\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",id:"695\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",level:4},{value:"6.10.\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",id:"610\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",level:3},{value:"6.10.1.\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",id:"6101\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",level:4},{value:"6.11.\u5176\u4ed6",id:"611\u5176\u4ed6",level:3},{value:"6.11.1.\u63d0\u53d6\u5b50\u56fe",id:"6111\u63d0\u53d6\u5b50\u56fe",level:4}];function j(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"restful-api-legacy",children:"RESTful API Legacy"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u9075\u4ece REST \u89c4\u8303\u7684 HTTP API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 HTTP \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u7684 HTTP API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.strong,{children:['\u6ce8\u610f\uff1a\u9664"\u767b\u9646"\u3001"\u67e5\u8be2"\u548c"\u5b58\u50a8\u8fc7\u7a0b"\u5916\uff0c\u5176\u4f59\u63a5\u53e3\u81ea ',(0,r.jsx)(e.strong,{children:"2023\u5e744\u670830\u65e5"})," \u8d77\u5c06\u4e0d\u518d\u63d0\u4f9b\u652f\u6301\uff0c\u7edf\u4e00\u4f7f\u7528Cypher\u63a5\u53e3\u63d0\u4f9b\u670d\u52a1\u3002"]})}),"\n",(0,r.jsx)(e.h2,{id:"2\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",children:"2.\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f"}),"\n",(0,r.jsx)(e.h3,{id:"21\u8bf7\u6c42",children:"2.1\u8bf7\u6c42"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u652f\u6301 HTTP GET/POST/PUT/DELETE \u8bf7\u6c42\u3002\u5176\u4e2d\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"GET \u8bf7\u6c42\u7528\u4e8e\u53ea\u8bfb\u8bf7\u6c42\uff0c\u5982\u8bfb\u53d6\u70b9\u5c5e\u6027\uff0c\u8fb9\u5c5e\u6027\u7b49\u64cd\u4f5c\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"POST \u8bf7\u6c42\u7528\u4e8e\u521b\u5efa\u5b9e\u4f53\uff0c\u63d0\u4ea4 Cypher\uff0c\u4ee5\u53ca\u52a0\u8f7d\u548c\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"PUT \u8bf7\u6c42\u7528\u4e8e\u4fee\u6539\u5df2\u6709\u5b9e\u4f53\uff0c\u5982\u4fee\u6539\u70b9\u5c5e\u6027\uff0c\u8fb9\u5c5e\u6027\u7b49\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"DELETE \u8bf7\u6c42\u7528\u4e8e\u5220\u9664\u5df2\u6709\u5b9e\u4f53\uff0c\u5982\u5220\u9664\u70b9\uff0c\u8fb9\u7b49\u3002"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u8bf7\u6c42\u7684\u62a5\u5934(request header)\u4e2d\u8bbe\u7f6e ",(0,r.jsx)(e.code,{children:"server_version"})," \u6765\u4fdd\u8bc1\u8bf7\u6c42\u7684\u670d\u52a1\u5668\u6709\u8db3\u591f\u65b0\u7684\u6570\u636e\u3002\n\u5f53\u524d\u7684 ",(0,r.jsx)(e.code,{children:"server_version"})," \u53ef\u4ee5\u4ece\u670d\u52a1\u5668\u8fd4\u56de\u7684\u62a5\u5934\u4e2d\u83b7\u53d6\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"22\u6570\u636e\u683c\u5f0f",children:"2.2.\u6570\u636e\u683c\u5f0f"}),"\n",(0,r.jsxs)(e.p,{children:["\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u7aef\u6570\u636e\u4ea4\u4e92\u7684\u683c\u5f0f\u662f JSON\u3002\u5728\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u8bf7\u5c06\u53d1\u9001\u6570\u636e\u7684\u8bf7\u6c42\u7684\u62a5\u5934\u8bbe\u7f6e\u4e3a ",(0,r.jsx)(e.code,{children:"Accept:application/json, Content-Type:application/json"}),"\u3002\n\u4f8b\u5982\u5728\u521b\u5efa\u4e00\u4e2a\u70b9\u65f6\uff0c\u8bf7\u6c42\u62a5\u5934\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" Accept: application/json; charset=UTF-8\n Content-Type: application/json\n server_version: 12\n"})}),"\n",(0,r.jsx)(e.h3,{id:"23\u8fd4\u56de\u503c",children:"2.3.\u8fd4\u56de\u503c"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u8fd4\u56de\u7684 HTTP \u72b6\u6001\u7801\u5305\u542b\u4ee5\u4e0b\u56db\u79cd\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"200 OK: \u64cd\u4f5c\u6210\u529f"}),"\n",(0,r.jsx)(e.li,{children:"307 Temporary Redirect: \u64cd\u4f5c\u88ab\u91cd\u5b9a\u5411\uff0c\u4e00\u822c\u7528\u4e8e\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u628a\u64cd\u4f5c\u91cd\u5b9a\u5411\u5230 master \u4e0a"}),"\n",(0,r.jsx)(e.li,{children:"400 Bad Request: \u8f93\u5165\u6709\u8bef\uff0c\u4f8b\u5982 URI \u9519\u8bef\uff0c\u6216\u8005\u8bf7\u6c42\u4e2d\u7684 JSON \u53c2\u6570\u9519\u8bef"}),"\n",(0,r.jsx)(e.li,{children:"500 Internal Server Error: \u670d\u52a1\u5668\u7aef\u9519\u8bef"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5f53\u64cd\u4f5c\u6210\u529f\u65f6\uff0c\u8fd4\u56de\u7684 JSON \u4e2d\u5305\u542b\u64cd\u4f5c\u7684\u8fd4\u56de\u503c\u3002\u5f53\u64cd\u4f5c\u91cd\u5b9a\u5411\u65f6\uff0c\u8fd4\u56de\u7684 HTTP \u62a5\u5934\u4e2d\u7684 ",(0,r.jsx)(e.code,{children:"location"})," \u57df\u5305\u542b\u91cd\u5b9a\u5411\u76ee\u7684\u5730\u5740\u3002\n\u5f53\u53d1\u751f\u8f93\u5165\u9519\u8bef\u6216\u8005\u670d\u52a1\u5668\u9519\u8bef\u65f6\uff0c\u8fd4\u56de\u7684 JSON \u4e2d\u5305\u542b ",(0,r.jsx)(e.code,{children:"error_message"})," \u57df\uff0c\u5176\u5185\u5bb9\u662f\u9519\u8bef\u63d0\u793a\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u670d\u52a1\u5668\u8fd8\u4f1a\u5728\u62a5\u5934\u4e2d\u8bbe\u7f6e ",(0,r.jsx)(e.code,{children:"server_version"}),"\uff0c\u4ee5\u544a\u77e5\u5ba2\u6237\u7aef\u5f53\u524d\u670d\u52a1\u5668\u7684\u6570\u636e\u7248\u672c\u53f7\u3002\u5f53\u5ba2\u6237\u7aef\u5728\u4e0d\u540c\u7684\u670d\u52a1\u5668\u4e4b\u95f4\u5207\u6362\u65f6\uff0c\u8be5\u6570\u636e\u7248\u672c\u53f7\u53ef\u4ee5\u4fdd\u8bc1\u5ba2\u6237\u7aef\u4e0d\u4f1a\u8bfb\u5230\u9519\u8bef\u7684\u5386\u53f2\u6570\u636e\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"24uri\u683c\u5f0f",children:"2.4.URI\u683c\u5f0f"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph REST API \u63d0\u4f9b\u4ee5\u4e0b\u529f\u80fd\uff1aService Root, login, info, label, index, node, relationship, cypher, cpp_plugin, \u4ee5\u53ca python_plugin\u3002\n\u5404\u529f\u80fd\u4f7f\u7528\u7684 URI \u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/web"}),(0,r.jsx)(e.td,{children:"web \u53ef\u89c6\u5316\u754c\u9762"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/cypher"}),(0,r.jsx)(e.td,{children:"cypher \u8bf7\u6c42"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/acl"}),(0,r.jsx)(e.td,{children:"\u6743\u9650\u63a7\u5236"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u7ba1\u7406"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/login"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u767b\u5f55"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/info"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93\u72b6\u6001\u53ca\u63d0\u793a\u4fe1\u606f"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/task"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u7ba1\u7406"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u64cd\u4f5c"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\u5b50\u56fe\u64cd\u4f5c\u53c8\u5206\u4e3a\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u7684\u521b\u5efa\uff0c\u5220\u9664"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/node"]}),(0,r.jsx)(e.td,{children:"\u70b9\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/relationship"]}),(0,r.jsx)(e.td,{children:"\u8fb9\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/label"]}),(0,r.jsx)(e.td,{children:"Label \u76f8\u5173\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/index"]}),(0,r.jsx)(e.td,{children:"\u7d22\u5f15\u76f8\u5173\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cypher"]}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u76f8\u5173 cypher \u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cpp_plugin"]}),(0,r.jsx)(e.td,{children:"C++\u5b58\u50a8\u8fc7\u7a0b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/python_plugin"]}),(0,r.jsx)(e.td,{children:"Python \u5b58\u50a8\u8fc7\u7a0b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/import"]}),(0,r.jsx)(e.td,{children:"\u5728\u7ebf\u5bfc\u5165"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/misc"]}),(0,r.jsx)(e.td,{children:"\u5176\u5b83\u64cd\u4f5c"})]})]})]}),"\n",(0,r.jsx)(e.h2,{id:"3\u767b\u5f55",children:"3.\u767b\u5f55"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u57fa\u4e8e JWT \u7684\u7528\u6237\u8ba4\u8bc1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u4f7f\u7528 HTTP \u6216 HTTPS \u534f\u8bae\u8fdb\u884c\u4f20\u8f93\u3002\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528 HTTP \u534f\u8bae\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528 HTTPS\uff0c\u9700\u8981\u5728 lgraph.json \u914d\u7f6e\u6587\u4ef6\u4e2d\u5c06 ssl_auth \u8bbe\u4e3a 1\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"31\u767b\u5f55",children:"3.1.\u767b\u5f55"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u901a\u8fc7\u7528\u6237\u540d\u548c\u5bc6\u7801\u53d1\u9001\u767b\u5f55\u8bf7\u6c42\u3002\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c(Json Web Token)\u548c\u5224\u65ad\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u7684\u5e03\u5c14\u578b\u53d8\u91cf\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5e76\u4e14\u7528\u4e8e\u4ee5\u540e\u7684\u6bcf\u6b21\u53d1\u9001\u8bf7\u6c42\u3002\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/login"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default_password"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/login\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "user":"admin",\n "password":"73@TuGraph"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek",\n "default_password": true\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"32\u8eab\u4efd\u5237\u65b0",children:"3.2.\u8eab\u4efd\u5237\u65b0"}),"\n",(0,r.jsx)(e.p,{children:"Token\u5931\u6548\u540e\uff0c\u524d\u7aef\u53d1\u8d77\u5237\u65b0token\u63a5\u53e3\uff0c\u540e\u7aef\u9a8c\u8bc1token\u5408\u6cd5\u6027\u3002\u521d\u6b21\u767b\u5f55\u540e\uff0c1\u5c0f\u65f6\u5185\u6709\u6548\uff0c\u9700\u5237\u65b0\u4f7f\u7528\u3002\u5373\u4f7f\u5237\u65b0\uff0c24\u5c0f\u65f6\u540e\u4e5f\u4f1a\u5f3a\u5236\u9000\u51fa\uff0c\u9700\u8981\u91cd\u65b0\u767b\u9646\u3002\n\u9a8c\u8bc1\u901a\u8fc7\uff0c\u751f\u6210\u65b0\u7684token\uff1b\u9a8c\u8bc1\u5931\u8d25\u8fd4\u56de\u72b6\u6001\u7801401\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/refresh"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization": "Bearer eyJhbGciOiJIUz32NiIsInR5cCI6IkpXVDJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byj3fYVAH4D88dfTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"33\u4fee\u6539token\u6709\u6548\u671f",children:"3.3.\u4fee\u6539Token\u6709\u6548\u671f"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539Token\u6709\u6548\u671f\uff0c\u9700\u8981\u4f20\u8f93jwt\uff0crefresh_time\u548cexpire_time\u4e09\u4e2a\u53c2\u6570\uff0c\u5176\u4e2djwt\u7528\u4e8e\u6821\u9a8c\u7528\u6237\u8eab\u4efd\uff0crefresh_time\u548cexpire_time\u7b49\u4e8e0\u65f6\uff0c\u6709\u6548\u671f\u4e3a\u65e0\u671f\u9650\uff0c\u8d85\u8fc7refresh_time\u65f6\uff0c\u9700\u8981\u8c03\u7528refresh\u63a5\u53e3\u83b7\u53d6\u65b0\u7684Token;\u8d85\u8fc7expire_time\u65f6\uff0c\u9700\u8981\u91cd\u65b0\u767b\u5f55\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/update_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"refresh_time"}),(0,r.jsx)(e.td,{children:"\u6709\u6548\u65f6\u95f4\uff08\u9ed8\u8ba4\u8bbe\u7f6e\u4e3a0\uff09"}),(0,r.jsx)(e.td,{children:"Int64"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"expire_time"}),(0,r.jsx)(e.td,{children:"\u6709\u6548\u65f6\u95f4\uff08\u9ed8\u8ba4\u8bbe\u7f6e\u4e3a0\uff09"}),(0,r.jsx)(e.td,{children:"Int64"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/update_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n "refresh_time":0,\n "expire_time":0\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"34\u67e5\u8be2token\u6709\u6548\u671f",children:"3.4.\u67e5\u8be2Token\u6709\u6548\u671f"}),"\n",(0,r.jsx)(e.p,{children:"\u67e5\u8be2Token\u6709\u6548\u671f\uff0c\u9700\u8981\u4f20\u8f93jwt\uff0c\u7528\u4e8e\u6821\u9a8c\u7528\u6237\u8eab\u4efd\uff0c\u8fd4\u56de\uff0crefresh_time\u548cexpire_time\uff0c\u5176\u4e2drefresh_time\u8868\u793a\u5237\u65b0\u65f6\u95f4\uff0c\u8d85\u8fc7\u65f6\u9700\u8981\u8c03\u7528refresh\u63a5\u53e3\u83b7\u53d6\u65b0\u7684Token;expire_time\u8868\u793a\u8fc7\u671f\u65f6\u95f4\uff0c\u8d85\u8fc7\u65f6\u9700\u8981\u91cd\u65b0\u767b\u5f55\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/get_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de"refresh_time"\u548c"expire_time"\u3002']}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/get_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "refresh_time":600,\n "expire_time":3600\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"35\u767b\u51fa",children:"3.5.\u767b\u51fa"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u767b\u51fa\uff0c\u540c\u65f6\u5220\u9664token\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/logout"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/logout\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"4\u67e5\u8be2",children:"4.\u67e5\u8be2"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/cypher\n"})}),"\n",(0,r.jsx)(e.h3,{id:"41\u8c03\u7528cypher",children:"4.1.\u8c03\u7528Cypher"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u8bed\u53e5"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u7ed3\u679c"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"elapsed"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u65f6\u95f4\uff08\u79d2\uff09"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"header"}),(0,r.jsx)(e.td,{children:"\u8fd4\u56de\u7ed3\u679c\u7684\u8868\u5934"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"size"}),(0,r.jsx)(e.td,{children:"\u7ed3\u679c\u6570"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d header \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e00\u5143\u7d20\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u6570\u636e\u7c7b\u578b\uff0c0 \u4e3a\u6807\u91cf\uff0c1 \u4e3a\u70b9 id\uff0c2 \u4e3a\u5411\u91cf"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n) RETURN n,n.name LIMIT 10"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.001224517822265625,\n "header": [\n {\n "name": "n",\n "type": 1\n },\n {\n "name": "n.name",\n "type": 0\n }\n ]\n "result": [\n [\n 0,\n "Rachel Kempson"\n ],\n [\n 1,\n "Michael Redgrave"\n ],\n [\n 2,\n "Vanessa Redgrave"\n ]\n ],\n "size": 3\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"42\u8c03\u7528\u5e26\u53c2\u6570\u7684-cypher",children:"4.2.\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher"}),"\n",(0,r.jsx)(e.p,{children:"Cypher \u652f\u6301\u4f7f\u7528\u53c2\u6570\u8fdb\u884c\u67e5\u8be2\u3002\u5f53\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher \u67e5\u8be2\u65f6\uff0cTuGraph \u4f1a\u7f13\u5b58\u8be5\u67e5\u8be2\u7684\n\u6267\u884c\u8ba1\u5212\uff08execution plan\uff09\uff0c\u4ee5\u52a0\u901f\u540e\u7eed\u540c\u7c7b\u67e5\u8be2\u7684\u901f\u5ea6\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u8bed\u53e5"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"\u53c2\u6570"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0e ",(0,r.jsx)(e.a,{href:"#%E8%B0%83%E7%94%A8Cypher",children:"\u8c03\u7528 Cypher"})," \u76f8\u540c\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n:Person {name:$param1}) RETURN n.birthyear",\n "parameters": {\n "$param1": "Lindsay Lohan"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.005886077880859375,\n "header": [\n {\n "name": "n.birthyear",\n "type": 0\n }\n ],\n "result": [\n [\n 1986\n ]\n ],\n "size": 1\n }\n'})}),"\n",(0,r.jsx)(e.h2,{id:"5\u5b58\u50a8\u8fc7\u7a0b",children:"5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/cpp_plugin|python_plugin\n"})}),"\n",(0,r.jsx)(e.h3,{id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u670d\u52a1\u542f\u52a8\u65f6\uff0c\u5982\u679c load_plugins \u4e3a\u771f\uff0c\u5219\u4f1a\u81ea\u52a8\u52a0\u8f7d plugin \u76ee\u5f55\u4e0b\u7684\u6240\u6709 plugin\u3002\u5426\u5219\u9700\u8981\u624b\u52a8\u52a0\u8f7d\u3002\u6b64\u5916\uff0c\u5982\u679c\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7ba1\u7406\u5458\u66f4\u65b0\u4e86 plugin \u6587\u4ef6\uff0c\u4e5f\u9700\u8981\u624b\u52a8\u91cd\u65b0\u52a0\u8f7d\u3002\u91cd\u65b0\u52a0\u8f7d plugin \u7684\u8c03\u7528\u683c\u5f0f\u4e3a\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u540d\u79f0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u8bf4\u660e"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 base64 \u7f16\u7801"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4e3a\u53ea\u8bfb\u5b58\u50a8\u8fc7\u7a0b"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"\u4e0a\u4f20\u4ee3\u7801\u7684\u7c7b\u578b\uff0cC++\u7c7b\u578b\u53ef\u9009 zip/so/cpp\uff0cPython \u4e3a py"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"52\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a plugin \u7684\u63cf\u8ff0\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u662f\u5426\u53ea\u8bfb"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n [\n {\n "description":"adds a vertex label to the db",\n "name":"add_label",\n "read_only":false\n },\n {\n "description": "scans graph and get number of edges",\n "name": "scan_graph",\n "read_only": true\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"53\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",children:"5.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b58\u50a8\u8fc7\u7a0b\u4fe1\u606f\uff0c\u5305\u62ec\u4ee3\u7801\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u662f\u5426\u53ea\u8bfb"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 base64 \u7f16\u7801"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"\u4e0a\u4f20\u4ee3\u7801\u7684\u7c7b\u578b\uff0cC++\u7c7b\u578b\u53ef\u9009 zip/so/cpp\uff0cPython \u4e3a py"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"54\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"5.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u5b57\u7b26\u4e32\u8f93\u5165"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"\u8f93\u5165\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"timeout"}),(0,r.jsx)(e.td,{children:"\u8d85\u65f6\u957f\u5ea6\uff08\u79d2\uff0c\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a 0\uff09"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in_process"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u5728\u672c\u8fdb\u7a0b\u8c03\u7528\uff08\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a false\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u7ed3\u679c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/python_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n data : "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!",\n timeout : 0,\n in_process : true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "result": "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"55\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"5.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/cpp_plugin/example_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"6deprecated",children:"6.Deprecated"}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u63a5\u53e3\u5c06\u57284/30/2023\u4e4b\u540e\u88ab\u5220\u9664\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"61\u7528\u6237\u7ba1\u7406",children:"6.1.\u7528\u6237\u7ba1\u7406"}),"\n",(0,r.jsxs)(e.p,{children:["\u7cfb\u7edf\u9ed8\u8ba4\u521b\u5efa\u4e00\u4e2a\u7ba1\u7406\u5458\uff0c\u7ba1\u7406\u5458\u7528\u6237\u540d\u4e3a ",(0,r.jsx)(e.em,{children:"admin"}),"\uff0c\u5bc6\u7801\u4e3a ",(0,r.jsx)(e.em,{children:"73@TuGraph"}),"\u3002\u4e3a\u4e86\u5b89\u5168\u8d77\u89c1\uff0c\u8bf7\u7528\u6237\u5728\u7b2c\u4e00\u6b21\u542f\u52a8\u670d\u52a1\u5668\u540e\u66f4\u6539\u5bc6\u7801\u3002"]}),"\n",(0,r.jsx)(e.h4,{id:"611\u6dfb\u52a0\u7528\u6237",children:"6.1.1.\u6dfb\u52a0\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u7528\u6237\uff0c\u5e76\u4e3a\u5176\u8bbe\u7f6e\u521d\u59cb\u5bc6\u7801\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002\u5176\u4e2d\u7528\u6237\u540d\u53ea\u80fd\u7531\u5b57\u6bcd\uff0c\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\u6784\u6210\uff0c\u5bc6\u7801\u5219\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\u3002\u7528\u6237\u540d\u548c\u5bc6\u7801\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7 64 \u5b57\u8282\u3002\u6dfb\u52a0\u7528\u6237\u65f6\u8fd8\u53ef\u4ee5\u4e3a\u7528\u6237\u589e\u52a0\u4e00\u4e2a\u63cf\u8ff0\uff0c\u7528\u6237\u63cf\u8ff0\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\uff0c\u6700\u957f\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u65b0\u7528\u6237\u9ed8\u8ba4\u62e5\u6709\u540c\u540d\u7684\u89d2\u8272\uff0c\u4e0d\u5177\u5907\u4efb\u4f55\u56fe\u7684\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "USER1",\n "password": "AN_INITIAL_PASSWORD",\n "description": "This is a user"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"612\u5217\u51fa\u6240\u6709\u7528\u6237",children:"6.1.2.\u5217\u51fa\u6240\u6709\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u6570\u636e\u5e93\u7684\u6240\u6709\u7528\u6237\u3002\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6240\u6709\u7528\u6237\u53ca\u5176\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": {\n "disabled": false,\n "description": "Builtin admin user",\n "roles": ["admin"]\n },\n "guest1": {\n "disabled": true,\n "description": "",\n "roles": ["guest1", "some_other_role"]\n }\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"613\u83b7\u53d6\u7528\u6237\u4fe1\u606f",children:"6.1.3.\u83b7\u53d6\u7528\u6237\u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u7528\u6237\u7684\u4fe1\u606f\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7528\u6237\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "disabled": true,\n "description": "A guest user"\n "roles": ["guest1", "some_other_role"]\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"614\u5217\u51fa\u7528\u6237\u6743\u9650",children:"6.1.4.\u5217\u51fa\u7528\u6237\u6743\u9650"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u7528\u6237\u6709\u6743\u9650\u8bbf\u95ee\u7684\u6240\u6709\u56fe\u53ca\u76f8\u5e94\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/graph"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7528\u6237\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user/guest1/graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "graph1" : "FULL",\n "graph2" : "READ"\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"615\u66f4\u6539\u7528\u6237\u5bc6\u7801",children:"6.1.5.\u66f4\u6539\u7528\u6237\u5bc6\u7801"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u66f4\u6539\u81ea\u5df1\u7684\u5bc6\u7801\uff0c\u66f4\u6539\u5bc6\u7801\u65f6\u9700\u8981\u540c\u65f6\u63d0\u4f9b\u539f\u5bc6\u7801\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u66f4\u6539\u6240\u6709\u7528\u6237\u7684\u5bc6\u7801\u3002\u7ba1\u7406\u5458\u66f4\u6539\u5176\u5b83\u7528\u6237\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u4e0d\u63d0\u4f9b\u5f53\u524d\u5bc6\u7801\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/password"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"\u5f53\u524d\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"\u65b0\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1/password\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "current_password": "THE_CURRENT_PASSWORD"\n "new_password": "A_NEW_PASSWORD"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"616\u4fee\u6539\u7528\u6237\u63cf\u8ff0",children:"6.1.6.\u4fee\u6539\u7528\u6237\u63cf\u8ff0"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u4fee\u6539\u81ea\u5df1\u7684\u63cf\u8ff0\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u4fee\u6539\u4efb\u610f\u7528\u6237\u7684\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/description"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1/description\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "description": "New description for this user."\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"617\u5220\u9664\u7528\u6237",children:"6.1.7.\u5220\u9664\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u5220\u9664\u7528\u6237\u53ca\u5176\u6240\u6709\u76f8\u5173\u6743\u9650\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"618\u7981\u7528\u7528\u6237",children:"6.1.8.\u7981\u7528\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u88ab\u7981\u7528\u3002\u88ab\u7981\u7528\u7684\u7528\u6237\u5c06\u4e0d\u80fd\u767b\u9646\uff0c\u4f46\u662f\u5176\u8d44\u6599\u4ecd\u7136\u4fdd\u5b58\u3002\u88ab\u7981\u7528\u7684\u7528\u6237\u53ef\u4ee5\u88ab\u91cd\u65b0\u542f\u7528\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/disable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/user/guest1/disable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"619\u542f\u7528\u7528\u6237",children:"6.1.9.\u542f\u7528\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u542f\u7528\u4e00\u4e2a\u88ab\u7981\u7528\u7684\u7528\u6237\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/enable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/user/guest1/enable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6110\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",children:"6.1.10.\u8bbe\u7f6e\u7528\u6237\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u4e3a\u6307\u5b9a\u7528\u6237\u8bbe\u7f6e\u89d2\u8272\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u89d2\u8272\u5217\u8868\u5fc5\u987b\u662f\u201c\u5168\u91cf\u5217\u8868\u201d\uff0c\u5373\u8be5\u5217\u8868\u9700\u8981\u5305\u542b\u8be5\u7528\u6237\u9700\u8981\u7684\u6240\u6709\u89d2\u8272\u3002\u552f\u4e00\u7684\u4f8b\u5916\u662f\u7528\u6237\u7684\u540c\u540d\u89d2\u8272\uff0c\u5373\u4f7f\u5217\u8868\u4e2d\u4e0d\u542b\u8be5\u89d2\u8272\uff0c\u5b83\u4e5f\u4f1a\u88ab\u52a0\u5230\u7528\u6237\u89d2\u8272\u4e2d\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/role"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u89d2\u8272\u5217\u8868"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n ["role1", "role2"]\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u6b64\u65f6\u7528\u6237",(0,r.jsx)(e.code,{children:"guest1"}),"\u62e5\u6709\u89d2\u8272",(0,r.jsx)(e.code,{children:"guest1"}),", ",(0,r.jsx)(e.code,{children:"role1"}),"\u548c",(0,r.jsx)(e.code,{children:"role2"}),"\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"62\u89d2\u8272\u7ba1\u7406",children:"6.2.\u89d2\u8272\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u4f7f\u7528\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u7ba1\u7406\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u4e00\u7528\u6237\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u89d2\u8272\u3002\u65b0\u7528\u6237\u9ed8\u8ba4\u62e5\u6709\u4e0e\u5176\u540c\u540d\u7684\u89d2\u8272\u3002\u5220\u9664\u7528\u6237\u65f6\uff0c\u540c\u540d\u89d2\u8272\u4e5f\u4f1a\u88ab\u5220\u9664\u3002\u5982\u679c\u65b0\u5efa\u7528\u6237\u65f6\u540c\u540d\u89d2\u8272\u5df2\u7ecf\u5b58\u5728\uff0c\u5219\u521b\u5efa\u5931\u8d25\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u4e00\u89d2\u8272\u53ef\u4ee5\u5bf9\u591a\u4e2a\u56fe\u6709\u4e0d\u540c\u7684\u6743\u9650\u3002\u7528\u6237\u5bf9\u67d0\u5f20\u56fe\u7684\u6743\u9650\u7531\u5176\u6240\u6709\u89d2\u8272\u5bf9\u8be5\u56fe\u7684\u6700\u9ad8\u6743\u9650\u51b3\u5b9a\u3002"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u4f7f\u7528\u56db\u7ea7\u6743\u9650\uff0c\u4e0d\u7528\u7684\u7528\u6237\u5bf9\u4e0d\u540c\u7684\u5b50\u56fe\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u6743\u9650\uff0c\u56db\u79cd\u6743\u9650\u53ca\u5176\u8bf4\u660e\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u6743\u9650"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"NONE"}),(0,r.jsx)(e.td,{children:"\u65e0\u6743\u9650"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"READ"}),(0,r.jsx)(e.td,{children:"\u53ea\u8bfb"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"WRITE"}),(0,r.jsx)(e.td,{children:"\u53ef\u8bfb\u5199\u5b50\u56fe\u4e2d\u7684\u70b9\u548c\u8fb9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"FULL"}),(0,r.jsx)(e.td,{children:"\u5b8c\u5168\u6743\u9650\uff0c\u5305\u62ec\u66f4\u6539\u5143\u6570\u636e\uff08label, index\uff09\uff0c\u7ba1\u7406\u5b58\u50a8\u8fc7\u7a0b\uff0c\u4ee5\u53ca\u5220\u9664\u5b50\u56fe\u4e2d\u7684\u6240\u6709\u6570\u636e"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u7ba1\u7406\u5458\u5bf9\u6240\u6709\u5b50\u56fe\u90fd\u6709\u5b8c\u5168\u6743\u9650\uff0c\u65b0\u5efa\u7684\u7528\u6237\u5bf9\u6240\u6709\u5b50\u56fe\u90fd\u6ca1\u6709\u6743\u9650\u3002\u5c06\u7528\u6237\u52a0\u5165\u7ba1\u7406\u5458\u89d2\u8272\u4e2d\u53ef\u4ee5\u5c06\u7528\u6237\u63d0\u5347\u4e3a\u7ba1\u7406\u5458\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"621\u6dfb\u52a0\u89d2\u8272",children:"6.2.1.\u6dfb\u52a0\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u89d2\u8272\uff0c\u5e76\u8bbe\u7f6e\u5176\u63cf\u8ff0\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u540d\u53ea\u80fd\u7531\u5b57\u6bcd\uff0c\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\u6784\u6210\uff0c\u5bc6\u7801\u5219\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\u3002\u89d2\u8272\u540d\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7 64 \u5b57\u8282\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u63cf\u8ff0\u53ef\u4ee5\u662f\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u957f\u5ea6\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"role"}),(0,r.jsx)(e.td,{children:"\u89d2\u8272\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u89d2\u8272\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "role": "new_role",\n "description": "This is a new role.",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"622\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",children:"6.2.2.\u4fee\u6539\u89d2\u8272\u63cf\u8ff0"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539\u89d2\u8272\u7684\u63cf\u8ff0\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002\u89d2\u8272\u63cf\u8ff0\u53ef\u4ee5\u662f\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u957f\u5ea6\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/description"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u65b0\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role/role1/description\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "description": "modified description"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"623\u5217\u51fa\u6240\u6709\u89d2\u8272",children:"6.2.3.\u5217\u51fa\u6240\u6709\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u6570\u636e\u5e93\u7684\u6240\u6709\u89d2\u8272\u3002\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6240\u6709\u89d2\u8272\u53ca\u5176\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/role\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": {\n "disabled": false,\n "description": "Builtin administrator group.",\n "permissions": {"default":"FULL", "graph1":"FULL"}\n },\n "role1": {\n "disabled": true,\n "description": "Another role",\n "permissions": {"default":"READ"}\n }\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"624\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",children:"6.2.4.\u83b7\u53d6\u89d2\u8272\u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u89d2\u8272\u7684\u4fe1\u606f\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u89d2\u8272\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/role/role1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "disabled": true,\n "description": "Another role",\n "permissions": {"default":"READ"}\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"625\u5220\u9664\u89d2\u8272",children:"6.2.5.\u5220\u9664\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u5220\u9664\u6307\u5b9a\u89d2\u8272\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/role/role1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"626\u7981\u7528\u89d2\u8272",children:"6.2.6.\u7981\u7528\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u53ef\u4ee5\u88ab\u7981\u7528\u3002\u89d2\u8272\u88ab\u7981\u7528\u540e\uff0c\u5177\u6709\u8be5\u89d2\u8272\u7684\u7528\u6237\u5c06\u4e0d\u518d\u4ece\u8be5\u89d2\u8272\u4e2d\u83b7\u5f97\u4efb\u4f55\u6743\u9650\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/disable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/role/role1/disable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"627\u542f\u7528\u89d2\u8272",children:"6.2.7.\u542f\u7528\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u542f\u7528\u4e00\u4e2a\u88ab\u7981\u7528\u7684\u89d2\u8272\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/enable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/role/role1/enable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"628\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",children:"6.2.8.\u8bbe\u7f6e\u89d2\u8272\u6743\u9650"}),"\n",(0,r.jsx)(e.p,{children:"\u4e3a\u6307\u5b9a\u89d2\u8272\u8bbe\u7f6e\u6743\u9650\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u6743\u9650\u5217\u8868\u5fc5\u987b\u662f\u201c\u5168\u91cf\u5217\u8868\u201d\uff0c\u5373\u8be5\u5217\u8868\u9700\u8981\u5305\u542b\u8be5\u89d2\u8272\u80fd\u64cd\u4f5c\u7684\u6240\u6709\u56fe\u53ca\u5176\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/permissions"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u56fe\u540d\u79f0\u53ca\u76f8\u5e94\u6743\u9650\u7684\u5b57\u5178\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role/role1/permissions\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "graph1" : "FULL",\n "graph2" : "READ"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"63\u670d\u52a1\u5668\u72b6\u6001",children:"6.3.\u670d\u52a1\u5668\u72b6\u6001"}),"\n",(0,r.jsx)(e.h4,{id:"631\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",children:"6.3.1.\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e\uff0c\u914d\u7f6e\u4fee\u6539\u540e\u7acb\u5373\u751f\u6548\uff0c\u5e76\u5c06\u5f71\u54cd\u6240\u6709\u670d\u52a1\u5668\u3002\u8fd9\u4e9b\u914d\u7f6e\u7684\u4f18\u5148\u7ea7\u9ad8\u4e8e\u914d\u7f6e\u6587\u4ef6\u4ee5\u53ca\u547d\u4ee4\u884c\u53c2\u6570\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/config"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u8bf7\u6c42\u4e3a\u4e00\u4e2a\u5b57\u5178\uff0c\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:'{"opt1":v1}'})," \u53ef\u4ee5\u5c06\u540d\u4e3a",(0,r.jsx)(e.code,{children:"opt1"}),"\u7684\u914d\u7f6e\u4fee\u6539\u4e3a",(0,r.jsx)(e.code,{children:"v1"}),"\u3002"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u914d\u7f6e\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u503c\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_DB_ASYNC"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u5f02\u6b65\u6a21\u5f0f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_TXN_OPTIMISTIC"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u9ed8\u8ba4\u4f7f\u7528\u4e50\u89c2\u4e8b\u52a1\u9501"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_AUDIT_LOG_ENABLE"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u5ba1\u8ba1\u65e5\u5fd7"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/config\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "OPT_DB_ASYNC": true,\n "OPT_AUDIT_LOG_ENABLE": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"632\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",children:"6.3.2.\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"lgraph_version"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u7248\u672c\u53f7"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_branch"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u5206\u652f"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_commit"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"web_commit"}),(0,r.jsx)(e.td,{children:"\u524d\u7aef\u7801\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_id"}),(0,r.jsx)(e.td,{children:"CPP \u7f16\u8bd1\u5668 ID"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_version"}),(0,r.jsx)(e.td,{children:"CPP \u7f16\u8bd1\u5668\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"python_version"}),(0,r.jsx)(e.td,{children:"PYTHON \u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"node"}),(0,r.jsx)(e.td,{children:"\u70b9 uri"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationship"}),(0,r.jsx)(e.td,{children:"\u8fb9 uri"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpu"}),(0,r.jsx)(e.td,{children:"cpu \u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8CPU%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668 CPU \u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk"}),(0,r.jsx)(e.td,{children:"\u786c\u76d8 IO \u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A1%AC%E7%9B%98%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"memory"}),(0,r.jsx)(e.td,{children:"\u5185\u5b58\u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%85%E5%AD%98%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_space"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8D%A0%E7%94%A8%E7%A9%BA%E9%97%B4",children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_config"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF",children:"\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"up_time"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93\u5728\u7ebf\u65f6\u957f\uff08\u79d2\uff09"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "lgraph_version": "1.2.0",\n "git_branch": "master",\n "git_commit": "9e2977d",\n "web_commit": "1e2823d",\n "cpu_id": "GUN",\n "cpu_version": "4.8.5",\n "python_version": "3.2",\n "node": "/node",\n "relationship": "/relationship",\n "cpu": {\n "self": 25,\n "server": 35,\n "unit": "%"\n },\n "disk": {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n },\n "memory": {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n },\n "db_space": {\n "space": 57344,\n "unit": "B"\n },\n "db_config": {\n "db_async": false,\n "disable_auth": false,\n "enable_ha": false,\n ...\n },\n "up_time": 3235\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"633\u670d\u52a1\u5668-cpu-\u72b6\u6001",children:"6.3.3.\u670d\u52a1\u5668 CPU \u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/cpu"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f CPU \u4f7f\u7528\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 CPU \u4f7f\u7528\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/cpu\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25,\n "server": 35,\n "unit": "%"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"634\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",children:"6.3.4.\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/disk"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u8bfb\u901f\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"write"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u5199\u901f\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/disk\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"635\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",children:"6.3.5.\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/memory"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\u5185\u5b58\u4f7f\u7528\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_avail"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u53ef\u7528\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_total"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u603b\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/memory\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"636\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",children:"6.3.6.\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_space"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"space"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk_avail"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u53ef\u7528\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk_total"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u603b\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_space\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "disk_avail"::360074579968,\n "disk_total"::984373800960,\n "space": 57344,\n "unit": "B"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",children:"6.3.7.\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_config"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_async"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5de5\u4f5c\u6a21\u5f0f\uff08\u540c\u6b65\u6216\u5f02\u6b65\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disable_auth"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u7981\u7528\u8eab\u4efd\u9a8c\u8bc1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ha"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u9ad8\u53ef\u7528\u6a21\u5f0f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_rpc"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528 RPC \u670d\u52a1\u5668"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"bind_host"}),(0,r.jsx)(e.td,{children:"REST \u670d\u52a1\u5668\u7684\u4e3b\u673a"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_audit_log"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u65e5\u5fd7\u5ba1\u8ba1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"port"}),(0,r.jsx)(e.td,{children:"REST \u670d\u52a1\u5668\u7684\u7aef\u53e3"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_port"}),(0,r.jsx)(e.td,{children:"RPC \u670d\u52a1\u5668\u7684\u7aef\u53e3"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optimistic_txn"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u9ed8\u8ba4\u4f7f\u7528\u4e50\u89c2\u4e8b\u52a1\u9501"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"thread_limit"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u7528\u7ebf\u7a0b\u6570"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ssl"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4f7f\u7528 SSL \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"verbose"}),(0,r.jsx)(e.td,{children:"\u8f93\u51fa\u7684\u8be6\u7ec6\u7a0b\u5ea6"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_config\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "db_async":false,\n "disable_auth":false,\n "enable_ha":false,\n "enable_rpc":false,\n "bind_host":"127.0.0.1",\n "enable_audit_log":false,\n "port":7070,\n "optimistic_txn":false,\n "rpc_port":9091,\n "thread_limit":0,\n "enable_ssl":false,\n "verbose":2\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"638\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",children:"6.3.8.\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"(\u4ec5\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\u6709\u6548)"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/peers"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u670d\u52a1\u5668\u4fe1\u606f\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u670d\u52a1\u5668\u4fe1\u606f\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 RPC \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 REST \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"state"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u72b6\u6001"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5176\u4e2d\u670d\u52a1\u5668\u72b6\u6001\u53ef\u4e3a ",(0,r.jsx)(e.code,{children:"MASTER"}),",",(0,r.jsx)(e.code,{children:"SLAVE"}),",",(0,r.jsx)(e.code,{children:"OFFLINE"}),"\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/peers\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091",\n "state":"MASTER"\n },\n {\n "rest_address":"192.168.1.22:17072",\n "rpc_address":"192.168.1.22:19092",\n "state":"SLAVE"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"639\u5f53\u524d-leader-\u4fe1\u606f",children:"6.3.9.\u5f53\u524d Leader \u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"(\u4ec5\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\u6709\u6548)"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/leader"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5f53\u524d leader \u670d\u52a1\u5668\u4fe1\u606f\uff0c\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 RPC \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 REST \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/leader\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6310\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",children:"6.3.10.\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/statistics"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5f53\u524d\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f\uff0c\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"requests/second"}),(0,r.jsx)(e.td,{children:"\u6bcf\u79d2\u5904\u7406\u7684\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"writes/second"}),(0,r.jsx)(e.td,{children:"\u6bcf\u79d2\u5904\u7406\u7684\u5199\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"running_tasks"}),(0,r.jsx)(e.td,{children:"\u6b63\u5728\u6267\u884c\u7684\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"failure_rate"}),(0,r.jsx)(e.td,{children:"\u8bf7\u6c42\u5931\u8d25\u7387"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/statistics\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "failure_rate": 2.3,\n "requests/second": 122.3,\n "running_tasks": 10,\n "writes/second": 12.4\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6311\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",children:"6.3.11.\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/log/?begin_time={begin_time}&end_time={end_time}&user={user}&num_log={num_log}&descending_order={descending_order}"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u8d77\u59cb\u65f6\u95f4(\u5fc5\u586b\uff0c\u683c\u5f0f\u4e3a YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"\u65f6\u95f4\u6233"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u7ed3\u675f\u65f6\u95f4(\u9ed8\u8ba4\u4e3a\u5f53\u524d\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3a YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"\u65f6\u95f4\u6233"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u64cd\u4f5c\u8005(\u7ba1\u7406\u5458\u53ef\u67e5\u8be2\u6240\u6709\u7528\u6237\u7684\u65e5\u5fd7\uff0c\u666e\u901a\u7528\u6237\u53ea\u80fd\u67e5\u8be2\u672c\u4eba\u65e5\u5fd7)"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_log"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u6570\u91cf(\u9ed8\u8ba4\u4e3a 100)"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"descending_order"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u7ed3\u679c\u662f\u5426\u964d\u5e8f\u8f93\u51fa(\u9ed8\u8ba4\u4e3a true)"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5ba1\u8ba1\u65e5\u5fd7\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u6761\u64cd\u4f5c\u65e5\u5fd7\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"index"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7d22\u5f15\u503c"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u5f00\u59cb\u65f6\u95f4"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7ed3\u675f\u65f6\u95f4"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u53d1\u8d77\u8005"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u56fe"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_write"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u4e3a\u8bfb\u64cd\u4f5c\u6216\u8005\u5199\u64cd\u4f5c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"success"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u662f\u5426\u6210\u529f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"content"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7b80\u8981\u5185\u5bb9"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/log/?begin_time=2020-02-17%2015:00:00&end_time=2020-02-20%2012:00:00&user=admin&num_log=100&descending_order=false\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "post /login Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "",\n "index": 1,\n "read_write": "read",\n "success": true,\n "type": "Security",\n "user":"admin"\n },\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "Load plugin : `echo` Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "default",\n "index": 2,\n "read_write": "write",\n "success": true,\n "type": "Plugin",\n "user": "admin"\n },\n ...\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"64\u4efb\u52a1\u7ba1\u7406",children:"6.4.\u4efb\u52a1\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u957f\u4efb\u52a1\u7684\u8ddf\u8e2a\u548c\u4e2d\u6b62\u529f\u80fd\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7 REST API \u6765\u67e5\u8be2\u5f53\u524d\u6b63\u5728\u8fd0\u884c\u7684\u5728 Cypher \u548c\u5b58\u50a8\u8fc7\u7a0b\u67e5\u8be2\uff0c\u5e76\u9009\u62e9\u4e2d\u6b62\u6b63\u5728\u6267\u884c\u7684\u67e5\u8be2\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u4efb\u52a1\u7ba1\u7406\u5bf9\u5e94\u7684 URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/task/{thread_id}/{task_id}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"641\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",children:"6.4.1.\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u8fd4\u56de\u7684 JSON \u4e3a\u4e00\u4e2a\u6570\u7ec4\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"time_elapsed"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u5df2\u7ecf\u6267\u884c\u7684\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"task_id"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1 ID"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/task\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "description" : "[CPP_PLUGIN] scan_graph",\n "time_elapsed" : 13.987,\n "task_id" : "3_10"\n },\n {\n "description" : "[CYPHER] MATCH(n) return n",\n "time_elapsed" : 30.887,\n "task_id" : "2_6"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"642\u4e2d\u6b62\u4efb\u52a1",children:"6.4.2.\u4e2d\u6b62\u4efb\u52a1"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task/{task_id}"}),"\n\u5176\u4e2d ",(0,r.jsx)(e.code,{children:"{task_id}"})," \u662f ",(0,r.jsx)(e.code,{children:"GET /task"})," \u8fd4\u56de\u7ed3\u679c\u4e2d\u7684 ",(0,r.jsx)(e.code,{children:"task_id"}),"\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/task/3_10\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"65\u5b50\u56fe\u7ba1\u7406",children:"6.5.\u5b50\u56fe\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u652f\u6301\u591a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e4b\u95f4\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u7684\u5b50\u56fe\u53ef\u4ee5\u5bf9\u4e0d\u540c\u7528\u6237\u5f00\u653e\u4e0d\u540c\u6743\u9650\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u6dfb\u52a0\u548c\u5220\u9664\u5b50\u56fe\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"651\u521b\u5efa\u65b0\u5b50\u56fe",children:"6.5.1.\u521b\u5efa\u65b0\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u683c\u5f0f\u4e3a { {\u5217\u540d 1}:{\u5217\u503c 1},... }"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"graph1",\n "config" : {\n "max_size_GB":2048,\n "description": "description of graph1"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"652\u5220\u9664\u5b50\u56fe",children:"6.5.2.\u5220\u9664\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"653\u5217\u51fa\u6240\u6709\u5b50\u56fe",children:"6.5.3.\u5217\u51fa\u6240\u6709\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b50\u56fe\u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": {\n "max_size_GB":1024,\n "description":"description of graph1"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"654\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",children:"6.5.4.\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b50\u56fe\u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "max_size_GB":1024,\n "description":"description of graph1"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"66\u5143\u6570\u636e\u7ba1\u7406",children:"6.6.\u5143\u6570\u636e\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u662f\u4e00\u4e2a\u5177\u5907\u591a\u56fe\u80fd\u529b\u7684\u5f3a\u6a21\u5f0f\u5c5e\u6027\u56fe\u6570\u636e\u5e93\u3002\u5728\u6bcf\u4e00\u5f20\u5b50\u56fe\u4e2d\uff0c\u6bcf\u79cd\u70b9\u548c\u8fb9\u90fd\u9700\u8981\u6709\u9884\u5b9a\u4e49\u7684\u6570\u636e\u683c\u5f0f\u3002\u6570\u636e\u683c\u5f0f\u7531 Label \u51b3\u5b9a\uff0c\u6bcf\u79cd Label \u90fd\u6709\u81ea\u5df1\u7684\u6570\u636e\u683c\u5f0f\u3002\u7528\u6237\u53ef\u4ee5\u4f7f\u7528 REST API \u6dfb\u52a0\uff0c\u5220\u9664\u548c\u67e5\u8be2 Label \u53ca\u5176\u5bf9\u5e94\u7684\u6570\u636e\u683c\u5f0f\u3002"}),"\n",(0,r.jsx)(e.p,{children:"Label \u64cd\u4f5c\u5bf9\u5e94\u7684 URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/label/{type}/{label_name}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d{type}\u53ef\u4ee5\u662f node \u6216\u8005 relationship\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"661\u521b\u5efalabel",children:"6.6.1.\u521b\u5efaLabel"}),"\n",(0,r.jsx)(e.p,{children:"\u521b\u5efa Label \u7684\u8fc7\u7a0b\u540c\u65f6\u4e5f\u662f\u5b9a\u4e49\u5176\u6570\u636e\u7c7b\u578b\u7684\u8fc7\u7a0b\u3002\u53ea\u6709\u521b\u5efa\u4e86 Label \u624d\u80fd\u5728\u56fe\u4e2d\u63d2\u5165\u76f8\u5e94\u7c7b\u578b\u7684\u70b9\u6216\u8005\u8fb9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u5b9a\u4e49"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_vertex"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u662f\u70b9 Label"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary"}),(0,r.jsx)(e.td,{children:"\u70b9\u7684\u4e3b\u952e\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"\u8fb9\u7684\u7ea6\u675f"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"primary"})," \u5728 ",(0,r.jsx)(e.code,{children:"is_vertex"})," \u4e3a ",(0,r.jsx)(e.code,{children:"true"})," \u7684\u65f6\u5019\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u5b57\u6bb5\u53ea\u6709\u70b9\u624d\u6709, \u521b\u5efa\u70b9\u7684\u65f6\u5019\u5fc5\u987b\u8bbe\u7f6e\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," \u5728 ",(0,r.jsx)(e.code,{children:"is_vertex"})," \u4e3a ",(0,r.jsx)(e.code,{children:"false"})," \u7684\u65f6\u5019\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u5b57\u6bb5\u53ea\u6709\u8fb9\u6709\u3002\u8fd9\u4e2a\u5b57\u6bb5\u9650\u5236\u4e86\u8be5\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u53ea\u80fd\u662f\u54ea\u4e9b\u70b9\u7684\u7ec4\u5408\uff0c\u6bd4\u5982\uff1a",(0,r.jsx)(e.code,{children:'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]'}),"\uff0c\u9650\u5236\u4e86\u8be5\u8fb9\u53ea\u80fd\u662f\u4ece ",(0,r.jsx)(e.code,{children:"vertex_label1"})," \u5230 ",(0,r.jsx)(e.code,{children:"vertex_label2"})," \u548c \u4ece ",(0,r.jsx)(e.code,{children:"vertex_label3"})," \u5230 ",(0,r.jsx)(e.code,{children:"vertex_label4"}),"\u3002\u5982\u679c\u4e0d\u60f3\u6709\u4efb\u4f55\u9650\u5236\uff0c\u4e0d\u8bbe\u7f6e\u8be5\u5b57\u6bb5\u5373\u53ef\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5176\u4e2d",(0,r.jsx)(e.code,{children:"fields"}),"\u4e3a\u4e00\u4e2a\u6570\u7ec4\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u5b9a\u4e49\u6570\u636e\u7684\u4e00\u5217\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u6570\u636e\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u6709\u4ee5\u4e0b\u7c7b\u578b\uff1a int8, int16, int32, int64, float, double, string, date, datetime, binary, bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\uff08\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a false\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"Actor",\n "fields": [\n {"name":"uid", "type":"int64", "optional":false},\n {"name":"name", "type":"string", "optional":true}\n ],\n "is_vertex":true,\n "primary" : "uid"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"662\u5217\u51fa\u6240\u6709-label",children:"6.6.2.\u5217\u51fa\u6240\u6709 Label"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label \u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex"}),(0,r.jsx)(e.td,{children:"\u70b9 Label \u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "edge": [\n "HAS_CHILD",\n "MARRIED",\n "BORN_IN",\n "DIRECTED",\n "WROTE_MUSIC_FOR",\n "ACTED_IN"\n ],\n "vertex": [\n "Person",\n "City",\n "Film"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"663\u83b7\u53d6-label-\u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",children:"6.6.3.\u83b7\u53d6 Label \u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label/{[node|relationship]}/{label_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6570\u636e\u5217\u5b9a\u4e49\u8868\uff0c\u7c7b\u578b\u662f\u4e00\u4e2a\u8bcd\u5178\uff0ckey \u4e3a\u5217\u540d\uff0cvalue \u4e3a\u5217\u5b9a\u4e49\uff0c\u5217\u5b9a\u4e49\u89c1\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.li,{}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"\u8be5\u5217\u503c\u662f\u5426\u53ef\u4e3a\u7a7a"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u503c\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label/node/person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "age":{\n "optional":false,\n "type":"int16"\n },\n "id":{\n "optional":false,\n "type":"int8"\n },\n "name":{\n "optional":false,\n "type":"string"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"664schema-\u5bfc\u5165",children:"6.6.4.Schema \u5bfc\u5165"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/schema/text"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u6587\u4ef6\u5185\u5bb9\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"description \u7684\u5177\u4f53\u63cf\u8ff0\u65b9\u6cd5\u89c1\u300aTuGraph \u64cd\u4f5c\u624b\u518c\u300b\u4e2d\u6570\u636e\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u5185\u5bb9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Schema \u5bfc\u5165\u4f1a\u6839\u636e description \u6bd4\u8f83\u65b0\u7684 Schema \u548c\u6570\u636e\u5e93\u4e2d\u539f\u6709\u7684 Schema \u662f\u5426\u517c\u5bb9\uff0c\u68c0\u67e5\u7684\u7c92\u5ea6\u4e3a Label\u3002\u5982\u679c\u4e0d\u4e00\u81f4\u5219\u51fa\u9519\uff0c\u5982\u679c\u4e00\u81f4\u5219\u6dfb\u52a0\u539f\u5148 Schema \u4e2d\u4e0d\u5b58\u5728\u7684 Label\uff0c\u8fd4\u56de 200\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/schema/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"schema\\\\":[{\\\\"label\\\\":\\\\"actor\\\\",\\\\"primary\\\\":\\\\"aid\\\\",\\\\"properties\\\\":[{\\\\"name\\\\":\\\\"aid\\\\",\\\\"type\\\\":\\\\"STRING\\\\"}],\\\\"type\\\\":\\\\"VERTEX\\\\"}]}"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4e0a\u8ff0 description \u7684\u503c\u662f\u5982\u4e0b json \u5e8f\u5217\u5316\u540e\u7684\u5b57\u7b26\u4e32:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [{ "name": "aid", "type": "STRING" }],\n "primary": "aid"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": ""\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"67\u70b9\u64cd\u4f5c",children:"6.7.\u70b9\u64cd\u4f5c"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/node/{vid}\n"})}),"\n",(0,r.jsx)(e.p,{children:"Nodes \u63d0\u4f9b\u8282\u70b9\uff08Vertex\uff09\u7684 CRUD \u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST/PUT/DELETE \u8bf7\u6c42\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"671\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",children:"6.7.1.\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_label"}),(0,r.jsx)(e.td,{children:"\u70b9 label \u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_vertex"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"\u6ce8\u610f num_vertex \u8fd4\u56de\u7684\u5e76\u4e0d\u662f\u51c6\u786e\u7684\u70b9\u6570\u91cf\uff0c\u53ea\u662f\u4e00\u4e2a\u4f30\u8ba1\u503c\u3002"})}),"\n",(0,r.jsx)(e.h4,{id:"672\u521b\u5efa\u4e00\u4e2a\u70b9",children:"6.7.2.\u521b\u5efa\u4e00\u4e2a\u70b9"}),"\n",(0,r.jsx)(e.p,{children:"\u5411\u6570\u636e\u5e93\u4e2d\u63d2\u5165\u4e00\u4e2a\u70b9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u5176\u4e2d key \u662f\u5217\u540d\uff0cvalue \u662f\u76f8\u5e94\u503c\u3002value \u5fc5\u987b\u662f\u4e0e\u5217\u7c7b\u578b\u76f8\u5e94\u7684\u7c7b\u578b\uff0c\u5982\u5217\u4e3a int32\uff0c\u5219 value \u53ea\u80fd\u662f\u6574\u6570\u3002"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\u5e76\u5728 JSON \u5185\u5bb9\u4e2d\u8fd4\u56de\u65b0\u70b9 vid\u3002\u8be5 ID \u53ef\u7528\u4e8e\u540e\u7eed\u7684\u70b9\u64cd\u4f5c\u4e2d\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "property" : {\n "name" : "Passerby A",\n "birthyear" : 1989\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n 21\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"673\u6279\u91cf\u521b\u5efa\u70b9",children:"6.7.3.\u6279\u91cf\u521b\u5efa\u70b9"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u5141\u8bb8\u4e00\u6b21\u6027\u63d2\u5165\u591a\u4e2a\u70b9\uff0c\u4ee5\u51cf\u5c11\u7f51\u7edc\u5f00\u9500\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d fields \u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\u5217\u8868\uff0c\u5217\u51fa\u4e00\u7cfb\u5217\u5217\u540d\uff1bvalues \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5217\u8868\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u5217\u6570\u636e\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\u5e76\u5728 JSON \u5185\u5bb9\u4e2d\u8fd4\u56de\u65b0\u589e\u52a0\u7684\u70b9\u7684 vid \u5217\u8868\uff0c\u8be5\u5217\u8868\u4e2d\u6bcf\u4e00\u4e2a vid \u6309\u987a\u5e8f\u5bf9\u5e94\u8bf7\u6c42\u4e2d\u7684\u6bcf\u4e00\u4e2a\u70b9\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "fields" : ["name", "birthyear"],\n "values" : [["alex", 2000],\n ["bob", 1999]]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n 22,\n 23\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"674\u83b7\u53d6\u70b9",children:"6.7.4.\u83b7\u53d6\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u683c\u5f0f\u4e3a { {\u5217\u540d 1}:{\u5217\u503c 1},...}"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "label": "Person"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"675\u5220\u9664\u70b9",children:"6.7.5.\u5220\u9664\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"\u88ab\u5220\u6389\u7684\u70b9\u7684\u5165\u8fb9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"\u88ab\u5220\u6389\u7684\u70b9\u7684\u51fa\u8fb9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/{graph_name}/node/4\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "in": 0,\n "out": 0\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"676\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",children:"6.7.6.\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Node \u6240\u6709\u5c5e\u6027\uff08\u5b57\u5178\uff09"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"677\u83b7\u53d6\u70b9\u5c5e\u6027",children:"6.7.7.\u83b7\u53d6\u70b9\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Node \u67d0\u4e00\u5c5e\u6027"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"678\u66f4\u65b0\u70b9\u5c5e\u6027",children:"6.7.8.\u66f4\u65b0\u70b9\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "birthyear" : 1964,\n "mobile" : "********"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"68\u8fb9\u64cd\u4f5c",children:"6.8.\u8fb9\u64cd\u4f5c"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/relationship/{euid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0e Nodes \u529f\u80fd\u7c7b\u4f3c\uff0cRelationships \u63d0\u4f9b\u8fb9\uff08edge\uff09\u7684 CRUD \u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST/PUT/DELETE \u8bf7\u6c42\u3002\u6bcf\u4e00\u6761\u8fb9\u90fd\u53ef\u4ee5\u7531\u4e00\u4e2a\u552f\u4e00 ID\uff08euid\uff09\u6765\u6807\u8bc6\u3002\u8fd9\u4e2a ID \u53ef\u4ee5\u4ece\u5728\u63d2\u5165\u8fb9\u65f6\u83b7\u5f97\uff0c\u6216\u8005\u5728 ",(0,r.jsx)(e.a,{href:"#%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E8%BE%B9",children:"\u5217\u51fa\u6240\u6709\u8fb9"})," \u64cd\u4f5c\u4e2d\u5f97\u5230\u3002"]}),"\n",(0,r.jsx)(e.h4,{id:"681\u521b\u5efa\u4e00\u6761\u8fb9",children:"6.8.1.\u521b\u5efa\u4e00\u6761\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"\u76ee\u7684\u70b9 ID"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u540c\u65f6\u8fd4\u56de\u65b0\u5efa\u7acb\u7684\u8fb9\u7684 euid\uff08\u5b57\u7b26\u4e32\uff09\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node/{src}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "destination" : 14,\n "label" : "BORN_IN",\n "property" : {}\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "1_14_1_0"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"682\u6279\u91cf\u521b\u5efa\u8fb9",children:"6.8.2.\u6279\u91cf\u521b\u5efa\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d edge \u662f\u4e00\u4e2a\u6570\u636e\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u4e00\u6761\u8fb9\uff0c\u5176\u5b9a\u4e49\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"source"}),(0,r.jsx)(e.td,{children:"\u8d77\u70b9 id"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"\u7ec8\u70b9 id"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5217\u5bf9\u5e94 fields \u4e2d\u7684\u4e00\u4e2a\u5217\uff0c\u7c7b\u578b\u662f\u8be5\u5217\u5bf9\u5e94\u7684\u7c7b\u578b"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u540c\u65f6\u8fd4\u56de\u65b0\u5efa\u7acb\u7684\u8fb9\u7684 euid \u5217\u8868\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "knows",\n "fields" : ["from_year", "weight"],\n "edge" : [\n {"source":0, "destination":1, "values":[2011, 0.8]},\n {"source":1, "destination":2, "values":[2008, 0.9]}\n ]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_1_0_0",\n "1_2_0_0"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"683\u5217\u51fa\u6240\u6709\u51fa\u8fb9outgoing-relationships",children:"6.8.3.\u5217\u51fa\u6240\u6709\u51fa\u8fb9\uff08outgoing relationships\uff09"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/out"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 src \u7684\u6240\u6709\u51fa\u8fb9 euid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/out\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "4_5_0_0",\n "4_7_1_2"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"684\u5217\u51fa\u6240\u6709\u5165\u8fb9incoming-relationships",children:"6.8.4.\u5217\u51fa\u6240\u6709\u5165\u8fb9\uff08incoming relationships\uff09"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{dst}/relationship/in"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 dst \u7684\u6240\u6709\u5165\u8fb9 euid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/in\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"685\u5217\u51fa\u6240\u6709\u8fb9",children:"6.8.5.\u5217\u51fa\u6240\u6709\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/all"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"\u5165\u8fb9"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"\u51fa\u8fb9"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationships/all\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "out": [\n "4_5_0_0",\n "4_7_1_2"\n ],\n "in": [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"686\u83b7\u53d6\u8fb9",children:"6.8.6.\u83b7\u53d6\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/0_4_0_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n },\n "label": "MARRIED"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"687\u5220\u9664\u8fb9",children:"6.8.7.\u5220\u9664\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/relationship/14_0_1_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"688\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",children:"6.8.8.\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u8fb9\u5c5e\u6027\u5b57\u5178"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/14_0_2_0/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n {\n "weight": 0.8,\n "begin": 20180922\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"689\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",children:"6.8.9.\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': \u5982\u679c\u6210\u529f,\u8fd4\u56de\u4ee3\u7801 200,\u540c\u65f6\u8fd4\u56de\u8fb9\u7684\u5c5e\u6027\u3002\u5982\u679c\u5931\u8d25,\u8fd4\u56de\u4ee3\u7801 400,\u540c\u65f6\u8fd4\u56de "Illegal field."\u3002']}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/17_0_2_2/property/charactername\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Henri Ducard"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6810\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",children:"6.8.10.\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/graph1/relationship/17_0_2_2\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "charactername" : "Henri Ducard/passer a"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"69\u7d22\u5f15",children:"6.9.\u7d22\u5f15"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/index/{label}/{field}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u63d0\u4f9b\u7d22\u5f15\u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST \u8bf7\u6c42\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"691\u521b\u5efa\u7d22\u5f15",children:"6.9.1.\u521b\u5efa\u7d22\u5f15"}),"\n",(0,r.jsx)(e.p,{children:"\u8be5\u64cd\u4f5c\u4f1a\u542f\u52a8\u4e00\u4e2a\u521b\u5efa\u7d22\u5f15\u7684\u540e\u53f0\u4efb\u52a1\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5217\u51fa\u8be5 Label \u76f8\u5173\u7684\u6240\u6709\u7d22\u5f15\u6765\u68c0\u67e5\u65b0\u5efa\u7d22\u5f15\u7684\u72b6\u6001\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field"}),(0,r.jsx)(e.td,{children:"\u57df\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u7d22\u5f15\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"int\u7c7b\u578b\uff0c0\u8868\u793a\u975e\u552f\u4e00\u7d22\u5f15\uff0c1\u8868\u793a\u5168\u5c40\u552f\u4e00\u7d22\u5f15\uff0c2\u8868\u793a\u4e24\u70b9\u95f4\u552f\u4e00\u7d22\u5f15"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label": "Person",\n "field": "birthyear",\n "is_unique" : false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"692\u5217\u51fa\u6240\u6709\u7d22\u5f15",children:"6.9.2.\u5217\u51fa\u6240\u6709\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7d22\u5f15\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u7d22\u5f15\u63cf\u8ff0\uff0c\u683c\u5f0f\u4e0e",(0,r.jsx)(e.a,{href:"#indexspec",children:"\u521b\u5efa\u7d22\u5f15"}),"\u65f6\u4f7f\u7528\u683c\u5f0f\u76f8\u540c\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "field": "name",\n "label": "City",\n "is_unique": false\n },\n {\n "field": "title",\n "label": "Film",\n "is_unique": false\n },\n {\n "field": "name",\n "label": "Person",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"693\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a-label-\u76f8\u5173\u7684\u7d22\u5f15",children:"6.9.3.\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a Label \u76f8\u5173\u7684\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7d22\u5f15\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u7d22\u5f15\u63cf\u8ff0\uff0c\u683c\u5f0f\u4e0e",(0,r.jsx)(e.a,{href:"#indexspec",children:"\u521b\u5efa\u7d22\u5f15"}),"\u65f6\u4f7f\u7528\u683c\u5f0f\u76f8\u540c\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "label": "Person",\n "field": "name",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"694\u5220\u9664\u7d22\u5f15",children:"6.9.4.\u5220\u9664\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/index/Person/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"695\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",children:"6.9.5.\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/?field={field}&value={value}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 vid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person/?field=birthyear&value=1986\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n Output:\n {\n [\n 1,\n 8\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h3,{id:"610\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",children:"6.10.\u5728\u7ebf\u589e\u91cf\u5bfc\u5165"}),"\n",(0,r.jsx)(e.h4,{id:"6101\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",children:"6.10.1.\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/import/text"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u6587\u4ef6\u5185\u5bb9\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"\u8981\u5bfc\u5165\u7684\u6587\u4ef6\u5185\u5bb9\uff08\u5efa\u8bae\u6700\u5927\u5728 16MB \u5de6\u53f3\uff0c\u6700\u957f\u4e0d\u8d85\u8fc7 17MB\uff09"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32 / \u6570\u7ec4 / \u5bf9\u8c61"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"continue_on_error"}),(0,r.jsxs)(e.td,{children:["\u51fa\u9519\u540e\u662f\u5426\u7ee7\u7eed\u5bfc\u5165\uff08\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a",(0,r.jsx)(e.code,{children:"false"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"delimiter"}),(0,r.jsxs)(e.td,{children:["\u5206\u9694\u7b26\uff08\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a",(0,r.jsx)(e.code,{children:"\u201c,\u201d"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\uff09"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"}),(0,r.jsx)(e.td,{})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"description \u7684\u5177\u4f53\u63cf\u8ff0\u65b9\u6cd5\u89c1\u300aTuGraph \u64cd\u4f5c\u624b\u518c\u300b\u4e2d\u6570\u636e\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u5185\u5bb9\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u5206\u9694\u7b26\u53ef\u4ee5\u662f\u5355\u5b57\u7b26\uff0c\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\uff0c\u4f46\u4e0d\u80fd\u5305\u542b",(0,r.jsx)(e.code,{children:"\\r"}),"\u6216\u8005",(0,r.jsx)(e.code,{children:"\\n"}),"\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"data \u53ef\u4ee5\u662f\u5982\u4e0b\u5f62\u5f0f\u4e4b\u4e00\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["\u5b57\u7b26\u4e32\u5982 ",(0,r.jsx)(e.code,{children:'"1,2\\n3,4\\n"'})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["ASCII \u7801\u7ec4\u6210\u7684\u6570\u7ec4\u5982 ",(0,r.jsx)(e.code,{children:"[49,44,50,10,51,44,52,10]"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["\u5f62\u5982\u4e0a\u8ff0\u6570\u7ec4\u7684\u5b57\u5178\u5982 ",(0,r.jsx)(e.code,{children:'{"0":49,"1":44,"2":50,"3":10,"4":51,"5":44,"6":52,"7":10}'})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u7cfb\u7edf",(0,r.jsx)(e.strong,{children:"\u4e0d\u4f1a"}),"\u81ea\u52a8\u6267\u884c\u65b0\u5efa label\u3001\u6dfb\u52a0\u7d22\u5f15\u7b49\u64cd\u4f5c\u3002\u5728\u6b64\u64cd\u4f5c\u4e4b\u524d\u9700\u8981\u4fdd\u8bc1\u6d89\u53ca\u7684 label \u5df2\u7ecf\u5b58\u5728\u5e76\u5177\u6709\u9002\u5f53\u7684\u7d22\u5f15\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5982\u679c\u6210\u529f\u5bfc\u5165\u5b8c\u6bd5\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u5e76\u5728 ",(0,r.jsx)(e.code,{children:"log"})," \u5b57\u6bb5\u8fd4\u56de\u4e00\u4e9b\u65e5\u5fd7\u4fe1\u606f\uff08\u53ef\u80fd\u4e3a\u7a7a\uff09\uff1b\u5426\u5219\uff0c\u4fdd\u8bc1\u6240\u6709\u7684\u6570\u636e\u5747\u672a\u88ab\u5bfc\u5165\uff0c\u5e76\u5728 ",(0,r.jsx)(e.code,{children:"error_message"})," \u5b57\u6bb5\u8fd4\u56de\u9519\u8bef\u4fe1\u606f\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/import/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"files\\\\":[{\\\\"columns\\\\":[\\\\"SRC_ID\\\\",\\\\"role\\\\",\\\\"DST_ID\\\\"],\\\\"format\\\\":\\\\"CSV\\\\",\\\\"label\\\\":\\\\"role\\\\",\\\\"SRC_ID\\\\":\\\\"actor\\\\",\\\\"DST_ID\\\\":\\\\"movie\\\\"}]}"}",\n "data": "1,Role1,2\\n3,Role2,4\\n",\n "continue_on_error": true,\n "delimiter": ","\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4e0a\u8ff0 description \u7684\u503c\u662f\u5982\u4e0b json \u5e8f\u5217\u5316\u540e\u7684\u5b57\u7b26\u4e32"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "files": [\n {\n "format": "CSV",\n "label": "role",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": "Missing src uid 1\\n"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u7531\u4e8e\u8bf7\u6c42\u4e2d\u6307\u5b9a\u4e86\u5728\u51fa\u9519\u65f6\u7ee7\u7eed\uff0c\u8be5\u8fd4\u56de\u4fe1\u606f\u8bf4\u660e SRC_ID \u4e3a 1 \u7684\u8fb9\u6ca1\u6709\u88ab\u5bfc\u5165\uff0c\u800c\u5176\u4ed6\u4fe1\u606f\u5bfc\u5165\u6210\u529f\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"611\u5176\u4ed6",children:"6.11.\u5176\u4ed6"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/misc\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6111\u63d0\u53d6\u5b50\u56fe",children:"6.11.1.\u63d0\u53d6\u5b50\u56fe"}),"\n",(0,r.jsx)(e.p,{children:"\u7ed9\u51fa\u70b9 id \u96c6\u5408\uff0c\u8fd4\u56de\u5305\u542b\u8be5\u96c6\u5408\u7684\u6700\u5c0f\u5b50\u56fe\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/misc/sub_graph"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex_ids"}),(0,r.jsx)(e.td,{children:"\u70b9 id \u96c6\u5408"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"nodes"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5143\u7d20\u5305\u542b vid, label, \u4ee5\u53ca\u5c5e\u6027"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationships"}),(0,r.jsx)(e.td,{children:"\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5143\u7d20\u5305\u542b src, dst, euid, label, \u4ee5\u53ca\u5c5e\u6027"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/misc/sub_graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "vertex_ids": [2, 5, 14, 20]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\n Output:\n {\n "nodes": [\n {\n "label": "Person",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "vid": 2\n },\n {\n "label": "Person",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "vid": 5\n },\n {\n "label": "City",\n "properties": {\n "name": "London"\n },\n "vid": 14\n },\n {\n "label": "Film",\n "properties": {\n "title": "Camelot"\n },\n "vid": 20\n }\n ],\n "relationships": [\n {\n "destination": 5,\n "label": "HAS_CHILD",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 20,\n "label": "ACTED_IN",\n "properties": {\n "birthyear": 1937,\n "charactername": "Guenevere",\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "source": 5\n }\n ]\n }\n'})})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(j,{...n})}):j(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>i,x:()=>c});var r=s(6540);const l={},d=r.createContext(l);function i(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:i(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/94a49e13.fa8247ff.js b/assets/js/94a49e13.fa8247ff.js
new file mode 100644
index 0000000000..016dcd5569
--- /dev/null
+++ b/assets/js/94a49e13.fa8247ff.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7981],{5132:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>h,contentTitle:()=>i,default:()=>x,frontMatter:()=>d,metadata:()=>c,toc:()=>t});var r=s(4848),l=s(8453);const d={},i="RESTful API Legacy",c={id:"client-tools/restful-api-legacy",title:"RESTful API Legacy",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/9.restful-api-legacy.md",sourceDirName:"7.client-tools",slug:"/client-tools/restful-api-legacy",permalink:"/tugraph-db/zh/client-tools/restful-api-legacy",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:9,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"RPC API",permalink:"/tugraph-db/zh/client-tools/rpc-api"},next:{title:"Cypher API",permalink:"/tugraph-db/zh/query/cypher"}},h={},t=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",id:"2\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",level:2},{value:"2.1\u8bf7\u6c42",id:"21\u8bf7\u6c42",level:3},{value:"2.2.\u6570\u636e\u683c\u5f0f",id:"22\u6570\u636e\u683c\u5f0f",level:3},{value:"2.3.\u8fd4\u56de\u503c",id:"23\u8fd4\u56de\u503c",level:3},{value:"2.4.URI\u683c\u5f0f",id:"24uri\u683c\u5f0f",level:3},{value:"3.\u767b\u5f55",id:"3\u767b\u5f55",level:2},{value:"3.1.\u767b\u5f55",id:"31\u767b\u5f55",level:3},{value:"3.2.\u8eab\u4efd\u5237\u65b0",id:"32\u8eab\u4efd\u5237\u65b0",level:3},{value:"3.3.\u4fee\u6539Token\u6709\u6548\u671f",id:"33\u4fee\u6539token\u6709\u6548\u671f",level:3},{value:"3.4.\u67e5\u8be2Token\u6709\u6548\u671f",id:"34\u67e5\u8be2token\u6709\u6548\u671f",level:3},{value:"3.5.\u767b\u51fa",id:"35\u767b\u51fa",level:3},{value:"4.\u67e5\u8be2",id:"4\u67e5\u8be2",level:2},{value:"4.1.\u8c03\u7528Cypher",id:"41\u8c03\u7528cypher",level:3},{value:"4.2.\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher",id:"42\u8c03\u7528\u5e26\u53c2\u6570\u7684-cypher",level:3},{value:"5.\u5b58\u50a8\u8fc7\u7a0b",id:"5\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",id:"52\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",id:"53\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",level:3},{value:"5.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"54\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"55\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"6.Deprecated",id:"6deprecated",level:2},{value:"6.1.\u7528\u6237\u7ba1\u7406",id:"61\u7528\u6237\u7ba1\u7406",level:3},{value:"6.1.1.\u6dfb\u52a0\u7528\u6237",id:"611\u6dfb\u52a0\u7528\u6237",level:4},{value:"6.1.2.\u5217\u51fa\u6240\u6709\u7528\u6237",id:"612\u5217\u51fa\u6240\u6709\u7528\u6237",level:4},{value:"6.1.3.\u83b7\u53d6\u7528\u6237\u4fe1\u606f",id:"613\u83b7\u53d6\u7528\u6237\u4fe1\u606f",level:4},{value:"6.1.4.\u5217\u51fa\u7528\u6237\u6743\u9650",id:"614\u5217\u51fa\u7528\u6237\u6743\u9650",level:4},{value:"6.1.5.\u66f4\u6539\u7528\u6237\u5bc6\u7801",id:"615\u66f4\u6539\u7528\u6237\u5bc6\u7801",level:4},{value:"6.1.6.\u4fee\u6539\u7528\u6237\u63cf\u8ff0",id:"616\u4fee\u6539\u7528\u6237\u63cf\u8ff0",level:4},{value:"6.1.7.\u5220\u9664\u7528\u6237",id:"617\u5220\u9664\u7528\u6237",level:4},{value:"6.1.8.\u7981\u7528\u7528\u6237",id:"618\u7981\u7528\u7528\u6237",level:4},{value:"6.1.9.\u542f\u7528\u7528\u6237",id:"619\u542f\u7528\u7528\u6237",level:4},{value:"6.1.10.\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",id:"6110\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",level:4},{value:"6.2.\u89d2\u8272\u7ba1\u7406",id:"62\u89d2\u8272\u7ba1\u7406",level:3},{value:"6.2.1.\u6dfb\u52a0\u89d2\u8272",id:"621\u6dfb\u52a0\u89d2\u8272",level:4},{value:"6.2.2.\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",id:"622\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",level:4},{value:"6.2.3.\u5217\u51fa\u6240\u6709\u89d2\u8272",id:"623\u5217\u51fa\u6240\u6709\u89d2\u8272",level:4},{value:"6.2.4.\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",id:"624\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",level:4},{value:"6.2.5.\u5220\u9664\u89d2\u8272",id:"625\u5220\u9664\u89d2\u8272",level:4},{value:"6.2.6.\u7981\u7528\u89d2\u8272",id:"626\u7981\u7528\u89d2\u8272",level:4},{value:"6.2.7.\u542f\u7528\u89d2\u8272",id:"627\u542f\u7528\u89d2\u8272",level:4},{value:"6.2.8.\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",id:"628\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",level:4},{value:"6.3.\u670d\u52a1\u5668\u72b6\u6001",id:"63\u670d\u52a1\u5668\u72b6\u6001",level:3},{value:"6.3.1.\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",id:"631\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",level:4},{value:"6.3.2.\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",id:"632\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",level:4},{value:"6.3.3.\u670d\u52a1\u5668 CPU \u72b6\u6001",id:"633\u670d\u52a1\u5668-cpu-\u72b6\u6001",level:4},{value:"6.3.4.\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",id:"634\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",level:4},{value:"6.3.5.\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",id:"635\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",level:4},{value:"6.3.6.\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",id:"636\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",level:4},{value:"6.3.7.\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",id:"637\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",level:4},{value:"6.3.8.\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",id:"638\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",level:4},{value:"6.3.9.\u5f53\u524d Leader \u4fe1\u606f",id:"639\u5f53\u524d-leader-\u4fe1\u606f",level:4},{value:"6.3.10.\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",id:"6310\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",level:4},{value:"6.3.11.\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",id:"6311\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",level:4},{value:"6.4.\u4efb\u52a1\u7ba1\u7406",id:"64\u4efb\u52a1\u7ba1\u7406",level:3},{value:"6.4.1.\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",id:"641\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",level:4},{value:"6.4.2.\u4e2d\u6b62\u4efb\u52a1",id:"642\u4e2d\u6b62\u4efb\u52a1",level:4},{value:"6.5.\u5b50\u56fe\u7ba1\u7406",id:"65\u5b50\u56fe\u7ba1\u7406",level:3},{value:"6.5.1.\u521b\u5efa\u65b0\u5b50\u56fe",id:"651\u521b\u5efa\u65b0\u5b50\u56fe",level:4},{value:"6.5.2.\u5220\u9664\u5b50\u56fe",id:"652\u5220\u9664\u5b50\u56fe",level:4},{value:"6.5.3.\u5217\u51fa\u6240\u6709\u5b50\u56fe",id:"653\u5217\u51fa\u6240\u6709\u5b50\u56fe",level:4},{value:"6.5.4.\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",id:"654\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",level:4},{value:"6.6.\u5143\u6570\u636e\u7ba1\u7406",id:"66\u5143\u6570\u636e\u7ba1\u7406",level:3},{value:"6.6.1.\u521b\u5efaLabel",id:"661\u521b\u5efalabel",level:4},{value:"6.6.2.\u5217\u51fa\u6240\u6709 Label",id:"662\u5217\u51fa\u6240\u6709-label",level:4},{value:"6.6.3.\u83b7\u53d6 Label \u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",id:"663\u83b7\u53d6-label-\u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",level:4},{value:"6.6.4.Schema \u5bfc\u5165",id:"664schema-\u5bfc\u5165",level:4},{value:"6.7.\u70b9\u64cd\u4f5c",id:"67\u70b9\u64cd\u4f5c",level:3},{value:"6.7.1.\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",id:"671\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",level:4},{value:"6.7.2.\u521b\u5efa\u4e00\u4e2a\u70b9",id:"672\u521b\u5efa\u4e00\u4e2a\u70b9",level:4},{value:"6.7.3.\u6279\u91cf\u521b\u5efa\u70b9",id:"673\u6279\u91cf\u521b\u5efa\u70b9",level:4},{value:"6.7.4.\u83b7\u53d6\u70b9",id:"674\u83b7\u53d6\u70b9",level:4},{value:"6.7.5.\u5220\u9664\u70b9",id:"675\u5220\u9664\u70b9",level:4},{value:"6.7.6.\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",id:"676\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",level:4},{value:"6.7.7.\u83b7\u53d6\u70b9\u5c5e\u6027",id:"677\u83b7\u53d6\u70b9\u5c5e\u6027",level:4},{value:"6.7.8.\u66f4\u65b0\u70b9\u5c5e\u6027",id:"678\u66f4\u65b0\u70b9\u5c5e\u6027",level:4},{value:"6.8.\u8fb9\u64cd\u4f5c",id:"68\u8fb9\u64cd\u4f5c",level:3},{value:"6.8.1.\u521b\u5efa\u4e00\u6761\u8fb9",id:"681\u521b\u5efa\u4e00\u6761\u8fb9",level:4},{value:"6.8.2.\u6279\u91cf\u521b\u5efa\u8fb9",id:"682\u6279\u91cf\u521b\u5efa\u8fb9",level:4},{value:"6.8.3.\u5217\u51fa\u6240\u6709\u51fa\u8fb9\uff08outgoing relationships\uff09",id:"683\u5217\u51fa\u6240\u6709\u51fa\u8fb9outgoing-relationships",level:4},{value:"6.8.4.\u5217\u51fa\u6240\u6709\u5165\u8fb9\uff08incoming relationships\uff09",id:"684\u5217\u51fa\u6240\u6709\u5165\u8fb9incoming-relationships",level:4},{value:"6.8.5.\u5217\u51fa\u6240\u6709\u8fb9",id:"685\u5217\u51fa\u6240\u6709\u8fb9",level:4},{value:"6.8.6.\u83b7\u53d6\u8fb9",id:"686\u83b7\u53d6\u8fb9",level:4},{value:"6.8.7.\u5220\u9664\u8fb9",id:"687\u5220\u9664\u8fb9",level:4},{value:"6.8.8.\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",id:"688\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",level:4},{value:"6.8.9.\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",id:"689\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",level:4},{value:"6.8.10.\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",id:"6810\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",level:4},{value:"6.9.\u7d22\u5f15",id:"69\u7d22\u5f15",level:3},{value:"6.9.1.\u521b\u5efa\u7d22\u5f15",id:"691\u521b\u5efa\u7d22\u5f15",level:4},{value:"6.9.2.\u5217\u51fa\u6240\u6709\u7d22\u5f15",id:"692\u5217\u51fa\u6240\u6709\u7d22\u5f15",level:4},{value:"6.9.3.\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a Label \u76f8\u5173\u7684\u7d22\u5f15",id:"693\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a-label-\u76f8\u5173\u7684\u7d22\u5f15",level:4},{value:"6.9.4.\u5220\u9664\u7d22\u5f15",id:"694\u5220\u9664\u7d22\u5f15",level:4},{value:"6.9.5.\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",id:"695\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",level:4},{value:"6.10.\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",id:"610\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",level:3},{value:"6.10.1.\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",id:"6101\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",level:4},{value:"6.11.\u5176\u4ed6",id:"611\u5176\u4ed6",level:3},{value:"6.11.1.\u63d0\u53d6\u5b50\u56fe",id:"6111\u63d0\u53d6\u5b50\u56fe",level:4}];function j(n){const e={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"restful-api-legacy",children:"RESTful API Legacy"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGrpah \u7684 Rest API \u7684\u8c03\u7528\u8be6\u60c5\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u9075\u4ece REST \u89c4\u8303\u7684 HTTP API\uff0c\u4ee5\u4f9b\u5f00\u53d1\u8005\u901a\u8fc7 HTTP \u8bf7\u6c42\u8fdc\u7a0b\u8c03\u7528 TuGraph \u63d0\u4f9b\u7684\u670d\u52a1\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u672c\u6587\u6863\u63cf\u8ff0 TuGraph \u7684 HTTP API \u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsxs)(e.strong,{children:['\u6ce8\u610f\uff1a\u9664"\u767b\u9646"\u3001"\u67e5\u8be2"\u548c"\u5b58\u50a8\u8fc7\u7a0b"\u5916\uff0c\u5176\u4f59\u63a5\u53e3\u81ea ',(0,r.jsx)(e.strong,{children:"2023\u5e744\u670830\u65e5"})," \u8d77\u5c06\u4e0d\u518d\u63d0\u4f9b\u652f\u6301\uff0c\u7edf\u4e00\u4f7f\u7528Cypher\u63a5\u53e3\u63d0\u4f9b\u670d\u52a1\u3002"]})}),"\n",(0,r.jsx)(e.h2,{id:"2\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f",children:"2.\u8bf7\u6c42\u4e0e\u6570\u636e\u683c\u5f0f"}),"\n",(0,r.jsx)(e.h3,{id:"21\u8bf7\u6c42",children:"2.1\u8bf7\u6c42"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u652f\u6301 HTTP GET/POST/PUT/DELETE \u8bf7\u6c42\u3002\u5176\u4e2d\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"GET \u8bf7\u6c42\u7528\u4e8e\u53ea\u8bfb\u8bf7\u6c42\uff0c\u5982\u8bfb\u53d6\u70b9\u5c5e\u6027\uff0c\u8fb9\u5c5e\u6027\u7b49\u64cd\u4f5c\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"POST \u8bf7\u6c42\u7528\u4e8e\u521b\u5efa\u5b9e\u4f53\uff0c\u63d0\u4ea4 Cypher\uff0c\u4ee5\u53ca\u52a0\u8f7d\u548c\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"PUT \u8bf7\u6c42\u7528\u4e8e\u4fee\u6539\u5df2\u6709\u5b9e\u4f53\uff0c\u5982\u4fee\u6539\u70b9\u5c5e\u6027\uff0c\u8fb9\u5c5e\u6027\u7b49\uff1b"}),"\n",(0,r.jsx)(e.li,{children:"DELETE \u8bf7\u6c42\u7528\u4e8e\u5220\u9664\u5df2\u6709\u5b9e\u4f53\uff0c\u5982\u5220\u9664\u70b9\uff0c\u8fb9\u7b49\u3002"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u8bf7\u6c42\u7684\u62a5\u5934(request header)\u4e2d\u8bbe\u7f6e ",(0,r.jsx)(e.code,{children:"server_version"})," \u6765\u4fdd\u8bc1\u8bf7\u6c42\u7684\u670d\u52a1\u5668\u6709\u8db3\u591f\u65b0\u7684\u6570\u636e\u3002\n\u5f53\u524d\u7684 ",(0,r.jsx)(e.code,{children:"server_version"})," \u53ef\u4ee5\u4ece\u670d\u52a1\u5668\u8fd4\u56de\u7684\u62a5\u5934\u4e2d\u83b7\u53d6\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"22\u6570\u636e\u683c\u5f0f",children:"2.2.\u6570\u636e\u683c\u5f0f"}),"\n",(0,r.jsxs)(e.p,{children:["\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u7aef\u6570\u636e\u4ea4\u4e92\u7684\u683c\u5f0f\u662f JSON\u3002\u5728\u53d1\u9001\u8bf7\u6c42\u65f6\uff0c\u8bf7\u5c06\u53d1\u9001\u6570\u636e\u7684\u8bf7\u6c42\u7684\u62a5\u5934\u8bbe\u7f6e\u4e3a ",(0,r.jsx)(e.code,{children:"Accept:application/json, Content-Type:application/json"}),"\u3002\n\u4f8b\u5982\u5728\u521b\u5efa\u4e00\u4e2a\u70b9\u65f6\uff0c\u8bf7\u6c42\u62a5\u5934\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" Accept: application/json; charset=UTF-8\n Content-Type: application/json\n server_version: 12\n"})}),"\n",(0,r.jsx)(e.h3,{id:"23\u8fd4\u56de\u503c",children:"2.3.\u8fd4\u56de\u503c"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u8fd4\u56de\u7684 HTTP \u72b6\u6001\u7801\u5305\u542b\u4ee5\u4e0b\u56db\u79cd\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"200 OK: \u64cd\u4f5c\u6210\u529f"}),"\n",(0,r.jsx)(e.li,{children:"307 Temporary Redirect: \u64cd\u4f5c\u88ab\u91cd\u5b9a\u5411\uff0c\u4e00\u822c\u7528\u4e8e\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u628a\u64cd\u4f5c\u91cd\u5b9a\u5411\u5230 master \u4e0a"}),"\n",(0,r.jsx)(e.li,{children:"400 Bad Request: \u8f93\u5165\u6709\u8bef\uff0c\u4f8b\u5982 URI \u9519\u8bef\uff0c\u6216\u8005\u8bf7\u6c42\u4e2d\u7684 JSON \u53c2\u6570\u9519\u8bef"}),"\n",(0,r.jsx)(e.li,{children:"500 Internal Server Error: \u670d\u52a1\u5668\u7aef\u9519\u8bef"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5f53\u64cd\u4f5c\u6210\u529f\u65f6\uff0c\u8fd4\u56de\u7684 JSON \u4e2d\u5305\u542b\u64cd\u4f5c\u7684\u8fd4\u56de\u503c\u3002\u5f53\u64cd\u4f5c\u91cd\u5b9a\u5411\u65f6\uff0c\u8fd4\u56de\u7684 HTTP \u62a5\u5934\u4e2d\u7684 ",(0,r.jsx)(e.code,{children:"location"})," \u57df\u5305\u542b\u91cd\u5b9a\u5411\u76ee\u7684\u5730\u5740\u3002\n\u5f53\u53d1\u751f\u8f93\u5165\u9519\u8bef\u6216\u8005\u670d\u52a1\u5668\u9519\u8bef\u65f6\uff0c\u8fd4\u56de\u7684 JSON \u4e2d\u5305\u542b ",(0,r.jsx)(e.code,{children:"error_message"})," \u57df\uff0c\u5176\u5185\u5bb9\u662f\u9519\u8bef\u63d0\u793a\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\uff0c\u670d\u52a1\u5668\u8fd8\u4f1a\u5728\u62a5\u5934\u4e2d\u8bbe\u7f6e ",(0,r.jsx)(e.code,{children:"server_version"}),"\uff0c\u4ee5\u544a\u77e5\u5ba2\u6237\u7aef\u5f53\u524d\u670d\u52a1\u5668\u7684\u6570\u636e\u7248\u672c\u53f7\u3002\u5f53\u5ba2\u6237\u7aef\u5728\u4e0d\u540c\u7684\u670d\u52a1\u5668\u4e4b\u95f4\u5207\u6362\u65f6\uff0c\u8be5\u6570\u636e\u7248\u672c\u53f7\u53ef\u4ee5\u4fdd\u8bc1\u5ba2\u6237\u7aef\u4e0d\u4f1a\u8bfb\u5230\u9519\u8bef\u7684\u5386\u53f2\u6570\u636e\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"24uri\u683c\u5f0f",children:"2.4.URI\u683c\u5f0f"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph REST API \u63d0\u4f9b\u4ee5\u4e0b\u529f\u80fd\uff1aService Root, login, info, label, index, node, relationship, cypher, cpp_plugin, \u4ee5\u53ca python_plugin\u3002\n\u5404\u529f\u80fd\u4f7f\u7528\u7684 URI \u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/web"}),(0,r.jsx)(e.td,{children:"web \u53ef\u89c6\u5316\u754c\u9762"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/cypher"}),(0,r.jsx)(e.td,{children:"cypher \u8bf7\u6c42"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/acl"}),(0,r.jsx)(e.td,{children:"\u6743\u9650\u63a7\u5236"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u7ba1\u7406"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/login"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u767b\u5f55"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/info"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93\u72b6\u6001\u53ca\u63d0\u793a\u4fe1\u606f"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/task"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u7ba1\u7406"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u64cd\u4f5c"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\u5b50\u56fe\u64cd\u4f5c\u53c8\u5206\u4e3a\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"URI"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"/db"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u7684\u521b\u5efa\uff0c\u5220\u9664"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/node"]}),(0,r.jsx)(e.td,{children:"\u70b9\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/relationship"]}),(0,r.jsx)(e.td,{children:"\u8fb9\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/label"]}),(0,r.jsx)(e.td,{children:"Label \u76f8\u5173\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/index"]}),(0,r.jsx)(e.td,{children:"\u7d22\u5f15\u76f8\u5173\u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cypher"]}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u76f8\u5173 cypher \u64cd\u4f5c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/cpp_plugin"]}),(0,r.jsx)(e.td,{children:"C++\u5b58\u50a8\u8fc7\u7a0b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/python_plugin"]}),(0,r.jsx)(e.td,{children:"Python \u5b58\u50a8\u8fc7\u7a0b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/import"]}),(0,r.jsx)(e.td,{children:"\u5728\u7ebf\u5bfc\u5165"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsxs)(e.td,{children:["/db/",(0,r.jsx)(e.em,{children:"{graph_name}"}),"/misc"]}),(0,r.jsx)(e.td,{children:"\u5176\u5b83\u64cd\u4f5c"})]})]})]}),"\n",(0,r.jsx)(e.h2,{id:"3\u767b\u5f55",children:"3.\u767b\u5f55"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u57fa\u4e8e JWT \u7684\u7528\u6237\u8ba4\u8bc1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u4f7f\u7528 HTTP \u6216 HTTPS \u534f\u8bae\u8fdb\u884c\u4f20\u8f93\u3002\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528 HTTP \u534f\u8bae\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528 HTTPS\uff0c\u9700\u8981\u5728 lgraph.json \u914d\u7f6e\u6587\u4ef6\u4e2d\u5c06 ssl_auth \u8bbe\u4e3a 1\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"31\u767b\u5f55",children:"3.1.\u767b\u5f55"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u901a\u8fc7\u7528\u6237\u540d\u548c\u5bc6\u7801\u53d1\u9001\u767b\u5f55\u8bf7\u6c42\u3002\u767b\u5f55\u6210\u529f\u4f1a\u6536\u5230\u5e26\u6709\u7b7e\u540d\u7684\u4ee4\u724c(Json Web Token)\u548c\u5224\u65ad\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u7684\u5e03\u5c14\u578b\u53d8\u91cf\uff0c\u5ba2\u6237\u7aef\u50a8\u5b58\u8be5\u4ee4\u724c\uff0c\u5e76\u4e14\u7528\u4e8e\u4ee5\u540e\u7684\u6bcf\u6b21\u53d1\u9001\u8bf7\u6c42\u3002\u5982\u679c\u767b\u5f55\u5931\u8d25\u4f1a\u6536\u5230\u201cAuthentication failed\u201d\u9519\u8bef\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/login"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"default_password"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4e3a\u9ed8\u8ba4\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/login\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "user":"admin",\n "password":"73@TuGraph"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek",\n "default_password": true\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"32\u8eab\u4efd\u5237\u65b0",children:"3.2.\u8eab\u4efd\u5237\u65b0"}),"\n",(0,r.jsx)(e.p,{children:"Token\u5931\u6548\u540e\uff0c\u524d\u7aef\u53d1\u8d77\u5237\u65b0token\u63a5\u53e3\uff0c\u540e\u7aef\u9a8c\u8bc1token\u5408\u6cd5\u6027\u3002\u521d\u6b21\u767b\u5f55\u540e\uff0c1\u5c0f\u65f6\u5185\u6709\u6548\uff0c\u9700\u5237\u65b0\u4f7f\u7528\u3002\u5373\u4f7f\u5237\u65b0\uff0c24\u5c0f\u65f6\u540e\u4e5f\u4f1a\u5f3a\u5236\u9000\u51fa\uff0c\u9700\u8981\u91cd\u65b0\u767b\u9646\u3002\n\u9a8c\u8bc1\u901a\u8fc7\uff0c\u751f\u6210\u65b0\u7684token\uff1b\u9a8c\u8bc1\u5931\u8d25\u8fd4\u56de\u72b6\u6001\u7801401\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/refresh"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"jwt"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/refresh\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization": "Bearer eyJhbGciOiJIUz32NiIsInR5cCI6IkpXVDJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byj3fYVAH4D88dfTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"33\u4fee\u6539token\u6709\u6548\u671f",children:"3.3.\u4fee\u6539Token\u6709\u6548\u671f"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539Token\u6709\u6548\u671f\uff0c\u9700\u8981\u4f20\u8f93jwt\uff0crefresh_time\u548cexpire_time\u4e09\u4e2a\u53c2\u6570\uff0c\u5176\u4e2djwt\u7528\u4e8e\u6821\u9a8c\u7528\u6237\u8eab\u4efd\uff0crefresh_time\u548cexpire_time\u7b49\u4e8e0\u65f6\uff0c\u6709\u6548\u671f\u4e3a\u65e0\u671f\u9650\uff0c\u8d85\u8fc7refresh_time\u65f6\uff0c\u9700\u8981\u8c03\u7528refresh\u63a5\u53e3\u83b7\u53d6\u65b0\u7684Token;\u8d85\u8fc7expire_time\u65f6\uff0c\u9700\u8981\u91cd\u65b0\u767b\u5f55\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/update_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"refresh_time"}),(0,r.jsx)(e.td,{children:"\u6709\u6548\u65f6\u95f4\uff08\u9ed8\u8ba4\u8bbe\u7f6e\u4e3a0\uff09"}),(0,r.jsx)(e.td,{children:"Int64"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"expire_time"}),(0,r.jsx)(e.td,{children:"\u6709\u6548\u65f6\u95f4\uff08\u9ed8\u8ba4\u8bbe\u7f6e\u4e3a0\uff09"}),(0,r.jsx)(e.td,{children:"Int64"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/update_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n "refresh_time":0,\n "expire_time":0\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"34\u67e5\u8be2token\u6709\u6548\u671f",children:"3.4.\u67e5\u8be2Token\u6709\u6548\u671f"}),"\n",(0,r.jsx)(e.p,{children:"\u67e5\u8be2Token\u6709\u6548\u671f\uff0c\u9700\u8981\u4f20\u8f93jwt\uff0c\u7528\u4e8e\u6821\u9a8c\u7528\u6237\u8eab\u4efd\uff0c\u8fd4\u56de\uff0crefresh_time\u548cexpire_time\uff0c\u5176\u4e2drefresh_time\u8868\u793a\u5237\u65b0\u65f6\u95f4\uff0c\u8d85\u8fc7\u65f6\u9700\u8981\u8c03\u7528refresh\u63a5\u53e3\u83b7\u53d6\u65b0\u7684Token;expire_time\u8868\u793a\u8fc7\u671f\u65f6\u95f4\uff0c\u8d85\u8fc7\u65f6\u9700\u8981\u91cd\u65b0\u767b\u5f55\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/get_token_time"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de"refresh_time"\u548c"expire_time"\u3002']}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/get_token_time\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "refresh_time":600,\n "expire_time":3600\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"35\u767b\u51fa",children:"3.5.\u767b\u51fa"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u767b\u51fa\uff0c\u540c\u65f6\u5220\u9664token\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/logout"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Authorization"}),(0,r.jsx)(e.td,{children:"\u4ee4\u724c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/logout\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmbWEuYWkiLCJwYXNzd29yZCI6IjczQFR1R3JhcGgiLCJ1c2VyIjoiYWRtaW4ifQ.o_yb5veSJkuy-ieBp4MqTk-tC1grcKotgVbgNJ0TyTU"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"4\u67e5\u8be2",children:"4.\u67e5\u8be2"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/cypher\n"})}),"\n",(0,r.jsx)(e.h3,{id:"41\u8c03\u7528cypher",children:"4.1.\u8c03\u7528Cypher"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u8bed\u53e5"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u7ed3\u679c"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"elapsed"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u65f6\u95f4\uff08\u79d2\uff09"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"header"}),(0,r.jsx)(e.td,{children:"\u8fd4\u56de\u7ed3\u679c\u7684\u8868\u5934"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"size"}),(0,r.jsx)(e.td,{children:"\u7ed3\u679c\u6570"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d header \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u6bcf\u4e00\u5143\u7d20\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u6570\u636e\u7c7b\u578b\uff0c0 \u4e3a\u6807\u91cf\uff0c1 \u4e3a\u70b9 id\uff0c2 \u4e3a\u5411\u91cf"}),(0,r.jsx)(e.td,{})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n) RETURN n,n.name LIMIT 10"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.001224517822265625,\n "header": [\n {\n "name": "n",\n "type": 1\n },\n {\n "name": "n.name",\n "type": 0\n }\n ]\n "result": [\n [\n 0,\n "Rachel Kempson"\n ],\n [\n 1,\n "Michael Redgrave"\n ],\n [\n 2,\n "Vanessa Redgrave"\n ]\n ],\n "size": 3\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"42\u8c03\u7528\u5e26\u53c2\u6570\u7684-cypher",children:"4.2.\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher"}),"\n",(0,r.jsx)(e.p,{children:"Cypher \u652f\u6301\u4f7f\u7528\u53c2\u6570\u8fdb\u884c\u67e5\u8be2\u3002\u5f53\u8c03\u7528\u5e26\u53c2\u6570\u7684 Cypher \u67e5\u8be2\u65f6\uff0cTuGraph \u4f1a\u7f13\u5b58\u8be5\u67e5\u8be2\u7684\n\u6267\u884c\u8ba1\u5212\uff08execution plan\uff09\uff0c\u4ee5\u52a0\u901f\u540e\u7eed\u540c\u7c7b\u67e5\u8be2\u7684\u901f\u5ea6\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/cypher"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cypher"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u8bed\u53e5"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"parameters"}),(0,r.jsx)(e.td,{children:"\u53c2\u6570"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0e ",(0,r.jsx)(e.a,{href:"#%E8%B0%83%E7%94%A8Cypher",children:"\u8c03\u7528 Cypher"})," \u76f8\u540c\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cypher\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "graph": "default",\n "script": "MATCH (n:Person {name:$param1}) RETURN n.birthyear",\n "parameters": {\n "$param1": "Lindsay Lohan"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "elapsed": 0.005886077880859375,\n "header": [\n {\n "name": "n.birthyear",\n "type": 0\n }\n ],\n "result": [\n [\n 1986\n ]\n ],\n "size": 1\n }\n'})}),"\n",(0,r.jsx)(e.h2,{id:"5\u5b58\u50a8\u8fc7\u7a0b",children:"5.\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/cpp_plugin|python_plugin\n"})}),"\n",(0,r.jsx)(e.h3,{id:"51\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"5.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u670d\u52a1\u542f\u52a8\u65f6\uff0c\u5982\u679c load_plugins \u4e3a\u771f\uff0c\u5219\u4f1a\u81ea\u52a8\u52a0\u8f7d plugin \u76ee\u5f55\u4e0b\u7684\u6240\u6709 plugin\u3002\u5426\u5219\u9700\u8981\u624b\u52a8\u52a0\u8f7d\u3002\u6b64\u5916\uff0c\u5982\u679c\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7ba1\u7406\u5458\u66f4\u65b0\u4e86 plugin \u6587\u4ef6\uff0c\u4e5f\u9700\u8981\u624b\u52a8\u91cd\u65b0\u52a0\u8f7d\u3002\u91cd\u65b0\u52a0\u8f7d plugin \u7684\u8c03\u7528\u683c\u5f0f\u4e3a\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u540d\u79f0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u8bf4\u660e"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u63d2\u4ef6\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 base64 \u7f16\u7801"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4e3a\u53ea\u8bfb\u5b58\u50a8\u8fc7\u7a0b"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"\u4e0a\u4f20\u4ee3\u7801\u7684\u7c7b\u578b\uff0cC++\u7c7b\u578b\u53ef\u9009 zip/so/cpp\uff0cPython \u4e3a py"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"52\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.\u5217\u51fa\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a plugin \u7684\u63cf\u8ff0\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u662f\u5426\u53ea\u8bfb"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n [\n {\n "description":"adds a vertex label to the db",\n "name":"add_label",\n "read_only":false\n },\n {\n "description": "scans graph and get number of edges",\n "name": "scan_graph",\n "read_only": true\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"53\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f",children:"5.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u7ec6\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b58\u50a8\u8fc7\u7a0b\u4fe1\u606f\uff0c\u5305\u62ec\u4ee3\u7801\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_only"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u662f\u5426\u53ea\u8bfb"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_base64"}),(0,r.jsx)(e.td,{children:"\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u4f7f\u7528 base64 \u7f16\u7801"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"code_type"}),(0,r.jsx)(e.td,{children:"\u4e0a\u4f20\u4ee3\u7801\u7684\u7c7b\u578b\uff0cC++\u7c7b\u578b\u53ef\u9009 zip/so/cpp\uff0cPython \u4e3a py"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/cpp_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "name" : "echo",\n "description" : "A test plugin that returns the input",\n "code_base64" : "{base64 encoded echo.zip}",\n "read_only" : true,\n "code_type" : "zip"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"54\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"5.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u5b57\u7b26\u4e32\u8f93\u5165"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"\u8f93\u5165\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"timeout"}),(0,r.jsx)(e.td,{children:"\u8d85\u65f6\u957f\u5ea6\uff08\u79d2\uff0c\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a 0\uff09"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in_process"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u5728\u672c\u8fdb\u7a0b\u8c03\u7528\uff08\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a false\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"result"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u7ed3\u679c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/python_plugin/echo\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n data : "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!",\n timeout : 0,\n in_process : true\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "result": "Hello!\\n\u4f60\u597d\uff01\\nKonichiwa!"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"55\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"5.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/cpp_plugin|python_plugin/{plugin_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/cpp_plugin/example_plugin\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h2,{id:"6deprecated",children:"6.Deprecated"}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u63a5\u53e3\u5c06\u57284/30/2023\u4e4b\u540e\u88ab\u5220\u9664\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"61\u7528\u6237\u7ba1\u7406",children:"6.1.\u7528\u6237\u7ba1\u7406"}),"\n",(0,r.jsxs)(e.p,{children:["\u7cfb\u7edf\u9ed8\u8ba4\u521b\u5efa\u4e00\u4e2a\u7ba1\u7406\u5458\uff0c\u7ba1\u7406\u5458\u7528\u6237\u540d\u4e3a ",(0,r.jsx)(e.em,{children:"admin"}),"\uff0c\u5bc6\u7801\u4e3a ",(0,r.jsx)(e.em,{children:"73@TuGraph"}),"\u3002\u4e3a\u4e86\u5b89\u5168\u8d77\u89c1\uff0c\u8bf7\u7528\u6237\u5728\u7b2c\u4e00\u6b21\u542f\u52a8\u670d\u52a1\u5668\u540e\u66f4\u6539\u5bc6\u7801\u3002"]}),"\n",(0,r.jsx)(e.h4,{id:"611\u6dfb\u52a0\u7528\u6237",children:"6.1.1.\u6dfb\u52a0\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u7528\u6237\uff0c\u5e76\u4e3a\u5176\u8bbe\u7f6e\u521d\u59cb\u5bc6\u7801\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002\u5176\u4e2d\u7528\u6237\u540d\u53ea\u80fd\u7531\u5b57\u6bcd\uff0c\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\u6784\u6210\uff0c\u5bc6\u7801\u5219\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\u3002\u7528\u6237\u540d\u548c\u5bc6\u7801\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7 64 \u5b57\u8282\u3002\u6dfb\u52a0\u7528\u6237\u65f6\u8fd8\u53ef\u4ee5\u4e3a\u7528\u6237\u589e\u52a0\u4e00\u4e2a\u63cf\u8ff0\uff0c\u7528\u6237\u63cf\u8ff0\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\uff0c\u6700\u957f\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u65b0\u7528\u6237\u9ed8\u8ba4\u62e5\u6709\u540c\u540d\u7684\u89d2\u8272\uff0c\u4e0d\u5177\u5907\u4efb\u4f55\u56fe\u7684\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"password"}),(0,r.jsx)(e.td,{children:"\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "user": "USER1",\n "password": "AN_INITIAL_PASSWORD",\n "description": "This is a user"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"612\u5217\u51fa\u6240\u6709\u7528\u6237",children:"6.1.2.\u5217\u51fa\u6240\u6709\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u6570\u636e\u5e93\u7684\u6240\u6709\u7528\u6237\u3002\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6240\u6709\u7528\u6237\u53ca\u5176\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": {\n "disabled": false,\n "description": "Builtin admin user",\n "roles": ["admin"]\n },\n "guest1": {\n "disabled": true,\n "description": "",\n "roles": ["guest1", "some_other_role"]\n }\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"613\u83b7\u53d6\u7528\u6237\u4fe1\u606f",children:"6.1.3.\u83b7\u53d6\u7528\u6237\u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u7528\u6237\u7684\u4fe1\u606f\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7528\u6237\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "disabled": true,\n "description": "A guest user"\n "roles": ["guest1", "some_other_role"]\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"614\u5217\u51fa\u7528\u6237\u6743\u9650",children:"6.1.4.\u5217\u51fa\u7528\u6237\u6743\u9650"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u7528\u6237\u6709\u6743\u9650\u8bbf\u95ee\u7684\u6240\u6709\u56fe\u53ca\u76f8\u5e94\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/graph"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7528\u6237\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/user/guest1/graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "graph1" : "FULL",\n "graph2" : "READ"\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"615\u66f4\u6539\u7528\u6237\u5bc6\u7801",children:"6.1.5.\u66f4\u6539\u7528\u6237\u5bc6\u7801"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u66f4\u6539\u81ea\u5df1\u7684\u5bc6\u7801\uff0c\u66f4\u6539\u5bc6\u7801\u65f6\u9700\u8981\u540c\u65f6\u63d0\u4f9b\u539f\u5bc6\u7801\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u66f4\u6539\u6240\u6709\u7528\u6237\u7684\u5bc6\u7801\u3002\u7ba1\u7406\u5458\u66f4\u6539\u5176\u5b83\u7528\u6237\u5bc6\u7801\u65f6\uff0c\u53ef\u4ee5\u4e0d\u63d0\u4f9b\u5f53\u524d\u5bc6\u7801\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/password"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"current_password"}),(0,r.jsx)(e.td,{children:"\u5f53\u524d\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"new_password"}),(0,r.jsx)(e.td,{children:"\u65b0\u5bc6\u7801"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1/password\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "current_password": "THE_CURRENT_PASSWORD"\n "new_password": "A_NEW_PASSWORD"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"616\u4fee\u6539\u7528\u6237\u63cf\u8ff0",children:"6.1.6.\u4fee\u6539\u7528\u6237\u63cf\u8ff0"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u4fee\u6539\u81ea\u5df1\u7684\u63cf\u8ff0\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u4fee\u6539\u4efb\u610f\u7528\u6237\u7684\u63cf\u8ff0\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/description"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u7528\u6237\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/user1/description\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "description": "New description for this user."\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"617\u5220\u9664\u7528\u6237",children:"6.1.7.\u5220\u9664\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u5220\u9664\u7528\u6237\u53ca\u5176\u6240\u6709\u76f8\u5173\u6743\u9650\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"618\u7981\u7528\u7528\u6237",children:"6.1.8.\u7981\u7528\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u88ab\u7981\u7528\u3002\u88ab\u7981\u7528\u7684\u7528\u6237\u5c06\u4e0d\u80fd\u767b\u9646\uff0c\u4f46\u662f\u5176\u8d44\u6599\u4ecd\u7136\u4fdd\u5b58\u3002\u88ab\u7981\u7528\u7684\u7528\u6237\u53ef\u4ee5\u88ab\u91cd\u65b0\u542f\u7528\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/disable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/user/guest1/disable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"619\u542f\u7528\u7528\u6237",children:"6.1.9.\u542f\u7528\u7528\u6237"}),"\n",(0,r.jsx)(e.p,{children:"\u542f\u7528\u4e00\u4e2a\u88ab\u7981\u7528\u7684\u7528\u6237\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/enable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/user/guest1/enable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6110\u8bbe\u7f6e\u7528\u6237\u89d2\u8272",children:"6.1.10.\u8bbe\u7f6e\u7528\u6237\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u4e3a\u6307\u5b9a\u7528\u6237\u8bbe\u7f6e\u89d2\u8272\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u89d2\u8272\u5217\u8868\u5fc5\u987b\u662f\u201c\u5168\u91cf\u5217\u8868\u201d\uff0c\u5373\u8be5\u5217\u8868\u9700\u8981\u5305\u542b\u8be5\u7528\u6237\u9700\u8981\u7684\u6240\u6709\u89d2\u8272\u3002\u552f\u4e00\u7684\u4f8b\u5916\u662f\u7528\u6237\u7684\u540c\u540d\u89d2\u8272\uff0c\u5373\u4f7f\u5217\u8868\u4e2d\u4e0d\u542b\u8be5\u89d2\u8272\uff0c\u5b83\u4e5f\u4f1a\u88ab\u52a0\u5230\u7528\u6237\u89d2\u8272\u4e2d\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/user/{user_name}/role"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u89d2\u8272\u5217\u8868"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/user/guest1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n ["role1", "role2"]\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u6b64\u65f6\u7528\u6237",(0,r.jsx)(e.code,{children:"guest1"}),"\u62e5\u6709\u89d2\u8272",(0,r.jsx)(e.code,{children:"guest1"}),", ",(0,r.jsx)(e.code,{children:"role1"}),"\u548c",(0,r.jsx)(e.code,{children:"role2"}),"\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"62\u89d2\u8272\u7ba1\u7406",children:"6.2.\u89d2\u8272\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u4f7f\u7528\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u7ba1\u7406\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u4e00\u7528\u6237\u53ef\u4ee5\u62e5\u6709\u591a\u4e2a\u89d2\u8272\u3002\u65b0\u7528\u6237\u9ed8\u8ba4\u62e5\u6709\u4e0e\u5176\u540c\u540d\u7684\u89d2\u8272\u3002\u5220\u9664\u7528\u6237\u65f6\uff0c\u540c\u540d\u89d2\u8272\u4e5f\u4f1a\u88ab\u5220\u9664\u3002\u5982\u679c\u65b0\u5efa\u7528\u6237\u65f6\u540c\u540d\u89d2\u8272\u5df2\u7ecf\u5b58\u5728\uff0c\u5219\u521b\u5efa\u5931\u8d25\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u4e00\u89d2\u8272\u53ef\u4ee5\u5bf9\u591a\u4e2a\u56fe\u6709\u4e0d\u540c\u7684\u6743\u9650\u3002\u7528\u6237\u5bf9\u67d0\u5f20\u56fe\u7684\u6743\u9650\u7531\u5176\u6240\u6709\u89d2\u8272\u5bf9\u8be5\u56fe\u7684\u6700\u9ad8\u6743\u9650\u51b3\u5b9a\u3002"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u4f7f\u7528\u56db\u7ea7\u6743\u9650\uff0c\u4e0d\u7528\u7684\u7528\u6237\u5bf9\u4e0d\u540c\u7684\u5b50\u56fe\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u6743\u9650\uff0c\u56db\u79cd\u6743\u9650\u53ca\u5176\u8bf4\u660e\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u6743\u9650"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"NONE"}),(0,r.jsx)(e.td,{children:"\u65e0\u6743\u9650"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"READ"}),(0,r.jsx)(e.td,{children:"\u53ea\u8bfb"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"WRITE"}),(0,r.jsx)(e.td,{children:"\u53ef\u8bfb\u5199\u5b50\u56fe\u4e2d\u7684\u70b9\u548c\u8fb9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"FULL"}),(0,r.jsx)(e.td,{children:"\u5b8c\u5168\u6743\u9650\uff0c\u5305\u62ec\u66f4\u6539\u5143\u6570\u636e\uff08label, index\uff09\uff0c\u7ba1\u7406\u5b58\u50a8\u8fc7\u7a0b\uff0c\u4ee5\u53ca\u5220\u9664\u5b50\u56fe\u4e2d\u7684\u6240\u6709\u6570\u636e"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:"\u7ba1\u7406\u5458\u5bf9\u6240\u6709\u5b50\u56fe\u90fd\u6709\u5b8c\u5168\u6743\u9650\uff0c\u65b0\u5efa\u7684\u7528\u6237\u5bf9\u6240\u6709\u5b50\u56fe\u90fd\u6ca1\u6709\u6743\u9650\u3002\u5c06\u7528\u6237\u52a0\u5165\u7ba1\u7406\u5458\u89d2\u8272\u4e2d\u53ef\u4ee5\u5c06\u7528\u6237\u63d0\u5347\u4e3a\u7ba1\u7406\u5458\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"621\u6dfb\u52a0\u89d2\u8272",children:"6.2.1.\u6dfb\u52a0\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u89d2\u8272\uff0c\u5e76\u8bbe\u7f6e\u5176\u63cf\u8ff0\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u540d\u53ea\u80fd\u7531\u5b57\u6bcd\uff0c\u6570\u5b57\u4ee5\u53ca\u4e0b\u5212\u7ebf\u6784\u6210\uff0c\u5bc6\u7801\u5219\u53ef\u4ee5\u5305\u542b\u4efb\u610f\u5b57\u7b26\u3002\u89d2\u8272\u540d\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7 64 \u5b57\u8282\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u63cf\u8ff0\u53ef\u4ee5\u662f\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u957f\u5ea6\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"role"}),(0,r.jsx)(e.td,{children:"\u89d2\u8272\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u89d2\u8272\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "role": "new_role",\n "description": "This is a new role.",\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"622\u4fee\u6539\u89d2\u8272\u63cf\u8ff0",children:"6.2.2.\u4fee\u6539\u89d2\u8272\u63cf\u8ff0"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539\u89d2\u8272\u7684\u63cf\u8ff0\u3002\u53ea\u6709\u7ba1\u7406\u5458\u6709\u6743\u9650\u8fdb\u884c\u6b64\u64cd\u4f5c\u3002\u89d2\u8272\u63cf\u8ff0\u53ef\u4ee5\u662f\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u957f\u5ea6\u4e0d\u8d85\u8fc7 512 \u5b57\u8282\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/description"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u65b0\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role/role1/description\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "description": "modified description"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"623\u5217\u51fa\u6240\u6709\u89d2\u8272",children:"6.2.3.\u5217\u51fa\u6240\u6709\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u6570\u636e\u5e93\u7684\u6240\u6709\u89d2\u8272\u3002\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6240\u6709\u89d2\u8272\u53ca\u5176\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/role\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "admin": {\n "disabled": false,\n "description": "Builtin administrator group.",\n "permissions": {"default":"FULL", "graph1":"FULL"}\n },\n "role1": {\n "disabled": true,\n "description": "Another role",\n "permissions": {"default":"READ"}\n }\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"624\u83b7\u53d6\u89d2\u8272\u4fe1\u606f",children:"6.2.4.\u83b7\u53d6\u89d2\u8272\u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:"\u5217\u51fa\u7ed9\u5b9a\u89d2\u8272\u7684\u4fe1\u606f\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u89d2\u8272\u4fe1\u606f\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/role/role1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\nOutput:\n{\n "disabled": true,\n "description": "Another role",\n "permissions": {"default":"READ"}\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"625\u5220\u9664\u89d2\u8272",children:"6.2.5.\u5220\u9664\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u5220\u9664\u6307\u5b9a\u89d2\u8272\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u62e5\u6709\u8be5\u64cd\u4f5c\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/role/role1\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"626\u7981\u7528\u89d2\u8272",children:"6.2.6.\u7981\u7528\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u53ef\u4ee5\u88ab\u7981\u7528\u3002\u89d2\u8272\u88ab\u7981\u7528\u540e\uff0c\u5177\u6709\u8be5\u89d2\u8272\u7684\u7528\u6237\u5c06\u4e0d\u518d\u4ece\u8be5\u89d2\u8272\u4e2d\u83b7\u5f97\u4efb\u4f55\u6743\u9650\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/disable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/role/role1/disable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"627\u542f\u7528\u89d2\u8272",children:"6.2.7.\u542f\u7528\u89d2\u8272"}),"\n",(0,r.jsx)(e.p,{children:"\u542f\u7528\u4e00\u4e2a\u88ab\u7981\u7528\u7684\u89d2\u8272\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/enable"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 POST http://localhost:7070/role/role1/enable\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"628\u8bbe\u7f6e\u89d2\u8272\u6743\u9650",children:"6.2.8.\u8bbe\u7f6e\u89d2\u8272\u6743\u9650"}),"\n",(0,r.jsx)(e.p,{children:"\u4e3a\u6307\u5b9a\u89d2\u8272\u8bbe\u7f6e\u6743\u9650\u3002\u53ea\u6709\u7ba1\u7406\u5458\u53ef\u4ee5\u6267\u884c\u6b64\u64cd\u4f5c\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u89d2\u8272\u6743\u9650\u5217\u8868\u5fc5\u987b\u662f\u201c\u5168\u91cf\u5217\u8868\u201d\uff0c\u5373\u8be5\u5217\u8868\u9700\u8981\u5305\u542b\u8be5\u89d2\u8272\u80fd\u64cd\u4f5c\u7684\u6240\u6709\u56fe\u53ca\u5176\u6743\u9650\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/role/{role_name}/permissions"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),": \u56fe\u540d\u79f0\u53ca\u76f8\u5e94\u6743\u9650\u7684\u5b57\u5178\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/role/role1/permissions\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n \u2022 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6dHJ1ZSwiaXNzIjoiZm1hLmFpIiwidXNlcl9pZCI6ImFkbWluIn0.SHaqrjKLaI4byjbEYVAH4D88dOTD_zYQ_uAvdizTMek\n Input:\n {\n "graph1" : "FULL",\n "graph2" : "READ"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"63\u670d\u52a1\u5668\u72b6\u6001",children:"6.3.\u670d\u52a1\u5668\u72b6\u6001"}),"\n",(0,r.jsx)(e.h4,{id:"631\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e",children:"6.3.1.\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e"}),"\n",(0,r.jsx)(e.p,{children:"\u4fee\u6539\u670d\u52a1\u5668\u914d\u7f6e\uff0c\u914d\u7f6e\u4fee\u6539\u540e\u7acb\u5373\u751f\u6548\uff0c\u5e76\u5c06\u5f71\u54cd\u6240\u6709\u670d\u52a1\u5668\u3002\u8fd9\u4e9b\u914d\u7f6e\u7684\u4f18\u5148\u7ea7\u9ad8\u4e8e\u914d\u7f6e\u6587\u4ef6\u4ee5\u53ca\u547d\u4ee4\u884c\u53c2\u6570\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/config"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u8bf7\u6c42\u4e3a\u4e00\u4e2a\u5b57\u5178\uff0c\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:'{"opt1":v1}'})," \u53ef\u4ee5\u5c06\u540d\u4e3a",(0,r.jsx)(e.code,{children:"opt1"}),"\u7684\u914d\u7f6e\u4fee\u6539\u4e3a",(0,r.jsx)(e.code,{children:"v1"}),"\u3002"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u914d\u7f6e\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u503c\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_DB_ASYNC"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u5f02\u6b65\u6a21\u5f0f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_TXN_OPTIMISTIC"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u9ed8\u8ba4\u4f7f\u7528\u4e50\u89c2\u4e8b\u52a1\u9501"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"OPT_AUDIT_LOG_ENABLE"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u5ba1\u8ba1\u65e5\u5fd7"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/config\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "OPT_DB_ASYNC": true,\n "OPT_AUDIT_LOG_ENABLE": false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"632\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001",children:"6.3.2.\u5f53\u524d\u670d\u52a1\u5668\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"lgraph_version"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u7248\u672c\u53f7"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_branch"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u5206\u652f"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"git_commit"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u4ee3\u7801\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"web_commit"}),(0,r.jsx)(e.td,{children:"\u524d\u7aef\u7801\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_id"}),(0,r.jsx)(e.td,{children:"CPP \u7f16\u8bd1\u5668 ID"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpp_version"}),(0,r.jsx)(e.td,{children:"CPP \u7f16\u8bd1\u5668\u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"python_version"}),(0,r.jsx)(e.td,{children:"PYTHON \u7248\u672c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"node"}),(0,r.jsx)(e.td,{children:"\u70b9 uri"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationship"}),(0,r.jsx)(e.td,{children:"\u8fb9 uri"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"cpu"}),(0,r.jsx)(e.td,{children:"cpu \u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8CPU%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668 CPU \u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk"}),(0,r.jsx)(e.td,{children:"\u786c\u76d8 IO \u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A1%AC%E7%9B%98%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"memory"}),(0,r.jsx)(e.td,{children:"\u5185\u5b58\u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%85%E5%AD%98%E7%8A%B6%E6%80%81",children:"\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_space"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8D%A0%E7%94%A8%E7%A9%BA%E9%97%B4",children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_config"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),(0,r.jsxs)(e.td,{children:["\u5b57\u5178\uff0c\u683c\u5f0f\u53c2\u89c1",(0,r.jsx)(e.a,{href:"#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF",children:"\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"up_time"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5e93\u5728\u7ebf\u65f6\u957f\uff08\u79d2\uff09"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "lgraph_version": "1.2.0",\n "git_branch": "master",\n "git_commit": "9e2977d",\n "web_commit": "1e2823d",\n "cpu_id": "GUN",\n "cpu_version": "4.8.5",\n "python_version": "3.2",\n "node": "/node",\n "relationship": "/relationship",\n "cpu": {\n "self": 25,\n "server": 35,\n "unit": "%"\n },\n "disk": {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n },\n "memory": {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n },\n "db_space": {\n "space": 57344,\n "unit": "B"\n },\n "db_config": {\n "db_async": false,\n "disable_auth": false,\n "enable_ha": false,\n ...\n },\n "up_time": 3235\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"633\u670d\u52a1\u5668-cpu-\u72b6\u6001",children:"6.3.3.\u670d\u52a1\u5668 CPU \u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/cpu"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f CPU \u4f7f\u7528\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 CPU \u4f7f\u7528\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/cpu\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25,\n "server": 35,\n "unit": "%"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"634\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001",children:"6.3.4.\u670d\u52a1\u5668\u786c\u76d8\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/disk"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u8bfb\u901f\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"write"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u5199\u901f\u7387"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/disk\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "read": 2000,\n "write": 2000,\n "unit": "B/s"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"635\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001",children:"6.3.5.\u670d\u52a1\u5668\u5185\u5b58\u72b6\u6001"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/memory"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"self"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\u5185\u5b58\u4f7f\u7528\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_avail"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u53ef\u7528\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"server_total"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u603b\u5185\u5b58"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/memory\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "self": 25016,\n "server_avail": 46865636,\n "server_total": 65860552,\n "unit": "KB"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"636\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4",children:"6.3.6.\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_space"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"space"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5360\u7528\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk_avail"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u53ef\u7528\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disk_total"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u786c\u76d8\u603b\u7a7a\u95f4"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"unit"}),(0,r.jsx)(e.td,{children:"\u5355\u4f4d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_space\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "disk_avail"::360074579968,\n "disk_total"::984373800960,\n "space": 57344,\n "unit": "B"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"637\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f",children:"6.3.7.\u56fe\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/db_config"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"db_async"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5de5\u4f5c\u6a21\u5f0f\uff08\u540c\u6b65\u6216\u5f02\u6b65\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"disable_auth"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u7981\u7528\u8eab\u4efd\u9a8c\u8bc1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ha"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u9ad8\u53ef\u7528\u6a21\u5f0f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_rpc"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528 RPC \u670d\u52a1\u5668"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"bind_host"}),(0,r.jsx)(e.td,{children:"REST \u670d\u52a1\u5668\u7684\u4e3b\u673a"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_audit_log"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u542f\u7528\u65e5\u5fd7\u5ba1\u8ba1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"port"}),(0,r.jsx)(e.td,{children:"REST \u670d\u52a1\u5668\u7684\u7aef\u53e3"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_port"}),(0,r.jsx)(e.td,{children:"RPC \u670d\u52a1\u5668\u7684\u7aef\u53e3"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optimistic_txn"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u9ed8\u8ba4\u4f7f\u7528\u4e50\u89c2\u4e8b\u52a1\u9501"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"thread_limit"}),(0,r.jsx)(e.td,{children:"\u56fe\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\u7684\u53ef\u7528\u7ebf\u7a0b\u6570"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"enable_ssl"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u4f7f\u7528 SSL \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"verbose"}),(0,r.jsx)(e.td,{children:"\u8f93\u51fa\u7684\u8be6\u7ec6\u7a0b\u5ea6"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/db_config\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "db_async":false,\n "disable_auth":false,\n "enable_ha":false,\n "enable_rpc":false,\n "bind_host":"127.0.0.1",\n "enable_audit_log":false,\n "port":7070,\n "optimistic_txn":false,\n "rpc_port":9091,\n "thread_limit":0,\n "enable_ssl":false,\n "verbose":2\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"638\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868",children:"6.3.8.\u9ad8\u53ef\u7528\u670d\u52a1\u5668\u5217\u8868"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"(\u4ec5\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\u6709\u6548)"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/peers"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u4e00\u4e2a\u670d\u52a1\u5668\u4fe1\u606f\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u670d\u52a1\u5668\u4fe1\u606f\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 RPC \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 REST \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"state"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668\u72b6\u6001"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5176\u4e2d\u670d\u52a1\u5668\u72b6\u6001\u53ef\u4e3a ",(0,r.jsx)(e.code,{children:"MASTER"}),",",(0,r.jsx)(e.code,{children:"SLAVE"}),",",(0,r.jsx)(e.code,{children:"OFFLINE"}),"\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/peers\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091",\n "state":"MASTER"\n },\n {\n "rest_address":"192.168.1.22:17072",\n "rpc_address":"192.168.1.22:19092",\n "state":"SLAVE"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"639\u5f53\u524d-leader-\u4fe1\u606f",children:"6.3.9.\u5f53\u524d Leader \u4fe1\u606f"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"(\u4ec5\u5728\u9ad8\u53ef\u7528\u6a21\u5f0f\u4e0b\u6709\u6548)"})}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/leader"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5f53\u524d leader \u670d\u52a1\u5668\u4fe1\u606f\uff0c\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rpc_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 RPC \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"rest_address"}),(0,r.jsx)(e.td,{children:"\u670d\u52a1\u5668 REST \u5730\u5740"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/leader\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "rest_address":"192.168.1.22:17071",\n "rpc_address":"192.168.1.22:19091"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6310\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f",children:"6.3.10.\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/statistics"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5f53\u524d\u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f\uff0c\u683c\u5f0f\u4e3a\uff1a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"requests/second"}),(0,r.jsx)(e.td,{children:"\u6bcf\u79d2\u5904\u7406\u7684\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"writes/second"}),(0,r.jsx)(e.td,{children:"\u6bcf\u79d2\u5904\u7406\u7684\u5199\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"running_tasks"}),(0,r.jsx)(e.td,{children:"\u6b63\u5728\u6267\u884c\u7684\u8bf7\u6c42\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"failure_rate"}),(0,r.jsx)(e.td,{children:"\u8bf7\u6c42\u5931\u8d25\u7387"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9\u578b"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/statistics\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "failure_rate": 2.3,\n "requests/second": 122.3,\n "running_tasks": 10,\n "writes/second": 12.4\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6311\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f",children:"6.3.11.\u5ba1\u8ba1\u65e5\u5fd7\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/info/log/?begin_time={begin_time}&end_time={end_time}&user={user}&num_log={num_log}&descending_order={descending_order}"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u8d77\u59cb\u65f6\u95f4(\u5fc5\u586b\uff0c\u683c\u5f0f\u4e3a YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"\u65f6\u95f4\u6233"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u7ed3\u675f\u65f6\u95f4(\u9ed8\u8ba4\u4e3a\u5f53\u524d\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3a YYYY-mm-dd HH:MM:SS)"}),(0,r.jsx)(e.td,{children:"\u65f6\u95f4\u6233"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u64cd\u4f5c\u8005(\u7ba1\u7406\u5458\u53ef\u67e5\u8be2\u6240\u6709\u7528\u6237\u7684\u65e5\u5fd7\uff0c\u666e\u901a\u7528\u6237\u53ea\u80fd\u67e5\u8be2\u672c\u4eba\u65e5\u5fd7)"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_log"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u65e5\u5fd7\u7684\u6570\u91cf(\u9ed8\u8ba4\u4e3a 100)"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"descending_order"}),(0,r.jsx)(e.td,{children:"\u67e5\u8be2\u7ed3\u679c\u662f\u5426\u964d\u5e8f\u8f93\u51fa(\u9ed8\u8ba4\u4e3a true)"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u5219\u8fd4\u56de 200 \u4ee3\u7801\uff0c\u5e76\u8fd4\u56de\u5ba1\u8ba1\u65e5\u5fd7\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u6761\u64cd\u4f5c\u65e5\u5fd7\uff0c\u5176\u683c\u5f0f\u4e3a\uff1a"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"index"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7d22\u5f15\u503c"}),(0,r.jsx)(e.td,{children:"\u6574\u578b"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"begin_time"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u5f00\u59cb\u65f6\u95f4"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"end_time"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7ed3\u675f\u65f6\u95f4"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"user"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u53d1\u8d77\u8005"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"graph"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u56fe"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"read_write"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u4e3a\u8bfb\u64cd\u4f5c\u6216\u8005\u5199\u64cd\u4f5c"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"success"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u662f\u5426\u6210\u529f"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"content"}),(0,r.jsx)(e.td,{children:"\u8be5\u64cd\u4f5c\u7684\u7b80\u8981\u5185\u5bb9"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/info/log/?begin_time=2020-02-17%2015:00:00&end_time=2020-02-20%2012:00:00&user=admin&num_log=100&descending_order=false\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "post /login Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "",\n "index": 1,\n "read_write": "read",\n "success": true,\n "type": "Security",\n "user":"admin"\n },\n {\n "begin_time": "2020-02-17 15:27:15",\n "content": "Load plugin : `echo` Successful",\n "end_time": "2020-02-17 15:27:15",\n "graph": "default",\n "index": 2,\n "read_write": "write",\n "success": true,\n "type": "Plugin",\n "user": "admin"\n },\n ...\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"64\u4efb\u52a1\u7ba1\u7406",children:"6.4.\u4efb\u52a1\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u63d0\u4f9b\u957f\u4efb\u52a1\u7684\u8ddf\u8e2a\u548c\u4e2d\u6b62\u529f\u80fd\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7 REST API \u6765\u67e5\u8be2\u5f53\u524d\u6b63\u5728\u8fd0\u884c\u7684\u5728 Cypher \u548c\u5b58\u50a8\u8fc7\u7a0b\u67e5\u8be2\uff0c\u5e76\u9009\u62e9\u4e2d\u6b62\u6b63\u5728\u6267\u884c\u7684\u67e5\u8be2\u3002"}),"\n",(0,r.jsx)(e.p,{children:"\u4efb\u52a1\u7ba1\u7406\u5bf9\u5e94\u7684 URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/task/{thread_id}/{task_id}\n"})}),"\n",(0,r.jsx)(e.h4,{id:"641\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1",children:"6.4.1.\u67e5\u8be2\u6b63\u5728\u6267\u884c\u7684\u4efb\u52a1"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u8fd4\u56de\u7684 JSON \u4e3a\u4e00\u4e2a\u6570\u7ec4\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"time_elapsed"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1\u5df2\u7ecf\u6267\u884c\u7684\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2"}),(0,r.jsx)(e.td,{children:"\u6d6e\u70b9"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"task_id"}),(0,r.jsx)(e.td,{children:"\u4efb\u52a1 ID"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/task\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "description" : "[CPP_PLUGIN] scan_graph",\n "time_elapsed" : 13.987,\n "task_id" : "3_10"\n },\n {\n "description" : "[CYPHER] MATCH(n) return n",\n "time_elapsed" : 30.887,\n "task_id" : "2_6"\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"642\u4e2d\u6b62\u4efb\u52a1",children:"6.4.2.\u4e2d\u6b62\u4efb\u52a1"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/task/{task_id}"}),"\n\u5176\u4e2d ",(0,r.jsx)(e.code,{children:"{task_id}"})," \u662f ",(0,r.jsx)(e.code,{children:"GET /task"})," \u8fd4\u56de\u7ed3\u679c\u4e2d\u7684 ",(0,r.jsx)(e.code,{children:"task_id"}),"\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/task/3_10\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"65\u5b50\u56fe\u7ba1\u7406",children:"6.5.\u5b50\u56fe\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u652f\u6301\u591a\u5b50\u56fe\uff0c\u5b50\u56fe\u4e4b\u95f4\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u7684\u5b50\u56fe\u53ef\u4ee5\u5bf9\u4e0d\u540c\u7528\u6237\u5f00\u653e\u4e0d\u540c\u6743\u9650\u3002\u7ba1\u7406\u5458\u53ef\u4ee5\u6dfb\u52a0\u548c\u5220\u9664\u5b50\u56fe\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"651\u521b\u5efa\u65b0\u5b50\u56fe",children:"6.5.1.\u521b\u5efa\u65b0\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5b50\u56fe\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"config"}),(0,r.jsx)(e.td,{children:"\u914d\u7f6e"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u683c\u5f0f\u4e3a { {\u5217\u540d 1}:{\u5217\u503c 1},... }"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"graph1",\n "config" : {\n "max_size_GB":2048,\n "description": "description of graph1"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"652\u5220\u9664\u5b50\u56fe",children:"6.5.2.\u5220\u9664\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"653\u5217\u51fa\u6240\u6709\u5b50\u56fe",children:"6.5.3.\u5217\u51fa\u6240\u6709\u5b50\u56fe"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b50\u56fe\u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "graph1": {\n "max_size_GB":1024,\n "description":"description of graph1"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"654\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f",children:"6.5.4.\u83b7\u53d6\u5b50\u56fe\u4fe1\u606f"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5b50\u56fe\u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "max_size_GB":1024,\n "description":"description of graph1"\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"66\u5143\u6570\u636e\u7ba1\u7406",children:"6.6.\u5143\u6570\u636e\u7ba1\u7406"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u662f\u4e00\u4e2a\u5177\u5907\u591a\u56fe\u80fd\u529b\u7684\u5f3a\u6a21\u5f0f\u5c5e\u6027\u56fe\u6570\u636e\u5e93\u3002\u5728\u6bcf\u4e00\u5f20\u5b50\u56fe\u4e2d\uff0c\u6bcf\u79cd\u70b9\u548c\u8fb9\u90fd\u9700\u8981\u6709\u9884\u5b9a\u4e49\u7684\u6570\u636e\u683c\u5f0f\u3002\u6570\u636e\u683c\u5f0f\u7531 Label \u51b3\u5b9a\uff0c\u6bcf\u79cd Label \u90fd\u6709\u81ea\u5df1\u7684\u6570\u636e\u683c\u5f0f\u3002\u7528\u6237\u53ef\u4ee5\u4f7f\u7528 REST API \u6dfb\u52a0\uff0c\u5220\u9664\u548c\u67e5\u8be2 Label \u53ca\u5176\u5bf9\u5e94\u7684\u6570\u636e\u683c\u5f0f\u3002"}),"\n",(0,r.jsx)(e.p,{children:"Label \u64cd\u4f5c\u5bf9\u5e94\u7684 URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/label/{type}/{label_name}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d{type}\u53ef\u4ee5\u662f node \u6216\u8005 relationship\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"661\u521b\u5efalabel",children:"6.6.1.\u521b\u5efaLabel"}),"\n",(0,r.jsx)(e.p,{children:"\u521b\u5efa Label \u7684\u8fc7\u7a0b\u540c\u65f6\u4e5f\u662f\u5b9a\u4e49\u5176\u6570\u636e\u7c7b\u578b\u7684\u8fc7\u7a0b\u3002\u53ea\u6709\u521b\u5efa\u4e86 Label \u624d\u80fd\u5728\u56fe\u4e2d\u63d2\u5165\u76f8\u5e94\u7c7b\u578b\u7684\u70b9\u6216\u8005\u8fb9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u5b9a\u4e49"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"is_vertex"}),(0,r.jsx)(e.td,{children:"\u662f\u5426\u662f\u70b9 Label"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"primary"}),(0,r.jsx)(e.td,{children:"\u70b9\u7684\u4e3b\u952e\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge_constraints"}),(0,r.jsx)(e.td,{children:"\u8fb9\u7684\u7ea6\u675f"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"primary"})," \u5728 ",(0,r.jsx)(e.code,{children:"is_vertex"})," \u4e3a ",(0,r.jsx)(e.code,{children:"true"})," \u7684\u65f6\u5019\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u5b57\u6bb5\u53ea\u6709\u70b9\u624d\u6709, \u521b\u5efa\u70b9\u7684\u65f6\u5019\u5fc5\u987b\u8bbe\u7f6e\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"edge_constraints"})," \u5728 ",(0,r.jsx)(e.code,{children:"is_vertex"})," \u4e3a ",(0,r.jsx)(e.code,{children:"false"})," \u7684\u65f6\u5019\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u5b57\u6bb5\u53ea\u6709\u8fb9\u6709\u3002\u8fd9\u4e2a\u5b57\u6bb5\u9650\u5236\u4e86\u8be5\u8fb9\u7684\u8d77\u70b9\u548c\u7ec8\u70b9\u53ea\u80fd\u662f\u54ea\u4e9b\u70b9\u7684\u7ec4\u5408\uff0c\u6bd4\u5982\uff1a",(0,r.jsx)(e.code,{children:'[["vertex_label1","vertex_label2"],["vertex_label3","vertex_label4"]]'}),"\uff0c\u9650\u5236\u4e86\u8be5\u8fb9\u53ea\u80fd\u662f\u4ece ",(0,r.jsx)(e.code,{children:"vertex_label1"})," \u5230 ",(0,r.jsx)(e.code,{children:"vertex_label2"})," \u548c \u4ece ",(0,r.jsx)(e.code,{children:"vertex_label3"})," \u5230 ",(0,r.jsx)(e.code,{children:"vertex_label4"}),"\u3002\u5982\u679c\u4e0d\u60f3\u6709\u4efb\u4f55\u9650\u5236\uff0c\u4e0d\u8bbe\u7f6e\u8be5\u5b57\u6bb5\u5373\u53ef\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5176\u4e2d",(0,r.jsx)(e.code,{children:"fields"}),"\u4e3a\u4e00\u4e2a\u6570\u7ec4\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u5b9a\u4e49\u6570\u636e\u7684\u4e00\u5217\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"name"}),(0,r.jsx)(e.td,{children:"\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u6570\u636e\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32\uff0c\u6709\u4ee5\u4e0b\u7c7b\u578b\uff1a int8, int16, int32, int64, float, double, string, date, datetime, binary, bool"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u662f\u5426\u53ef\u4ee5\u4e3a\u7a7a\uff08\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a false\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "name":"Actor",\n "fields": [\n {"name":"uid", "type":"int64", "optional":false},\n {"name":"name", "type":"string", "optional":true}\n ],\n "is_vertex":true,\n "primary" : "uid"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"662\u5217\u51fa\u6240\u6709-label",children:"6.6.2.\u5217\u51fa\u6240\u6709 Label"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label \u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex"}),(0,r.jsx)(e.td,{children:"\u70b9 Label \u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "edge": [\n "HAS_CHILD",\n "MARRIED",\n "BORN_IN",\n "DIRECTED",\n "WROTE_MUSIC_FOR",\n "ACTED_IN"\n ],\n "vertex": [\n "Person",\n "City",\n "Film"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"663\u83b7\u53d6-label-\u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49",children:"6.6.3.\u83b7\u53d6 Label \u7684\u6570\u636e\u683c\u5f0f\u5b9a\u4e49"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/label/{[node|relationship]}/{label_name}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u6570\u636e\u5217\u5b9a\u4e49\u8868\uff0c\u7c7b\u578b\u662f\u4e00\u4e2a\u8bcd\u5178\uff0ckey \u4e3a\u5217\u540d\uff0cvalue \u4e3a\u5217\u5b9a\u4e49\uff0c\u5217\u5b9a\u4e49\u89c1\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.li,{}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"optional"}),(0,r.jsx)(e.td,{children:"\u8be5\u5217\u503c\u662f\u5426\u53ef\u4e3a\u7a7a"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u5217\u503c\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})]})]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/label/node/person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "age":{\n "optional":false,\n "type":"int16"\n },\n "id":{\n "optional":false,\n "type":"int8"\n },\n "name":{\n "optional":false,\n "type":"string"\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"664schema-\u5bfc\u5165",children:"6.6.4.Schema \u5bfc\u5165"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/schema/text"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u6587\u4ef6\u5185\u5bb9\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]})})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"description \u7684\u5177\u4f53\u63cf\u8ff0\u65b9\u6cd5\u89c1\u300aTuGraph \u64cd\u4f5c\u624b\u518c\u300b\u4e2d\u6570\u636e\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u5185\u5bb9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"Schema \u5bfc\u5165\u4f1a\u6839\u636e description \u6bd4\u8f83\u65b0\u7684 Schema \u548c\u6570\u636e\u5e93\u4e2d\u539f\u6709\u7684 Schema \u662f\u5426\u517c\u5bb9\uff0c\u68c0\u67e5\u7684\u7c92\u5ea6\u4e3a Label\u3002\u5982\u679c\u4e0d\u4e00\u81f4\u5219\u51fa\u9519\uff0c\u5982\u679c\u4e00\u81f4\u5219\u6dfb\u52a0\u539f\u5148 Schema \u4e2d\u4e0d\u5b58\u5728\u7684 Label\uff0c\u8fd4\u56de 200\u3002"}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/schema/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"schema\\\\":[{\\\\"label\\\\":\\\\"actor\\\\",\\\\"primary\\\\":\\\\"aid\\\\",\\\\"properties\\\\":[{\\\\"name\\\\":\\\\"aid\\\\",\\\\"type\\\\":\\\\"STRING\\\\"}],\\\\"type\\\\":\\\\"VERTEX\\\\"}]}"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4e0a\u8ff0 description \u7684\u503c\u662f\u5982\u4e0b json \u5e8f\u5217\u5316\u540e\u7684\u5b57\u7b26\u4e32:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "schema": [\n {\n "label": "actor",\n "type": "VERTEX",\n "properties": [{ "name": "aid", "type": "STRING" }],\n "primary": "aid"\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": ""\n }\n'})}),"\n",(0,r.jsx)(e.h3,{id:"67\u70b9\u64cd\u4f5c",children:"6.7.\u70b9\u64cd\u4f5c"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/node/{vid}\n"})}),"\n",(0,r.jsx)(e.p,{children:"Nodes \u63d0\u4f9b\u8282\u70b9\uff08Vertex\uff09\u7684 CRUD \u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST/PUT/DELETE \u8bf7\u6c42\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"671\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf",children:"6.7.1.\u5217\u51fa\u70b9\u6570\u91cf\u548clabel\u6570\u91cf"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_label"}),(0,r.jsx)(e.td,{children:"\u70b9 label \u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"num_vertex"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.em,{children:"\u6ce8\u610f num_vertex \u8fd4\u56de\u7684\u5e76\u4e0d\u662f\u51c6\u786e\u7684\u70b9\u6570\u91cf\uff0c\u53ea\u662f\u4e00\u4e2a\u4f30\u8ba1\u503c\u3002"})}),"\n",(0,r.jsx)(e.h4,{id:"672\u521b\u5efa\u4e00\u4e2a\u70b9",children:"6.7.2.\u521b\u5efa\u4e00\u4e2a\u70b9"}),"\n",(0,r.jsx)(e.p,{children:"\u5411\u6570\u636e\u5e93\u4e2d\u63d2\u5165\u4e00\u4e2a\u70b9\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u5176\u4e2d key \u662f\u5217\u540d\uff0cvalue \u662f\u76f8\u5e94\u503c\u3002value \u5fc5\u987b\u662f\u4e0e\u5217\u7c7b\u578b\u76f8\u5e94\u7684\u7c7b\u578b\uff0c\u5982\u5217\u4e3a int32\uff0c\u5219 value \u53ea\u80fd\u662f\u6574\u6570\u3002"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\u5e76\u5728 JSON \u5185\u5bb9\u4e2d\u8fd4\u56de\u65b0\u70b9 vid\u3002\u8be5 ID \u53ef\u7528\u4e8e\u540e\u7eed\u7684\u70b9\u64cd\u4f5c\u4e2d\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "property" : {\n "name" : "Passerby A",\n "birthyear" : 1989\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n 21\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"673\u6279\u91cf\u521b\u5efa\u70b9",children:"6.7.3.\u6279\u91cf\u521b\u5efa\u70b9"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph \u5141\u8bb8\u4e00\u6b21\u6027\u63d2\u5165\u591a\u4e2a\u70b9\uff0c\u4ee5\u51cf\u5c11\u7f51\u7edc\u5f00\u9500\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d fields \u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\u5217\u8868\uff0c\u5217\u51fa\u4e00\u7cfb\u5217\u5217\u540d\uff1bvalues \u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u5217\u8868\uff0c\u5217\u8868\u4e2d\u6bcf\u4e2a\u5143\u7d20\u662f\u5217\u6570\u636e\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\u5e76\u5728 JSON \u5185\u5bb9\u4e2d\u8fd4\u56de\u65b0\u589e\u52a0\u7684\u70b9\u7684 vid \u5217\u8868\uff0c\u8be5\u5217\u8868\u4e2d\u6bcf\u4e00\u4e2a vid \u6309\u987a\u5e8f\u5bf9\u5e94\u8bf7\u6c42\u4e2d\u7684\u6bcf\u4e00\u4e2a\u70b9\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "Person",\n "fields" : ["name", "birthyear"],\n "values" : [["alex", 2000],\n ["bob", 1999]]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n 22,\n 23\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h4,{id:"674\u83b7\u53d6\u70b9",children:"6.7.4.\u83b7\u53d6\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178\uff0c\u683c\u5f0f\u4e3a { {\u5217\u540d 1}:{\u5217\u503c 1},...}"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "label": "Person"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"675\u5220\u9664\u70b9",children:"6.7.5.\u5220\u9664\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"\u88ab\u5220\u6389\u7684\u70b9\u7684\u5165\u8fb9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"\u88ab\u5220\u6389\u7684\u70b9\u7684\u51fa\u8fb9\u6570\u91cf"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/{graph_name}/node/4\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "in": 0,\n "out": 0\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"676\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027",children:"6.7.6.\u83b7\u53d6\u70b9\u6240\u6709\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Node \u6240\u6709\u5c5e\u6027\uff08\u5b57\u5178\uff09"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"677\u83b7\u53d6\u70b9\u5c5e\u6027",children:"6.7.7.\u83b7\u53d6\u70b9\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}/property/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": Node \u67d0\u4e00\u5c5e\u6027"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/5/property/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Natasha Richardson"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"678\u66f4\u65b0\u70b9\u5c5e\u6027",children:"6.7.8.\u66f4\u65b0\u70b9\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{vertex_id}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u70b9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/{graph_name}/node/5\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "birthyear" : 1964,\n "mobile" : "********"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"68\u8fb9\u64cd\u4f5c",children:"6.8.\u8fb9\u64cd\u4f5c"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/relationship/{euid}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0e Nodes \u529f\u80fd\u7c7b\u4f3c\uff0cRelationships \u63d0\u4f9b\u8fb9\uff08edge\uff09\u7684 CRUD \u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST/PUT/DELETE \u8bf7\u6c42\u3002\u6bcf\u4e00\u6761\u8fb9\u90fd\u53ef\u4ee5\u7531\u4e00\u4e2a\u552f\u4e00 ID\uff08euid\uff09\u6765\u6807\u8bc6\u3002\u8fd9\u4e2a ID \u53ef\u4ee5\u4ece\u5728\u63d2\u5165\u8fb9\u65f6\u83b7\u5f97\uff0c\u6216\u8005\u5728 ",(0,r.jsx)(e.a,{href:"#%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E8%BE%B9",children:"\u5217\u51fa\u6240\u6709\u8fb9"})," \u64cd\u4f5c\u4e2d\u5f97\u5230\u3002"]}),"\n",(0,r.jsx)(e.h4,{id:"681\u521b\u5efa\u4e00\u6761\u8fb9",children:"6.8.1.\u521b\u5efa\u4e00\u6761\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"\u76ee\u7684\u70b9 ID"}),(0,r.jsx)(e.td,{children:"\u6574\u6570\u503c"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u540c\u65f6\u8fd4\u56de\u65b0\u5efa\u7acb\u7684\u8fb9\u7684 euid\uff08\u5b57\u7b26\u4e32\uff09\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/node/{src}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "destination" : 14,\n "label" : "BORN_IN",\n "property" : {}\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "1_14_1_0"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"682\u6279\u91cf\u521b\u5efa\u8fb9",children:"6.8.2.\u6279\u91cf\u521b\u5efa\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"fields"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u540d"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"edge"}),(0,r.jsx)(e.td,{children:"\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d edge \u662f\u4e00\u4e2a\u6570\u636e\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u4e00\u6761\u8fb9\uff0c\u5176\u5b9a\u4e49\u5982\u4e0b\uff1a"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"source"}),(0,r.jsx)(e.td,{children:"\u8d77\u70b9 id"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"destination"}),(0,r.jsx)(e.td,{children:"\u7ec8\u70b9 id"}),(0,r.jsx)(e.td,{children:"\u6574\u6570"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"values"}),(0,r.jsx)(e.td,{children:"\u6570\u636e\u5217\u8868"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5217\u5bf9\u5e94 fields \u4e2d\u7684\u4e00\u4e2a\u5217\uff0c\u7c7b\u578b\u662f\u8be5\u5217\u5bf9\u5e94\u7684\u7c7b\u578b"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u540c\u65f6\u8fd4\u56de\u65b0\u5efa\u7acb\u7684\u8fb9\u7684 euid \u5217\u8868\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/{graph_name}/relationship\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label" : "knows",\n "fields" : ["from_year", "weight"],\n "edge" : [\n {"source":0, "destination":1, "values":[2011, 0.8]},\n {"source":1, "destination":2, "values":[2008, 0.9]}\n ]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_1_0_0",\n "1_2_0_0"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"683\u5217\u51fa\u6240\u6709\u51fa\u8fb9outgoing-relationships",children:"6.8.3.\u5217\u51fa\u6240\u6709\u51fa\u8fb9\uff08outgoing relationships\uff09"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/out"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 src \u7684\u6240\u6709\u51fa\u8fb9 euid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/out\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "4_5_0_0",\n "4_7_1_2"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"684\u5217\u51fa\u6240\u6709\u5165\u8fb9incoming-relationships",children:"6.8.4.\u5217\u51fa\u6240\u6709\u5165\u8fb9\uff08incoming relationships\uff09"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{dst}/relationship/in"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 dst \u7684\u6240\u6709\u5165\u8fb9 euid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationship/in\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"685\u5217\u51fa\u6240\u6709\u8fb9",children:"6.8.5.\u5217\u51fa\u6240\u6709\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/node/{src}/relationship/all"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"in"}),(0,r.jsx)(e.td,{children:"\u5165\u8fb9"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"out"}),(0,r.jsx)(e.td,{children:"\u51fa\u8fb9"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/{graph_name}/node/4/relationships/all\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "out": [\n "4_5_0_0",\n "4_7_1_2"\n ],\n "in": [\n "0_4_0_0",\n "3_4_3_1"\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"686\u83b7\u53d6\u8fb9",children:"6.8.6.\u83b7\u53d6\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"\u8fb9 Label"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/0_4_0_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "property": {\n },\n "label": "MARRIED"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"687\u5220\u9664\u8fb9",children:"6.8.7.\u5220\u9664\u8fb9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/relationship/14_0_1_0\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"688\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027",children:"6.8.8.\u83b7\u53d6\u8fb9\u7684\u6240\u6709\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u8fb9\u5c5e\u6027\u5b57\u5178"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/14_0_2_0/property\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n {\n "weight": 0.8,\n "begin": 20180922\n }\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"689\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027",children:"6.8.9.\u83b7\u53d6\u8fb9\u7684\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}/property/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),': \u5982\u679c\u6210\u529f,\u8fd4\u56de\u4ee3\u7801 200,\u540c\u65f6\u8fd4\u56de\u8fb9\u7684\u5c5e\u6027\u3002\u5982\u679c\u5931\u8d25,\u8fd4\u56de\u4ee3\u7801 400,\u540c\u65f6\u8fd4\u56de "Illegal field."\u3002']}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/relationship/17_0_2_2/property/charactername\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n "Henri Ducard"\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"6810\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027",children:"6.8.10.\u66f4\u65b0\u8fb9\u7684\u5c5e\u6027"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/relationship/{euid}"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": PUT"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"property"}),(0,r.jsx)(e.td,{children:"\u8fb9\u5c5e\u6027"}),(0,r.jsx)(e.td,{children:"\u5b57\u5178"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 PUT http://localhost:7070/db/graph1/relationship/17_0_2_2\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "property" : {\n "charactername" : "Henri Ducard/passer a"\n }\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h3,{id:"69\u7d22\u5f15",children:"6.9.\u7d22\u5f15"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/index/{label}/{field}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u63d0\u4f9b\u7d22\u5f15\u64cd\u4f5c\uff0c\u63a5\u53d7 GET/POST \u8bf7\u6c42\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"691\u521b\u5efa\u7d22\u5f15",children:"6.9.1.\u521b\u5efa\u7d22\u5f15"}),"\n",(0,r.jsx)(e.p,{children:"\u8be5\u64cd\u4f5c\u4f1a\u542f\u52a8\u4e00\u4e2a\u521b\u5efa\u7d22\u5f15\u7684\u540e\u53f0\u4efb\u52a1\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5217\u51fa\u8be5 Label \u76f8\u5173\u7684\u6240\u6709\u7d22\u5f15\u6765\u68c0\u67e5\u65b0\u5efa\u7d22\u5f15\u7684\u72b6\u6001\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"label"}),(0,r.jsx)(e.td,{children:"Label \u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"field"}),(0,r.jsx)(e.td,{children:"\u57df\u540d"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"type"}),(0,r.jsx)(e.td,{children:"\u7d22\u5f15\u7c7b\u578b"}),(0,r.jsx)(e.td,{children:"int\u7c7b\u578b\uff0c0\u8868\u793a\u975e\u552f\u4e00\u7d22\u5f15\uff0c1\u8868\u793a\u5168\u5c40\u552f\u4e00\u7d22\u5f15\uff0c2\u8868\u793a\u4e24\u70b9\u95f4\u552f\u4e00\u7d22\u5f15"})]})]})]}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json\n Input:\n {\n "label": "Person",\n "field": "birthyear",\n "is_unique" : false\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"692\u5217\u51fa\u6240\u6709\u7d22\u5f15",children:"6.9.2.\u5217\u51fa\u6240\u6709\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7d22\u5f15\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u7d22\u5f15\u63cf\u8ff0\uff0c\u683c\u5f0f\u4e0e",(0,r.jsx)(e.a,{href:"#indexspec",children:"\u521b\u5efa\u7d22\u5f15"}),"\u65f6\u4f7f\u7528\u683c\u5f0f\u76f8\u540c\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "field": "name",\n "label": "City",\n "is_unique": false\n },\n {\n "field": "title",\n "label": "Film",\n "is_unique": false\n },\n {\n "field": "name",\n "label": "Person",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"693\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a-label-\u76f8\u5173\u7684\u7d22\u5f15",children:"6.9.3.\u5217\u51fa\u6240\u6709\u4e0e\u67d0\u4e2a Label \u76f8\u5173\u7684\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u7d22\u5f15\u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u7d22\u5f15\u63cf\u8ff0\uff0c\u683c\u5f0f\u4e0e",(0,r.jsx)(e.a,{href:"#indexspec",children:"\u521b\u5efa\u7d22\u5f15"}),"\u65f6\u4f7f\u7528\u683c\u5f0f\u76f8\u540c\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n \u2022 Content-Type: application/json; charset=UTF-8\n Output:\n {\n [\n {\n "label": "Person",\n "field": "name",\n "is_unique": true\n },\n {\n "label": "Person",\n "field": "age",\n "is_unique": false\n }\n ]\n }\n'})}),"\n",(0,r.jsx)(e.h4,{id:"694\u5220\u9664\u7d22\u5f15",children:"6.9.4.\u5220\u9664\u7d22\u5f15"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/{field}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": DELETE"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u5982\u679c\u6210\u529f\uff0c\u8fd4\u56de\u4ee3\u7801 200\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 DELETE http://localhost:7070/db/graph1/index/Person/name\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n"})}),"\n",(0,r.jsx)(e.h4,{id:"695\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9",children:"6.9.5.\u6839\u636e\u7d22\u5f15\u83b7\u53d6\u70b9"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/index/{label}/?field={field}&value={value}"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": GET"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),": \u70b9 vid \u5217\u8868"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 GET http://localhost:7070/db/graph1/index/Person/?field=birthyear&value=1986\n \u2022 Accept: application/json; charset=UTF-8\n"})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" \u2022 200: OK\n Output:\n {\n [\n 1,\n 8\n ]\n }\n"})}),"\n",(0,r.jsx)(e.h3,{id:"610\u5728\u7ebf\u589e\u91cf\u5bfc\u5165",children:"6.10.\u5728\u7ebf\u589e\u91cf\u5bfc\u5165"}),"\n",(0,r.jsx)(e.h4,{id:"6101\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165",children:"6.10.1.\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u5bfc\u5165"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/import/text"})]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n",(0,r.jsxs)(e.li,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"description"}),(0,r.jsx)(e.td,{children:"\u6587\u4ef6\u5185\u5bb9\u63cf\u8ff0"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"data"}),(0,r.jsx)(e.td,{children:"\u8981\u5bfc\u5165\u7684\u6587\u4ef6\u5185\u5bb9\uff08\u5efa\u8bae\u6700\u5927\u5728 16MB \u5de6\u53f3\uff0c\u6700\u957f\u4e0d\u8d85\u8fc7 17MB\uff09"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32 / \u6570\u7ec4 / \u5bf9\u8c61"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"continue_on_error"}),(0,r.jsxs)(e.td,{children:["\u51fa\u9519\u540e\u662f\u5426\u7ee7\u7eed\u5bfc\u5165\uff08\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a",(0,r.jsx)(e.code,{children:"false"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\uff09"}),(0,r.jsx)(e.td,{children:"\u5e03\u5c14\u503c"}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"delimiter"}),(0,r.jsxs)(e.td,{children:["\u5206\u9694\u7b26\uff08\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a",(0,r.jsx)(e.code,{children:"\u201c,\u201d"})]}),(0,r.jsx)(e.td,{})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\uff09"}),(0,r.jsx)(e.td,{children:"\u5b57\u7b26\u4e32"}),(0,r.jsx)(e.td,{})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"description \u7684\u5177\u4f53\u63cf\u8ff0\u65b9\u6cd5\u89c1\u300aTuGraph \u64cd\u4f5c\u624b\u518c\u300b\u4e2d\u6570\u636e\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u5185\u5bb9\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u5206\u9694\u7b26\u53ef\u4ee5\u662f\u5355\u5b57\u7b26\uff0c\u4e5f\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\uff0c\u4f46\u4e0d\u80fd\u5305\u542b",(0,r.jsx)(e.code,{children:"\\r"}),"\u6216\u8005",(0,r.jsx)(e.code,{children:"\\n"}),"\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"data \u53ef\u4ee5\u662f\u5982\u4e0b\u5f62\u5f0f\u4e4b\u4e00\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["\u5b57\u7b26\u4e32\u5982 ",(0,r.jsx)(e.code,{children:'"1,2\\n3,4\\n"'})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["ASCII \u7801\u7ec4\u6210\u7684\u6570\u7ec4\u5982 ",(0,r.jsx)(e.code,{children:"[49,44,50,10,51,44,52,10]"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:["\u5f62\u5982\u4e0a\u8ff0\u6570\u7ec4\u7684\u5b57\u5178\u5982 ",(0,r.jsx)(e.code,{children:'{"0":49,"1":44,"2":50,"3":10,"4":51,"5":44,"6":52,"7":10}'})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u7cfb\u7edf",(0,r.jsx)(e.strong,{children:"\u4e0d\u4f1a"}),"\u81ea\u52a8\u6267\u884c\u65b0\u5efa label\u3001\u6dfb\u52a0\u7d22\u5f15\u7b49\u64cd\u4f5c\u3002\u5728\u6b64\u64cd\u4f5c\u4e4b\u524d\u9700\u8981\u4fdd\u8bc1\u6d89\u53ca\u7684 label \u5df2\u7ecf\u5b58\u5728\u5e76\u5177\u6709\u9002\u5f53\u7684\u7d22\u5f15\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u5982\u679c\u6210\u529f\u5bfc\u5165\u5b8c\u6bd5\uff0c\u8fd4\u56de\u4ee3\u7801 200\uff0c\u5e76\u5728 ",(0,r.jsx)(e.code,{children:"log"})," \u5b57\u6bb5\u8fd4\u56de\u4e00\u4e9b\u65e5\u5fd7\u4fe1\u606f\uff08\u53ef\u80fd\u4e3a\u7a7a\uff09\uff1b\u5426\u5219\uff0c\u4fdd\u8bc1\u6240\u6709\u7684\u6570\u636e\u5747\u672a\u88ab\u5bfc\u5165\uff0c\u5e76\u5728 ",(0,r.jsx)(e.code,{children:"error_message"})," \u5b57\u6bb5\u8fd4\u56de\u9519\u8bef\u4fe1\u606f\u3002"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/import/text\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "description": "{\\\\"files\\\\":[{\\\\"columns\\\\":[\\\\"SRC_ID\\\\",\\\\"role\\\\",\\\\"DST_ID\\\\"],\\\\"format\\\\":\\\\"CSV\\\\",\\\\"label\\\\":\\\\"role\\\\",\\\\"SRC_ID\\\\":\\\\"actor\\\\",\\\\"DST_ID\\\\":\\\\"movie\\\\"}]}"}",\n "data": "1,Role1,2\\n3,Role2,4\\n",\n "continue_on_error": true,\n "delimiter": ","\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4e0a\u8ff0 description \u7684\u503c\u662f\u5982\u4e0b json \u5e8f\u5217\u5316\u540e\u7684\u5b57\u7b26\u4e32"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-json",children:'{\n "files": [\n {\n "format": "CSV",\n "label": "role",\n "SRC_ID": "actor",\n "DST_ID": "movie",\n "columns": ["SRC_ID", "role", "DST_ID"]\n }\n ]\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 200: OK\n Output:\n {\n "log": "Missing src uid 1\\n"\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u7531\u4e8e\u8bf7\u6c42\u4e2d\u6307\u5b9a\u4e86\u5728\u51fa\u9519\u65f6\u7ee7\u7eed\uff0c\u8be5\u8fd4\u56de\u4fe1\u606f\u8bf4\u660e SRC_ID \u4e3a 1 \u7684\u8fb9\u6ca1\u6709\u88ab\u5bfc\u5165\uff0c\u800c\u5176\u4ed6\u4fe1\u606f\u5bfc\u5165\u6210\u529f\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"611\u5176\u4ed6",children:"6.11.\u5176\u4ed6"}),"\n",(0,r.jsx)(e.p,{children:"URI \u683c\u5f0f\u4e3a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:" http://{host}:{port}/db/{graph_name}/misc\n"})}),"\n",(0,r.jsx)(e.h4,{id:"6111\u63d0\u53d6\u5b50\u56fe",children:"6.11.1.\u63d0\u53d6\u5b50\u56fe"}),"\n",(0,r.jsx)(e.p,{children:"\u7ed9\u51fa\u70b9 id \u96c6\u5408\uff0c\u8fd4\u56de\u5305\u542b\u8be5\u96c6\u5408\u7684\u6700\u5c0f\u5b50\u56fe\u3002"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"URI"}),": ",(0,r.jsx)(e.code,{children:"/db/{graph_name}/misc/sub_graph"})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"METHOD"}),": POST"]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"REQUEST"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsx)(e.tbody,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"vertex_ids"}),(0,r.jsx)(e.td,{children:"\u70b9 id \u96c6\u5408"}),(0,r.jsx)(e.td,{children:"\u5217\u8868"})]})})]}),"\n"]}),"\n",(0,r.jsxs)(e.li,{children:["\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"RESPONSE"}),":"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u57df\u540d"}),(0,r.jsx)(e.th,{children:"\u8bf4\u660e"}),(0,r.jsx)(e.th,{children:"\u7c7b\u578b"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"nodes"}),(0,r.jsx)(e.td,{children:"\u70b9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5143\u7d20\u5305\u542b vid, label, \u4ee5\u53ca\u5c5e\u6027"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"relationships"}),(0,r.jsx)(e.td,{children:"\u8fb9\u6570\u636e"}),(0,r.jsx)(e.td,{children:"\u5217\u8868\uff0c\u6bcf\u5143\u7d20\u5305\u542b src, dst, euid, label, \u4ee5\u53ca\u5c5e\u6027"})]})]})]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example request."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:' \u2022 POST http://localhost:7070/db/graph1/misc/sub_graph\n \u2022 Accept: application/json; charset=UTF-8\n \u2022 Content-Type: application/json; charset=UTF-8\n Input:\n {\n "vertex_ids": [2, 5, 14, 20]\n }\n'})}),"\n",(0,r.jsx)(e.p,{children:(0,r.jsx)(e.strong,{children:"Example response."})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{children:'\u2022 200: OK\n Output:\n {\n "nodes": [\n {\n "label": "Person",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "vid": 2\n },\n {\n "label": "Person",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "vid": 5\n },\n {\n "label": "City",\n "properties": {\n "name": "London"\n },\n "vid": 14\n },\n {\n "label": "Film",\n "properties": {\n "title": "Camelot"\n },\n "vid": 20\n }\n ],\n "relationships": [\n {\n "destination": 5,\n "label": "HAS_CHILD",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1937,\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 20,\n "label": "ACTED_IN",\n "properties": {\n "birthyear": 1937,\n "charactername": "Guenevere",\n "name": "Vanessa Redgrave"\n },\n "source": 2\n },\n {\n "destination": 14,\n "label": "BORN_IN",\n "properties": {\n "birthyear": 1963,\n "name": "Natasha Richardson"\n },\n "source": 5\n }\n ]\n }\n'})})]})}function x(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(j,{...n})}):j(n)}},8453:(n,e,s)=>{s.d(e,{R:()=>i,x:()=>c});var r=s(6540);const l={},d=r.createContext(l);function i(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:i(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/94af2056.17e0f0f3.js b/assets/js/94af2056.17e0f0f3.js
new file mode 100644
index 0000000000..92ec978771
--- /dev/null
+++ b/assets/js/94af2056.17e0f0f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9590],{2528:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var t=r(4848),s=r(8453);const i={},a="C++\u5ba2\u6237\u7aef",l={id:"client-tools/cpp-client",title:"C++\u5ba2\u6237\u7aef",description:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph C++ SDK\u7684\u4f7f\u7528\u8bf4\u660e\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/2.cpp-client.md",sourceDirName:"7.client-tools",slug:"/client-tools/cpp-client",permalink:"/tugraph-db/zh/client-tools/cpp-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh/client-tools/python-client"},next:{title:"Java\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh/client-tools/java-client"}},o={},c=[{value:"1.\u6982\u8ff0",id:"1\u6982\u8ff0",level:2},{value:"2.\u4f7f\u7528\u793a\u4f8b",id:"2\u4f7f\u7528\u793a\u4f8b",level:2},{value:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61",id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",level:3},{value:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",level:4},{value:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.2.\u8c03\u7528cypher",id:"22\u8c03\u7528cypher",level:3},{value:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",level:3},{value:"2.4.\u8c03\u7528GQL",id:"24\u8c03\u7528gql",level:3},{value:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42",id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",level:3},{value:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",level:3},{value:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3},{value:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",level:3},{value:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"c\u5ba2\u6237\u7aef",children:"C++\u5ba2\u6237\u7aef"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph C++ SDK\u7684\u4f7f\u7528\u8bf4\u660e\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1\u6982\u8ff0",children:"1.\u6982\u8ff0"}),"\n",(0,t.jsx)(n.p,{children:"C++ Client \u80fd\u591f\u4f7f\u7528 RPC \u8fde\u63a5lgraph_server\uff0c\u8fdb\u884c\u6570\u636e\u5bfc\u5165\u3001\u6267\u884c\u5b58\u50a8\u8fc7\u7a0b\u3001\u8c03\u7528Cypher\u7b49\u64cd\u4f5c\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2\u4f7f\u7528\u793a\u4f8b",children:"2.\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,t.jsx)(n.h3,{id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",children:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f15\u5165\u4f9d\u8d56\u5e76\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.h4,{id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",children:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u4ee5\u5355\u8282\u70b9\u6a21\u5f0f\u542f\u52a8server\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(n.h4,{id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u53ef\u4ee5\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name \n@param password: login password\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u6237\u53ea\u9700\u8981\u4f20\u5165HA\u96c6\u7fa4\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u7684url\u5373\u53ef\uff0cclient\u4f1a\u6839\u636eserver\u7aef\u8fd4\u56de\u7684\u67e5\u8be2\u4fe1\u606f\u81ea\u52a8\u7ef4\u62a4\u8fde\u63a5\u6c60\uff0c\u5728HA\u96c6\u7fa4\u6a2a\u5411\u6269\u5bb9\u65f6\n\u4e5f\u4e0d\u9700\u8981\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,t.jsx)(n.h4,{id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u4e0d\u80fd\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u800c\u5fc5\u987b\u4f7f\u7528\u95f4\u63a5\u7f51\u5740\uff08\u5982\u963f\u91cc\u4e91\u516c\u7f51\u7f51\u5740\uff09\u8fde\u63a5\u65f6\uff0c\nclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'std::vector urls = {"189.33.97.23:9091", "189.33.97.24:9091", "189.33.97.25:9091"};\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(std::vector& urls, std::string user, std::string password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u56e0\u4e3a\u7528\u6237\u8fde\u63a5\u7684\u7f51\u5740\u548cserver\u542f\u52a8\u65f6\u914d\u7f6e\u7684\u4fe1\u606f\u4e0d\u540c\uff0c\u4e0d\u80fd\u901a\u8fc7\u5411\u96c6\u7fa4\u53d1\u8bf7\u6c42\u7684\u65b9\u5f0f\u81ea\u52a8\u66f4\u65b0client\u8fde\u63a5\u6c60\uff0c\u6240\u4ee5\u9700\u8981\u5728\u542f\u52a8\nclient\u65f6\u624b\u52a8\u4f20\u5165\u6240\u6709\u96c6\u7fa4\u4e2d\u8282\u70b9\u7684\u7f51\u5740\uff0c\u5e76\u5728\u96c6\u7fa4\u8282\u70b9\u53d8\u66f4\u65f6\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"22\u8c03\u7528cypher",children:"2.2.\u8c03\u7528cypher"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypher(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallCypher(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling cypher.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",children:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypherToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallCypherToLeader(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"24\u8c03\u7528gql",children:"2.4.\u8c03\u7528GQL"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGql(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallGql(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling gql.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",children:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGqlToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallGqlToLeader(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedure(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true,\n const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] url (Optional) Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5json\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3afalse\u53ef\u4ee5\u8fd4\u56de\u5b57\u7b26\u4e32\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002\n\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedureToLeader(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallProcedureToLeader(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true);\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5json\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3afalse\u53ef\u4ee5\u8fd4\u56de\u5b57\u7b26\u4e32\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.LoadProcedure(str, code_sleep, "PY", "python_plugin1", "PY", "this is a test plugin", true)\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool LoadProcedure(std::string& result, const std::string& source_file,\n const std::string& procedure_type, const std::string& procedure_name,\n const std::string& code_type, const std::string& procedure_description,\n bool read_only, const std::string& version = "v1",\n const std::string& graph = "default");\n @param [out] result The result.\n @param [in] source_file the source_file contain procedure code.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] code_type code type, currently supported PY, SO, CPP, ZIP.\n @param [in] procedure_description procedure description.\n @param [in] read_only procedure is read only or not.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.ListProcedures(str);\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ListProcedures(std::string& result, const std::string& procedure_type,\n const std::string& version = "any",\n const std::string& graph = "default", const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type (Optional) the procedure type, "" for all procedures,\n CPP and PY for special type.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @param [in] url Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.DeleteProcedure(str, "CPP", "test_plugin1");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool DeleteProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& graph = "default");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",children:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.ImportSchemaFromContent(str, sImportContent["schema"]);\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportSchemaFromContent(std::string& result, const std::string& schema,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema the schema to be imported.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n ret = client.ImportDataFromContent(str, sImportContent["person_desc"], sImportContent["person"],",");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportDataFromContent(std::string& result, const std::string& desc,\n const std::string& data, const std::string& delimiter,\n bool continue_on_error = false, int thread_nums = 8,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] desc data format description.\n @param [in] data the data to be imported.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",children:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportSchemaFromFile(str, conf_file);\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportSchemaFromFile(std::string& result, const std::string& schema_file,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema_file the schema_file contain schema.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportDataFromFile(str, conf_file, ",");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportDataFromFile(std::string& result, const std::string& conf_file,\n const std::string& delimiter, bool continue_on_error = false,\n int thread_nums = 8, int skip_packages = 0,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] conf_file data file contain format description and data.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] skip_packages (Optional) skip packages number.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>l});var t=r(6540);const s={},i=t.createContext(s);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/94af2056.9a17a09d.js b/assets/js/94af2056.9a17a09d.js
deleted file mode 100644
index cc4f25faf1..0000000000
--- a/assets/js/94af2056.9a17a09d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[9590],{2528:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var t=r(4848),s=r(8453);const i={},a="C++\u5ba2\u6237\u7aef",l={id:"zh-CN/source/client-tools/cpp-client",title:"C++\u5ba2\u6237\u7aef",description:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph C++ SDK\u7684\u4f7f\u7528\u8bf4\u660e\u3002",source:"@site/../docs/zh-CN/source/7.client-tools/2.cpp-client.md",sourceDirName:"zh-CN/source/7.client-tools",slug:"/zh-CN/source/client-tools/cpp-client",permalink:"/tugraph-db/zh-CN/source/client-tools/cpp-client",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Python\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh-CN/source/client-tools/python-client"},next:{title:"Java\u5ba2\u6237\u7aef",permalink:"/tugraph-db/zh-CN/source/client-tools/java-client"}},o={},c=[{value:"1.\u6982\u8ff0",id:"1\u6982\u8ff0",level:2},{value:"2.\u4f7f\u7528\u793a\u4f8b",id:"2\u4f7f\u7528\u793a\u4f8b",level:2},{value:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61",id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",level:3},{value:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",level:4},{value:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",level:4},{value:"2.2.\u8c03\u7528cypher",id:"22\u8c03\u7528cypher",level:3},{value:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",level:3},{value:"2.4.\u8c03\u7528GQL",id:"24\u8c03\u7528gql",level:3},{value:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42",id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",level:3},{value:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",level:3},{value:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3},{value:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",level:3},{value:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",level:3}];function d(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"c\u5ba2\u6237\u7aef",children:"C++\u5ba2\u6237\u7aef"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u662fTuGraph C++ SDK\u7684\u4f7f\u7528\u8bf4\u660e\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1\u6982\u8ff0",children:"1.\u6982\u8ff0"}),"\n",(0,t.jsx)(n.p,{children:"C++ Client \u80fd\u591f\u4f7f\u7528 RPC \u8fde\u63a5lgraph_server\uff0c\u8fdb\u884c\u6570\u636e\u5bfc\u5165\u3001\u6267\u884c\u5b58\u50a8\u8fc7\u7a0b\u3001\u8c03\u7528Cypher\u7b49\u64cd\u4f5c\u3002"}),"\n",(0,t.jsx)(n.h2,{id:"2\u4f7f\u7528\u793a\u4f8b",children:"2.\u4f7f\u7528\u793a\u4f8b"}),"\n",(0,t.jsx)(n.h3,{id:"21\u5b9e\u4f8b\u5316client\u5bf9\u8c61",children:"2.1.\u5b9e\u4f8b\u5316client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f15\u5165\u4f9d\u8d56\u5e76\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.h4,{id:"211\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61",children:"2.1.1.\u5b9e\u4f8b\u5316\u5355\u8282\u70b9client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u4ee5\u5355\u8282\u70b9\u6a21\u5f0f\u542f\u52a8server\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(n.h4,{id:"212\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.2.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u76f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u53ef\u4ee5\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u65f6\uff0cclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:'RpcClient client("127.0.0.1:19099", "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(const std::string& url, const std::string& user, const std::string& password);\n@param url: tugraph host looks like ip:port\n@param user: login user name \n@param password: login password\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u7528\u6237\u53ea\u9700\u8981\u4f20\u5165HA\u96c6\u7fa4\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u7684url\u5373\u53ef\uff0cclient\u4f1a\u6839\u636eserver\u7aef\u8fd4\u56de\u7684\u67e5\u8be2\u4fe1\u606f\u81ea\u52a8\u7ef4\u62a4\u8fde\u63a5\u6c60\uff0c\u5728HA\u96c6\u7fa4\u6a2a\u5411\u6269\u5bb9\u65f6\n\u4e5f\u4e0d\u9700\u8981\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,t.jsx)(n.h4,{id:"213\u5b9e\u4f8b\u5316ha\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61",children:"2.1.3.\u5b9e\u4f8b\u5316HA\u96c6\u7fa4\u95f4\u63a5\u8fde\u63a5client\u5bf9\u8c61"}),"\n",(0,t.jsx)(n.p,{children:"\u5f53\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u7684HA\u96c6\u7fa4\u4e0d\u80fd\u4f7f\u7528ha_conf\u4e2d\u914d\u7f6e\u7684\u7f51\u5740\u76f4\u63a5\u8fde\u63a5\u800c\u5fc5\u987b\u4f7f\u7528\u95f4\u63a5\u7f51\u5740\uff08\u5982\u963f\u91cc\u4e91\u516c\u7f51\u7f51\u5740\uff09\u8fde\u63a5\u65f6\uff0c\nclient\u6309\u7167\u5982\u4e0b\u683c\u5f0f\u8fdb\u884c\u5b9e\u4f8b\u5316\u3002"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",children:'std::vector urls = {"189.33.97.23:9091", "189.33.97.24:9091", "189.33.97.25:9091"};\nTuGraphDbRpcClient client = new TuGraphDbRpcClient(urls, "admin", "73@TuGraph");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"RpcClient(std::vector& urls, std::string user, std::string password)\n@param urls: tugraph host list\n@param user: login user name\n@param password: login password\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u56e0\u4e3a\u7528\u6237\u8fde\u63a5\u7684\u7f51\u5740\u548cserver\u542f\u52a8\u65f6\u914d\u7f6e\u7684\u4fe1\u606f\u4e0d\u540c\uff0c\u4e0d\u80fd\u901a\u8fc7\u5411\u96c6\u7fa4\u53d1\u8bf7\u6c42\u7684\u65b9\u5f0f\u81ea\u52a8\u66f4\u65b0client\u8fde\u63a5\u6c60\uff0c\u6240\u4ee5\u9700\u8981\u5728\u542f\u52a8\nclient\u65f6\u624b\u52a8\u4f20\u5165\u6240\u6709\u96c6\u7fa4\u4e2d\u8282\u70b9\u7684\u7f51\u5740\uff0c\u5e76\u5728\u96c6\u7fa4\u8282\u70b9\u53d8\u66f4\u65f6\u624b\u52a8\u91cd\u542fclient\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"22\u8c03\u7528cypher",children:"2.2.\u8c03\u7528cypher"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypher(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallCypher(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling cypher.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"23\u5411leader\u53d1\u9001cypher\u8bf7\u6c42",children:"2.3.\u5411leader\u53d1\u9001cypher\u8bf7\u6c42"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallCypherToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallCypherToLeader(std::string& result, const std::string& cypher,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] cypher inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"24\u8c03\u7528gql",children:"2.4.\u8c03\u7528GQL"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGql(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallGql(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0, const std::string& url = "");\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @param [in] url (Optional) Node address of calling gql.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"25\u5411leader\u53d1\u9001gql\u8bf7\u6c42",children:"2.5.\u5411leader\u53d1\u9001GQL\u8bf7\u6c42"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.CallGqlToLeader(str,\n \"CALL db.createVertexLabel('actor', 'name', 'name', string, false, 'age', int8, true)\");\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallGqlToLeader(std::string& result, const std::string& gql,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] gql inquire statement.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u53ea\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u4e3a\u9632\u6b62\u5411\u672a\u540c\u6b65\u6570\u636e\u7684follower\u53d1\u9001\u8bf7\u6c42\uff0c\n\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5411leader\u53d1\u9001\u8bf7\u6c42\uff0cleader\u7531\u96c6\u7fa4\u9009\u51fa\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"26\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.6.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedure(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true,\n const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] url (Optional) Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5json\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3afalse\u53ef\u4ee5\u8fd4\u56de\u5b57\u7b26\u4e32\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002\n\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bfb\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"27\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"2.7.\u5411leader\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.CallProcedureToLeader(str, "CPP", "test_plugin1", "bcefg");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool CallProcedureToLeader(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& param,\n double procedure_time_out = 0.0, bool in_process = false,\n const std::string& graph = "default", bool json_format = true);\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] param the execution parameters.\n @param [in] procedure_time_out (Optional) Maximum execution time, overruns will be\n interrupted.\n @param [in] in_process (Optional) support in future.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728HA\u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u9ed8\u8ba4\u4ee5json\u683c\u5f0f\u76f4\u63a5\u8fd4\u56de\u5b58\u50a8\u8fc7\u7a0b\u7684\u6267\u884c\u7ed3\u679c\uff0c\u6307\u5b9ajsonFormat\u4e3afalse\u53ef\u4ee5\u8fd4\u56de\u5b57\u7b26\u4e32\u683c\u5f0f\u7684\u6267\u884c\u7ed3\u679c\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"28\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"2.8.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.LoadProcedure(str, code_sleep, "PY", "python_plugin1", "PY", "this is a test plugin", true)\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool LoadProcedure(std::string& result, const std::string& source_file,\n const std::string& procedure_type, const std::string& procedure_name,\n const std::string& code_type, const std::string& procedure_description,\n bool read_only, const std::string& version = "v1",\n const std::string& graph = "default");\n @param [out] result The result.\n @param [in] source_file the source_file contain procedure code.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] code_type code type, currently supported PY, SO, CPP, ZIP.\n @param [in] procedure_description procedure description.\n @param [in] read_only procedure is read only or not.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"29\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b",children:"2.9.\u5217\u4e3e\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:" std::string str;\n bool ret = client.ListProcedures(str);\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ListProcedures(std::string& result, const std::string& procedure_type,\n const std::string& version = "any",\n const std::string& graph = "default", const std::string& url = "");\n @param [out] result The result.\n @param [in] procedure_type (Optional) the procedure type, "" for all procedures,\n CPP and PY for special type.\n @param [in] version (Optional) the version of procedure.\n @param [in] graph (Optional) the graph to query.\n @param [in] url Node address of calling procedure.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u5728HA\u6a21\u5f0f\u4e0b\u7684client\u4e2d\uff0c\u901a\u8fc7\u6307\u5b9aurl\u53c2\u6570\u53ef\u4ee5\u5b9a\u5411\u5411\u67d0\u4e2aserver\u53d1\u9001\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"210\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"2.10.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.DeleteProcedure(str, "CPP", "test_plugin1");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool DeleteProcedure(std::string& result, const std::string& procedure_type,\n const std::string& procedure_name, const std::string& graph = "default");\n @param [out] result The result.\n @param [in] procedure_type the procedure type, currently supported CPP and PY.\n @param [in] procedure_name procedure name.\n @param [in] graph (Optional) the graph to query.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"211\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema",children:"2.11.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165schema"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n bool ret = client.ImportSchemaFromContent(str, sImportContent["schema"]);\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportSchemaFromContent(std::string& result, const std::string& schema,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema the schema to be imported.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"212\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.12.\u4ece\u5b57\u8282\u6d41\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string str;\n ret = client.ImportDataFromContent(str, sImportContent["person_desc"], sImportContent["person"],",");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportDataFromContent(std::string& result, const std::string& desc,\n const std::string& data, const std::string& delimiter,\n bool continue_on_error = false, int thread_nums = 8,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] desc data format description.\n @param [in] data the data to be imported.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"213\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema",children:"2.13.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165schema"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportSchemaFromFile(str, conf_file);\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportSchemaFromFile(std::string& result, const std::string& schema_file,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] schema_file the schema_file contain schema.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise, binary\n format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165schema\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165schema\u8bf7\u6c42\u3002"}),"\n",(0,t.jsx)(n.h3,{id:"214\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e",children:"2.14.\u4ece\u6587\u4ef6\u4e2d\u5bfc\u5165\u70b9\u8fb9\u6570\u636e"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-C++",children:' std::string conf_file("./yago.conf");\n std::string str;\n ret = client.ImportDataFromFile(str, conf_file, ",");\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:' bool ImportDataFromFile(std::string& result, const std::string& conf_file,\n const std::string& delimiter, bool continue_on_error = false,\n int thread_nums = 8, int skip_packages = 0,\n const std::string& graph = "default", bool json_format = true,\n double timeout = 0);\n @param [out] result The result.\n @param [in] conf_file data file contain format description and data.\n @param [in] delimiter data separator.\n @param [in] continue_on_error (Optional) whether to continue when importing data fails.\n @param [in] thread_nums (Optional) maximum number of threads.\n @param [in] skip_packages (Optional) skip packages number.\n @param [in] graph (Optional) the graph to query.\n @param [in] json_format (Optional) Returns the format\uff0c true is json\uff0cOtherwise,\n binary format.\n @param [in] timeout (Optional) Maximum execution time, overruns will be\n interrupted.\n @returns True if it succeeds, false if it fails.\n'})}),"\n",(0,t.jsx)(n.p,{children:"\u672c\u63a5\u53e3\u652f\u6301\u5728\u5355\u673a\u6a21\u5f0f\u548cHA\u6a21\u5f0f\u4e0b\u4f7f\u7528\u3002\u5176\u4e2d\uff0c\u7531\u4e8e\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u662f\u5199\u8bf7\u6c42\uff0cHA\u6a21\u5f0f\u4e0b\u7684client\u53ea\u80fd\u5411leader\u53d1\u9001\u5bfc\u5165\u70b9\u8fb9\u6570\u636e\u8bf7\u6c42\u3002"})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>l});var t=r(6540);const s={},i=t.createContext(s);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/96b3123e.2360fb5a.js b/assets/js/96b3123e.2360fb5a.js
deleted file mode 100644
index 5ac111c060..0000000000
--- a/assets/js/96b3123e.2360fb5a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6310],{7990:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>d,default:()=>o,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var l=r(4848),t=r(8453);const a={},d="Learn Tutorial",i={id:"zh-CN/source/olap&procedure/learn/tutorial",title:"Learn Tutorial",description:"\u672c\u6587\u6863\u662f\u4e3a TuGraph \u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9 TuGraph \u7684\u56fe\u5b66\u4e60\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8e Tugraph \u7684\u4e00\u4e2a\u7b80\u5355\u7684\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002",source:"@site/../docs/zh-CN/source/9.olap&procedure/3.learn/1.tutorial.md",sourceDirName:"zh-CN/source/9.olap&procedure/3.learn",slug:"/zh-CN/source/olap&procedure/learn/tutorial",permalink:"/tugraph-db/zh-CN/source/olap&procedure/learn/tutorial",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5185\u7f6e\u7b97\u6cd5",permalink:"/tugraph-db/zh-CN/source/olap&procedure/olap/algorithms"},next:{title:"Sampling API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/learn/sampling_api"}},s={},h=[{value:"1.TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",id:"1tugraph-\u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",level:2},{value:"2. \u8fd0\u884c\u6d41\u7a0b",id:"2-\u8fd0\u884c\u6d41\u7a0b",level:2},{value:"3.TuGraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",id:"3tugraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",level:2},{value:"4. \u6570\u636e\u5bfc\u5165",id:"4-\u6570\u636e\u5bfc\u5165",level:2},{value:"5. feature\u7279\u5f81\u8f6c\u6362",id:"5-feature\u7279\u5f81\u8f6c\u6362",level:2},{value:"6. \u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",id:"6-\u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",level:2},{value:"6.1.\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",id:"61\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",level:3},{value:"6.2.\u7f16\u8bd1",id:"62\u7f16\u8bd1",level:3},{value:"7. \u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",id:"7-\u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",level:2},{value:"8. \u6a21\u578b\u52a0\u8f7d",id:"8-\u6a21\u578b\u52a0\u8f7d",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"learn-tutorial",children:"Learn Tutorial"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u672c\u6587\u6863\u662f\u4e3a TuGraph \u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9 TuGraph \u7684\u56fe\u5b66\u4e60\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8e Tugraph \u7684\u4e00\u4e2a\u7b80\u5355\u7684\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"1tugraph-\u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",children:"1.TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb"}),"\n",(0,l.jsx)(n.p,{children:"\u56fe\u5b66\u4e60\u662f\u4e00\u79cd\u673a\u5668\u5b66\u4e60\u65b9\u6cd5\uff0c\u5176\u6838\u5fc3\u601d\u60f3\u662f\u5229\u7528\u56fe\u7ed3\u6784\u4e2d\u7684\u62d3\u6251\u4fe1\u606f\uff0c\u901a\u8fc7\u9876\u70b9\u4e4b\u95f4\u7684\u8054\u7cfb\u53ca\u89c4\u5f8b\u6765\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u5efa\u6a21\u3002\u4e0d\u540c\u4e8e\u4f20\u7edf\u673a\u5668\u5b66\u4e60\u65b9\u6cd5\uff0c\u56fe\u5b66\u4e60\u5229\u7528\u7684\u6570\u636e\u5f62\u5f0f\u4e3a\u56fe\u7ed3\u6784\uff0c\u5176\u4e2d\u9876\u70b9\u8868\u793a\u6570\u636e\u4e2d\u7684\u5b9e\u4f53\uff0c\u800c\u8fb9\u5219\u8868\u793a\u5b9e\u4f53\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u901a\u8fc7\u5bf9\u8fd9\u4e9b\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u7279\u5f81\u63d0\u53d6\u548c\u6a21\u5f0f\u6316\u6398\uff0c\u53ef\u4ee5\u63ed\u793a\u51fa\u6570\u636e\u4e2d\u6df1\u5c42\u6b21\u7684\u5173\u8054\u548c\u89c4\u5f8b\uff0c\u4ece\u800c\u7528\u4e8e\u5404\u79cd\u5b9e\u9645\u5e94\u7528\u4e2d\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u8fd9\u4e2a\u6a21\u5757\u662f\u4e00\u4e2a\u57fa\u4e8e\u56fe\u6570\u636e\u5e93\u7684\u56fe\u5b66\u4e60\u6a21\u5757\uff0c\u4e3b\u8981\u63d0\u4f9b\u4e86\u56db\u79cd\u91c7\u6837\u7b97\u5b50\uff1aNeighbor Sampling\u3001Edge Sampling\u3001Random Walk Sampling \u548c Negative Sampling\u3002\u8fd9\u4e9b\u7b97\u5b50\u53ef\u4ee5\u7528\u4e8e\u5bf9\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u91c7\u6837\uff0c\u4ece\u800c\u751f\u6210\u8bad\u7ec3\u6570\u636e\u3002\u91c7\u6837\u8fc7\u7a0b\u662f\u5728\u5e76\u884c\u8ba1\u7b97\u73af\u5883\u4e0b\u5b8c\u6210\u7684\uff0c\u5177\u6709\u9ad8\u6548\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u91c7\u6837\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5f97\u5230\u7684\u8bad\u7ec3\u6570\u636e\u6765\u8bad\u7ec3\u4e00\u4e2a\u6a21\u578b\u3002\u8be5\u6a21\u578b\u53ef\u4ee5\u7528\u4e8e\u5404\u79cd\u56fe\u5b66\u4e60\u4efb\u52a1\uff0c\u6bd4\u5982\u9884\u6d4b\u3001\u5206\u7c7b\u7b49\u3002\u901a\u8fc7\u8bad\u7ec3\uff0c\u6a21\u578b\u53ef\u4ee5\u5b66\u4e60\u5230\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u4ece\u800c\u80fd\u591f\u5bf9\u65b0\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u9884\u6d4b\u548c\u5206\u7c7b\u3002\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u8fd9\u4e2a\u6a21\u5757\u53ef\u4ee5\u88ab\u7528\u6765\u5904\u7406\u5404\u79cd\u5927\u89c4\u6a21\u7684\u56fe\u6570\u636e\uff0c\u6bd4\u5982\u793e\u4ea4\u7f51\u7edc\u3001\u63a8\u8350\u7cfb\u7edf\u3001\u751f\u7269\u4fe1\u606f\u5b66\u7b49\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"2-\u8fd0\u884c\u6d41\u7a0b",children:"2. \u8fd0\u884c\u6d41\u7a0b"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u5c06TuGraph\u4e2d\u7684\u56fe\u6570\u636e\u91c7\u6837\uff0c\u91c7\u6837\u540e\u7684\u9876\u70b9\u548c\u8fb9\u4f5c\u4e3a\u56fe\u5b66\u4e60\u7684\u7279\u5f81\uff0c\u8fdb\u884c\u5b66\u4e60\u8bad\u7ec3\u3002\u8fd0\u884c\u6d41\u7a0b\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.jsx)(n.img,{alt:"Alt text",src:r(1695).A+"",width:"808",height:"1046"})]}),"\n",(0,l.jsx)(n.h2,{id:"3tugraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",children:"3.TuGraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph\u7f16\u8bd1\u8bf7\u53c2\u8003\uff1a",(0,l.jsx)(n.a,{href:"/tugraph-db/zh-CN/source/installation&running/compile",children:"\u7f16\u8bd1"}),"\n\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c\uff1a"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"cp -r ../../test/integration/data/ ./ && cp -r ../../learn/examples/* ./\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u8be5\u6307\u4ee4\u5c06\u6570\u636e\u96c6\u76f8\u5173\u6587\u4ef6\u62f7\u8d1d\u5230build/output\u76ee\u5f55\u4e0b\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"4-\u6570\u636e\u5bfc\u5165",children:"4. \u6570\u636e\u5bfc\u5165"}),"\n",(0,l.jsxs)(n.p,{children:["\u6570\u636e\u5bfc\u5165\u8bf7\u53c2\u8003",(0,l.jsx)(n.a,{href:"/tugraph-db/zh-CN/source/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"})]}),"\n",(0,l.jsx)(n.p,{children:"\u5bfc\u5165\u8fc7\u7a0b\u4ee5cora\u6570\u636e\u96c6\u4e3a\u4f8b\uff1a"}),"\n",(0,l.jsx)(n.p,{children:"\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"./lgraph_import -c ./data/algo/cora.conf --dir ./coradb --overwrite 1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5176\u4e2dcora.conf\u4e3a\u56feschema\u6587\u4ef6\uff0c\u4ee3\u8868\u56fe\u6570\u636e\u7684\u683c\u5f0f\u3002coradb\u4e3a\u5bfc\u5165\u540e\u7684\u56fe\u6570\u636e\u6587\u4ef6\u540d\u79f0\uff0c\u4ee3\u8868\u56fe\u6570\u636e\u7684\u5b58\u50a8\u4f4d\u7f6e\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"5-feature\u7279\u5f81\u8f6c\u6362",children:"5. feature\u7279\u5f81\u8f6c\u6362"}),"\n",(0,l.jsx)(n.p,{children:"\u7531\u4e8e\u56fe\u5b66\u4e60\u4e2d\u7684feature\u7279\u5f81\u4e00\u822c\u8868\u793a\u4e3a\u8f83\u957f\u7684float\u7c7b\u578b\u6570\u7ec4\uff0cTuGraph\u6682\u4e0d\u652f\u6301float\u6570\u7ec4\u7c7b\u578b\u52a0\u8f7d\uff0c\u56e0\u6b64\u53ef\u5c06\u5176\u6309\u7167string\u7c7b\u578b\u5bfc\u5165\u540e\uff0c\u8f6c\u6362\u6210char*\u65b9\u4fbf\u540e\u7eed\u5b58\u53d6\uff0c\u5177\u4f53\u5b9e\u73b0\u53ef\u53c2\u8003feature_float.cpp\u6587\u4ef6\u3002\n\u5177\u4f53\u6267\u884c\u8fc7\u7a0b\u5982\u4e0b\uff1a"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728build\u76ee\u5f55\u4e0b\u7f16\u8bd1\u5bfc\u5165plugin(\u5982\u679cTuGraph\u5df2\u7f16\u8bd1\u53ef\u8df3\u8fc7)\uff1a\n",(0,l.jsx)(n.code,{children:"make feature_float_embed"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"./algo/feature_float_embed ./coradb"}),"\n\u5373\u53ef\u8fdb\u884c\u8f6c\u6362\u3002"]}),"\n",(0,l.jsx)(n.h2,{id:"6-\u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",children:"6. \u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1"}),"\n",(0,l.jsx)(n.p,{children:"TuGraph\u5728cython\u5c42\u5b9e\u73b0\u4e86\u4e00\u79cd\u83b7\u53d6\u5168\u56fe\u6570\u636e\u7684\u7b97\u5b50\u53ca4\u79cd\u91c7\u6837\u7b97\u5b50\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"}),"\n",(0,l.jsx)(n.h3,{id:"61\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",children:"6.1.\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u91c7\u6837\u7b97\u5b50"}),(0,l.jsx)(n.th,{children:"\u91c7\u6837\u65b9\u5f0f"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"GetDB"}),(0,l.jsx)(n.td,{children:"\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6\u56fe\u6570\u636e\u5e76\u8f6c\u6362\u6210\u6240\u9700\u6570\u636e\u7ed3\u6784"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Neighbor Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u7ed9\u5b9a\u7684\u9876\u70b9\u91c7\u6837\u5176\u90bb\u5c45\u9876\u70b9\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Edge Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u91c7\u6837\u7387\u91c7\u6837\u56fe\u4e2d\u7684\u8fb9\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Random Walk Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u7ed9\u5b9a\u7684\u9876\u70b9\uff0c\u8fdb\u884c\u968f\u673a\u6e38\u8d70\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Negative Sampling"}),(0,l.jsx)(n.td,{children:"\u751f\u6210\u4e0d\u5b58\u5728\u8fb9\u7684\u5b50\u56fe\u3002"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"62\u7f16\u8bd1",children:"6.2.\u7f16\u8bd1"}),"\n",(0,l.jsxs)(n.p,{children:["\u5982\u679cTuGraph\u5df2\u7f16\u8bd1\uff0c\u53ef\u8df3\u8fc7\u6b64\u6b65\u9aa4\u3002\n\u5728tugraph-db/build\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"make -j2"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u6216\u5728tugraph-db/learn/procedures\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"python3 setup.py build_ext -i"})]}),"\n",(0,l.jsx)(n.p,{children:"\u5f97\u5230\u7b97\u5b50so\u540e\uff0c\u5728Python\u4e2dimport \u5373\u53ef\u4f7f\u7528\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"7-\u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",children:"7. \u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph\u5728python\u5c42\u8c03\u7528cython\u5c42\u7684\u7b97\u5b50\uff0c\u5b9e\u73b0\u56fe\u5b66\u4e60\u6a21\u578b\u7684\u8bad\u7ec3\u3002\n\u4f7f\u7528 TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u4f7f\u7528\u65b9\u5f0f\u4ecb\u7ecd\u5982\u4e0b:\n\u5728build/output\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"python3 train_full_cora.py --model_save_path ./cora_model"}),"\n\u5373\u53ef\u8fdb\u884c\u8bad\u7ec3\u3002\n\u6700\u7ec8\u6253\u5370loss\u6570\u503c\u5c0f\u4e8e0.9\uff0c\u5373\u4e3a\u8bad\u7ec3\u6210\u529f\u3002\u81f3\u6b64\uff0c\u56fe\u6a21\u578b\u8bad\u7ec3\u5b8c\u6210\uff0c\u6a21\u578b\u4fdd\u5b58\u5728cora_model\u6587\u4ef6\u3002"]}),"\n",(0,l.jsx)(n.h2,{id:"8-\u6a21\u578b\u52a0\u8f7d",children:"8. \u6a21\u578b\u52a0\u8f7d"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-python",children:"model = build_model()\nmodel.load_state_dict(torch.load(model_save_path))\nmodel.eval()\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u4f7f\u7528\u4fdd\u5b58\u7684\u6a21\u578b\u4e4b\u524d\uff0c\u9996\u5148\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u52a0\u8f7d\u3002\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528\u5982\u4e0a\u7684\u4ee3\u7801\u5bf9\u5df2\u8bad\u7ec3\u6a21\u578b\u8fdb\u884c\u52a0\u8f7d\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u52a0\u8f7d\u4e4b\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u6a21\u578b\u5bf9\u65b0\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u9884\u6d4b\u548c\u5206\u7c7b\u3002\u5728\u9884\u6d4b\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u8f93\u5165\u4e00\u4e2a\u6216\u591a\u4e2a\u9876\u70b9\uff0c\u6a21\u578b\u5c06\u8f93\u51fa\u76f8\u5e94\u7684\u9884\u6d4b\u7ed3\u679c\u3002\u5728\u5206\u7c7b\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u6574\u4e2a\u56fe\u4f5c\u4e3a\u8f93\u5165\uff0c\u6a21\u578b\u5c06\u5bf9\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u5206\u7c7b\uff0c\u4ee5\u5b9e\u73b0\u4efb\u52a1\u7684\u76ee\u6807\u3002\n\u4f7f\u7528\u5df2\u8bad\u7ec3\u7684\u6a21\u578b\u53ef\u4ee5\u907f\u514d\u91cd\u65b0\u8bad\u7ec3\u6a21\u578b\u7684\u65f6\u95f4\u548c\u8d44\u6e90\u6d88\u8017\u3002\u6b64\u5916\uff0c\u7531\u4e8e\u6a21\u578b\u5df2\u7ecf\u5b66\u4e60\u5230\u4e86\u56fe\u6570\u636e\u4e2d\u9876\u70b9\u548c\u8fb9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5b83\u53ef\u4ee5\u5f88\u597d\u5730\u9002\u5e94\u65b0\u7684\u6570\u636e\uff0c\u4ece\u800c\u63d0\u9ad8\u9884\u6d4b\u548c\u5206\u7c7b\u7684\u51c6\u786e\u5ea6\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1695:(e,n,r)=>{r.d(n,{A:()=>l});const l=r.p+"assets/images/learn_flow_chart_zh-2b6033f80e4ac9e5ed7491e345d34f51.png"},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>i});var l=r(6540);const t={},a=l.createContext(t);function d(e){const n=l.useContext(a);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),l.createElement(a.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/96b3123e.50c59ff7.js b/assets/js/96b3123e.50c59ff7.js
new file mode 100644
index 0000000000..472d6e25a3
--- /dev/null
+++ b/assets/js/96b3123e.50c59ff7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6310],{7990:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>o,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var l=r(4848),t=r(8453);const a={},d="Learn Tutorial",i={id:"olap&procedure/learn/tutorial",title:"Learn Tutorial",description:"\u672c\u6587\u6863\u662f\u4e3a TuGraph \u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9 TuGraph \u7684\u56fe\u5b66\u4e60\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8e Tugraph \u7684\u4e00\u4e2a\u7b80\u5355\u7684\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002",source:"@site/../docs/zh-CN/source/9.olap&procedure/3.learn/1.tutorial.md",sourceDirName:"9.olap&procedure/3.learn",slug:"/olap&procedure/learn/tutorial",permalink:"/tugraph-db/zh/olap&procedure/learn/tutorial",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5185\u7f6e\u7b97\u6cd5",permalink:"/tugraph-db/zh/olap&procedure/olap/algorithms"},next:{title:"Sampling API",permalink:"/tugraph-db/zh/olap&procedure/learn/sampling_api"}},h={},s=[{value:"1.TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",id:"1tugraph-\u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",level:2},{value:"2. \u8fd0\u884c\u6d41\u7a0b",id:"2-\u8fd0\u884c\u6d41\u7a0b",level:2},{value:"3.TuGraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",id:"3tugraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",level:2},{value:"4. \u6570\u636e\u5bfc\u5165",id:"4-\u6570\u636e\u5bfc\u5165",level:2},{value:"5. feature\u7279\u5f81\u8f6c\u6362",id:"5-feature\u7279\u5f81\u8f6c\u6362",level:2},{value:"6. \u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",id:"6-\u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",level:2},{value:"6.1.\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",id:"61\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",level:3},{value:"6.2.\u7f16\u8bd1",id:"62\u7f16\u8bd1",level:3},{value:"7. \u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",id:"7-\u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",level:2},{value:"8. \u6a21\u578b\u52a0\u8f7d",id:"8-\u6a21\u578b\u52a0\u8f7d",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"learn-tutorial",children:"Learn Tutorial"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u672c\u6587\u6863\u662f\u4e3a TuGraph \u7684\u7528\u6237\u8bbe\u8ba1\u7684\u5f15\u5bfc\u7a0b\u5e8f\uff0c\u7528\u6237\u5728\u9605\u8bfb\u8be6\u7ec6\u7684\u6587\u6863\u4e4b\u524d\uff0c\u5e94\u8be5\u9996\u5148\u9605\u8bfb\u8be5\u6587\u6863\uff0c\u5bf9 TuGraph \u7684\u56fe\u5b66\u4e60\u8fd0\u884c\u6d41\u7a0b\u6709\u4e00\u4e2a\u5927\u81f4\u7684\u4e86\u89e3\uff0c\u4e4b\u540e\u518d\u9605\u8bfb\u8be6\u7ec6\u6587\u6863\u4f1a\u66f4\u52a0\u65b9\u4fbf\u3002\u5f15\u5bfc\u7a0b\u5e8f\u662f\u57fa\u4e8e Tugraph \u7684\u4e00\u4e2a\u7b80\u5355\u7684\u7a0b\u5e8f\u5b9e\u4f8b\uff0c\u6211\u4eec\u5c06\u91cd\u70b9\u4ecb\u7ecd\u5176\u4f7f\u7528\u65b9\u5f0f\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"1tugraph-\u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb",children:"1.TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u7b80\u4ecb"}),"\n",(0,l.jsx)(n.p,{children:"\u56fe\u5b66\u4e60\u662f\u4e00\u79cd\u673a\u5668\u5b66\u4e60\u65b9\u6cd5\uff0c\u5176\u6838\u5fc3\u601d\u60f3\u662f\u5229\u7528\u56fe\u7ed3\u6784\u4e2d\u7684\u62d3\u6251\u4fe1\u606f\uff0c\u901a\u8fc7\u9876\u70b9\u4e4b\u95f4\u7684\u8054\u7cfb\u53ca\u89c4\u5f8b\u6765\u8fdb\u884c\u6570\u636e\u5206\u6790\u548c\u5efa\u6a21\u3002\u4e0d\u540c\u4e8e\u4f20\u7edf\u673a\u5668\u5b66\u4e60\u65b9\u6cd5\uff0c\u56fe\u5b66\u4e60\u5229\u7528\u7684\u6570\u636e\u5f62\u5f0f\u4e3a\u56fe\u7ed3\u6784\uff0c\u5176\u4e2d\u9876\u70b9\u8868\u793a\u6570\u636e\u4e2d\u7684\u5b9e\u4f53\uff0c\u800c\u8fb9\u5219\u8868\u793a\u5b9e\u4f53\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u901a\u8fc7\u5bf9\u8fd9\u4e9b\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u7279\u5f81\u63d0\u53d6\u548c\u6a21\u5f0f\u6316\u6398\uff0c\u53ef\u4ee5\u63ed\u793a\u51fa\u6570\u636e\u4e2d\u6df1\u5c42\u6b21\u7684\u5173\u8054\u548c\u89c4\u5f8b\uff0c\u4ece\u800c\u7528\u4e8e\u5404\u79cd\u5b9e\u9645\u5e94\u7528\u4e2d\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u8fd9\u4e2a\u6a21\u5757\u662f\u4e00\u4e2a\u57fa\u4e8e\u56fe\u6570\u636e\u5e93\u7684\u56fe\u5b66\u4e60\u6a21\u5757\uff0c\u4e3b\u8981\u63d0\u4f9b\u4e86\u56db\u79cd\u91c7\u6837\u7b97\u5b50\uff1aNeighbor Sampling\u3001Edge Sampling\u3001Random Walk Sampling \u548c Negative Sampling\u3002\u8fd9\u4e9b\u7b97\u5b50\u53ef\u4ee5\u7528\u4e8e\u5bf9\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u91c7\u6837\uff0c\u4ece\u800c\u751f\u6210\u8bad\u7ec3\u6570\u636e\u3002\u91c7\u6837\u8fc7\u7a0b\u662f\u5728\u5e76\u884c\u8ba1\u7b97\u73af\u5883\u4e0b\u5b8c\u6210\u7684\uff0c\u5177\u6709\u9ad8\u6548\u6027\u548c\u53ef\u6269\u5c55\u6027\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u91c7\u6837\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5f97\u5230\u7684\u8bad\u7ec3\u6570\u636e\u6765\u8bad\u7ec3\u4e00\u4e2a\u6a21\u578b\u3002\u8be5\u6a21\u578b\u53ef\u4ee5\u7528\u4e8e\u5404\u79cd\u56fe\u5b66\u4e60\u4efb\u52a1\uff0c\u6bd4\u5982\u9884\u6d4b\u3001\u5206\u7c7b\u7b49\u3002\u901a\u8fc7\u8bad\u7ec3\uff0c\u6a21\u578b\u53ef\u4ee5\u5b66\u4e60\u5230\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u4ece\u800c\u80fd\u591f\u5bf9\u65b0\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u9884\u6d4b\u548c\u5206\u7c7b\u3002\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u8fd9\u4e2a\u6a21\u5757\u53ef\u4ee5\u88ab\u7528\u6765\u5904\u7406\u5404\u79cd\u5927\u89c4\u6a21\u7684\u56fe\u6570\u636e\uff0c\u6bd4\u5982\u793e\u4ea4\u7f51\u7edc\u3001\u63a8\u8350\u7cfb\u7edf\u3001\u751f\u7269\u4fe1\u606f\u5b66\u7b49\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"2-\u8fd0\u884c\u6d41\u7a0b",children:"2. \u8fd0\u884c\u6d41\u7a0b"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u5c06TuGraph\u4e2d\u7684\u56fe\u6570\u636e\u91c7\u6837\uff0c\u91c7\u6837\u540e\u7684\u9876\u70b9\u548c\u8fb9\u4f5c\u4e3a\u56fe\u5b66\u4e60\u7684\u7279\u5f81\uff0c\u8fdb\u884c\u5b66\u4e60\u8bad\u7ec3\u3002\u8fd0\u884c\u6d41\u7a0b\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.jsx)(n.img,{alt:"Alt text",src:r(1695).A+"",width:"808",height:"1046"})]}),"\n",(0,l.jsx)(n.h2,{id:"3tugraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907",children:"3.TuGraph\u7f16\u8bd1\u53ca\u6570\u636e\u51c6\u5907"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph\u7f16\u8bd1\u8bf7\u53c2\u8003\uff1a",(0,l.jsx)(n.a,{href:"/tugraph-db/zh/installation&running/compile",children:"\u7f16\u8bd1"}),"\n\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c\uff1a"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"cp -r ../../test/integration/data/ ./ && cp -r ../../learn/examples/* ./\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u8be5\u6307\u4ee4\u5c06\u6570\u636e\u96c6\u76f8\u5173\u6587\u4ef6\u62f7\u8d1d\u5230build/output\u76ee\u5f55\u4e0b\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"4-\u6570\u636e\u5bfc\u5165",children:"4. \u6570\u636e\u5bfc\u5165"}),"\n",(0,l.jsxs)(n.p,{children:["\u6570\u636e\u5bfc\u5165\u8bf7\u53c2\u8003",(0,l.jsx)(n.a,{href:"/tugraph-db/zh/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"})]}),"\n",(0,l.jsx)(n.p,{children:"\u5bfc\u5165\u8fc7\u7a0b\u4ee5cora\u6570\u636e\u96c6\u4e3a\u4f8b\uff1a"}),"\n",(0,l.jsx)(n.p,{children:"\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"./lgraph_import -c ./data/algo/cora.conf --dir ./coradb --overwrite 1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5176\u4e2dcora.conf\u4e3a\u56feschema\u6587\u4ef6\uff0c\u4ee3\u8868\u56fe\u6570\u636e\u7684\u683c\u5f0f\u3002coradb\u4e3a\u5bfc\u5165\u540e\u7684\u56fe\u6570\u636e\u6587\u4ef6\u540d\u79f0\uff0c\u4ee3\u8868\u56fe\u6570\u636e\u7684\u5b58\u50a8\u4f4d\u7f6e\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"5-feature\u7279\u5f81\u8f6c\u6362",children:"5. feature\u7279\u5f81\u8f6c\u6362"}),"\n",(0,l.jsx)(n.p,{children:"\u7531\u4e8e\u56fe\u5b66\u4e60\u4e2d\u7684feature\u7279\u5f81\u4e00\u822c\u8868\u793a\u4e3a\u8f83\u957f\u7684float\u7c7b\u578b\u6570\u7ec4\uff0cTuGraph\u6682\u4e0d\u652f\u6301float\u6570\u7ec4\u7c7b\u578b\u52a0\u8f7d\uff0c\u56e0\u6b64\u53ef\u5c06\u5176\u6309\u7167string\u7c7b\u578b\u5bfc\u5165\u540e\uff0c\u8f6c\u6362\u6210char*\u65b9\u4fbf\u540e\u7eed\u5b58\u53d6\uff0c\u5177\u4f53\u5b9e\u73b0\u53ef\u53c2\u8003feature_float.cpp\u6587\u4ef6\u3002\n\u5177\u4f53\u6267\u884c\u8fc7\u7a0b\u5982\u4e0b\uff1a"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728build\u76ee\u5f55\u4e0b\u7f16\u8bd1\u5bfc\u5165plugin(\u5982\u679cTuGraph\u5df2\u7f16\u8bd1\u53ef\u8df3\u8fc7)\uff1a\n",(0,l.jsx)(n.code,{children:"make feature_float_embed"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u5728build/output\u76ee\u5f55\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"./algo/feature_float_embed ./coradb"}),"\n\u5373\u53ef\u8fdb\u884c\u8f6c\u6362\u3002"]}),"\n",(0,l.jsx)(n.h2,{id:"6-\u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1",children:"6. \u91c7\u6837\u7b97\u5b50\u53ca\u7f16\u8bd1"}),"\n",(0,l.jsx)(n.p,{children:"TuGraph\u5728cython\u5c42\u5b9e\u73b0\u4e86\u4e00\u79cd\u83b7\u53d6\u5168\u56fe\u6570\u636e\u7684\u7b97\u5b50\u53ca4\u79cd\u91c7\u6837\u7b97\u5b50\uff0c\u5177\u4f53\u5982\u4e0b\uff1a"}),"\n",(0,l.jsx)(n.h3,{id:"61\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd",children:"6.1.\u91c7\u6837\u7b97\u5b50\u4ecb\u7ecd"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u91c7\u6837\u7b97\u5b50"}),(0,l.jsx)(n.th,{children:"\u91c7\u6837\u65b9\u5f0f"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"GetDB"}),(0,l.jsx)(n.td,{children:"\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6\u56fe\u6570\u636e\u5e76\u8f6c\u6362\u6210\u6240\u9700\u6570\u636e\u7ed3\u6784"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Neighbor Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u7ed9\u5b9a\u7684\u9876\u70b9\u91c7\u6837\u5176\u90bb\u5c45\u9876\u70b9\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Edge Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u91c7\u6837\u7387\u91c7\u6837\u56fe\u4e2d\u7684\u8fb9\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Random Walk Sampling"}),(0,l.jsx)(n.td,{children:"\u6839\u636e\u7ed9\u5b9a\u7684\u9876\u70b9\uff0c\u8fdb\u884c\u968f\u673a\u6e38\u8d70\uff0c\u5f97\u5230\u91c7\u6837\u5b50\u56fe"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Negative Sampling"}),(0,l.jsx)(n.td,{children:"\u751f\u6210\u4e0d\u5b58\u5728\u8fb9\u7684\u5b50\u56fe\u3002"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"62\u7f16\u8bd1",children:"6.2.\u7f16\u8bd1"}),"\n",(0,l.jsxs)(n.p,{children:["\u5982\u679cTuGraph\u5df2\u7f16\u8bd1\uff0c\u53ef\u8df3\u8fc7\u6b64\u6b65\u9aa4\u3002\n\u5728tugraph-db/build\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"make -j2"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u6216\u5728tugraph-db/learn/procedures\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"python3 setup.py build_ext -i"})]}),"\n",(0,l.jsx)(n.p,{children:"\u5f97\u5230\u7b97\u5b50so\u540e\uff0c\u5728Python\u4e2dimport \u5373\u53ef\u4f7f\u7528\u3002"}),"\n",(0,l.jsx)(n.h2,{id:"7-\u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58",children:"7. \u6a21\u578b\u8bad\u7ec3\u53ca\u4fdd\u5b58"}),"\n",(0,l.jsxs)(n.p,{children:["TuGraph\u5728python\u5c42\u8c03\u7528cython\u5c42\u7684\u7b97\u5b50\uff0c\u5b9e\u73b0\u56fe\u5b66\u4e60\u6a21\u578b\u7684\u8bad\u7ec3\u3002\n\u4f7f\u7528 TuGraph \u56fe\u5b66\u4e60\u6a21\u5757\u4f7f\u7528\u65b9\u5f0f\u4ecb\u7ecd\u5982\u4e0b:\n\u5728build/output\u6587\u4ef6\u5939\u4e0b\u6267\u884c\n",(0,l.jsx)(n.code,{children:"python3 train_full_cora.py --model_save_path ./cora_model"}),"\n\u5373\u53ef\u8fdb\u884c\u8bad\u7ec3\u3002\n\u6700\u7ec8\u6253\u5370loss\u6570\u503c\u5c0f\u4e8e0.9\uff0c\u5373\u4e3a\u8bad\u7ec3\u6210\u529f\u3002\u81f3\u6b64\uff0c\u56fe\u6a21\u578b\u8bad\u7ec3\u5b8c\u6210\uff0c\u6a21\u578b\u4fdd\u5b58\u5728cora_model\u6587\u4ef6\u3002"]}),"\n",(0,l.jsx)(n.h2,{id:"8-\u6a21\u578b\u52a0\u8f7d",children:"8. \u6a21\u578b\u52a0\u8f7d"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-python",children:"model = build_model()\nmodel.load_state_dict(torch.load(model_save_path))\nmodel.eval()\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u4f7f\u7528\u4fdd\u5b58\u7684\u6a21\u578b\u4e4b\u524d\uff0c\u9996\u5148\u9700\u8981\u5bf9\u5176\u8fdb\u884c\u52a0\u8f7d\u3002\u4ee3\u7801\u4e2d\uff0c\u4f7f\u7528\u5982\u4e0a\u7684\u4ee3\u7801\u5bf9\u5df2\u8bad\u7ec3\u6a21\u578b\u8fdb\u884c\u52a0\u8f7d\u3002"}),"\n",(0,l.jsx)(n.p,{children:"\u52a0\u8f7d\u4e4b\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u6a21\u578b\u5bf9\u65b0\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u9884\u6d4b\u548c\u5206\u7c7b\u3002\u5728\u9884\u6d4b\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u8f93\u5165\u4e00\u4e2a\u6216\u591a\u4e2a\u9876\u70b9\uff0c\u6a21\u578b\u5c06\u8f93\u51fa\u76f8\u5e94\u7684\u9884\u6d4b\u7ed3\u679c\u3002\u5728\u5206\u7c7b\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u6574\u4e2a\u56fe\u4f5c\u4e3a\u8f93\u5165\uff0c\u6a21\u578b\u5c06\u5bf9\u56fe\u4e2d\u7684\u9876\u70b9\u548c\u8fb9\u8fdb\u884c\u5206\u7c7b\uff0c\u4ee5\u5b9e\u73b0\u4efb\u52a1\u7684\u76ee\u6807\u3002\n\u4f7f\u7528\u5df2\u8bad\u7ec3\u7684\u6a21\u578b\u53ef\u4ee5\u907f\u514d\u91cd\u65b0\u8bad\u7ec3\u6a21\u578b\u7684\u65f6\u95f4\u548c\u8d44\u6e90\u6d88\u8017\u3002\u6b64\u5916\uff0c\u7531\u4e8e\u6a21\u578b\u5df2\u7ecf\u5b66\u4e60\u5230\u4e86\u56fe\u6570\u636e\u4e2d\u9876\u70b9\u548c\u8fb9\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5b83\u53ef\u4ee5\u5f88\u597d\u5730\u9002\u5e94\u65b0\u7684\u6570\u636e\uff0c\u4ece\u800c\u63d0\u9ad8\u9884\u6d4b\u548c\u5206\u7c7b\u7684\u51c6\u786e\u5ea6\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1695:(e,n,r)=>{r.d(n,{A:()=>l});const l=r.p+"assets/images/learn_flow_chart_zh-2b6033f80e4ac9e5ed7491e345d34f51.png"},8453:(e,n,r)=>{r.d(n,{R:()=>d,x:()=>i});var l=r(6540);const t={},a=l.createContext(t);function d(e){const n=l.useContext(a);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),l.createElement(a.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/98bf9f97.7f2941a6.js b/assets/js/98bf9f97.7f2941a6.js
new file mode 100644
index 0000000000..e5ca32e735
--- /dev/null
+++ b/assets/js/98bf9f97.7f2941a6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5449],{7015:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var t=r(4848),s=r(8453);const i={},c="\u5907\u4efd\u6062\u590d",d={id:"utility-tools/backup-and-restore",title:"\u5907\u4efd\u6062\u590d",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5907\u4efd\u548c\u6062\u590d\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/6.utility-tools/3.backup-and-restore.md",sourceDirName:"6.utility-tools",slug:"/utility-tools/backup-and-restore",permalink:"/tugraph-db/zh/utility-tools/backup-and-restore",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5bfc\u51fa",permalink:"/tugraph-db/zh/utility-tools/data-export"},next:{title:"\u6570\u636e\u9884\u70ed",permalink:"/tugraph-db/zh/utility-tools/data-warmup"}},o={},l=[{value:"1.\u6570\u636e\u5907\u4efd",id:"1\u6570\u636e\u5907\u4efd",level:2},{value:"2.\u6570\u636e\u6062\u590d",id:"2\u6570\u636e\u6062\u590d",level:2}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"\u5907\u4efd\u6062\u590d",children:"\u5907\u4efd\u6062\u590d"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5907\u4efd\u548c\u6062\u590d\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"1\u6570\u636e\u5907\u4efd",children:"1.\u6570\u636e\u5907\u4efd"}),"\n",(0,t.jsxs)(n.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 ",(0,t.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u6765\u8fdb\u884c\u6570\u636e\u5907\u4efd\u3002\n",(0,t.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u53ef\u4ee5\u5c06\u4e00\u4e2a TuGraph \u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u5907\u4efd\u5230\u53e6\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u5b83\u7684\u7528\u6cd5\u5982\u4e0b\uff1a"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"$ lgraph_backup -s {source_dir} -d {destination_dir} -c {true/false}\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"-s {source_dir}"})," \u6307\u5b9a\u9700\u8981\u5907\u4efd\u7684\u6570\u636e\u5e93\uff08\u6e90\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"-d {destination_dir}"})," \u6307\u5b9a\u5907\u4efd\u6587\u4ef6\uff08\u76ee\u6807\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002\n\u5982\u679c\u76ee\u6807\u6570\u636e\u5e93\u4e0d\u4e3a\u7a7a\uff0c",(0,t.jsx)(n.code,{children:"lgraph_backup"})," \u4f1a\u63d0\u793a\u662f\u5426\u8986\u76d6\u8be5\u6570\u636e\u5e93\u3002"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"-c {true/false}"})," \u6307\u660e\u662f\u5426\u5728\u5907\u4efd\u8fc7\u7a0b\u4e2d\u8fdb\u884c compaction\u3002\ncompaction \u80fd\u4f7f\u4ea7\u751f\u7684\u5907\u4efd\u6587\u4ef6\u66f4\u7d27\u51d1\uff0c\u4f46\u5907\u4efd\u65f6\u95f4\u4e5f\u4f1a\u53d8\u957f\u3002\u8be5\u9009\u9879\u9ed8\u8ba4\u4e3a ",(0,t.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2\u6570\u636e\u6062\u590d",children:"2.\u6570\u636e\u6062\u590d"}),"\n",(0,t.jsxs)(n.p,{children:["\u4f7f\u7528",(0,t.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u5f97\u5230\u7684\u76ee\u6807\u6570\u636e\u5e93",(0,t.jsx)(n.code,{children:"{destination_dir}"}),"\u5907\u4efd\u4e86\u6e90\u6570\u636e\u5e93\n",(0,t.jsx)(n.code,{children:"{source_dir}"}),"\u7684\u6240\u6709\u5b50\u56fe\uff0c\u4f46\u4e0d\u5305\u542bHA\u96c6\u7fa4\u7684raft\u4fe1\u606f\uff0c\u4ece\u800c\u4fdd\u8bc1\u670d\u52a1\u548c\u96c6\u7fa4\u80fd\n\u4ee5\u5907\u4efd\u6570\u636e\u5e93\u6210\u529f\u91cd\u542f\u5e76\u4e0e\u6e90\u6570\u636e\u5e93\u7684\u6570\u636e\u4e00\u81f4\u3002\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u53ef\u4ee5\u7528\u5907\u4efd\u6570\u636e\u5e93\u91cd\u542f\u670d\u52a1\uff0c\n\u5728\u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u6062\u590d\u6240\u6709\u5b50\u56fe\u7684\u5b58\u50a8\u8fc7\u7a0b\uff0c\u4fdd\u8bc1\u5907\u4efd\u670d\u52a1\u548c\u539f\u670d\u52a1\u5b8c\u5168\u4e00\u81f4\u3002"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"$ lgraph_server -c lgraph.json --directory {destination_dir} -d start\n"})}),"\n",(0,t.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"-d {destination_dir}"})," \u6307\u5b9a\u5907\u4efd\u6587\u4ef6\uff08\u76ee\u6807\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>d});var t=r(6540);const s={},i=t.createContext(s);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/98bf9f97.d6753905.js b/assets/js/98bf9f97.d6753905.js
deleted file mode 100644
index a248c2124a..0000000000
--- a/assets/js/98bf9f97.d6753905.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[5449],{7015:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>o,toc:()=>l});var s=r(4848),t=r(8453);const c={},i="\u5907\u4efd\u6062\u590d",o={id:"zh-CN/source/utility-tools/backup-and-restore",title:"\u5907\u4efd\u6062\u590d",description:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5907\u4efd\u548c\u6062\u590d\u529f\u80fd\u3002",source:"@site/../docs/zh-CN/source/6.utility-tools/3.backup-and-restore.md",sourceDirName:"zh-CN/source/6.utility-tools",slug:"/zh-CN/source/utility-tools/backup-and-restore",permalink:"/tugraph-db/zh-CN/source/utility-tools/backup-and-restore",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5bfc\u51fa",permalink:"/tugraph-db/zh-CN/source/utility-tools/data-export"},next:{title:"\u6570\u636e\u9884\u70ed",permalink:"/tugraph-db/zh-CN/source/utility-tools/data-warmup"}},d={},l=[{value:"1.\u6570\u636e\u5907\u4efd",id:"1\u6570\u636e\u5907\u4efd",level:2},{value:"2.\u6570\u636e\u6062\u590d",id:"2\u6570\u636e\u6062\u590d",level:2}];function a(e){const n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"\u5907\u4efd\u6062\u590d",children:"\u5907\u4efd\u6062\u590d"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u4ecb\u7ecd TuGraph \u7684\u6570\u636e\u5907\u4efd\u548c\u6062\u590d\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1\u6570\u636e\u5907\u4efd",children:"1.\u6570\u636e\u5907\u4efd"}),"\n",(0,s.jsxs)(n.p,{children:["TuGraph \u53ef\u4ee5\u901a\u8fc7 ",(0,s.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u6765\u8fdb\u884c\u6570\u636e\u5907\u4efd\u3002\n",(0,s.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u53ef\u4ee5\u5c06\u4e00\u4e2a TuGraph \u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u5907\u4efd\u5230\u53e6\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u5b83\u7684\u7528\u6cd5\u5982\u4e0b\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"$ lgraph_backup -s {source_dir} -d {destination_dir} -c {true/false}\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"-s {source_dir}"})," \u6307\u5b9a\u9700\u8981\u5907\u4efd\u7684\u6570\u636e\u5e93\uff08\u6e90\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"-d {destination_dir}"})," \u6307\u5b9a\u5907\u4efd\u6587\u4ef6\uff08\u76ee\u6807\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002\n\u5982\u679c\u76ee\u6807\u6570\u636e\u5e93\u4e0d\u4e3a\u7a7a\uff0c",(0,s.jsx)(n.code,{children:"lgraph_backup"})," \u4f1a\u63d0\u793a\u662f\u5426\u8986\u76d6\u8be5\u6570\u636e\u5e93\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"-c {true/false}"})," \u6307\u660e\u662f\u5426\u5728\u5907\u4efd\u8fc7\u7a0b\u4e2d\u8fdb\u884c compaction\u3002\ncompaction \u80fd\u4f7f\u4ea7\u751f\u7684\u5907\u4efd\u6587\u4ef6\u66f4\u7d27\u51d1\uff0c\u4f46\u5907\u4efd\u65f6\u95f4\u4e5f\u4f1a\u53d8\u957f\u3002\u8be5\u9009\u9879\u9ed8\u8ba4\u4e3a ",(0,s.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2\u6570\u636e\u6062\u590d",children:"2.\u6570\u636e\u6062\u590d"}),"\n",(0,s.jsxs)(n.p,{children:["\u4f7f\u7528",(0,s.jsx)(n.code,{children:"lgraph_backup"})," \u5de5\u5177\u5f97\u5230\u7684\u76ee\u6807\u6570\u636e\u5e93",(0,s.jsx)(n.code,{children:"{destination_dir}"}),"\u5907\u4efd\u4e86\u6e90\u6570\u636e\u5e93\n",(0,s.jsx)(n.code,{children:"{source_dir}"}),"\u7684\u6240\u6709\u5b50\u56fe\uff0c\u4f46\u4e0d\u5305\u542bHA\u96c6\u7fa4\u7684raft\u4fe1\u606f\uff0c\u4ece\u800c\u4fdd\u8bc1\u670d\u52a1\u548c\u96c6\u7fa4\u80fd\n\u4ee5\u5907\u4efd\u6570\u636e\u5e93\u6210\u529f\u91cd\u542f\u5e76\u4e0e\u6e90\u6570\u636e\u5e93\u7684\u6570\u636e\u4e00\u81f4\u3002\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u53ef\u4ee5\u7528\u5907\u4efd\u6570\u636e\u5e93\u91cd\u542f\u670d\u52a1\uff0c\n\u5728\u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u6062\u590d\u6240\u6709\u5b50\u56fe\u7684\u5b58\u50a8\u8fc7\u7a0b\uff0c\u4fdd\u8bc1\u5907\u4efd\u670d\u52a1\u548c\u539f\u670d\u52a1\u5b8c\u5168\u4e00\u81f4\u3002"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"$ lgraph_server -c lgraph.json --directory {destination_dir} -d start\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"-d {destination_dir}"})," \u6307\u5b9a\u5907\u4efd\u6587\u4ef6\uff08\u76ee\u6807\u6570\u636e\u5e93\uff09\u6240\u5728\u76ee\u5f55\u3002"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>i,x:()=>o});var s=r(6540);const t={},c=s.createContext(t);function i(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/995a136c.a73420c5.js b/assets/js/995a136c.a73420c5.js
deleted file mode 100644
index 7a5b03570c..0000000000
--- a/assets/js/995a136c.a73420c5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7378],{4810:(n,e,r)=>{r.r(e),r.d(e,{assets:()=>h,contentTitle:()=>i,default:()=>o,frontMatter:()=>d,metadata:()=>c,toc:()=>l});var t=r(4848),s=r(8453);const d={},i="\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",c={id:"zh-CN/source/best-practices/selection",title:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",description:"\u8be5\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u9009\u62e9\u7cfb\u7edf\u73af\u5883\uff0c\u4ee5\u53ca\u90e8\u7f72\u65b9\u5f0f",source:"@site/../docs/zh-CN/source/13.best-practices/4.selection.md",sourceDirName:"zh-CN/source/13.best-practices",slug:"/zh-CN/source/best-practices/selection",permalink:"/tugraph-db/zh-CN/source/best-practices/selection",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u8fc1\u79fb",permalink:"/tugraph-db/zh-CN/source/best-practices/data_migration"},next:{title:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",permalink:"/tugraph-db/zh-CN/source/best-practices/spatial"}},h={},l=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u73af\u5883\u80fd\u529b\u9009\u62e9",id:"2-\u73af\u5883\u80fd\u529b\u9009\u62e9",level:2},{value:"3. \u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",id:"3-\u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",level:2},{value:"4. \u540e\u7eed\u6b65\u9aa4",id:"4-\u540e\u7eed\u6b65\u9aa4",level:2}];function a(n){const e={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.header,{children:(0,t.jsx)(e.h1,{id:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",children:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9"})}),"\n",(0,t.jsxs)(e.blockquote,{children:["\n",(0,t.jsx)(e.p,{children:"\u8be5\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u9009\u62e9\u7cfb\u7edf\u73af\u5883\uff0c\u4ee5\u53ca\u90e8\u7f72\u65b9\u5f0f"}),"\n"]}),"\n",(0,t.jsx)(e.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u4e3a\u4e0d\u540c\u9700\u6c42\u7684\u7528\u6237\u63d0\u4f9b\u4e86\u5dee\u5f02\u5316\u7684\u7cfb\u7edf\u73af\u5883\u548c\u90e8\u7f72\u65b9\u5f0f\uff0c\u6765\u6ee1\u8db3\u65b0\u624b\u3001\u7cfb\u7edf\u5f00\u53d1\u8005\u3001\u751f\u4ea7\u8fd0\u7ef4\u4eba\u5458\u3001\u7814\u7a76\u4eba\u5458\u7b49\u4e0d\u540c\u7528\u6237\u7684\u9700\u6c42\u3002"}),"\n",(0,t.jsx)(e.h2,{id:"2-\u73af\u5883\u80fd\u529b\u9009\u62e9",children:"2. \u73af\u5883\u80fd\u529b\u9009\u62e9"}),"\n",(0,t.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u4f7f\u7528\u573a\u666f\uff0c\u6765\u9009\u62e9\u4e0d\u540c\u7684\u73af\u5883\u3002\u7f16\u8bd1\u73af\u5883\u7684\u80fd\u529b\u6700\u5b8c\u5907\uff0c\u6240\u9700\u7684\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u4e5f\u8d8a\u591a\u3002\u4e0e\u5176\u76f8\u5bf9\u5e94\u7684\uff0c\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\u51e0\u4e4e\u4e0d\u9700\u8981\u5b89\u88c5\u4efb\u4f55\u4f9d\u8d56\u5e93\uff0c\u80fd\u8fd0\u884cTuGraph\u9664\u5b58\u50a8\u8fc7\u7a0b\u5916\u7684\u57fa\u7840\u529f\u80fd\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{children:"\u73af\u5883"}),(0,t.jsx)(e.th,{children:"\u7528\u9014"}),(0,t.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"\u7f16\u8bd1\u73af\u5883"}),(0,t.jsx)(e.td,{children:"\u4ece\u6e90\u7801\u7f16\u8bd1TuGraph"}),(0,t.jsx)(e.td,{children:"\u9002\u7528\u4e8e\u5f00\u53d1\u4eba\u5458"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,t.jsx)(e.td,{children:"\u8fd0\u884cTuGraph\u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"\u9002\u7528\u4e8e\u5927\u90e8\u5206\u7528\u6237"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883"}),(0,t.jsx)(e.td,{children:"\u8fd0\u884c\u7cbe\u7b80TuGraph\u5b89\u88c5\u5305"}),(0,t.jsx)(e.td,{children:"\u5bf9\u7cfb\u8fd0\u884c\u7edf\u4f9d\u8d56\u8f83\u5c0f"})]})]})]}),"\n",(0,t.jsxs)(e.p,{children:["\u4e0d\u540c\u73af\u5883\u7684\u5177\u4f53\u4ecb\u7ecd\u53c2\u89c1 ",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/environment-mode",children:"\u94fe\u63a5"}),"\u3002"]}),"\n",(0,t.jsx)(e.h2,{id:"3-\u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",children:"3. \u90e8\u7f72\u65b9\u5f0f\u9009\u62e9"}),"\n",(0,t.jsx)(e.p,{children:"TuGraph\u90e8\u7f72\u4ec5\u9700\u4e00\u53f0\u670d\u52a1\u5668\uff08\u9ad8\u53ef\u7528\u6a21\u5f0f\u9700\u8981\u591a\u53f0\uff09\uff0c\u53ef\u6839\u636e\u5b9e\u9645\u8d44\u6e90\u60c5\u51b5\u548c\u4f7f\u7528\u573a\u666f\uff0c\u9009\u62e9\u9002\u5408\u7684\u90e8\u7f72\u65b9\u5f0f\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{children:"\u90e8\u7f72\u65b9\u5f0f"}),(0,t.jsx)(e.th,{children:"\u63cf\u8ff0"}),(0,t.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"\u4e91\u90e8\u7f72"}),(0,t.jsx)(e.td,{children:"\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u4e00\u952e\u90e8\u7f72\uff0c\u514d\u8d39\u8bd5\u7528"}),(0,t.jsxs)(e.td,{children:["\u65b0\u624b\u9002\u7528\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/cloud-deployment",children:"\u94fe\u63a5"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"Docker\u90e8\u7f72"}),(0,t.jsx)(e.td,{children:"\u901a\u8fc7\u9884\u5148\u51c6\u5907\u7684Docker\u955c\u50cf\u8de8\u5e73\u53f0\u90e8\u7f72"}),(0,t.jsxs)(e.td,{children:["\u5bf9\u786c\u4ef6\u6709\u8981\u6c42\u7684\u7528\u6237\uff0c\u6bd4\u5982\u6027\u80fd\u6d4b\u8bd5\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/docker-deployment",children:"\u94fe\u63a5"})]})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:"\u672c\u5730\u90e8\u7f72"}),(0,t.jsx)(e.td,{children:"\u5728\u73b0\u6709\u7cfb\u7edf\u7d27\u8026\u5408\u90e8\u7f72"}),(0,t.jsxs)(e.td,{children:["\u6307\u5b9a\u751f\u4ea7\u73af\u5883\u9002\u7528\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/local-package-deployment",children:"\u94fe\u63a5"})]})]})]})]}),"\n",(0,t.jsx)(e.h2,{id:"4-\u540e\u7eed\u6b65\u9aa4",children:"4. \u540e\u7eed\u6b65\u9aa4"}),"\n",(0,t.jsxs)(e.p,{children:["\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u540e\u7eed\u53ef\u4ee5\u8fdb\u884c",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/installation&running/tugraph-running",children:"\u542f\u52a8\u670d\u52a1"}),"\u3001",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"}),"\u7b49\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7",(0,t.jsx)(e.a,{href:"/tugraph-db/zh-CN/source/quick-start/demo/movie",children:"\u6837\u4f8b\u6570\u636e"}),"\u6765\u4f53\u9a8c\u6574\u4e2a\u6d41\u7a0b\u3002"]})]})}function o(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(a,{...n})}):a(n)}},8453:(n,e,r)=>{r.d(e,{R:()=>i,x:()=>c});var t=r(6540);const s={},d=t.createContext(s);function i(n){const e=t.useContext(d);return t.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:i(n.components),t.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/995a136c.d144e5c2.js b/assets/js/995a136c.d144e5c2.js
new file mode 100644
index 0000000000..21089c5ab8
--- /dev/null
+++ b/assets/js/995a136c.d144e5c2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[7378],{4810:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>o,frontMatter:()=>d,metadata:()=>h,toc:()=>l});var r=t(4848),s=t(8453);const d={},i="\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",h={id:"best-practices/selection",title:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",description:"\u8be5\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u9009\u62e9\u7cfb\u7edf\u73af\u5883\uff0c\u4ee5\u53ca\u90e8\u7f72\u65b9\u5f0f",source:"@site/../docs/zh-CN/source/13.best-practices/4.selection.md",sourceDirName:"13.best-practices",slug:"/best-practices/selection",permalink:"/tugraph-db/zh/best-practices/selection",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u8fc1\u79fb",permalink:"/tugraph-db/zh/best-practices/data_migration"},next:{title:"\u5730\u7406\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u793a\u4f8b",permalink:"/tugraph-db/zh/best-practices/spatial"}},c={},l=[{value:"1. \u7b80\u4ecb",id:"1-\u7b80\u4ecb",level:2},{value:"2. \u73af\u5883\u80fd\u529b\u9009\u62e9",id:"2-\u73af\u5883\u80fd\u529b\u9009\u62e9",level:2},{value:"3. \u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",id:"3-\u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",level:2},{value:"4. \u540e\u7eed\u6b65\u9aa4",id:"4-\u540e\u7eed\u6b65\u9aa4",level:2}];function a(n){const e={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9",children:"\u73af\u5883\u548c\u7248\u672c\u9009\u62e9"})}),"\n",(0,r.jsxs)(e.blockquote,{children:["\n",(0,r.jsx)(e.p,{children:"\u8be5\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u9009\u62e9\u7cfb\u7edf\u73af\u5883\uff0c\u4ee5\u53ca\u90e8\u7f72\u65b9\u5f0f"}),"\n"]}),"\n",(0,r.jsx)(e.h2,{id:"1-\u7b80\u4ecb",children:"1. \u7b80\u4ecb"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u4e3a\u4e0d\u540c\u9700\u6c42\u7684\u7528\u6237\u63d0\u4f9b\u4e86\u5dee\u5f02\u5316\u7684\u7cfb\u7edf\u73af\u5883\u548c\u90e8\u7f72\u65b9\u5f0f\uff0c\u6765\u6ee1\u8db3\u65b0\u624b\u3001\u7cfb\u7edf\u5f00\u53d1\u8005\u3001\u751f\u4ea7\u8fd0\u7ef4\u4eba\u5458\u3001\u7814\u7a76\u4eba\u5458\u7b49\u4e0d\u540c\u7528\u6237\u7684\u9700\u6c42\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"2-\u73af\u5883\u80fd\u529b\u9009\u62e9",children:"2. \u73af\u5883\u80fd\u529b\u9009\u62e9"}),"\n",(0,r.jsx)(e.p,{children:"\u7528\u6237\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u4f7f\u7528\u573a\u666f\uff0c\u6765\u9009\u62e9\u4e0d\u540c\u7684\u73af\u5883\u3002\u7f16\u8bd1\u73af\u5883\u7684\u80fd\u529b\u6700\u5b8c\u5907\uff0c\u6240\u9700\u7684\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u4e5f\u8d8a\u591a\u3002\u4e0e\u5176\u76f8\u5bf9\u5e94\u7684\uff0c\u7cbe\u7b80\u8fd0\u884c\u73af\u5883\u51e0\u4e4e\u4e0d\u9700\u8981\u5b89\u88c5\u4efb\u4f55\u4f9d\u8d56\u5e93\uff0c\u80fd\u8fd0\u884cTuGraph\u9664\u5b58\u50a8\u8fc7\u7a0b\u5916\u7684\u57fa\u7840\u529f\u80fd\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u73af\u5883"}),(0,r.jsx)(e.th,{children:"\u7528\u9014"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u7f16\u8bd1\u73af\u5883"}),(0,r.jsx)(e.td,{children:"\u4ece\u6e90\u7801\u7f16\u8bd1TuGraph"}),(0,r.jsx)(e.td,{children:"\u9002\u7528\u4e8e\u5f00\u53d1\u4eba\u5458"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884cTuGraph\u5b89\u88c5\u5305"}),(0,r.jsx)(e.td,{children:"\u9002\u7528\u4e8e\u5927\u90e8\u5206\u7528\u6237"})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u7cbe\u7b80\u8fd0\u884c\u73af\u5883"}),(0,r.jsx)(e.td,{children:"\u8fd0\u884c\u7cbe\u7b80TuGraph\u5b89\u88c5\u5305"}),(0,r.jsx)(e.td,{children:"\u5bf9\u7cfb\u8fd0\u884c\u7edf\u4f9d\u8d56\u8f83\u5c0f"})]})]})]}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0d\u540c\u73af\u5883\u7684\u5177\u4f53\u4ecb\u7ecd\u53c2\u89c1 ",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/environment-mode",children:"\u94fe\u63a5"}),"\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"3-\u90e8\u7f72\u65b9\u5f0f\u9009\u62e9",children:"3. \u90e8\u7f72\u65b9\u5f0f\u9009\u62e9"}),"\n",(0,r.jsx)(e.p,{children:"TuGraph\u90e8\u7f72\u4ec5\u9700\u4e00\u53f0\u670d\u52a1\u5668\uff08\u9ad8\u53ef\u7528\u6a21\u5f0f\u9700\u8981\u591a\u53f0\uff09\uff0c\u53ef\u6839\u636e\u5b9e\u9645\u8d44\u6e90\u60c5\u51b5\u548c\u4f7f\u7528\u573a\u666f\uff0c\u9009\u62e9\u9002\u5408\u7684\u90e8\u7f72\u65b9\u5f0f\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(e.table,{children:[(0,r.jsx)(e.thead,{children:(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.th,{children:"\u90e8\u7f72\u65b9\u5f0f"}),(0,r.jsx)(e.th,{children:"\u63cf\u8ff0"}),(0,r.jsx)(e.th,{children:"\u5907\u6ce8"})]})}),(0,r.jsxs)(e.tbody,{children:[(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u4e91\u90e8\u7f72"}),(0,r.jsx)(e.td,{children:"\u963f\u91cc\u4e91\u8ba1\u7b97\u5de2\u4e00\u952e\u90e8\u7f72\uff0c\u514d\u8d39\u8bd5\u7528"}),(0,r.jsxs)(e.td,{children:["\u65b0\u624b\u9002\u7528\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/cloud-deployment",children:"\u94fe\u63a5"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"Docker\u90e8\u7f72"}),(0,r.jsx)(e.td,{children:"\u901a\u8fc7\u9884\u5148\u51c6\u5907\u7684Docker\u955c\u50cf\u8de8\u5e73\u53f0\u90e8\u7f72"}),(0,r.jsxs)(e.td,{children:["\u5bf9\u786c\u4ef6\u6709\u8981\u6c42\u7684\u7528\u6237\uff0c\u6bd4\u5982\u6027\u80fd\u6d4b\u8bd5\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/docker-deployment",children:"\u94fe\u63a5"})]})]}),(0,r.jsxs)(e.tr,{children:[(0,r.jsx)(e.td,{children:"\u672c\u5730\u90e8\u7f72"}),(0,r.jsx)(e.td,{children:"\u5728\u73b0\u6709\u7cfb\u7edf\u7d27\u8026\u5408\u90e8\u7f72"}),(0,r.jsxs)(e.td,{children:["\u6307\u5b9a\u751f\u4ea7\u73af\u5883\u9002\u7528\uff0c\u6d41\u7a0b\u53c2\u8003 ",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/local-package-deployment",children:"\u94fe\u63a5"})]})]})]})]}),"\n",(0,r.jsx)(e.h2,{id:"4-\u540e\u7eed\u6b65\u9aa4",children:"4. \u540e\u7eed\u6b65\u9aa4"}),"\n",(0,r.jsxs)(e.p,{children:["\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u540e\u7eed\u53ef\u4ee5\u8fdb\u884c",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/installation&running/tugraph-running",children:"\u542f\u52a8\u670d\u52a1"}),"\u3001",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/utility-tools/data-import",children:"\u6570\u636e\u5bfc\u5165"}),"\u7b49\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7",(0,r.jsx)(e.a,{href:"/tugraph-db/zh/quick-start/demo/movie",children:"\u6837\u4f8b\u6570\u636e"}),"\u6765\u4f53\u9a8c\u6574\u4e2a\u6d41\u7a0b\u3002"]})]})}function o(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(a,{...n})}):a(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>i,x:()=>h});var r=t(6540);const s={},d=r.createContext(s);function i(n){const e=r.useContext(d);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function h(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:i(n.components),r.createElement(d.Provider,{value:e},n.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/998bc29d.06ff2543.js b/assets/js/998bc29d.06ff2543.js
new file mode 100644
index 0000000000..46450f8f68
--- /dev/null
+++ b/assets/js/998bc29d.06ff2543.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6751],{9942:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>a});var s=r(4848),d=r(8453);const l={},c="Procedure API",t={id:"olap&procedure/procedure/procedure",title:"Procedure API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/9.olap&procedure/1.procedure/1.procedure.md",sourceDirName:"9.olap&procedure/1.procedure",slug:"/olap&procedure/procedure/",permalink:"/tugraph-db/zh/olap&procedure/procedure/",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Vector index",permalink:"/tugraph-db/zh/query/vector_index"},next:{title:"Traversal API",permalink:"/tugraph-db/zh/olap&procedure/procedure/traversal"}},i={},a=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",id:"2\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",level:2},{value:"3.\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",id:"3\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",level:2},{value:"4.Procedure v1\u63a5\u53e3",id:"4procedure-v1\u63a5\u53e3",level:2},{value:"4.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",id:"41\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"4.1.1.\u7f16\u5199C++\u5b58\u50a8\u8fc7\u7a0b",id:"411\u7f16\u5199c\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.1.2.\u7f16\u5199Python\u5b58\u50a8\u8fc7\u7a0b",id:"412\u7f16\u5199python\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"42\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"4.2.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"421\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.2.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",id:"422\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",id:"423\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",level:3},{value:"4.2.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"424\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"425\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.6.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",id:"426\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.Procedure v2\u63a5\u53e3",id:"5procedure-v2\u63a5\u53e3",level:2},{value:"5.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",id:"51\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"52\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.1.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",id:"521\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.2.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",id:"522\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",level:4},{value:"5.2.3.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"523\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.4.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"524\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.5.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",id:"525\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",level:4}];function o(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"procedure-api",children:"Procedure API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"\u5f53\u7528\u6237\u9700\u8981\u8868\u8fbe\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\u8f83\u4e3a\u590d\u6742\uff08\u4f8b\u5982 Cypher \u65e0\u6cd5\u63cf\u8ff0\uff0c\u6216\u662f\u5bf9\u6027\u80fd\u8981\u6c42\u8f83\u9ad8\uff09\u65f6\uff0c\u76f8\u6bd4\u8c03\u7528\u591a\u4e2a\u8bf7\u6c42\u5e76\u5728\u5ba2\u6237\u7aef\u5b8c\u6210\u6574\u4e2a\u5904\u7406\u6d41\u7a0b\u7684\u65b9\u5f0f\uff0cTuGraph \u63d0\u4f9b\u7684\u5b58\u50a8\u8fc7\u7a0b\u662f\u66f4\u7b80\u6d01\u548c\u9ad8\u6548\u7684\u9009\u62e9\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u4e0e\u4f20\u7edf\u6570\u636e\u5e93\u7c7b\u4f3c\uff0cTuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u8fd0\u884c\u5728\u670d\u52a1\u5668\u7aef\uff0c\u7528\u6237\u901a\u8fc7\u5c06\u5904\u7406\u903b\u8f91\uff08\u5373\u591a\u4e2a\u64cd\u4f5c\uff09\u5c01\u88c5\u5230\u4e00\u4e2a\u8fc7\u7a0b\u5355\u6b21\u8c03\u7528\uff0c\u5e76\u4e14\u53ef\u4ee5\u5728\u5b9e\u73b0\u65f6\u901a\u8fc7\u5e76\u884c\u5904\u7406\u7684\u65b9\u5f0f\uff08\u4f8b\u5982\u4f7f\u7528\u76f8\u5173\u7684 C++ OLAP \u63a5\u53e3\u4ee5\u53ca\u57fa\u4e8e\u5176\u5b9e\u73b0\u7684\u5185\u7f6e\u7b97\u6cd5\uff09\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\u3002"}),"\n",(0,s.jsxs)(n.p,{children:["\u5b58\u50a8\u8fc7\u7a0b\u4e2d\u6709\u4e00\u7c7b\u7279\u6b8a\u7684API\u6765\u8fdb\u884c\u6570\u636e\u7684\u5e76\u884c\u64cd\u4f5c\uff0c\u6211\u4eec\u53eb Traversal API\uff0c\u89c1",(0,s.jsx)(n.a,{href:"/tugraph-db/zh/olap&procedure/procedure/traversal",children:"\u6587\u6863"}),"\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"2\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",children:"2.\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524dTuGraph\u652f\u6301\u4e24\u4e2a\u7248\u672c\u7684\u5b58\u50a8\u8fc7\u7a0b\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u573a\u666f\uff0cv3.5\u7248\u672c\u53ea\u652f\u6301v1\uff0c\u53ef\u901a\u8fc7REST\u6216RPC\u63a5\u53e3\u76f4\u63a5\u8c03\u7528\uff1b\u4ecev3.5\u7248\u672c\u5f00\u59cb\u652f\u6301v2\uff0c\u80fd\u591f\u5728\u56fe\u67e5\u8be2\u8bed\u8a00\uff08\u6bd4\u5982Cypher\uff09\u4e2d\u5d4c\u5165\u8c03\u7528\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3aPOG\uff08Procedure On Graph query language\uff0cAPOC\uff09\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{children:"Procedure v1"}),(0,s.jsx)(n.th,{children:"Procedure v2"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u9002\u7528\u573a\u666f"}),(0,s.jsx)(n.td,{children:"\u6781\u81f4\u6027\u80fd\uff0c\u6216\u8005\u590d\u6742\u7684\u591a\u4e8b\u52a1\u7ba1\u7406\u60c5\u5f62"}),(0,s.jsx)(n.td,{children:"\u4e00\u822c\u60c5\u51b5\uff0c\u4e0eCypher\u9ad8\u5ea6\u8054\u52a8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u4e8b\u52a1"}),(0,s.jsx)(n.td,{children:"\u51fd\u6570\u5185\u90e8\u521b\u5efa\uff0c\u53ef\u81ea\u7531\u63a7\u5236\u591a\u4e8b\u52a1"}),(0,s.jsx)(n.td,{children:"\u5916\u90e8\u4f20\u5165\u51fd\u6570\uff0c\u5355\u4e00\u4e8b\u52a1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u7b7e\u540d\uff08\u53c2\u6570\u5b9a\u4e49\uff09"}),(0,s.jsx)(n.td,{children:"\u65e0"}),(0,s.jsx)(n.td,{children:"\u6709"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8f93\u5165\u8f93\u51fa\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(n.td,{children:"\u4e0d\u9700\u8981\u6307\u5b9a"}),(0,s.jsx)(n.td,{children:"\u9700\u8981\u6307\u5b9a\u53c2\u6570\u7c7b\u578b"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Cypher Standalone Call"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Cypher Embeded Call"}),(0,s.jsx)(n.td,{children:"\u4e0d\u652f\u6301"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8bed\u8a00"}),(0,s.jsx)(n.td,{children:"C++/Python/Rust"}),(0,s.jsx)(n.td,{children:"C++"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8c03\u7528\u6a21\u5f0f"}),(0,s.jsx)(n.td,{children:"\u76f4\u63a5\u4f20\u5b57\u7b26\u4e32\uff0c\u4e00\u822c\u4e3aJSON"}),(0,s.jsx)(n.td,{children:"\u901a\u8fc7Cypher\u8bed\u53e5\u4e2d\u7684\u53d8\u91cf"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u5728TuGraph\u4e2d\uff0c\u5b58\u50a8\u8fc7\u7a0bv1\u548cv2\u5355\u72ec\u7ba1\u7406\uff0c\u652f\u6301\u589e\u5220\u67e5\uff0c\u4f46\u4ecd\u4e0d\u5efa\u8bae\u91cd\u540d\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"3\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",children:"3.\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301"}),"\n",(0,s.jsx)(n.p,{children:"\u5728 TuGraph \u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u52a8\u6001\u7684\u52a0\u8f7d\uff0c\u66f4\u65b0\u548c\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u3002TuGraph \u652f\u6301 C++ \u8bed\u8a00\u3001 Python \u8bed\u8a00\u548c Rust \u8bed\u8a00\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b\u3002\u5728\u6027\u80fd\u4e0a C++ \u8bed\u8a00\u652f\u6301\u7684\u6700\u5b8c\u6574\uff0c\u6027\u80fd\u6700\u4f18\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u6ce8\u610f\u5b58\u50a8\u8fc7\u7a0b\u662f\u5728\u670d\u52a1\u7aef\u7f16\u8bd1\u6267\u884c\u7684\u903b\u8f91\uff0c\u548c\u5ba2\u6237\u7aef\u7684\u8bed\u8a00\u652f\u6301\u65e0\u5173\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"4procedure-v1\u63a5\u53e3",children:"4.Procedure v1\u63a5\u53e3"}),"\n",(0,s.jsx)(n.h2,{id:"41\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",children:"4.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.h3,{id:"411\u7f16\u5199c\u5b58\u50a8\u8fc7\u7a0b",children:"4.1.1.\u7f16\u5199C++\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Procedure API \u6216\u8005 Traversal API \u6765\u7f16\u5199 C \u5b58\u50a8\u8fc7\u7a0b\u3002\u4e00\u4e2a\u7b80\u5355\u7684 C \u5b58\u50a8\u8fc7\u7a0b\u4e3e\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'#include \n#include "lgraph.h"\nusing namespace lgraph_api;\n\nextern "C" LGAPI bool Process(GraphDB& db, const std::string& request, std::string& response) {\n\tauto txn = db.CreateReadTxn();\n\tsize_t n = 0;\n\tfor (auto vit = txn.GetVertexIterator(); vit.IsValid(); vit.Next()) {\n if (vit.GetLabel() == "student") {\n auto age = vit.GetField("age");\n if (!age.is_null() && age.integer() == 10) n++; ## \u7edf\u8ba1\u6240\u6709\u5e74\u9f84\u4e3a10\u7684\u5b66\u751f\u6570\u91cf\n }\n\t}\n output = std::to_string(n);\n return true;\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["\u4ece\u4ee3\u7801\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u5b58\u50a8\u8fc7\u7a0b\u7684\u5165\u53e3\u51fd\u6570\u662f",(0,s.jsx)(n.code,{children:"Process"}),"\u51fd\u6570\uff0c\u5b83\u7684\u53c2\u6570\u6709\u4e09\u4e2a\uff0c\u5206\u522b\u4e3a\uff1a"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"db"}),": \u6570\u636e\u5e93\u5b9e\u4f8b"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"request"}),": \u8f93\u5165\u8bf7\u6c42\u6570\u636e\uff0c\u53ef\u4ee5\u662f\u4e8c\u8fdb\u5236\u5b57\u8282\u6570\u7ec4\uff0c\u6216\u8005 JSON \u4e32\u7b49\u5176\u5b83\u4efb\u610f\u683c\u5f0f\u3002"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"response"}),": \u8f93\u51fa\u6570\u636e\uff0c\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u8fd4\u56de\u4e8c\u8fdb\u5236\u6570\u636e\u3002"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"Process"}),"\u51fd\u6570\u7684\u8fd4\u56de\u503c\u662f\u4e00\u4e2a\u5e03\u5c14\u503c\u3002\u5f53\u5b83\u8fd4\u56de",(0,s.jsx)(n.code,{children:"true"}),"\u7684\u65f6\u5019\uff0c\u8868\u793a\u8be5\u8bf7\u6c42\u987a\u5229\u5b8c\u6210\uff0c\u53cd\u4e4b\u8868\u793a\u8fd9\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u5728\u6267\u884c\u8fc7\u7a0b\u4e2d\u53d1\u73b0\u4e86\u9519\u8bef\uff0c\u6b64\u65f6\u7528\u6237\u53ef\u4ee5\u901a\u8fc7",(0,s.jsx)(n.code,{children:"response"}),"\u6765\u8fd4\u56de\u9519\u8bef\u4fe1\u606f\u4ee5\u65b9\u4fbf\u8c03\u8bd5\u3002"]}),"\n",(0,s.jsxs)(n.p,{children:["C++\u5b58\u50a8\u8fc7\u7a0b\u7f16\u5199\u5b8c\u6bd5\u540e\u9700\u8981\u7f16\u8bd1\u6210\u52a8\u6001\u94fe\u63a5\u5e93\u3002TuGraph \u63d0\u4f9b\u4e86",(0,s.jsx)(n.code,{children:"compile.sh"}),"\u811a\u672c\u6765\u5e2e\u52a9\u7528\u6237\u81ea\u52a8\u7f16\u8bd1\u5b58\u50a8\u8fc7\u7a0b\u3002",(0,s.jsx)(n.code,{children:"compile.sh"}),"\u811a\u672c\u53ea\u6709\u4e00\u4e2a\u53c2\u6570\uff0c\u662f\u8be5\u5b58\u50a8\u8fc7\u7a0b\u7684\u540d\u79f0\uff0c\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\u5c31\u662f",(0,s.jsx)(n.code,{children:"age_10"}),"\u3002\u7f16\u8bd1\u8c03\u7528\u547d\u4ee4\u884c\u5982\u4e0b\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"g++ -fno-gnu-unique -fPIC -g --std=c++14 -I/usr/local/include/lgraph -rdynamic -O3 -fopenmp -o age_10.so age_10.cpp /usr/local/lib64/liblgraph.so -shared\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5982\u679c\u7f16\u8bd1\u987a\u5229\uff0c\u4f1a\u751f\u6210 age_10.so\uff0c\u7136\u540e\u7528\u6237\u5c31\u53ef\u4ee5\u5c06\u5b83\u52a0\u8f7d\u5230\u670d\u52a1\u5668\u4e2d\u4e86\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"412\u7f16\u5199python\u5b58\u50a8\u8fc7\u7a0b",children:"4.1.2.\u7f16\u5199Python\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u4e0e C++\u7c7b\u4f3c\uff0cPython \u5b58\u50a8\u8fc7\u7a0b\u4e5f\u53ef\u4ee5\u8c03\u7528 core API\uff0c\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:"def Process(db, input):\n txn = db.CreateReadTxn()\n it = txn.GetVertexIterator()\n n = 0\n while it.IsValid():\n if it.GetLabel() == 'student' and it['age'] and it['age'] == 10:\n n = n + 1\n it.Next()\n return (True, str(nv))\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Python \u5b58\u50a8\u8fc7\u7a0b\u8fd4\u56de\u7684\u662f\u4e00\u4e2a tuple\uff0c\u5176\u4e2d\u7b2c\u4e00\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a\u5e03\u5c14\u503c\uff0c\u8868\u793a\u8be5\u5b58\u50a8\u8fc7\u7a0b\u662f\u5426\u6210\u529f\u6267\u884c\uff1b\u7b2c\u4e8c\u4e2a\u5143\u7d20\u662f\u4e00\u4e2a",(0,s.jsx)(n.code,{children:"str"}),"\uff0c\u91cc\u9762\u662f\u9700\u8981\u8fd4\u56de\u7684\u7ed3\u679c\u3002"]}),"\n",(0,s.jsx)(n.p,{children:"Python \u5b58\u50a8\u8fc7\u7a0b\u4e0d\u9700\u8981\u7f16\u8bd1\uff0c\u53ef\u4ee5\u76f4\u63a5\u52a0\u8f7d\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"42\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.h3,{id:"421\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsxs)(n.p,{children:["\u7528\u6237\u53ef\u4ee5\u901a\u8fc7 REST API \u548c RPC \u6765\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u3002\u4ee5 REST API \u4e3a\u4f8b\uff0c\u52a0\u8f7d",(0,s.jsx)(n.code,{children:"age_10.so"}),"\u7684 C++\u4ee3\u7801\u5982\u4e0b\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:"import requests\nimport json\nimport base64\n\ndata = {'name':'age_10'}\nf = open('./age_10.so','rb')\ncontent = f.read()\ndata['code_base64'] = base64.b64encode(content).decode()\ndata['description'] = 'Custom Page Rank Procedure'\ndata['read_only'] = true\ndata['code_type'] = 'so'\njs = json.dumps(data)\nr = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin', data=js,\n headers={'Content-Type':'application/json'})\nprint(r.status_code) ## \u6b63\u5e38\u65f6\u8fd4\u56de200\n"})}),"\n",(0,s.jsxs)(n.p,{children:["\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u65f6\u7684",(0,s.jsx)(n.code,{children:"data['code']"}),"\u662f\u4e00\u4e2a\u7ecf\u8fc7 base64 \u5904\u7406\u7684\u5b57\u7b26\u4e32\uff0c",(0,s.jsx)(n.code,{children:"age_10.so"}),"\u4e2d\u7684\u4e8c\u8fdb\u5236\u4ee3\u7801\u662f\u65e0\u6cd5\u901a\u8fc7 JSON \u76f4\u63a5\u4f20\u8f93\u7684\u3002\u6b64\u5916\uff0c\u5b58\u50a8\u8fc7\u7a0b\u7684\u52a0\u8f7d\u548c\u5220\u9664\u90fd\u53ea\u80fd\u7531\u5177\u6709\u7ba1\u7406\u5458\u6743\u9650\u7684\u7528\u6237\u6765\u64cd\u4f5c\u3002"]}),"\n",(0,s.jsx)(n.p,{children:"\u5b58\u50a8\u8fc7\u7a0b\u52a0\u8f7d\u4e4b\u540e\u4f1a\u88ab\u4fdd\u5b58\u5728\u6570\u636e\u5e93\u4e2d\uff0c\u5728\u670d\u52a1\u5668\u91cd\u542f\u540e\u4e5f\u4f1a\u88ab\u81ea\u52a8\u52a0\u8f7d\u3002\u6b64\u5916\uff0c\u5982\u679c\u9700\u8981\u5bf9\u5b58\u50a8\u8fc7\u7a0b\u8fdb\u884c\u66f4\u65b0\uff0c\u8c03\u7528\u7684 REST API \u4e5f\u662f\u540c\u6837\u7684\u3002\u5efa\u8bae\u7528\u6237\u5728\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u65f6\u66f4\u65b0\u76f8\u5e94\u63cf\u8ff0\uff0c\u4ee5\u4fbf\u533a\u5206\u4e0d\u540c\u7248\u672c\u7684\u5b58\u50a8\u8fc7\u7a0b\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"422\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.2.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u968f\u65f6\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\u3002\u5176\u8c03\u7528\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin\')\n>>> r.status_code\n200\n>>> r.text\n\'{"plugins":[{"description":"Custom Page Rank Procedure", "name":"age_10", "read_only":true}]}\'\n'})}),"\n",(0,s.jsx)(n.h3,{id:"423\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",children:"4.2.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u968f\u65f6\u83b7\u53d6\u5355\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u60c5\uff0c\u5305\u62ec\u4ee3\u7801\u3002\u5176\u8c03\u7528\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin/age_10\')\n>>> r.status_code\n200\n>>> r.text\n\'{"description":"Custom Page Rank Procedure", "name":"age_10", "read_only":true, "code_base64":, "code_type":"so"}\'\n'})}),"\n",(0,s.jsx)(n.h3,{id:"424\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:">>> r = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10', data='',\n headers={'Content-Type':'application/json'})\n>>> r.status_code\n200\n>>> r.text\n9\n"})}),"\n",(0,s.jsx)(n.h3,{id:"425\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u53ea\u9700\u8981\u5982\u4e0b\u8c03\u7528\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/age_10')\n>>> r.status_code\n200\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u4e0e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7c7b\u4f3c\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u7528\u6237\u624d\u80fd\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"426\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",children:"4.2.6.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u9700\u8981\u6267\u884c\u5982\u4e0b\u4e24\u4e2a\u6b65\u9aa4\uff1a"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"\u5220\u9664\u5df2\u5b58\u5728\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.li,{children:"\u5b89\u88c5\u65b0\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"TuGraph \u8f83\u4e3a\u8c28\u614e\u5730\u7ba1\u7406\u5b58\u50a8\u8fc7\u7a0b\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\uff0c\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u4e0d\u4f1a\u5f71\u54cd\u73b0\u6709\u5b58\u50a8\u8fc7\u7a0b\u7684\u8fd0\u884c\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"5procedure-v2\u63a5\u53e3",children:"5.Procedure v2\u63a5\u53e3"}),"\n",(0,s.jsx)(n.p,{children:"\u4e0b\u9762\u7684\u8bf4\u660e\u4ee5 REST API \u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u5b58\u50a8\u8fc7\u7a0bv2\u7684\u8c03\u7528\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"51\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",children:"5.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 lgraph API \u6765\u7f16\u5199 C++ \u5b58\u50a8\u8fc7\u7a0b\u3002\u4e00\u4e2a\u7b80\u5355\u7684 C++ \u5b58\u50a8\u8fc7\u7a0b\u4e3e\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-c++",children:'// peek_some_node_salt.cpp\n#include \n#include "lgraph/lgraph.h"\n#include "lgraph/lgraph_types.h"\n#include "lgraph/lgraph_result.h"\n\n#include "tools/json.hpp"\n\nusing json = nlohmann::json;\nusing namespace lgraph_api;\n\nextern "C" LGAPI bool GetSignature(SigSpec &sig_spec) {\n sig_spec.input_list = {\n {.name = "limit", .index = 0, .type = LGraphType::INTEGER},\n };\n sig_spec.result_list = {\n {.name = "node", .index = 0, .type = LGraphType::NODE},\n {.name = "salt", .index = 1, .type = LGraphType::FLOAT}\n };\n return true;\n}\n\nextern "C" LGAPI bool ProcessInTxn(Transaction &txn,\n const std::string &request,\n Result &response) {\n int64_t limit;\n try {\n json input = json::parse(request);\n limit = input["limit"].get();\n } catch (std::exception &e) {\n response.ResetHeader({\n {"errMsg", LGraphType::STRING}\n });\n response.MutableRecord()->Insert(\n "errMsg",\n FieldData::String(std::string("error parsing json: ") + e.what()));\n return false;\n }\n\n response.ResetHeader({\n {"node", LGraphType::NODE},\n {"salt", LGraphType::FLOAT}\n });\n for (size_t i = 0; i < limit; i++) {\n auto r = response.MutableRecord();\n auto vit = txn.GetVertexIterator(i);\n r->Insert("node", vit);\n r->Insert("salt", FieldData::Float(20.23*float(i)));\n }\n return true;\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"\u4ece\u4ee3\u7801\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff1a"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["\u5b58\u50a8\u8fc7\u7a0b\u5b9a\u4e49\u4e86\u4e00\u4e2a\u83b7\u53d6\u7b7e\u540d\u7684\u65b9\u6cd5",(0,s.jsx)(n.code,{children:"GetSignature"}),"\u3002\u8be5\u65b9\u6cd5\u8fd4\u56de\u4e86\u5b58\u50a8\u8fc7\u7a0b\u7684\u7b7e\u540d\uff0c\u5176\u4e2d\u5305\u542b\u8f93\u5165\u53c2\u6570\u540d\u79f0\u53ca\u5176\u7c7b\u578b\uff0c\u8fd4\u56de\u53c2\u6570\u53ca\u5176\u7c7b\u578b\u3002\u8fd9\u4f7f\u5f97Cypher\u67e5\u8be2\u8bed\u53e5\u5728\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u80fd\u591f\u5229\u7528\u7b7e\u540d\u4fe1\u606f\u6821\u9a8c\u8f93\u5165\u6570\u636e\u4ee5\u53ca\u8fd4\u56de\u6570\u636e\u662f\u5426\u5408\u7406\u3002"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["\u5165\u53e3\u51fd\u6570\u662f",(0,s.jsx)(n.code,{children:"ProcessInTxn"}),"\u51fd\u6570\uff0c\u5b83\u7684\u53c2\u6570\u6709\u4e09\u4e2a\uff0c\u5206\u522b\u4e3a\uff1a"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"txn"}),": \u5b58\u50a8\u8fc7\u7a0b\u6240\u5904\u7684\u4e8b\u52a1\uff0c\u901a\u5e38\u6765\u8bf4\u5373\u8c03\u7528\u8be5\u5b58\u50a8\u8fc7\u7a0b\u7684Cypher\u8bed\u53e5\u6240\u5904\u4e8b\u52a1\u3002"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"request"}),": \u8f93\u5165\u6570\u636e\uff0c\u5176\u5185\u5bb9\u4e3a",(0,s.jsx)(n.code,{children:"GetSignature"}),"\u4e2d\u5b9a\u4e49\u7684\u8f93\u5165\u53c2\u6570\u7c7b\u578b\u53ca\u5176Cypher\u67e5\u8be2\u8bed\u53e5\u4e2d\u4f20\u5165\u7684\u503c\u7ecf\u8fc7json\u5e8f\u5217\u5316\u540e\u7684\u5b57\u7b26\u4e32\u3002e.g. ",(0,s.jsx)(n.code,{children:"{num_iteration: 10}"})]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"response"}),": \u8f93\u51fa\u6570\u636e\uff0c\u4e3a\u4fdd\u8bc1\u5728Cypher\u8bed\u8a00\u4e2d\u80fd\u591f\u517c\u5bb9\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5f80",(0,s.jsx)(n.code,{children:"lgraph_api::Result"})," \u5199\u5165\u5b58\u50a8\u8fc7\u7a0b\u5904\u7406\u540e\u7684\u6570\u636e\uff0c\u6700\u540e\u7528",(0,s.jsx)(n.code,{children:"lgraph_api::Result::Dump"}),"\u6765\u5e8f\u5217\u5316\u6210json\u683c\u5f0f\u7684\u6570\u636e\u3002"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"ProcessInTxn"}),"\u51fd\u6570\u7684\u8fd4\u56de\u503c\u662f\u4e00\u4e2a\u5e03\u5c14\u503c\u3002\u5f53\u5b83\u8fd4\u56de",(0,s.jsx)(n.code,{children:"true"}),"\u7684\u65f6\u5019\uff0c\u8868\u793a\u8be5\u8bf7\u6c42\u987a\u5229\u5b8c\u6210\uff0c\u53cd\u4e4b\u8868\u793a\u8fd9\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u5728\u6267\u884c\u8fc7\u7a0b\u4e2d\u53d1\u73b0\u4e86\u9519\u8bef\u3002"]}),"\n",(0,s.jsxs)(n.p,{children:["C++\u5b58\u50a8\u8fc7\u7a0b\u7f16\u5199\u5b8c\u6bd5\u540e\u9700\u8981\u7f16\u8bd1\u6210\u52a8\u6001\u94fe\u63a5\u5e93\u3002TuGraph \u63d0\u4f9b\u4e86",(0,s.jsx)(n.code,{children:"compile.sh"}),"\u811a\u672c\u6765\u5e2e\u52a9\u7528\u6237\u81ea\u52a8\u7f16\u8bd1\u5b58\u50a8\u8fc7\u7a0b\u3002",(0,s.jsx)(n.code,{children:"compile.sh"}),"\u811a\u672c\u53ea\u6709\u4e00\u4e2a\u53c2\u6570\uff0c\u662f\u8be5\u5b58\u50a8\u8fc7\u7a0b\u7684\u540d\u79f0\uff0c\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\u5c31\u662f",(0,s.jsx)(n.code,{children:"custom_pagerank"}),"\u3002\u7f16\u8bd1\u8c03\u7528\u547d\u4ee4\u884c\u5982\u4e0b\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"g++ -fno-gnu-unique -fPIC -g --std=c++14 -I/usr/local/include/lgraph -rdynamic -O3 -fopenmp -o custom_pagerank.so custom_pagerank.cpp /usr/local/lib64/liblgraph.so -shared\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u5982\u679c\u7f16\u8bd1\u987a\u5229\uff0c\u4f1a\u751f\u6210 custom_pagerank.so\uff0c\u7136\u540e\u7528\u6237\u5c31\u53ef\u4ee5\u5c06\u5b83\u52a0\u8f7d\u5230\u670d\u52a1\u5668\u4e2d\u4e86\u3002"}),"\n",(0,s.jsx)(n.h3,{id:"52\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsxs)(n.p,{children:["\u7528\u6237\u53ef\u4ee5\u901a\u8fc7 REST API \u548c RPC \u6765\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u3002\u4ee5 REST API \u4e3a\u4f8b\uff0c\u52a0\u8f7d",(0,s.jsx)(n.code,{children:"custom_pagerank.so"}),"\u7684 C++\u4ee3\u7801\u5982\u4e0b\uff1a"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:"import requests\nimport json\nimport base64\n\ndata = {'name':'custom_pagerank'}\nf = open('./custom_pagerank.so','rb')\ncontent = f.read()\ndata['code_base64'] = base64.b64encode(content).decode()\ndata['description'] = 'Custom Page Rank Procedure'\ndata['read_only'] = true\ndata['code_type'] = 'so'\njs = json.dumps(data)\nr = requests.post(url='http://127.0.0.1:7071/db/school/cpp_plugin', data=js,\n headers={'Content-Type':'application/json'})\nprint(r.status_code) ## \u6b63\u5e38\u65f6\u8fd4\u56de200\n"})}),"\n",(0,s.jsxs)(n.p,{children:["\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u65f6\u7684",(0,s.jsx)(n.code,{children:"data['code']"}),"\u662f\u4e00\u4e2a\u7ecf\u8fc7 base64 \u5904\u7406\u7684\u5b57\u7b26\u4e32\uff0c",(0,s.jsx)(n.code,{children:"custom_pagerank.so"}),"\u4e2d\u7684\u4e8c\u8fdb\u5236\u4ee3\u7801\u662f\u65e0\u6cd5\u901a\u8fc7 JSON \u76f4\u63a5\u4f20\u8f93\u7684\u3002\u6b64\u5916\uff0c\u5b58\u50a8\u8fc7\u7a0b\u7684\u52a0\u8f7d\u548c\u5220\u9664\u90fd\u53ea\u80fd\u7531\u5177\u6709\u7ba1\u7406\u5458\u6743\u9650\u7684\u7528\u6237\u6765\u64cd\u4f5c\u3002"]}),"\n",(0,s.jsx)(n.p,{children:"\u5b58\u50a8\u8fc7\u7a0b\u52a0\u8f7d\u4e4b\u540e\u4f1a\u88ab\u4fdd\u5b58\u5728\u6570\u636e\u5e93\u4e2d\uff0c\u5728\u670d\u52a1\u5668\u91cd\u542f\u540e\u4e5f\u4f1a\u88ab\u81ea\u52a8\u52a0\u8f7d\u3002\u6b64\u5916\uff0c\u5982\u679c\u9700\u8981\u5bf9\u5b58\u50a8\u8fc7\u7a0b\u8fdb\u884c\u66f4\u65b0\uff0c\u8c03\u7528\u7684 REST API \u4e5f\u662f\u540c\u6837\u7684\u3002\u5efa\u8bae\u7528\u6237\u5728\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u65f6\u66f4\u65b0\u76f8\u5e94\u63cf\u8ff0\uff0c\u4ee5\u4fbf\u533a\u5206\u4e0d\u540c\u7248\u672c\u7684\u5b58\u50a8\u8fc7\u7a0b\u3002"}),"\n",(0,s.jsx)(n.h4,{id:"521\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.1.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u968f\u65f6\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\u3002\u5176\u8c03\u7528\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin\')\n>>> r.status_code\n200\n>>> r.text\n\'{"plugins":[{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true}]}\'\n'})}),"\n",(0,s.jsx)(n.h4,{id:"522\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",children:"5.2.2.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5"}),"\n",(0,s.jsx)(n.p,{children:"\u5728\u670d\u52a1\u5668\u8fd0\u884c\u8fc7\u7a0b\u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u968f\u65f6\u83b7\u53d6\u5355\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u8be6\u60c5\uff0c\u5305\u62ec\u4ee3\u7801\u3002\u5176\u8c03\u7528\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'>>> r = requests.get(\'http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank\')\n>>> r.status_code\n200\n>>> r.text\n\'{"description":"Custom Page Rank Procedure", "name":"custom_pagerank", "read_only":true, "code_base64":, "code_type":"so"}\'\n'})}),"\n",(0,s.jsx)(n.h4,{id:"523\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.3.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\u7684\u4ee3\u7801\u793a\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-Cypher",children:"CALL plugin.cpp.custom_pagerank(10)\nYIELD node, pr WITH node, pr\nMATCH(node)-[r]->(n) RETURN node, r, n, pr\n"})}),"\n",(0,s.jsx)(n.h4,{id:"524\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.4.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u53ea\u9700\u8981\u5982\u4e0b\u8c03\u7528\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:">>> r = requests.delete(url='http://127.0.0.1:7071/db/school/cpp_plugin/custom_pagerank')\n>>> r.status_code\n200\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u4e0e\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b\u7c7b\u4f3c\uff0c\u53ea\u6709\u7ba1\u7406\u5458\u7528\u6237\u624d\u80fd\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u3002"}),"\n",(0,s.jsx)(n.h4,{id:"525\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",children:"5.2.5.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u9700\u8981\u6267\u884c\u5982\u4e0b\u4e24\u4e2a\u6b65\u9aa4\uff1a"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"\u5220\u9664\u5df2\u5b58\u5728\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.li,{children:"\u5b89\u88c5\u65b0\u7684\u5b58\u50a8\u8fc7\u7a0b"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"TuGraph \u8f83\u4e3a\u8c28\u614e\u5730\u7ba1\u7406\u5b58\u50a8\u8fc7\u7a0b\u64cd\u4f5c\u7684\u5e76\u53d1\u6027\uff0c\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b\u4e0d\u4f1a\u5f71\u54cd\u73b0\u6709\u5b58\u50a8\u8fc7\u7a0b\u7684\u8fd0\u884c\u3002"})]})}function h(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>c,x:()=>t});var s=r(6540);const d={},l=s.createContext(d);function c(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/998bc29d.d9934027.js b/assets/js/998bc29d.d9934027.js
deleted file mode 100644
index 546f344a29..0000000000
--- a/assets/js/998bc29d.d9934027.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocusaurus=self.webpackChunkdocusaurus||[]).push([[6751],{9942:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>a});var s=r(4848),d=r(8453);const l={},c="Procedure API",t={id:"zh-CN/source/olap&procedure/procedure/procedure",title:"Procedure API",description:"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4f7f\u7528\u8bf4\u660e",source:"@site/../docs/zh-CN/source/9.olap&procedure/1.procedure/1.procedure.md",sourceDirName:"zh-CN/source/9.olap&procedure/1.procedure",slug:"/zh-CN/source/olap&procedure/procedure/",permalink:"/tugraph-db/zh-CN/source/olap&procedure/procedure/",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Vector index",permalink:"/tugraph-db/zh-CN/source/query/vector_index"},next:{title:"Traversal API",permalink:"/tugraph-db/zh-CN/source/olap&procedure/procedure/traversal"}},i={},a=[{value:"1.\u7b80\u4ecb",id:"1\u7b80\u4ecb",level:2},{value:"2.\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",id:"2\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",level:2},{value:"3.\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",id:"3\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",level:2},{value:"4.Procedure v1\u63a5\u53e3",id:"4procedure-v1\u63a5\u53e3",level:2},{value:"4.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",id:"41\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"4.1.1.\u7f16\u5199C++\u5b58\u50a8\u8fc7\u7a0b",id:"411\u7f16\u5199c\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.1.2.\u7f16\u5199Python\u5b58\u50a8\u8fc7\u7a0b",id:"412\u7f16\u5199python\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"42\u5982\u4f55\u4f7f\u7528\u5b58\u50a8\u8fc7\u7a0b",level:2},{value:"4.2.1.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"421\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.2.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",id:"422\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.3.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",id:"423\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",level:3},{value:"4.2.4.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"424\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.5.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"425\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"4.2.6.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",id:"426\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.Procedure v2\u63a5\u53e3",id:"5procedure-v2\u63a5\u53e3",level:2},{value:"5.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",id:"51\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",id:"52\u52a0\u8f7d\u5b58\u50a8\u8fc7\u7a0b",level:3},{value:"5.2.1.\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",id:"521\u5217\u51fa\u5df2\u52a0\u8f7d\u7684\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.2.\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",id:"522\u83b7\u53d6\u5b58\u50a8\u8fc7\u7a0b\u8be6\u60c5",level:4},{value:"5.2.3.\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",id:"523\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.4.\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",id:"524\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b",level:4},{value:"5.2.5.\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",id:"525\u66f4\u65b0\u5b58\u50a8\u8fc7\u7a0b",level:4}];function o(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"procedure-api",children:"Procedure API"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u6b64\u6587\u6863\u4e3b\u8981\u8bb2\u89e3 TuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u4f7f\u7528\u8bf4\u660e"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1\u7b80\u4ecb",children:"1.\u7b80\u4ecb"}),"\n",(0,s.jsx)(n.p,{children:"\u5f53\u7528\u6237\u9700\u8981\u8868\u8fbe\u7684\u67e5\u8be2/\u66f4\u65b0\u903b\u8f91\u8f83\u4e3a\u590d\u6742\uff08\u4f8b\u5982 Cypher \u65e0\u6cd5\u63cf\u8ff0\uff0c\u6216\u662f\u5bf9\u6027\u80fd\u8981\u6c42\u8f83\u9ad8\uff09\u65f6\uff0c\u76f8\u6bd4\u8c03\u7528\u591a\u4e2a\u8bf7\u6c42\u5e76\u5728\u5ba2\u6237\u7aef\u5b8c\u6210\u6574\u4e2a\u5904\u7406\u6d41\u7a0b\u7684\u65b9\u5f0f\uff0cTuGraph \u63d0\u4f9b\u7684\u5b58\u50a8\u8fc7\u7a0b\u662f\u66f4\u7b80\u6d01\u548c\u9ad8\u6548\u7684\u9009\u62e9\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u4e0e\u4f20\u7edf\u6570\u636e\u5e93\u7c7b\u4f3c\uff0cTuGraph \u7684\u5b58\u50a8\u8fc7\u7a0b\u8fd0\u884c\u5728\u670d\u52a1\u5668\u7aef\uff0c\u7528\u6237\u901a\u8fc7\u5c06\u5904\u7406\u903b\u8f91\uff08\u5373\u591a\u4e2a\u64cd\u4f5c\uff09\u5c01\u88c5\u5230\u4e00\u4e2a\u8fc7\u7a0b\u5355\u6b21\u8c03\u7528\uff0c\u5e76\u4e14\u53ef\u4ee5\u5728\u5b9e\u73b0\u65f6\u901a\u8fc7\u5e76\u884c\u5904\u7406\u7684\u65b9\u5f0f\uff08\u4f8b\u5982\u4f7f\u7528\u76f8\u5173\u7684 C++ OLAP \u63a5\u53e3\u4ee5\u53ca\u57fa\u4e8e\u5176\u5b9e\u73b0\u7684\u5185\u7f6e\u7b97\u6cd5\uff09\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\u3002"}),"\n",(0,s.jsxs)(n.p,{children:["\u5b58\u50a8\u8fc7\u7a0b\u4e2d\u6709\u4e00\u7c7b\u7279\u6b8a\u7684API\u6765\u8fdb\u884c\u6570\u636e\u7684\u5e76\u884c\u64cd\u4f5c\uff0c\u6211\u4eec\u53eb Traversal API\uff0c\u89c1",(0,s.jsx)(n.a,{href:"/tugraph-db/zh-CN/source/olap&procedure/procedure/traversal",children:"\u6587\u6863"}),"\u3002"]}),"\n",(0,s.jsx)(n.h2,{id:"2\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301",children:"2.\u5b58\u50a8\u8fc7\u7a0b\u7684\u7248\u672c\u652f\u6301"}),"\n",(0,s.jsx)(n.p,{children:"\u76ee\u524dTuGraph\u652f\u6301\u4e24\u4e2a\u7248\u672c\u7684\u5b58\u50a8\u8fc7\u7a0b\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u573a\u666f\uff0cv3.5\u7248\u672c\u53ea\u652f\u6301v1\uff0c\u53ef\u901a\u8fc7REST\u6216RPC\u63a5\u53e3\u76f4\u63a5\u8c03\u7528\uff1b\u4ecev3.5\u7248\u672c\u5f00\u59cb\u652f\u6301v2\uff0c\u80fd\u591f\u5728\u56fe\u67e5\u8be2\u8bed\u8a00\uff08\u6bd4\u5982Cypher\uff09\u4e2d\u5d4c\u5165\u8c03\u7528\uff0c\u6211\u4eec\u79f0\u4e4b\u4e3aPOG\uff08Procedure On Graph query language\uff0cAPOC\uff09\u3002"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{}),(0,s.jsx)(n.th,{children:"Procedure v1"}),(0,s.jsx)(n.th,{children:"Procedure v2"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u9002\u7528\u573a\u666f"}),(0,s.jsx)(n.td,{children:"\u6781\u81f4\u6027\u80fd\uff0c\u6216\u8005\u590d\u6742\u7684\u591a\u4e8b\u52a1\u7ba1\u7406\u60c5\u5f62"}),(0,s.jsx)(n.td,{children:"\u4e00\u822c\u60c5\u51b5\uff0c\u4e0eCypher\u9ad8\u5ea6\u8054\u52a8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u4e8b\u52a1"}),(0,s.jsx)(n.td,{children:"\u51fd\u6570\u5185\u90e8\u521b\u5efa\uff0c\u53ef\u81ea\u7531\u63a7\u5236\u591a\u4e8b\u52a1"}),(0,s.jsx)(n.td,{children:"\u5916\u90e8\u4f20\u5165\u51fd\u6570\uff0c\u5355\u4e00\u4e8b\u52a1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u7b7e\u540d\uff08\u53c2\u6570\u5b9a\u4e49\uff09"}),(0,s.jsx)(n.td,{children:"\u65e0"}),(0,s.jsx)(n.td,{children:"\u6709"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8f93\u5165\u8f93\u51fa\u53c2\u6570\u7c7b\u578b"}),(0,s.jsx)(n.td,{children:"\u4e0d\u9700\u8981\u6307\u5b9a"}),(0,s.jsx)(n.td,{children:"\u9700\u8981\u6307\u5b9a\u53c2\u6570\u7c7b\u578b"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Cypher Standalone Call"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Cypher Embeded Call"}),(0,s.jsx)(n.td,{children:"\u4e0d\u652f\u6301"}),(0,s.jsx)(n.td,{children:"\u652f\u6301"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8bed\u8a00"}),(0,s.jsx)(n.td,{children:"C++/Python/Rust"}),(0,s.jsx)(n.td,{children:"C++"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"\u8c03\u7528\u6a21\u5f0f"}),(0,s.jsx)(n.td,{children:"\u76f4\u63a5\u4f20\u5b57\u7b26\u4e32\uff0c\u4e00\u822c\u4e3aJSON"}),(0,s.jsx)(n.td,{children:"\u901a\u8fc7Cypher\u8bed\u53e5\u4e2d\u7684\u53d8\u91cf"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"\u5728TuGraph\u4e2d\uff0c\u5b58\u50a8\u8fc7\u7a0bv1\u548cv2\u5355\u72ec\u7ba1\u7406\uff0c\u652f\u6301\u589e\u5220\u67e5\uff0c\u4f46\u4ecd\u4e0d\u5efa\u8bae\u91cd\u540d\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"3\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301",children:"3.\u5b58\u50a8\u8fc7\u7a0b\u8bed\u8a00\u652f\u6301"}),"\n",(0,s.jsx)(n.p,{children:"\u5728 TuGraph \u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u52a8\u6001\u7684\u52a0\u8f7d\uff0c\u66f4\u65b0\u548c\u5220\u9664\u5b58\u50a8\u8fc7\u7a0b\u3002TuGraph \u652f\u6301 C++ \u8bed\u8a00\u3001 Python \u8bed\u8a00\u548c Rust \u8bed\u8a00\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b\u3002\u5728\u6027\u80fd\u4e0a C++ \u8bed\u8a00\u652f\u6301\u7684\u6700\u5b8c\u6574\uff0c\u6027\u80fd\u6700\u4f18\u3002"}),"\n",(0,s.jsx)(n.p,{children:"\u6ce8\u610f\u5b58\u50a8\u8fc7\u7a0b\u662f\u5728\u670d\u52a1\u7aef\u7f16\u8bd1\u6267\u884c\u7684\u903b\u8f91\uff0c\u548c\u5ba2\u6237\u7aef\u7684\u8bed\u8a00\u652f\u6301\u65e0\u5173\u3002"}),"\n",(0,s.jsx)(n.h2,{id:"4procedure-v1\u63a5\u53e3",children:"4.Procedure v1\u63a5\u53e3"}),"\n",(0,s.jsx)(n.h2,{id:"41\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b",children:"4.1.\u7f16\u5199\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.h3,{id:"411\u7f16\u5199c\u5b58\u50a8\u8fc7\u7a0b",children:"4.1.1.\u7f16\u5199C++\u5b58\u50a8\u8fc7\u7a0b"}),"\n",(0,s.jsx)(n.p,{children:"\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Procedure API \u6216\u8005 Traversal API \u6765\u7f16\u5199 C \u5b58\u50a8\u8fc7\u7a0b\u3002\u4e00\u4e2a\u7b80\u5355\u7684 C \u5b58\u50a8\u8fc7\u7a0b\u4e3e\u4f8b\u5982\u4e0b\uff1a"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'#include