検索フィルタ用のオブジェクト・ストレージ・ファイルへのメタデータの追加

オブジェクト・ストレージ・ファイルにメタデータを追加してから、ベクトル・ストアに同期できます。メタデータは、セマンティック検索およびハイブリッド検索で関連する属性によって結果をフィルタできるようにすることで、取得の改善に役立ちます。

たとえば、パブリケーション年、タイトル、トピック、部門、製品領域、ドキュメント・タイプなどのメタデータを追加できます。ファイルの同期後、これらのメタデータ・フィールドを使用して、検索結果を特定のコンテンツ・スコープに絞り込むことができます。

メタデータはオプションです。ただし、検索フィルタにメタデータを使用できるようにする場合は、データ同期を実行する前にメタデータを追加または更新してください。同期後に追加されたメタデータは、データ同期を再度実行しないかぎり、その同期には含まれません。

このトピックは、オブジェクト・ストレージから非構造化データを同期するベクトル・ストアに適用されます。

ノート

データ同期を実行する前に、メタデータを追加または更新します。同期後に追加されたメタデータは、その同期に含まれません。

メタデータの仕組み

メタデータはキーと値のペアとして定義されます。オブジェクト・ストレージ・ファイルでメタデータを使用するには、最初にスキーマ・ファイルでメタデータ・フィールドを定義します。次に、バケット内のファイルをメタデータ値に関連付けます。

すべてのオブジェクト・ストレージ・メタデータ・メソッドについて、オブジェクト・ストレージ・バケットのルート・レベルで_metadata_schema.jsonという名前のメタデータ・スキーマ・ファイルを作成する必要があります。スキーマは、サービスが期待できるメタデータ・キーと各キーの値タイプを定義します。

_metadata_schema.jsonファイルが存在しない場合、バケット内のファイルのメタデータは計算されません。

各メタデータ・フィールドには、名前とタイプがあります。サポートされているメタデータ・タイプは次のとおりです。

  • integer
  • string
  • list_of_string
  • double

ワークフローの概要

ファイルをベクトル・ストアに同期する前にメタデータを準備するには、次のワークフローを使用します:

  1. テキスト・エディタで、_metadata_schema.jsonという名前のメタデータ・スキーマ・ファイルを作成します。
  2. メタデータ・フィールドおよび値タイプをJSON形式で定義します。
  3. _metadata_schema.jsonを、同期するファイルを含むオブジェクト・ストレージ・バケットのルート・レベルにアップロードします。
  4. メタデータ値とファイルを関連付ける方法を選択します。
    • バケット内のすべてのファイルに共通メタデータを適用します。
    • 1つのJSONファイルで複数のファイルのメタデータを定義します。
    • データ・ファイルごとに個別のJSONファイルにメタデータを定義します。
    • オブジェクト・ストレージのメタデータ・プロパティを使用してメタデータを追加します。
  5. オブジェクト・ストレージ・バケット内の正しい場所にメタデータ・ファイルをアップロードします。
  6. ベクトル・ストアのデータ同期を実行します。

メタデータ・スキーマの例

_metadata_schema.jsonという名前のメタデータ・スキーマ・ファイルを作成し、オブジェクト・ストレージ・バケットのルート・レベルで保存します。

{
  "metadataSchema": [
    {
      "name": "publication_year",
      "type": "integer"
    },
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "topic",
      "type": "list_of_string"
    },
    {
      "name": "rating",
      "type": "double"
    }
  ]
}

メタデータ・ファイルで使用するメタデータ名は、スキーマで定義された名前と一致する必要があります。

オブジェクト・ストレージ・ファイルのメタデータ・メソッド

次の表に、各メタデータ・ファイルまたはヘッダーを作成する場所や各メソッドを使用するタイミングなど、オブジェクト・ストレージのファイルにメタデータを追加するためにサポートされている方法を示します。

メソッド ファイル名と保存先 使用するタイミング
メタデータ・スキーマの定義 Object Storageバケットのルート・レベルで_metadata_schema.jsonを作成します。 すべてのオブジェクト・ストレージ・メタデータ・ファイル・メソッドに必要です。スキーマは、サポートされているメタデータ・キーおよび値タイプを定義します。
バケット内のすべてのファイルに共通メタデータを適用します Object Storageバケットのルート・レベルで_common.metadata.jsonを作成します。 バケット内のすべてのファイルに同じメタデータが適用される場合に使用します。この方法では、ファイル間でメタデータが重複しないようにします。
1つのJSONファイルで複数のファイルのメタデータを定義します Object Storageバケットのルート・レベルで_all.metadata.jsonを作成します。 多数のファイルがあり、ファイルごとに1つのメタデータ・ファイルを作成するのではなく、1つのJSONファイル内のすべてのファイルのメタデータを管理する場合に使用します。
1つのファイルのメタデータの定義 対応するデータ・ファイルと同じレベルで<file-name>.metadata.jsonを作成します。<file-name>値は、データファイルの名前と一致する必要があります。 メタデータがファイルによって異なり、ファイル数が少ない場合、またはメタデータ・ファイルの作成を自動化する場合に使用します。
オブジェクト・ストレージ・ヘッダーとしてのメタデータの追加 各ファイルのオブジェクト・ストレージ・メタデータ・プロパティを使用してメタデータを追加します。 メタデータ・プロパティの数が少ない場合にのみ使用します。JSONメタデータ・ファイルは、更新と管理が容易であるため、推奨されます。

メタデータ・ファイルの場所の例

次の例は、オブジェクト・ストレージ・バケット内のメタデータ・ファイルを保存する場所を示しています。

bucket_root/
  _metadata_schema.json
  _common.metadata.json
  _all.metadata.json
  file_0.pdf
  file_0.pdf.metadata.json
  folder_1/
    file_1.pdf
    file_1.pdf.metadata.json
  folder_2/
    file_2.pdf
    file_2.pdf.metadata.json

ファイル固有のメタデータの場合は、メタデータ・ファイルを対応するデータ・ファイルと同じレベルで保存する必要があります。

たとえば、データ・ファイルを次のように保存します。

folder_1/file_1.pdf

メタデータ・ファイルを次のように保存する必要があります。

folder_1/file_1.pdf.metadata.json

メタデータJSONファイルの例

すべてのファイルの共通メタデータ

バケットのルート・レベルで_common.metadata.jsonを作成し、バケット内のすべてのファイルに同じメタデータを適用します。

例:

{
  "metadataAttributes": {
    "publication_year": 2020,
    "topic": [
      "cooking",
      "health",
      "gardening"
    ],
    "rating": 3.3
  }
}

複数のファイルのメタデータ

1つのJSONファイルで複数のファイルのメタデータを定義するには、バケットのルート・レベルで_all.metadata.jsonを作成します。

例:

{
  "folder_1/file_1.pdf": {
    "metadataAttributes": {
      "publication_year": 2020,
      "title": "Healthy Cooking Guide",
      "topic": [
        "cooking",
        "health"
      ],
      "rating": 4.5
    }
  },
  "folder_2/file_2.pdf": {
    "metadataAttributes": {
      "publication_year": 2022,
      "title": "Gardening Basics",
      "topic": [
        "gardening"
      ],
      "rating": 4.0
    }
  }
}

1つのファイルのメタデータ

対応するデータ・ファイルと同じレベルで<file-name>.metadata.jsonを作成します。

たとえば、file_1.pdfのメタデータを定義するには、file_1.pdf.metadata.jsonという名前のファイルを作成します。

例:

{
  "metadataAttributes": {
    "publication_year": 2020,
    "title": "Healthy Cooking Guide",
    "topic": [
      "cooking",
      "health"
    ],
    "rating": 4.5
  }
}

メタデータ制限

検索フィルタリングに使用されるメタデータには、次の制限が適用されます。

摘要 制限
_all.metadata.jsonの最大エントリ数 10,000
ファイルごとに指定できるメタデータ・フィールドの最大数 20
list_of_string型の最大アイテム数 10
list_of_string型の各アイテムの最大長 50文字
メタデータ・キーの最大長 25文字
メタデータ値の最大長 50文字

データ同期でのメタデータの使用

データをベクトル・ストアに同期する前に、メタデータ・スキーマおよびメタデータ・ファイルを追加します。

ファイルの同期後、メタデータは検索フィルタリングに使用できます。同期後にメタデータを追加または変更する場合は、更新されたメタデータがベクトル・ストアに含まれるようにデータ同期を再度実行します。

オブジェクト・ストレージからファイルを同期するには、ベクトル・ストアへのデータの同期を参照してください。