Amazon Kendra のメタデータの配置場所について教えてください

2023.08.31

困っていた内容

社内ドキュメントの検索性向上のために Amazon Kendra の検証を実施しています。
検索においてフィルターを使用したいのでメタデータを付与したいのですが、メタデータファイルの配置場所に制約があれば教えてください。

どう対応すればいいの?

バケット単位であれば、メタデータファイルはメタデータ付与対象のオブジェクトと同じバケットに保存する必要があります。
メタデータのプレフィックスを指定した場合はバケット内の別のフォルダにメタデータファイルを配置することも可能です。

Your metadata files must be stored in the same bucket as your indexed files. You can specify a location within the bucket for your metadata files using the console or the S3Prefix field of the DocumentsMetadataConfiguration parameter when you create an Amazon S3 data source. If you don't specify an Amazon S3 prefix, your metadata files must be stored in the same location as your indexed documents.

AWS 公式ドキュメントより

メタデータファイルの命名規則に関する注意点

  • メタデータファイル名には、メタデータ付与対象のオブジェクト名にサフィックス .metadata.json を付与する必要がある
    例えば、test.txt というファイルにメタデータを付与する場合、test.txt.metadata.json というメタデータファイル名にする必要があります。
    命名規則に従わない場合にはメタデータが付与されません。

  • メタデータファイル名はプレフィックスも含めて 1024 文字以下にする必要がある
    例えば、s3://bucketName/documents/file.txt.metadata.json という文字列を 1024 文字以下にする必要があります。
    1024 文字の制限を考慮してメタデータ付与対象のオブジェクト名は 1000 文字未満にすることが推奨されています。

Amazon Note that the document's Amazon S3 key is appended to the metadata's Amazon S3 prefix and then suffixed with .metadata.json to form the metadata file's Amazon S3 path. The combined Amazon S3 key, with the metadata's Amazon S3 prefix and .metadata.json suffix must be no more than a total of 1024 characters. It is recommended that you keep your Amazon S3 key below 1000 characters to account for addtional characters when combining your key with the prefix and suffix.

AWS 公式ドキュメントより

余談

Amazon Kendra はあまり馴染みのないサービスだと思います。
私も触ったことがないサービスだったので上記仕様の検証のために AWS 公式のワークショップを実施しました。

ワークショップの内容自体は非常に分かりやすくて勉強になったのですが、料金には注意する必要があります。
Amazon Kendra では「Developer Edition」と「Enterprise Edition」を選択できるのですが、「Developer Edition」でも 1 時間あたり 1.125 USD の料金が発生します。

私は検証のために約 30 時間利用したので 1 日ちょっとで 30 USD 以上の料金が発生しました。
そのため、ワークショップを試す際には料金にご注意ください。

参考資料