{-| Module : Gargantext.Database.Action.Index Description : Indexation tools Copyright : (c) CNRS, 2017-Present License : AGPL + CECILL v3 Maintainer : team@gargantext.org Stability : experimental Portability : POSIX Main Database functions for Gargantext.API.Node.Update UpdateNodeParamsTexts { methodTexts :: Granularity } data Granularity = NewNgrams | NewTexts | Both deriving (Generic, Eq, Ord, Enum, Bounded) -- TODO add option for type of ngrams -} module Gargantext.Database.Action.Index where {- import Data.List (nub) import Gargantext.Core.Text.Terms.WithList (buildPatterns, filterTerms, termsInText) index :: CorpusId -> Granularity -> Cmd err [Int] index cId NewNgrams = do ngrams <- get ngrams with zero count texts <- get all text to index indexSave text (buildPatterns ngrams) index cId NewTexts = do ngrams <- get all ngrams texts <- get text with zero count indexSave text (buildPatterns ngrams) index cId Both = do r1 <- index cId NewNgrams r2 <- index cId NewTexts pure $ r1 <> r2 indexSave :: [Document] -> Pattern -> Cmd err [Int] indexSave corpus p = do indexedDoc <- map (filterTerms patterns) corpus saveIndexDoc ngramsTextId -}