本节为您介绍如何使用Connection
对象的方法管理属性的LTE状态、索引和全文索引。这些机制可用来加速查询.
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
LTE
lte()
将点或边的一个自定义属性加载到嬴图高性能图计算引擎以加速查询。
参数:
DBType
:属性类型(点属性或边属性)。string
(可选):schema名称;输入 * 表示指定所有schema。string
: 属性名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 将图集UltipaTeam的边属性@relatesTo.type加载到计算引擎并打印错误代码
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.Lte(DBType.Dbedge, "relatesTo", "type", requestConfig);
Console.WriteLine(res.Status.ErrorCode);
Thread.Sleep(3000);
var prop = await ultipa.GetEdgeProperty("relatesTo", "type", requestConfig);
Console.WriteLine("LTE status of the property: " + prop.Lte);
Success
LTE status of the property: True
ufe()
将点或边的一个自定义属性从嬴图高性能图计算引擎卸载以节省内存。
参数:
DBType
:属性类型(点属性或边属性)。string
(可选):schema名称;输入 * 表示指定所有schema。string
: 属性名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 将图集UltipaTeam的边属性@relatesTo.type从计算引擎卸载并打印错误代码和LTE状态
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.Ufe(DBType.Dbedge, "relatesTo", "type", requestConfig);
Console.WriteLine(res.Status.ErrorCode);
Thread.Sleep(3000);
var prop = await ultipa.GetEdgeProperty("relatesTo", "type", requestConfig);
Console.WriteLine("LTE status of the property: " + prop.Lte);
Success
LTE status of the property: False
Index
ShowIndex()
获取当前图集全部点和边的属性索引。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的全部边属性索引列表。
// 获取图集Ad_Click的属性索引并打印其信息
RequestConfig requestConfig = new RequestConfig() { Graph = "Ad_Click", UseMaster = true };
var res = await ultipa.ShowIndex(requestConfig);
foreach (var item in res)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
{"Schema":"user","Name":"shopping_level","Properties":"shopping_level","Status":"done","size":"4608315"}
{"Schema":"ad","Name":"price","Properties":"price","Status":"done","size":"7828488"}
{"Schema":"clicks","Name":"time","Properties":"time","Status":"done","size":"12809771"}
ShowNodeIndex()
获取当前图集全部点属性索引。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的全部边属性索引列表。
// 获取图集Ad_Click的点属性索引并打印其信息
RequestConfig requestConfig = new RequestConfig() { Graph = "Ad_Click", UseMaster = true };
var res = await ultipa.ShowNodeIndex(requestConfig);
foreach (var item in res)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
{"Schema":"user","Name":"shopping_level","Properties":"shopping_level","Status":"done","size":"4608315"}
{"Schema":"ad","Name":"price","Properties":"price","Status":"done","size":"7828488"}
ShowEdgeIndex()
获取当前图集全部边属性索引。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的全部边属性索引列表。
// 获取图集Ad_Click的边属性索引并打印其信息
RequestConfig requestConfig = new RequestConfig() { Graph = "Ad_Click", UseMaster = true };
var res = await ultipa.ShowEdgeIndex(requestConfig);
foreach (var item in res)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
{"Schema":"clicks","Name":"time","Properties":"time","Status":"done","size":"12809771"}
CreateIndex()
在当前图集创建一个新索引。
参数:
DBType
:属性类型(点属性或边属性)。string
(可选):schema名称。string
: 属性名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 在图集Ad_Click为全部点属性name新建索引并打印错误代码
RequestConfig requestConfig = new RequestConfig() { Graph = "Ad_Click", UseMaster = true };
var res = await ultipa.CreateIndex(DBType.Dbnode, "name", requestConfig);
Console.WriteLine(res.Status.ErrorCode);
Success
DropIndex()
删除当前图集的索引。
参数:
DBType
:属性类型(点属性或边属性)。string
(可选):schema名称。string
: 属性名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 删除图集Ad_Click中点属性@ad.name的索引并打印错误代码
RequestConfig requestConfig = new RequestConfig() { Graph = "Ad_Click", UseMaster = true };
var res = await ultipa.DropIndex(DBType.Dbnode, "ad", "name", requestConfig);
Console.WriteLine(res.Status.ErrorCode);
Success
Full-text
ShowFulltext()
获取当前图集的全部全文点索引和全文边索引。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的全部边属性索引列表。
// 获取图集miniCircle的第一个全文索引并打印其信息。
RequestConfig requestConfig = new RequestConfig() { Graph = "miniCircle" };
var res = await ultipa.ShowFulltext(requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res[0]));
{"Schema":"movie","Name":"genreFull","Properties":"genre","Status":"done","size":null}
ShowNodeFulltext()
获取当前图集中所有点属性全文索引
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的所有点属性全文索引列表。
// 获取图集miniCircle的第一个点属性全文索引并打印其信息
RequestConfig requestConfig = new RequestConfig() { Graph = "miniCircle" };
var res = await ultipa.ShowNodeFulltext(requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res[0]));
{"Schema":"movie","Name":"genreFull","Properties":"genre","Status":"done","size":null}
ShowEdgeFulltext()
获取当前图集中所有边属性全文索引
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Index>
:从当前图集获取到的全部边属性全文索引列表。
// 获取图集miniCircle的第一个全文边属性全文索引并打印其信息
RequestConfig requestConfig = new RequestConfig() { Graph = "miniCircle" };
var res = await ultipa.ShowEdgeFulltext(requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res[0]));
{"Schema":"review","Name":"nameFull","Properties":"content","Status":"done","size":null}
CreateFulltext()
在当前图集创建一个全文索引。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称。string
:属性名称。string
:全文索引名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 在图集miniCircle中为属性@movie.name新建名为movieName的全文索引并打印错误代码
RequestConfig requestConfig = new RequestConfig() { Graph = "miniCircle" };
var res = await ultipa.CreateFulltext(
DBType.Dbnode,
"movie",
"name",
"movieName",
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
Success
DropFulltext()
删除当前图集的一个全文索引。
参数:
DBType
:属性类型(点属性或边属性)。string
:全文索引名称。RequestConfig
(可选):配置请求。
返回值:
UqlResponse
:请求的结果。
// 删除图集miniCircle的全文点索引movieName并打印错误代码
RequestConfig requestConfig = new RequestConfig() { Graph = "miniCircle" };
var res = await ultipa.DropFulltext(DBType.Dbnode, "movieName", requestConfig);
Console.WriteLine(res.Status.ErrorCode);
Success
完整示例
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)
{
// 配置连接
//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 = "***",
};
// 建立与数据库的连接
var ultipa = new Ultipa(myconfig);
var isSuccess = ultipa.Test();
Console.WriteLine(isSuccess);
// 配置请求
RequestConfig requestConfig = new RequestConfig()
{
Graph = "Ad_Click",
UseMaster = true,
};
// 获取图集Ad_Click的全部索引并打印其信息
var res = await ultipa.ShowIndex(requestConfig);
foreach (var item in res)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
}
}