対話Webサービス・リクエストのRefinementGroupConfig要素とRefinementConfigを使用して、属性の絞込み値を公開します。これらの要素により、多くの属性をすべて列挙しなくても、それらの属性に対する操作を一度に実行できます。
デフォルトでは、グループと絞込みの属性は折りたたまれています。絞込みを持つ属性を公開する場合は、絞込みを公開する各属性でRefinementConfigを使用するか、ExposeAllPropertyRefinementsを使用して、一度にすべての属性の絞込みを公開します。
RefinementGroupConfig要素は、グループに含まれる属性から絞込みのリストを返します。この中にはRefinementConfig要素が含まれます。
属性 | 説明 |
---|---|
Expose | 必須です。グループの属性を、少しでも可能性のある絞込みとして評価するかどうかを示します。
Expose属性の使用は、絞込みのグループがあり、フロントエンド・アプリケーションのユーザー・インタフェースでこれらの展開や折りたたみを行うことができるようにする場合は重要です。たとえば、国名の絞込みが必要な場合、それらを取得するには、UIで展開と折りたたみを有効にするExposeを初期リクエストで使用します。次に、個別の対話Webサービス・リクエストでこれらの絞込みをリクエストします。 |
ExposeAllPropertyRefinements | オプション。グループのすべての属性に対して絞込みを公開する(つまり、絞込み値を計算する)かどうかを示します。 |
Name | 必須です。グループの名前。 |
<Request xmlns="http://www.endeca.com/MDEX/conversation/2/0"> <State/> <ContentElementConfig xsi:type="NavigationMenuConfig" Id="NavigationMenu" HandlerFunction="NavigationMenuHandler" HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RefinementGroupConfig Name="Sales-Transaction" Expose="true"> <RefinementConfig Name="OrderQuantity" Expose="true" MaximumCount="100" /> </RefinementGroupConfig> </ContentElementConfig> </Request>
グループの個々の属性に対して操作を実行する場合、そのすべてに対して実行するのではなく(たとえば、個々の属性の設定をオーバーライドするなど)、RefinementGroupConfigで複数のRefinementConfig要素を使用できます。
RefinementConfig要素は、NavigationMenuで個々の属性の動作を制御します。これは、ナビゲーション問合せで返される有効なすべての絞込みのうち、どの属性が実際の絞込み値を返す必要があるかを指定し、絞込み値の順序と数も指定します。オプションの項目が必要ない場合は、リクエストでRefinementConfigを省略できます。
<RefinementConfig Name="OrderQuantity" Spec="/" Expose="false" OrderByRecordCount="false" MaximumCount="100"> </RefinementConfig>
1つの特定の属性に使用できるRefinementConfig要素は1つのみです。
属性 | 説明 |
---|---|
Name | 必須です。属性の名前。 |
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属性で指定した、Oracle Endeca Serverのデフォルト順序を使用するにはfalse (デフォルト)を指定します。 |
MaximumCount | オプション。標準属性または管理属性当たり返される絞込みの数に最大制限を指定する整数です。
この設定が指定されていない場合、対話Webサービス・レスポンスで属性当たりに返される絞込みの数は、対話Webサービス・リクエストのNavigationMenuConfig要素のMaximumRefinementCount属性の値で指示されます。その値が指定されていない場合、デフォルトは10になります。 |
Expose属性もオプションで、デフォルトではfalseに設定されています。Expose="false"は、パフォーマンスの改善に役立ちます。
<Request xmlns="http://www.endeca.com/MDEX/conversation/2/0"> <State/> <ContentElementConfig xsi:type="NavigationMenuConfig" Id="NavigationMenu" HandlerFunction="NavigationMenuHandler" HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RefinementGroupConfig Name="Sales-Characteristics" Expose="false"/> </ContentElementConfig> </Request>
これは、HasRefineablePropertiesで情報を返しますが、絞込み自体は返しません。これは、Oracle Endeca Serverで計算する場合よりも高速です。(グループのすべての属性を取得するには、Exposeをtrueに設定する必要があります)。
<Request xmlns="http://www.endeca.com/MDEX/conversation/2/0"> <State/> <ContentElementConfig xsi:type="NavigationMenuConfig" Id="NavigationMenu" HandlerFunction="NavigationMenuHandler" HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RefinementGroupConfig Name="Sales-Characteristics" Expose="true"> <RefinementConfig Name="ProductType" Expose="true" /> </RefinementGroupConfig> </ContentElementConfig> </Request>
この場合は、3つの管理属性すべて(Sales-Characteristicsグループに含まれるため)と、ProductType管理属性の最上位レベル絞込み属性値が返されます。これは、Oracle Endeca Serverでの計算にかかるコストがわずかに増加し、3つのルート管理属性値と、ProductTypeの最上位レベル管理属性値を返しますが、有効な絞込みを選択するには必要になります。
<Request xmlns="http://www.endeca.com/MDEX/conversation/2/0"> <State/> <ContentElementConfig xsi:type="NavigationMenuConfig" HandlerFunction="NavigationMenuHandler" HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" Id="NavigationMenu" ExposeAllRefinements="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RefinementGroupConfig Name="Sales-Characteristics" Expose="true"/> </ContentElementConfig> </Request>
これは、3つの管理属性と、これらの各属性のすべての有効な最上位レベル管理属性値を返します。
<Request xmlns="http://www.endeca.com/MDEX/conversation/2/0"> <State/> <ContentElementConfig xsi:type="NavigationMenuConfig" Id="NavigationMenu" HandlerFunction="NavigationMenuHandler" HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RefinementGroupConfig Name="Sales-Characteristics" Expose="true"> <RefinementConfig Name="UnitPrice" Expose="true" /> <RefinementConfig Name="OrderQuantity" Expose="true" /> <RefinementConfig Name="CustomerPONumber" Expose="true" /> </RefinementGroupConfig> </ContentElementConfig> </Request>
これは、Oracle Endeca Serverでの計算にかかるコストが最も高い問合せタイプであり、3つのルート管理属性値とすべての最上位レベル管理属性値を返し、ネットワークとページ・サイズに対してより大きな負荷をかけます。ただし、この方法は、考えられるすべての絞込み値を常に表示する必要のあるカスタム・ナビゲーション・ソリューションの作成に効果的です。