メイン コンテンツをスキップする 補完的コンテンツへスキップ

ベクターの組み込みを使用してMilvusコレクションをクエリする

次のジョブは、Milvusベクターデータベースに接続し、製品の埋め込みデータを挿入し、ベクター類似度検索を使用して類似製品を取得する方法を示しています。

始める前に

このシナリオでは、Milvusベクターデータベースの機能を利用して、ベクターの組み込みを保存および検索します。詳細は、Milvusドキュメンテーションを参照してください。Milvusインスタンス(ローカルまたはクラウド)へのアクセス権と、有効な認証トークンが必要です。

コンポーネントのリンク

手順

  1. [パレット]から、tPrejobtJavatMilvusConnectiontFixedFlowInputtMilvusOutput、2つのtLogRowtMilvusInputtLogRowのコンポーネントをドラッグ&ドロップします。
  2. Trigger > On Component Ok接続を使用してtPrejobtJavaに接続します。
  3. Trigger > On Subjob Ok接続を使用してtJavatMilvusConnectionに接続します。
  4. Row > Main接続を使用して、tFixedFlowInputを最初のtLogRowに接続します。
  5. Row > FLOW接続を使用してtLogRowtMilvusOutputに接続します。
  6. Row > Main接続を使用して、tMilvusInputを2つめのtLogRowに接続します。
    コンポーネントの接続が表示されているStudioでのジョブの概要。

コンポーネントを設定

手順

  1. tPrejobコンポーネントをダブルクリックして、[コンポーネント]ビューを開きます。
    このコンポーネントは、ジョブの実行を初期化するために使用されます。このシナリオでは、このコンポーネントに追加の設定は必要ありません。
  2. tJavaコンポーネントをダブルクリックして、[コンポーネント]ビューを開きます。
    [基本設定]ビューで、ジョブに必要な初期化コードを入力します。このシナリオでは、この部分を空欄のままにするか、ジョブの実行状況を追跡するためのログ記録ステートメントを追加することができます。例:
            java.util.List<Float> vector1 = new java.util.ArrayList(512);
            java.util.Random random = new java.util.Random();
            for (int i = 0; i < 512; i++) {
                vector1.add(random.nextFloat());
            }
            globalMap.put("vector1", vector1);
            
            
            java.util.List<Float> vector2 = new java.util.ArrayList(5);
            for (int i = 0; i < 5; i++) {
                vector2.add(random.nextFloat());
            }
            globalMap.put("vector2", vector2);
  3. tMilvusConnectionコンポーネントをダブルクリックして、[コンポーネント]ビューを開きます。
  4. [基本設定]ビューで、Milvusインスタンスへの接続を設定します。
    • エンドポイントフィールドに、MilvusサーバーのURLを入力します。例: ローカルインスタンスの場合はhttp://localhost:19530、クラウド環境の場合はクラウドエンドポイントのURLを入力します。
    • [トークン]フィールドで、[...]ボタンをクリックし、Milvus認証トークンを入力します。
    • [データベース]フィールドに、データベース名を入力します。
  5. [tFixedFlowInput]コンポーネントをダブルクリックして、[コンポーネント]ビューを表示します。
  6. [基本設定]ビューで、Milvusに挿入する固定データを設定します。
    [スキーマを編集]をクリックし、次の列を使用してスキーマを定義します。
    • id (Long)
    • bool (Boolean)
    • int8 (Integer)
    • int16 (Integer)
    • int32 (Integer)
    • int64 (Long)
    • _float (Float)
    • _double (Double)
    • varchar (String)
    • json (Object)
    • array_int (List)
    • array_str (List)
    • float_vector (List) - 埋め込みを表す浮動小数点値の配列
    [モード]エリアで[インラインテーブルを使用]を選択し、[+]ボタンをクリックして、各カラムに適切な値を持つサンプルレコードを追加します。例:
    id | 4L
    bool | false
    int8 | 2 
    int16 | 3
    int32 | 5
    int64 | 6L
    _float | 0.34f
    _double | 0.34567
    varchar | "dsfdsf"
    json | "{\"id\":5}"
    array_int | null
    array_str | null
    float_vector | (List)globalMap.get("vector1")
    インラインデータが表示されているtFixedFlowInputコンポーネントの設定画面の基本設定ビュー。
  7. 最初のtLogRowコンポーネントをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
    [Sync column] (カラムを同期)をクリックし、前のコンポーネントからスキーマを取得します。
    [モード]エリアで[テーブル]を選択すると、挿入されたレコードがテーブル形式でコンソールに表示されます。
  8. tMilvusOutputコンポーネントをダブルクリックして、[コンポーネント]ビューを開きます。
  9. [基本設定]ビューで、コレクションと操作を設定します。
    • [既存の接続を使用]チェックボックスを選択し、tMilvusConnection_1コンポーネントを選択します。
    • [Sync column] (カラムを同期)をクリックし、前のコンポーネントからスキーマを取得します。
    • [コレクション]フィールドで、コレクション名を選択または入力します。
    • [操作]リストで、[挿入]を選択します。
    コレクションと挿入操作が表示されているtMilvusOutput設定の基本設定ビュー。
  10. tMilvusInputコンポーネントをダブルクリックして、[コンポーネント]ビューを開きます。
  11. [基本設定]ビューで、検索操作を設定します。
    • [既存の接続を使用]チェックボックスを選択し、tMilvusConnection_1コンポーネントを選択します。
    • [スキーマを編集]をクリックし、コレクションの構造に一致する出力スキーマを定義します。例:
      • id (Long)
      • vector (List)
    • [コレクション]フィールドで、ベクターの組み込みが含まれているコレクションの名前を選択または入力します。
    • [操作]リストで、[SEARCH]を選択します。
    • [クエリーベクター]フィールドに、以前作成したグローバル変数をクエリーベクターとして入力します。例: (List)globalMap.get("vector2")
    • [フィルター]フィールドを空のままにして、すべてのレコードを検索します。
    • [制限]フィールドに「5」と入力すると、類似する上位5件のレコードが取得されます。
    クエリーベクターを使用した検索操作が表示されている、tMilvusInputコンポーネントの設定画面の基本設定ビュー。
  12. tMilvusInputの[詳細設定]ビューで、[コレクションをメモリにロード]チェックボックスを選択すると、最適な検索パフォーマンスが確保されます。
  13. 2番目のtLogRowコンポーネントをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
    [Sync column] (カラムを同期)をクリックし、前のコンポーネントからスキーマを取得します。
    [モード]エリアで[テーブル]を選択すると、検索結果がテーブル形式でコンソールに表示されます。

ジョブを実行

手順

  1. Ctrl + Sを押してジョブを保存します。
  2. F6を押して実行します。

タスクの結果

このジョブはMilvusデータベースに接続し、固定データレコードをコレクションに挿入してコンソールに表示した後、指定されたクエリーベクターを使用してベクター類似性検索を実行し、もっとも類似性の高い上位5件のレコードを表示します。これは、Milvusにおけるベクターの組み込みの保存と取得の完全なワークフローを示しています。

ベクター類似度に基づいた類似製品の挿入と取得が成功したことが表示されている、実行コンソール。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。