構成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このSearch APIは、デフォルト値とフィルターを使用して、すべての検索にデフォルトの検索設定を適用します。
デフォルトのSearch構成設定
デフォルトの検索設定は、SearchDefaultsというMの設定から取得されます。設定の名前は、検索関連のAPIリソースにnameというパラメーターとして渡される変数です。UIコンポーネントは、REST呼び出しを実行するときに、その設定で設定を検索し、それをSearchコントローラーに渡します。
Sitecore Content Hubの例はSearchConfiguration.json、これは設定のPortalConfigurationセクションにあります。
APIは、クエリで指定された関連パスのみをロードするように設定されています。クエリで関連するパス関係を指定しない場合、応答は何も返しません。
検索設定スキーマには、次のプロパティがあります。
|
財産 |
形容 |
|---|---|
|
Name |
設定の名前。 |
|
Take |
返される結果の既定の数。これは、検索要求にページングが含まれていない場合にのみ使用されます。デフォルトでは、ページあたりのアイテムの最大数は50で、ページの最大数は100です。 |
|
Filters |
各クエリに適用するフィルター。複数のフィルターが指定されている場合は、AND演算子を使用してまとめて評価されます。 |
|
Facets |
ファセットとして使用される定義。スキーマは、ファセットが結果エンティティにリンクされる方法を決定します (たとえば、分類関係を使用して)。 |
|
Followups |
フォローアップファセットの設定。ファセット・フィルターが特定の定義に適用されている場合、検索クエリーに他のファセットを追加することもできます。 |
|
PropertiesToLoad: |
結果に含まれるプロパティ。 |
|
relationsToLoad |
結果に含まれる関係。 |
|
renditionsToLoad |
レンディションを持つエンティティの結果に含めるレンディション。 |
|
ResultTypes |
結果として返されるエンティティの種類。検索クエリには、これらの種類のエンティティのみが返されるようにするためのフィルターが追加されます。 |
|
SuperFacets |
定義にスーパーファセットのフラグが設定されている場合、検索応答にはそのスーパーファセットに関する追加情報が含まれます。 |
|
Sorting |
デフォルトのソート方法。 |
ファセット
ファセットを定義する最も簡単な方法は、定義名を使用することです。ファセットは、Content Hubスキーマによって異なります (たとえば、定義がIsTaxonomyItemDefinitionとしてマークされているなど)。
ファセットには2つのタイプがあります。
-
標準ファセット (リレーション)
-
フィールドファセット (プロパティ)
標準ファセット
フィールドファセット
limitパラメーターを使用して、ファセットによって返される値の数を制限できます。このパラメータのデフォルト値は10です。
limitパラメーターを0に設定すると、ファセットは使用可能なすべての値を返します。
各ファセットには、そのファセットに対して返される項目がページ上でどのように順序付けられるかを決定するためのsortingパラメーターを指定できます。このパラメータの可能な値は次のとおりです。
-
Count (デフォルト)
-
Alphabetical
-
Field
ファセットのソート順を制御するには、directionパラメータを追加します。このパラメータにはAscendingまたはDescendingの値を指定する必要があります。
アルファベット順の並べ替えは、すべてのファセット値が返される場合にのみ役立ちます。
フィルター
フィルターは、JSON構成設定またはクエリ共同作成者フレームワークを使用して定義できます。
フィルターで使用される各値式は、1つのIdに解決される必要があります。
この例では、definition_name == "M.Asset" にフィルターを適用します。
上記の例では、ライフサイクルステータスapprovedのIdにフィルターを適用しています。(シングルId)。
値式を使用しない場合、nameは定義名として扱われ、フィルターはその定義に基づきます。
また、フィルターのフィルターを作成し、それらの内部フィルターに適用するオペレーターを選択することもできます。
コードを使用したデフォルトのフィルター
コードを使用してフィルターを適用することもできます。
この例では、ORフィルタが複数の定義名と、M.Asset (ライフサイクル ステータスapproved) の特定の名前に適用されます。
フィルターは次のようになります。
(definition = "M.Sku" OR definition = "M.Product" OR definition = "M.Campaign" OR definition = "M.Recipe" OR (definition = M.Asset AND LifeCycleStatus = Approved))
このquerycontributerにより、クエリに適用されるフィルターに直接影響を与えることができます。これらのフィルターは、クライアント側では表示されません。(たとえば、QueryString、QueryBuilderなど)
querycontributerクラスの準備ができたら、次のステップはプロジェクトのApplicationModuleに登録することです
複数のクエリ コントリビューターを、構成のフィルターと共に組み合わせることができます。クエリ共同作成者は、常にフィルターを追加するSearchConfigurationの名前に関連付けられています。