@@ -336,6 +336,8 @@ module Database.V5.Bloodhound.Types
336 , SuggestOptions(..)
336 , SuggestOptions(..)
337 , SuggestResponse(..)
337 , SuggestResponse(..)
338 , NamedSuggestionResponse(..)
338 , NamedSuggestionResponse(..)
339+ , DirectGenerators(..)
340+ , DirectGeneratorSuggestModeTypes (..)
340 , Aggregation(..)
342 , Aggregation(..)
341 , Aggregations
343 , Aggregations
@@ -5293,6 +5295,7 @@ data PhraseSuggester =
5293 , phraseSuggesterShardSize :: Maybe Int
5295 , phraseSuggesterShardSize :: Maybe Int
5294 , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
5296 , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter
5295 , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
5297 , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate
5298+ , phraseSuggesterCandidateGenerators :: Maybe [DirectGenerators]
5297 deriving (Show, Generic, Eq, Read)
5300 deriving (Show, Generic, Eq, Read)
@@ -5308,6 +5311,7 @@ instance ToJSON PhraseSuggester where
5308 , "shard_size" .= phraseSuggesterShardSize
5311 , "shard_size" .= phraseSuggesterShardSize
5309 , "highlight" .= phraseSuggesterHighlight
5312 , "highlight" .= phraseSuggesterHighlight
5310 , "collate" .= phraseSuggesterCollate
5313 , "collate" .= phraseSuggesterCollate
5314+ , "direct_generator" .= phraseSuggesterCandidateGenerators
5313instance FromJSON PhraseSuggester where
5317instance FromJSON PhraseSuggester where
@@ -5324,11 +5328,12 @@ instance FromJSON PhraseSuggester where
5324 <*> o .:? "shard_size"
5328 <*> o .:? "shard_size"
5325 <*> o .:? "highlight"
5329 <*> o .:? "highlight"
5326 <*> o .:? "collate"
5330 <*> o .:? "collate"
5331+ <*> o .:? "direct_generator"
5328mkPhraseSuggester :: FieldName -> PhraseSuggester
5333mkPhraseSuggester :: FieldName -> PhraseSuggester
5329mkPhraseSuggester fName =
5334mkPhraseSuggester fName =
5330 PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing
5335 PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing
5331− Nothing Nothing Nothing Nothing
5336+ Nothing Nothing Nothing Nothing Nothing
5333data PhraseSuggesterHighlighter =
5338data PhraseSuggesterHighlighter =
5334 PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text
5339 PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text
@@ -5418,3 +5423,65 @@ instance FromJSON NamedSuggestionResponse where
5418 return $ NamedSuggestionResponse suggestionName' suggestionResponses'
5423 return $ NamedSuggestionResponse suggestionName' suggestionResponses'
5420 parseJSON x = typeMismatch "NamedSuggestionResponse" x
5425 parseJSON x = typeMismatch "NamedSuggestionResponse" x
5427+data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing
5428+ | DirectGeneratorSuggestModePopular
5429+ | DirectGeneratorSuggestModeAlways
5430+ deriving (Show, Eq, Read, Generic)
5432+instance ToJSON DirectGeneratorSuggestModeTypes where
5433+ toJSON DirectGeneratorSuggestModeMissing = "missing"
5434+ toJSON DirectGeneratorSuggestModePopular = "popular"
5435+ toJSON DirectGeneratorSuggestModeAlways = "always"
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)
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
5457+ deriving (Show, Eq, Read, Generic)
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
5474+instance FromJSON DirectGenerators where
5475+ parseJSON = withObject "DirectGenerators" parse
5476+ where parse o = DirectGenerators
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"