更新时间:2023-11-21 GMT+08:00
搜索数据示例
本章节对搜索数据AK/SK方式使用SDK进行示例说明。
搜索示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用SearchParam类的ImageUrl、SearchType、OptionalParams、Keywords、CustomTags配置服务输入参数,其中OptionalParams为服务可选输入参数,配置完成后运行即可。
- 搜索数据调用示例代码如下:
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" imagesearch "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/imagesearch/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/imagesearch/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") iamEndpoint := "https://iam.cn-north-4.myhuaweicloud.com" endpoint := "https://mms.cn-north-4.myhuaweicloud.com" projectId := "project_id" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithIamEndpointOverride(iamEndpoint). WithProjectId(projectId). Build() // 初始化客户端 client := imagesearch.NewImageSearchClient( imagesearch.ImageSearchClientBuilder(). // 设置region, 示例中为北京四 WithRegion(region.NewRegion("cn-north-4", endpoint)). WithCredential(auth). Build()) request := &model.RunSearchRequest{} request.ServiceName = "service_name" doDetOptionalParams:= true boxOptionalParams:= "135,489,1117,1341" doClsOptionalParams:= true optionalParamsbody := &model.SearchOptionalParam{ DoDet: &doDetOptionalParams, Box: &boxOptionalParams, DoCls: &doClsOptionalParams, } var listCustomTagsCustomTags = []string{ "value1", "value2", "value3", } var listCustomTagsbody = map[string][]string{ "key": listCustomTagsCustomTags, } // 替换为公网可以访问的图片地址 imageUrlSearchParam:= "https://bucketname.obs.cn-north-4.myhuaweicloud.com/image/test1.jpg " offsetSearchParam:= int32(0) limitSearchParam:= int32(30) request.Body = &model.SearchParam{ OptionalParams: optionalParamsbody, ImageUrl: &imageUrlSearchParam, CustomTags: listCustomTagsbody, Offset: &offsetSearchParam, Limit: &limitSearchParam, SearchType: model.GetSearchParamSearchTypeEnum().CATEGORY, } response, err := client.RunSearch(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
- 执行示例代码文件,控制台输出搜索数据结果即表示程序执行成功。
RunSearchResponse { "result": "success", "data": { "items": [ { "id": "item_id", "score": 1.0, "source": { "custom_tags": { "key": "value" } } } ], "search_info": { "total_num": 1, "return_num": 1, "search_time": 969 }, "image_info": { "box": "135,489,1117,1341", "category": 0, "category_name": "others", "objects": [ { "box": "135,489,1117,1341", "category": 0, "category_name": "others" } ] } } }
父主题: 使用SDK(GO)