SPScriptedFacetService - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:3分
  • 詳細検索ソースの複数選択肢または単一選択肢のファセットオブジェクトを生成します。

    SPScriptedFacetService API は、サービスポータル 検索ソースのファセット生成スクリプトでのみ使用できます。ファセット生成スクリプトは、[スクリプト化済みソース] が選択されている場合にのみ表示されます。

    このクラスにはコンストラクターはありません。代わりに、createFacet() または createMultiChoiceFacet() メソッドを使用して facets オブジェクトを生成します。

    SPScriptedFacetService - createFacet(文字列ラベル, 文字列 id)

    選択肢が 1 つの facets オブジェクトを作成します。

    facets オブジェクトを作成した後、SPScriptedFacet クラスの addFacetItem() メソッドを使用して、ファセットアイテムまたはマッピングされたクエリーをファセットに追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    label 文字列 ファセットのラベル。
    id 文字列 ファセットの ID。
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト 選択肢が 1 つの facets オブジェクト。次の場合にエラーを返します。
    • 重複するラベルまたは ID が見つかった。
    • ラベルまたは ID が定義されていない。

    Service Portal の詳細検索ソースのファセット生成スクリプトでのみ使用できます。

    var stateFacet = facetService.createFacet("State", "state");

    SPScriptedFacetService - createMultiChoiceFacet(文字列ラベル, 文字列 id)

    複数選択肢の facets オブジェクトを作成します。

    facets オブジェクトを作成した後、SPScriptedFacet クラスの addFacetItem() メソッドを使用して、ファセットアイテムまたはマッピングされたクエリーをファセットに追加します。

    表 : 3. パラメーター
    名前 タイプ 説明
    label 文字列 ファセットのラベル。
    id 文字列 ファセットの ID。
    表 : 4. 返される内容
    タイプ 説明
    オブジェクト 複数選択肢の facets オブジェクト。

    次の場合にエラーを返します。

    • 重複するラベルまたは ID が見つかった。
    • ラベルまたは ID が定義されていない。
    function createMultiChoiceFacetFromKB(label, variable, values, orderBy){
      if(!values || values.length == 0)
        return;
    
      var kbFacet = facetService.createMultiChoiceFacet(label, variable);
      var kbMap = {};
      for(var i in values) {
        var key = values[i].label;
        var value = values[i].id;
        var parent = new KBParentData().getParentCategory(value, key);
        key = parent.join(' > ');
        kbMap[key] = value;
      }
    
      var labels = Object.keys(kbMap).sort();
      for (i = 0; i < labels.length; i++) {
        var currentLabel = labels[i];
        kbFacet.addFacetItem(currentLabel, kbMap[currentLabel]);
        //adds facet search options for each kbMap entry
      }
    }