1. 参数
1.1. 入参
参数名称 | 参数类型 | 是否必填 | 参数描述 |
action | String | 是 | api名称,待定 |
serviceId | Long | 是 | 服务id |
conditions | Object | 是 | 更新条件,相当于es更新api的body,符合es的参数格式 |
{
"serviceId": 1,
"conditions": {
"query": {
"term": {
"id": 1
}
},
"script": {
"source": "ctx._source.content = '测试内容1-修改1'"
}
}
}
1.2. 出参
参数名称 | 参数类型 | 参数描述 | ||
code | Integer | 错误码 | ||
success | Boolean | 是否成功 | ||
requestId | String | 请求id | ||
msg | String | 响应信息 | ||
data | Object | 响应内容 |
{
"code": 200,
"data": null,
"success": true,
"msg": null,
"requestId": "4117446A-308C-4CA6-B265-39F4A96C30B5"
}
2. SDK调用
2.1. Java SDK
2.1.1. Maven依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alinlp20200629</artifactId>
<version>2.2.0</version>
</dependency>
2.1.2. 调用示例
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
Config config = new Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// Endpoint 请参考 https://api.aliyun.com/product/alinlp
config.endpoint = "alinlp.cn-beijing.aliyuncs.com";
return new Client(config);
}
public static void main(String[] args_) throws Exception {
UpdateServiceData();
}
public static void UpdateServiceData() throws Exception {
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
Client client = createClient(AccessConstant.AK3, AccessConstant.SK3);
Map<String, JSONObject> conditions = new HashMap<>();
conditions.put("query", JSON.parseObject("{\"term\":{\"id\":1}}"));
conditions.put("script", JSON.parseObject("{\"source\":\"ctx._source.content = '测试内容1-修改2'\"}"));
UpdateServiceDataRequest requset = new UpdateServiceDataRequest()
.setServiceId(1L).setConditions(conditions);
try {
UpdateServiceDataResponse response = client.updateServiceData(requset);
System.out.println(JSON.toJSONString(response.getBody(), SerializerFeature.PrettyFormat));
} catch (Exception e) {
e.printStackTrace();
}
}
2.2. Python SDK
2.2.1. pip源
pip install aliyun-python-sdk-alinlp==1.0.23
pip install aliyun-python-sdk-core
2.2.2. 调用示例
from aliyunsdkalinlp.request.v20200629 import UpdateServiceDataRequest
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import AccessKeyCredential
import os
os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] = 'xxxx'
os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] = 'xxxx'
def update_service_data():
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
client = AcsClient(region_id='cn-beijing', credential=credentials)
request = UpdateServiceDataRequest.UpdateServiceDataRequest()
request.set_service_id(1)
request.set_conditions(json.loads("{\"serviceId\":1,\"conditions\":{\"query\":{\"term\":{\"id\":1}},\"script\":{\"source\":\"ctx._source.content = '测试内容1-修改1'\"}}}"))
request.set_accept_format('json')
response = client.do_action_with_exception(request)
# python2: print(response)
print(str(response, encoding='utf-8'))
if __name__ == '__main__':
update_service_data()
文档内容是否对您有帮助?