主キー属性の追加

新規レコードを追加する前に、レコードに主キー属性を一意に割り当てる必要があります。

主キー属性のPDRの追加

データ・インジェストWebサービスで新規レコードを追加する際、Endecaデータ・ドメインに主キー属性がすでに存在するかどうかの確認が行われます。空のデータ・ドメインを使用している場合は、レコードを追加する前に、レコード内で主キー属性として機能させる属性を指定し、そのPDRをデータ・ドメインに追加する必要があります。

次の例は、partIDという名前の主キー属性のPDRを追加する方法を示しています。このPDRのmdex-property_IsUnique属性がtrueに設定されていることに注意してください。この設定により、属性partIDが主キー属性として識別されます。mdex-property_IsSingle属性は、その属性から1つの割当てのみがレコードに設定されるようにする場合に、falseに設定します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
   xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
<soapenv:Header/>
<soapenv:Body>
 <ns:ingestChanges>
  <ns:addRecords>
   <ns:record>
    <ns1:attribute name="mdex-property_Key" type="mdex:string">partID</ns1:attribute>
    <ns1:attribute name="mdex-property_DisplayName" type="mdex:string">Part ID</ns1:attribute>
    <ns1:attribute name="mdex-property_Type" type="mdex:string">mdex:string</ns1:attribute>
    <ns1:attribute name="mdex-property_Language" type="mdex:string">en</ns1:attribute>
    <ns1:attribute name="mdex-property_IsSingleAssign" type="mdex:boolean">true</ns1:attribute>
    <ns1:attribute name="mdex-property_IsUnique" type="mdex:boolean">true</ns1:attribute>
    <ns1:attribute name="mdex-property_IsTextSearchable" type="mdex:boolean">false</ns1:attribute>
    <ns1:attribute name="mdex-property_TextSearchAllowsWildcards" type="mdex:boolean">
      false</ns1:attribute>
    <ns1:attribute name="mdex-property_IsPropertyValueSearchable" type="mdex:boolean">
      true</ns1:attribute>
    <ns1:attribute name="system-navigation_Select" type="mdex:string">single</ns1:attribute>
    <ns1:attribute name="system-navigation_Sorting" type="mdex:string">record-count</ns1:attribute>
    <ns1:attribute name="system-navigation_ShowRecordCounts" type="mdex:boolean">true</ns1:attribute>
    <ns1:attribute name="system-property_GroupMembership" type="mdex:string">
      system_properties</ns1:attribute>
   </ns:record>
  </ns:addRecords>
 </ns:ingestChanges>
</soapenv:Body>
</soapenv:Envelope>
これで、データ・ドメイン内に主キー属性partIDが作成されたので、次の例では、主キー属性の割当てがpartID=P123であるレコードの新規作成方法を示します。この例では、データ・インジェストWebサービスのingestChanges操作のaddRecords要素を使用します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
     xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
  <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
        <ns:addRecords>
            <ns:record>
             <ns1:attribute name="partID" type="mdex:string">P123</ns1:attribute>
           </ns:record>
         </ns:addRecords>
       </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>

主キー属性の値

存在しない属性を主キーとして指定すると、データ・インジェストWebサービスによって標準属性が自動的に作成されます。

次の表に、主キー属性で使用する必要のある設定を示します。mdex-property_IsUnique (これはtrueに設定する必要があります)を除く他のすべての主キー属性では、PDRにシステムのデフォルト設定を使用できます。データ・ドメインにまだレコードを追加していない場合は、主キー属性のPDRのすべての設定を変更できます(ただし、mdex-property_IsUniqueは常にtrueに設定されている必要があるので変更できません)。
PDRプロパティ デフォルト設定
mdex-property_Key リクエストに指定された名前に設定されます。
mdex-property_Type リクエストに指定されたDgraphプロパティ・タイプに設定されます。プロパティ・タイプが指定されていない場合、デフォルトでmdex:stringタイプに設定されます。
mdex-property_Language サポートされる言語IDに設定されます。デフォルトではunknownまたは構成WebサービスのsetPropertyDefaultLanguage操作によって設定される言語IDのいずれかに設定されます。
mdex-property_IsPropertyValueSearchable true (属性は値検索で有効です)。
mdex-property_IsSingleAssign false (レコードは属性の複数の値を保持できます)。
mdex-property_IsTextSearchable false (属性はレコード検索で無効です)。
mdex-property_IsUnique true (値を複数のレコードに割り当てることはできません)。
mdex-property_TextSearchAllowsWildcards false (ワイルドカード検索はこの属性で無効です)。
system-navigation_Select single (この属性から絞込みを1つだけ選択できます)。
system-navigation_ShowRecordCounts true (絞込みに対してレコード数が表示されます)。
system-navigation_Sorting record-count (絞込みは、絞込みごとに使用できるレコード数別に、降順でソートされます)。