配置環境變數
配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
重要
阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運,具體操作,請參見建立RAM使用者。
建立AccessKey ID和AccessKey Secret,請參考建立AccessKey。
如果您使用的是RAM使用者的AccessKey,請確保主帳號已授權AliyunServiceRoleForOpenSearch服務關聯角色,請參考OpenSearch-行業演算法版服務關聯角色,相關文檔參考訪問鑒權規則。
請不要將AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
Linux和macOS系統配置方法:
執行以下命令,其中,
<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系統配置方法
建立環境變數檔案,添加環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET,並寫入已準備好的AccessKey ID和AccessKey Secret。
重啟Windows系統生效。
V4.0.0 SDK 下拉式清單搜尋範例代碼
package com.example.opensearch;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.SuggestionClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.nio.charset.Charset;
public class SuggestDemo {
static private final String host = "填入下拉提示關聯應用所在地區的host";
OpenSearch openSearch;
OpenSearchClient openSearchClient;
static private final byte hits = 8; //最大返回下拉提示的條數
static private final String suggestionName = "填入下拉提示名稱"; //填入下拉提示模型名稱
@Before
public void setUp() {
//使用者識別資訊
//從環境變數讀取配置的AccessKey ID和AccessKey Secret,運行程式碼範例前必須先配置環境變數
String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
//初始化openSearch對象
openSearch = new OpenSearch(accesskey, secret, host);
openSearchClient = new OpenSearchClient(openSearch);
}
@Test
public void TestEnv() {
//查看檔案和預設編碼格式
System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
//建立下拉提示對象
SuggestionClient suggestionClient = new SuggestionClient(suggestionName, openSearchClient);
String query = "填入查詢詞";
try {
SuggestParams suggestParams = new SuggestParams();
suggestParams.setQuery(query); //設定查詢詞
suggestParams.setHits(hits); //設定最大返回下拉提示的條數
suggestParams.setUserId("12345678"); //設定user_id
//“中文同音別字”補全召回功能已預設生效,可以在請求中添加參數re_search進行調整
//ReSearch.findByValue(1)表示禁用;ReSearch.findByValue(0)或者不傳該參數表示開啟
suggestParams.setReSearch(ReSearch.findByValue(1));
SearchResult result = suggestionClient.execute(suggestParams);
System.out.println(result); //列印召回的結果
} catch (OpenSearchException e) {
e.printStackTrace();
} catch (OpenSearchClientException e) {
e.printStackTrace();
}
}
@After
public void clean() {
openSearch.clear();
}
}