2017-03-01 1 views
0

Ich konnte Metadaten zusammen mit dem Dokument in Watsons Discovery-Dienst speichern, aber jetzt funktioniert es nicht mehr! Was ist passiert?Metadaten werden beim Hinzufügen eines Dokuments nicht gespeichert

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=Metadaten

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

}

Warum es hat nicht mehr funktioniert? Ich bin ein wenig enttäuscht über den zugrundeliegenden Rahmen dafür, dass dies aus heiterem Himmel geschieht. Mach es zusammen IBM!

+0

Wenn Sie das Entfernen & Return = Metadaten - werden dann von Metadaten zu sehen? – catbelly

+0

Nein. Ich werde alles andere bekommen, was Sie erwarten würden, nur Metadaten werden nicht mehr hinzugefügt. – user3689479

+0

Immer noch nichts? IBM, du hast mich wirklich im Stich gelassen! – user3689479

Antwort

0

Ich habe Ihren Fehler IBM behoben.

In com.ibm.watson.developer_cloud.discovery.v1.Discovery.createDocument (CreateDocumentRequest erzeugeAnf), können Sie die Mehrteiliger Anfrage sehen gebaut werden, während nie den erforderlichen Metadaten Teil (smh) hinzufügen.

erweiterte I Entdeckung und hinzugefügt

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

die auf die Anfrage ...

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)); 
} 
Verwandte Themen