2017-07-11 2 views
0

nicht aufgenommen werden. Ich verwende das Modul DiscoveryV1 der Python-Bibliothek watson_developer_cloud, um mehr als 700 Dokumente in eine WDS-Sammlung aufzunehmen. Jedes Mal, wenn ich eine Bulk-Ingestion versuche, werden viele der Dokumente nicht aufgenommen, es ist nicht deterministisch, in der Regel scheitern etwa 100 Dokumente.So erhalten Sie mehr Einblick, warum Dokumente in Watson Discovery Service

Jedes Mal, wenn ich discovery.add_document(env_id, cold_id, file_info=file_info) rufe, finde ich, dass die Antwort ein WDS document_id enthält. Nachdem ich diesen Aufruf für alle Dokumente in meinem Korpus getätigt habe, verwende ich die entsprechenden document_id s, um discovery.get_document(env_id, col_id, doc_id) aufzurufen und den Status des Dokuments zu überprüfen. Etwa 100 dieser Anrufe geben den Status Document failed to be ingested and indexed zurück. Zwischen den Dateien, die fehlschlagen, gibt es kein Muster, sie variieren in der Größe und sowohl in den Dateiformaten sword (doc) als auch pdf.

Mein Code ein Dokument geschrieben wurde, auf der Grundlage der WDS Documentation aufnehmen, sieht es so etwas wie diese:

with open(f_path) as file_data: 
    if f_path.endswith('.doc') or f_path.endswith('.docx'): 
     re = discovery.add_document(env_id, col_id, file_info=file_data, mime_type='application/msword')      
    else:                       
     re = discovery.add_document(env_id, col_id, file_info=file_data) 

Weil mein Korpus relativ groß ist, ~ 3 GB groß, Ich erhalte Service is busy processing... Antworten von discovery.add_document(env_id, cold_id, file_info=file_info) Anrufen in In diesem Fall rufe ich sleep(5) an und versuche es erneut.

Ich habe die WDS-Dokumentation ohne Glück erschöpft. Wie kann ich mehr Einblick in den Grund bekommen, warum diese Dateien nicht aufgenommen werden?

Antwort

1

Sie sollten die API https://watson-api-explorer.mybluemix.net/apis/discovery-v1#!/Queries/queryNotices verwenden können, um Fehler/Warnungen anzuzeigen, die während der Einnahme auftreten, zusammen mit Details, die weitere Informationen darüber enthalten, warum die Einnahme fehlgeschlagen ist.

Leider sieht es zum Zeitpunkt dieses Postings nicht so aus, als hätte das Python-SDK eine Methode, diese API zu umbrechen, also können Sie Watson Discovery Tooling verwenden oder curl verwenden, um die API direkt abzufragen (ersetzt die Werte in {} mit Ihren sammlungsspezifischen Werten)

curl -u "{username}:{password}" "https://gateway.watsonplatform.net/discovery/api/v1/environments/{environment_id}/collections/{collection_id}/notices?version=2017-01-01 
Verwandte Themen