Javaのドキュメントによると
ただし、インデックス検索で検索できる一致するドキュメントは 10,000 件までです。非常に大きな結果セットを取得する必要があるアプリケーションには、App Engine データストアの方が適している場合があります。
私はそれを一般的なユースケースとは考えていませんが。
より現実的には、データストアを使用すると、エンティティをキーで取得する方がはるかに安価になります (おそらく高速でもあります)。検索 API を使用すると、Index.get() を使用して ID でドキュメントを検索するか、ID をフィールドに格納してそのフィールドを検索することで ID を複製できます。
費用の内訳は次のとおりです。
- Index.get(): $0.10 / 10,000 or 0.00001 per get
- Index.search(): $0.13 / 10,000 or 0.000013 per get
- Datastore get(): $0.06 / 100,000 or 0.0000006 per get
ご覧のとおり、Datastore の get は Search API オプションよりもはるかに低コストです (Index.get() の 16 倍の低コスト)。
直接取得を多く使用し、複雑な検索をほとんど使用しないようにデータが構造化されている場合、データストアは明らかにコスト面で優れています。
注: Index.search() メソッドを使用して重複データを保存するための追加コストは含めませんでした。これは、保存するエンティティの数に依存するためです。