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