aboutsummaryrefslogtreecommitdiff
path: root/src/server/Search.ts
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2019-07-09 14:18:28 -0400
committerbob <bcz@cs.brown.edu>2019-07-09 14:18:28 -0400
commitfb1e2078dc0e0cdc33f6037cd3c3e18ffded413e (patch)
treeddd2fb40e4e344b3c3b1e0f7057b62566a92084c /src/server/Search.ts
parent724d03b8d05b5ef7ef944c648aae8f43dde625be (diff)
parentce39600f0c7b9013c7c8ec8c74eb54d2d5e4c50e (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/Search.ts')
-rw-r--r--src/server/Search.ts33
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