LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

IBM Watson Discovery 便利プログラム

コレクション内のすべての文書を削除する

collectionに文書を入れていろいろ試したあと、いったんすべての文書を消してまた何かしたい...。
かといってcollectionを再作成すると、collectionIDとかconfigIDとかが変わってしまうのは困る!
ということがあったのでcollection内のすべての文書を削除するプログラムをTypeScriptで作成してみました。

ソースはgitにあります。
Qiitaの記事ではプログラムの仕様や概要を説明します。利用方法はgitをご覧ください。
ご利用は自己責任でお願いいたします。
改善点や不明点等ございましたら連絡いただけますと嬉しいです。 

仕様

  • 資格情報の入力はプログラム実行後に画面から入力
  • 入力する資格情報は
    • url
    • APIkey
    • environmentID
    • collectionID
  • Discovery APIバージョンは固定値(2019-04-30)
  • 一度に取得できるDocumentIDは10000まで
  • 削除できる文書数に限りはない

前提条件

  1. IBM Watson Discovery のコレクションに文書がある
  2. Node,npm,git(ソースclone用)がインストール済み

環境

  • Node v10.16.3
  • npm 6.14.9
  • git version 2.23.0.windows.1
  • Windows 10 Pro

フォルダ構成

ibmcloud-discovery/(root)
 ├─ dist/
 │   ├─ src/
 │   └─ app.js 
 ├─ node_modules/
 ├─ src/
 │   ├─ api/
 │   │   └─ Discovery.ts
 │   ├─ DeleteDocuments.ts
 │   ├─ QueryCollection.ts
 │   └─ UserInput.ts
 ├─ .gitignore
 ├─ app.ts
 ├─ package-lock.json
 ├─ package.json
 ├─ RRADME.md
 └─ tsconfig.json

dist/ tsをコンパイルした後のjsファイルが格納されている。プログラム実行時はdist/app.jsを実行する。
Discovery.ts DiscoveryへのAPIコール処理を行うtsファイル
DeleteDocuments.ts/ 取得した複数のDocumentIDを使用し繰り返し削除を行うtsファイル
QueryCollection.ts/ DocumentIDの取得を行うtsファイル
UserInput.ts/ プログラム実行後の資格情報入力を促す処理を行うtsファイル
app.ts/ メインのTypeScriptファイル

フローチャート

大まかな流れをフローチャートで書きました。
綺麗なものではないですがご勘弁ください。

flow.png

最後に

他にも、ああいう便利プログラムが欲しい!!などあれば、できる限り作っていきたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2