1. WebクライアントSDK

クエリ フィルター

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

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

警告

これは、クエリの作成方法としてはお勧めしません。代わりにLINQを使用してください。

クエリ オブジェクト

クエリを実行するクライアントでは、クエリを定義する必要があります。このクエリでは、次のパラメータがサポートされています。

パラメーター

形容

Filter

呼び出されるフィルターの種類。

Skip

スキップするエンティティの数。

Take

取得するエンティティの数。

LoadConfiguration

適用する負荷構成。

Sorting

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

IdQueryフィルター

エンティティIDでフィルター処理します。

パラメータ 'Value' は、1つのIDに対してクエリを実行するために使用する必要があります。

var query = new Query
  {
    Filter = new IdQueryFilter { Value = entityId }
  };

パラメータ 'Values' は、複数のIDでフィルタリングするために使用する必要があります。

var query = new Query
  {
    Filter = new IdQueryFilter {
      Values = new List<long>() { assetId, assetTypeId }
    }
  };

サポートされている比較演算子は次のとおりです。

  • イコール

  • 等しくない

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

定義クエリフィルター

エンティティ定義をフィルタリングする機能を提供します。

'Name' パラメーターは、1つのエンティティ定義の名前をフィルター処理するために使用する必要があります。

var query = new Query
  {
    Filter = new DefinitionQueryFilter { Name = "M.Asset" }
  };

'Names' パラメーターは、複数のエンティティ定義名でフィルター処理するために使用する必要があります。

var query = new Query
  {
    Filter = new DefinitionQueryFilter {
      Names = new string[] { "M.Asset", "M.Fragment" }
    }
  };

'Id' パラメーターを使用して、エンティティ定義をidでフィルター処理することもできます。

var query = new Query
{
  Filter = new DefinitionQueryFilter {
    Id = assetDefinitionId
  }
};

サポートされている比較演算子は次のとおりです。

  • イコール

  • 等しくない

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

プロパティクエリフィルター

1つ以上のプロパティ値に基づいてエンティティをフィルタリングします。指定したデータ型によって、値の型と有効な比較演算子が決まります。

データ型文字列は、データソースのプロパティに対してクエリを実行するために使用できることに注意してください。

'Value' パラメータは、単一の値でフィルタリングするときに使用する必要があります。

var query = new Query
  {
    Filter = new PropertyQueryFilter {
      Property = "Title",
      Value = "Logo",
      DataType = FilterDataType.String
    }
  };

複数の値でフィルタリングするには、「Values」パラメータを使用します。値はOR演算子を使用して解釈されます。これにより、指定されたプロパティを持つエンティティのうち、指定された値の1つに一致するエンティティが返されると結論付けられます。

var query = new Query
  {
    Filter = new PropertyQueryFilter {
      Property = "Title",
      Values = new string[] { "Logo", "Sitecore Content Hub" },
      DataType = FilterDataType.String
    }
  };

カルチャは、'Culture' パラメーターを使用してフィルター処理するように指定できます。これは、多言語プロパティにのみ適用されます。

var query = new Query
  {
    Filter = new PropertyQueryFilter {
      Property = "Description",
      Value = "Sitecore Content Hub Logo",
      DataType = FilterDataType.String,
      Culture = new CultureInfo("en-US")
    }
  };

サポートされる比較演算子は、指定したデータ型によって異なります。比較演算子が特定のコンテキストで有効でない場合、例外がスローされます。

リレーションクエリフィルタ

1つ以上の親IDを使用して、指定したエンティティとの関係を持つエンティティをフィルタリングします。リレーションの名前は、「リレーション」パラメータで指定する必要があります。

'ParentId' パラメーターは、1つのリレーション エンティティでフィルター処理するときに指定する必要があります。

var query = new Query
  {
    Filter = new RelationQueryFilter {
      Relation = "AssetTypeToAsset",
      ParentId = assetTypeId
    }
  };

複数の親IDは、'ParentIds' パラメーターを使用して指定できます。IDはOR演算子を使用して解釈されます。これにより、指定されたプロパティを持つエンティティのうち、指定された値の1つに一致するエンティティが返されると結論付けられます。

var query = new Query
  {
    Filter = new RelationQueryFilter {
      Relation = "AssetTypeToAsset",
      ParentIds = new long[] { logoAssetTypeId, mediaAssetTypeId }
    }
  };

CreatedByQueryFilter (英語)

1人以上のユーザーによって作成されたエンティティをフィルター処理します。

フィルターを適用するには、'Id' または 'Ids' プロパティを使用して1つ以上のIDを指定します。

var query = new Query
  {
    Filter = new CreatedByQueryFilter()
    {
      Id = userId
    }
  };

'Ids' パラメータを使用して複数のIDを指定すると、指定されたユーザー IDのいずれかによって作成されたすべてのエンティティが返されます。

var query = new Query
  {
    Filter = new CreatedByQueryFilter()
    {
      Ids = new long[] { demoUserId, trainingUserId }
    }
  };

「Username」または「Usernames」プロパティを使用して、1つ以上のユーザー名を指定することもできます。

var query = new Query
  {
    Filter = new CreatedByQueryFilter()
    {
      Username = "M.Demo.User"
    }
  };

複数のユーザー名を指定すると、指定されたユーザーの1人によって作成されたエンティティが返されます。

var query = new Query
  {
    Filter = new CreatedByQueryFilter()
    {
      Usernames = new string[] { "M.Demo.User", "M.Training.User" }
    }
  };

サポートされている比較演算子は次のとおりです。

  • イコール

  • 等しくない

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

コンポジットクエリフィルター

「AND」、「OR」結合演算子を使用して、さまざまなクエリフィルターを組み合わせることができます。クエリ フィルターは、複合クエリ フィルターの 'Children' パラメーターを使用して指定できます。combineメソッド演算子は、'CombineMethod' パラメーターを使用して指定できます。

var query = new Query
  {
    Filter = new CompositeQueryFilter()
      {
        Children = new QueryFilter[] {
          new RelationQueryFilter
          {
            Relation = "AssetTypeToAsset",
            ParentId = logoAssetTypeId
          },
          new PropertyQueryFilter {
            Property = "Title",
            Values = new string[] { "Logo", "Sitecore Content Hub" },
            DataType = FilterDataType.String
          }
        },
        CombineMethod = CompositeFilterOperator.Or
      }
  };

クエリ読み込みの構成

負荷構成は、QueryオブジェクトのLoadConfigurationで設定できます。

詳細については、「 Load configurations 」を参照してください。

メモ

EntityLoadOptions古いSDKが非推奨になったため、代わりにLoadConfigurationを使用してください。

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