本文将介绍通过向量检索版Python SDK客户端将数据实时同步到向量检索版的实例中,支持的推送操作有:add、delete。
add 操作示例
# -*- coding: utf-8 -*-
from alibabacloud_ha3engine import models, client
from Tea.exceptions import TeaException, RetryError
Config = models.Config(
endpoint="<API域名>", # // API域名,可在实例详情页>API入口 查看(需要去掉http://前缀)
instance_id="<实例id>", # // 实例id,可在实例详情页左上角查看,例:ha-cn-i7*****605
protocol="http",
access_user_name="<用户名>", # // 用户名,可在实例详情页>API入口 查看
access_pass_word="<用户名密码>" # // 用户名密码,可在实例详情页>API入口 修改
)
# 初始化 引擎客户端
ha3EngineClient = client.Client(Config)
def push():
# 文档推送的数据源配置名称,可在实例管理>配置中心>数据源配置 查看.
dataSourceName = "<数据源名称>"
try:
# 添加文档
# 添加一篇文档,如果文档已经存在会先删除然后再添加。
# =====================================================
# 更新文档内容信息
add2DocumentFields = {
"id": 1, # 主键id,INT单值类型
"name": "搜索", # STRING单值类型
"str_arr": "a\x1Db\x1Dc\x1Dd" # STRING多值类型
}
# 将文档内容添入 add2Document结构
add2Document = {
"fields": add2DocumentFields,
"cmd": "add" # 新增对应的文档命令: add
}
optionsHeaders = {}
# 文档推送外层结构, 可添加对文档操作的结构体.结构内支持 一个或多个文档操作内容.
documentArrayList = []
documentArrayList.append(add2Document)
pushDocumentsRequestModel = models.PushDocumentsRequestModel(optionsHeaders, documentArrayList)
# 文档推送的文档主键字段.
pkField = "id"
# 使用默认 运行时参数进行请求
responseModel = ha3EngineClient.push_documents(dataSourceName, pkField, pushDocumentsRequestModel)
print(responseModel.body)
print(responseModel.body)
except TeaException as e:
print(f"send request with TeaException : {e}")
except RetryError as e:
print(f"send request with Connection Exception : {e}")
if __name__ == "__main__":
push()
delete 操作示例
# -*- coding: utf-8 -*-
from alibabacloud_ha3engine import models, client
from alibabacloud_tea_util import models as util_models
from Tea.exceptions import TeaException, RetryError
Config = models.Config(
endpoint="<API域名>", # // API域名,可在实例详情页>API入口 查看(需要去掉http://前缀)
instance_id="<实例id>", # // 实例id,可在实例详情页左上角查看,例:ha-cn-i7*****605
protocol="http",
access_user_name="<用户名>", # // 用户名,可在实例详情页>API入口 查看
access_pass_word="<用户名密码>", # // 用户名密码,可在实例详情页>API入口 修改
)
# 初始化 引擎客户端
ha3EngineClient = client.Client(Config)
def pushDoc():
# 文档推送的数据源配置名称,可在实例管理>配置中心>数据源配置 查看.
tableName = "<数据源名称>"
try:
# 文档推送外层结构, 可添加对文档操作的结构体.结构内支持 一个或多个文档操作内容.
documentArrayList = []
# 删除文档
# 删除一篇文档,删除文档时需要指定文档主键
# 如果索引构建时采用多级hash方式,需要指定每级hash的主键。
delete2DocumentFields = {
"id": 1 # 主键id,INT单值类型
}
delete2Document = {
"id": 1 # field_pk 字段需与 pkField 字段配置一致.
"fields": delete2DocumentFields, # 将文档内容添如 delete2Document 结构.
"cmd": "delete" # 删除对应的文档命令: delete
}
optionsHeaders = {}
documentArrayList.append(delete2Document)
pushDocumentsRequestModel = models.PushDocumentsRequestModel(
optionsHeaders, documentArrayList
)
# 文档推送的文档主键字段.
pkField = "id"
# 使用默认 运行时参数进行请求
responseModel = ha3EngineClient.push_documents(
tableName, pkField, pushDocumentsRequestModel
)
print(responseModel)
print(responseModel)
except TeaException as e:
print(f"send request with TeaException : {e}")
except RetryError as e:
print(f"send request with Connection Exception : {e}")
if __name__ == "__main__":
pushDoc()
文档内容是否对您有帮助?