管理属性値の追加

通常、複数の管理属性値を追加します。これらのセットを追加するには、最初に、値を関連付ける管理属性を定義します。次に、管理属性値を追加して、管理属性に関連付けます。

このトピックの手順では、例を利用して、階層を定義する管理属性値のセットの追加方法を示します。例では、親管理属性値USA、管理属性値MassachusettsおよびNew York State、それらの子孫管理属性値BostonおよびNew Yorkを追加することによって、管理属性locationの管理属性値の階層を構築します。

注意: Endeca Serverの2つの異なるWebサービス(構成Webサービスおよびデータ・インジェストWebサービス)を使用して、管理属性値を追加できます。このトピックでは、構成WebサービスのPutManagedAttributeValuesを使用した追加方法について説明します。管理属性値は追加後にデータ・ドメインのEndeca Server索引でレコードとして表されるため、データ・インジェストWebサービスを使用して、データ・レコードの追加前に管理属性値を非データ・レコードとして追加することもできます。詳細は、『Oracle Endeca Serverデータ・ローディング・ガイド』を参照してください。

このトピックで使用する構成Webサービス・リクエストの例は省略されており、ネームスペースが表示されていません。使用されるネームスペースは、xmlns:ns="http://www.endeca.com/MDEX/config/services/types/3/0"xmlns:ns1="http://www.endeca.com/MDEX/config/XQuery/2009/09"です。

1つ以上の管理属性値を追加する前に、次の要件に注意してください。
  • 管理属性は、データ・ドメインの索引に存在する必要があります。つまり、その関連付けられたPDRおよびDDRが作成されている必要があります。DDRが存在しない場合は、管理属性値を追加するのと同じリクエストでDDRを作成できることに注意してください。
  • (このトピックの手順で示すように)DDRを作成する場合は、mdex-dimension-value_Parentおよびmdex-dimension-value_Specの値の指定を省略できます(DDRではこれらのプロパティはオプションです)。管理属性のDDRを作成するputDimensionリクエストでこれらの値を明示的に指定しなかった場合、Endeca Serverによって値が自動的に作成され、名前が割り当てられます。たとえば、管理属性locationの親および仕様を指定しなかった場合、mdex-dimension_location_Parentおよびmdex-dimension_location_Specが作成されます。これらのプロパティを指定する場合は、独自の名前を割り当てることができます。これらのプロパティを指定するかどうかにかかわらず、DDRを追加すると、Endeca Serverによって索引内にこれらの各プロパティ用として2つのPDRレコードが作成されます。これらの2つの記述レコードは非データ・レコードを表し、追加された各管理属性値レコードを(仕様でその値を介して)一意に識別する内部構造を提供するために必要であり、さらに階層を(仕様と親属性の両方でその値を介して)定義します。
  • 管理属性の最上位の管理属性値を作成する場合は、その親管理属性値に対して記号"/"を指定します。これは、管理属性の作成時にルート管理属性値の仕様も自動的に索引内に作成され、その値が"/"であるためです。
  • PutManagedAttributeValuesで管理属性値を追加する場合、その名前、シノニムおよびランク属性はオプションです。他のすべてのパラメータ(仕様、親管理属性値および管理属性仕様)は必須です。
  • そのシノニムをオプションで追加できます(これは、Endeca Serverによって検索で使用されます)。すでに追加されている管理属性値ではシノニムを変更または更新できないため、どのシノニムが必要になるかを計画します。後でさらにシノニムを追加する必要が生じた場合は、既存の管理属性を削除し(これにより、関連付けられた管理属性値がすべて削除されます)、新しい値およびシノニムに置き換えます。
  • 管理属性値を新しい名前で更新できます。この場合、既存の値にPutManagedAttributeValuesを使用するときに新しい名前を指定すると、値がその名前で更新されます。
  • 管理属性値に固定ランクを追加(および更新)することもできます。ランクは、このトピックの例には含まれていません。ランクの追加の詳細は、「ランクの追加と更新」を参照してください。
  • 1つの操作で複数の管理属性値を追加できます。ただし、いずれかの値が正しく指定されなかった場合は、Endeca Serverでエラーが発生して構成Webサービス・リクエスト全体が失敗し、どの値も追加されません。

管理属性値のセットを追加する手順:

  1. 次の例に示すように、Webサービス・リクエストを発行するsoapUIまたは別のツールで、構成Webサービスにアクセスします。
    http://localhost:7001/endeca-server/ws/config/data_domain?wsdl

    locallhost7001はEndeca Serverのホストとポートで、data_domainはデータ・ドメインの名前です。

  2. まず、管理属性に必要な構造を作成します。
    1. PDR "location"を作成します。
      <ns:configTransaction>
               <ns:putProperties>
                 <ns1:record>
                     <mdex-property_DisplayName>Location</mdex-property_DisplayName>
                     <mdex-property_IsSingleAssign>false</mdex-property_IsSingleAssign>
                     <mdex-property_IsTextSearchable>true</mdex-property_IsTextSearchable>
                     <mdex-property_IsUnique>false</mdex-property_IsUnique>
                     <mdex-property_IsPropertyValueSearchable>true</mdex-property_IsPropertyValueSearchable>
                     <mdex-property_Key>location</mdex-property_Key>
                     <mdex-property_TextSearchAllowsWildcards>true</mdex-property_TextSearchAllowsWildcards>
                     <mdex-property_Type>mdex:string</mdex-property_Type>
                 </ns1:record>
               </ns:putProperties>
             </ns:configTransaction>

      これにより、管理属性を作成するために必要な標準属性locationが作成されます。

      注意: この例では、このPDRにあるオプションのmdex-property_IsSingleAssignプロパティの値はfalseですが、このプロパティのデフォルト設定はtrueであることに注意してください(プロパティを指定しない場合は、trueの値が使用されます)。この場合は、関連付けられた管理属性に複数の値を割り当てられるように、falseの設定をお薦めします(必須ではありません)。
    2. DDR "location"を作成します。
      <ns:configTransaction>
                <ns:putDimensions>
                  <ns1:record>
                     <mdex-dimension_Key>location</mdex-dimension_Key>
                     <mdex-dimension_EnableRefinements>true</mdex-dimension_EnableRefinements>
                     <mdex-dimension_IsDimensionSearchHierarchical>true</mdex-dimension_IsDimensionSearchHierarchical>
                     <mdex-dimension_IsRecordSearchHierarchical>true</mdex-dimension_IsRecordSearchHierarchical>
                  </ns1:record>
               </ns:putDimensions>
              </ns:configTransaction>

      これにより、管理属性値のセットを追加する管理属性locationが作成されます。

      このリクエストでは、さらに索引内に仕様および親の2つのPDRが作成されます(listPropertiesを実行すると確認できます)。つまり、これにより以下が作成されます。
      <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>
      • mdex-dimension_location_Specは、割当てが、追加する管理属性値の仕様である属性の名前で、これは管理属性値レコードを一意に識別します。
      • mdex-dimension_location_Parentは、割当てがこの管理属性値の親管理属性値の仕様である属性の名前です。

      仕様および親の属性に対する割当ては重要です(このメカニズムに基づいて、Endeca Serverによりレコードとして管理属性値がデータ・ドメインのその索引内に作成されます)。

      (例のステップ2.bで示すように)DDRを作成するリクエストにこれらの2つの属性を含めない場合は、現在の管理属性(location)の名前を付加することによって仕様および親のPDRの名前が自動的に割り当てられます。一方、次の別の例で示すように、リクエストにこれらの属性を明示的に含める場合は、独自の名前を割り当てることができます。この例では、これらの2つの属性に対して値loc_parentおよびloc_specを明示的に指定して管理属性locationを追加する方法を示しています。
      <ns:configTransaction>
               <ns:putDimensions>
                <ns1:record>
                 <mdex-dimension_Key>location</mdex-dimension_Key>
                 <mdex-dimension-value_Parent>loc_parent</mdex-dimension-value_Parent>
                 <mdex-dimension-value_Spec>loc_spec</mdex-dimension-value_Spec>
                 <mdex-dimension_EnableRefinements>true</mdex-dimension_EnableRefinements>
                 <mdex-dimension_IsDimensionSearchHierarchical>true</mdex-dimension_IsDimensionSearchHierarchical>
                 <mdex-dimension_IsRecordSearchHierarchical>true</mdex-dimension_IsRecordSearchHierarchical>
                </ns1:record>
               </ns:putDimensions>
              </ns:configTransaction>
      loc_parentは、stringタイプ、単一割当てである必要があり、データ・レコードからの割当てを持つことができないことに注意してください。loc_spec属性は、stringタイプ、一意、単一割当てである必要があり、データ・レコードからの割当てを持つことができません。

      この例は、これ以降の手順では使用しません。

      管理属性locationの追加が終了したら、それに対して階層的な編成で管理属性値を追加できます。

  3. 管理属性値レコードUSAを追加します。
    <ns:configTransaction>
            <ns:putManagedAttributeValues>
            <ns1:mav>
                <name>USA</name>
                <spec>US</spec>
                <parent>/</parent>
                <managedAttribute>location</managedAttribute>
            </ns1:mav> 
          </ns:putManagedAttributeValues>
         </ns:configTransaction>

    これは階層内で最上位の値になるため、その親管理属性値が"/"となっていることに注目してください。この記号"/"は、ルート管理属性値に対して指定する必要があります。また、この値に対して関連付けられた管理属性はlocationです。これは、管理属性値の作成前に存在している必要があります。

  4. 同様の方法で、同じ管理属性locationに対して、親の値USAの下に管理属性値MassachusettsおよびNew York Stateを追加します。
    <ns:configTransaction>
            <ns:putManagedAttributeValues>
            <ns1:mav>
                <name>Massachusetts</name>
                <spec>MA</spec>
                <parent>US</parent>
                <managedAttribute>location</managedAttribute>
             </ns1:mav>
             <ns1:mav>
                <name>New York State</name>
                <spec>NY</spec>
                <parent>US</parent>
                <managedAttribute>location</managedAttribute>
            </ns1:mav>  
          </ns:putManagedAttributeValues>
         </ns:configTransaction>
  5. 同じ管理属性locationに対して、親管理属性値MassachusettsおよびNew York Stateの下に、それぞれ管理属性値BostonおよびNew York Cityを追加します。
    <ns:configTransaction>
            <ns:putManagedAttributeValues>
            <ns1:mav>
                <name>Boston</name>
                <spec>bos</spec>
                <parent>MA</parent>
                <managedAttribute>location</managedAttribute>
                <synonym>BeanTown</synonym>
                <synonym>The Hub</synonym>
            </ns1:mav>
            <ns1:mav>
                <name>New York city</name>
                <spec>nyc</spec>
                <parent>NY</parent>
                <managedAttribute>location</managedAttribute>
                <synonym>NYC</synonym>
                <synonym>the Big Apple</synonym>
            </ns1:mav>  
          </ns:putManagedAttributeValues>
         </ns:configTransaction>

    あるいは、単一のリクエストで(国、州および市の)すべての管理属性値を追加することもできます。

    それぞれの管理属性値に2つのシノニムがあることに注目してください。シノニムの詳細は、「操作のサマリー」を参照してください。

これで、これらの管理属性値が作成されたので、構成WebサービスのlistManagedAttributeValues操作を使用してそれらをリストできます。