diff options
author | bob <bcz@cs.brown.edu> | 2019-07-09 14:18:28 -0400 |
---|---|---|
committer | bob <bcz@cs.brown.edu> | 2019-07-09 14:18:28 -0400 |
commit | fb1e2078dc0e0cdc33f6037cd3c3e18ffded413e (patch) | |
tree | ddd2fb40e4e344b3c3b1e0f7057b62566a92084c /src/server/Search.ts | |
parent | 724d03b8d05b5ef7ef944c648aae8f43dde625be (diff) | |
parent | ce39600f0c7b9013c7c8ec8c74eb54d2d5e4c50e (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/Search.ts')
-rw-r--r-- | src/server/Search.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/server/Search.ts b/src/server/Search.ts index e2a74b737..8591f8857 100644 --- a/src/server/Search.ts +++ b/src/server/Search.ts @@ -18,6 +18,18 @@ export class Search { } } + public async updateDocuments(documents: any[]) { + try { + const res = await rp.post(this.url + "dash/update", { + headers: { 'content-type': 'application/json' }, + body: JSON.stringify(documents) + }); + return res; + } catch (e) { + // console.warn("Search error: " + e + document); + } + } + public async search(query: string, start: number = 0) { try { const searchResults = JSON.parse(await rp.get(this.url + "dash/select", { @@ -47,4 +59,25 @@ export class Search { }); } catch { } } + + public deleteDocuments(docs: string[]) { + const promises: rp.RequestPromise[] = []; + const nToDelete = 1000; + let index = 0; + while (index < docs.length) { + const count = Math.min(docs.length - index, nToDelete); + const deleteIds = docs.slice(index, index + count); + index += count; + promises.push(rp.post(this.url + "dash/update", { + body: { + delete: { + query: deleteIds.map(id => `id:"${id}"`).join(" ") + } + }, + json: true + })); + } + + return Promise.all(promises); + } }
\ No newline at end of file |