属性ごとの適用済の絞込みの取得

任意の絞込みに対して、提案される絞込みだけでなく適用済の絞込み(明示的に選択されたものと暗黙的なものの両方)も取得する対話Webサービス・リクエストを発行できます。

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

RefinementConfig要素(NavigationMenuConfigのサブ要素)にある次の2つの属性により、指定した属性ごとに明示的に選択された絞込みと暗黙的な絞込みを取得するかどうかを制御します。
  • IncludeExplicitSelectionsでは、この属性の明示的に選択された絞込みをEndeca Serverで取得するかどうかを指定します。デフォルトはfalseです。
  • IncludeImplicitSelectionsでは、この属性の暗黙的な絞込みをEndeca Serverで取得するかどうかを指定します。デフォルトはfalseです。

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

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

(各属性のRefinementConfigで)属性ごとに行った設定によって、(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"

次のリクエストの例では、特定のナビゲーション状態で問合せを作成すると仮定しています。この状態では、エンドユーザーがすでにワイン醸造所L.A.Lenobleの選択を行っています。このリクエストで実行するタスクは2つで、まだユーザーが使用可能な提案される絞込みの次のリストを取得するとともに、指定された3つの各属性に対して、すでに適用済の絞込み(明示的に選択されたものと暗黙的なもの)を取得するように要求します。
<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="false" IncludeAllImplicitSelections="false">
 <ns:StateName>ref_state</ns:StateName>
  <ns:RefinementConfig Name="WineType" Expose="true" IncludeExplicitSelections="true" IncludeImplicitSelections="true"/>
  <ns:RefinementConfig Name="Region" Expose="true" IncludeExplicitSelections="true" IncludeImplicitSelections="true"/>
  <ns:RefinementConfig Name="Winery" Expose="true" IncludeExplicitSelections="true" IncludeImplicitSelections="true"/>
 </ns:NavigationMenuConfig>
</ns:Request>
このリクエストの説明は、次のとおりです。
  • NavigationMenuConfigでは、明示的に選択された絞込みと暗黙的な絞込みを返すためのグローバル設定がfalseに設定されています。
    IncludeAllExplicitSelections="false" IncludeAllImplicitSelections="false"
  • リクエストの各RefinementConfigでは、WineType、Region、Wineryの各属性に対して暗黙的な絞込みと明示的に選択された絞込みの両方にtrueが指定されています。このため、該当する絞込みがこの絞込みのナビゲーション状態に含まれている場合、レスポンスではそれらの絞込みが取得されます。
    <ns:RefinementConfig Name="Region" Expose="true" 
    IncludeExplicitSelections="true" 
    IncludeImplicitSelections="true"/>
    RefinementConfigの設定はNavigationMenuConfigの設定をオーバーライドするため、これらの属性に適用済の絞込みが存在する場合は、それらが取得されます。Expose="true"の設定にも注意してください。この設定では、取得された絞込みを実際にWebサービス・レスポンスで返すかどうかを制御します。
このリクエストに対する省略されたレスポンスは、次のとおりです(ネームスペースは省略されています)。
<cs:Results>
 <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>

以下でこのレスポンスについて確認していきます。

属性Regionには、使用可能な提案される絞込みはありませんが、1つの暗黙的な絞込みChampagneがあります。
<cs:NavigationMenuItem Name="Region" ... >
 ...
 <cs:RootDimensionValue DimensionName="Region" Spec="/"/>
 <cs:ImplicitRefinement Name="Region" Spec="Champagne" Label="Champagne"/>
</cs:NavigationMenuItem>
これは、このデータセットにおいて、Champagne地方にあるA.R. Lenobleワイン醸造所のワインは3種類しかなく、生産しているのはシャンパンのみであるためです。したがって、状態のフィルタでワイン醸造所としてL.A.Lenobleを指定することにより(SelectedRefinementFilter Name="Winery" Spec="A.R. Lenoble")、ユーザーはさらに2つの絞込み(Regionの値ChampagneとWineTypeの値Sparkling)を暗黙的に選択することになります。
属性WineTypeでは、提案される絞込みのリストと、1つの暗黙的な絞込みSparklingが返されます。
<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"/>
 ...
 <cs:ImplicitRefinement Name="WineType" Spec="Sparkling" Label="Sparkling"/>
</cs:NavigationMenuItem>
最後の属性Wineryには、残りの提案される絞込みはありませんが、1つの選択済絞込みA.R. Lenobleがあります。
<cs:NavigationMenuItem Name="Winery" ... >
...
 <cs:SelectedRefinement Name="Winery" Spec="A.R. Lenoble" Label="A.R. Lenoble" Count="3"/>
</cs:NavigationMenuItem>

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

これらの各属性は階層を持つ管理属性であるため、リクエストにはRootDimensionValue要素とFullPath要素の情報も含まれています。