SearchItems
Economy v2 が一般提供 (GA) されました。サポートとフィードバックについては、PlayFab フォーラム を参照してください。
SearchItems API は、指定された検索パラメーターを使用して公開カタログに対する検索を実行し、アイテムのページ分割されたリストを返します。
もっとも基本的な形では、Search パラメーターは Title、Description、Keywords、および Searchable String Display Properties フィールドに対するプレーンテキストのあいまい検索です。ただし Filter、OrderBy、および Select は、検索パラメーターを変更するために使用できる OData クエリの拡張です。検索結果は、検索ドキュメント内の任意のフィールド (Title と Description を除く) でフィルターおよび並べ替えできます。
OData クエリ構文の詳細については、こちら を参照してください。
SearchItems リクエストの例:
継続トークン
検索レスポンスから返されるContinuationToken フィールドは、複数の結果件数をページングするために検索リクエストに渡すことができます。
表示プロパティ
検索、フィルター、および並べ替えは、カスタム検索用に構成された特定のDisplayProperties フィールドに対しても行うことができます。タイトルは、Game Manager の Display Properties Mappings 設定 でカスタム検索およびフィルターのプロパティを構成できます。

DisplayProperties にフィールドを追加すると、データベースに新しいインデックスが作成されます。インデックス作成後に追加または更新されたドキュメントのみが対象となります。表示プロパティをすべてのアイテムに適用する必要がある場合は、カタログ全体を再公開する必要があります。
DateTime、Double、Queryable String の表示プロパティは クエリ可能 で、これらのプロパティは Filter および OrderBy ステートメントで使用できます。
Searchable String 表示プロパティは 検索可能 で、これらのプロパティは Search フィールドに対するあいまい検索でクエリされます。検索可能なプロパティは、Filter および OrderBy ステートメントでは使用できません。
タイトルは、各種類につき 5 つの表示プロパティに制限されています。
Filter
Filter パラメーターを使用すると、検索リクエストによって返されるアイテムのコレクションをフィルタリングできます。filter で指定された式は結果内の各カタログ アイテムに対して評価され、式が “true” と評価されるアイテムのみが含まれます。 Filter は OData の論理演算子と、括弧を使用した優先順位をサポートします。- Equal: ‘eq’
- Not Equal: ‘ne’
- Greater Than: ‘gt’
- Greater than or Equal: ‘ge’
- Less than: ‘lt’
- Less than or Equal: ‘le’
- Logical And: ‘and’
- Logical Or: ‘or’
- Logical Negation ‘not’
ContentType によるフィルタリング
結合を用いたフィルタリング
null 値を用いたフィルタリング
OData はフィルタリング用にnull 型をサポートしています。
Creator ID によるフィルタリング
特定の作成者でフィルタリングするには、title_player_account!<ID> という構文を使用します。
配列フィールドによるフィルタリング
Filter は、配列に対するフィルタリング用にany() もサポートしています。例: alternateIds/any(a: a/value eq 'StoreOfferId')
配列と null チェックを用いたフィルタリング
以下のフィルターは、contents フィールドに null 以外の値を持つ任意のアイテムをチェックします。デフォルトでは、Search は Select ステートメントで指定されない限りアイテムの contents を 返しません。上記のクエリを
"Select": "contents" ステートメントなしで実行すると、フィルターは正しく適用されますが、返されるすべての Search 結果の contents フィールドは空になります。表示プロパティによるフィルタリング
フィルタリングは、クエリ可能な 表示プロパティでのみ実行できます。OrderBy
OrderBy は、検索結果を並べ替えるために使用されるカンマ区切りのリストです。
OrderBy は並べ替えのためにいくつかの OData プロパティをサポートしています。
ascdesc
asc では最初に、desc では最後に表示されます。OrderBy の値が渡されなかった場合、デフォルトの id asc が使用されます。
以下は OrderBy の例です。
Title による並べ替え
title/<LANG> パラメーターに asc または desc を組み合わせて、並び順を指定します。
NEUTRAL を使用します。
表示プロパティによる並べ替え
並べ替えは、クエリ可能な 表示プロパティでのみ実行できます。Select
デフォルトでは、Search は次の豊富なアイテム メタデータを返します。IdTypeAlternateIdsTitle(NEUTRAL またはLanguageロケール)Description(NEUTRAL またはLanguageロケール)Keywords(NEUTRAL またはLanguageロケール)ContentTypeImages(Thumbnail のみ)TagsCreationDateLastModifiedDateCreatorEntityKey(以前の API バージョンではCreatorId)DisplayPropertiesItemReferences
Select を使用すると、コンテンツ メタデータ (contents)、images、StartDate、EndDate、および title と description のローカライズされた文字列のフル セットを含む、追加のフィールドをページ分割された検索結果内でオプションで返すことができます。select フィールドが空のままの場合、検索結果は読み込み時間を高速化するために、完全なドキュメント メタデータのサブセットになります。
このリクエストは、デフォルトのアイテム メタデータ に加えて contents と images も返します。
title、description、keywords を選択すると、ローカライズされた文字列データの完全なセットが返されます。
ローカライゼーション
Language パラメーターにロケールを渡すことができます。ロケールを渡すと、すべての Title、Description、Keywords フィールドがデフォルトでそのロケールを返し、アイテムにそのローカライズが存在しない場合は NEUTRAL を返します。
Language パラメーターを使用した SearchItems リクエストの例は、このページの先頭 にあります。
ローカライゼーションの詳細については、ローカライゼーション を参照してください。
制限
検索フィルター クエリの複雑さは、リクエストごとに制限されます。負荷の高いクエリは拒否される可能性があり、タイトルは過度に複雑なクエリを試みないようにする必要があります。以下は最大の複雑さに近いクエリの例です。"The filter provided in the request does not meet the complexity requirements for source" というメッセージを含む 400 エラーをスローします。
ストアの検索
渡すことができるプロパティの 1 つがStore パラメーターです。これにより、ストアのコンテキスト内で検索できます。特定のストアにアイテムが存在するかどうかを確認できるだけでなく、そのストアのアイテム/コンテンツの上書きされた価格を表示するためにも使用できます。ストアの AlternateId を使用して検索することもできます。ストアの使用の詳細については、こちら を参照してください。
