搜索Demo(基本)

配置环境变量

配置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET

重要
  • 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维,具体操作,请参见创建RAM用户

  • 创建AccessKey ID和AccessKey Secret,请参考创建AccessKey

  • 如果您使用的是RAM用户的AccessKey,请确保主账号已授权AliyunServiceRoleForOpenSearch服务关联角色,请参考OpenSearch-行业算法版服务关联角色,相关文档参考访问鉴权规则

  • 请不要将AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

  • LinuxmacOS系统配置方法:

    执行以下命令,其中, <access_key_id>需替换为您RAM用户的AccessKey ID,<access_key_secret>替换为您RAM用户的AccessKey Secret。

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> 
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
  • Windows系统配置方法

    1. 新建环境变量文件,添加环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并写入已准备好的AccessKey ID和AccessKey Secret。

    2. 重启Windows系统生效。

代码示例

// This file is auto-generated, don't edit it. Thanks.
package main

import (
    "fmt"
    util "github.com/alibabacloud-go/tea-utils/service"
    "github.com/alibabacloud-go/tea/tea"
    opensearch "main/client"
)

func main() {

    // 创建请求用客户端实例
    // Endpoint 为 要访问服务的区域域名.
    // AccessKeyId 及AccessKeySecret 用于构造鉴权信息.
    config := &opensearch.Config{
        Endpoint:         tea.String("<Endpoint>"),
      
        // 用户识别信息
        // 从环境变量读取配置的AccessKey ID和AccessKey Secret,
        // 运行代码示例前必须先配置环境变量,参考文档上面“配置环境变量”步骤
        // 替换对应的access key id
        AccessKeyId:     tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
        AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
    }

    // New  一个client, 用以发送请求.
    client, _clientErr := opensearch.NewClient(config)

    // 如果 NewClient 过程中出现异常. 则 返回 _clientErr 且输出 错误信息.
    if _clientErr != nil {
        fmt.Println(_clientErr)
        return
    }

    // requestParams 信息 
    requestParams := map[string]interface{}{
        "query":"config=start:0,hit:50,format:fulljson&&query=default:'<words>'",
        "second_rank_name":"<rank_name>",
        "first_rank_name": "<rank_name>",
      	// 设置搜索结果飘红摘要信息summary如下:
				"summary": "summary_field:description,summary_ellipsis:...,summary_snipped:1,summary_len:50,summary_element_prefix:<abc>,summary_element_postfix:</abc>",
		
    }

    // 请求发送的配置参数. 用以请求配置及连接池配置.
    runtime := &util.RuntimeOptions{
        ConnectTimeout: tea.Int(5000),
        ReadTimeout:    tea.Int(10000),
        Autoretry:      tea.Bool(false),
        IgnoreSSL:      tea.Bool(false),
        MaxIdleConns:   tea.Int(50),
    }

    // 搜索接口需要提供 appName.
    // App 可以是 app 的版本信息. 也可以是 app 名称.
    appName := "<appName>"

    // 发送请求的方法调用.
    response, _requestErr := client.Request(
        tea.String("GET"),
        tea.String("/v3/openapi/apps/"+appName+"/search"),
        requestParams,
        nil,
        nil,
        runtime)

    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }

    // 输出正常返回的 response 内容.
    fmt.Println(response)
}