Cette section introduit des méthodes sur un objet Connection
pour la gestion des algorithmes de graph Ultipa et des algorithmes personnalisés (EXTA) dans l'instance.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.
Algorithmes de Graph Ultipa
ShowAlgo()
Récupère tous les algorithmes de graph Ultipa installés dans l'instance.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Algo>
: La liste de tous les algorithmes récupérés.
// Récupère tous les algorithmes de graph Ultipa installés et affiche les informations du premier retourné
var res = await ultipa.ShowAlgo();
Console.WriteLine(JsonConvert.SerializeObject(res[0].Params));
"{\"name\":\"louvain\",\"description\":\"louvain\",\"version\":\"1.0.4\",\"parameters\":{\"edge_schema_property\":\"optinal,default 1 for each edge if absent\",\"phase1_loop_num\":\"size_t,required\",\"min_modularity_increase\":\"float,required\",\"limit\":\"optional,-1 for all results, >=0 partial results\",\"order\":\"optional, asc or desc, case_unsensitive, only work for 'community:id/count' mode\"},\"write_to_db_parameters\":{\"property\":\"set write back property name for each schema and nodes\"},\"write_to_file_parameters\":{\"filename1\":\"id1:community\",\"filename2\":\"community1: id1,id2...\",\"filename3\":\"community1: count\"},\"write_to_stats_parameters\":{\"enable\":\"0:no stats, 1:enable stats(count of communities)\"},\"write_to_client_normal_parameters\":{\"mode\":\"1:<id1:community> 2:<community1:count>\"},\"write_to_client_stream_parameters\":{\"mode\":\"1:<id1:community> 2:<community1:count>\"},\"result_opt\":\"59\"}"
InstallAlgo()
Installe un algorithme de graph Ultipa dans l'instance.
Paramètres :
string
: Chemin du fichier du package d'installation de l'algo (.so).string
: Chemin du fichier de configuration (.yml).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
InstallAlgoReply
: Résultat de la requête.
// Installe l'algorithme LPA et utilise le node leader pour garantir la cohérence, et affiche le code d'erreur
RequestConfig requestConfig = new RequestConfig() { UseMaster = true };
var res = await ultipa.InstallAlgo(
"E:/Algo/libplugin_lpa.so",
"E:/Algo/lpa.yml",
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
Success
UninstallAlgo()
Désinstalle un algorithme de graph Ultipa dans l'instance.
Paramètres :
string
: Nom de l'algorithme.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
UninstallAlgoReply
: Résultat de la requête.
// Désinstalle l'algorithme LPA et affiche le code d'erreur
var res = ultipa.UninstallAlgo("lpa");
Console.WriteLine(res.Status.ErrorCode);
Success
EXTA
ShowExta()
Récupère tous les extas installés dans l'instance.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Exta>
: La liste de tous les extas récupérés.
// Récupère tous les extas installés et affiche les informations du premier retourné
var res = await ultipa.ShowExta();
Console.WriteLine(JsonConvert.SerializeObject(res[0]));
{"Author":"wuchuang","Name":"page_rank","Version":"beta.4.4.41-b4.4.0-tv-ui","Detail":"base:\r\n category: ExtaExample\r\n cn:\r\n name: page_rank\r\n desc: null\r\n en:\r\n name: page_rank\r\n desc: null\r\n\r\nother_param:\r\n\r\n \r\nparam_form:\r\n\r\nwrite:\r\n\r\nreturn:\r\n\r\nmedia:\r\n"}
InstallExta()
Installe un exta dans l'instance.
Paramètres :
string
: Chemin du fichier du package d'installation de l'exta (.so).string
: Chemin du fichier de configuration (.yml).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
InstallExtaReply
: Résultat de la requête.
// Installe l'exta page_rank et utilise le node leader pour garantir la cohérence, et affiche le code d'erreur
RequestConfig requestConfig = new RequestConfig() { UseMaster = true };
var res = await ultipa.InstallExta(
"E:/Exta/libexta_page_rank.so",
"E:/Exta/page_rank.yml",
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
Success
UninstallExta()
Désinstalle un exta dans l'instance.
Paramètres :
string
: Nom de l'exta.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
UninstallExtaReply
: Résultat de la requête.
// Désinstalle l'exta page_rank et affiche le code d'erreur
var res = ultipa.UninstallExta("page_rank");
Console.WriteLine(res.Status.ErrorCode);
Success
Exemple Complet
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Xml.Linq;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using UltipaService;
using UltipaSharp;
using UltipaSharp.api;
using UltipaSharp.configuration;
using UltipaSharp.connection;
using UltipaSharp.exceptions;
using UltipaSharp.structs;
using UltipaSharp.utils;
using Logger = UltipaSharp.utils.Logger;
using Property = UltipaSharp.structs.Property;
using Schema = UltipaSharp.structs.Schema;
class Program
{
static async Task Main(string[] args)
{
// Configuration de la connexion
//Exemple d'URI: Hosts=new[]{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
var myconfig = new UltipaConfig()
{
Hosts = new[] { "192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061" },
Username = "***",
Password = "***",
};
// Établit la connexion à la base de données
var ultipa = new Ultipa(myconfig);
var isSuccess = ultipa.Test();
Console.WriteLine(isSuccess);
// Configuration des requêtes
RequestConfig requestConfig = new RequestConfig() { UseMaster = true };
// Installe l'algorithme LPA
var res = await ultipa.InstallAlgo(
"E:/Algo/libplugin_lpa.so",
"E:/Algo/lpa.yml",
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
}
}