ステップ1: 絞込みを持つ属性の取得と公開

絞込みの表示の最初のステップは、絞込みを持つ可能性のある属性の取得です。

絞込みは、その属性がグループに含まれるかどうかに応じて、2つの方法で取得できます。

絞込みはNavigationMenuコンテンツ要素で返されます。属性がグループに属する場合、この要素には、絞込みを含む管理属性ごとに、NavigationMenuItem要素を持つNavigationMenuItemGroup要素が含まれます。

注意: 優先順位ルールが構成されている場合、優先順位ルールのトリガーが満たされるまで、これらのルールによって、有効な絞込みを持つ属性が抑制されます。優先順位ルールの詳細は、「優先順位ルールの使用」を参照してください。

属性グループの絞込みの取得

WineType絞込みがリクエストおよび公開される次のリクエストについて考えます。
<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="Wine Characteristics" Expose="true">   
    <RefinementConfig Name="WineType" Expose="true"/>
   </RefinementGroupConfig>
  </ContentElementConfig>
</Request>
これは次の問合せ結果を返します。問合せ結果でWineType絞込みとそれに対する絞込み値(RedWhiteおよびSparkling)が示されていることに注目してください。
<cs:Results xmlns:cs="http://www.endeca.com/MDEX/conversation/2/0" 
xmlns:mdex="http://www.endeca.com/MDEX/XQuery/2009/09">
 <cs:Request>
  <State xmlns="http://www.endeca.com/MDEX/conversation/2/0">
  <ContentElementConfig xsi:type="NavigationMenuConfig" 
Id="NavigationMenu" 
HandlerFunction="NavigationMenuHandler" 
HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0" 
xmlns="http://www.endeca.com/MDEX/conversation/2/0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <RefinementGroupConfig Name="Wine Characteristics" Expose="true">     
    <RefinementConfig Name="WineType" Expose="true" 
xmlns:ns="http://www.endeca.com/MDEX/conversation/2/0">
   </RefinementGroupConfig>  
  </ContentElementConfig>
  </cs:Request>
  <cs:ContentElement xsi:type="cs:NavigationMenu" Id="NavigationMenu" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <cs:NavigationMenuItemGroup Name="Wine Characteristics" 
  HasRefinablePRoperties="true">
    <cs:NavigationMenuItem Name="WineType" DisplayName="WineType" 
     MultiSelect="Or" HasMore="false">
        <cs:ExposureControl Exposed="true">
          <cs:Operator OwnerId="NavigationMenu" 
          xsi:type="cs:RefinementHideOperator" 
              Name="WineType"
              Spec="/" 
              Group="Wine Characteristics"/>
         </cs:ExposureControl>
         <cs:Refinement Name="WineType" Spec="/Red" Label="Red" 
          Count="18">
          <cs:Operator xsi:type="cs:RefinementOperator" 
          Name="WineType" Spec="/Red"/>
         </cs:Refinement>
         <cs:Refinement Name="WineType" Spec="/White" Label="White" 
          Count="40">
          <cs:Operator xsi:type="cs:RefinementOperator" 
          Name="WineType" Spec="/White"/>
         </cs:Refinement>
         <cs:Refinement Name="WineType" Spec="/Sparkling" 
         Label="Sparkling" Count="50">
          <cs:Operator xsi:type="cs:RefinementOperator" 
          Name="WineType" Spec="/Sparkling"/>
         </cs:Refinement>
      <cs:RootDimensionValue DimensionName="WineType" Spec="/"/>
    </cs:NavigationMenuItem>
   </cs:NavigationMenuItemGroup>
  </cs:ContentElement>
</cs:Results>
この例では、NavigationMenuItem要素は、グループに含まれる管理属性に使用されます。
<cs:NavigationMenuItemGroup Name="Wine Characteristics" HasRefinablePRoperties="true">
  <cs:NavigationMenuItem Name="WineType" DisplayName="WineType" MultiSelect="Or" HasMore="false">
   <cs:ExposureControl Exposed="true">
    <cs:Operator OwnerId="NavigationMenu" xsi:type="cs:RefinementHideOperator" 
       Name="WineType" Spec="/" Group="Wine Characteristics"/>
   </cs:ExposureControl>
重要:
RefinementOperator (たとえば前述の例のレスポンスのRefinementOperator)に注目してください。
<cs:Operator xsi:type="cs:RefinementOperator" 
          Name="WineType" Spec="/Red"/>
この演算子は、絞込みを取得する後続の対話Webサービス・リクエストで使用されます。
ExposureControl演算子にも注目してください。
<cs:ExposureControl Exposed="true">
   <cs:Operator OwnerId="NavigationMenu" xsi:type="cs:RefinementHideOperator" 
       Name="WineType"
       Spec="/" 
       Group="Wine Characteristics"/>
</cs:ExposureControl>
<cs:ExposureControl Exposed=""true">文は、NavigationMenuItemに含まれる最上位レベルの絞込みの現在の公開ステータスを示します。ExposureControl演算子には、RefinementExposeOperatorおよびRefinementHideOperatorという2つの複合タイプが含まれます。これらの演算子は、個々の絞込みの公開(または非表示)に使用されます。これらの演算子を使用するには、演算子が適用されるコンテンツ要素と同じにする必要があるOwnerId値を指定してください。例ではOwnerId="NavigationMenu"になります。
この例をさらに調べると、Red管理属性値の例に示すように、このグループの各絞込みはRefinement要素で返されます。
<cs:Refinement Name="WineType" Spec="/Red" Label="Red" Count="18">
   <cs:Operator xsi:type="cs:RefinementOperator" Name="WineType" Spec="/Red"/>
</cs:Refinement>

Count要素は、Red絞込みで絞込みを行った場合の結果セットに18のレコードがあることを示します。

グループに含まれない属性の絞込みの取得

Region絞込みの次のリクエストについて考えます。
<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">   
    <RefinementConfig Name="Region" Expose="true"/>
  </ContentElementConfig>
</Request>

このリクエストは、値がRegion属性に存在するすべてのレコードをリストするレコード・セットから個々の絞込みを返します。