mirror of
https://github.com/typeable/bloodhound.git
synced 2024-10-26 16:38:51 +03:00
make it possible to omit a language for lowercase and uppercase token filters
This commit is contained in:
parent
7fce32ab3b
commit
51e59fdfd8
@ -635,8 +635,8 @@ instance FromJSON AnalyzerDefinition where
|
||||
|
||||
-- | Token filters are used to create custom analyzers.
|
||||
data TokenFilterDefinition
|
||||
= TokenFilterDefinitionLowercase Language
|
||||
| TokenFilterDefinitionUppercase Language
|
||||
= TokenFilterDefinitionLowercase (Maybe Language)
|
||||
| TokenFilterDefinitionUppercase (Maybe Language)
|
||||
| TokenFilterDefinitionApostrophe
|
||||
| TokenFilterDefinitionReverse
|
||||
| TokenFilterDefinitionSnowball Language
|
||||
@ -645,13 +645,13 @@ data TokenFilterDefinition
|
||||
|
||||
instance ToJSON TokenFilterDefinition where
|
||||
toJSON x = case x of
|
||||
TokenFilterDefinitionLowercase lang -> object
|
||||
[ "type" .= ("lowercase" :: Text)
|
||||
, "language" .= languageToText lang
|
||||
TokenFilterDefinitionLowercase mlang -> object $ catMaybes
|
||||
[ Just $ "type" .= ("lowercase" :: Text)
|
||||
, fmap (\lang -> "language" .= languageToText lang) mlang
|
||||
]
|
||||
TokenFilterDefinitionUppercase lang -> object
|
||||
[ "type" .= ("uppercase" :: Text)
|
||||
, "language" .= languageToText lang
|
||||
TokenFilterDefinitionUppercase mlang -> object $ catMaybes
|
||||
[ Just $ "type" .= ("uppercase" :: Text)
|
||||
, fmap (\lang -> "language" .= languageToText lang) mlang
|
||||
]
|
||||
TokenFilterDefinitionApostrophe -> object
|
||||
[ "type" .= ("apostrophe" :: Text)
|
||||
@ -680,11 +680,11 @@ instance FromJSON TokenFilterDefinition where
|
||||
"reverse" -> return TokenFilterDefinitionReverse
|
||||
"apostrophe" -> return TokenFilterDefinitionApostrophe
|
||||
"lowercase" -> TokenFilterDefinitionLowercase
|
||||
<$> m .:? "language" .!= English
|
||||
<$> m .:? "language"
|
||||
"uppercase" -> TokenFilterDefinitionUppercase
|
||||
<$> m .:? "language" .!= English
|
||||
<$> m .:? "language"
|
||||
"snowball" -> TokenFilterDefinitionSnowball
|
||||
<$> m .:? "language" .!= English
|
||||
<$> m .: "language"
|
||||
"shingle" -> fmap TokenFilterDefinitionShingle $ Shingle
|
||||
<$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2
|
||||
<*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2
|
||||
|
@ -1653,8 +1653,8 @@ main = hspec $ do
|
||||
)
|
||||
)
|
||||
(M.fromList
|
||||
[ ("ex_filter_lowercase",TokenFilterDefinitionLowercase Greek)
|
||||
, ("ex_filter_uppercase",TokenFilterDefinitionUppercase English)
|
||||
[ ("ex_filter_lowercase",TokenFilterDefinitionLowercase (Just Greek))
|
||||
, ("ex_filter_uppercase",TokenFilterDefinitionUppercase Nothing)
|
||||
, ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)
|
||||
, ("ex_filter_reverse",TokenFilterDefinitionReverse)
|
||||
, ("ex_filter_snowball",TokenFilterDefinitionSnowball English)
|
||||
|
Loading…
Reference in New Issue
Block a user