From a6789f0908a194c997a65e1f482b5d005b8eac7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexandre=20Delano=C3=AB?= <devel+git@delanoe.org>
Date: Thu, 11 May 2023 17:27:39 +0200
Subject: [PATCH] [FIX] #199

---
 gargantext.cabal                              |  2 +-
 .../Action/Metrics/NgramsByContext.hs         | 36 +++++++++----------
 2 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/gargantext.cabal b/gargantext.cabal
index c0873d17..8c6fbbd1 100644
--- a/gargantext.cabal
+++ b/gargantext.cabal
@@ -5,7 +5,7 @@ cabal-version: 1.12
 -- see: https://github.com/sol/hpack
 
 name:           gargantext
-version: 0.0.6.9.9.4.4
+version:        0.0.6.9.9.4.4
 synopsis:       Search, map, share
 description:    Please see README.md
 category:       Data
diff --git a/src/Gargantext/Database/Action/Metrics/NgramsByContext.hs b/src/Gargantext/Database/Action/Metrics/NgramsByContext.hs
index e0ae6075..90cf1a77 100644
--- a/src/Gargantext/Database/Action/Metrics/NgramsByContext.hs
+++ b/src/Gargantext/Database/Action/Metrics/NgramsByContext.hs
@@ -122,31 +122,29 @@ getOccByNgramsOnlyFast cId lId nt = do
            -> Cmd err [(Text, DPST.PGArray Int)]
       run cId' lId' nt' = runPGSQuery query
                 ( cId'
-                , cId'
                 , lId'
                 , ngramsTypeId nt'
                 )
 
       query :: DPS.Query
       query = [sql|
-              SELECT ng.terms
-                     , ARRAY(
-                         SELECT DISTINCT context_node_ngrams.context_id
-                         FROM context_node_ngrams
-                         JOIN nodes_contexts
-                           ON context_node_ngrams.context_id = nodes_contexts.context_id
-                         WHERE ng.id = context_node_ngrams.ngrams_id
-                         AND nodes_contexts.node_id = ?
-                         ) AS context_ids
-                FROM ngrams   ng
-                JOIN node_stories       ns  ON ng.id        = ns.ngrams_id
-                JOIN node_node_ngrams   nng ON ns.node_id   = nng.node2_id
-                WHERE nng.node1_id        = ?
-                      AND nng.node2_id    = ?
-                      AND nng.ngrams_type = ?
-                      AND nng.ngrams_id   = ng.id
-                      AND nng.ngrams_type = ns.ngrams_type_id
-                ORDER BY ng.id ASC;
+                WITH node_context_ids AS
+                  (select context_id, ngrams_id
+                  FROM context_node_ngrams_view
+                  WHERE node_id = ?
+                  ), ns AS
+                (select ngrams_id FROM node_stories
+                  WHERE node_id = ? AND ngrams_type_id = ?
+                )
+
+                SELECT ng.terms,
+                ARRAY ( SELECT DISTINCT context_id
+                          FROM node_context_ids
+                          WHERE ns.ngrams_id = node_context_ids.ngrams_id
+                      )
+                AS context_ids
+                FROM ngrams ng
+                JOIN ns ON ng.id = ns.ngrams_id
         |]
 
 
-- 
2.21.0