搜索Demo(基本)
配置環(huán)境變量
配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維,具體操作,請參見創(chuàng)建RAM用戶。
創(chuàng)建AccessKey ID和AccessKey Secret,請參考創(chuàng)建AccessKey。
如果您使用的是RAM用戶的AccessKey,請確保主賬號已授權(quán)AliyunServiceRoleForOpenSearch服務(wù)關(guān)聯(lián)角色,請參考OpenSearch-行業(yè)算法版服務(wù)關(guān)聯(lián)角色,相關(guān)文檔參考訪問鑒權(quán)規(guī)則。
請不要將AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號下所有資源的安全。
Linux和macOS系統(tǒng)配置方法:
執(zhí)行以下命令,其中,
<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系統(tǒng)配置方法
新建環(huán)境變量文件,添加環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET,并寫入已準(zhǔn)備好的AccessKey ID和AccessKey Secret。
重啟Windows系統(tǒng)生效。
代碼示例
// 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() {
// 創(chuàng)建請求用客戶端實例
// Endpoint 為 要訪問服務(wù)的區(qū)域域名.
// AccessKeyId 及AccessKeySecret 用于構(gòu)造鑒權(quán)信息.
config := &opensearch.Config{
Endpoint: tea.String("<Endpoint>"),
// 用戶識別信息
// 從環(huán)境變量讀取配置的AccessKey ID和AccessKey Secret,
// 運行代碼示例前必須先配置環(huán)境變量,參考文檔上面“配置環(huán)境變量”步驟
// 替換對應(yīng)的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, 用以發(fā)送請求.
client, _clientErr := opensearch.NewClient(config)
// 如果 NewClient 過程中出現(xiàn)異常. 則 返回 _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>",
// 設(shè)置搜索結(jié)果飄紅摘要信息summary如下:
"summary": "summary_field:description,summary_ellipsis:...,summary_snipped:1,summary_len:50,summary_element_prefix:<abc>,summary_element_postfix:</abc>",
}
// 請求發(fā)送的配置參數(shù). 用以請求配置及連接池配置.
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>"
// 發(fā)送請求的方法調(diào)用.
response, _requestErr := client.Request(
tea.String("GET"),
tea.String("/v3/openapi/apps/"+appName+"/search"),
requestParams,
nil,
nil,
runtime)
// 如果 發(fā)送請求 過程中出現(xiàn)異常. 則 返回 _requestErr 且輸出 錯誤信息.
if _requestErr != nil {
fmt.Println(_requestErr)
return
}
// 輸出正常返回的 response 內(nèi)容.
fmt.Println(response)
}