ここでは、Endecaデータ・ドメインのレコードを増分的に更新する方法について説明します。
addOrUpdateRecordsサブ操作(この操作でも新しい割当てを使用して既存のレコードを更新できます)については、「初期ロード後のレコードの追加」で説明します。
レコードを更新すると、デフォルトの順序が変更される可能性があることに注意してください。つまり、レコードの順序がA、B、C、Dの状態でレコードBを更新した場合、レコードA、C、Dの順序は変わりません。ただし、レコードBは更新の結果として移動され、B、A、C、DやA、C、B、Dなどの順序になることがあります。
単一割当て属性、つまりPDRのmdex-property_IsSingleAssignがtrueに設定されている標準属性に、2番目の値は追加できません。colorの例で言えば、colorが単一割当て属性で、レコードにはすでに1つのcolor割当てが存在する場合、2番目のcolor割当てを追加しようとすると失敗します。
レコード属性または属性割当てがwildcardDeleteAssignmentsまたはdeleteAssignmentsのリストで指定され、 addAssignmentsのリストで再度指定されている場合、その属性割当ては削除され、同じトランザクションで再度追加されます。
同一のレコード、標準属性または割当てがいずれかの要素に指定されている場合、重複するエントリは無視されます。
標準割当ての名前を変更する場合、ingestChangesのupdateRecords内には、この操作のみを含めることができます。(同じリクエストに別のupdateRecordsを追加して、他の更新を含めることはできますが、名前が変更される属性を対象にはできません。)
ingestChangesResponseのnumRecordsAffected要素は、ingestChanges操作によって影響を受ける(変更される)レコードの数を示します。
ただし、影響を受けるレコードは、実際には操作で変更されない可能性があります。最終的に出力レコードが入力レコードと同じになる操作では、レコードが影響されるものとしてマークされますが、変更はされません。影響のないこれらの操作タイプとしては、すでに存在する割当ての追加、存在しない割当ての削除、割当てのないレコード・プロパティに対するワイルドカード削除の実行、および割当ての削除に続く同じ割当ての追加があげられます。