事前準備

OSS データソースの追加
-
OpenSearch コンソールにログインし、左上隅から OpenSearch Retrieval Engine Edition を選択し、[インスタンス] ページで対象のインスタンスを見つけ、[操作] 列の [管理] をクリックします。
-
データソースを設定します。
左側のナビゲーションウィンドウで、[設定センター] > [データソース] に移動し、[データソースの追加] をクリックします。表示されたパネルで [OSS] を選択し、[データソース名]、[OSS パス]、[バケット] を入力してから、[検証] をクリックします。
パラメーター:
-
データソース名:データソースのカスタム名です。名前は文字で始まる必要があり、文字、数字、アンダースコア (_) を含めることができます。
-
OSS パス:OSS 内のオブジェクトにアクセスするために使用されるパスです。
-
バケット:OSS バケットの名前です。
-
ディレクトリ名には opensearch を含める必要があり、等号 (=)、アンパサンド (&)、疑問符 (?) などの特殊文字を含めることはできません。そうでない場合、データを読み取ることができません。
-
OSS パスを取得するには、作成したバケットに移動し、[ディレクトリの作成] をクリックして、新しいディレクトリのパスをコピーします。このトピックでは、例として /opensearch_index_data/ を使用します。
-
バケット名を確認するには、OSS コンソールに移動し、作成したバケットを見つけます。
-
インデックステーブルの作成:
-
OSS データソースを作成した後、[設定センター] > [インデックススキーマ] を選択し、[インデックステーブルの作成] をクリックします。
-
設定ページで、カスタムの [インデックステーブル名] を入力し、作成した OSS データソースを選択します。
-
フィールド設定で、2 つのフィールドを追加します。まず、STRING 型の pk フィールドを追加し、それをプライマリキーとして設定し、その分析メソッドを uniq に設定します。次に、FLOAT 型の embeddings フィールドを追加し、複数値を有効にし、^] をデリミタとして使用し、その分析メソッドを uniq に設定します。インデックス設定で、2 つのインデックスを追加します。pk フィールドを含む PRIMARYKEY64 型の pk インデックスと、pk,embeddings フィールドを含む CUSTOMIZED 型の vector インデックスです。
この例では、pk フィールドと embeddings フィールドが設定されています。サンプルデータについては、「oss_test.txt」をご参照ください。
CMD=add
pk=999000
embeddings=0.00.0039257140.0098142860.0039257140.00
pk=999000
embeddings=0.00.0039257140
インデックススキーマで必須のデータ形式の詳細については、「ファイル形式」セクションをご参照ください。
-
インデックスの再作成の開始:左側のナビゲーションウィンドウで、[O&M センター] > [O&M 管理] を選択し、[インデックスの再作成] をクリックします。
[インデックスの再作成] パネルで、作成した OSS データソースの [データソース名] を選択します。[データソースタイプ] と [関連インデックステーブル] を確認します。[タイムスタンプ] を設定し、[OK] をクリックします。インデックスの再作成が完了すると、新しい完全なインデックスバージョンが生成されます。新しいバージョンに切り替えて有効化します。
インデックスの再作成が完了したら、クエリテストを実行できます。
HA ファイル形式
データファイルは UTF-8 でエンコーディングされ、特定の構造に従う必要があります。このセクションでは、標準の入力形式の概要を説明します。
-
次の例は、standard_sample.data という名前のデータファイルの内容を示しています:
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_
データファイルは、add や delete などのコマンドで構成されます。各コマンドは、キーと値のペアのセットです。コマンドの区切りには ^^\n を、コマンド内のキーと値のペアの区切りには ^_\n を、複数値フィールドの値の区切りには ^] を使用します。
-
ファイルデリミタ
|
C++ エンコーディング |
ASCII (16進数) |
説明 |
Emacs/vi での表示 |
Emacs での入力メソッド |
vi での入力メソッド |
|
"\x1F\n" |
1F0A |
キーと値のペアのデリミタ |
^_ (改行が続く) |
C-q C-7 |
C-v C-7 |
|
"\x1E\n" |
1E0A |
コマンドデリミタ |
^^ (改行が続く) |
C-q C-6 |
C-v C-6 |
|
"\x1D" |
1D |
複数値デリミタ |
^] |
C-q C-5 |
C-v C-5 |
|
"\x1C" |
1C |
セクションの重み識別子 |
^\ |
C-q C-4 |
C-v C-4 |
|
"\x1D" |
1D |
複数値項目のデリミタ |
^] |
C-q C-5 |
C-v C-5 |
|
"\x03" |
03 |
サブドキュメントのフィールドデリミタ |
^C |
C-q C-c |
C-v C-c |
-
コマンド形式
-
add コマンドの形式
add コマンドは、インデックスに新しいコンテンツを追加します。
add コマンドの最初の行は CMD=add である必要があります。この行の後には、ドキュメントのフィールドが続きます。コマンド内のフィールドの順序は、インデックススキーマ内の順序と一致する必要はありません。ただし、使用されるすべてのフィールドはインデックススキーマで定義されている必要があります。
-
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
-
delete コマンドの形式
delete コマンドは、指定されたドキュメントをインデックスから削除します。
最初の行は CMD=delete である必要があり、その後にインデックススキーマでプライマリキーとして定義されたフィールドを指定する行が続きます。
パーティションのハッシュ化に別のフィールドが使用される場合は、そのフィールドも含まれる必要があります。プライマリキーフィールドがパーティションのハッシュ化にも使用される場合は、一度だけ指定すれば十分です。
CMD=delete^_
PK=12345321^_
^^CMD=delete^_
PK=12345321^_
^^
OSS データソースの削除
[データソース] ページで、削除したいデータソースを見つけ、[操作] 列の [削除] をクリックします。
重要:
-
この操作は元に戻せません。注意して進めてください。
確認ダイアログボックスが表示されます。[確認] をクリックして続行します。
-
データソースがインデックステーブルに関連付けられている間は、削除できません。データソースを削除する前に、インデックステーブルを削除する必要があります。
注意事項
-
OSS サービスは、ご利用の OpenSearch Retrieval Engine Edition インスタンスと同じリージョンにある必要があります。
-
OpenSearch Retrieval Engine Edition は、Anywhere OSS バケットをサポートしていません。
-
OSS データソースを追加すると、AliyunServiceRoleForSearchEngine という名前のサービスリンクロールが自動的に作成されます。このロールが既に存在する場合、再度作成されることはありません。OpenSearch はこのロールを使用して、他の Alibaba Cloud サービスのリソースにアクセスします。