[terms] some attempts on adding dates to the terms table

parent 88449643
...@@ -613,7 +613,7 @@ getTableNgrams :: forall env err m. ...@@ -613,7 +613,7 @@ getTableNgrams :: forall env err m.
-> ListId -> ListId
-> TabType -> TabType
-> NgramsSearchQuery -> NgramsSearchQuery
-> m (VersionedWithCount NgramsTable) -> m (VersionedWithCount NgramsTableWithDay)
getTableNgrams nodeId listId tabType searchQuery = do getTableNgrams nodeId listId tabType searchQuery = do
let ngramsType = ngramsTypeFromTabType tabType let ngramsType = ngramsTypeFromTabType tabType
versionedInput <- getNgramsTable' nodeId listId ngramsType versionedInput <- getNgramsTable' nodeId listId ngramsType
...@@ -738,7 +738,7 @@ getTableNgramsCorpus :: (HasNodeStory env err m, HasNodeError err, CmdCommon env ...@@ -738,7 +738,7 @@ getTableNgramsCorpus :: (HasNodeStory env err m, HasNodeError err, CmdCommon env
-> Maybe MinSize -> Maybe MaxSize -> Maybe MinSize -> Maybe MaxSize
-> Maybe OrderBy -> Maybe OrderBy
-> Maybe Text -- full text search -> Maybe Text -- full text search
-> m (VersionedWithCount NgramsTable) -> m (VersionedWithCount NgramsTableWithDay)
getTableNgramsCorpus nId tabType listId limit_ offset listType minSize maxSize orderBy mt = getTableNgramsCorpus nId tabType listId limit_ offset listType minSize maxSize orderBy mt =
getTableNgrams nId listId tabType searchQuery getTableNgrams nId listId tabType searchQuery
where where
......
...@@ -35,6 +35,7 @@ import Data.Set (Set) ...@@ -35,6 +35,7 @@ import Data.Set (Set)
import Data.String (IsString, fromString) import Data.String (IsString, fromString)
import Data.Swagger hiding (version, patch) import Data.Swagger hiding (version, patch)
import Data.Text (Text, pack, strip) import Data.Text (Text, pack, strip)
import Data.Time.Calendar (Day)
import Data.Validity import Data.Validity
import Database.PostgreSQL.Simple.FromField (FromField, fromField, fromJSONField) import Database.PostgreSQL.Simple.FromField (FromField, fromField, fromJSONField)
import Database.PostgreSQL.Simple.ToField (ToField, toJSONField, toField) import Database.PostgreSQL.Simple.ToField (ToField, toJSONField, toField)
...@@ -177,13 +178,14 @@ instance ToField NgramsRepoElement where ...@@ -177,13 +178,14 @@ instance ToField NgramsRepoElement where
instance Serialise (MSet NgramsTerm) instance Serialise (MSet NgramsTerm)
data NgramsElement = data NgramsElement =
NgramsElement { _ne_ngrams :: NgramsTerm NgramsElement { _ne_ngrams :: NgramsTerm
, _ne_size :: Int , _ne_size :: Int
, _ne_list :: ListType , _ne_list :: ListType
, _ne_occurrences :: Set ContextId , _ne_occurrences :: Set ContextId
, _ne_root :: Maybe NgramsTerm , _ne_root :: Maybe NgramsTerm
, _ne_parent :: Maybe NgramsTerm , _ne_parent :: Maybe NgramsTerm
, _ne_children :: MSet NgramsTerm , _ne_children :: MSet NgramsTerm
, _ne_first_occurrence :: Maybe Day
} }
deriving (Ord, Eq, Show, Generic) deriving (Ord, Eq, Show, Generic)
...@@ -194,13 +196,21 @@ mkNgramsElement :: NgramsTerm ...@@ -194,13 +196,21 @@ mkNgramsElement :: NgramsTerm
-> ListType -> ListType
-> Maybe RootParent -> Maybe RootParent
-> MSet NgramsTerm -> MSet NgramsTerm
-> Maybe Day
-> NgramsElement -> NgramsElement
mkNgramsElement ngrams list rp children = mkNgramsElement ngrams list rp children firstOccurrence =
NgramsElement ngrams (size (unNgramsTerm ngrams)) list mempty (_rp_root <$> rp) (_rp_parent <$> rp) children NgramsElement { _ne_ngrams = ngrams
, _ne_size = size (unNgramsTerm ngrams)
, _ne_list = list
, _ne_occurrences = mempty
, _ne_root = _rp_root <$> rp
, _ne_parent = _rp_parent <$> rp
, _ne_children = children
, _ne_first_occurrence = firstOccurrence }
newNgramsElement :: Maybe ListType -> NgramsTerm -> NgramsElement newNgramsElement :: Maybe ListType -> NgramsTerm -> NgramsElement
newNgramsElement mayList ngrams = newNgramsElement mayList ngrams =
mkNgramsElement ngrams (fromMaybe MapTerm mayList) Nothing mempty mkNgramsElement ngrams (fromMaybe MapTerm mayList) Nothing mempty Nothing
instance ToSchema NgramsElement where instance ToSchema NgramsElement where
declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "_ne_") declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "_ne_")
...@@ -248,18 +258,18 @@ toNgramsElement ns = map toNgramsElement' ns ...@@ -248,18 +258,18 @@ toNgramsElement ns = map toNgramsElement' ns
mockTable :: NgramsTable mockTable :: NgramsTable
mockTable = NgramsTable mockTable = NgramsTable
[ mkNgramsElement "animal" MapTerm Nothing (mSetFromList ["dog", "cat"]) [ mkNgramsElement "animal" MapTerm Nothing (mSetFromList ["dog", "cat"]) Nothing
, mkNgramsElement "cat" MapTerm (rp "animal") mempty , mkNgramsElement "cat" MapTerm (rp "animal") mempty Nothing
, mkNgramsElement "cats" StopTerm Nothing mempty , mkNgramsElement "cats" StopTerm Nothing mempty Nothing
, mkNgramsElement "dog" MapTerm (rp "animal") (mSetFromList ["dogs"]) , mkNgramsElement "dog" MapTerm (rp "animal") (mSetFromList ["dogs"]) Nothing
, mkNgramsElement "dogs" StopTerm (rp "dog") mempty , mkNgramsElement "dogs" StopTerm (rp "dog") mempty Nothing
, mkNgramsElement "fox" MapTerm Nothing mempty , mkNgramsElement "fox" MapTerm Nothing mempty Nothing
, mkNgramsElement "object" CandidateTerm Nothing mempty , mkNgramsElement "object" CandidateTerm Nothing mempty Nothing
, mkNgramsElement "nothing" StopTerm Nothing mempty , mkNgramsElement "nothing" StopTerm Nothing mempty Nothing
, mkNgramsElement "organic" MapTerm Nothing (mSetFromList ["flower"]) , mkNgramsElement "organic" MapTerm Nothing (mSetFromList ["flower"]) Nothing
, mkNgramsElement "flower" MapTerm (rp "organic") mempty , mkNgramsElement "flower" MapTerm (rp "organic") mempty Nothing
, mkNgramsElement "moon" CandidateTerm Nothing mempty , mkNgramsElement "moon" CandidateTerm Nothing mempty Nothing
, mkNgramsElement "sky" StopTerm Nothing mempty , mkNgramsElement "sky" StopTerm Nothing mempty Nothing
] ]
where where
rp n = Just $ RootParent n n rp n = Just $ RootParent n n
...@@ -619,13 +629,14 @@ ngramsElementFromRepo ...@@ -619,13 +629,14 @@ ngramsElementFromRepo
, _nre_root = r , _nre_root = r
, _nre_children = c , _nre_children = c
}) = }) =
NgramsElement { _ne_size = s NgramsElement { _ne_size = s
, _ne_list = l , _ne_list = l
, _ne_root = r , _ne_root = r
, _ne_parent = p , _ne_parent = p
, _ne_children = c , _ne_children = c
, _ne_ngrams = ngrams , _ne_ngrams = ngrams
, _ne_occurrences = mempty -- panic $ "API.Ngrams.Types._ne_occurrences" , _ne_occurrences = mempty -- panic $ "API.Ngrams.Types._ne_occurrences"
, _ne_first_occurrence = Nothing
{- {-
-- Here we could use 0 if we want to avoid any `panic`. -- Here we could use 0 if we want to avoid any `panic`.
-- It will not happen using getTableNgrams if -- It will not happen using getTableNgrams if
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment