対話Webサービスでのグループの取得

返される属性がグループの一部として構成されている場合、絞込みを要求するリクエストはグループもリクエストします。

つまり、対話Webサービスは、絞込みを返すタイプの問合せに対してグループを返します。対話Webサービスから絞込みとして返される属性は、それぞれのグループの一部として返されます。

グループのリクエストは、対話Webサービス・リクエストのRefinementGroupConfig要素で実装されます。この要素には、ナビゲーション問合せで返された有効なすべてのプロパティのうち、実際の絞込み値を返す必要がある属性をリストする1つ以上のRefinementConfig要素が含まれます。最上位レベルの絞込み値のみ返されることに注意してください。

複合タイプRefinementGroupConfigの書式は次のとおりです。
<complexType name="RefinementGroupConfig">
   <sequence>
     <element maxOccurs="unbounded" minOccurs="0" 
       name="RefinementConfig" type="cs_v3_0:RefinementConfig"/>
   </sequence>
   <attribute name="Name" type="cs_v3_0:NonEmptyString" use="required"/>
   <attribute name="Expose" type="boolean" use="required"/>
   <attribute name="ExposeAllPropertyRefinements" type="boolean"/>
 </complexType>
注意: タイプ"cs_v2_0:RefinementConfig"は、Webサービスのバージョンを示します。この例では、バージョンは2.0です。これは、使用している(および現在サポートされている)対話Webサービスのバージョンに対応する場合と対応しない場合があります。
属性の意味は次のとおりです。
属性 説明
Name 必須です。グループの名前。
Expose 必須です。グループのすべての最上位レベル属性を公開する場合はtrueを指定し、グループのルートのみ表示するにはfalse (デフォルト)を指定します。
注意: 属性が管理属性の場合は、ルートの下の属性の階層が含まれます。これらのネストされた属性が公開されるかどうかは、管理属性内の属性ごとにRefinementConfig要素のExpose属性で制御されます。Exposeのデフォルトはfalseです。
ExposeAllPropertyRefinements オプションです。trueに設定されている場合は、属性絞込みを持つ各管理属性の下のすべての属性絞込みを公開するかどうかを指定します。デフォルトはfalseです。

この設定は、属性絞込みごとのRefinementConfig要素のExpose属性よりも優先されます。

グループは、1つ以上のNavigationMenu要素を含むNavigationMenuItemGroup要素に返され、それぞれの要素はNavigationMenuItemに絞込みを返します。次に、NavigationMenuItemGroupの書式を示します。
<complexType name="NavigationMenuItemGroup">
  <sequence>
    <element maxOccurs="unbounded" minOccurs="0" name="NavigationMenuItem" 
      type="cs_v3_0:NavigationMenuItem"/>
  </sequence>
  <attribute name="HasRefineableProperties" type="boolean"/>
  <attribute name="Name" type="string" use="required"/>
</complexType>

必須属性HasRefineablePropertiesは、さらに絞込みが可能な属性がグループにあるかどうかを指定します。

注意: フロントエンド・アプリケーションでグループの動作を制御する観点では、別の属性が役立つ場合があります。それは、ブール型のExposureControl属性で、この属性はNavigationMenuItemにあります。falseに設定される場合は(デフォルト)、NavigationMenuItem内に含まれる絞込みを公開しません。trueに設定される場合は、絞込みのコレクションを公開します。

グループをリクエストする手順:

対話Webサービス・リクエストで、各グループについて、その名前と、RefinementGroupConfig要素のExpose属性の値を指定することでグループのすべての最上位レベル属性を公開するかどうかを指定します。オプションで、グループ内の絞込みにこの属性を使用することもできます。
次の例では、WineGroupおよびProvenanceGroupという2つのグループがリクエストされますが、最上位レベル・プロパティの公開はWineGroupに対してのみリクエストされます。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
  <State/>
  <NavigationMenuConfig MaximumRefinementCount="10" ReturnFullPath="true" 
    ExposeAllRefinements="false" Id="Navigation">
    <RefinementGroupConfig Name="WineGroup" Expose="true">
       <RefinementConfig Name="Flavors" Expose="true" MaximumCount="2"/>
    </RefinementGroupConfig>
    <RefinementGroupConfig Name="ProvenanceGroup" Expose="false"/>
  </NavigationMenuConfig>
</Request>

対話Webサービスの結果には、絞込みの公開がリクエストされたWineGroupという1つのグループに対する結果が含まれます。

注意: グループが対話Webサービスで取得される場合、属性の順序は、(Studioまたは構成Webサービスを使用して)グループの最初の定義時に属性がリストされた順序で決まります。
<cs:NavigationMenu Id="Navigation">
   <cs:NavigationMenuItemGroup Name="WineGroup" HasRefineableProperties="true">
      <cs:NavigationMenuItem Name="WineType" DisplayName="Wine Type" MultiSelect="None" HasMore="true">
         <cs:ExposureControl Exposed="false"/>
         <cs:RootDimensionValue DimensionName="WineType" Spec="/"/>
         <cs:FullPath>
            <cs:DimensionValue DimensionName="WineType" Spec="/">WineType</cs:DimensionValue>
         </cs:FullPath>
      </cs:NavigationMenuItem>
      <cs:NavigationMenuItem Name="Wine" DisplayName="Wine Name" MultiSelect="None" HasMore="true">
         <cs:ExposureControl Exposed="false"/>
      </cs:NavigationMenuItem>
      <cs:NavigationMenuItem Name="Region" DisplayName="Region Grown" MultiSelect="None" HasMore="true">
         <cs:ExposureControl Exposed="false"/>
      </cs:NavigationMenuItem>
      <cs:NavigationMenuItem Name="Flavors" DisplayName="Flavors" MultiSelect="None" HasMore="true">
         <cs:ExposureControl Exposed="true"/>
         <cs:Refinement Name="Flavors" Spec="Almond" Label="Almond" Count="1312"/>
         <cs:Refinement Name="Flavors" Spec="Anise" Label="Anise" Count="1626"/>
      </cs:NavigationMenuItem>
   </cs:NavigationMenuItemGroup>
</cs:NavigationMenu>