更新时间:2023-11-21 GMT+08:00
分享

搜索数据示例

本章节对搜索数据AK/SK方式使用SDK进行示例说明。

搜索示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用SearchParam类的ImageUrl、SearchType、OptionalParams、Keywords、CustomTags配置服务输入参数,其中OptionalParams为服务可选输入参数,配置完成后运行即可。

  1. 搜索数据调用示例代码如下:
    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)
        }
    }
  2. 执行示例代码文件,控制台输出搜索数据结果即表示程序执行成功。
    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"
                    }
                ]
            }
        }
    }

相关文档