-1

名前が特徴の Web サーバーにたくさんの画像があります。すべてのファイルは複数のカテゴリに属し、全員がカテゴリ グループに属します。例えば:

group_fruit = ["apple", "banana", "pear"];
group_color = ["red", "blue", "yellow"];
group_origin = ["Italy", "France", "Portugal"];

a blue apple from Italy will be 00_01_00_uniqueid.jpg

カテゴリを探して画像を見つけたい場合 (たとえば、フランスやポルトガルの青または黄色の梨が欲しい場合)、ファイルリストで簡単な方法でファイルを探すことができます。問題は、一度に100 アイテムのファイルリストしかダウンロードできないことを考えると、多数のカテゴリ グループ (たとえば 10) とそれぞれに多数のカテゴリ (つまり 10) がある場合です。そのような場合、10^10 の可能な回答を生成するクエリを作成できます (最悪の場合)。

ただし、最悪の場合に近いものは管理が難しいため、次のように進めます。

最初の 5 つのグループのカテゴリを使用して名前を付けた xml ファイルをいくつか作成し、そのカテゴリと残りのグループの他の 5 つのカテゴリを含む画像の数を保存します。例えば

01_00_03_00_04.xml contains:
    01_00_03_00_04_00_02_04_05_07 = 3
    01_00_03_00_04_04_04_03_00_08 = 12
    01_00_03_00_04_05_08_09_01_02 = 5

つまり、たとえば、01_00_03_00_04_04_04_03_00_08 カテゴリの画像が 12 個あるということです。このようにして、特定の特性を探している場合、探している特性の最初の 5 つのグループと互換性のある xml をダウンロードし、すべての xml を検索して、考えられるすべての組み合わせの結果があるかどうかを確認できます。カテゴリ。最悪の場合、10^5 xml でそれぞれ 10^5 カテゴリを検索します。

すべてのファイルで 1 つの大きな xml を使用するソリューションは、大きすぎてダウンロードできない (大きな遅延) ため、適用できません。すべての可能なカテゴリの組み合わせのリストをダウンロードするソリューションは、遅すぎます (結果のない組み合わせがいくつかある可能性があるため、ユーザーは最初の結果を表示するのに時間がかかりすぎると予想します)。これが、私が中間的な解決策を採用する理由です。

データベースを使用するのが最善の方法であることはわかっていますが、安価なサーバーに過負荷をかけないように、クライアント側のソリューションを見つけたいと考えています。

編集: 質問は: より効率的なアプローチについて何か考えはありますか?

お待ちいただいてありがとうございます

4

1 に答える 1