{-# LANGUAGE OverloadedStrings #-}
module Database.Bloodhound.Internal.Versions.Common.Types.Query.QueryString
( QueryStringQuery (..),
mkQueryStringQuery,
)
where
import Database.Bloodhound.Internal.Utils.Imports
import Database.Bloodhound.Internal.Versions.Common.Types.Newtypes
import Database.Bloodhound.Internal.Versions.Common.Types.Query.Commons
import GHC.Generics
data QueryStringQuery = QueryStringQuery
{ QueryStringQuery -> QueryString
queryStringQuery :: QueryString,
QueryStringQuery -> Maybe FieldName
queryStringDefaultField :: Maybe FieldName,
QueryStringQuery -> Maybe BooleanOperator
queryStringOperator :: Maybe BooleanOperator,
QueryStringQuery -> Maybe Analyzer
queryStringAnalyzer :: Maybe Analyzer,
QueryStringQuery -> Maybe AllowLeadingWildcard
queryStringAllowLeadingWildcard :: Maybe AllowLeadingWildcard,
QueryStringQuery -> Maybe LowercaseExpanded
queryStringLowercaseExpanded :: Maybe LowercaseExpanded,
QueryStringQuery -> Maybe EnablePositionIncrements
queryStringEnablePositionIncrements :: Maybe EnablePositionIncrements,
QueryStringQuery -> Maybe MaxExpansions
queryStringFuzzyMaxExpansions :: Maybe MaxExpansions,
QueryStringQuery -> Maybe Fuzziness
queryStringFuzziness :: Maybe Fuzziness,
QueryStringQuery -> Maybe PrefixLength
queryStringFuzzyPrefixLength :: Maybe PrefixLength,
QueryStringQuery -> Maybe PhraseSlop
queryStringPhraseSlop :: Maybe PhraseSlop,
QueryStringQuery -> Maybe Boost
queryStringBoost :: Maybe Boost,
QueryStringQuery -> Maybe AnalyzeWildcard
queryStringAnalyzeWildcard :: Maybe AnalyzeWildcard,
QueryStringQuery -> Maybe GeneratePhraseQueries
queryStringGeneratePhraseQueries :: Maybe GeneratePhraseQueries,
QueryStringQuery -> Maybe MinimumMatch
queryStringMinimumShouldMatch :: Maybe MinimumMatch,
QueryStringQuery -> Maybe Lenient
queryStringLenient :: Maybe Lenient,
QueryStringQuery -> Maybe Locale
queryStringLocale :: Maybe Locale
}
deriving stock (QueryStringQuery -> QueryStringQuery -> Bool
(QueryStringQuery -> QueryStringQuery -> Bool)
-> (QueryStringQuery -> QueryStringQuery -> Bool)
-> Eq QueryStringQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QueryStringQuery -> QueryStringQuery -> Bool
== :: QueryStringQuery -> QueryStringQuery -> Bool
$c/= :: QueryStringQuery -> QueryStringQuery -> Bool
/= :: QueryStringQuery -> QueryStringQuery -> Bool
Eq, Int -> QueryStringQuery -> ShowS
[QueryStringQuery] -> ShowS
QueryStringQuery -> String
(Int -> QueryStringQuery -> ShowS)
-> (QueryStringQuery -> String)
-> ([QueryStringQuery] -> ShowS)
-> Show QueryStringQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> QueryStringQuery -> ShowS
showsPrec :: Int -> QueryStringQuery -> ShowS
$cshow :: QueryStringQuery -> String
show :: QueryStringQuery -> String
$cshowList :: [QueryStringQuery] -> ShowS
showList :: [QueryStringQuery] -> ShowS
Show, (forall x. QueryStringQuery -> Rep QueryStringQuery x)
-> (forall x. Rep QueryStringQuery x -> QueryStringQuery)
-> Generic QueryStringQuery
forall x. Rep QueryStringQuery x -> QueryStringQuery
forall x. QueryStringQuery -> Rep QueryStringQuery x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. QueryStringQuery -> Rep QueryStringQuery x
from :: forall x. QueryStringQuery -> Rep QueryStringQuery x
$cto :: forall x. Rep QueryStringQuery x -> QueryStringQuery
to :: forall x. Rep QueryStringQuery x -> QueryStringQuery
Generic)
instance ToJSON QueryStringQuery where
toJSON :: QueryStringQuery -> Value
toJSON
( QueryStringQuery
QueryString
qsQueryString
Maybe FieldName
qsDefaultField
Maybe BooleanOperator
qsOperator
Maybe Analyzer
qsAnalyzer
Maybe AllowLeadingWildcard
qsAllowWildcard
Maybe LowercaseExpanded
qsLowercaseExpanded
Maybe EnablePositionIncrements
qsEnablePositionIncrements
Maybe MaxExpansions
qsFuzzyMaxExpansions
Maybe Fuzziness
qsFuzziness
Maybe PrefixLength
qsFuzzyPrefixLength
Maybe PhraseSlop
qsPhraseSlop
Maybe Boost
qsBoost
Maybe AnalyzeWildcard
qsAnalyzeWildcard
Maybe GeneratePhraseQueries
qsGeneratePhraseQueries
Maybe MinimumMatch
qsMinimumShouldMatch
Maybe Lenient
qsLenient
Maybe Locale
qsLocale
) =
[(Key, Value)] -> Value
omitNulls [(Key, Value)]
base
where
base :: [(Key, Value)]
base =
[ Key
"query" Key -> QueryString -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= QueryString
qsQueryString,
Key
"default_field" Key -> Maybe FieldName -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe FieldName
qsDefaultField,
Key
"default_operator" Key -> Maybe BooleanOperator -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe BooleanOperator
qsOperator,
Key
"analyzer" Key -> Maybe Analyzer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Analyzer
qsAnalyzer,
Key
"allow_leading_wildcard" Key -> Maybe AllowLeadingWildcard -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe AllowLeadingWildcard
qsAllowWildcard,
Key
"lowercase_expanded_terms" Key -> Maybe LowercaseExpanded -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe LowercaseExpanded
qsLowercaseExpanded,
Key
"enable_position_increments" Key -> Maybe EnablePositionIncrements -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe EnablePositionIncrements
qsEnablePositionIncrements,
Key
"fuzzy_max_expansions" Key -> Maybe MaxExpansions -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe MaxExpansions
qsFuzzyMaxExpansions,
Key
"fuzziness" Key -> Maybe Fuzziness -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Fuzziness
qsFuzziness,
Key
"fuzzy_prefix_length" Key -> Maybe PrefixLength -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe PrefixLength
qsFuzzyPrefixLength,
Key
"phrase_slop" Key -> Maybe PhraseSlop -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe PhraseSlop
qsPhraseSlop,
Key
"boost" Key -> Maybe Boost -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Boost
qsBoost,
Key
"analyze_wildcard" Key -> Maybe AnalyzeWildcard -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe AnalyzeWildcard
qsAnalyzeWildcard,
Key
"auto_generate_phrase_queries" Key -> Maybe GeneratePhraseQueries -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe GeneratePhraseQueries
qsGeneratePhraseQueries,
Key
"minimum_should_match" Key -> Maybe MinimumMatch -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe MinimumMatch
qsMinimumShouldMatch,
Key
"lenient" Key -> Maybe Lenient -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Lenient
qsLenient,
Key
"locale" Key -> Maybe Locale -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Locale
qsLocale
]
instance FromJSON QueryStringQuery where
parseJSON :: Value -> Parser QueryStringQuery
parseJSON = String
-> (Object -> Parser QueryStringQuery)
-> Value
-> Parser QueryStringQuery
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"QueryStringQuery" Object -> Parser QueryStringQuery
parse
where
parse :: Object -> Parser QueryStringQuery
parse Object
o =
QueryString
-> Maybe FieldName
-> Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery
QueryStringQuery
(QueryString
-> Maybe FieldName
-> Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser QueryString
-> Parser
(Maybe FieldName
-> Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser QueryString
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"query"
Parser
(Maybe FieldName
-> Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe FieldName)
-> Parser
(Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe FieldName)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"default_field"
Parser
(Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe BooleanOperator)
-> Parser
(Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe BooleanOperator)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"default_operator"
Parser
(Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe Analyzer)
-> Parser
(Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Analyzer)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"analyzer"
Parser
(Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe AllowLeadingWildcard)
-> Parser
(Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe AllowLeadingWildcard)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"allow_leading_wildcard"
Parser
(Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe LowercaseExpanded)
-> Parser
(Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe LowercaseExpanded)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"lowercase_expanded_terms"
Parser
(Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe EnablePositionIncrements)
-> Parser
(Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe EnablePositionIncrements)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"enable_position_increments"
Parser
(Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe MaxExpansions)
-> Parser
(Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe MaxExpansions)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"fuzzy_max_expansions"
Parser
(Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe Fuzziness)
-> Parser
(Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Fuzziness)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"fuzziness"
Parser
(Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe PrefixLength)
-> Parser
(Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe PrefixLength)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"fuzzy_prefix_length"
Parser
(Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe PhraseSlop)
-> Parser
(Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe PhraseSlop)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"phrase_slop"
Parser
(Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe Boost)
-> Parser
(Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Boost)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"boost"
Parser
(Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe AnalyzeWildcard)
-> Parser
(Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe AnalyzeWildcard)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"analyze_wildcard"
Parser
(Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery)
-> Parser (Maybe GeneratePhraseQueries)
-> Parser
(Maybe MinimumMatch
-> Maybe Lenient -> Maybe Locale -> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe GeneratePhraseQueries)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"auto_generate_phrase_queries"
Parser
(Maybe MinimumMatch
-> Maybe Lenient -> Maybe Locale -> QueryStringQuery)
-> Parser (Maybe MinimumMatch)
-> Parser (Maybe Lenient -> Maybe Locale -> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe MinimumMatch)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minimum_should_match"
Parser (Maybe Lenient -> Maybe Locale -> QueryStringQuery)
-> Parser (Maybe Lenient)
-> Parser (Maybe Locale -> QueryStringQuery)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Lenient)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"lenient"
Parser (Maybe Locale -> QueryStringQuery)
-> Parser (Maybe Locale) -> Parser QueryStringQuery
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Locale)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"locale"
mkQueryStringQuery :: QueryString -> QueryStringQuery
mkQueryStringQuery :: QueryString -> QueryStringQuery
mkQueryStringQuery QueryString
qs =
QueryString
-> Maybe FieldName
-> Maybe BooleanOperator
-> Maybe Analyzer
-> Maybe AllowLeadingWildcard
-> Maybe LowercaseExpanded
-> Maybe EnablePositionIncrements
-> Maybe MaxExpansions
-> Maybe Fuzziness
-> Maybe PrefixLength
-> Maybe PhraseSlop
-> Maybe Boost
-> Maybe AnalyzeWildcard
-> Maybe GeneratePhraseQueries
-> Maybe MinimumMatch
-> Maybe Lenient
-> Maybe Locale
-> QueryStringQuery
QueryStringQuery
QueryString
qs
Maybe FieldName
forall a. Maybe a
Nothing
Maybe BooleanOperator
forall a. Maybe a
Nothing
Maybe Analyzer
forall a. Maybe a
Nothing
Maybe AllowLeadingWildcard
forall a. Maybe a
Nothing
Maybe LowercaseExpanded
forall a. Maybe a
Nothing
Maybe EnablePositionIncrements
forall a. Maybe a
Nothing
Maybe MaxExpansions
forall a. Maybe a
Nothing
Maybe Fuzziness
forall a. Maybe a
Nothing
Maybe PrefixLength
forall a. Maybe a
Nothing
Maybe PhraseSlop
forall a. Maybe a
Nothing
Maybe Boost
forall a. Maybe a
Nothing
Maybe AnalyzeWildcard
forall a. Maybe a
Nothing
Maybe GeneratePhraseQueries
forall a. Maybe a
Nothing
Maybe MinimumMatch
forall a. Maybe a
Nothing
Maybe Lenient
forall a. Maybe a
Nothing
Maybe Locale
forall a. Maybe a
Nothing