6

出力用のドキュメントを作成するJavaサービスを作成しています。しかし、私の構造は次のようになります。 OutPut Doc は最上位のドキュメントです。その中に別のドキュメントに中間ドキュメントと言ってもらいたいのですが、この中間ドキュメントにはキー値が必要です。

しかし、私の質問は、あるドキュメントを別のドキュメントに挿入する方法です。IDataUtil には、キーを文字列として要求し、値をオブジェクトにすることができる put メソッドがあることがわかります。

私のコードはIDataUtil.put(idcvalueDoc, "Body", FullValue.toString());

しかし、このボディは文字列であってはならず、文書であるべきです。ある文書を別の文書に挿入したいのです。

私を助けてください

出力ドキュメント構造のイメージ

4

4 に答える 4

7

目的を達成するには、次のことを行う必要があります。

  1. 中間Doc IData オブジェクトを作成する
  2. 必要に応じてキーと値のタプルを中間ドキュメントに追加します
  3. outputDoc IData オブジェクトを作成する
  4. 中間ドキュメントをキーと値のタプルとして outputDoc に追加します
  5. outputDoc をパイプラインに追加する

以下は、これを示す Java サービスの例です (intermediateDoc に追加されたキーと値のタプルは、ここでは便宜上ハードコーディングされていることに注意してください)。

public static final void exampleService(IData pipeline) throws ServiceException {
  IDataCursor pipelineCursor = pipeline.getCursor();

  try {
    // create an intermediateDoc IData object
    IData intermediateDoc = IDataFactory.create();
    // create a cursor to use to add key value tuples to the intermediateDoc
    IDataCursor intermediateCursor = intermediateDoc.getCursor();
    // add key value tuples as required to the intermediateDoc
    IDataUtil.put(intermediateCursor, "key1", "value1");
    IDataUtil.put(intermediateCursor, "key2", "value2");
    // ...
    // destroy the intermediateCursor when done adding key value tuples
    intermediateCursor.destroy();

    // create an outputDoc IData object
    IData outputDoc = IDataFactory.create();
    // create a cursor to use to add key value tuples to the outputDoc
    IDataCursor outputCursor = outputDoc.getCursor();
    // add the intermediateDoc to the outputDoc
    IDataUtil.put(outputCursor, "intermediateDoc", intermediateDoc);
    // destroy the outputCursor when done adding key value tuples
    outputCursor.destroy();

    // add the outputDoc to the pipeline
    IDataUtil.put(pipelineCursor, "outputDoc", outputDoc);
  } finally {
    // destroy the pipelineCursor
    pipelineCursor.destroy();
  }
}
于 2014-04-09T22:15:04.033 に答える