@@ -518,25 +518,25 @@ data PostingsHighlight =
518518 deriving (Eq, Show)
519519
520520-- This requires that term_vector is set to 'with_positions_offsets' in the mapping.
521−data FastVectorHighlight =
522− FastVectorHighlight { fvCommon :: Maybe CommonHighlight
523− , fvNonPostSettings :: Maybe NonPostings
524− , boundaryChars :: Maybe Text
525− , boundaryMaxScan :: Maybe Int
526− , fragmentOffset :: Maybe Int
527− , matchedFields :: [Text]
528− , phraseLimit :: Maybe Int
529− } deriving (Eq, Show)
530−
531−data CommonHighlight =
532− CommonHighlight { order :: Maybe Text
533− , forceSource :: Maybe Bool
534− , tag :: Maybe HighlightTag
535− , encoder :: Maybe HighlightEncoder
536− , noMatchSize :: Maybe Int
537− , highlightQuery :: Maybe Query
538− , requireFieldMatch :: Maybe Bool
539− } deriving (Eq, Show)
521+data FastVectorHighlight = FastVectorHighlight
522+ { fvCommon :: Maybe CommonHighlight
523+ , fvNonPostSettings :: Maybe NonPostings
524+ , boundaryChars :: Maybe Text
525+ , boundaryMaxScan :: Maybe Int
526+ , fragmentOffset :: Maybe Int
527+ , matchedFields :: [Text]
528+ , phraseLimit :: Maybe Int
529+ } deriving (Eq, Show)
530+
531+data CommonHighlight = CommonHighlight
532+ { order :: Maybe Text
533+ , forceSource :: Maybe Bool
534+ , tag :: Maybe HighlightTag
535+ , encoder :: Maybe HighlightEncoder
536+ , noMatchSize :: Maybe Int
537+ , highlightQuery :: Maybe Query
538+ , requireFieldMatch :: Maybe Bool
539+ } deriving (Eq, Show)
540540
541541-- Settings that are only applicable to FastVector and Plain highlighters.
542542data NonPostings =
@@ -824,15 +824,16 @@ fastVectorHighPairs (Just
824824
825825commonHighlightPairs :: Maybe CommonHighlight -> [Pair]
826826commonHighlightPairs Nothing = []
827−commonHighlightPairs (Just (CommonHighlight chScore chForceSource chTag chEncoder
828− chNoMatchSize chHighlightQuery
829− chRequireFieldMatch)) =
827+commonHighlightPairs (Just (CommonHighlight chScore chForceSource
828+ chTag chEncoder chNoMatchSize
829+ chHighlightQuery chRequireFieldMatch)) =
830830 [ "order" .= chScore
831831 , "force_source" .= chForceSource
832832 , "encoder" .= chEncoder
833833 , "no_match_size" .= chNoMatchSize
834834 , "highlight_query" .= chHighlightQuery
835− , "require_fieldMatch" .= chRequireFieldMatch]
835+ , "require_fieldMatch" .= chRequireFieldMatch
836+ ]
836837 ++ highlightTagToPairs chTag
837838
838839
@@ -840,32 +841,41 @@ nonPostingsToPairs :: Maybe NonPostings -> [Pair]
840841nonPostingsToPairs Nothing = []
841842nonPostingsToPairs (Just (NonPostings npFragSize npNumOfFrags)) =
842843 [ "fragment_size" .= npFragSize
843− , "number_of_fragments" .= npNumOfFrags]
844+ , "number_of_fragments" .= npNumOfFrags
845+ ]
844846
845847highlightTagToPairs :: Maybe HighlightTag -> [Pair]
846−highlightTagToPairs (Just (TagSchema _)) = [ "scheme" .= String "default"]
847−highlightTagToPairs (Just (CustomTags (pre, post))) = [ "pre_tags" .= pre
848− , "post_tags" .= post]
848+highlightTagToPairs (Just (TagSchema _)) =
849+ [ "scheme" .= String "default"
850+ ]
851+highlightTagToPairs (Just (CustomTags (pre, post))) =
852+ [ "pre_tags" .= pre
853+ , "post_tags" .= post
854+ ]
849855highlightTagToPairs Nothing = []
850856
851−data Suggest = Suggest { suggestText :: Text
852− , suggestName :: Text
853− , suggestType :: SuggestType
854− }
855− deriving (Eq, Show)
857+data Suggest = Suggest
858+ { suggestText :: Text
859+ , suggestName :: Text
860+ , suggestType :: SuggestType
861+ } deriving (Eq, Show)
856862
857863instance ToJSON Suggest where
858− toJSON Suggest{..} = object [ "text" .= suggestText
859− , suggestName .= suggestType
860− ]
864+ toJSON Suggest{..} =
865+ object [ "text" .= suggestText
866+ , suggestName .= suggestType
867+ ]
861868
862869instance FromJSON Suggest where
863870 parseJSON (Object o) = do
864871 suggestText' <- o .: "text"
865− let dropTextList = HM.toList $ HM.filterWithKey (\x _ -> x /= "text") o
866− suggestName' <- case dropTextList of
867− [(x, _)] -> return x
868− _ -> fail "error parsing Suggest field name"
872+ let dropTextList =
873+ HM.toList
874+ $ HM.filterWithKey (\x _ -> x /= "text") o
875+ suggestName' <-
876+ case dropTextList of
877+ [(x, _)] -> return x
878+ _ -> fail "error parsing Suggest field name"
869879 suggestType' <- o .: suggestName'
870880 return $ Suggest suggestText' suggestName' suggestType'
871881 parseJSON x = typeMismatch "Suggest" x
@@ -988,11 +998,12 @@ data SuggestOptions =
988998
989999instance FromJSON SuggestOptions where
9901000 parseJSON = withObject "SuggestOptions" parse
991− where parse o = SuggestOptions
992− <$> o .: "text"
993− <*> o .: "score"
994− <*> o .:? "freq"
995− <*> o .:? "highlighted"
1001+ where
1002+ parse o = SuggestOptions
1003+ <$> o .: "text"
1004+ <*> o .: "score"
1005+ <*> o .:? "freq"
1006+ <*> o .:? "highlighted"
9961007
9971008data SuggestResponse =
9981009 SuggestResponse { suggestResponseText :: Text
@@ -1037,10 +1048,15 @@ instance ToJSON DirectGeneratorSuggestModeTypes where
10371048
10381049instance FromJSON DirectGeneratorSuggestModeTypes where
10391050 parseJSON = withText "DirectGeneratorSuggestModeTypes" parse
1040− where parse "missing" = pure DirectGeneratorSuggestModeMissing
1041− parse "popular" = pure DirectGeneratorSuggestModePopular
1042− parse "always" = pure DirectGeneratorSuggestModeAlways
1043− parse f = fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)
1051+ where
1052+ parse "missing" =
1053+ pure DirectGeneratorSuggestModeMissing
1054+ parse "popular" =
1055+ pure DirectGeneratorSuggestModePopular
1056+ parse "always" =
1057+ pure DirectGeneratorSuggestModeAlways
1058+ parse f =
1059+ fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)
10441060
10451061data DirectGenerators = DirectGenerators
10461062 { directGeneratorsField :: FieldName
@@ -1054,22 +1070,22 @@ data DirectGenerators = DirectGenerators
10541070 , directGeneratorMaxTermFreq :: Maybe Double
10551071 , directGeneratorPreFilter :: Maybe Text
10561072 , directGeneratorPostFilter :: Maybe Text
1057− }
1058− deriving (Eq, Show)
1073+ } deriving (Eq, Show)
10591074
10601075instance ToJSON DirectGenerators where
1061− toJSON DirectGenerators{..} = omitNulls [ "field" .= directGeneratorsField
1062− , "size" .= directGeneratorsSize
1063− , "suggest_mode" .= directGeneratorSuggestMode
1064− , "max_edits" .= directGeneratorMaxEdits
1065− , "prefix_length" .= directGeneratorPrefixLength
1066− , "min_word_length" .= directGeneratorMinWordLength
1067− , "max_inspections" .= directGeneratorMaxInspections
1068− , "min_doc_freq" .= directGeneratorMinDocFreq
1069− , "max_term_freq" .= directGeneratorMaxTermFreq
1070− , "pre_filter" .= directGeneratorPreFilter
1071− , "post_filter" .= directGeneratorPostFilter
1072− ]
1076+ toJSON DirectGenerators{..} =
1077+ omitNulls [ "field" .= directGeneratorsField
1078+ , "size" .= directGeneratorsSize
1079+ , "suggest_mode" .= directGeneratorSuggestMode
1080+ , "max_edits" .= directGeneratorMaxEdits
1081+ , "prefix_length" .= directGeneratorPrefixLength
1082+ , "min_word_length" .= directGeneratorMinWordLength
1083+ , "max_inspections" .= directGeneratorMaxInspections
1084+ , "min_doc_freq" .= directGeneratorMinDocFreq
1085+ , "max_term_freq" .= directGeneratorMaxTermFreq
1086+ , "pre_filter" .= directGeneratorPreFilter
1087+ , "post_filter" .= directGeneratorPostFilter
1088+ ]
10731089
10741090instance FromJSON DirectGenerators where
10751091 parseJSON = withObject "DirectGenerators" parse