RefinementConfig要素は、NavigationMenuConfigで個々の属性の動作を制御します。
これは、ナビゲーション問合せで返される有効なすべての絞込みのうち、どの属性が実際の絞込み値を返す必要があるかを指定し、絞込み値の順序と数も指定します。また、提案される絞込みと適用済の絞込み(暗黙的なものを含む)の両方を含む、絞込みの完全なリストを返すかどうかの指定も含みます。オプションの項目が必要ない場合は、リクエストで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での暗黙的な絞込みの取得に関するグローバル設定がオーバーライドされます)。 |
Expose属性もオプションで、デフォルトではfalseに設定されています。Expose="false"は、パフォーマンスの改善に役立ちます。
<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で計算する場合よりも高速です。(グループのすべての属性を取得するには、Exposeをtrueに設定する必要があります。)
<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の最上位レベル管理属性値を返しますが、有効な絞込みを選択するには必要になります。
<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つのルート管理属性値とすべての最上位レベル管理属性値を返し、ネットワークとページ・サイズに対してより大きな負荷をかけます。ただし、この方法は、考えられるすべての絞込み値を常に表示する必要のあるカスタム・ナビゲーション・ソリューションの作成に効果的です。