検索フィールドを使用したマルチリストの構成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
データ・テンプレートを構成するときは、このデータ・テンプレートを使用するコンテンツ項目のスキーマを作成します。開発者は、データ テンプレートにフィールドを追加し、それらのフィールドの動作を決定する構成を設定します。これらのフィールド タイプの1つはmultilist with searchで、これはコンテンツ編集者が大規模なデータセット内のコンテンツ項目をすばやく見つけるのに役立ちます。
コンテンツ編集者は、multilist with searchフィールドを使用して、コンテンツツリー内の検索可能なリストから複数のアイテムを選択します。このフィールドには動的フィルタリング機能が含まれているため、編集者はアイテム名、テンプレート、フィールド値、言語などのさまざまな基準に基づいてアイテムをすばやく見つけて選択できます。このトピックでは、データ テンプレートにmultilist with searchを追加する方法と、それに適用できるフィルターとクエリの一部について説明します。フィルターを組み合わせるには、クエリでアンパサンド (&) を使用します。
検索フィールドを含むマルチリストをデータ テンプレートに追加する
検索フィールドを持つマルチリストのSource列を使用して、コンテンツ ツリーをフィルタリングするクエリを追加すると、コンテンツ編集者が関連するコンテンツをすばやく見つけることができます。クエリ構造については、次のセクションで説明します。 Sourceが空の場合、コンテンツ編集者がこのテンプレートに基づいて新しいコンテンツを作成するときに、単純な検索クエリを入力してコンテンツツリー全体を検索できます。
multilist with searchタイプのフィールドをデータテンプレートに追加するには:
-
コンテンツ エディターで、Templatesフォルダーを展開し、フィールドを追加するデータ テンプレートをクリックするか、新しいテンプレートを作成します。

-
Builderタブのフィールドを追加するセクションのName列でAdd a new fieldをクリックし、新しいデータ テンプレート フィールドの名前を入力します。

-
「タイプ」列で、「 Multilist with Search」を選択します。
-
Source列に、次のセクションで説明するように、コンテンツ ツリーをフィルター処理するクエリを追加します。
次に、コンテンツ編集者は、このデータテンプレートに基づいてアイテムを作成し、マルチリストフィールドを使用してコンテンツツリーから複数のアイテムを検索して選択します。たとえば、オーディオブック製品のみがマルチリストフィールドに表示されるようにするフィルターを設定したとします。コンテンツエディターがオーディオブック製品を紹介するページを作成すると、関連する製品のみがオプションのリストに表示されます。

トラブルシューティング
データ テンプレートの検索フィールドを持つマルチリストにクエリを適用したが、フィールドの内容オプションが空白であるか、ツリー全体が表示されている場合は、エラー ログを確認して、変更が必要な内容を理解するのに役立ちます。
エラーログの例:
検索フィールドを持つマルチリストのクエリ
ここでは、検索フィールドを使用してマルチリストを作成する際によく使用されるクエリをいくつか紹介します。 クエリの完全な一覧を確認することもできます。
シンプルなテキスト検索
コンテンツ編集者は、検索フィールド付きのマルチリストを持つデータテンプレートに基づいてコンテンツアイテムを作成した後、任意のアイテムフィールドに表示されるテキストを検索できます。これはデフォルトで有効になっており、設定は必要ありません。次の例では、コンテンツ エディターは、テキストduckを含むすべてのアイテムを検索しています。

ルートフィルター
スコープをコンテンツ ツリー内の特定のサブツリーに制限します。ルート・フィルターを適用するには、検索を開始するサブツリーのIDを以下の形式で指定します。
ルート フィルターは、1つの項目識別子のみを受け入れることができます。複数のルートを指定する場合は、テンプレート フィルターを使用します。
次の例では、ユーザーはCoffee Brandフォルダーのアイテム識別子をコピーして、multilistフィールドに表示されるアイテムを、そのフォルダーに保存されているコンテンツアイテムに制限します。

Typeフィールドには、「StartSearchLocation={1C0685BF-FBF9-447B-8FC9-6758ECAE42CD}」と入力します。
コンテンツエディターがマルチリストフィールドでコンテンツを検索すると、結果はフォルダーの内容に限定されます。

テンプレートフィルター
使用可能なアイテムを、特定のテンプレートまたはテンプレートのセットに基づくアイテムに制限します。これにより、関連するタイプの明細のみが表示されるようになります。
パイプ文字 (|) で区切られた複数のテンプレートを指定できます。たとえば、次のようになります。
ページサイズ
マルチリスト フィールドの1ページに表示されるアイテムの数を制限します。
例えば:
カスタムクエリ
フィルタリングのためのさまざまなアイテムプロパティを使用してカスタムクエリを定義できます。これにより、複雑な検索条件を柔軟に定義し、Sitecore内でアイテム フィールドとメタデータを直接活用できます。
例えば:
この例では、StartSearchLocation、TemplateFilter、およびPageSizeの各パラメーターを1つのクエリに結合します。
分別
デフォルトでは、マルチリストフィールドのアイテムは、更新された時刻に基づいて昇順でソートされ、最後に更新されたアイテムが検索結果の最後に表示されます。 SortFieldクエリを使用して、アイテム名、作成日、カスタムフィールドなどの条件に基づいて、検索結果の異なる並べ替え順序を定義できます。
たとえば、アイテムをタイトルの降順で並べ替えるには、次の形式を使用します。
SortFieldクエリを適用すると、指定したフィールドに値がないアイテムは検索結果に引き続き表示されますが、指定した条件で並べ替えられません。
フィルター
大きなリストから特定のアイテムをフィルタリングするには、Filterパラメータを使用できます。選択可能なアイテムのリストを絞り込むためのさまざまなフィルターがあります。また、フィルターの前にプラス記号またはマイナス記号を使用して、フィルターされたコンテンツを含めたり除外したりすることもできます。たとえば、Filter=-_name:*cafeを指定すると、名前にcafeが含まれるすべてのアイテムが除外されます。
以下は、使用できる一般的なフィルターのリストと例です。
-
Item name - アイテムを名前でフィルタリングします。次の例では、テキスト文字列の前後にアスタリスクがワイルドカードとして使用されているため、名前にcafeが含まれる項目がマルチリスト フィールドに表示されます。
-
Template name - アイテムの基になっているテンプレートでアイテムをフィルタリングします。パイプ記号を使用して、複数のテンプレートを指定できます。
-
Location - コンテンツ ツリー内の場所でアイテムをフィルタリングします。パイプ記号を使用して、複数の場所を指定できます。
-
Language - 言語バージョンでアイテムをフィルタリングします。パイプ記号を使用して、複数の言語コードを指定できます。