レコードの削除

データ・インジェストWebサービスでは、実行中のデータ・ドメインからレコードを削除できます。

ingestChangesdeleteRecords操作では、レコードを削除するリクエストを作成できます。リクエストでは、次のリクエスト書式を使用して、削除対象のレコードを1つ以上正しく識別するEQL式を指定する必要があります。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:ns="http://www.endeca.com/MDEX/ingest/2/0" 
  xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
        <ns:deleteRecords>
            <ns:recordSpecifier>?</ns:recordSpecifier>
         </ns:deleteRecords>
       </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>

同じリクエストで複数のレコードを削除できます。レコードの削除操作と、削除対象のレコードの変更を試みる操作を同じリクエストに含めることはできません。

外部トランザクションを開始するトランザクションWebサービスのリクエストの後に、ingestChangesリクエストを送信する場合、そのリクエストでは外部トランザクションIDを指定する必要があります。外部トランザクションが開始されていない場合、リクエストのID属性は省略する必要があります。

データ・ドメインからレコードを削除するには、次の手順を実行します。

  1. データ・ドメインのDgraphプロセスとデータ・インジェスト・サービスの両方が実行されていることを確認します。
  2. deleteRecordsリクエストを作成し(1つのレコードを削除する次の例を参照)、そのリクエストをデータ・インジェスト・サービスに送信します。
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns="http://www.endeca.com/MDEX/ingest/2/0" 
    xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
       <soapenv:Header/>
       <soapenv:Body>
          <ns:ingestChanges>
            <ns:deleteRecords>
                <ns:recordSpecifier>"partID" = 'P123'</ns:recordSpecifier>
               </ns:deleteRecords>
           </ns:ingestChanges>
       </soapenv:Body>
    </soapenv:Envelope>
  3. リクエストの作成後、ingestChangesResponseを参照して、リクエストのトランザクションが成功したかどうかを確認します。
前のサンプル・リクエストから返される成功時のingestChangesResponseは、次のようになります。
<ingest:ingestChangesResponse 
    xmlns:ingest="http://www.endeca.com/MDEX/ingest/2/0">
   <ingest:numPropertiesCreated>0</ingest:numPropertiesCreated>
   <ingest:numRecordsAffected>0</ingest:numRecordsAffected>
   <ingest:numRecordsDeleted>1</ingest:numRecordsDeleted>
</ingest:ingestChangesResponse>
無効であるか存在しない主キーを保持するレコードを指定しても、deleteRecordsサブ操作は失敗しませんが、そのレコードは無視されます。この場合、レスポンスのnumRecordsDeleted要素は値が0 (ゼロ)になります。
<ingest:ingestChangesResponse ...>
   ...
   <ingest:numRecordsDeleted>0</ingest:numRecordsDeleted>
</ingest:ingestChangesResponse>