管理属性とその値について

管理属性値は、データ・ドメイン内での管理属性に対する特定の値割当てを表します。管理属性値を通じて、データ・ドメイン内でのレコード絞込みに関する階層関係やその他の有用な情報(シノニムやランキングなど)を表現できます。

通常、管理属性値は次の目的で使用します。
  • データ・レコードの階層情報を表すため。たとえば、管理属性locationは、国(USAやCanadaなど)、州(MAやNYなど)および市(BostonやNew York Cityなど)の値を持つことができます。これらのすべての管理属性値は、階層に編成されます(管理属性値は、Endeca Server索引でそれらを識別する一意の仕様によって、それら自体とそれらの親管理属性値の情報を保持します)。つまり、親管理属性値USA、子管理属性値MA (Massachusetts)および孫管理属性値Bostonを作成できます。
  • 事前定義済の値のセットを保持するため。たとえば、管理属性currencyには、限られた値のセット(dollarsおよびeuros)を定義できます。
  • 各値のシノニムのセットを保持するため。たとえば、シノニムBeantownを管理属性値Bostonに追加できます。
  • 事前定義済の固定ランクを管理属性値に追加するため(フロントエンド・アプリケーション(Studioなど)でエンドユーザーに表示するときのソート方法を制御するため)。

管理属性値は、データ・ドメインにソース・レコードをロードする前に追加します。次に、これらの値(MAやBostonなど)を含むソース・レコードをロードすると、それらがEndeca Serverによって管理属性値として認識されるため、エンドユーザーがそれらの階層、固定ランクやシノニム(指定されている場合)を利用してナビゲートや検索を行えるようになります。

各データ・ドメインのEndeca Server索引内では、追加された各管理属性値(この例ではMAやBostonなど)自体がレコードとして表されます。これらのレコードは、管理属性とそれらの値の追加時に、索引内に作成されるPDR、DDRおよびManaged Attribute Value Description Record (MAVDR)によって記述されます。

構成Webサービスを使用して管理属性値レコードを追加するリクエストの構造は、次のとおりです。
<ns:configTransaction>
        <ns:putManagedAttributeValues>
        <ns1:mav>
            <name>?</name>
            <spec>?</spec>
            <parent>?</parent>
            <managedAttribute>?</managedAttribute>
            <synonym>?</synonym>
            <synonym>?</synonym>
            <rank>?</rank>
        </ns1:mav> 
      </ns:putManagedAttributeValues>
     </ns:configTransaction>
この構造では、specparentmanagedAttributeの各要素は必須で、その他の要素はすべてオプションです。
次の表では、putManagedAttributeValuesmav要素内の各要素について説明します。これらの各要素において、値は属性での割当てを表します。この特定の管理属性値を追加すると、対応する属性は、索引内に作成される記述レコード(PDR、MAVDR)の1つに属することができます。
要素 タイプ 説明
name string (オプション)管理属性値レコードの表示名。管理属性値の追加時にこのプロパティを定義します。たとえば、Bostonという名前を含む管理属性値を定義できます。
<mav><name>Boston</name>...</mav> 
データ・レコードのスキーマ内では、この管理属性値の作成時に、そのMAVDRが作成されます。MAVDRは、mdex-dimension-value_Nameに対する割当てを取得します。
<attribute name="mdex-dimension-value_Name" type="mdex:string">Boston</attribute>
spec string (必須)管理属性値レコードの一意の識別子(仕様)。たとえば、bosという仕様を含む管理属性値を定義できます。
<mav>
 <spec>bos</spec>
 ...
</mav> 
データ・レコードのスキーマ内では、この値は同様に、関連付けられている管理属性(キーmy_attr_key)のDDRの追加時に作成されるmdex-dimension_my_attr_key_Spec属性に対する割当てとなります。たとえば、キーがlocationである管理属性の場合、そのDDRの作成時に別のレコードが自動的に作成されます(つまり、mdex-dimension_location_SpecのPDR)。これは常に一意の単一割当てとして作成されます(これに対する値によって、追加する管理属性値を一意に識別するため)。次に、管理属性値(bosなど)を追加すると、値bosがmdex-dimension_location_Specに対する割当てとなります。
<attribute name="mdex-dimension_location_Spec" type="mdex:string">bos</attribute>
注意: キーがvalueである管理属性のDDRの作成時にそのmdex-dimension-value_Spec属性に独自の値を指定しなかった場合、Endeca Serverによって管理属性値の仕様のPDRを作成する際にmdex-dimension_value_Spec形式のネーミング構造が自動的に使用されます。
parent string (必須)親管理属性値の仕様。1つだけ許可されます。前述の例では、仕様がbosである管理属性値の場合、親管理属性値の仕様はMAです(指定するには、すでに存在している必要があります)。
<mav>
 <spec>bos</spec>
 <parent>MA</parent>
 ...
</mav> 
データ・レコードのスキーマ内では、この値は同様に、関連付けられている管理属性(キーmy_attr_key)のDDRの追加時に作成されるmdex-dimension_my_attr_key_Parent属性に対する割当てとなります。たとえば、キーがlocationである管理属性の場合、そのDDRの作成時に別のレコードが自動的に作成されます(つまり、mdex-dimension_location_ParentのPDR)。これは常に単一割当てとして作成されます。次に、管理属性値(MAなど)を追加すると、値MAが別の管理属性値bosのmdex-dimension_location_Parentに対する割当てとなります。
<attribute name="mdex-dimension_location_Parent" type="mdex:string">MA</attribute>
注意: キーがvalueである管理属性のDDRの作成時にそのmdex-dimension-value_Parent属性に独自の値を指定しなかった場合、Endeca Serverによって親管理属性値のPDRを作成する際にmdex-dimension_value_Parent形式のネーミング構造が自動的に使用されます。
managedAttribute string (必須)この管理属性値と関係がある管理属性のキー(仕様)。1つだけ許可されます。管理属性値の追加時に定義します。たとえば、値Boston(仕様bos)の場合、関連付けられている管理属性キーはlocationです。
<mav>
 <spec>bos</spec>
 <managedAttribute>location</managedAttribute>
 ...
</mav> 
データ・レコードのスキーマ内では、この値locationは、この管理属性を定義するDDRの管理属性locationのキーです。
<mdex-dimension_Key>location</mdex-dimension_Key>
追加する管理属性値のMAVDRでは、管理属性locationへの割当てとなります。
<attribute name="mdex-dimension-value_Dimension" type="mdex:string">location</attribute>
rank integer (オプション)管理属性値の固定ランク。1つだけ許可されます。このランクは整数で、Endeca Serverによって管理属性値がエンドユーザーに返されるときに、このランクに従って各管理属性の階層内で管理属性値がランク付けされます。このランクは、Studioなどのフロントエンド・アプリケーションで値を表示する順序に影響します。putManagedAttributeValue操作で管理属性値を追加するときに、オプションでランクを指定できます(mdex-dimension-value_Rank)。
<ns1:mav>
 <spec>bos</spec>
 <rank>3</rank>
  ...
</mav>
データ・レコードのスキーマ内では、ランクの値(3など)は、追加する管理属性のMAVDRのmdex-dimension-value_Rank属性に対する割当てとなります。
<attribute name="mdex-dimension-value_Rank" type="mdex:integer">3</attribute>
synonym string (オプション)管理属性値の1つ以上のシノニムのリスト。オプションで、管理属性値の追加時に1つ以上のシノニムを指定できます。たとえば、値Bostonの場合、シノニムとしてBeantownおよびthe Hubを指定できます。
<ns1:mav>
 <spec>bos</spec>
 <synonym>Beantown</synonym>
 <synonym>the Hub</synonym>
 ...
</mav>
データ・レコードのスキーマ内では、シノニムの値(Beantownなど)は、追加する管理属性のMAVDRのmdex-dimension-value_Synonyms属性に対する割当てとなります。
<attribute name="mdex-dimension-value_Synonyms" type="mdex:string">Beantown</attribute>

結論として、各管理属性値レコードは、その管理属性値に固有である(仕様の値と親の値の)独自のペアで識別されます。次の例では、特定の管理属性の管理属性値を追加する方法を示します。

管理属性locationを作成して、それに管理属性値のセットを関連付ける例を考えてみます。最初の作業は、管理属性自体の作成です。各管理属性にはPDRとDDRが必要であるため、次の省略された例のように、最初に仕様がlocationであるPDRを作成します。
<mdex-property_Key>location</mdex-property_Key>
次に、この管理属性用に、同様に仕様がlocationである関連付けられているDDRを作成します。
<mdex-dimension_Key>location</mdex-dimension_Key>
このDDRを作成すると、2つの追加PDRレコードがEndeca Serverによって自動的に作成されます(DDRで独自の値を指定しなかった場合)。
<mdex-property_Key type="mdex:string" xmlns="">mdex-dimension_location_Parent</mdex-property_Key>
<mdex-property_Key type="mdex:string" xmlns="">mdex-dimension_location_Spec</mdex-property_Key>
次に、構成WebサービスのputManagedAttributeValues操作を使用して、3つの管理属性値を追加できます(これにより、追加された各管理属性値に対してMAVDRが内部的に作成されます)。
<ns:configTransaction>
 <ns:putManagedAttributeValues>
  <ns1:mav>
     <name>USA</name>
     <spec>US</spec>
     <parent>/</parent>
     <managedAttribute>location</managedAttribute>
  </ns1:mav> 
  <ns1:mav>
     <name>Massachusetts</name>
     <spec>MA</spec>
     <parent>US</parent>
     <managedAttribute>location</managedAttribute>
  </ns1:mav> 
  <ns1:mav>
     <name>Boston</name>
     <spec>bos</spec>
     <parent>MA</parent>
     <managedAttribute>location</managedAttribute>
  </ns1:mav> 
 </ns:putManagedAttributeValues>
</ns:configTransaction>
(この例では、単純化のため、ネームスペースが省略されています。ネームスペースはそれぞれ、xmlns:ns="http://www.endeca.com/MDEX/config/services/types/3/0"xmlns:ns1="http://www.endeca.com/MDEX/config/XQuery/2009/09"を表します。)

作成した管理属性値は、Endeca Serverによって特定の管理属性に添付されます。この例では、管理属性locationに対して管理属性値Bostonを作成すると、そのDDRを追加することによってlocation管理属性の作成時に自動的に作成されたmdex-dimension_location_Specに管理属性値の仕様bosが割り当てられます。同様に、mdex-dimension_location_Parentに管理属性値の親MAが割り当てられます。

注意: この例では、ランクとシノニムが省略されています。シノニムの追加方法の詳細は、「管理属性値の追加」を参照してください。ランクの追加方法の詳細は、「ランクの追加と更新」を参照してください。