2017-03-01 10 views
0

Watsonのディスカバリサービスでドキュメントと一緒にメタデータを保存できましたが、現在は機能していません。何が起こった?ドキュメントの追加時にメタデータが保存されない

CreateDocumentRequest.Builder createDocumentBuilder = new CreateDocumentRequest.Builder(environmentId, collectionId); 
    JsonObject metadata = new JsonObject(); 
    metadata.addProperty("filename", fileName); 
    createDocumentBuilder.metadata(metadata); 
    createDocumentBuilder.inputStream(documentStream, applicationString); 
    CreateDocumentResponse createDocumentResponse = discovery.createDocument(createDocumentBuilder.build()).execute(); 

https://gateway.watsonplatform.net/discovery/api/v1/environments/[environmentId]/collections/[collectionId]/query?version=2016-11-07&query=&count=&offset=&aggregation=&filter=&return=メタデータ

{ 
"matching_results": 1, 
"results": [ 
    { 
     "id": "7c705482-9902-4976-9c77-25fbe92bf7fa", 
     "score": 1 
    } 
] 

}

なぜそれが動作を停止しましたか?私はこれがブルーから起き始めるための基本的なフレームワークに少し失望しています。それをまとめてIBM!

+0

multipartBuilder.addFormDataPart("metadata", createRequest.getMetadata().toString()); 

を追加しました - あなたは、メタデータを見ていますか? – catbelly

+0

期待していたことがすべて得られます。メタデータはもはや追加されません。 – user3689479

+0

まだ何もありませんか? IBM、あなたは本当に私を失敗させました! – user3689479

答えて

0

あなたの間違いのIBMを修正しました。

com.ibm.watson.developer_cloud.discovery.v1.Discovery.createDocument(CreateDocumentRequest createRequest)では、必要なメタデータ・パーツ(smh)を追加することなく、マルチパート要求が構築されていることがわかります。

私はディスカバリーを拡張し、削除&=メタデータを返す場合は要求...

public ServiceCall<CreateDocumentResponse> createDocument(CreateDocumentRequest createRequest) { 
    Validator.notEmpty(createRequest.getEnvironmentId(), "environment_id cannot be empty"); 
    Validator.notEmpty(createRequest.getCollectionId(), "collection_id cannot be empty"); 
    RequestBuilder builder = RequestBuilder.post(String.format("/v1/environments/%s/collections/%s/documents", new Object[] { createRequest.getEnvironmentId(), createRequest.getCollectionId() })); 


    if (createRequest.getConfigurationId() != null) { 
     builder.query(new Object[] { "configuration_id", createRequest.getConfigurationId() }); 
    } 
    Validator.notNull(createRequest.getFile(), "Document file cannot be null"); 
    MediaType mediaType = (MediaType)supportedMediaTypes.get(createRequest.getMediaType()); 
    Validator.notNull(mediaType, String.format("Media Type '%s' not supported", new Object[] { createRequest.getMediaType() })); 
    RequestBody file = InputStreamRequestBody.create(mediaType, createRequest.getFile()); 
    MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); 
    multipartBuilder.setType(MultipartBody.FORM); 
    multipartBuilder.addFormDataPart("file", "filename", file); 
    multipartBuilder.addFormDataPart("metadata", createRequest.getMetadata().toString()); 
    builder.body(multipartBuilder.build()); 
    Request request = createVersionedRequest(builder); 
    return createServiceCall(request, ResponseConverterUtils.getObject(CreateDocumentResponse.class)); 
} 
関連する問題