---
title: "ウォークスルー:実行時のウィジェット設定"
slug: "walkthrough--configuring-widgets-at-runtime"
abstract: "実行時にウィジェット設定をオーバーライドまたは更新するためのJS DataパッケージオブジェクトSitecore Search記述します。"
---
# ウォークスルー:実行時のウィジェット設定

Sitecore Searchでは、ウィジェットは通常Sitecore Searchユーザーインターフェースで設定されます。この構成にはウィジェットの種類、ルール、機能が含まれます。

Searchはウィジェットルールをコンテキスト条件が満たされた場合にのみ適用します。時には、コンテキスト条件が実行時しか定義できない場合にルールを適用したい場合もあります。その場合は、リクエスト内でウィジェットの動作を設定できます。

例えば、コンバージョンは実行時のみ評価できます。ウィジェットの挙動を変更するには、リクエスト内にルールを追加できます。

Sitecore Searchで設定されたルールと実行時に作成されたルールは似ています。唯一の違いは、実行時に作成するルールでコンテキスト条件を定義する必要がないことです。条件はすでに満たされていると考えてよい。

このウォークスルーでは、以下の方法を説明します:

-   実行時に検索結果ウィジェットを作成します。
-   アイテムを強化するルールを作りましょう。
-   アイテムを埋めるルールを作りましょう。
-   パーソナライズ設定をオーバーライドしてください。
-   属性ランクを上書きします。

## 実行時に検索結果ウィジェットを作成する

ルールはウィジェット固有のものなので、ルールを作成する前にWidgetRequestオブジェクトをインスタンス化する必要があります。

実行時に検索結果ウィジェットを作成するには:

-   search\_widget.tsというTypeScriptファイルで、以下のコードブロックをコピー&ペーストし、インポートを調整します。
    
    import {
     WidgetRequest,
    } from "@sitecore-search/data";
    
    const widgetRequest = new WidgetRequest("rfkid\_7");
    widgetRequest.setEntity("content");
    

## アイテムを強化するルールを作成します

指定されたスロットにブーストルールが表示され、SearchFilterを通過するアイテムが表示されます。

[SearchFilter](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-search-js-data-package/search-request/the-searchfilter-interface.html "The SearchFilter interface")オブジェクトを使って*William Shakespeare*または*William Wordsworth*作成したアイテムをブーストするルールを作成・追加するには:

-   search\_widget.tsするには、次のコードブロックを追加し、インポートを調整します。
    
    import {
     SearchFilter,
     Boost
    } from "@sitecore-search/data";
    
    const boostFilter: SearchFilter = {
     type: "anyOf",
     name: "author",
     values: "William Shakespeare", "William Wordsworth"
    }
    
    const boostRule: Boost = {
     filter: boostFilter,
     slots: 0,3,8
    }
    
    widgetRequest.addRfkFlag( "+rules" );
    widgetRequest.addSearchRuleBoost( boostRule )
    

## アイテムを埋めるルールを作る

埋蔵ルールはSearchFilterを通過する項目を表示します。

1900年1月1日以降に公開されたアイテムを[SearchFilter](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-search-js-data-package/search-request/the-searchfilter-interface.html "The SearchFilter interface")オブジェクトで埋めるルールを作成・追加するには:

-   search\_widget.tsするには、次のコードブロックを追加し、インポートを調整します。
    
    import {
     SearchFilter,
     Bury
    } from "@sitecore-search/data";
    
    const buryFilter: SearchFilter {
      type: "gte",
     name: "publication\_date",
     values:  new Date( 1900 ) 
    }
    
    const buryRule: Bury {
     filter: buryFilter
    }
    
    widgetRequest.addRfkFlag( "+rules" );
    widgetRequest.addSearchRuleBoost( buryRule )
    

## パーソナライズ設定をオーバーライドします

パーソナライズ設定をオーバーライドして、[Personalization](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-search-js-data-package/search-request/the-personalization-interface.html "The Personalization interface")オブジェクトを使った*アフィニティ*アルゴリズムを使用する方法:

-   search\_widget.tsするには、次のコードブロックを追加し、インポートを調整します。
    
    import {
     Personalization
    } from "@sitecore-search/data";
    
    const personalization: Personalization {
      algorithm: "affinity",
    }
    widgetRequest.addRfkFlag( "+personalization" );
    widgetRequest.addSearchRuleBoost( personalization )
    

## 属性のオーバーライドランキング

[Ranking](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-search-js-data-package/search-request/the-ranking-interface.html "The Ranking interface")オブジェクトを使って*アフィニティ*アルゴリズムを使用するパーソナライズ設定をオーバーライドするには:

-   search\_widget.tsするには、次のコードブロックを追加し、インポートを調整します。
    
    import {
     Personalization
    } from "@sitecore-search/data";
    
    const likesRanking: Ranking {
      name: "likes",
     weight: 5
    }
    const ratingRanking: Ranking {
      name: "rating",
     weight: 10
    }
    widgetRequest.addRfkFlag( "+ranking" );
    widgetRequest.addSearchRanking( likesRanking )
    widgetRequest.addSearchRanking( ratingRanking )