git.iko.soy/typeable/bloodhound
on master help sign in
make it possible to omit a language for lowercase and uppercase token filters
commit51e59fdfd8755a0f2ba9297899f269bd16a14473 authorAndrew Martin <andrew.thaddeus@gmail.com> dateTue 19 Dec 2017, 20:08 (9 years ago) parent7fce32a
2 files changed+13−13
src/Database/V5/Bloodhound/Types.hs+11−11 tests/V5/tests.hs+2−2
src/Database/V5/Bloodhound/Types.hs+11−11
@@ -635,8 +635,8 @@ instance FromJSON AnalyzerDefinition where
635635
636636-- | Token filters are used to create custom analyzers.
637637data TokenFilterDefinition
638− = TokenFilterDefinitionLowercase Language
639− | TokenFilterDefinitionUppercase Language
638+ = TokenFilterDefinitionLowercase (Maybe Language)
639+ | TokenFilterDefinitionUppercase (Maybe Language)
640640 | TokenFilterDefinitionApostrophe
641641 | TokenFilterDefinitionReverse
642642 | TokenFilterDefinitionSnowball Language
@@ -645,13 +645,13 @@ data TokenFilterDefinition
645645
646646instance ToJSON TokenFilterDefinition where
647647 toJSON x = case x of
648− TokenFilterDefinitionLowercase lang -> object
649− [ "type" .= ("lowercase" :: Text)
650− , "language" .= languageToText lang
648+ TokenFilterDefinitionLowercase mlang -> object $ catMaybes
649+ [ Just $ "type" .= ("lowercase" :: Text)
650+ , fmap (\lang -> "language" .= languageToText lang) mlang
651651 ]
652− TokenFilterDefinitionUppercase lang -> object
653− [ "type" .= ("uppercase" :: Text)
654− , "language" .= languageToText lang
652+ TokenFilterDefinitionUppercase mlang -> object $ catMaybes
653+ [ Just $ "type" .= ("uppercase" :: Text)
654+ , fmap (\lang -> "language" .= languageToText lang) mlang
655655 ]
656656 TokenFilterDefinitionApostrophe -> object
657657 [ "type" .= ("apostrophe" :: Text)
@@ -680,11 +680,11 @@ instance FromJSON TokenFilterDefinition where
680680 "reverse" -> return TokenFilterDefinitionReverse
681681 "apostrophe" -> return TokenFilterDefinitionApostrophe
682682 "lowercase" -> TokenFilterDefinitionLowercase
683− <$> m .:? "language" .!= English
683+ <$> m .:? "language"
684684 "uppercase" -> TokenFilterDefinitionUppercase
685− <$> m .:? "language" .!= English
685+ <$> m .:? "language"
686686 "snowball" -> TokenFilterDefinitionSnowball
687− <$> m .:? "language" .!= English
687+ <$> m .: "language"
688688 "shingle" -> fmap TokenFilterDefinitionShingle $ Shingle
689689 <$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2
690690 <*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2
tests/V5/tests.hs+2−2
@@ -1653,8 +1653,8 @@ main = hspec $ do
16531653 )
16541654 )
16551655 (M.fromList
1656− [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase Greek)
1657− , ("ex_filter_uppercase",TokenFilterDefinitionUppercase English)
1656+ [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase (Just Greek))
1657+ , ("ex_filter_uppercase",TokenFilterDefinitionUppercase Nothing)
16581658 , ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)
16591659 , ("ex_filter_reverse",TokenFilterDefinitionReverse)
16601660 , ("ex_filter_snowball",TokenFilterDefinitionSnowball English)