本节为您介绍如何使用Connection
对象的方法管理实例上的嬴图算法和自定义算法(EXTA)。
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
嬴图算法
ShowAlgo()
获取安装在实例上的嬴图算法。
参数:
RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
[]Algo
:获取到的全部算法列表。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 获取已安装的全部嬴图算法并打印首个返回的算法信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
graphList, err := conn.ShowAlgo(requestConfig)
if err != nil {
println(err)
}
println("First algorithm retrieved:")
println(utils.JSONString(graphList[0]))
First algorithm retrieved:
{"Name":"lpa","Desc":"label propagation algorithm","Version":"1.0.10","Params":{"edge_weight_property":{"Name":"edge_weight_property","Desc":"optional"},"ids":{"Name":"ids","Desc":"labeled nodes, optional, all nodes(with non-NULL value) as labeled nodes if empty"},"k":{"Name":"k","Desc":"no more than k labels will be kept for each node"},"loop_num":{"Name":"loop_num","Desc":"size_t,required"},"node_label_property":{"Name":"node_label_property","Desc":"optional"},"node_weight_property":{"Name":"node_weight_property","Desc":"optional"}}}
InstallAlgo()
在实例上安装一个嬴图算法。
参数:
string
:算法安装包文件路径(.so)。string
:配置文件路径(.yml)。RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
InstallAlgoReply
:请求的结果。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 安装算法LPA,使用主节点以确保一致性,并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
graph, err := conn.InstallAlgo("E:/Go/Algo/libplugin_lpa.so", "E:/Go/Algo/lpa.yml", requestConfig)
if err != nil {
println(err)
}
if graph.Status.ErrorCode == 0 {
println("Installation succeeds")
} else {
println("Installation failed")
}
Installation succeeds
UninstallAlgo()
卸载实例中的嬴图算法。
参数:
string
:算法名称。RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
UninstallAlgoReply
:请求的结果。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 卸载算法LPA并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
graph, err := conn.UninstallAlgo("lpa", requestConfig)
if err != nil {
println(err)
}
if graph.Status.ErrorCode == 0 {
println("Algorithm is uninstalled")
} else {
println("Operation failed")
}
Algorithm is uninstalled
EXTA
ShowExta()
获取安装在实例上的全部EXTA。
参数:
RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
[]Exta
:获取到的全部EXTA列表。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 获取已安装的全部EXTA并打印首个返回的算法信息
extaList, err := conn.ShowExta(nil)
if err != nil {
println(err)
}
println(utils.JSONString(extaList[0]))
{"Name":"page_rank 1","Author":"wuchuang","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\nother_param:\n\n \nparam_form:\n\nwrite:\n\nreturn:\n\nmedia:\n"}
InstallExta()
在实例上安装一个EXTA。
参数:
string
:EXTA安装包文件路径(.so)。string
:配置文件路径(.yml)。RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
Response
:请求的结果。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 安装EXTA page_rank,使用主节点以确保一致性,并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
exta, err := conn.InstallExta("E:/Go/Exta/libexta_page_rank.so", "E:/Go/Exta/page_rank.yml", requestConfig)
if err != nil {
println(err)
}
if exta.Status.ErrorCode == 0 {
println("Installation succeeds")
} else {
println("Installation failed")
}
Installation succeeds
UninstallExta()
卸载实例中的EXTA。
参数:
string
:EXTA名称。RequestConfig
(可选):请求配置。如果填入nil
,将使用默认配置。
返回值:
UninstallExtaReply
:请求的结果。error
:错误对象,包含出现问题的详细信息。如果操作成功,则返回nil
。
// 卸载EXTA page_rank并打印错误代码
exta, err := conn.UninstallExta("page_rank", nil)
if err != nil {
println(err)
}
if exta.Status.ErrorCode == 0 {
println("Exta is uninstalled")
} else {
println("Operation failed")
}
Exta is uninstalled
完整示例
package main
import (
"github.com/ultipa/ultipa-go-sdk/sdk"
"github.com/ultipa/ultipa-go-sdk/sdk/configuration"
)
func main() {
// 配置连接
// URI 示例: Hosts:=[]string{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
config, _ := configuration.NewUltipaConfig(&configuration.UltipaConfig{
Hosts: []string{"192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"},
Username: "***",
Password: "***",
})
// 建立与数据库的连接
conn, _ := sdk.NewUltipa(config)
// 配置请求
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
// 安装算法LPA
graph, err := conn.InstallAlgo("E:/Go/Algo/libplugin_lpa.so", "E:/Go/Algo/lpa.yml", requestConfig)
if err != nil {
println(err)
}
if graph.Status.ErrorCode == 0 {
println("Installation succeeds")
} else {
println("Installation failed")
};