- Searchリクエスト
フィルターオブジェクト
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Searchは結果をフィルタリングするさまざまな方法を提供しています。フィルターオブジェクトでは多くのプロパティを使って結果を定義し、絞ることができます。フィルターはWidgetRequestに追加されます。フィルタには比較フィルタ、ロジック演算子フィルタ、リストフィルタの3種類があり、以下の節で紹介します。各セクションにはリクエストに追加可能なフィルターオブジェクトが一覧化されています。
比較フィルター
すべての検索クエリはウィジェットをエンティティに関連付けます。このフィルターを使ってエンティティの属性と値を比較します。これらのフィルターのいずれかをインスタンス化するには、属性の名前と比較値を入力します。
const filterLessThan = new FilterLessThan ( "numOfWords", 1000 ); const filterLessOrEqualThan = new FilterLessOrEqualThan ( "durationInMinutes", 70 ); const filterEqual = new FilterEqual ( "title", "Introduction" ); const filterGreaterThan = new FilterGreaterThan ( "numOfWords", 400 ); const filterGreaterOrEqualThan = new FilterGreaterOrEqualThan ( "numOfWords", 400);
const widgetRequest = new WidgetRequest("rfkid_7"); const filterGreaterThan = new FilterGreaterThan ( "durationInMinutes", 2 ); widgetRequest.setSearchFilter ( Filter )
論理演算子フィルター
このフィルターを使って、ある論理に基づいて複数のフィルターをオプションとして提供できます。これらのフィルターのいずれかをインスタンス化するには、以下のコードブロックに示されているように、複数のフィルターの配列を提供します。
const filterLessOrEqualThan = new FilterLessOrEqualThan ( "durationInMinutes", 70 ); const filterEqual = new FilterEqual ( "title", "Introduction" );
const filterOr = new FilterOr ( new FilterLessThan ( "numOfWords", 400 ), new FilterGreaterThan ( "numOfWords", 1000 ) ); const filterAnd = new FilterAnd ( filterEqual, new FilterLessThan ( "numOfWords", 1000 ) ); const filterNot = new FilterNot ( filterEqual, filterLessOrEqualThan );
リストフィルター
これらのフィルターを使って、属性に複数の値を割り当てます。これらのフィルターのいずれかをインスタンス化するには、以下のコードブロックに示されているように、属性名と値の配列を提供します。
const filterAllOf = new FilterAllOf ( "type", "video", "film", "audio" ); const filterAnyOf = new FilterAnyOf ( "type", "video", "film", "audio" );
フィルター法
以下のコードブロックは、フィルタリングに関連するさまざまな方法を一覧にし、WidgetRequestオブジェクトを通じてアクセス可能です。
/** search.filter */ getSearchFilter(): Filter; setSearchFilter(value: Filter): IWidgetItem; resetSearchFilter(): IWidgetItem;