git.iko.soy/typeable/bloodhound
on master help sign in
make it possible to omit a language for lowercase and uppercase token filters
51e59fdAndrew Martin
src/Database/V5/Bloodhound/Types.hs+11−11
@@ -635,8 +635,8 @@ instance FromJSON AnalyzerDefinition where
635
635
636-- | Token filters are used to create custom analyzers.
636-- | Token filters are used to create custom analyzers.
637data TokenFilterDefinition
637data TokenFilterDefinition
638− = TokenFilterDefinitionLowercase Language
638+ = TokenFilterDefinitionLowercase (Maybe Language)
639− | TokenFilterDefinitionUppercase Language
639+ | TokenFilterDefinitionUppercase (Maybe Language)
640 | TokenFilterDefinitionApostrophe
640 | TokenFilterDefinitionApostrophe
641 | TokenFilterDefinitionReverse
641 | TokenFilterDefinitionReverse
642 | TokenFilterDefinitionSnowball Language
642 | TokenFilterDefinitionSnowball Language
@@ -645,13 +645,13 @@ data TokenFilterDefinition
645
645
646instance ToJSON TokenFilterDefinition where
646instance ToJSON TokenFilterDefinition where
647 toJSON x = case x of
647 toJSON x = case x of
648− TokenFilterDefinitionLowercase lang -> object
648+ TokenFilterDefinitionLowercase mlang -> object $ catMaybes
649− [ "type" .= ("lowercase" :: Text)
649+ [ Just $ "type" .= ("lowercase" :: Text)
650− , "language" .= languageToText lang
650+ , fmap (\lang -> "language" .= languageToText lang) mlang
651 ]
651 ]
652− TokenFilterDefinitionUppercase lang -> object
652+ TokenFilterDefinitionUppercase mlang -> object $ catMaybes
653− [ "type" .= ("uppercase" :: Text)
653+ [ Just $ "type" .= ("uppercase" :: Text)
654− , "language" .= languageToText lang
654+ , fmap (\lang -> "language" .= languageToText lang) mlang
655 ]
655 ]
656 TokenFilterDefinitionApostrophe -> object
656 TokenFilterDefinitionApostrophe -> object
657 [ "type" .= ("apostrophe" :: Text)
657 [ "type" .= ("apostrophe" :: Text)
@@ -680,11 +680,11 @@ instance FromJSON TokenFilterDefinition where
680 "reverse" -> return TokenFilterDefinitionReverse
680 "reverse" -> return TokenFilterDefinitionReverse
681 "apostrophe" -> return TokenFilterDefinitionApostrophe
681 "apostrophe" -> return TokenFilterDefinitionApostrophe
682 "lowercase" -> TokenFilterDefinitionLowercase
682 "lowercase" -> TokenFilterDefinitionLowercase
683− <$> m .:? "language" .!= English
683+ <$> m .:? "language"
684 "uppercase" -> TokenFilterDefinitionUppercase
684 "uppercase" -> TokenFilterDefinitionUppercase
685− <$> m .:? "language" .!= English
685+ <$> m .:? "language"
686 "snowball" -> TokenFilterDefinitionSnowball
686 "snowball" -> TokenFilterDefinitionSnowball
687− <$> m .:? "language" .!= English
687+ <$> m .: "language"
688 "shingle" -> fmap TokenFilterDefinitionShingle $ Shingle
688 "shingle" -> fmap TokenFilterDefinitionShingle $ Shingle
689 <$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2
689 <$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2
690 <*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2
690 <*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2
tests/V5/tests.hs+2−2
@@ -1653,8 +1653,8 @@ main = hspec $ do
1653 )
1653 )
1654 )
1654 )
1655 (M.fromList
1655 (M.fromList
1656− [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase Greek)
1656+ [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase (Just Greek))
1657− , ("ex_filter_uppercase",TokenFilterDefinitionUppercase English)
1657+ , ("ex_filter_uppercase",TokenFilterDefinitionUppercase Nothing)
1658 , ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)
1658 , ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)
1659 , ("ex_filter_reverse",TokenFilterDefinitionReverse)
1659 , ("ex_filter_reverse",TokenFilterDefinitionReverse)
1660 , ("ex_filter_snowball",TokenFilterDefinitionSnowball English)
1660 , ("ex_filter_snowball",TokenFilterDefinitionSnowball English)