本节为您介绍如何使用Connection
对象的方法管理属性的LTE状态、索引和全文索引。这些机制可用来 加速查询。
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
LTE
Lte()
将点或边的一个自定义属性加载到嬴图高性能图计算引擎以加速查询。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称,使用*
表示所有schema。string
:属性名称。RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 将图集UltipaTeam的边属性@relatesTo.type加载到计算引擎并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "UltipaTeam",
}
resp, _ := conn.Lte(ultipa.DBType_DBEDGE, "relatesTo", "type", requestConfig)
print("Operation succeeds:", resp.Status.IsSuccess())
Operation succeeds:true
Ufe()
将点或边的一个自定义属性从嬴图高性能图计算引擎卸载以节省内存。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称,使用*
表示所有schema。string
:属性名称。RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 将图集UltipaTeam的边属性@relatesTo.type从计算引擎卸载并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "UltipaTeam",
}
resp, _ := conn.Ufe(ultipa.DBType_DBEDGE, "relatesTo", "type", requestConfig)
print("Operation succeeds:", resp.Status.IsSuccess())
Operation succeeds:true
Index
ShowIndex()
获取当前图集全部点和边的属性索引。
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集Ad_Click的属性索引并打印其信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "Ad_Click",
}
indexList, err := conn.ShowIndex(requestConfig)
if err != nil {
println(err)
}
for i := 0; i < len(indexList); i++ {
println(utils.JSONString(indexList[i]))
}
{"Name":"shopping_level","Properties":"shopping_level","Schema":"user","Status":"done","Size":4608287,"Type":"node"}
{"Name":"price","Properties":"price","Schema":"ad","Status":"done","Size":7828760,"Type":"node"}
{"Name":"time","Properties":"time","Schema":"clicks","Status":"done","Size":12811267,"Type":"edge"}
ShowNodeIndex()
获取当前图集全部点属性索引。
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集Ad_Click的点属性索引并打印其信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "Ad_Click",
}
indexList, err := conn.ShowNodeIndex(requestConfig)
if err != nil {
println(err)
}
for i := 0; i < len(indexList); i++ {
println(utils.JSONString(indexList[i]))
}
{"Name":"shopping_level","Properties":"shopping_level","Schema":"user","Status":"done","Size":4608287,"Type":"node"}
{"Name":"price","Properties":"price","Schema":"ad","Status":"done","Size":7828760,"Type":"node"}
ShowEdgeIndex()
获取当前图集全部边属性索引。
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集Ad_Click的边属性索引并打印其信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "Ad_Click",
}
indexList, err := conn.ShowEdgeIndex(requestConfig)
if err != nil {
println(err)
}
for i := 0; i < len(indexList); i++ {
println(utils.JSONString(indexList[i]))
}
{"Name":"time","Properties":"time","Schema":"clicks","Status":"done","Size":12811267,"Type":"edge"}
CreateIndex()
在当前图集创建一个新索引。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称,使用*
表示所有schema。string
:属性名称。RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 在图集Ad_Click为全部点属性name新建索引并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "Ad_Click",
}
indexList, err := conn.CreateIndex(ultipa.DBType_DBNODE, "*", "name", requestConfig)
if err != nil {
println(err)
}
println("Operation succeeds:", indexList.Status.IsSuccess())
Operation succeeds: true
DropIndex()
删除当前图集的索引。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称。string
:属性名称。RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 删除图集Ad_Click中点属性@ad.name的索引并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "Ad_Click",
}
indexList, err := conn.DropIndex(ultipa.DBType_DBNODE, "ad", "name", requestConfig)
if err != nil {
println(err)
}
println("Operation succeeds:", indexList.Status.IsSuccess())
Operation succeeds: true
Full-text
ShowFullText()
获取当前图集的全部全文点索引和全文边索引。
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集miniCircle的第一个全文索引并打印其信息。
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "miniCircle",
}
indexList, err := conn.ShowFullText(requestConfig)
if err != nil {
println(err)
}
println(utils.JSONString(indexList[0]))
{"Name":"genreFull","Properties":"genre","Schema":"movie","Status":"done","Size":0,"Type":""}
ShowNodeFullText()
获取当前图集中所有点属性全文索引
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集miniCircle的第一个点属性全文索引并打印其信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "miniCircle",
}
indexList, err := conn.ShowNodeFullText(requestConfig)
if err != nil {
println(err)
}
println(utils.JSONString(indexList[0]))
{"Name":"genreFull","Properties":"genre","Schema":"movie","Status":"done","Size":0,"Type":""}
ShowEdgeFullText()
获取当前图集中所有边属性全文索引
参数:
RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
[]Index
:从当前图集获取到的全部边属性索引列表。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 获取图集miniCircle的第一个全文边属性全文索引并打印其信息
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "miniCircle",
}
indexList, err := conn.ShowEdgeFullText(requestConfig)
if err != nil {
println(err)
}
println(utils.JSONString(indexList[0]))
{"Name":"nameFull","Properties":"content","Schema":"review","Status":"done","Size":0,"Type":""}
CreateFullText()
在当前图集创建一个全文索引。
参数:
DBType
:属性类型(点属性或边属性)。string
:schema名称。string
:属性名称。string
: Name of the full-text index.RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 在图集miniCircle中为属性@movie.name新建名为movieName的全文索引并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "miniCircle",
}
indexList, err := conn.CreateFullText(ultipa.DBType_DBNODE, "movie", "name", "movieName", requestConfig)
if err != nil {
println(err)
}
println("Operation succeeds:", indexList.Status.IsSuccess())
Operation succeeds: true
DropFullText()
删除当前图集的一个全文索引。
参数:
string
:全文索引名称。DBType
:属性类型(点属性或边属性)。RequestConfig
(可选):配置请求,如果填入nil
,则使用默认的配置。
返回值:
Response
:请求的结果。error
:一个包含发生问题详细信息的错误对象。如果操作成功,将返回nil
。
// 删除图集miniCircle的全文点索引movieName并打印错误代码
requestConfig := &configuration.RequestConfig{
UseMaster: true,
GraphName: "miniCircle",
}
indexList, err := conn.DropFullText("movieName", ultipa.DBType_DBNODE, requestConfig)
if err != nil {
println(err)
}
println("Operation succeeds:", indexList.Status.IsSuccess())
Operation succeeds: true
完整示例
package main
import (
ultipa "github.com/ultipa/ultipa-go-sdk/rpc"
"github.com/ultipa/ultipa-go-sdk/sdk"
"github.com/ultipa/ultipa-go-sdk/sdk/configuration"
"github.com/ultipa/ultipa-go-sdk/sdk/structs"
"github.com/ultipa/ultipa-go-sdk/utils"
)
func main() {
// 配置连接
// URI 示例: hosts="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,
GraphName: "Ad_Click",
}
// 获取图集Ad_Click的全部索引并打印其信息
indexList, err := conn.ShowIndex(requestConfig)
if err != nil {
println(err)
}
for i := 0; i < len(indexList); i++ {
println(utils.JSONString(indexList[i]))
}
};