@@ -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