From 643fb681fa7271f9de497c1fc32d905c2dec062e Mon Sep 17 00:00:00 2001 From: Felipe Wu <felipeshiwu@gmail.com> Date: Mon, 6 May 2019 14:56:46 -0300 Subject: [PATCH] add must not Signed-off-by: Felipe Wu <felipeshiwu@gmail.com> --- src/adapter/elasticsearch.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/adapter/elasticsearch.ts b/src/adapter/elasticsearch.ts index 8bf3e874..1750e15c 100644 --- a/src/adapter/elasticsearch.ts +++ b/src/adapter/elasticsearch.ts @@ -54,13 +54,20 @@ export class ElasticsearchAdapter extends Adapter { let filter = {}; let match = []; + let nMatch = []; /** Query is used to define the filters */ if (view.clauses.length > 0) { for(let i=0;i<view.clauses[0].filters.length; i++) { - filter = {"match": { [view.clauses[0].filters[i].target.name]: view.clauses[0].filters[i].value }}; - match.push(filter); + if (view.clauses[0].filters[i].operator == 2) { + filter = {"match": { [view.clauses[0].filters[i].target.name]: view.clauses[0].filters[i].value }}; + nMatch.push(filter); + } else { + filter = {"match": { [view.clauses[0].filters[i].target.name]: view.clauses[0].filters[i].value }}; + match.push(filter); + } } Object.assign(query.query.bool, {must: match}); + Object.assign(query.query.bool, {must_not: nMatch}); } /** Aggregation is used to define the dimention and the aggregation */ -- GitLab