1. クライアントのクエリ

クエリを作成する

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

クエリクライアントを使用して クエリを作成し 、次のいずれかのクエリを実行したり、結果を反復処理したりできます。

クエリ結果の表示

クエリを実行すると、IQueryResultが返されます。この結果には、次のプロパティがあります。

  • Items - クエリに一致したエンティティ/ID (合計結果のサブセットにすることができます)。

  • TotalNumberOfResults - Sitecore Content Hubでクエリに一致したアイテムの数 (すべてがItemsにあるわけではない場合でも)。

  • Offset - スキップされた項目の数。

1つのエンティティのクエリ

クエリが1つのエンティティのみに一致することが確実な場合は、SingleAsyncメソッドを使用できます。

IEntity entity = await MClient.Querying.SingleAsync(query);
警告

複数の項目がクエリに一致すると、InvalidOperationExceptionがスローされます。

1つのエンティティIDのクエリ

クエリが1つのエンティティのみに一致することが確実な場合は、SingleIdAsyncメソッドを使用できます。

long? entityId = await MClient.Querying.SingleIdAsync(query);
警告

複数の項目がクエリに一致すると、InvalidOperationExceptionがスローされます。

1つまたは複数のエンティティのクエリ

1つ以上のエンティティをクエリするには:

IEntityQueryResult queryResult = await MClient.Querying.QueryAsync(query);

IEntityQueryResult.Itemsには、返されたエンティティが含まれています。

1つまたは複数のエンティティIDのクエリ

1つ以上のエンティティIDをクエリするには:

IIdQueryResult queryResult = await MClient.Querying.QueryIdsAsync(query);

IIdQueryResult.Itemsには、返されたID (long形式) が含まれています。

クエリ結果エンティティの反復処理

クエリが小さいサイズから中程度のサイズの結果を返す場合 (既定の構成は最大10.000の結果)、反復子を使用してエンティティを簡単にバッチ処理できます。

次のコード スニペットでは、反復子が作成されます。

IEntityIterator iterator = MClient.Querying.CreateEntityIterator(query);

次のコード スニペットでは、イテレータを使用してエンティティをバッチ処理しています。

while (await iterator.MoveNextAsync())
{
  var entities = iterator.Current.Items;
  // Do something with the entities
}

whileループは、イテレータがエンティティのすべてのバッチの処理を完了すると自動的に終了します。

警告

イテレータが設定された結果の最大数を超えると、サーバは例外をスローします。この場合、巻物が必要です。

クエリ結果エンティティIDの反復処理

クエリが小さいサイズから中程度のサイズの結果を返す場合 (既定の構成は最大10.000の結果)、イテレータを使用してエンティティIDを簡単にバッチ処理できます。

次のコード スニペットでは、反復子が作成されます。

IIdIterator iterator = MClient.Querying.CreateIdIterator(query);

次のコード スニペットでは、反復子を使用してエンティティIDをバッチ処理します。

while (await iterator.MoveNextAsync())
{
  var ids = iterator.Current.Items;
  // Do something with the ids
}

whileループは、イテレータがエンティティのすべてのバッチの処理を完了すると自動的に終了します。

警告

イテレータが設定された結果の最大数を超えると、サーバは例外をスローします。その場合は巻物が必要です。

非推奨のメモ

Queryクラスでは、EntityLoadOptionsプロパティとLoadConfigurationプロパティを設定することができます。最初のプロパティは古いWebApiClient SDKで使用され、3.0で非推奨になりました。3.1では、Queryクラスと負荷構成が分離されました。これらのプロパティは使用せず、クエリ オブジェクトを渡すときに負荷構成を追加パラメーターとして渡すことをお勧めします (該当する場合)。

この記事を改善するための提案がある場合は、 お知らせください!