すべての属性に対する適用済の絞込みの取得

デフォルトでは、エンドユーザーが問合せを作成してガイド付きナビゲーション・エクスペリエンスの一部としていくつかの絞込みを選択した場合、Endeca Serverによって、適用済の絞込み(明示的に選択されたものと暗黙的なもの)は返されません。つまり、デフォルトでは、エンドユーザーは、返されるどの絞込みを選択しても結果セットをさらに絞り込むことができます。ただし、絞込みとして使用されるすべての属性に対して、提案される絞込みだけでなく適用済の絞込み(明示的に選択されたものと暗黙的なもの)も取得するナビゲーション・メニューの対話Webサービス・リクエストを発行できます。

対話WebサービスのNavigationMenuConfig要素にある次の2つの設定により、すべての属性の明示的に選択された絞込みと暗黙的な絞込みを返すかどうかを制御します。
  • IncludeAllExplicitSelectionsでは、明示的に選択された絞込みをEndeca Serverで取得するかどうかを指定します。デフォルトはfalseです。
  • IncludeAllImplicitSelectionsでは、暗黙的な絞込みをEndeca Serverで取得するかどうかを指定します。デフォルトはfalseです。

任意の組合せでtruefalseの値を使用できます。

絞込みを取得したら、ExposeAllRefinements="true"の設定により、絞込みをWebサービス・レスポンスでも返すかどうかを制御します。

NavigationMenuConfigの構造は次のとおりです。
<ns:NavigationMenuConfig Id="?" 
ExposeAllRefinements="?" 
ReturnFullPath="false" 
MaximumRefinementCount="?" 
IncludeAllExplicitSelections="false"
IncludeAllImplicitSelections="false">
  </ns:StateName>
   <ns:RefinementConfig Name="?" 
    Spec="?" Expose="false" OrderByRecordCount="false" MaximumCount="?" 
    IncludeExplicitSelections="false" IncludeImplicitSelections="false"/>
</ns:NavigationMenuConfig>

例: すべての属性に対する適用済の絞込みの完全なリストの取得

これらの例では、次のネームスペースが省略されています。xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/MDEX/conversation/3/0" xmlns:typ="http://www.endeca.com/MDEX/eql_parser/types"

次のリクエストの例では、特定のナビゲーション状態で問合せを作成します(ユーザーがこの状態までナビゲートしたと仮定しています)。状態内には絞込みフィルタが含まれているため、A.R.Lenobleという特定のWineryに結果が絞り込まれます。このリクエストでは、まだ使用可能な提案される絞込みのリストを取得するとともに、すべての絞込みに対して、すでに適用済の絞込み(明示的に選択されたものと暗黙的なもの)を取得します。

<ns:Request>
 <ns:State>
  <ns:Name>ref_state</ns:Name>
  <ns:SelectedRefinementFilter Name="Winery" Spec="A.R. Lenoble"/>
 </ns:State>
 <ns:NavigationMenuConfig Id="NavigationMenu" ExposeAllRefinements="true" 
 ReturnFullPath="true" 
 IncludeAllExplicitSelections="true" 
 IncludeAllImplicitSelections="true">
   <ns:StateName>ref_state</ns:StateName>
   <ns:RefinementConfig Name="WineType" Expose="true"/>
   <ns:RefinementConfig Name="Region" Expose="true"/>
   <ns:RefinementConfig Name="Winery" Expose="true"/>
  </ns:NavigationMenuConfig>
</ns:Request>
このリクエストでは、ナビゲーション・レベルで適用済の絞込みの両方のタイプ(暗黙的なものと明示的に選択されたもの)に対してtrueが指定されています。このため、該当する絞込みがWinery A.R.Lenobleの現在のナビゲーション状態に含まれている場合、レスポンスでは、その絞込みが、提案される絞込みのリストとともに取得されます。ExposeAllRefinements="true"である場合にのみ、適用済の絞込みの完全なリストがリクエストで返されることに注意してください。また、このリクエストでは、3つの属性(WineType、RegionおよびWinery)に対してすべての絞込み値を公開するように要求します。
このリクエストに対するレスポンスは、次のとおりです(ネームスペースは省略されています)。
<cs:Result>
 <State>
   <Name>ref_state</Name>
   <SelectedRefinementFilter Name="Winery" Spec="A.R. Lenoble"/>
 </State>
 <cs:NavigationMenu Id="NavigationMenu">
    <cs:NavigationMenuItem Name="Region" DisplayName="Region" MultiSelect="None" 
    HasMore="false">
      <cs:ExposureControl Exposed="true"/>
      <cs:RootDimensionValue DimensionName="Region" Spec="/"/>
      <cs:ImplicitRefinement Name="Region" Spec="Champagne" Label="Champagne"/>
    </cs:NavigationMenuItem>
    <cs:NavigationMenuItem Name="Winery" DisplayName="Winery" MultiSelect="None"
    HasMore="false">
      <cs:ExposureControl Exposed="true"/>
      <cs:RootDimensionValue DimensionName="Winery" Spec="/"/>
      <cs:SelectedRefinement Name="Winery" Spec="A.R. Lenoble" Label="A.R. Lenoble" Count="3"/>
    </cs:NavigationMenuItem>
    <cs:NavigationMenuItem Name="WineType" DisplayName="Wine Type" MultiSelect="None" 
    HasMore="false">
      <cs:ExposureControl Exposed="true"/>
      <cs:Refinement Name="WineType" Spec="Brut Rose" Label="Brut Rose" Count="1"/>
      <cs:Refinement Name="WineType" Spec="Brut Blanc de Blancs" Label="Brut Blanc de Blancs" Count="1"/>
      <cs:Refinement Name="WineType" Spec="Brut" Label="Brut" Count="1"/>
      <cs:RootDimensionValue DimensionName="WineType" Spec="/"/>
      <cs:FullPath>
        <cs:DimensionValue DimensionName="WineType" Spec="/">WineType</cs:DimensionValue>
        <cs:DimensionValue DimensionName="WineType" Spec="Sparkling">Sparkling</cs:DimensionValue>
      </cs:FullPath>
     <cs:ImplicitRefinement Name="WineType" Spec="Sparkling" Label="Sparkling"/>
    </cs:NavigationMenuItem>
 </cs:NavigationMenu>
</cs:Results>

このレスポンスでは、Stateが最初に返され、ワイン醸造所L.A.Lenobleの選択済フィルタが反映されます。その後のNavigationMenuには、Region、Winery、WineTypeの各属性用に3つのNavigationMenuItem要素が含まれています。

レスポンスのRegion属性部分には、暗黙的に選択された絞込み値Champagneが含まれています。
<cs:NavigationMenuItem Name="Region" DisplayName="Region" MultiSelect="None" 
    HasMore="false">
    <cs:ExposureControl Exposed="true"/>
    <cs:RootDimensionValue DimensionName="Region" Spec="/"/>
    <cs:ImplicitRefinement Name="Region" Spec="Champagne" Label="Champagne"/>
  </cs:NavigationMenuItem>
レスポンスのWineType属性部分には、別の暗黙的な絞込みSparklingが含まれています。
<cs:NavigationMenuItem Name="WineType" ...>
    ...
    <cs:ImplicitRefinement Name="WineType" Spec="Sparkling" Label="Sparkling"/>
  </cs:NavigationMenuItem>

これは、このデータセットにおいて、Champagne地方にあるA.R. Lenobleワイン醸造所のワインは3種類しかなく、生産しているのはシャンパンのみであるためです。したがって、状態のフィルタでワイン醸造所としてA.R. Lenobleを指定することにより(SelectedRefinementFilter Name="Winery" Spec="A.R. Lenoble")、ユーザーはさらに2つの絞込み(Regionの値ChampagneとWineTypeの値Sparkling)を暗黙的に選択することになります。

また、Wine属性に対して、絞込みA.R. Lenobleが(リクエストの問合せ状態で選択されたため)WineryのSelectedRefinementとして返されることに注目してください。
<cs:NavigationMenuItem Name="Winery" ...>
    ...
    <cs:SelectedRefinement Name="Winery" Spec="A.R. Lenoble" Label="A.R. Lenoble" Count="3"/>
  </cs:NavigationMenuItem>

ユーザー・インタフェースでは、この情報を使用して、これらのすでに適用済の絞込みを(すでに選択済であるため)選択不可として表示できます。オプションで、これらのどの絞込みが暗黙的に選択されているかをユーザーに示すこともできます。

また、このレスポンスには、このナビゲーション状態でまだ使用可能な提案される絞込みのリストが含まれています。これらは、絞込みWineTypeに対してのみ存在します。
<cs:NavigationMenuItem Name="WineType" ...>
    ...
    <cs:Refinement Name="WineType" Spec="Brut Rose" Label="Brut Rose" Count="1"/>
    <cs:Refinement Name="WineType" Spec="Brut Blanc de Blancs" Label="Brut Blanc de Blancs" Count="1"/>
    <cs:Refinement Name="WineType" Spec="Brut" Label="Brut" Count="1"/>

最後に、リクエストで要求された3つの絞込みはすべて(階層がある)管理属性を対象としているため、RootDimensionValue要素およびFullPath要素内に各絞込みの階層に関する追加情報が返されます。

要約すると、この方法により、すべての属性に対して適用済の絞込みを取得するかどうかを制御できます。このグローバル制御に加えて、明示的に選択された絞込み、暗黙的な絞込みまたはその両方を取得するかどうかを個々の属性ごとに指定することもできます。個々の属性ごとに適用済の絞込みの完全なリストを取得すると、すべての属性に対する適用済の絞込みの取得がオーバーライドされます。詳細は、「属性ごとの適用済の絞込みの取得」を参照してください。