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

SearchAfterQueryクエリを作成する

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

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

SearchAfterQueryクエリを使用して、Sitecore Content Hub内の特定のエンティティを検索できます。SearchAfterQuery自体はエンティティをクエリするのではなく、クエリ条件を記述します。クエリの実行を担当するのはクエリクライアントであり、定義されたSearchAfterQueryクエリが必要です。SearchAfterQueryオブジェクトは、次のパラメーターをサポートします。

  • Filter - 呼び出されるフィルターのタイプ。

  • Take - 取得するエンティティの数。

  • Sorting - 適用する並べ替えオプション。

  • LoadConfiguration - 適用する負荷構成。

  • SearchAfter - 結果の次のページを取得するためのソート値のリスト。

  • Renditions - 適用するレンディション。

  • NestedRelations - 適用されるネストされたリレーション。

クエリ フィルター

このQueryFilterBuilderを使用して、次の例に示すようにフィルターを作成します。

定義名によるクエリ

次の例では、定義名でクエリを実行します。

var filter = QueryFilterBuilder.Definition.Name == "M.Asset";

定義IDによるクエリ

次の例では、定義IDでクエリを実行します。

var filter = QueryFilterBuilder.Definition.Id == 40;

ユーザーによって作成されたクエリ

次の例では、ユーザーごとにクエリを実行します。

var filter = QueryFilterBuilder.CreatedBy == 6;

DateTimeプロパティによるクエリ

次の例では、DateTimeプロパティでクエリを実行します。

var filter =
    QueryFilterBuilder.DateTime("created_on") <= DateTime.UtcNow;

M.Assetエンティティのクエリ

次の例では、タイトルがmy assetに等しいM.Assetエンティティをクエリします。

QueryNodeFilter filter = QueryFilterBuilder.Definition.Name == "M.Asset" &&
             QueryFilterBuilder.String("Title") == "my asset";
 var searchAfterQuery =  new SearchAfterQuery(
   filter,
   new List<Sorting>{new() { Field = "identifier", Order = QuerySortOrder.Asc }})
{
   Take = Take,
   LoadConfiguration = new EntityLoadConfiguration
   {
       CultureLoadOption =  new CultureLoadOption(new CultureInfo("en-us")),
       PropertyLoadOption = PropertyLoadOption.All,
       RelationLoadOption = RelationLoadOption.All
    }
};

IEntitySearchAfterResult result = await _client.Querying.SearchAfterAsync(searchAfterQuery).ConfigureAwait(false);

// query for the next set of results
searchAfterQuery.SearchAfter = result.LastHitData;
result = await _client.Querying.SearchAfterAsync(searchAfterQuery).ConfigureAwait(false);
この記事を改善するための提案がある場合は、 お知らせください!