@@ -333,6 +333,9 @@ module Database.V1.Bloodhound.Types
333 , SuggestOptions(..)
333 , SuggestOptions(..)
334 , SuggestResponse(..)
334 , SuggestResponse(..)
335 , NamedSuggestionResponse(..)
335 , NamedSuggestionResponse(..)
336+ , DirectGenerators(..)
337+ , mkDirectGenerators
338+ , DirectGeneratorSuggestModeTypes (..)
337 , Aggregation(..)
340 , Aggregation(..)
338 , Aggregations
341 , Aggregations
@@ -5382,6 +5385,7 @@ data PhraseSuggester =
5382 , phraseSuggesterShardSize :: Maybe Int
5385 , phraseSuggesterShardSize :: Maybe Int
5383 , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
5386 , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
5384 , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
5387 , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
5388+ , phraseSuggesterCandidateGenerators :: [DirectGenerators]
5386 deriving (Show, Generic, Eq, Read, Typeable)
5390 deriving (Show, Generic, Eq, Read, Typeable)
@@ -5397,6 +5401,7 @@ instance ToJSON PhraseSuggester where
5397 , "shard_size" .= phraseSuggesterShardSize
5401 , "shard_size" .= phraseSuggesterShardSize
5398 , "highlight" .= phraseSuggesterHighlight
5402 , "highlight" .= phraseSuggesterHighlight
5399 , "collate" .= phraseSuggesterCollate
5403 , "collate" .= phraseSuggesterCollate
5404+ , "direct_generator" .= phraseSuggesterCandidateGenerators
5402instance FromJSON PhraseSuggester where
5407instance FromJSON PhraseSuggester where
@@ -5413,11 +5418,12 @@ instance FromJSON PhraseSuggester where
5413 <*> o .:? "shard_size"
5418 <*> o .:? "shard_size"
5414 <*> o .:? "highlight"
5419 <*> o .:? "highlight"
5415 <*> o .:? "collate"
5420 <*> o .:? "collate"
5421+ <*> o .:? "direct_generator" .!= []
5417mkPhraseSuggester :: FieldName -> PhraseSuggester
5423mkPhraseSuggester :: FieldName -> PhraseSuggester
5418mkPhraseSuggester fName =
5424mkPhraseSuggester fName =
5419 PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing
5425 PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing
5420− Nothing Nothing Nothing Nothing
5426+ Nothing Nothing Nothing Nothing []
5422data PhraseSuggesterHighlighter =
5428data PhraseSuggesterHighlighter =
5423 PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text
5429 PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text
@@ -5507,3 +5513,68 @@ instance FromJSON NamedSuggestionResponse where
5507 return $ NamedSuggestionResponse suggestionName' suggestionResponses'
5513 return $ NamedSuggestionResponse suggestionName' suggestionResponses'
5509 parseJSON x = typeMismatch "NamedSuggestionResponse" x
5515 parseJSON x = typeMismatch "NamedSuggestionResponse" x
5517+data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing
5518+ | DirectGeneratorSuggestModePopular
5519+ | DirectGeneratorSuggestModeAlways
5520+ deriving (Show, Eq, Read, Generic, Typeable)
5522+instance ToJSON DirectGeneratorSuggestModeTypes where
5523+ toJSON DirectGeneratorSuggestModeMissing = "missing"
5524+ toJSON DirectGeneratorSuggestModePopular = "popular"
5525+ toJSON DirectGeneratorSuggestModeAlways = "always"
5527+instance FromJSON DirectGeneratorSuggestModeTypes where
5528+ parseJSON = withText "DirectGeneratorSuggestModeTypes" parse
5529+ where parse "missing" = pure DirectGeneratorSuggestModeMissing
5530+ parse "popular" = pure DirectGeneratorSuggestModePopular
5531+ parse "always" = pure DirectGeneratorSuggestModeAlways
5532+ parse f = fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)
5534+data DirectGenerators = DirectGenerators
5535+ { directGeneratorsField :: FieldName
5536+ , directGeneratorsSize :: Maybe Int
5537+ , directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes
5538+ , directGeneratorMaxEdits :: Maybe Double
5539+ , directGeneratorPrefixLength :: Maybe Int
5540+ , directGeneratorMinWordLength :: Maybe Int
5541+ , directGeneratorMaxInspections :: Maybe Int
5542+ , directGeneratorMinDocFreq :: Maybe Double
5543+ , directGeneratorMaxTermFreq :: Maybe Double
5544+ , directGeneratorPreFilter :: Maybe Text
5545+ , directGeneratorPostFilter :: Maybe Text
5547+ deriving (Show, Eq, Read, Generic, Typeable)
5550+instance ToJSON DirectGenerators where
5551+ toJSON DirectGenerators{..} = omitNulls [ "field" .= directGeneratorsField
5552+ , "size" .= directGeneratorsSize
5553+ , "suggest_mode" .= directGeneratorSuggestMode
5554+ , "max_edits" .= directGeneratorMaxEdits
5555+ , "prefix_length" .= directGeneratorPrefixLength
5556+ , "min_word_length" .= directGeneratorMinWordLength
5557+ , "max_inspections" .= directGeneratorMaxInspections
5558+ , "min_doc_freq" .= directGeneratorMinDocFreq
5559+ , "max_term_freq" .= directGeneratorMaxTermFreq
5560+ , "pre_filter" .= directGeneratorPreFilter
5561+ , "post_filter" .= directGeneratorPostFilter
5564+instance FromJSON DirectGenerators where
5565+ parseJSON = withObject "DirectGenerators" parse
5566+ where parse o = DirectGenerators
5569+ <*> o .: "suggest_mode"
5570+ <*> o .:? "max_edits"
5571+ <*> o .:? "prefix_length"
5572+ <*> o .:? "min_word_length"
5573+ <*> o .:? "max_inspections"
5574+ <*> o .:? "min_doc_freq"
5575+ <*> o .:? "max_term_freq"
5576+ <*> o .:? "pre_filter"
5577+ <*> o .:? "post_filter"
5579+mkDirectGenerators :: FieldName -> DirectGenerators
5580+mkDirectGenerators fn = DirectGenerators fn Nothing DirectGeneratorSuggestModeMissing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing