環境変数の設定
環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET を設定します。
Alibaba Cloud アカウントの AccessKey ペアを使用すると、すべての API 操作にアクセスできます。 API 操作の呼び出しや日常の O&M の実行には、Resource Access Management (RAM) ユーザーを使用することをお勧めします。 RAM ユーザーの使用方法については、「RAM ユーザーの作成」をご参照ください。
AccessKey ペアの作成方法については、「AccessKey ペアの作成」をご参照ください。
RAM ユーザーの AccessKey ペアを使用する場合は、Alibaba Cloud アカウントを使用して、必要な権限が AliyunServiceRoleForOpenSearch ロールに付与されていることを確認してください。 詳細については、「AliyunServiceRoleForOpenSearch」および「アクセス認証ルール」をご参照ください。
プロジェクトコードなど、他の人が簡単にアクセスできる資料に AccessKey ペアを含めないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースが安全でなくなる可能性があります。
Linux および macOS
次のコマンドを実行します。
<access_key_id>および<access_key_secret>を、使用する RAM ユーザーの AccessKey ID と AccessKey シークレットに置き換えます。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 シークレットにセットします。
AccessKey ペアを有効にするには、Windows を再起動します。
ドロップダウンリスト検索のサンプル
この例では、次のパラメータを独自のパラメータに置き換えます。
host: インスタンスのパブリック API エンドポイントに置き換えます。 インスタンスリスト に移動 > インスタンスの [詳細] をクリック > [エンドポイント] > [パブリック API エンドポイント] を取得します。
[suggestionName]: ドロップダウンモデル名に置き換えます。 [検索アルゴリズムセンター] > [検索ガイダンス] > ドロップダウン検索候補 に移動して取得します。
appName: インスタンス名に置き換えます。 インスタンスリスト に移動して表示します。
query: 検索キーワードに置き換えます。
SDK バージョン 4.0.0 以上
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 = "検索候補の関連アプリケーションが配置されているリージョンのホストを入力します"; // 検索候補の関連アプリケーションが配置されているリージョンのホストを入力します
OpenSearch openSearch;
OpenSearchClient openSearchClient;
static private final byte hits = 8; // 返す検索候補の最大数
static private final String suggestionName = "検索候補モデル名を入力します"; // 検索候補モデル名を入力します
static private final String appName = "インスタンス名";
@Before
public void setUp() {
// AccessKey ペア。
// 環境変数から AccessKey ID と AccessKey シークレットを取得します。このコードを実行する前に、環境変数を設定する必要があります。
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(appName,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();
}
}SDK バージョン 4.0.0 未満
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 = "検索候補の関連アプリケーションが配置されているリージョンのホストを入力します"; // 検索候補の関連アプリケーションが配置されているリージョンのホストを入力します
OpenSearch openSearch;
OpenSearchClient openSearchClient;
static private final byte hits = 8; // 返す検索候補の最大数
static private final String suggestionName = "検索候補モデル名を入力します"; // 検索候補モデル名を入力します
@Before
public void setUp() {
// AccessKey ペア。
// 環境変数から AccessKey ID と AccessKey シークレットを取得します。このコードを実行する前に、環境変数を設定する必要があります。
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();
}
}