管理属性の階層フィルタ

EQLレコード・フィルタは、検索条件に管理属性値を指定できます。

管理属性値を指定するには、2つのEQL階層関数を使用できます。
階層関数
IS_ANCESTOR(managedAttribute, valueSpec) 特定の属性が指定された属性または祖先の場合、レコードを含めます。属性が指定された階層のメンバーではない場合、問合せ時のエラーになります。
IS_DESCENDANT(managedAttribute, valueSpec) 特定の属性が指定された属性または子孫の場合、および指定された値の仕様が一致する場合、レコードを含めます。属性が指定された階層のメンバーではない場合、問合せ時のエラーになります。

どちらの関数の場合も、managedAttributeは管理属性の名前、valueSpec (文字列で指定)は管理属性値の仕様(値名ではない)になります。

次の例では、IS_DESCENDANT関数が使用されます。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
        <State>
          <DataSourceFilter Id="DataFlt">
             <filterString>COUNTRY_NAME = 'United States of America'</filterString>
          </DataSourceFilter>
          <SelectionFilter Id="MavFlt">
             <filterString>IS_DESCENDANT(ProductCategory, '140')</filterString>
          </SelectionFilter>
        </State>
        <RecordListConfig Id="Recs" MaxPages="20">
           <RecordsPerPage>5</RecordsPerPage>
        </RecordListConfig>
      </Request>
    </soapenv:Body>
</soapenv:Envelope>
検索は、仕様が140で、ProductCategory管理属性の子孫である管理属性値でフィルタ処理されます。返される各値には次の割当てが必要です。
<cs:Record>
   ...
   <cs:attribute name="ProductCategory" type="mdex:string" displayName="Endurance Racing">140</cs:attribute>
   ...
</cs:Record>