RefinementConfig

RefinementConfig要素は、NavigationMenuConfigで個々の属性の動作を制御します。

これは、ナビゲーション問合せで返される有効なすべての絞込みのうち、どの属性が実際の絞込み値を返す必要があるかを指定し、絞込み値の順序と数も指定します。また、提案される絞込みと適用済の絞込み(暗黙的なものを含む)の両方を含む、絞込みの完全なリストを返すかどうかの指定も含みます。オプションの項目が必要ない場合は、リクエストでRefinementConfigを省略できます。

注意: 管理属性から導出される階層絞込みの場合、そのフルパスを追加で取得できます。詳細は、「階層絞込みのフルパスの取得」を参照してください。
RefinementConfigの構文は次のとおりです。
<RefinementConfig 
   Name="?" 
   Spec="?" 
   Expose="false" 
   OrderByRecordCount="false" 
   MaximumCount="?" 
   IncludeExplicitSelections="false" 
   IncludeImplicitSelections="false"/>

1つの特定の属性に使用できるRefinementConfig要素は1つのみです。

属性の説明は次のとおりです。
属性 説明
Name 必須です。属性の名前。
Spec オプションです。階層を降りる場合に使用されます(絞込みツリーを下にナビゲートしながら絞込みをたどる必要はありません)。Specは、問合せの絞込みの親を識別します。

たとえば、空の状態では、NavMenuは使用可能な管理属性ProductCategoryを示します。ユーザーがProductCategoryを展開すると、RefinementConfig Name="ProductCategory"RefinementConfigに置かれ、Endeca Serverに送られます。NavMenuは、展開可能なElectronicsを含むProductCategoryの絞込みを示します。ユーザーがElectronicsを展開すると、RefinementConfig Name="ProductCategory" Spec="Electronics"RefinementConfigに置かれ、Endeca Serverに送られます。

次に、Endeca Serverから受信するレスポンスにはNavMenuが含まれ、Electronicsで始まるProductCategoryの絞込みがあります。

階層を持つ絞込み(管理属性の値に基づく)の場合、絞込み値は、この仕様の子管理属性値に対して返されます。たとえば、Spec="/"は、(WineTypeなどの)ルート管理値を示し、Spec="Merlot"は子管理値を示します。

Expose オプションです。この属性がわずかな程度でも絞込みであるかどうかを計算するにはfalse(デフォルト)を指定し、それが絞込みであるかどうかを計算して、さらに個々の絞込み(ある場合)を取得して公開する場合はtrueを指定します。
OrderByRecordCount オプションです。個々の問合せに基づいてレコード数で順序付けする(動的順序付け)にはtrueを指定し、PDRのsystem-navigation_Sorting属性で指定した、Dgraphのデフォルト順序を使用するにはfalse (デフォルト)を指定します。
MaximumCount オプションです。標準属性または管理属性当たり返される絞込みの数に最大制限を指定する整数です。この設定が指定されていない場合、対話Webサービス・レスポンスで属性当たりに返される絞込みの数は、対話Webサービス・リクエストのNavigationMenuConfig要素のMaximumRefinementCount属性の値で指示されます。その値が指定されていない場合、デフォルトは10になります。
IncludeExplicitSelections オプションです。この特定の属性について、(使用可能な場合は常に返される提案される絞込みとともに)明示的に選択された絞込みを返すかどうかを制御します。デフォルトはfalseです。この設定は、明示的に選択された絞込みの取得を個々の属性ごとに制御します(これにより、NavigationMenuConfigでの明示的に選択された絞込みの取得に関するグローバル設定がオーバーライドされます)。
IncludeImplicitSelections オプションです。この特定の属性について、暗黙的に選択された絞込みを返すかどうかを制御します。デフォルトはfalseです。この設定は、暗黙的に選択された絞込みの取得を個々の属性ごとに制御します(これにより、NavigationMenuConfigでの暗黙的な絞込みの取得に関するグローバル設定がオーバーライドされます)。

RefinementConfigに関する注意事項

注意: RefinementConfig要素は、オプションの問合せパラメータであることに注意してください。ただし、RefinementConfigが含まれない属性は絞込みを返しません(ExposeAllPropertyRefinementsがグループで使用される場合を除く)。つまり、デフォルトでは、グループと絞込みの属性は折りたたまれています。絞込みを持つ属性を公開する場合は、絞込みを公開する各属性でRefinementConfigを使用するか、ExposeAllPropertyRefinementsを使用して、一度にすべての属性の絞込みを公開します。次に、これらの使用例を示します。

Expose属性もオプションで、デフォルトではfalseに設定されています。Expose="false"は、パフォーマンスの改善に役立ちます。

たとえば、ユーザー定義グループSales-Characteristicsに3つの属性がある単純なデータセットで、次の問合せを行うとします。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
  <State/>
  <NavigationMenuConfig Id="NavigationMenu">
   <RefinementGroupConfig Name="Sales-Characteristics" Expose="false"/>
  </NavigationMenuConfig> 
 </Request>

これは、HasRefineablePropertiesで情報を返しますが、絞込み自体は返しません。これは、Oracle Endeca Serverで計算する場合よりも高速です。(グループのすべての属性を取得するには、Exposetrueに設定する必要があります。)

ただし、ProductType管理属性の問合せは次のようになります。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
  <State/>
  <NavigationMenuConfig Id="NavigationMenu">
     <RefinementGroupConfig Name="Sales-Characteristics" Expose="true"> 
       <RefinementConfig Name="ProductType" Expose="true" />
     </RefinementGroupConfig>
  </NavigationMenuConfig>
</Request>

この場合は、3つの管理属性すべて(Sales-Characteristicsグループに含まれるため)と、ProductType管理属性の最上位レベル絞込み属性値が返されます。これは、Oracle Endeca Serverでの計算にかかるコストがわずかに増加し、3つのルート管理属性値と、ProductTypeの最上位レベル管理属性値を返しますが、有効な絞込みを選択するには必要になります。

より高度な問合せオプションは、(単一の属性ではなく)リクエストされたすべての属性に対する最上位レベル管理属性値の絞込みをすべて返します。このオプションでは、ExposeAllRefinements属性をtrueに設定します。アプリケーションでこの属性をtrueに設定している場合、問合せは次のようになります。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
  <State/>
  <NavigationMenuConfig Id="NavigationMenu" ExposeAllRefinements="true">
    <RefinementGroupConfig Name="Sales-Characteristics" Expose="true"/>
  </NavigationMenuConfig>
</Request>

これは、3つの管理属性と、これらの各属性のすべての有効な最上位レベル管理属性値を返します。

これは次の問合せと同等です。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
   <State/>
   <NavigationMenuConfig Id="NavigationMenu">
      <RefinementGroupConfig Name="Sales-Characteristics" Expose="true">
       <RefinementConfig Name="UnitPrice" Expose="true" /> 
       <RefinementConfig Name="OrderQuantity" Expose="true" /> 
       <RefinementConfig Name="CustomerPONumber" Expose="true" />
      </RefinementGroupConfig>
   </NavigationMenuConfig>
</Request>

これは、Oracle Endeca Serverでの計算にかかるコストが最も高い問合せタイプであり、3つのルート管理属性値とすべての最上位レベル管理属性値を返し、ネットワークとページ・サイズに対してより大きな負荷をかけます。ただし、この方法は、考えられるすべての絞込み値を常に表示する必要のあるカスタム・ナビゲーション・ソリューションの作成に効果的です。