diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-09 13:53:09 -0400 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-09 13:53:09 -0400 |
commit | 3dfd1de5f4d0c72dfbc9b981b8a27f98bbe7dbf2 (patch) | |
tree | 934630f6b27beeb4b032ba892c180cc1d4915c27 /src/server/Search.ts | |
parent | 4944abd854e672f62926089f3619b92dcaf3b2ca (diff) |
Added Search to GC and cleaned up some stuff
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 |