コレクション内のすべての文書を削除する
collectionに文書を入れていろいろ試したあと、いったんすべての文書を消してまた何かしたい...。
かといってcollectionを再作成すると、collectionIDとかconfigIDとかが変わってしまうのは困る!
ということがあったのでcollection内のすべての文書を削除するプログラムをTypeScriptで作成してみました。
ソースはgitにあります。
Qiitaの記事ではプログラムの仕様や概要を説明します。利用方法はgitをご覧ください。
ご利用は自己責任でお願いいたします。
改善点や不明点等ございましたら連絡いただけますと嬉しいです。
仕様
- 資格情報の入力はプログラム実行後に画面から入力
- 入力する資格情報は
- url
- APIkey
- environmentID
- collectionID
- Discovery APIバージョンは固定値(
2019-04-30
) - 一度に取得できるDocumentIDは10000まで
- 削除できる文書数に限りはない
前提条件
- IBM Watson Discovery のコレクションに文書がある
- 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ファイル
##フローチャート
大まかな流れをフローチャートで書きました。
綺麗なものではないですがご勘弁ください。
最後に
他にも、ああいう便利プログラムが欲しい!!などあれば、できる限り作っていきたいと思います。