本节为您介绍如何使用Connection
对象的方法管理实例上的嬴图算法和自定义算法(EXTA)。
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
嬴图算法
showAlgo()
获取安装在实例上的嬴图算法。
参数:
RequestConfig
(可选):配置请求。
返回值:
Algo[]
:获取到的全部算法列表。
// 获取已安装的全部嬴图算法并打印首个返回的算法信息
let resp = await conn.showAlgo();
let algo_list = resp.data.map((item) => item.param);
console.log("检索到的第一个算法:", algo_list[0]);
检索到的第一个算法: {
name: 'bipartite',
description: 'bipartite check',
version: '1.0.1',
parameters: {},
result_opt: '56'
}
installAlgo()
在实例上安装一个嬴图算法。
参数:
string
:算法安装包文件路径(.so)。string
:配置文件路径(.yml)。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 安装算法LPA,使用主节点以确保一致性,并打印错误代码
let requestConfig = <RequestType.RequestConfig>{
useMaster: true,
};
let resp = await conn.installAlgo(
"E:/NodeJs/Algo/libplugin_lpa.so",
"E:/NodeJs/Algo/lpa.yml"
);
console.log(resp.status.code_desc);
["libplugin_lpa.so","lpa.yml"] upload finished!
SUCCESS
uninstallAlgo()
卸载实例中的嬴图算法。
参数:
string
:算法名称。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 卸载算法LPA并打印错误代码
let resp = await conn.uninstallAlgo("lpa");
console.log(resp.status.code_desc);
SUCCESS
EXTA
showExta()
获取安装在实例上的全部EXTA。
参数:
RequestConfig
(可选):配置请求。
返回值:
Exta[]
:获取到的全部EXTA列表。
// 获取已安装的全部EXTA并打印首个返回的算法信息
let resp = await conn.showExta();
console.log(resp.data);
[
{
name: 'page_rank 1',
author: 'xxx',
version: 'beta.4.4.41-b4.4.0-tv-ui',
detail: 'base:\n' +
' category: ExtaExample\n' +
' cn:\n' +
' name: page_rank\n' +
' desc: null\n' +
' en:\n' +
' name: page_rank\n' +
' desc: null\n' +
'\n' +
'other_param:\n' +
'\n' +
' \n' +
'param_form:\n' +
'\n' +
'write:\n' +
'\n' +
'return:\n' +
'\n' +
'media:\n'
}
]
installExta()
在实例上安装一个EXTA。
参数:
string
:EXTA安装包文件路径(.so)。string
:配置文件路径(.yml)。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 安装EXTA page_rank,使用主节点以确保一致性,并打印错误代码
let requestConfig = <RequestType.RequestConfig>{
useMaster: true,
};
let resp = await conn.installExta(
"E:/NodeJs/Exta/libexta_page_rank.so",
"E:/NodeJs/Exta/page_rank.yml",
requestConfig
);
console.log(resp.status.code_desc);
["libexta_page_rank.so","page_rank.yml"] upload finished!
SUCCESS
uninstallExta()
卸载实例中的EXTA。
参数:
string
:EXTA名称。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 卸载EXTA page_rank并打印错误代码
let resp = await conn.uninstallExta("page_rank");
console.log(resp.status.code_desc);
SUCCESS
完整示例
import { ConnectionPool, ULTIPA } from "@ultipa-graph/ultipa-node-sdk";
import { GraphExra } from "@ultipa-graph/ultipa-node-sdk/dist/connection/extra/graph.extra";
import { getEdgesPrintInfo } from "@ultipa-graph/ultipa-node-sdk/dist/printers/edge";
import { RequestType } from "@ultipa-graph/ultipa-node-sdk/dist/types";
import { ListFormat } from "typescript";
let sdkUsage = async () => {
// 配置连接
//URI示例: hosts="mqj4zouys.us-east-1.cloud.ultipa.com:60010"
let hosts = [
"192.168.1.85:60061",
"192.168.1.86:60061",
"192.168.1.87:60061",
];
let username = "***";
let password = "***";
let connPool = new ConnectionPool(hosts, username, password);
// 建立与数据库的连接
let conn = await connPool.getActive();
let isSuccess = await conn.test();
console.log(isSuccess);
// 配置请求
let requestConfig = <RequestType.RequestConfig>{
useMaster: true,
};
// 安装算法LPA
let resp = await conn.installAlgo(
"E:/NodeJs/Algo/libplugin_lpa.so",
"E:/NodeJs/Algo/lpa.yml",
requestConfig
);
console.log(resp.status.code_desc);
};
sdkUsage().then(console.log).catch(console.log);