git.iko.soy/typeable/bloodhound
on master help sign in
Actually include some modified files in the commit
commit8272db68e4b8623109fd74b35bda8fd2a481e513 authorJosh Berman <berman.josh@gmail.com> dateMon 11 Dec 2017, 14:36 (9 years ago) parent624b07b
3 files changed+75−2
bloodhound.cabal+1−1 src/Database/V5/Bloodhound/Types.hs+68−1 tests/V5/tests.hs+6
bloodhound.cabal+1−1
@@ -1,5 +1,5 @@
11name: bloodhound
2−version: 0.15.0.0
2+version: 0.15.1.0
33synopsis: ElasticSearch client library for Haskell
44description: ElasticSearch made awesome for Haskell hackers
55homepage: https://github.com/bitemyapp/bloodhound
src/Database/V5/Bloodhound/Types.hs+68−1
@@ -336,6 +336,8 @@ module Database.V5.Bloodhound.Types
336336 , SuggestOptions(..)
337337 , SuggestResponse(..)
338338 , NamedSuggestionResponse(..)
339+ , DirectGenerators(..)
340+ , DirectGeneratorSuggestModeTypes (..)
339341
340342 , Aggregation(..)
341343 , Aggregations
@@ -5293,6 +5295,7 @@ data PhraseSuggester =
52935295 , phraseSuggesterShardSize :: Maybe Int
52945296 , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
52955297 , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
5298+ , phraseSuggesterCandidateGenerators :: Maybe [DirectGenerators]
52965299 }
52975300 deriving (Show, Generic, Eq, Read)
52985301
@@ -5308,6 +5311,7 @@ instance ToJSON PhraseSuggester where
53085311 , "shard_size" .= phraseSuggesterShardSize
53095312 , "highlight" .= phraseSuggesterHighlight
53105313 , "collate" .= phraseSuggesterCollate
5314+ , "direct_generator" .= phraseSuggesterCandidateGenerators
53115315 ]
53125316
53135317instance FromJSON PhraseSuggester where
@@ -5324,11 +5328,12 @@ instance FromJSON PhraseSuggester where
53245328 <*> o .:? "shard_size"
53255329 <*> o .:? "highlight"
53265330 <*> o .:? "collate"
5331+ <*> o .:? "direct_generator"
53275332
53285333mkPhraseSuggester :: FieldName -> PhraseSuggester
53295334mkPhraseSuggester fName =
53305335 PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing
5331− Nothing Nothing Nothing Nothing
5336+ Nothing Nothing Nothing Nothing Nothing
53325337
53335338data PhraseSuggesterHighlighter =
53345339 PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text
@@ -5418,3 +5423,65 @@ instance FromJSON NamedSuggestionResponse where
54185423 return $ NamedSuggestionResponse suggestionName' suggestionResponses'
54195424
54205425 parseJSON x = typeMismatch "NamedSuggestionResponse" x
5426+
5427+data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing
5428+ | DirectGeneratorSuggestModePopular
5429+ | DirectGeneratorSuggestModeAlways
5430+ deriving (Show, Eq, Read, Generic)
5431+
5432+instance ToJSON DirectGeneratorSuggestModeTypes where
5433+ toJSON DirectGeneratorSuggestModeMissing = "missing"
5434+ toJSON DirectGeneratorSuggestModePopular = "popular"
5435+ toJSON DirectGeneratorSuggestModeAlways = "always"
5436+
5437+instance FromJSON DirectGeneratorSuggestModeTypes where
5438+ parseJSON = withText "DirectGeneratorSuggestModeTypes" parse
5439+ where parse "missing" = pure DirectGeneratorSuggestModeMissing
5440+ parse "popular" = pure DirectGeneratorSuggestModePopular
5441+ parse "always" = pure DirectGeneratorSuggestModeAlways
5442+ parse f = fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)
5443+
5444+data DirectGenerators = DirectGenerators
5445+ { directGeneratorsField :: Text
5446+ , directGeneratorsSize :: Maybe Int
5447+ , directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes
5448+ , directGeneratorMaxEdits :: Maybe Double
5449+ , directGeneratorPrefixLength :: Maybe Int
5450+ , directGeneratorMinWordLength :: Maybe Int
5451+ , directGeneratorMaxInspections :: Maybe Int
5452+ , directGeneratorMinDocFreq :: Maybe Double
5453+ , directGeneratorMaxTermFreq :: Maybe Double
5454+ , directGeneratorPreFilter :: Maybe Text
5455+ , directGeneratorPostFilter :: Maybe Text
5456+ }
5457+ deriving (Show, Eq, Read, Generic)
5458+
5459+
5460+instance ToJSON DirectGenerators where
5461+ toJSON DirectGenerators{..} = omitNulls [ "field" .= directGeneratorsField
5462+ , "size" .= directGeneratorsSize
5463+ , "suggest_mode" .= directGeneratorSuggestMode
5464+ , "max_edits" .= directGeneratorMaxEdits
5465+ , "prefix_length" .= directGeneratorPrefixLength
5466+ , "min_word_length" .= directGeneratorMinWordLength
5467+ , "max_inspections" .= directGeneratorMaxInspections
5468+ , "min_doc_freq" .= directGeneratorMinDocFreq
5469+ , "max_term_freq" .= directGeneratorMaxTermFreq
5470+ , "pre_filter" .= directGeneratorPreFilter
5471+ , "post_filter" .= directGeneratorPostFilter
5472+ ]
5473+
5474+instance FromJSON DirectGenerators where
5475+ parseJSON = withObject "DirectGenerators" parse
5476+ where parse o = DirectGenerators
5477+ <$> o .: "field"
5478+ <*> o .:? "size"
5479+ <*> o .: "suggest_mode"
5480+ <*> o .:? "max_edits"
5481+ <*> o .:? "prefix_length"
5482+ <*> o .:? "min_word_length"
5483+ <*> o .:? "max_inspections"
5484+ <*> o .:? "min_doc_freq"
5485+ <*> o .:? "max_term_freq"
5486+ <*> o .:? "pre_filter"
5487+ <*> o .:? "post_filter"
tests/V5/tests.hs+6
@@ -619,6 +619,8 @@ instance ApproxEq PhraseSuggesterCollate
619619instance ApproxEq PhraseSuggester
620620instance ApproxEq SuggestType
621621instance ApproxEq Suggest
622+instance ApproxEq DirectGenerators
623+instance ApproxEq DirectGeneratorSuggestModeTypes
622624
623625-- | Due to the way nodeattrfilters get serialized here, they may come
624626-- out in a different order, but they are morally equivalent
@@ -929,6 +931,8 @@ instance Arbitrary Size where arbitrary = sopArbitrary; shrink = genericShrink
929931instance Arbitrary PhraseSuggester where arbitrary = sopArbitrary; shrink = genericShrink
930932instance Arbitrary SuggestType where arbitrary = sopArbitrary; shrink = genericShrink
931933instance Arbitrary Suggest where arbitrary = sopArbitrary; shrink = genericShrink
934+instance Arbitrary DirectGenerators where arbitrary = sopArbitrary; shrink = genericShrink
935+instance Arbitrary DirectGeneratorSuggestModeTypes where arbitrary = sopArbitrary; shrink = genericShrink
932936
933937newtype UpdatableIndexSetting' = UpdatableIndexSetting' UpdatableIndexSetting
934938 deriving (Show, Eq, ToJSON, FromJSON, ApproxEq, Typeable)
@@ -1793,6 +1797,8 @@ main = hspec $ do
17931797 propJSON (Proxy :: Proxy CompoundFormat)
17941798 propJSON (Proxy :: Proxy TemplateQueryInline)
17951799 propJSON (Proxy :: Proxy Suggest)
1800+ propJSON (Proxy :: Proxy DirectGenerators)
1801+ propJSON (Proxy :: Proxy DirectGeneratorSuggestModeTypes)
17961802
17971803-- Temporary solution for lacking of generic derivation of Arbitrary
17981804-- We use generics-sop, as it's much more concise than directly using GHC.Generics