bloodhound 0.16.0.0 → 0.18.0.0
raw patch · 96 files changed
+10334/−18461 lines, 96 filesdep ~aesondep ~bytestringdep ~containersPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, bytestring, containers, http-client, http-types, mtl, network-uri, scientific, semigroups, text, time, transformers, unordered-containers, vector
API changes (from Hackage documentation)
- Database.V1.Bloodhound.Client: advanceScroll :: (FromJSON a, MonadBH m, MonadThrow m) => ScrollId -> NominalDiffTime -> m (Either EsError (SearchResult a))
- Database.V1.Bloodhound.Client: basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request
- Database.V1.Bloodhound.Client: bulk :: MonadBH m => Vector BulkOperation -> m Reply
- Database.V1.Bloodhound.Client: closeIndex :: MonadBH m => IndexName -> m Reply
- Database.V1.Bloodhound.Client: createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply
- Database.V1.Bloodhound.Client: createSnapshot :: (MonadBH m) => SnapshotRepoName -> SnapshotName -> SnapshotCreateSettings -> m Reply
- Database.V1.Bloodhound.Client: deleteDocument :: MonadBH m => IndexName -> MappingName -> DocId -> m Reply
- Database.V1.Bloodhound.Client: deleteIndex :: MonadBH m => IndexName -> m Reply
- Database.V1.Bloodhound.Client: deleteMapping :: MonadBH m => IndexName -> MappingName -> m Reply
- Database.V1.Bloodhound.Client: deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply
- Database.V1.Bloodhound.Client: deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply
- Database.V1.Bloodhound.Client: deleteTemplate :: MonadBH m => TemplateName -> m Reply
- Database.V1.Bloodhound.Client: documentExists :: MonadBH m => IndexName -> MappingName -> Maybe DocumentParent -> DocId -> m Bool
- Database.V1.Bloodhound.Client: encodeBulkOperation :: BulkOperation -> ByteString
- Database.V1.Bloodhound.Client: encodeBulkOperations :: Vector BulkOperation -> ByteString
- Database.V1.Bloodhound.Client: getDocument :: MonadBH m => IndexName -> MappingName -> DocId -> m Reply
- Database.V1.Bloodhound.Client: getIndexAliases :: (MonadBH m, MonadThrow m) => m (Either EsError IndexAliasesSummary)
- Database.V1.Bloodhound.Client: getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName -> m (Either EsError IndexSettingsSummary)
- Database.V1.Bloodhound.Client: getInitialScroll :: MonadBH m => IndexName -> MappingName -> Search -> m (Maybe ScrollId)
- Database.V1.Bloodhound.Client: getNodesInfo :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesInfo)
- Database.V1.Bloodhound.Client: getNodesStats :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesStats)
- Database.V1.Bloodhound.Client: getSnapshotRepos :: (MonadBH m, MonadThrow m) => SnapshotRepoSelection -> m (Either EsError [GenericSnapshotRepo])
- Database.V1.Bloodhound.Client: getSnapshots :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> SnapshotSelection -> m (Either EsError [SnapshotInfo])
- Database.V1.Bloodhound.Client: getStatus :: MonadBH m => m (Maybe Status)
- Database.V1.Bloodhound.Client: indexDocument :: (ToJSON doc, MonadBH m) => IndexName -> MappingName -> IndexDocumentSettings -> doc -> DocId -> m Reply
- Database.V1.Bloodhound.Client: indexExists :: MonadBH m => IndexName -> m Bool
- Database.V1.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Client.GSRs
- Database.V1.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Client.SIs
- Database.V1.Bloodhound.Client: isCreated :: Reply -> Bool
- Database.V1.Bloodhound.Client: isSuccess :: Reply -> Bool
- Database.V1.Bloodhound.Client: isVersionConflict :: Reply -> Bool
- Database.V1.Bloodhound.Client: listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]
- Database.V1.Bloodhound.Client: mkAggregateSearch :: Maybe Query -> Aggregations -> Search
- Database.V1.Bloodhound.Client: mkHighlightSearch :: Maybe Query -> Highlights -> Search
- Database.V1.Bloodhound.Client: mkReplicaCount :: Int -> Maybe ReplicaCount
- Database.V1.Bloodhound.Client: mkSearch :: Maybe Query -> Maybe Filter -> Search
- Database.V1.Bloodhound.Client: mkShardCount :: Int -> Maybe ShardCount
- Database.V1.Bloodhound.Client: openIndex :: MonadBH m => IndexName -> m Reply
- Database.V1.Bloodhound.Client: optimizeIndex :: MonadBH m => IndexSelection -> IndexOptimizationSettings -> m Reply
- Database.V1.Bloodhound.Client: pageSearch :: From -> Size -> Search -> Search
- Database.V1.Bloodhound.Client: parseEsResponse :: (MonadThrow m, FromJSON a) => Reply -> m (Either EsError a)
- Database.V1.Bloodhound.Client: putMapping :: (MonadBH m, ToJSON a) => IndexName -> MappingName -> a -> m Reply
- Database.V1.Bloodhound.Client: putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply
- Database.V1.Bloodhound.Client: refreshIndex :: MonadBH m => IndexName -> m Reply
- Database.V1.Bloodhound.Client: restoreSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> SnapshotRestoreSettings -> m Reply
- Database.V1.Bloodhound.Client: scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName -> MappingName -> Search -> m [Hit a]
- Database.V1.Bloodhound.Client: searchAll :: MonadBH m => Search -> m Reply
- Database.V1.Bloodhound.Client: searchByIndex :: MonadBH m => IndexName -> Search -> m Reply
- Database.V1.Bloodhound.Client: searchByType :: MonadBH m => IndexName -> MappingName -> Search -> m Reply
- Database.V1.Bloodhound.Client: templateExists :: MonadBH m => TemplateName -> m Bool
- Database.V1.Bloodhound.Client: updateDocument :: (ToJSON patch, MonadBH m) => IndexName -> MappingName -> IndexDocumentSettings -> patch -> DocId -> m Reply
- Database.V1.Bloodhound.Client: updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply
- Database.V1.Bloodhound.Client: updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply
- Database.V1.Bloodhound.Client: updateSnapshotRepo :: (MonadBH m, SnapshotRepo repo) => SnapshotRepoUpdateSettings -> repo -> m Reply
- Database.V1.Bloodhound.Client: verifySnapshotRepo :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> m (Either EsError SnapshotVerification)
- Database.V1.Bloodhound.Client: waitForYellowIndex :: MonadBH m => IndexName -> m Reply
- Database.V1.Bloodhound.Client: withBH :: ManagerSettings -> Server -> BH IO a -> IO a
- Database.V1.Bloodhound.Internal.Aggregation: AddTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: BoolValue :: Bool -> BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: BreadthFirst :: CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: Bucket :: [a] -> Bucket a
- Database.V1.Bloodhound.Internal.Aggregation: CardinalityAgg :: CardinalityAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
- Database.V1.Bloodhound.Internal.Aggregation: DMDate :: Day -> DateMathAnchor
- Database.V1.Bloodhound.Internal.Aggregation: DMDay :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMHour :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMMinute :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMMonth :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMNow :: DateMathAnchor
- Database.V1.Bloodhound.Internal.Aggregation: DMSecond :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMWeek :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DMYear :: DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
- Database.V1.Bloodhound.Internal.Aggregation: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
- Database.V1.Bloodhound.Internal.Aggregation: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeAgg :: DateRangeAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: DateRangeTo :: DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: DepthFirst :: CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: FieldValueCount :: FieldName -> ValueCountAggregation
- Database.V1.Bloodhound.Internal.Aggregation: FilterAgg :: FilterAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
- Database.V1.Bloodhound.Internal.Aggregation: GlobalOrdinals :: ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: GlobalOrdinalsHash :: ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: GlobalOrdinalsLowCardinality :: ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: Hit :: IndexName -> MappingName -> DocId -> Score -> Maybe a -> Maybe HitHighlight -> Hit a
- Database.V1.Bloodhound.Internal.Aggregation: Map :: ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: MissingAgg :: MissingAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: MissingAggregation :: Text -> MissingAggregation
- Database.V1.Bloodhound.Internal.Aggregation: MissingResult :: Int -> MissingResult
- Database.V1.Bloodhound.Internal.Aggregation: Ordinals :: ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: RoundDownTo :: DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: ScientificValue :: Scientific -> BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: ScriptValueCount :: Script -> ValueCountAggregation
- Database.V1.Bloodhound.Internal.Aggregation: SearchHits :: Int -> Score -> [Hit a] -> SearchHits a
- Database.V1.Bloodhound.Internal.Aggregation: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: TermInclusion :: Text -> TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: TermOrder :: Text -> SortOrder -> TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: TermPattern :: Text -> Text -> TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: TermsAgg :: TermsAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
- Database.V1.Bloodhound.Internal.Aggregation: TextValue :: Text -> BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: TopHitResult :: (SearchHits a) -> TopHitResult a
- Database.V1.Bloodhound.Internal.Aggregation: TopHitsAgg :: TopHitsAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: ValueCountAgg :: ValueCountAggregation -> Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: [buckets] :: Bucket a -> [a]
- Database.V1.Bloodhound.Internal.Aggregation: [cardinalityField] :: CardinalityAggregation -> FieldName
- Database.V1.Bloodhound.Internal.Aggregation: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Internal.Aggregation: [dateDocCount] :: DateHistogramResult -> Int
- Database.V1.Bloodhound.Internal.Aggregation: [dateField] :: DateHistogramAggregation -> FieldName
- Database.V1.Bloodhound.Internal.Aggregation: [dateFormat] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Internal.Aggregation: [dateInterval] :: DateHistogramAggregation -> Interval
- Database.V1.Bloodhound.Internal.Aggregation: [dateKeyStr] :: DateHistogramResult -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateKey] :: DateHistogramResult -> Int
- Database.V1.Bloodhound.Internal.Aggregation: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [datePostZone] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [datePreZone] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeDocCount] :: DateRangeResult -> Int
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeKey] :: DateRangeResult -> Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
- Database.V1.Bloodhound.Internal.Aggregation: [draField] :: DateRangeAggregation -> FieldName
- Database.V1.Bloodhound.Internal.Aggregation: [draFormat] :: DateRangeAggregation -> Maybe Text
- Database.V1.Bloodhound.Internal.Aggregation: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: [faAggs] :: FilterAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Internal.Aggregation: [faFilter] :: FilterAggregation -> Filter
- Database.V1.Bloodhound.Internal.Aggregation: [hitDocId] :: Hit a -> DocId
- Database.V1.Bloodhound.Internal.Aggregation: [hitHighlight] :: Hit a -> Maybe HitHighlight
- Database.V1.Bloodhound.Internal.Aggregation: [hitIndex] :: Hit a -> IndexName
- Database.V1.Bloodhound.Internal.Aggregation: [hitScore] :: Hit a -> Score
- Database.V1.Bloodhound.Internal.Aggregation: [hitSource] :: Hit a -> Maybe a
- Database.V1.Bloodhound.Internal.Aggregation: [hitType] :: Hit a -> MappingName
- Database.V1.Bloodhound.Internal.Aggregation: [hitsTotal] :: SearchHits a -> Int
- Database.V1.Bloodhound.Internal.Aggregation: [hits] :: SearchHits a -> [Hit a]
- Database.V1.Bloodhound.Internal.Aggregation: [maField] :: MissingAggregation -> Text
- Database.V1.Bloodhound.Internal.Aggregation: [maxScore] :: SearchHits a -> Score
- Database.V1.Bloodhound.Internal.Aggregation: [missingDocCount] :: MissingResult -> Int
- Database.V1.Bloodhound.Internal.Aggregation: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
- Database.V1.Bloodhound.Internal.Aggregation: [taFrom] :: TopHitsAggregation -> Maybe From
- Database.V1.Bloodhound.Internal.Aggregation: [taSize] :: TopHitsAggregation -> Maybe Size
- Database.V1.Bloodhound.Internal.Aggregation: [taSort] :: TopHitsAggregation -> Maybe Sort
- Database.V1.Bloodhound.Internal.Aggregation: [tarHits] :: TopHitResult a -> (SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: [termAggs] :: TermsAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Internal.Aggregation: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: [termExclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: [termInclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: [termKey] :: TermsResult -> BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: [termMinDocCount] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Internal.Aggregation: [termOrder] :: TermsAggregation -> Maybe TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: [termShardSize] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Internal.Aggregation: [termSize] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Internal.Aggregation: [termSortField] :: TermOrder -> Text
- Database.V1.Bloodhound.Internal.Aggregation: [termSortOrder] :: TermOrder -> SortOrder
- Database.V1.Bloodhound.Internal.Aggregation: [term] :: TermsAggregation -> Either Text Text
- Database.V1.Bloodhound.Internal.Aggregation: [termsAggs] :: TermsResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Internal.Aggregation: [termsDocCount] :: TermsResult -> Int
- Database.V1.Bloodhound.Internal.Aggregation: aggs :: BucketAggregation a => a -> Maybe AggregationResults
- Database.V1.Bloodhound.Internal.Aggregation: class BucketAggregation a
- Database.V1.Bloodhound.Internal.Aggregation: data Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: data Bucket a
- Database.V1.Bloodhound.Internal.Aggregation: data BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: data CardinalityAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: data DateHistogramAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data DateHistogramResult
- Database.V1.Bloodhound.Internal.Aggregation: data DateMathAnchor
- Database.V1.Bloodhound.Internal.Aggregation: data DateMathExpr
- Database.V1.Bloodhound.Internal.Aggregation: data DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: data DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: data DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: data DateRangeAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: data ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: data FilterAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data Hit a
- Database.V1.Bloodhound.Internal.Aggregation: data MissingAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data MissingResult
- Database.V1.Bloodhound.Internal.Aggregation: data SearchHits a
- Database.V1.Bloodhound.Internal.Aggregation: data TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: data TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: data TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data TermsResult
- Database.V1.Bloodhound.Internal.Aggregation: data TopHitResult a
- Database.V1.Bloodhound.Internal.Aggregation: data TopHitsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: data ValueCountAggregation
- Database.V1.Bloodhound.Internal.Aggregation: docCount :: BucketAggregation a => a -> Int
- Database.V1.Bloodhound.Internal.Aggregation: emptyAggregations :: Aggregations
- Database.V1.Bloodhound.Internal.Aggregation: getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Aggregation.BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Aggregation.MissingResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Aggregation.TermsResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Aggregation.Bucket a)
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Aggregation.Hit a)
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Aggregation.TopHitResult a)
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Aggregation.TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: instance Data.Semigroup.Semigroup (Database.V1.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: instance Database.V1.Bloodhound.Internal.Aggregation.BucketAggregation Database.V1.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Database.V1.Bloodhound.Internal.Aggregation.BucketAggregation Database.V1.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: instance Database.V1.Bloodhound.Internal.Aggregation.BucketAggregation Database.V1.Bloodhound.Internal.Aggregation.TermsResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Base.Monoid (Database.V1.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.CardinalityAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateHistogramAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateMathAnchor
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.FilterAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.MissingAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.TopHitsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Aggregation.ValueCountAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Internal.Aggregation.Hit a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.Aggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.CardinalityAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateHistogramAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateMathAnchor
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateMathModifier
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateMathUnit
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.FilterAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.MissingAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.MissingResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.TermOrder
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.TermsResult
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.TopHitsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Aggregation.ValueCountAggregation
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Aggregation.Bucket a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Aggregation.Hit a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V1.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Aggregation.TopHitResult a)
- Database.V1.Bloodhound.Internal.Aggregation: key :: BucketAggregation a => a -> BucketValue
- Database.V1.Bloodhound.Internal.Aggregation: mkAggregations :: Text -> Aggregation -> Aggregations
- Database.V1.Bloodhound.Internal.Aggregation: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
- Database.V1.Bloodhound.Internal.Aggregation: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
- Database.V1.Bloodhound.Internal.Aggregation: mkTermsAggregation :: Text -> TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: mkTermsScriptAggregation :: Text -> TermsAggregation
- Database.V1.Bloodhound.Internal.Aggregation: toAggResult :: (FromJSON a) => Text -> AggregationResults -> Maybe a
- Database.V1.Bloodhound.Internal.Aggregation: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
- Database.V1.Bloodhound.Internal.Aggregation: toMissing :: Text -> AggregationResults -> Maybe MissingResult
- Database.V1.Bloodhound.Internal.Aggregation: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
- Database.V1.Bloodhound.Internal.Aggregation: toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)
- Database.V1.Bloodhound.Internal.Aggregation: type AggregationResults = Map Text Value
- Database.V1.Bloodhound.Internal.Aggregation: type Aggregations = Map Text Aggregation
- Database.V1.Bloodhound.Internal.Client: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: AllAliasRouting :: RoutingValue -> AliasRouting
- Database.V1.Bloodhound.Internal.Client: AllIndexes :: IndexSelection
- Database.V1.Bloodhound.Internal.Client: AllNodes :: NodeSelection
- Database.V1.Bloodhound.Internal.Client: AllSnapshotRepos :: SnapshotRepoSelection
- Database.V1.Bloodhound.Internal.Client: AllSnapshots :: SnapshotSelection
- Database.V1.Bloodhound.Internal.Client: AllocAll :: AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: AllocNewPrimaries :: AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: AllocNone :: AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: AllocPrimaries :: AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: BH :: ReaderT BHEnv m a -> BH m a
- Database.V1.Bloodhound.Internal.Client: BHEnv :: Server -> Manager -> (Request -> IO Request) -> BHEnv
- Database.V1.Bloodhound.Internal.Client: BlocksMetaData :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: BlocksRead :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: BlocksReadOnly :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: BlocksWrite :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: BoundTransportAddress :: EsAddress -> EsAddress -> BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: BuildHash :: Text -> BuildHash
- Database.V1.Bloodhound.Internal.Client: BulkCreate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Internal.Client: BulkDelete :: IndexName -> MappingName -> DocId -> BulkOperation
- Database.V1.Bloodhound.Internal.Client: BulkIndex :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Internal.Client: BulkUpdate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Internal.Client: ByteType :: FieldType
- Database.V1.Bloodhound.Internal.Client: Bytes :: Int -> Bytes
- Database.V1.Bloodhound.Internal.Client: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
- Database.V1.Bloodhound.Internal.Client: CacheFilterExpire :: (Maybe NominalDiffTime) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: CacheFilterMaxSize :: (Maybe Bytes) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: CloseIndex :: OpenCloseIndex
- Database.V1.Bloodhound.Internal.Client: ClusterName :: Text -> ClusterName
- Database.V1.Bloodhound.Internal.Client: CompoundFileFormat :: Bool -> CompoundFormat
- Database.V1.Bloodhound.Internal.Client: Day :: Interval
- Database.V1.Bloodhound.Internal.Client: Days :: TimeInterval
- Database.V1.Bloodhound.Internal.Client: DocVersion :: Int -> DocVersion
- Database.V1.Bloodhound.Internal.Client: DocumentParent :: DocId -> DocumentParent
- Database.V1.Bloodhound.Internal.Client: EsAddress :: Text -> EsAddress
- Database.V1.Bloodhound.Internal.Client: EsError :: Int -> Text -> EsError
- Database.V1.Bloodhound.Internal.Client: EsPassword :: Text -> EsPassword
- Database.V1.Bloodhound.Internal.Client: EsProtocolException :: LByteString -> EsProtocolException
- Database.V1.Bloodhound.Internal.Client: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
- Database.V1.Bloodhound.Internal.Client: EsResultFound :: DocVersion -> a -> EsResultFound a
- Database.V1.Bloodhound.Internal.Client: EsUsername :: Text -> EsUsername
- Database.V1.Bloodhound.Internal.Client: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
- Database.V1.Bloodhound.Internal.Client: ExactSnap :: SnapshotName -> SnapshotPattern
- Database.V1.Bloodhound.Internal.Client: Exclude :: [Pattern] -> Exclude
- Database.V1.Bloodhound.Internal.Client: ExplicitShards :: Int -> InitialShardCount
- Database.V1.Bloodhound.Internal.Client: ExternalDocVersion :: DocVersion -> ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: ExternalGT :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Internal.Client: ExternalGTE :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Internal.Client: FSBuffered :: FSType
- Database.V1.Bloodhound.Internal.Client: FSSimple :: FSType
- Database.V1.Bloodhound.Internal.Client: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: FieldDefinition :: FieldType -> FieldDefinition
- Database.V1.Bloodhound.Internal.Client: FloatType :: FieldType
- Database.V1.Bloodhound.Internal.Client: ForceVersion :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Internal.Client: FractionalInterval :: Float -> TimeInterval -> Interval
- Database.V1.Bloodhound.Internal.Client: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: FullMinus1Shards :: InitialShardCount
- Database.V1.Bloodhound.Internal.Client: FullNodeId :: Text -> FullNodeId
- Database.V1.Bloodhound.Internal.Client: FullShards :: InitialShardCount
- Database.V1.Bloodhound.Internal.Client: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: GeoPointType :: FieldType
- Database.V1.Bloodhound.Internal.Client: GeoShapeType :: FieldType
- Database.V1.Bloodhound.Internal.Client: GranularAliasRouting :: (Maybe SearchAliasRouting) -> (Maybe IndexAliasRouting) -> AliasRouting
- Database.V1.Bloodhound.Internal.Client: Hour :: Interval
- Database.V1.Bloodhound.Internal.Client: Hours :: TimeInterval
- Database.V1.Bloodhound.Internal.Client: Include :: [Pattern] -> Include
- Database.V1.Bloodhound.Internal.Client: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
- Database.V1.Bloodhound.Internal.Client: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
- Database.V1.Bloodhound.Internal.Client: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
- Database.V1.Bloodhound.Internal.Client: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: IndexConcurrency :: Int -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: IndexDocumentSettings :: VersionControl -> Maybe DocumentParent -> IndexDocumentSettings
- Database.V1.Bloodhound.Internal.Client: IndexList :: (NonEmpty IndexName) -> IndexSelection
- Database.V1.Bloodhound.Internal.Client: IndexOptimizationSettings :: Maybe Int -> Bool -> Bool -> IndexOptimizationSettings
- Database.V1.Bloodhound.Internal.Client: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
- Database.V1.Bloodhound.Internal.Client: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
- Database.V1.Bloodhound.Internal.Client: IndexTemplate :: TemplatePattern -> Maybe IndexSettings -> [Value] -> IndexTemplate
- Database.V1.Bloodhound.Internal.Client: IntegerType :: FieldType
- Database.V1.Bloodhound.Internal.Client: InternalVersion :: DocVersion -> VersionControl
- Database.V1.Bloodhound.Internal.Client: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: JVMGCCollector :: Text -> JVMGCCollector
- Database.V1.Bloodhound.Internal.Client: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
- Database.V1.Bloodhound.Internal.Client: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: JVMMemoryPool :: Text -> JVMMemoryPool
- Database.V1.Bloodhound.Internal.Client: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: JVMVersion :: VersionNumber -> JVMVersion
- Database.V1.Bloodhound.Internal.Client: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
- Database.V1.Bloodhound.Internal.Client: LocalNode :: NodeSelection
- Database.V1.Bloodhound.Internal.Client: LongType :: FieldType
- Database.V1.Bloodhound.Internal.Client: MacAddress :: Text -> MacAddress
- Database.V1.Bloodhound.Internal.Client: Mapping :: TypeName -> [MappingField] -> Mapping
- Database.V1.Bloodhound.Internal.Client: MappingField :: FieldName -> FieldDefinition -> MappingField
- Database.V1.Bloodhound.Internal.Client: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
- Database.V1.Bloodhound.Internal.Client: Minute :: Interval
- Database.V1.Bloodhound.Internal.Client: Minutes :: TimeInterval
- Database.V1.Bloodhound.Internal.Client: Month :: Interval
- Database.V1.Bloodhound.Internal.Client: NetworkInterfaceName :: Text -> NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: NoSource :: Source
- Database.V1.Bloodhound.Internal.Client: NoVersionControl :: VersionControl
- Database.V1.Bloodhound.Internal.Client: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
- Database.V1.Bloodhound.Internal.Client: NodeAttrName :: Text -> NodeAttrName
- Database.V1.Bloodhound.Internal.Client: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
- Database.V1.Bloodhound.Internal.Client: NodeByFullNodeId :: FullNodeId -> NodeSelector
- Database.V1.Bloodhound.Internal.Client: NodeByHost :: Server -> NodeSelector
- Database.V1.Bloodhound.Internal.Client: NodeByName :: NodeName -> NodeSelector
- Database.V1.Bloodhound.Internal.Client: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Text -> Text -> Text -> NodeDataPathStats
- Database.V1.Bloodhound.Internal.Client: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
- Database.V1.Bloodhound.Internal.Client: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: NodeHTTPInfo :: Bytes -> BoundTransportAddress -> NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Int -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: NodeInfo :: EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> NodeNetworkInfo -> NodeThreadPoolsInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
- Database.V1.Bloodhound.Internal.Client: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VersionNumber -> Text -> VersionNumber -> PID -> NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: NodeList :: (NonEmpty NodeSelector) -> NodeSelection
- Database.V1.Bloodhound.Internal.Client: NodeName :: Text -> NodeName
- Database.V1.Bloodhound.Internal.Client: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: NodeOSInfo :: Bytes -> Bytes -> CPUInfo -> Int -> NominalDiffTime -> NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: NodeOSStats :: Bytes -> Bytes -> Bytes -> Bytes -> Int -> Int -> Bytes -> Bytes -> Int -> Int -> Int -> Int -> Int -> Maybe LoadAvgs -> NominalDiffTime -> UTCTime -> NodeOSStats
- Database.V1.Bloodhound.Internal.Client: NodePluginInfo :: Bool -> Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
- Database.V1.Bloodhound.Internal.Client: NodeProcessInfo :: Bool -> Int -> PID -> NominalDiffTime -> NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: NodeProcessStats :: Bytes -> Bytes -> Bytes -> NominalDiffTime -> NominalDiffTime -> NominalDiffTime -> Int -> Int -> UTCTime -> NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> NodeNetworkStats -> NodeThreadPoolsStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
- Database.V1.Bloodhound.Internal.Client: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: NodeThreadPoolsInfo :: NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: NodeThreadPoolsStats :: NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: NodeTransportInfo :: [BoundTransportAddress] -> BoundTransportAddress -> NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
- Database.V1.Bloodhound.Internal.Client: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
- Database.V1.Bloodhound.Internal.Client: NominalDiffTimeJSON :: NominalDiffTime -> NominalDiffTimeJSON
- Database.V1.Bloodhound.Internal.Client: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: OpenIndex :: OpenCloseIndex
- Database.V1.Bloodhound.Internal.Client: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
- Database.V1.Bloodhound.Internal.Client: PID :: Int -> PID
- Database.V1.Bloodhound.Internal.Client: Pattern :: Text -> Pattern
- Database.V1.Bloodhound.Internal.Client: PluginName :: Text -> PluginName
- Database.V1.Bloodhound.Internal.Client: PopPattern :: Pattern -> PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: PopPatterns :: [Pattern] -> PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: Quarter :: Interval
- Database.V1.Bloodhound.Internal.Client: QuorumMinus1Shards :: InitialShardCount
- Database.V1.Bloodhound.Internal.Client: QuorumShards :: InitialShardCount
- Database.V1.Bloodhound.Internal.Client: RRGroupRefNum :: Int -> RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: RRSubWholeMatch :: RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: RRTLit :: Text -> RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RemoveAlias :: IndexAlias -> IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: ReplicasBounded :: Int -> Int -> ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: ReplicasLowerBounded :: Int -> ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: ReplicasUnbounded :: ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: RepoPattern :: Text -> SnapshotRepoPattern
- Database.V1.Bloodhound.Internal.Client: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
- Database.V1.Bloodhound.Internal.Client: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: RestoreRenamePattern :: Text -> RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RoutingAllocationExclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RoutingAllocationInclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RoutingAllocationRequire :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: RoutingValue :: Text -> RoutingValue
- Database.V1.Bloodhound.Internal.Client: ScrollId :: Text -> ScrollId
- Database.V1.Bloodhound.Internal.Client: SearchAliasRouting :: (NonEmpty RoutingValue) -> SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: Second :: Interval
- Database.V1.Bloodhound.Internal.Client: Seconds :: TimeInterval
- Database.V1.Bloodhound.Internal.Client: Server :: Text -> Server
- Database.V1.Bloodhound.Internal.Client: ShardResult :: Int -> Int -> Int -> ShardResult
- Database.V1.Bloodhound.Internal.Client: ShortType :: FieldType
- Database.V1.Bloodhound.Internal.Client: SnapPattern :: Text -> SnapshotPattern
- Database.V1.Bloodhound.Internal.Client: SnapshotAborted :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
- Database.V1.Bloodhound.Internal.Client: SnapshotFailed :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
- Database.V1.Bloodhound.Internal.Client: SnapshotInit :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotList :: (NonEmpty SnapshotPattern) -> SnapshotSelection
- Database.V1.Bloodhound.Internal.Client: SnapshotMissing :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
- Database.V1.Bloodhound.Internal.Client: SnapshotRepoList :: (NonEmpty SnapshotRepoPattern) -> SnapshotRepoSelection
- Database.V1.Bloodhound.Internal.Client: SnapshotRepoName :: Text -> SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: SnapshotRepoType :: Text -> SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Internal.Client: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
- Database.V1.Bloodhound.Internal.Client: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
- Database.V1.Bloodhound.Internal.Client: SnapshotStarted :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotSuccess :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
- Database.V1.Bloodhound.Internal.Client: SnapshotWaiting :: SnapshotState
- Database.V1.Bloodhound.Internal.Client: SourceIncludeExclude :: Include -> Exclude -> Source
- Database.V1.Bloodhound.Internal.Client: SourcePatterns :: PatternOrPatterns -> Source
- Database.V1.Bloodhound.Internal.Client: Status :: Maybe Bool -> Int -> Text -> Version -> Text -> Status
- Database.V1.Bloodhound.Internal.Client: TTLDisablePurge :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: ThreadPoolBounded :: Int -> ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: ThreadPoolCached :: ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: ThreadPoolFixed :: ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: ThreadPoolScaling :: ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: ThreadPoolUnbounded :: ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: TranslogFSType :: FSType -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
- Database.V1.Bloodhound.Internal.Client: VersionNumber :: Version -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: WarmerEnabled :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: Week :: Interval
- Database.V1.Bloodhound.Internal.Client: Weeks :: TimeInterval
- Database.V1.Bloodhound.Internal.Client: Year :: Interval
- Database.V1.Bloodhound.Internal.Client: [_id] :: EsResult a -> Text
- Database.V1.Bloodhound.Internal.Client: [_index] :: EsResult a -> Text
- Database.V1.Bloodhound.Internal.Client: [_source] :: EsResultFound a -> a
- Database.V1.Bloodhound.Internal.Client: [_type] :: EsResult a -> Text
- Database.V1.Bloodhound.Internal.Client: [_version] :: EsResultFound a -> DocVersion
- Database.V1.Bloodhound.Internal.Client: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
- Database.V1.Bloodhound.Internal.Client: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
- Database.V1.Bloodhound.Internal.Client: [bhManager] :: BHEnv -> Manager
- Database.V1.Bloodhound.Internal.Client: [bhRequestHook] :: BHEnv -> Request -> IO Request
- Database.V1.Bloodhound.Internal.Client: [bhServer] :: BHEnv -> Server
- Database.V1.Bloodhound.Internal.Client: [boundAddress] :: BoundTransportAddress -> EsAddress
- Database.V1.Bloodhound.Internal.Client: [buildHash] :: BuildHash -> Text
- Database.V1.Bloodhound.Internal.Client: [build_hash] :: Version -> BuildHash
- Database.V1.Bloodhound.Internal.Client: [build_snapshot] :: Version -> Bool
- Database.V1.Bloodhound.Internal.Client: [build_timestamp] :: Version -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [clusterName] :: ClusterName -> Text
- Database.V1.Bloodhound.Internal.Client: [cpuCacheSize] :: CPUInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [cpuCoresPerSocket] :: CPUInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [cpuMHZ] :: CPUInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [cpuModel] :: CPUInfo -> Text
- Database.V1.Bloodhound.Internal.Client: [cpuTotalCores] :: CPUInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [cpuTotalSockets] :: CPUInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [cpuVendor] :: CPUInfo -> Text
- Database.V1.Bloodhound.Internal.Client: [docVersionNumber] :: DocVersion -> Int
- Database.V1.Bloodhound.Internal.Client: [errorMessage] :: EsError -> Text
- Database.V1.Bloodhound.Internal.Client: [errorStatus] :: EsError -> Int
- Database.V1.Bloodhound.Internal.Client: [esAddress] :: EsAddress -> Text
- Database.V1.Bloodhound.Internal.Client: [esPassword] :: EsPassword -> Text
- Database.V1.Bloodhound.Internal.Client: [esProtoExBody] :: EsProtocolException -> LByteString
- Database.V1.Bloodhound.Internal.Client: [esUsername] :: EsUsername -> Text
- Database.V1.Bloodhound.Internal.Client: [fieldDefinition] :: MappingField -> FieldDefinition
- Database.V1.Bloodhound.Internal.Client: [fieldType] :: FieldDefinition -> FieldType
- Database.V1.Bloodhound.Internal.Client: [flushAfterOptimize] :: IndexOptimizationSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
- Database.V1.Bloodhound.Internal.Client: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
- Database.V1.Bloodhound.Internal.Client: [fsrLocation] :: FsSnapshotRepo -> FilePath
- Database.V1.Bloodhound.Internal.Client: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: [fullNodeId] :: FullNodeId -> Text
- Database.V1.Bloodhound.Internal.Client: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
- Database.V1.Bloodhound.Internal.Client: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: [idsParent] :: IndexDocumentSettings -> Maybe DocumentParent
- Database.V1.Bloodhound.Internal.Client: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
- Database.V1.Bloodhound.Internal.Client: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
- Database.V1.Bloodhound.Internal.Client: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: [indexAlias] :: IndexAlias -> IndexAliasName
- Database.V1.Bloodhound.Internal.Client: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
- Database.V1.Bloodhound.Internal.Client: [indexReplicas] :: IndexSettings -> ReplicaCount
- Database.V1.Bloodhound.Internal.Client: [indexShards] :: IndexSettings -> ShardCount
- Database.V1.Bloodhound.Internal.Client: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmGCCollector] :: JVMGCCollector -> Text
- Database.V1.Bloodhound.Internal.Client: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
- Database.V1.Bloodhound.Internal.Client: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmMemoryPool] :: JVMMemoryPool -> Text
- Database.V1.Bloodhound.Internal.Client: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [loadAvg15Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Internal.Client: [loadAvg1Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Internal.Client: [loadAvg5Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Internal.Client: [lucene_version] :: Version -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [macAddress] :: MacAddress -> Text
- Database.V1.Bloodhound.Internal.Client: [mappingFieldName] :: MappingField -> FieldName
- Database.V1.Bloodhound.Internal.Client: [mappingFields] :: Mapping -> [MappingField]
- Database.V1.Bloodhound.Internal.Client: [maxNumSegments] :: IndexOptimizationSettings -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [name] :: Status -> Text
- Database.V1.Bloodhound.Internal.Client: [ndtJSON] :: NominalDiffTimeJSON -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [networkInterfaceName] :: NetworkInterfaceName -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
- Database.V1.Bloodhound.Internal.Client: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
- Database.V1.Bloodhound.Internal.Client: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
- Database.V1.Bloodhound.Internal.Client: [nodeBreakersTripped] :: NodeBreakerStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathDevice] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathMount] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathPath] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
- Database.V1.Bloodhound.Internal.Client: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeHTTPTransportAddress] :: NodeHTTPInfo -> BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFilterCacheEvictions] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFilterCacheMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIDCacheMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeInfoBuild] :: NodeInfo -> BuildHash
- Database.V1.Bloodhound.Internal.Client: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [nodeInfoFullId] :: NodeInfo -> FullNodeId
- Database.V1.Bloodhound.Internal.Client: [nodeInfoHTTPAddress] :: NodeInfo -> EsAddress
- Database.V1.Bloodhound.Internal.Client: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoHost] :: NodeInfo -> Server
- Database.V1.Bloodhound.Internal.Client: [nodeInfoIP] :: NodeInfo -> Server
- Database.V1.Bloodhound.Internal.Client: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoName] :: NodeInfo -> NodeName
- Database.V1.Bloodhound.Internal.Client: [nodeInfoNetwork] :: NodeInfo -> NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
- Database.V1.Bloodhound.Internal.Client: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoSettings] :: NodeInfo -> Object
- Database.V1.Bloodhound.Internal.Client: [nodeInfoThreadPool] :: NodeInfo -> NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
- Database.V1.Bloodhound.Internal.Client: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
- Database.V1.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
- Database.V1.Bloodhound.Internal.Client: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeJVMPID] :: NodeJVMInfo -> PID
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeJVMVMName] :: NodeJVMInfo -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeJVMVMVersion] :: NodeJVMInfo -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [nodeJVMVersion] :: NodeJVMInfo -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [nodeName] :: NodeName -> Text
- Database.V1.Bloodhound.Internal.Client: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
- Database.V1.Bloodhound.Internal.Client: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
- Database.V1.Bloodhound.Internal.Client: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUIdle] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUInfo] :: NodeOSInfo -> CPUInfo
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUStolen] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUSys] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUUsage] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSCPUUser] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemActualFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemActualUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemFreePercent] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeOSMemUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSMem] :: NodeOSInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeOSSwapFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSSwap] :: NodeOSInfo -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [nodeOSUptime] :: NodeOSStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodePluginDescription] :: NodePluginInfo -> Text
- Database.V1.Bloodhound.Internal.Client: [nodePluginJVM] :: NodePluginInfo -> Bool
- Database.V1.Bloodhound.Internal.Client: [nodePluginName] :: NodePluginInfo -> PluginName
- Database.V1.Bloodhound.Internal.Client: [nodePluginSite] :: NodePluginInfo -> Bool
- Database.V1.Bloodhound.Internal.Client: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
- Database.V1.Bloodhound.Internal.Client: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeProcessCPUSys] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeProcessCPUUser] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeProcessId] :: NodeProcessInfo -> PID
- Database.V1.Bloodhound.Internal.Client: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
- Database.V1.Bloodhound.Internal.Client: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeProcessMemResident] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeProcessMemShare] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsFS] :: NodeStats -> NodeFSStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsFullId] :: NodeStats -> FullNodeId
- Database.V1.Bloodhound.Internal.Client: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsName] :: NodeStats -> NodeName
- Database.V1.Bloodhound.Internal.Client: [nodeStatsNetwork] :: NodeStats -> NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsOS] :: NodeStats -> NodeOSStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsThreadPool] :: NodeStats -> NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsBulk] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsFetchShardStarted] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsFetchShardStore] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsFlush] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsGeneric] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsGet] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsIndex] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsListener] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsManagement] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsMerge] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsOptimize] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsPercolate] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsRefresh] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsSearch] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsSnapshot] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsBulk] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFetchShardStarted] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFetchShardStore] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFlush] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsGeneric] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsGet] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsIndex] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsListener] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsManagement] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsMerge] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsOptimize] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsPercolate] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsRefresh] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSearch] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSnapshot] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSuggest] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsStatsWarmer] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsSuggest] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeThreadPoolsWarmer] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: [nodeTransportAddress] :: NodeTransportInfo -> BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: [nodeTransportCount] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
- Database.V1.Bloodhound.Internal.Client: [nodeTransportRXCount] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodeTransportServerOpen] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Internal.Client: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
- Database.V1.Bloodhound.Internal.Client: [nodesClusterName] :: NodesInfo -> ClusterName
- Database.V1.Bloodhound.Internal.Client: [nodesInfo] :: NodesInfo -> [NodeInfo]
- Database.V1.Bloodhound.Internal.Client: [nodesStatsClusterName] :: NodesStats -> ClusterName
- Database.V1.Bloodhound.Internal.Client: [nodesStats] :: NodesStats -> [NodeStats]
- Database.V1.Bloodhound.Internal.Client: [number] :: Version -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [ok] :: Status -> Maybe Bool
- Database.V1.Bloodhound.Internal.Client: [onlyExpungeDeletes] :: IndexOptimizationSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [pid] :: PID -> Int
- Database.V1.Bloodhound.Internal.Client: [pluginName] :: PluginName -> Text
- Database.V1.Bloodhound.Internal.Client: [publishAddress] :: BoundTransportAddress -> EsAddress
- Database.V1.Bloodhound.Internal.Client: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
- Database.V1.Bloodhound.Internal.Client: [routingValue] :: RoutingValue -> Text
- Database.V1.Bloodhound.Internal.Client: [rrGroupRefNum] :: RRGroupRefNum -> Int
- Database.V1.Bloodhound.Internal.Client: [rrPattern] :: RestoreRenamePattern -> Text
- Database.V1.Bloodhound.Internal.Client: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
- Database.V1.Bloodhound.Internal.Client: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
- Database.V1.Bloodhound.Internal.Client: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
- Database.V1.Bloodhound.Internal.Client: [shardTotal] :: ShardResult -> Int
- Database.V1.Bloodhound.Internal.Client: [shardsFailed] :: ShardResult -> Int
- Database.V1.Bloodhound.Internal.Client: [shardsSuccessful] :: ShardResult -> Int
- Database.V1.Bloodhound.Internal.Client: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
- Database.V1.Bloodhound.Internal.Client: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
- Database.V1.Bloodhound.Internal.Client: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
- Database.V1.Bloodhound.Internal.Client: [snapInfoName] :: SnapshotInfo -> SnapshotName
- Database.V1.Bloodhound.Internal.Client: [snapInfoShards] :: SnapshotInfo -> ShardResult
- Database.V1.Bloodhound.Internal.Client: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
- Database.V1.Bloodhound.Internal.Client: [snapInfoState] :: SnapshotInfo -> SnapshotState
- Database.V1.Bloodhound.Internal.Client: [snapPartial] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
- Database.V1.Bloodhound.Internal.Client: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
- Database.V1.Bloodhound.Internal.Client: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
- Database.V1.Bloodhound.Internal.Client: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
- Database.V1.Bloodhound.Internal.Client: [snapShardFailureReason] :: SnapshotShardFailure -> Text
- Database.V1.Bloodhound.Internal.Client: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
- Database.V1.Bloodhound.Internal.Client: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Internal.Client: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
- Database.V1.Bloodhound.Internal.Client: [snapshotRepoName] :: SnapshotRepoName -> Text
- Database.V1.Bloodhound.Internal.Client: [snapshotRepoType] :: SnapshotRepoType -> Text
- Database.V1.Bloodhound.Internal.Client: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
- Database.V1.Bloodhound.Internal.Client: [snvNodeName] :: SnapshotNodeVerification -> NodeName
- Database.V1.Bloodhound.Internal.Client: [srcIndex] :: IndexAlias -> IndexName
- Database.V1.Bloodhound.Internal.Client: [status] :: Status -> Int
- Database.V1.Bloodhound.Internal.Client: [tagline] :: Status -> Text
- Database.V1.Bloodhound.Internal.Client: [templateMappings] :: IndexTemplate -> [Value]
- Database.V1.Bloodhound.Internal.Client: [templatePattern] :: IndexTemplate -> TemplatePattern
- Database.V1.Bloodhound.Internal.Client: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
- Database.V1.Bloodhound.Internal.Client: [typeName] :: Mapping -> TypeName
- Database.V1.Bloodhound.Internal.Client: [unBH] :: BH m a -> ReaderT BHEnv m a
- Database.V1.Bloodhound.Internal.Client: [unJVMVersion] :: JVMVersion -> VersionNumber
- Database.V1.Bloodhound.Internal.Client: [versionNumber] :: VersionNumber -> Version
- Database.V1.Bloodhound.Internal.Client: [version] :: Status -> Version
- Database.V1.Bloodhound.Internal.Client: attrFilterJSON :: NonEmpty NodeAttrFilter -> Value
- Database.V1.Bloodhound.Internal.Client: class (Functor m, Applicative m, MonadIO m) => MonadBH m
- Database.V1.Bloodhound.Internal.Client: class SnapshotRepo r
- Database.V1.Bloodhound.Internal.Client: data AliasRouting
- Database.V1.Bloodhound.Internal.Client: data AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: data BHEnv
- Database.V1.Bloodhound.Internal.Client: data BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: data BulkOperation
- Database.V1.Bloodhound.Internal.Client: data CPUInfo
- Database.V1.Bloodhound.Internal.Client: data CompoundFormat
- Database.V1.Bloodhound.Internal.Client: data EsError
- Database.V1.Bloodhound.Internal.Client: data EsProtocolException
- Database.V1.Bloodhound.Internal.Client: data EsResult a
- Database.V1.Bloodhound.Internal.Client: data EsResultFound a
- Database.V1.Bloodhound.Internal.Client: data Exclude
- Database.V1.Bloodhound.Internal.Client: data FSType
- Database.V1.Bloodhound.Internal.Client: data FieldDefinition
- Database.V1.Bloodhound.Internal.Client: data FieldType
- Database.V1.Bloodhound.Internal.Client: data FsSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: data GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: data Include
- Database.V1.Bloodhound.Internal.Client: data IndexAlias
- Database.V1.Bloodhound.Internal.Client: data IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: data IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: data IndexAliasSummary
- Database.V1.Bloodhound.Internal.Client: data IndexDocumentSettings
- Database.V1.Bloodhound.Internal.Client: data IndexOptimizationSettings
- Database.V1.Bloodhound.Internal.Client: data IndexSelection
- Database.V1.Bloodhound.Internal.Client: data IndexSettings
- Database.V1.Bloodhound.Internal.Client: data IndexSettingsSummary
- Database.V1.Bloodhound.Internal.Client: data IndexTemplate
- Database.V1.Bloodhound.Internal.Client: data InitialShardCount
- Database.V1.Bloodhound.Internal.Client: data Interval
- Database.V1.Bloodhound.Internal.Client: data JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: data JVMGCStats
- Database.V1.Bloodhound.Internal.Client: data JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: data JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: data LoadAvgs
- Database.V1.Bloodhound.Internal.Client: data Mapping
- Database.V1.Bloodhound.Internal.Client: data MappingField
- Database.V1.Bloodhound.Internal.Client: data NodeAttrFilter
- Database.V1.Bloodhound.Internal.Client: data NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: data NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: data NodeDataPathStats
- Database.V1.Bloodhound.Internal.Client: data NodeFSStats
- Database.V1.Bloodhound.Internal.Client: data NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: data NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: data NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: data NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: data NodeInfo
- Database.V1.Bloodhound.Internal.Client: data NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: data NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: data NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: data NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: data NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: data NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: data NodeOSStats
- Database.V1.Bloodhound.Internal.Client: data NodePluginInfo
- Database.V1.Bloodhound.Internal.Client: data NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: data NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: data NodeSelection
- Database.V1.Bloodhound.Internal.Client: data NodeSelector
- Database.V1.Bloodhound.Internal.Client: data NodeStats
- Database.V1.Bloodhound.Internal.Client: data NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: data NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: data NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: data NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: data NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: data NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: data NodesInfo
- Database.V1.Bloodhound.Internal.Client: data NodesStats
- Database.V1.Bloodhound.Internal.Client: data OpenCloseIndex
- Database.V1.Bloodhound.Internal.Client: data PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: data ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: data RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: data RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: data ShardResult
- Database.V1.Bloodhound.Internal.Client: data SnapshotCreateSettings
- Database.V1.Bloodhound.Internal.Client: data SnapshotInfo
- Database.V1.Bloodhound.Internal.Client: data SnapshotNodeVerification
- Database.V1.Bloodhound.Internal.Client: data SnapshotPattern
- Database.V1.Bloodhound.Internal.Client: data SnapshotRepoConversionError
- Database.V1.Bloodhound.Internal.Client: data SnapshotRepoPattern
- Database.V1.Bloodhound.Internal.Client: data SnapshotRepoSelection
- Database.V1.Bloodhound.Internal.Client: data SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Internal.Client: data SnapshotRestoreSettings
- Database.V1.Bloodhound.Internal.Client: data SnapshotSelection
- Database.V1.Bloodhound.Internal.Client: data SnapshotShardFailure
- Database.V1.Bloodhound.Internal.Client: data SnapshotState
- Database.V1.Bloodhound.Internal.Client: data Source
- Database.V1.Bloodhound.Internal.Client: data Status
- Database.V1.Bloodhound.Internal.Client: data ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: data ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: data TimeInterval
- Database.V1.Bloodhound.Internal.Client: data UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: data Version
- Database.V1.Bloodhound.Internal.Client: data VersionControl
- Database.V1.Bloodhound.Internal.Client: defaultIndexDocumentSettings :: IndexDocumentSettings
- Database.V1.Bloodhound.Internal.Client: defaultIndexOptimizationSettings :: IndexOptimizationSettings
- Database.V1.Bloodhound.Internal.Client: defaultIndexSettings :: IndexSettings
- Database.V1.Bloodhound.Internal.Client: defaultSnapshotCreateSettings :: SnapshotCreateSettings
- Database.V1.Bloodhound.Internal.Client: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Internal.Client: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
- Database.V1.Bloodhound.Internal.Client: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
- Database.V1.Bloodhound.Internal.Client: fsRepoType :: SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: getBHEnv :: MonadBH m => m BHEnv
- Database.V1.Bloodhound.Internal.Client: gigabytes :: Int -> Bytes
- Database.V1.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.V1.Bloodhound.Internal.Client.MonadBH (Control.Monad.Trans.Reader.ReaderT Database.V1.Bloodhound.Internal.Client.BHEnv m)
- Database.V1.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.V1.Bloodhound.Internal.Client.MonadBH (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Trans.Class.MonadTrans Database.V1.Bloodhound.Internal.Client.BH
- Database.V1.Bloodhound.Internal.Client: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.AliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.BuildHash
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.Bytes
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.CPUInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ClusterName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.CompoundFormat
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.EsAddress
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.EsError
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.FSType
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.FullNodeId
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.IndexSettings
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.InitialShardCount
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMGCCollector
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMGCStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.JVMVersion
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.LoadAvgs
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.MacAddress
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeFSStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeOSStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodePluginInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodesInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NodesStats
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.NominalDiffTimeJSON
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.PID
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.PluginName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.RoutingValue
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ScrollId
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.Server
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ShardResult
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotInfo
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotState
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.SnapshotVerification
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.Status
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.Version
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Client.VersionNumber
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Client.EsResult a)
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Client.EsResultFound a)
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.AliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.BuildHash
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Bytes
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.CompoundFormat
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Exclude
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.FSType
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Include
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexAlias
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexSettings
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.IndexTemplate
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.InitialShardCount
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Interval
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.NominalDiffTimeJSON
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Pattern
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.RoutingValue
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.ScrollId
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Source
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.Version
- Database.V1.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Client.VersionNumber
- Database.V1.Bloodhound.Internal.Client: instance Database.V1.Bloodhound.Internal.Client.SnapshotRepo Database.V1.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance Database.V1.Bloodhound.Internal.Client.SnapshotRepo Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Base.Alternative m => GHC.Base.Alternative (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Base.Applicative m => GHC.Base.Applicative (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Base.Functor m => GHC.Base.Functor (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Base.Monad m => GHC.Base.Monad (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Database.V1.Bloodhound.Internal.Client.BH m)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.AliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.BuildHash
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.BulkOperation
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Bytes
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.CPUInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ClusterName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.CompoundFormat
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.DocumentParent
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.EsAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.EsError
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.EsPassword
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.EsProtocolException
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.EsUsername
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Exclude
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.FSType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.FieldDefinition
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.FieldType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.FullNodeId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Include
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAlias
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAliasSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexDocumentSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexOptimizationSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.InitialShardCount
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Interval
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMGCCollector
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMGCStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.LoadAvgs
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.MacAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Mapping
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.MappingField
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeAttrName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeFSStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeOSStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodePluginInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeSelector
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodesInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.NodesStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.OpenCloseIndex
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.PID
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Pattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.PluginName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.RoutingValue
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ScrollId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Server
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ShardResult
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotCreateSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotNodeVerification
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotPattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoConversionError
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoPattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotRestoreSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotState
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.SnapshotVerification
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Source
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Status
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.TimeInterval
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.Version
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.VersionControl
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Client.VersionNumber
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Internal.Client.EsResult a)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Internal.Client.EsResultFound a)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.BuildHash
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.Bytes
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.ClusterName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.EsAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.FullNodeId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.MacAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.NodeAttrName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.NodeName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.PluginName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.ScrollId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.VersionControl
- Database.V1.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Client.VersionNumber
- Database.V1.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V1.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Exception.Exception Database.V1.Bloodhound.Internal.Client.EsProtocolException
- Database.V1.Bloodhound.Internal.Client: instance GHC.Read.Read Database.V1.Bloodhound.Internal.Client.TimeInterval
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.AliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.AllocationPolicy
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.BuildHash
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.BulkOperation
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Bytes
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.CPUInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ClusterName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.CompoundFormat
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.DocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.DocumentParent
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.EsAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.EsError
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.EsPassword
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.EsProtocolException
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.EsUsername
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Exclude
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.FSType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.FieldDefinition
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.FieldType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.FullNodeId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Include
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAlias
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAliasAction
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAliasSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexDocumentSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexOptimizationSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.InitialShardCount
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Interval
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMGCCollector
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMGCStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.JVMPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.LoadAvgs
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.MacAddress
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Mapping
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.MappingField
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeAttrName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeFSStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeJVMStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeOSInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeOSStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodePluginInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeProcessStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeSelector
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodeTransportStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodesInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.NodesStats
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.OpenCloseIndex
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.PID
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Pattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.PatternOrPatterns
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.PluginName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ReplicaBounds
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.RestoreRenameToken
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.RoutingValue
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ScrollId
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Server
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ShardResult
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotCreateSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotInfo
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotNodeVerification
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotPattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoConversionError
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoPattern
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotRestoreSettings
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotSelection
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotState
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.SnapshotVerification
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Source
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Status
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.ThreadPoolType
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.TimeInterval
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.Version
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.VersionControl
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Client.VersionNumber
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Client.EsResult a)
- Database.V1.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Client.EsResultFound a)
- Database.V1.Bloodhound.Internal.Client: kilobytes :: Int -> Bytes
- Database.V1.Bloodhound.Internal.Client: megabytes :: Int -> Bytes
- Database.V1.Bloodhound.Internal.Client: mkBHEnv :: Server -> Manager -> BHEnv
- Database.V1.Bloodhound.Internal.Client: mkDocVersion :: Int -> Maybe DocVersion
- Database.V1.Bloodhound.Internal.Client: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: newtype BH m a
- Database.V1.Bloodhound.Internal.Client: newtype BuildHash
- Database.V1.Bloodhound.Internal.Client: newtype Bytes
- Database.V1.Bloodhound.Internal.Client: newtype ClusterName
- Database.V1.Bloodhound.Internal.Client: newtype DocVersion
- Database.V1.Bloodhound.Internal.Client: newtype DocumentParent
- Database.V1.Bloodhound.Internal.Client: newtype EsAddress
- Database.V1.Bloodhound.Internal.Client: newtype EsPassword
- Database.V1.Bloodhound.Internal.Client: newtype EsUsername
- Database.V1.Bloodhound.Internal.Client: newtype ExternalDocVersion
- Database.V1.Bloodhound.Internal.Client: newtype FullNodeId
- Database.V1.Bloodhound.Internal.Client: newtype GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Internal.Client: newtype IndexAliasRouting
- Database.V1.Bloodhound.Internal.Client: newtype IndexAliasesSummary
- Database.V1.Bloodhound.Internal.Client: newtype JVMGCCollector
- Database.V1.Bloodhound.Internal.Client: newtype JVMMemoryPool
- Database.V1.Bloodhound.Internal.Client: newtype JVMVersion
- Database.V1.Bloodhound.Internal.Client: newtype MacAddress
- Database.V1.Bloodhound.Internal.Client: newtype NetworkInterfaceName
- Database.V1.Bloodhound.Internal.Client: newtype NodeAttrName
- Database.V1.Bloodhound.Internal.Client: newtype NodeName
- Database.V1.Bloodhound.Internal.Client: newtype NominalDiffTimeJSON
- Database.V1.Bloodhound.Internal.Client: newtype PID
- Database.V1.Bloodhound.Internal.Client: newtype Pattern
- Database.V1.Bloodhound.Internal.Client: newtype PluginName
- Database.V1.Bloodhound.Internal.Client: newtype RRGroupRefNum
- Database.V1.Bloodhound.Internal.Client: newtype RestoreRenamePattern
- Database.V1.Bloodhound.Internal.Client: newtype RoutingValue
- Database.V1.Bloodhound.Internal.Client: newtype ScrollId
- Database.V1.Bloodhound.Internal.Client: newtype SearchAliasRouting
- Database.V1.Bloodhound.Internal.Client: newtype Server
- Database.V1.Bloodhound.Internal.Client: newtype SnapshotRepoName
- Database.V1.Bloodhound.Internal.Client: newtype SnapshotRepoType
- Database.V1.Bloodhound.Internal.Client: newtype SnapshotVerification
- Database.V1.Bloodhound.Internal.Client: newtype VersionNumber
- Database.V1.Bloodhound.Internal.Client: parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)
- Database.V1.Bloodhound.Internal.Client: parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo
- Database.V1.Bloodhound.Internal.Client: parseNodeStats :: FullNodeId -> Object -> Parser NodeStats
- Database.V1.Bloodhound.Internal.Client: parseRepo :: Parser a -> Either SnapshotRepoConversionError a
- Database.V1.Bloodhound.Internal.Client: parseSettings :: Object -> Parser [UpdatableIndexSetting]
- Database.V1.Bloodhound.Internal.Client: parseStringInterval :: (Monad m) => String -> m NominalDiffTime
- Database.V1.Bloodhound.Internal.Client: runBH :: BHEnv -> BH m a -> m a
- Database.V1.Bloodhound.Internal.Client: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
- Database.V1.Bloodhound.Internal.Client: type Reply = Response LByteString
- Database.V1.Bloodhound.Internal.Highlight: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: CustomTags :: ([Text], [Text]) -> HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: DefaultEncoder :: HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: FastVector :: FastVectorHighlight -> HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
- Database.V1.Bloodhound.Internal.Highlight: FieldHighlight :: FieldName -> (Maybe HighlightSettings) -> FieldHighlight
- Database.V1.Bloodhound.Internal.Highlight: HTMLEncoder :: HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
- Database.V1.Bloodhound.Internal.Highlight: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
- Database.V1.Bloodhound.Internal.Highlight: Plain :: PlainHighlight -> HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
- Database.V1.Bloodhound.Internal.Highlight: Postings :: PostingsHighlight -> HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: PostingsHighlight :: (Maybe CommonHighlight) -> PostingsHighlight
- Database.V1.Bloodhound.Internal.Highlight: TagSchema :: Text -> HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: [boundaryChars] :: FastVectorHighlight -> Maybe Text
- Database.V1.Bloodhound.Internal.Highlight: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: [forceSource] :: CommonHighlight -> Maybe Bool
- Database.V1.Bloodhound.Internal.Highlight: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [fragmentSize] :: NonPostings -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
- Database.V1.Bloodhound.Internal.Highlight: [globalsettings] :: Highlights -> Maybe HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: [highlightFields] :: Highlights -> [FieldHighlight]
- Database.V1.Bloodhound.Internal.Highlight: [highlightQuery] :: CommonHighlight -> Maybe Query
- Database.V1.Bloodhound.Internal.Highlight: [matchedFields] :: FastVectorHighlight -> [Text]
- Database.V1.Bloodhound.Internal.Highlight: [noMatchSize] :: CommonHighlight -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [numberOfFragments] :: NonPostings -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [order] :: CommonHighlight -> Maybe Text
- Database.V1.Bloodhound.Internal.Highlight: [phraseLimit] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Internal.Highlight: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
- Database.V1.Bloodhound.Internal.Highlight: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
- Database.V1.Bloodhound.Internal.Highlight: [tag] :: CommonHighlight -> Maybe HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: commonHighlightPairs :: Maybe CommonHighlight -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: data CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: data FastVectorHighlight
- Database.V1.Bloodhound.Internal.Highlight: data FieldHighlight
- Database.V1.Bloodhound.Internal.Highlight: data HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: data HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: data HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: data Highlights
- Database.V1.Bloodhound.Internal.Highlight: data NonPostings
- Database.V1.Bloodhound.Internal.Highlight: data PlainHighlight
- Database.V1.Bloodhound.Internal.Highlight: data PostingsHighlight
- Database.V1.Bloodhound.Internal.Highlight: fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: highlightTagToPairs :: Maybe HighlightTag -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Highlight.Highlights
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.FastVectorHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.Highlights
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.NonPostings
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.PlainHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Highlight.PostingsHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.CommonHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.FastVectorHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.HighlightTag
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.Highlights
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.NonPostings
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.PlainHighlight
- Database.V1.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Highlight.PostingsHighlight
- Database.V1.Bloodhound.Internal.Highlight: nonPostingsToPairs :: Maybe NonPostings -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: plainHighPairs :: Maybe PlainHighlight -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: postHighPairs :: Maybe PostingsHighlight -> [Pair]
- Database.V1.Bloodhound.Internal.Highlight: type HitHighlight = Map Text [Text]
- Database.V1.Bloodhound.Internal.Newtypes: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: AnalyzeWildcard :: Bool -> AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: Analyzer :: Text -> Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: Boost :: Double -> Boost
- Database.V1.Bloodhound.Internal.Newtypes: BoostTerms :: Double -> BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: CacheKey :: Text -> CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: CacheName :: Text -> CacheName
- Database.V1.Bloodhound.Internal.Newtypes: CutoffFrequency :: Double -> CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: DisableCoord :: Bool -> DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: DocId :: Text -> DocId
- Database.V1.Bloodhound.Internal.Newtypes: EnablePositionIncrements :: Bool -> EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: Existence :: Bool -> Existence
- Database.V1.Bloodhound.Internal.Newtypes: FieldName :: Text -> FieldName
- Database.V1.Bloodhound.Internal.Newtypes: From :: Int -> From
- Database.V1.Bloodhound.Internal.Newtypes: Fuzziness :: Double -> Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: IndexAliasName :: IndexName -> IndexAliasName
- Database.V1.Bloodhound.Internal.Newtypes: IndexName :: Text -> IndexName
- Database.V1.Bloodhound.Internal.Newtypes: Lenient :: Bool -> Lenient
- Database.V1.Bloodhound.Internal.Newtypes: Locale :: Text -> Locale
- Database.V1.Bloodhound.Internal.Newtypes: LowercaseExpanded :: Bool -> LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: MS :: NominalDiffTime -> MS
- Database.V1.Bloodhound.Internal.Newtypes: MappingName :: Text -> MappingName
- Database.V1.Bloodhound.Internal.Newtypes: MaxDocFrequency :: Int -> MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: MaxExpansions :: Int -> MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: MaxQueryTerms :: Int -> MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: MaxWordLength :: Int -> MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: MaybeNA :: Maybe a -> MaybeNA a
- Database.V1.Bloodhound.Internal.Newtypes: MinDocFrequency :: Int -> MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: MinWordLength :: Int -> MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: MinimumMatch :: Int -> MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: MinimumTermFrequency :: Int -> MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: NullValue :: Bool -> NullValue
- Database.V1.Bloodhound.Internal.Newtypes: POSIXMS :: UTCTime -> POSIXMS
- Database.V1.Bloodhound.Internal.Newtypes: PercentMatch :: Double -> PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: PhraseSlop :: Int -> PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: PrefixLength :: Int -> PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: QueryPath :: Text -> QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: QueryString :: Text -> QueryString
- Database.V1.Bloodhound.Internal.Newtypes: ReplicaCount :: Int -> ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: Script :: Text -> Script
- Database.V1.Bloodhound.Internal.Newtypes: ShardCount :: Int -> ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: ShardId :: Int -> ShardId
- Database.V1.Bloodhound.Internal.Newtypes: Size :: Int -> Size
- Database.V1.Bloodhound.Internal.Newtypes: SnapshotName :: Text -> SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: StopWord :: Text -> StopWord
- Database.V1.Bloodhound.Internal.Newtypes: TemplateName :: Text -> TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: TemplatePattern :: Text -> TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: Tiebreaker :: Double -> Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: TypeName :: Text -> TypeName
- Database.V1.Bloodhound.Internal.Newtypes: [indexAliasName] :: IndexAliasName -> IndexName
- Database.V1.Bloodhound.Internal.Newtypes: [posixMS] :: POSIXMS -> UTCTime
- Database.V1.Bloodhound.Internal.Newtypes: [scriptText] :: Script -> Text
- Database.V1.Bloodhound.Internal.Newtypes: [shardId] :: ShardId -> Int
- Database.V1.Bloodhound.Internal.Newtypes: [snapshotName] :: SnapshotName -> Text
- Database.V1.Bloodhound.Internal.Newtypes: [unMaybeNA] :: MaybeNA a -> Maybe a
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Boost
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.CacheName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.DocId
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Existence
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.FieldName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.IndexName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Lenient
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Locale
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MS
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MappingName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.NullValue
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.POSIXMS
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.QueryString
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.ShardId
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Size
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.StopWord
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Newtypes.TypeName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Boost
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.CacheName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.DocId
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Existence
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.FieldName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.From
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.IndexName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Lenient
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Locale
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MappingName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.NullValue
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.QueryString
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Size
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.StopWord
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Newtypes.TypeName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Boost
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.CacheName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.DocId
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Existence
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.FieldName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.From
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.IndexName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Lenient
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Locale
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MappingName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.NullValue
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.QueryString
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Script
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.ShardId
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Size
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.StopWord
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Newtypes.TypeName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Classes.Ord Database.V1.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Boost
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.CacheName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.DocId
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Existence
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.FieldName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.From
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.IndexName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Lenient
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Locale
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MappingName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.NullValue
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.QueryString
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Script
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.ShardId
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Size
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.StopWord
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Newtypes.TypeName
- Database.V1.Bloodhound.Internal.Newtypes: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V1.Bloodhound.Internal.Newtypes: newtype AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Newtypes: newtype AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Newtypes: newtype Analyzer
- Database.V1.Bloodhound.Internal.Newtypes: newtype Boost
- Database.V1.Bloodhound.Internal.Newtypes: newtype BoostTerms
- Database.V1.Bloodhound.Internal.Newtypes: newtype CacheKey
- Database.V1.Bloodhound.Internal.Newtypes: newtype CacheName
- Database.V1.Bloodhound.Internal.Newtypes: newtype CutoffFrequency
- Database.V1.Bloodhound.Internal.Newtypes: newtype DisableCoord
- Database.V1.Bloodhound.Internal.Newtypes: newtype DocId
- Database.V1.Bloodhound.Internal.Newtypes: newtype EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Newtypes: newtype Existence
- Database.V1.Bloodhound.Internal.Newtypes: newtype FieldName
- Database.V1.Bloodhound.Internal.Newtypes: newtype From
- Database.V1.Bloodhound.Internal.Newtypes: newtype Fuzziness
- Database.V1.Bloodhound.Internal.Newtypes: newtype GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Newtypes: newtype IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: newtype IndexAliasName
- Database.V1.Bloodhound.Internal.Newtypes: newtype IndexName
- Database.V1.Bloodhound.Internal.Newtypes: newtype Lenient
- Database.V1.Bloodhound.Internal.Newtypes: newtype Locale
- Database.V1.Bloodhound.Internal.Newtypes: newtype LowercaseExpanded
- Database.V1.Bloodhound.Internal.Newtypes: newtype MS
- Database.V1.Bloodhound.Internal.Newtypes: newtype MappingName
- Database.V1.Bloodhound.Internal.Newtypes: newtype MaxDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: newtype MaxExpansions
- Database.V1.Bloodhound.Internal.Newtypes: newtype MaxQueryTerms
- Database.V1.Bloodhound.Internal.Newtypes: newtype MaxWordLength
- Database.V1.Bloodhound.Internal.Newtypes: newtype MaybeNA a
- Database.V1.Bloodhound.Internal.Newtypes: newtype MinDocFrequency
- Database.V1.Bloodhound.Internal.Newtypes: newtype MinWordLength
- Database.V1.Bloodhound.Internal.Newtypes: newtype MinimumMatch
- Database.V1.Bloodhound.Internal.Newtypes: newtype MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Newtypes: newtype NullValue
- Database.V1.Bloodhound.Internal.Newtypes: newtype POSIXMS
- Database.V1.Bloodhound.Internal.Newtypes: newtype PercentMatch
- Database.V1.Bloodhound.Internal.Newtypes: newtype PhraseSlop
- Database.V1.Bloodhound.Internal.Newtypes: newtype PrefixLength
- Database.V1.Bloodhound.Internal.Newtypes: newtype QueryPath
- Database.V1.Bloodhound.Internal.Newtypes: newtype QueryString
- Database.V1.Bloodhound.Internal.Newtypes: newtype ReplicaCount
- Database.V1.Bloodhound.Internal.Newtypes: newtype Script
- Database.V1.Bloodhound.Internal.Newtypes: newtype ShardCount
- Database.V1.Bloodhound.Internal.Newtypes: newtype ShardId
- Database.V1.Bloodhound.Internal.Newtypes: newtype Size
- Database.V1.Bloodhound.Internal.Newtypes: newtype SnapshotName
- Database.V1.Bloodhound.Internal.Newtypes: newtype StopWord
- Database.V1.Bloodhound.Internal.Newtypes: newtype TemplateName
- Database.V1.Bloodhound.Internal.Newtypes: newtype TemplatePattern
- Database.V1.Bloodhound.Internal.Newtypes: newtype Tiebreaker
- Database.V1.Bloodhound.Internal.Newtypes: newtype TypeName
- Database.V1.Bloodhound.Internal.Newtypes: type Score = Maybe Double
- Database.V1.Bloodhound.Internal.Newtypes: unMS :: MS -> NominalDiffTime
- Database.V1.Bloodhound.Internal.Query: AllRegexpFlags :: RegexpFlags
- Database.V1.Bloodhound.Internal.Query: And :: BooleanOperator
- Database.V1.Bloodhound.Internal.Query: AndFilter :: [Filter] -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: AnyString :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: Arc :: DistanceType
- Database.V1.Bloodhound.Internal.Query: Automaton :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: BoolFilter :: BoolMatch -> Filter
- Database.V1.Bloodhound.Internal.Query: BoolQuery :: [Query] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
- Database.V1.Bloodhound.Internal.Query: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
- Database.V1.Bloodhound.Internal.Query: Centimeters :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: Complement :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: ConstantScoreFilter :: Filter -> Boost -> Query
- Database.V1.Bloodhound.Internal.Query: ConstantScoreQuery :: Query -> Boost -> Query
- Database.V1.Bloodhound.Internal.Query: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: Distance :: Double -> DistanceUnit -> Distance
- Database.V1.Bloodhound.Internal.Query: DistanceRange :: Distance -> Distance -> DistanceRange
- Database.V1.Bloodhound.Internal.Query: Empty :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: ExistsFilter :: FieldName -> Filter
- Database.V1.Bloodhound.Internal.Query: Feet :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: FilteredQuery :: Query -> Filter -> FilteredQuery
- Database.V1.Bloodhound.Internal.Query: FofField :: FieldName -> FieldOrFields
- Database.V1.Bloodhound.Internal.Query: FofFields :: (NonEmpty FieldName) -> FieldOrFields
- Database.V1.Bloodhound.Internal.Query: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: GeoBoundingBoxFilter :: GeoBoundingBoxConstraint -> Filter
- Database.V1.Bloodhound.Internal.Query: GeoDistanceFilter :: GeoPoint -> Distance -> DistanceType -> OptimizeBbox -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: GeoDistanceRangeFilter :: GeoPoint -> DistanceRange -> Filter
- Database.V1.Bloodhound.Internal.Query: GeoFilterIndexed :: GeoFilterType
- Database.V1.Bloodhound.Internal.Query: GeoFilterMemory :: GeoFilterType
- Database.V1.Bloodhound.Internal.Query: GeoPoint :: FieldName -> LatLon -> GeoPoint
- Database.V1.Bloodhound.Internal.Query: GeoPolygonFilter :: FieldName -> [LatLon] -> Filter
- Database.V1.Bloodhound.Internal.Query: GreaterThan :: Double -> GreaterThan
- Database.V1.Bloodhound.Internal.Query: GreaterThanD :: UTCTime -> GreaterThanD
- Database.V1.Bloodhound.Internal.Query: GreaterThanEq :: Double -> GreaterThanEq
- Database.V1.Bloodhound.Internal.Query: GreaterThanEqD :: UTCTime -> GreaterThanEqD
- Database.V1.Bloodhound.Internal.Query: HasChildQuery :: TypeName -> Query -> Maybe ScoreType -> HasChildQuery
- Database.V1.Bloodhound.Internal.Query: HasParentQuery :: TypeName -> Query -> Maybe ScoreType -> HasParentQuery
- Database.V1.Bloodhound.Internal.Query: IdentityFilter :: Filter
- Database.V1.Bloodhound.Internal.Query: IdsFilter :: MappingName -> [DocId] -> Filter
- Database.V1.Bloodhound.Internal.Query: IdsQuery :: MappingName -> [DocId] -> Query
- Database.V1.Bloodhound.Internal.Query: Inches :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
- Database.V1.Bloodhound.Internal.Query: Intersection :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: Interval :: RegexpFlag
- Database.V1.Bloodhound.Internal.Query: Kilometers :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: LatLon :: Double -> Double -> LatLon
- Database.V1.Bloodhound.Internal.Query: LessThan :: Double -> LessThan
- Database.V1.Bloodhound.Internal.Query: LessThanD :: UTCTime -> LessThanD
- Database.V1.Bloodhound.Internal.Query: LessThanEq :: Double -> LessThanEq
- Database.V1.Bloodhound.Internal.Query: LessThanEqD :: UTCTime -> LessThanEqD
- Database.V1.Bloodhound.Internal.Query: LimitFilter :: Int -> Filter
- Database.V1.Bloodhound.Internal.Query: MatchAllQuery :: (Maybe Boost) -> Query
- Database.V1.Bloodhound.Internal.Query: MatchPhrase :: MatchQueryType
- Database.V1.Bloodhound.Internal.Query: MatchPhrasePrefix :: MatchQueryType
- Database.V1.Bloodhound.Internal.Query: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> MatchQuery
- Database.V1.Bloodhound.Internal.Query: Meters :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: Miles :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: Millimeters :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
- Database.V1.Bloodhound.Internal.Query: MissingFilter :: FieldName -> Existence -> NullValue -> Filter
- Database.V1.Bloodhound.Internal.Query: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: MultiMatchBestFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: MultiMatchCrossFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: MultiMatchMostFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: MultiMatchPhrase :: MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: MultiMatchPhrasePrefix :: MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: MustMatch :: Term -> Cache -> BoolMatch
- Database.V1.Bloodhound.Internal.Query: MustNotMatch :: Term -> Cache -> BoolMatch
- Database.V1.Bloodhound.Internal.Query: NauticalMiles :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
- Database.V1.Bloodhound.Internal.Query: NoOptimizeBbox :: OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: NoRegexpFlags :: RegexpFlags
- Database.V1.Bloodhound.Internal.Query: NotFilter :: Filter -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: Or :: BooleanOperator
- Database.V1.Bloodhound.Internal.Query: OrFilter :: [Filter] -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: Plane :: DistanceType
- Database.V1.Bloodhound.Internal.Query: PrefixFilter :: FieldName -> PrefixValue -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
- Database.V1.Bloodhound.Internal.Query: QueryBoolQuery :: BoolQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryBoostingQuery :: BoostingQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryCommonTermsQuery :: CommonTermsQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryDisMaxQuery :: DisMaxQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryFilter :: Query -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: QueryFilteredQuery :: FilteredQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryFuzzyQuery :: FuzzyQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryHasChildQuery :: HasChildQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryHasParentQuery :: HasParentQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryIndicesQuery :: IndicesQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryMatchQuery :: MatchQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryMultiMatchQuery :: MultiMatchQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryNestedQuery :: NestedQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryPrefixQuery :: PrefixQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryQueryStringQuery :: QueryStringQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryRangeQuery :: RangeQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QueryRegexpQuery :: RegexpQuery -> Query
- Database.V1.Bloodhound.Internal.Query: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
- Database.V1.Bloodhound.Internal.Query: 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
- Database.V1.Bloodhound.Internal.Query: QueryTemplateQueryInline :: TemplateQueryInline -> Query
- Database.V1.Bloodhound.Internal.Query: RangeDateGt :: GreaterThanD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateGte :: GreaterThanEqD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateLt :: LessThanD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDateLte :: LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGt :: GreaterThan -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGte :: GreaterThanEq -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleLt :: LessThan -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeDoubleLte :: LessThanEq -> RangeValue
- Database.V1.Bloodhound.Internal.Query: RangeExecutionFielddata :: RangeExecution
- Database.V1.Bloodhound.Internal.Query: RangeExecutionIndex :: RangeExecution
- Database.V1.Bloodhound.Internal.Query: RangeFilter :: FieldName -> RangeValue -> RangeExecution -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
- Database.V1.Bloodhound.Internal.Query: Regexp :: Text -> Regexp
- Database.V1.Bloodhound.Internal.Query: RegexpFilter :: FieldName -> Regexp -> RegexpFlags -> CacheName -> Cache -> CacheKey -> Filter
- Database.V1.Bloodhound.Internal.Query: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
- Database.V1.Bloodhound.Internal.Query: ScoreTypeAvg :: ScoreType
- Database.V1.Bloodhound.Internal.Query: ScoreTypeMax :: ScoreType
- Database.V1.Bloodhound.Internal.Query: ScoreTypeNone :: ScoreType
- Database.V1.Bloodhound.Internal.Query: ScoreTypeSum :: ScoreType
- Database.V1.Bloodhound.Internal.Query: ShouldMatch :: [Term] -> Cache -> BoolMatch
- Database.V1.Bloodhound.Internal.Query: SimpleQueryAll :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryAnd :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryEscape :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryFuzzy :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryNear :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryNone :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryOr :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryPhrase :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryPrecedence :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryPrefix :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQuerySlop :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: SimpleQueryWhitespace :: SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: SloppyArc :: DistanceType
- Database.V1.Bloodhound.Internal.Query: SomeRegexpFlags :: (NonEmpty RegexpFlag) -> RegexpFlags
- Database.V1.Bloodhound.Internal.Query: TemplateQueryInline :: Query -> TemplateQueryKeyValuePairs -> TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: TemplateQueryKeyValuePairs :: (HashMap TemplateQueryKey TemplateQueryValue) -> TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: Term :: Text -> Text -> Term
- Database.V1.Bloodhound.Internal.Query: TermFilter :: Term -> Cache -> Filter
- Database.V1.Bloodhound.Internal.Query: TermQuery :: Term -> (Maybe Boost) -> Query
- Database.V1.Bloodhound.Internal.Query: TermsQuery :: Text -> (NonEmpty Text) -> Query
- Database.V1.Bloodhound.Internal.Query: Yards :: DistanceUnit
- Database.V1.Bloodhound.Internal.Query: ZeroTermsAll :: ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: ZeroTermsNone :: ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
- Database.V1.Bloodhound.Internal.Query: [boolQueryBoost] :: BoolQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
- Database.V1.Bloodhound.Internal.Query: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
- Database.V1.Bloodhound.Internal.Query: [boolQueryMustMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Internal.Query: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Internal.Query: [boolQueryShouldMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Internal.Query: [bottomRight] :: GeoBoundingBox -> LatLon
- Database.V1.Bloodhound.Internal.Query: [coefficient] :: Distance -> Double
- Database.V1.Bloodhound.Internal.Query: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [commonBoost] :: CommonTermsQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
- Database.V1.Bloodhound.Internal.Query: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
- Database.V1.Bloodhound.Internal.Query: [commonField] :: CommonTermsQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: [commonQuery] :: CommonTermsQuery -> QueryString
- Database.V1.Bloodhound.Internal.Query: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [disMaxQueries] :: DisMaxQuery -> [Query]
- Database.V1.Bloodhound.Internal.Query: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
- Database.V1.Bloodhound.Internal.Query: [distanceFrom] :: DistanceRange -> Distance
- Database.V1.Bloodhound.Internal.Query: [distanceTo] :: DistanceRange -> Distance
- Database.V1.Bloodhound.Internal.Query: [filteredFilter] :: FilteredQuery -> Filter
- Database.V1.Bloodhound.Internal.Query: [filteredQuery] :: FilteredQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
- Database.V1.Bloodhound.Internal.Query: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryField] :: FuzzyQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
- Database.V1.Bloodhound.Internal.Query: [fuzzyQueryValue] :: FuzzyQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
- Database.V1.Bloodhound.Internal.Query: [geoField] :: GeoPoint -> FieldName
- Database.V1.Bloodhound.Internal.Query: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
- Database.V1.Bloodhound.Internal.Query: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
- Database.V1.Bloodhound.Internal.Query: [hasChildQueryType] :: HasChildQuery -> TypeName
- Database.V1.Bloodhound.Internal.Query: [hasChildQuery] :: HasChildQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [hasParentQueryScoreType] :: HasParentQuery -> Maybe ScoreType
- Database.V1.Bloodhound.Internal.Query: [hasParentQueryType] :: HasParentQuery -> TypeName
- Database.V1.Bloodhound.Internal.Query: [hasParentQuery] :: HasParentQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V1.Bloodhound.Internal.Query: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
- Database.V1.Bloodhound.Internal.Query: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
- Database.V1.Bloodhound.Internal.Query: [indicesQuery] :: IndicesQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [inline] :: TemplateQueryInline -> Query
- Database.V1.Bloodhound.Internal.Query: [latLon] :: GeoPoint -> LatLon
- Database.V1.Bloodhound.Internal.Query: [lat] :: LatLon -> Double
- Database.V1.Bloodhound.Internal.Query: [lon] :: LatLon -> Double
- Database.V1.Bloodhound.Internal.Query: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V1.Bloodhound.Internal.Query: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [matchQueryBoost] :: MatchQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
- Database.V1.Bloodhound.Internal.Query: [matchQueryField] :: MatchQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
- Database.V1.Bloodhound.Internal.Query: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
- Database.V1.Bloodhound.Internal.Query: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Internal.Query: [matchQueryOperator] :: MatchQuery -> BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [matchQueryQueryString] :: MatchQuery -> QueryString
- Database.V1.Bloodhound.Internal.Query: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
- Database.V1.Bloodhound.Internal.Query: [moreLikeThisText] :: MoreLikeThisQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: [negativeBoost] :: BoostingQuery -> Boost
- Database.V1.Bloodhound.Internal.Query: [negativeQuery] :: BoostingQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [nestedQueryPath] :: NestedQuery -> QueryPath
- Database.V1.Bloodhound.Internal.Query: [nestedQueryScoreType] :: NestedQuery -> ScoreType
- Database.V1.Bloodhound.Internal.Query: [nestedQuery] :: NestedQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [params] :: TemplateQueryInline -> TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: [positiveQuery] :: BoostingQuery -> Query
- Database.V1.Bloodhound.Internal.Query: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [prefixQueryField] :: PrefixQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [prefixQueryPrefixValue] :: PrefixQuery -> Text
- Database.V1.Bloodhound.Internal.Query: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
- Database.V1.Bloodhound.Internal.Query: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
- Database.V1.Bloodhound.Internal.Query: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
- Database.V1.Bloodhound.Internal.Query: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
- Database.V1.Bloodhound.Internal.Query: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
- Database.V1.Bloodhound.Internal.Query: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Internal.Query: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
- Database.V1.Bloodhound.Internal.Query: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
- Database.V1.Bloodhound.Internal.Query: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
- Database.V1.Bloodhound.Internal.Query: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
- Database.V1.Bloodhound.Internal.Query: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
- Database.V1.Bloodhound.Internal.Query: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
- Database.V1.Bloodhound.Internal.Query: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
- Database.V1.Bloodhound.Internal.Query: [queryStringQuery] :: QueryStringQuery -> QueryString
- Database.V1.Bloodhound.Internal.Query: [rangeQueryBoost] :: RangeQuery -> Boost
- Database.V1.Bloodhound.Internal.Query: [rangeQueryField] :: RangeQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [rangeQueryRange] :: RangeQuery -> RangeValue
- Database.V1.Bloodhound.Internal.Query: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
- Database.V1.Bloodhound.Internal.Query: [regexpQueryField] :: RegexpQuery -> FieldName
- Database.V1.Bloodhound.Internal.Query: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
- Database.V1.Bloodhound.Internal.Query: [regexpQuery] :: RegexpQuery -> Regexp
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
- Database.V1.Bloodhound.Internal.Query: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
- Database.V1.Bloodhound.Internal.Query: [termField] :: Term -> Text
- Database.V1.Bloodhound.Internal.Query: [termValue] :: Term -> Text
- Database.V1.Bloodhound.Internal.Query: [topLeft] :: GeoBoundingBox -> LatLon
- Database.V1.Bloodhound.Internal.Query: [unit] :: Distance -> DistanceUnit
- Database.V1.Bloodhound.Internal.Query: data BoolMatch
- Database.V1.Bloodhound.Internal.Query: data BoolQuery
- Database.V1.Bloodhound.Internal.Query: data BooleanOperator
- Database.V1.Bloodhound.Internal.Query: data BoostingQuery
- Database.V1.Bloodhound.Internal.Query: data CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: data CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: data DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: data Distance
- Database.V1.Bloodhound.Internal.Query: data DistanceRange
- Database.V1.Bloodhound.Internal.Query: data DistanceType
- Database.V1.Bloodhound.Internal.Query: data DistanceUnit
- Database.V1.Bloodhound.Internal.Query: data FieldOrFields
- Database.V1.Bloodhound.Internal.Query: data Filter
- Database.V1.Bloodhound.Internal.Query: data FilteredQuery
- Database.V1.Bloodhound.Internal.Query: data FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: data FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: data FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: data GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: data GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: data GeoFilterType
- Database.V1.Bloodhound.Internal.Query: data GeoPoint
- Database.V1.Bloodhound.Internal.Query: data HasChildQuery
- Database.V1.Bloodhound.Internal.Query: data HasParentQuery
- Database.V1.Bloodhound.Internal.Query: data IndicesQuery
- Database.V1.Bloodhound.Internal.Query: data LatLon
- Database.V1.Bloodhound.Internal.Query: data MatchQuery
- Database.V1.Bloodhound.Internal.Query: data MatchQueryType
- Database.V1.Bloodhound.Internal.Query: data MinimumMatchHighLow
- Database.V1.Bloodhound.Internal.Query: data MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: data MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: data MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: data MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: data NestedQuery
- Database.V1.Bloodhound.Internal.Query: data OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: data PrefixQuery
- Database.V1.Bloodhound.Internal.Query: data Query
- Database.V1.Bloodhound.Internal.Query: data QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: data RangeExecution
- Database.V1.Bloodhound.Internal.Query: data RangeQuery
- Database.V1.Bloodhound.Internal.Query: data RangeValue
- Database.V1.Bloodhound.Internal.Query: data RegexpFlag
- Database.V1.Bloodhound.Internal.Query: data RegexpFlags
- Database.V1.Bloodhound.Internal.Query: data RegexpQuery
- Database.V1.Bloodhound.Internal.Query: data ScoreType
- Database.V1.Bloodhound.Internal.Query: data SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: data SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: data TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: data Term
- Database.V1.Bloodhound.Internal.Query: data ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: defaultCache :: Cache
- Database.V1.Bloodhound.Internal.Query: fieldTagged :: Monad m => (FieldName -> Object -> m a) -> Object -> m a
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.BoolMatch
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.BoolQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.BooleanOperator
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.BoostingQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.Distance
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.DistanceType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.DistanceUnit
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.FieldOrFields
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.FilteredQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.GeoFilterType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.HasChildQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.HasParentQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.IndicesQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.LatLon
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MatchQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.NestedQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.PrefixQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.Query
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RangeExecution
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RangeQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RangeValue
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.Regexp
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RegexpFlag
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RegexpFlags
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.RegexpQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.ScoreType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.Term
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.BoolMatch
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.BoolQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.BooleanOperator
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.BoostingQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.Distance
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.DistanceType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.DistanceUnit
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.FieldOrFields
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.FilteredQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.GeoFilterType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.GeoPoint
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.HasChildQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.HasParentQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.IndicesQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.LatLon
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MatchQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.NestedQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.PrefixQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.Query
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.RangeExecution
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.RangeQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.RegexpFlags
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.RegexpQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.ScoreType
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.Term
- Database.V1.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance Data.Semigroup.Semigroup Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance Database.V1.Bloodhound.Types.Class.Seminearring Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance GHC.Base.Monoid Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.BoolMatch
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.BoolQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.BooleanOperator
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.BoostingQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.Distance
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.DistanceRange
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.DistanceType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.DistanceUnit
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.FieldOrFields
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.FilteredQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GeoFilterType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GeoPoint
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GreaterThan
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GreaterThanD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GreaterThanEq
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.GreaterThanEqD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.HasChildQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.HasParentQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.IndicesQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.LatLon
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.LessThan
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.LessThanD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.LessThanEq
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.LessThanEqD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MatchQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MinimumMatchHighLow
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.NestedQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.PrefixQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.Query
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RangeExecution
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RangeQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RangeValue
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.Regexp
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RegexpFlag
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RegexpFlags
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.RegexpQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.ScoreType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.Term
- Database.V1.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.BoolMatch
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.BoolQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.BooleanOperator
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.BoostingQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.DisMaxQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.Distance
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.DistanceRange
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.DistanceType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.DistanceUnit
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.FieldOrFields
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.Filter
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.FilteredQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.FuzzyQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GeoFilterType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GeoPoint
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GreaterThan
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GreaterThanD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GreaterThanEq
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.GreaterThanEqD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.HasChildQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.HasParentQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.IndicesQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.LatLon
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.LessThan
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.LessThanD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.LessThanEq
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.LessThanEqD
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MatchQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MinimumMatchHighLow
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.NestedQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.OptimizeBbox
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.PrefixQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.Query
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RangeExecution
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RangeQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RangeValue
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.Regexp
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RegexpFlag
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RegexpFlags
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.RegexpQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.ScoreType
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.Term
- Database.V1.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V1.Bloodhound.Internal.Query: mkBoolQuery :: [Query] -> [Query] -> [Query] -> BoolQuery
- Database.V1.Bloodhound.Internal.Query: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
- Database.V1.Bloodhound.Internal.Query: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
- Database.V1.Bloodhound.Internal.Query: mkQueryStringQuery :: QueryString -> QueryStringQuery
- Database.V1.Bloodhound.Internal.Query: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
- Database.V1.Bloodhound.Internal.Query: newtype GreaterThan
- Database.V1.Bloodhound.Internal.Query: newtype GreaterThanD
- Database.V1.Bloodhound.Internal.Query: newtype GreaterThanEq
- Database.V1.Bloodhound.Internal.Query: newtype GreaterThanEqD
- Database.V1.Bloodhound.Internal.Query: newtype LessThan
- Database.V1.Bloodhound.Internal.Query: newtype LessThanD
- Database.V1.Bloodhound.Internal.Query: newtype LessThanEq
- Database.V1.Bloodhound.Internal.Query: newtype LessThanEqD
- Database.V1.Bloodhound.Internal.Query: newtype Regexp
- Database.V1.Bloodhound.Internal.Query: newtype TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Internal.Query: rangeValueToPair :: RangeValue -> [Pair]
- Database.V1.Bloodhound.Internal.Query: type Cache = Bool
- Database.V1.Bloodhound.Internal.Query: type PrefixValue = Text
- Database.V1.Bloodhound.Internal.Query: type TemplateQueryKey = Text
- Database.V1.Bloodhound.Internal.Query: type TemplateQueryValue = Text
- Database.V1.Bloodhound.Internal.Query: unpackId :: DocId -> Text
- Database.V1.Bloodhound.Internal.Sort: Ascending :: SortOrder
- Database.V1.Bloodhound.Internal.Sort: CustomMissing :: Text -> Missing
- Database.V1.Bloodhound.Internal.Sort: DefaultSort :: FieldName -> SortOrder -> Bool -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
- Database.V1.Bloodhound.Internal.Sort: DefaultSortSpec :: DefaultSort -> SortSpec
- Database.V1.Bloodhound.Internal.Sort: Descending :: SortOrder
- Database.V1.Bloodhound.Internal.Sort: FirstMissing :: Missing
- Database.V1.Bloodhound.Internal.Sort: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
- Database.V1.Bloodhound.Internal.Sort: LastMissing :: Missing
- Database.V1.Bloodhound.Internal.Sort: SortAvg :: SortMode
- Database.V1.Bloodhound.Internal.Sort: SortMax :: SortMode
- Database.V1.Bloodhound.Internal.Sort: SortMin :: SortMode
- Database.V1.Bloodhound.Internal.Sort: SortSum :: SortMode
- Database.V1.Bloodhound.Internal.Sort: [ignoreUnmapped] :: DefaultSort -> Bool
- Database.V1.Bloodhound.Internal.Sort: [missingSort] :: DefaultSort -> Maybe Missing
- Database.V1.Bloodhound.Internal.Sort: [nestedFilter] :: DefaultSort -> Maybe Filter
- Database.V1.Bloodhound.Internal.Sort: [sortFieldName] :: DefaultSort -> FieldName
- Database.V1.Bloodhound.Internal.Sort: [sortMode] :: DefaultSort -> Maybe SortMode
- Database.V1.Bloodhound.Internal.Sort: [sortOrder] :: DefaultSort -> SortOrder
- Database.V1.Bloodhound.Internal.Sort: data DefaultSort
- Database.V1.Bloodhound.Internal.Sort: data Missing
- Database.V1.Bloodhound.Internal.Sort: data SortMode
- Database.V1.Bloodhound.Internal.Sort: data SortOrder
- Database.V1.Bloodhound.Internal.Sort: data SortSpec
- Database.V1.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Sort.Missing
- Database.V1.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Sort.SortMode
- Database.V1.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Sort.SortOrder
- Database.V1.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Sort.SortSpec
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Sort.DefaultSort
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Sort.Missing
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Sort.SortMode
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Sort.SortOrder
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Sort.SortSpec
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Sort.DefaultSort
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Sort.Missing
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Sort.SortMode
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Sort.SortOrder
- Database.V1.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Sort.SortSpec
- Database.V1.Bloodhound.Internal.Sort: mkSort :: FieldName -> SortOrder -> DefaultSort
- Database.V1.Bloodhound.Internal.Sort: type Sort = [SortSpec]
- Database.V1.Bloodhound.Internal.StringlyTyped: StringlyTypedDouble :: Double -> StringlyTypedDouble
- Database.V1.Bloodhound.Internal.StringlyTyped: [unStringlyTypedDouble] :: StringlyTypedDouble -> Double
- Database.V1.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.StringlyTyped.StringlyTypedDouble
- Database.V1.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedDouble
- Database.V1.Bloodhound.Internal.StringlyTyped: unStringlyTypeJSON :: Value -> Value
- Database.V1.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
- Database.V1.Bloodhound.Internal.Suggest: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: PhraseSuggesterCollate :: TemplateQueryInline -> Bool -> PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: Suggest :: Text -> Text -> SuggestType -> Suggest
- Database.V1.Bloodhound.Internal.Suggest: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
- Database.V1.Bloodhound.Internal.Suggest: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
- Database.V1.Bloodhound.Internal.Suggest: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorsField] :: DirectGenerators -> FieldName
- Database.V1.Bloodhound.Internal.Suggest: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [nsrName] :: NamedSuggestionResponse -> Text
- Database.V1.Bloodhound.Internal.Suggest: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> TemplateQueryInline
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterField] :: PhraseSuggester -> FieldName
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
- Database.V1.Bloodhound.Internal.Suggest: [suggestName] :: Suggest -> Text
- Database.V1.Bloodhound.Internal.Suggest: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
- Database.V1.Bloodhound.Internal.Suggest: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
- Database.V1.Bloodhound.Internal.Suggest: [suggestOptionsScore] :: SuggestOptions -> Double
- Database.V1.Bloodhound.Internal.Suggest: [suggestOptionsText] :: SuggestOptions -> Text
- Database.V1.Bloodhound.Internal.Suggest: [suggestResponseLength] :: SuggestResponse -> Int
- Database.V1.Bloodhound.Internal.Suggest: [suggestResponseOffset] :: SuggestResponse -> Int
- Database.V1.Bloodhound.Internal.Suggest: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
- Database.V1.Bloodhound.Internal.Suggest: [suggestResponseText] :: SuggestResponse -> Text
- Database.V1.Bloodhound.Internal.Suggest: [suggestText] :: Suggest -> Text
- Database.V1.Bloodhound.Internal.Suggest: [suggestType] :: Suggest -> SuggestType
- Database.V1.Bloodhound.Internal.Suggest: data DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: data DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: data NamedSuggestionResponse
- Database.V1.Bloodhound.Internal.Suggest: data PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: data PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: data PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: data Suggest
- Database.V1.Bloodhound.Internal.Suggest: data SuggestOptions
- Database.V1.Bloodhound.Internal.Suggest: data SuggestResponse
- Database.V1.Bloodhound.Internal.Suggest: data SuggestType
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.Suggest
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V1.Bloodhound.Internal.Suggest.SuggestType
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.Suggest
- Database.V1.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Internal.Suggest.SuggestType
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.Suggest
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V1.Bloodhound.Internal.Suggest.SuggestType
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.Suggest
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V1.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V1.Bloodhound.Internal.Suggest.SuggestType
- Database.V1.Bloodhound.Internal.Suggest: mkDirectGenerators :: FieldName -> DirectGenerators
- Database.V1.Bloodhound.Internal.Suggest: mkPhraseSuggester :: FieldName -> PhraseSuggester
- Database.V1.Bloodhound.Types: (<&&>) :: Seminearring a => a -> a -> a
- Database.V1.Bloodhound.Types: (<||>) :: Seminearring a => a -> a -> a
- Database.V1.Bloodhound.Types: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
- Database.V1.Bloodhound.Types: AddTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Types: AllAliasRouting :: RoutingValue -> AliasRouting
- Database.V1.Bloodhound.Types: AllIndexes :: IndexSelection
- Database.V1.Bloodhound.Types: AllNodes :: NodeSelection
- Database.V1.Bloodhound.Types: AllRegexpFlags :: RegexpFlags
- Database.V1.Bloodhound.Types: AllSnapshotRepos :: SnapshotRepoSelection
- Database.V1.Bloodhound.Types: AllSnapshots :: SnapshotSelection
- Database.V1.Bloodhound.Types: AllocAll :: AllocationPolicy
- Database.V1.Bloodhound.Types: AllocNewPrimaries :: AllocationPolicy
- Database.V1.Bloodhound.Types: AllocNone :: AllocationPolicy
- Database.V1.Bloodhound.Types: AllocPrimaries :: AllocationPolicy
- Database.V1.Bloodhound.Types: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
- Database.V1.Bloodhound.Types: AnalyzeWildcard :: Bool -> AnalyzeWildcard
- Database.V1.Bloodhound.Types: Analyzer :: Text -> Analyzer
- Database.V1.Bloodhound.Types: And :: BooleanOperator
- Database.V1.Bloodhound.Types: AndFilter :: [Filter] -> Cache -> Filter
- Database.V1.Bloodhound.Types: AnyString :: RegexpFlag
- Database.V1.Bloodhound.Types: Arc :: DistanceType
- Database.V1.Bloodhound.Types: Ascending :: SortOrder
- Database.V1.Bloodhound.Types: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: Automaton :: RegexpFlag
- Database.V1.Bloodhound.Types: BH :: ReaderT BHEnv m a -> BH m a
- Database.V1.Bloodhound.Types: BlocksMetaData :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: BlocksRead :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: BlocksReadOnly :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: BlocksWrite :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: BoolFilter :: BoolMatch -> Filter
- Database.V1.Bloodhound.Types: BoolQuery :: [Query] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
- Database.V1.Bloodhound.Types: BoolValue :: Bool -> BucketValue
- Database.V1.Bloodhound.Types: Boost :: Double -> Boost
- Database.V1.Bloodhound.Types: BoostTerms :: Double -> BoostTerms
- Database.V1.Bloodhound.Types: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
- Database.V1.Bloodhound.Types: BoundTransportAddress :: EsAddress -> EsAddress -> BoundTransportAddress
- Database.V1.Bloodhound.Types: BreadthFirst :: CollectionMode
- Database.V1.Bloodhound.Types: Bucket :: [a] -> Bucket a
- Database.V1.Bloodhound.Types: BuildHash :: Text -> BuildHash
- Database.V1.Bloodhound.Types: BulkCreate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Types: BulkDelete :: IndexName -> MappingName -> DocId -> BulkOperation
- Database.V1.Bloodhound.Types: BulkIndex :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Types: BulkUpdate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V1.Bloodhound.Types: Bytes :: Int -> Bytes
- Database.V1.Bloodhound.Types: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
- Database.V1.Bloodhound.Types: CacheFilterExpire :: (Maybe NominalDiffTime) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: CacheFilterMaxSize :: (Maybe Bytes) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: CacheKey :: Text -> CacheKey
- Database.V1.Bloodhound.Types: CacheName :: Text -> CacheName
- Database.V1.Bloodhound.Types: CardinalityAgg :: CardinalityAggregation -> Aggregation
- Database.V1.Bloodhound.Types: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
- Database.V1.Bloodhound.Types: Centimeters :: DistanceUnit
- Database.V1.Bloodhound.Types: CloseIndex :: OpenCloseIndex
- Database.V1.Bloodhound.Types: ClusterName :: Text -> ClusterName
- Database.V1.Bloodhound.Types: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
- Database.V1.Bloodhound.Types: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
- Database.V1.Bloodhound.Types: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
- Database.V1.Bloodhound.Types: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
- Database.V1.Bloodhound.Types: Complement :: RegexpFlag
- Database.V1.Bloodhound.Types: CompoundFileFormat :: Bool -> CompoundFormat
- Database.V1.Bloodhound.Types: ConstantScoreFilter :: Filter -> Boost -> Query
- Database.V1.Bloodhound.Types: ConstantScoreQuery :: Query -> Boost -> Query
- Database.V1.Bloodhound.Types: CustomMissing :: Text -> Missing
- Database.V1.Bloodhound.Types: CustomTags :: ([Text], [Text]) -> HighlightTag
- Database.V1.Bloodhound.Types: CutoffFrequency :: Double -> CutoffFrequency
- Database.V1.Bloodhound.Types: DMDate :: Day -> DateMathAnchor
- Database.V1.Bloodhound.Types: DMDay :: DateMathUnit
- Database.V1.Bloodhound.Types: DMHour :: DateMathUnit
- Database.V1.Bloodhound.Types: DMMinute :: DateMathUnit
- Database.V1.Bloodhound.Types: DMMonth :: DateMathUnit
- Database.V1.Bloodhound.Types: DMNow :: DateMathAnchor
- Database.V1.Bloodhound.Types: DMSecond :: DateMathUnit
- Database.V1.Bloodhound.Types: DMWeek :: DateMathUnit
- Database.V1.Bloodhound.Types: DMYear :: DateMathUnit
- Database.V1.Bloodhound.Types: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
- Database.V1.Bloodhound.Types: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
- Database.V1.Bloodhound.Types: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
- Database.V1.Bloodhound.Types: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
- Database.V1.Bloodhound.Types: DateRangeAgg :: DateRangeAggregation -> Aggregation
- Database.V1.Bloodhound.Types: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
- Database.V1.Bloodhound.Types: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Types: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Types: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
- Database.V1.Bloodhound.Types: DateRangeTo :: DateMathExpr -> DateRangeAggRange
- Database.V1.Bloodhound.Types: Day :: Interval
- Database.V1.Bloodhound.Types: Days :: TimeInterval
- Database.V1.Bloodhound.Types: DefaultEncoder :: HighlightEncoder
- Database.V1.Bloodhound.Types: DefaultSort :: FieldName -> SortOrder -> Bool -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
- Database.V1.Bloodhound.Types: DefaultSortSpec :: DefaultSort -> SortSpec
- Database.V1.Bloodhound.Types: DepthFirst :: CollectionMode
- Database.V1.Bloodhound.Types: Descending :: SortOrder
- Database.V1.Bloodhound.Types: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Types: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Types: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Types: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
- Database.V1.Bloodhound.Types: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
- Database.V1.Bloodhound.Types: DisableCoord :: Bool -> DisableCoord
- Database.V1.Bloodhound.Types: Distance :: Double -> DistanceUnit -> Distance
- Database.V1.Bloodhound.Types: DistanceRange :: Distance -> Distance -> DistanceRange
- Database.V1.Bloodhound.Types: DocId :: Text -> DocId
- Database.V1.Bloodhound.Types: DocumentParent :: DocId -> DocumentParent
- Database.V1.Bloodhound.Types: Empty :: RegexpFlag
- Database.V1.Bloodhound.Types: EnablePositionIncrements :: Bool -> EnablePositionIncrements
- Database.V1.Bloodhound.Types: EsAddress :: Text -> EsAddress
- Database.V1.Bloodhound.Types: EsError :: Int -> Text -> EsError
- Database.V1.Bloodhound.Types: EsPassword :: Text -> EsPassword
- Database.V1.Bloodhound.Types: EsProtocolException :: LByteString -> EsProtocolException
- Database.V1.Bloodhound.Types: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
- Database.V1.Bloodhound.Types: EsResultFound :: DocVersion -> a -> EsResultFound a
- Database.V1.Bloodhound.Types: EsUsername :: Text -> EsUsername
- Database.V1.Bloodhound.Types: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
- Database.V1.Bloodhound.Types: ExactSnap :: SnapshotName -> SnapshotPattern
- Database.V1.Bloodhound.Types: Exclude :: [Pattern] -> Exclude
- Database.V1.Bloodhound.Types: Existence :: Bool -> Existence
- Database.V1.Bloodhound.Types: ExistsFilter :: FieldName -> Filter
- Database.V1.Bloodhound.Types: ExplicitShards :: Int -> InitialShardCount
- Database.V1.Bloodhound.Types: ExternalDocVersion :: DocVersion -> ExternalDocVersion
- Database.V1.Bloodhound.Types: ExternalGT :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Types: ExternalGTE :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Types: FSBuffered :: FSType
- Database.V1.Bloodhound.Types: FSSimple :: FSType
- Database.V1.Bloodhound.Types: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: FastVector :: FastVectorHighlight -> HighlightSettings
- Database.V1.Bloodhound.Types: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
- Database.V1.Bloodhound.Types: Feet :: DistanceUnit
- Database.V1.Bloodhound.Types: FieldDefinition :: FieldType -> FieldDefinition
- Database.V1.Bloodhound.Types: FieldHighlight :: FieldName -> (Maybe HighlightSettings) -> FieldHighlight
- Database.V1.Bloodhound.Types: FieldName :: Text -> FieldName
- Database.V1.Bloodhound.Types: FieldValueCount :: FieldName -> ValueCountAggregation
- Database.V1.Bloodhound.Types: FilterAgg :: FilterAggregation -> Aggregation
- Database.V1.Bloodhound.Types: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
- Database.V1.Bloodhound.Types: FilteredQuery :: Query -> Filter -> FilteredQuery
- Database.V1.Bloodhound.Types: FirstMissing :: Missing
- Database.V1.Bloodhound.Types: FofField :: FieldName -> FieldOrFields
- Database.V1.Bloodhound.Types: FofFields :: (NonEmpty FieldName) -> FieldOrFields
- Database.V1.Bloodhound.Types: ForceVersion :: ExternalDocVersion -> VersionControl
- Database.V1.Bloodhound.Types: FractionalInterval :: Float -> TimeInterval -> Interval
- Database.V1.Bloodhound.Types: From :: Int -> From
- Database.V1.Bloodhound.Types: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
- Database.V1.Bloodhound.Types: FullMinus1Shards :: InitialShardCount
- Database.V1.Bloodhound.Types: FullNodeId :: Text -> FullNodeId
- Database.V1.Bloodhound.Types: FullShards :: InitialShardCount
- Database.V1.Bloodhound.Types: Fuzziness :: Double -> Fuzziness
- Database.V1.Bloodhound.Types: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Types: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
- Database.V1.Bloodhound.Types: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
- Database.V1.Bloodhound.Types: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
- Database.V1.Bloodhound.Types: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
- Database.V1.Bloodhound.Types: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Types: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
- Database.V1.Bloodhound.Types: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Types: GeoBoundingBoxFilter :: GeoBoundingBoxConstraint -> Filter
- Database.V1.Bloodhound.Types: GeoDistanceFilter :: GeoPoint -> Distance -> DistanceType -> OptimizeBbox -> Cache -> Filter
- Database.V1.Bloodhound.Types: GeoDistanceRangeFilter :: GeoPoint -> DistanceRange -> Filter
- Database.V1.Bloodhound.Types: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
- Database.V1.Bloodhound.Types: GeoFilterIndexed :: GeoFilterType
- Database.V1.Bloodhound.Types: GeoFilterMemory :: GeoFilterType
- Database.V1.Bloodhound.Types: GeoPoint :: FieldName -> LatLon -> GeoPoint
- Database.V1.Bloodhound.Types: GeoPolygonFilter :: FieldName -> [LatLon] -> Filter
- Database.V1.Bloodhound.Types: GlobalOrdinals :: ExecutionHint
- Database.V1.Bloodhound.Types: GlobalOrdinalsHash :: ExecutionHint
- Database.V1.Bloodhound.Types: GlobalOrdinalsLowCardinality :: ExecutionHint
- Database.V1.Bloodhound.Types: GranularAliasRouting :: (Maybe SearchAliasRouting) -> (Maybe IndexAliasRouting) -> AliasRouting
- Database.V1.Bloodhound.Types: GreaterThan :: Double -> GreaterThan
- Database.V1.Bloodhound.Types: GreaterThanD :: UTCTime -> GreaterThanD
- Database.V1.Bloodhound.Types: GreaterThanEq :: Double -> GreaterThanEq
- Database.V1.Bloodhound.Types: GreaterThanEqD :: UTCTime -> GreaterThanEqD
- Database.V1.Bloodhound.Types: HTMLEncoder :: HighlightEncoder
- Database.V1.Bloodhound.Types: HasChildQuery :: TypeName -> Query -> Maybe ScoreType -> HasChildQuery
- Database.V1.Bloodhound.Types: HasParentQuery :: TypeName -> Query -> Maybe ScoreType -> HasParentQuery
- Database.V1.Bloodhound.Types: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
- Database.V1.Bloodhound.Types: Hit :: IndexName -> MappingName -> DocId -> Score -> Maybe a -> Maybe HitHighlight -> Hit a
- Database.V1.Bloodhound.Types: Hour :: Interval
- Database.V1.Bloodhound.Types: Hours :: TimeInterval
- Database.V1.Bloodhound.Types: IdentityFilter :: Filter
- Database.V1.Bloodhound.Types: IdsFilter :: MappingName -> [DocId] -> Filter
- Database.V1.Bloodhound.Types: IdsQuery :: MappingName -> [DocId] -> Query
- Database.V1.Bloodhound.Types: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
- Database.V1.Bloodhound.Types: Inches :: DistanceUnit
- Database.V1.Bloodhound.Types: Include :: [Pattern] -> Include
- Database.V1.Bloodhound.Types: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
- Database.V1.Bloodhound.Types: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
- Database.V1.Bloodhound.Types: IndexAliasName :: IndexName -> IndexAliasName
- Database.V1.Bloodhound.Types: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
- Database.V1.Bloodhound.Types: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
- Database.V1.Bloodhound.Types: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
- Database.V1.Bloodhound.Types: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: IndexConcurrency :: Int -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: IndexDocumentSettings :: VersionControl -> Maybe DocumentParent -> IndexDocumentSettings
- Database.V1.Bloodhound.Types: IndexList :: (NonEmpty IndexName) -> IndexSelection
- Database.V1.Bloodhound.Types: IndexName :: Text -> IndexName
- Database.V1.Bloodhound.Types: IndexOptimizationSettings :: Maybe Int -> Bool -> Bool -> IndexOptimizationSettings
- Database.V1.Bloodhound.Types: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
- Database.V1.Bloodhound.Types: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
- Database.V1.Bloodhound.Types: IndexTemplate :: TemplatePattern -> Maybe IndexSettings -> [Value] -> IndexTemplate
- Database.V1.Bloodhound.Types: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
- Database.V1.Bloodhound.Types: InternalVersion :: DocVersion -> VersionControl
- Database.V1.Bloodhound.Types: Intersection :: RegexpFlag
- Database.V1.Bloodhound.Types: Interval :: RegexpFlag
- Database.V1.Bloodhound.Types: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
- Database.V1.Bloodhound.Types: JVMGCCollector :: Text -> JVMGCCollector
- Database.V1.Bloodhound.Types: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
- Database.V1.Bloodhound.Types: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
- Database.V1.Bloodhound.Types: JVMMemoryPool :: Text -> JVMMemoryPool
- Database.V1.Bloodhound.Types: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
- Database.V1.Bloodhound.Types: Kilometers :: DistanceUnit
- Database.V1.Bloodhound.Types: LastMissing :: Missing
- Database.V1.Bloodhound.Types: LatLon :: Double -> Double -> LatLon
- Database.V1.Bloodhound.Types: Lenient :: Bool -> Lenient
- Database.V1.Bloodhound.Types: LessThan :: Double -> LessThan
- Database.V1.Bloodhound.Types: LessThanD :: UTCTime -> LessThanD
- Database.V1.Bloodhound.Types: LessThanEq :: Double -> LessThanEq
- Database.V1.Bloodhound.Types: LessThanEqD :: UTCTime -> LessThanEqD
- Database.V1.Bloodhound.Types: LimitFilter :: Int -> Filter
- Database.V1.Bloodhound.Types: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
- Database.V1.Bloodhound.Types: LocalNode :: NodeSelection
- Database.V1.Bloodhound.Types: Locale :: Text -> Locale
- Database.V1.Bloodhound.Types: LowercaseExpanded :: Bool -> LowercaseExpanded
- Database.V1.Bloodhound.Types: MacAddress :: Text -> MacAddress
- Database.V1.Bloodhound.Types: Map :: ExecutionHint
- Database.V1.Bloodhound.Types: Mapping :: TypeName -> [MappingField] -> Mapping
- Database.V1.Bloodhound.Types: MappingField :: FieldName -> FieldDefinition -> MappingField
- Database.V1.Bloodhound.Types: MappingName :: Text -> MappingName
- Database.V1.Bloodhound.Types: MatchAllQuery :: (Maybe Boost) -> Query
- Database.V1.Bloodhound.Types: MatchPhrase :: MatchQueryType
- Database.V1.Bloodhound.Types: MatchPhrasePrefix :: MatchQueryType
- Database.V1.Bloodhound.Types: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> MatchQuery
- Database.V1.Bloodhound.Types: MaxDocFrequency :: Int -> MaxDocFrequency
- Database.V1.Bloodhound.Types: MaxExpansions :: Int -> MaxExpansions
- Database.V1.Bloodhound.Types: MaxQueryTerms :: Int -> MaxQueryTerms
- Database.V1.Bloodhound.Types: MaxWordLength :: Int -> MaxWordLength
- Database.V1.Bloodhound.Types: MaybeNA :: Maybe a -> MaybeNA a
- Database.V1.Bloodhound.Types: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
- Database.V1.Bloodhound.Types: Meters :: DistanceUnit
- Database.V1.Bloodhound.Types: Miles :: DistanceUnit
- Database.V1.Bloodhound.Types: Millimeters :: DistanceUnit
- Database.V1.Bloodhound.Types: MinDocFrequency :: Int -> MinDocFrequency
- Database.V1.Bloodhound.Types: MinWordLength :: Int -> MinWordLength
- Database.V1.Bloodhound.Types: MinimumMatch :: Int -> MinimumMatch
- Database.V1.Bloodhound.Types: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
- Database.V1.Bloodhound.Types: MinimumTermFrequency :: Int -> MinimumTermFrequency
- Database.V1.Bloodhound.Types: Minute :: Interval
- Database.V1.Bloodhound.Types: Minutes :: TimeInterval
- Database.V1.Bloodhound.Types: MissingAgg :: MissingAggregation -> Aggregation
- Database.V1.Bloodhound.Types: MissingAggregation :: Text -> MissingAggregation
- Database.V1.Bloodhound.Types: MissingFilter :: FieldName -> Existence -> NullValue -> Filter
- Database.V1.Bloodhound.Types: MissingResult :: Int -> MissingResult
- Database.V1.Bloodhound.Types: Month :: Interval
- Database.V1.Bloodhound.Types: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Types: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
- Database.V1.Bloodhound.Types: MultiMatchBestFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Types: MultiMatchCrossFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Types: MultiMatchMostFields :: MultiMatchQueryType
- Database.V1.Bloodhound.Types: MultiMatchPhrase :: MultiMatchQueryType
- Database.V1.Bloodhound.Types: MultiMatchPhrasePrefix :: MultiMatchQueryType
- Database.V1.Bloodhound.Types: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
- Database.V1.Bloodhound.Types: MustMatch :: Term -> Cache -> BoolMatch
- Database.V1.Bloodhound.Types: MustNotMatch :: Term -> Cache -> BoolMatch
- Database.V1.Bloodhound.Types: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
- Database.V1.Bloodhound.Types: NauticalMiles :: DistanceUnit
- Database.V1.Bloodhound.Types: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
- Database.V1.Bloodhound.Types: NetworkInterfaceName :: Text -> NetworkInterfaceName
- Database.V1.Bloodhound.Types: NoOptimizeBbox :: OptimizeBbox
- Database.V1.Bloodhound.Types: NoRegexpFlags :: RegexpFlags
- Database.V1.Bloodhound.Types: NoSource :: Source
- Database.V1.Bloodhound.Types: NoVersionControl :: VersionControl
- Database.V1.Bloodhound.Types: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
- Database.V1.Bloodhound.Types: NodeAttrName :: Text -> NodeAttrName
- Database.V1.Bloodhound.Types: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
- Database.V1.Bloodhound.Types: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
- Database.V1.Bloodhound.Types: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
- Database.V1.Bloodhound.Types: NodeByFullNodeId :: FullNodeId -> NodeSelector
- Database.V1.Bloodhound.Types: NodeByHost :: Server -> NodeSelector
- Database.V1.Bloodhound.Types: NodeByName :: NodeName -> NodeSelector
- Database.V1.Bloodhound.Types: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Text -> Text -> Text -> NodeDataPathStats
- Database.V1.Bloodhound.Types: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
- Database.V1.Bloodhound.Types: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
- Database.V1.Bloodhound.Types: NodeHTTPInfo :: Bytes -> BoundTransportAddress -> NodeHTTPInfo
- Database.V1.Bloodhound.Types: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
- Database.V1.Bloodhound.Types: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Int -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
- Database.V1.Bloodhound.Types: NodeInfo :: EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> NodeNetworkInfo -> NodeThreadPoolsInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
- Database.V1.Bloodhound.Types: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VersionNumber -> Text -> VersionNumber -> PID -> NodeJVMInfo
- Database.V1.Bloodhound.Types: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
- Database.V1.Bloodhound.Types: NodeList :: (NonEmpty NodeSelector) -> NodeSelection
- Database.V1.Bloodhound.Types: NodeName :: Text -> NodeName
- Database.V1.Bloodhound.Types: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
- Database.V1.Bloodhound.Types: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
- Database.V1.Bloodhound.Types: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
- Database.V1.Bloodhound.Types: NodeOSInfo :: Bytes -> Bytes -> CPUInfo -> Int -> NominalDiffTime -> NodeOSInfo
- Database.V1.Bloodhound.Types: NodeOSStats :: Bytes -> Bytes -> Bytes -> Bytes -> Int -> Int -> Bytes -> Bytes -> Int -> Int -> Int -> Int -> Int -> Maybe LoadAvgs -> NominalDiffTime -> UTCTime -> NodeOSStats
- Database.V1.Bloodhound.Types: NodePluginInfo :: Bool -> Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
- Database.V1.Bloodhound.Types: NodeProcessInfo :: Bool -> Int -> PID -> NominalDiffTime -> NodeProcessInfo
- Database.V1.Bloodhound.Types: NodeProcessStats :: Bytes -> Bytes -> Bytes -> NominalDiffTime -> NominalDiffTime -> NominalDiffTime -> Int -> Int -> UTCTime -> NodeProcessStats
- Database.V1.Bloodhound.Types: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> NodeNetworkStats -> NodeThreadPoolsStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
- Database.V1.Bloodhound.Types: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: NodeThreadPoolsInfo :: NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolsInfo
- Database.V1.Bloodhound.Types: NodeThreadPoolsStats :: NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolsStats
- Database.V1.Bloodhound.Types: NodeTransportInfo :: [BoundTransportAddress] -> BoundTransportAddress -> NodeTransportInfo
- Database.V1.Bloodhound.Types: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
- Database.V1.Bloodhound.Types: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
- Database.V1.Bloodhound.Types: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
- Database.V1.Bloodhound.Types: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
- Database.V1.Bloodhound.Types: NotFilter :: Filter -> Cache -> Filter
- Database.V1.Bloodhound.Types: NullValue :: Bool -> NullValue
- Database.V1.Bloodhound.Types: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: OpenIndex :: OpenCloseIndex
- Database.V1.Bloodhound.Types: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
- Database.V1.Bloodhound.Types: Or :: BooleanOperator
- Database.V1.Bloodhound.Types: OrFilter :: [Filter] -> Cache -> Filter
- Database.V1.Bloodhound.Types: Ordinals :: ExecutionHint
- Database.V1.Bloodhound.Types: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
- Database.V1.Bloodhound.Types: PID :: Int -> PID
- Database.V1.Bloodhound.Types: Pattern :: Text -> Pattern
- Database.V1.Bloodhound.Types: PercentMatch :: Double -> PercentMatch
- Database.V1.Bloodhound.Types: PhraseSlop :: Int -> PhraseSlop
- Database.V1.Bloodhound.Types: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
- Database.V1.Bloodhound.Types: PhraseSuggesterCollate :: TemplateQueryInline -> Bool -> PhraseSuggesterCollate
- Database.V1.Bloodhound.Types: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Types: Plain :: PlainHighlight -> HighlightSettings
- Database.V1.Bloodhound.Types: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
- Database.V1.Bloodhound.Types: Plane :: DistanceType
- Database.V1.Bloodhound.Types: PluginName :: Text -> PluginName
- Database.V1.Bloodhound.Types: PopPattern :: Pattern -> PatternOrPatterns
- Database.V1.Bloodhound.Types: PopPatterns :: [Pattern] -> PatternOrPatterns
- Database.V1.Bloodhound.Types: Postings :: PostingsHighlight -> HighlightSettings
- Database.V1.Bloodhound.Types: PostingsHighlight :: (Maybe CommonHighlight) -> PostingsHighlight
- Database.V1.Bloodhound.Types: PrefixFilter :: FieldName -> PrefixValue -> Cache -> Filter
- Database.V1.Bloodhound.Types: PrefixLength :: Int -> PrefixLength
- Database.V1.Bloodhound.Types: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
- Database.V1.Bloodhound.Types: Quarter :: Interval
- Database.V1.Bloodhound.Types: QueryBoolQuery :: BoolQuery -> Query
- Database.V1.Bloodhound.Types: QueryBoostingQuery :: BoostingQuery -> Query
- Database.V1.Bloodhound.Types: QueryCommonTermsQuery :: CommonTermsQuery -> Query
- Database.V1.Bloodhound.Types: QueryDisMaxQuery :: DisMaxQuery -> Query
- Database.V1.Bloodhound.Types: QueryFilter :: Query -> Cache -> Filter
- Database.V1.Bloodhound.Types: QueryFilteredQuery :: FilteredQuery -> Query
- Database.V1.Bloodhound.Types: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
- Database.V1.Bloodhound.Types: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
- Database.V1.Bloodhound.Types: QueryFuzzyQuery :: FuzzyQuery -> Query
- Database.V1.Bloodhound.Types: QueryHasChildQuery :: HasChildQuery -> Query
- Database.V1.Bloodhound.Types: QueryHasParentQuery :: HasParentQuery -> Query
- Database.V1.Bloodhound.Types: QueryIndicesQuery :: IndicesQuery -> Query
- Database.V1.Bloodhound.Types: QueryMatchQuery :: MatchQuery -> Query
- Database.V1.Bloodhound.Types: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
- Database.V1.Bloodhound.Types: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
- Database.V1.Bloodhound.Types: QueryMultiMatchQuery :: MultiMatchQuery -> Query
- Database.V1.Bloodhound.Types: QueryNestedQuery :: NestedQuery -> Query
- Database.V1.Bloodhound.Types: QueryPath :: Text -> QueryPath
- Database.V1.Bloodhound.Types: QueryPrefixQuery :: PrefixQuery -> Query
- Database.V1.Bloodhound.Types: QueryQueryStringQuery :: QueryStringQuery -> Query
- Database.V1.Bloodhound.Types: QueryRangeQuery :: RangeQuery -> Query
- Database.V1.Bloodhound.Types: QueryRegexpQuery :: RegexpQuery -> Query
- Database.V1.Bloodhound.Types: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
- Database.V1.Bloodhound.Types: QueryString :: Text -> QueryString
- Database.V1.Bloodhound.Types: 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
- Database.V1.Bloodhound.Types: QueryTemplateQueryInline :: TemplateQueryInline -> Query
- Database.V1.Bloodhound.Types: QuorumMinus1Shards :: InitialShardCount
- Database.V1.Bloodhound.Types: QuorumShards :: InitialShardCount
- Database.V1.Bloodhound.Types: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
- Database.V1.Bloodhound.Types: RRSubWholeMatch :: RestoreRenameToken
- Database.V1.Bloodhound.Types: RRTLit :: Text -> RestoreRenameToken
- Database.V1.Bloodhound.Types: RangeDateGt :: GreaterThanD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateGte :: GreaterThanEqD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateLt :: LessThanD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDateLte :: LessThanEqD -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGt :: GreaterThan -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGte :: GreaterThanEq -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleLt :: LessThan -> RangeValue
- Database.V1.Bloodhound.Types: RangeDoubleLte :: LessThanEq -> RangeValue
- Database.V1.Bloodhound.Types: RangeExecutionFielddata :: RangeExecution
- Database.V1.Bloodhound.Types: RangeExecutionIndex :: RangeExecution
- Database.V1.Bloodhound.Types: RangeFilter :: FieldName -> RangeValue -> RangeExecution -> Cache -> Filter
- Database.V1.Bloodhound.Types: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
- Database.V1.Bloodhound.Types: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: Regexp :: Text -> Regexp
- Database.V1.Bloodhound.Types: RegexpFilter :: FieldName -> Regexp -> RegexpFlags -> CacheName -> Cache -> CacheKey -> Filter
- Database.V1.Bloodhound.Types: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
- Database.V1.Bloodhound.Types: RemoveAlias :: IndexAlias -> IndexAliasAction
- Database.V1.Bloodhound.Types: ReplicaCount :: Int -> ReplicaCount
- Database.V1.Bloodhound.Types: ReplicasBounded :: Int -> Int -> ReplicaBounds
- Database.V1.Bloodhound.Types: ReplicasLowerBounded :: Int -> ReplicaBounds
- Database.V1.Bloodhound.Types: ReplicasUnbounded :: ReplicaBounds
- Database.V1.Bloodhound.Types: RepoPattern :: Text -> SnapshotRepoPattern
- Database.V1.Bloodhound.Types: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
- Database.V1.Bloodhound.Types: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
- Database.V1.Bloodhound.Types: RestoreRenamePattern :: Text -> RestoreRenamePattern
- Database.V1.Bloodhound.Types: RoundDownTo :: DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Types: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RoutingAllocationExclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RoutingAllocationInclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RoutingAllocationRequire :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: RoutingValue :: Text -> RoutingValue
- Database.V1.Bloodhound.Types: ScientificValue :: Scientific -> BucketValue
- Database.V1.Bloodhound.Types: ScoreTypeAvg :: ScoreType
- Database.V1.Bloodhound.Types: ScoreTypeMax :: ScoreType
- Database.V1.Bloodhound.Types: ScoreTypeNone :: ScoreType
- Database.V1.Bloodhound.Types: ScoreTypeSum :: ScoreType
- Database.V1.Bloodhound.Types: Script :: Text -> Script
- Database.V1.Bloodhound.Types: ScriptValueCount :: Script -> ValueCountAggregation
- Database.V1.Bloodhound.Types: ScrollId :: Text -> ScrollId
- Database.V1.Bloodhound.Types: Search :: Maybe Query -> Maybe Filter -> Maybe Sort -> Maybe Aggregations -> Maybe Highlights -> TrackSortScores -> From -> Size -> SearchType -> Maybe [FieldName] -> Maybe Source -> Maybe Suggest -> Search
- Database.V1.Bloodhound.Types: SearchAliasRouting :: (NonEmpty RoutingValue) -> SearchAliasRouting
- Database.V1.Bloodhound.Types: SearchHits :: Int -> Score -> [Hit a] -> SearchHits a
- Database.V1.Bloodhound.Types: SearchResult :: Int -> Bool -> ShardResult -> SearchHits a -> Maybe AggregationResults -> Maybe ScrollId -> Maybe NamedSuggestionResponse -> SearchResult a
- Database.V1.Bloodhound.Types: SearchTypeCount :: SearchType
- Database.V1.Bloodhound.Types: SearchTypeDfsQueryAndFetch :: SearchType
- Database.V1.Bloodhound.Types: SearchTypeDfsQueryThenFetch :: SearchType
- Database.V1.Bloodhound.Types: SearchTypeQueryAndFetch :: SearchType
- Database.V1.Bloodhound.Types: SearchTypeQueryThenFetch :: SearchType
- Database.V1.Bloodhound.Types: SearchTypeScan :: SearchType
- Database.V1.Bloodhound.Types: Second :: Interval
- Database.V1.Bloodhound.Types: Seconds :: TimeInterval
- Database.V1.Bloodhound.Types: Server :: Text -> Server
- Database.V1.Bloodhound.Types: ShardCount :: Int -> ShardCount
- Database.V1.Bloodhound.Types: ShardId :: Int -> ShardId
- Database.V1.Bloodhound.Types: ShardResult :: Int -> Int -> Int -> ShardResult
- Database.V1.Bloodhound.Types: ShouldMatch :: [Term] -> Cache -> BoolMatch
- Database.V1.Bloodhound.Types: SimpleQueryAll :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryAnd :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryEscape :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryFuzzy :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryNear :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryNone :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryOr :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryPhrase :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryPrecedence :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryPrefix :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQuerySlop :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
- Database.V1.Bloodhound.Types: SimpleQueryWhitespace :: SimpleQueryFlag
- Database.V1.Bloodhound.Types: Size :: Int -> Size
- Database.V1.Bloodhound.Types: SloppyArc :: DistanceType
- Database.V1.Bloodhound.Types: SnapPattern :: Text -> SnapshotPattern
- Database.V1.Bloodhound.Types: SnapshotAborted :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
- Database.V1.Bloodhound.Types: SnapshotFailed :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
- Database.V1.Bloodhound.Types: SnapshotInit :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotList :: (NonEmpty SnapshotPattern) -> SnapshotSelection
- Database.V1.Bloodhound.Types: SnapshotMissing :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotName :: Text -> SnapshotName
- Database.V1.Bloodhound.Types: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
- Database.V1.Bloodhound.Types: SnapshotRepoList :: (NonEmpty SnapshotRepoPattern) -> SnapshotRepoSelection
- Database.V1.Bloodhound.Types: SnapshotRepoName :: Text -> SnapshotRepoName
- Database.V1.Bloodhound.Types: SnapshotRepoType :: Text -> SnapshotRepoType
- Database.V1.Bloodhound.Types: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Types: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
- Database.V1.Bloodhound.Types: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
- Database.V1.Bloodhound.Types: SnapshotStarted :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotSuccess :: SnapshotState
- Database.V1.Bloodhound.Types: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
- Database.V1.Bloodhound.Types: SnapshotWaiting :: SnapshotState
- Database.V1.Bloodhound.Types: SomeRegexpFlags :: (NonEmpty RegexpFlag) -> RegexpFlags
- Database.V1.Bloodhound.Types: SortAvg :: SortMode
- Database.V1.Bloodhound.Types: SortMax :: SortMode
- Database.V1.Bloodhound.Types: SortMin :: SortMode
- Database.V1.Bloodhound.Types: SortSum :: SortMode
- Database.V1.Bloodhound.Types: SourceIncludeExclude :: Include -> Exclude -> Source
- Database.V1.Bloodhound.Types: SourcePatterns :: PatternOrPatterns -> Source
- Database.V1.Bloodhound.Types: Status :: Maybe Bool -> Int -> Text -> Version -> Text -> Status
- Database.V1.Bloodhound.Types: StopWord :: Text -> StopWord
- Database.V1.Bloodhound.Types: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V1.Bloodhound.Types: Suggest :: Text -> Text -> SuggestType -> Suggest
- Database.V1.Bloodhound.Types: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
- Database.V1.Bloodhound.Types: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
- Database.V1.Bloodhound.Types: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
- Database.V1.Bloodhound.Types: TTLDisablePurge :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TagSchema :: Text -> HighlightTag
- Database.V1.Bloodhound.Types: TemplateName :: Text -> TemplateName
- Database.V1.Bloodhound.Types: TemplatePattern :: Text -> TemplatePattern
- Database.V1.Bloodhound.Types: TemplateQueryInline :: Query -> TemplateQueryKeyValuePairs -> TemplateQueryInline
- Database.V1.Bloodhound.Types: TemplateQueryKeyValuePairs :: (HashMap TemplateQueryKey TemplateQueryValue) -> TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Types: Term :: Text -> Text -> Term
- Database.V1.Bloodhound.Types: TermFilter :: Term -> Cache -> Filter
- Database.V1.Bloodhound.Types: TermInclusion :: Text -> TermInclusion
- Database.V1.Bloodhound.Types: TermOrder :: Text -> SortOrder -> TermOrder
- Database.V1.Bloodhound.Types: TermPattern :: Text -> Text -> TermInclusion
- Database.V1.Bloodhound.Types: TermQuery :: Term -> (Maybe Boost) -> Query
- Database.V1.Bloodhound.Types: TermsAgg :: TermsAggregation -> Aggregation
- Database.V1.Bloodhound.Types: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
- Database.V1.Bloodhound.Types: TermsQuery :: Text -> (NonEmpty Text) -> Query
- Database.V1.Bloodhound.Types: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
- Database.V1.Bloodhound.Types: TextValue :: Text -> BucketValue
- Database.V1.Bloodhound.Types: ThreadPoolBounded :: Int -> ThreadPoolSize
- Database.V1.Bloodhound.Types: ThreadPoolCached :: ThreadPoolType
- Database.V1.Bloodhound.Types: ThreadPoolFixed :: ThreadPoolType
- Database.V1.Bloodhound.Types: ThreadPoolScaling :: ThreadPoolType
- Database.V1.Bloodhound.Types: ThreadPoolUnbounded :: ThreadPoolSize
- Database.V1.Bloodhound.Types: Tiebreaker :: Double -> Tiebreaker
- Database.V1.Bloodhound.Types: TopHitResult :: (SearchHits a) -> TopHitResult a
- Database.V1.Bloodhound.Types: TopHitsAgg :: TopHitsAggregation -> Aggregation
- Database.V1.Bloodhound.Types: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
- Database.V1.Bloodhound.Types: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TranslogFSType :: FSType -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: TypeName :: Text -> TypeName
- Database.V1.Bloodhound.Types: ValueCountAgg :: ValueCountAggregation -> Aggregation
- Database.V1.Bloodhound.Types: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
- Database.V1.Bloodhound.Types: VersionNumber :: Version -> VersionNumber
- Database.V1.Bloodhound.Types: WarmerEnabled :: Bool -> UpdatableIndexSetting
- Database.V1.Bloodhound.Types: Week :: Interval
- Database.V1.Bloodhound.Types: Weeks :: TimeInterval
- Database.V1.Bloodhound.Types: Yards :: DistanceUnit
- Database.V1.Bloodhound.Types: Year :: Interval
- Database.V1.Bloodhound.Types: ZeroTermsAll :: ZeroTermsQuery
- Database.V1.Bloodhound.Types: ZeroTermsNone :: ZeroTermsQuery
- Database.V1.Bloodhound.Types: [_id] :: EsResult a -> Text
- Database.V1.Bloodhound.Types: [_index] :: EsResult a -> Text
- Database.V1.Bloodhound.Types: [_source] :: EsResultFound a -> a
- Database.V1.Bloodhound.Types: [_type] :: EsResult a -> Text
- Database.V1.Bloodhound.Types: [_version] :: EsResultFound a -> DocVersion
- Database.V1.Bloodhound.Types: [aggBody] :: Search -> Maybe Aggregations
- Database.V1.Bloodhound.Types: [aggregations] :: SearchResult a -> Maybe AggregationResults
- Database.V1.Bloodhound.Types: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
- Database.V1.Bloodhound.Types: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
- Database.V1.Bloodhound.Types: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
- Database.V1.Bloodhound.Types: [boolQueryBoost] :: BoolQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
- Database.V1.Bloodhound.Types: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
- Database.V1.Bloodhound.Types: [boolQueryMustMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Types: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Types: [boolQueryShouldMatch] :: BoolQuery -> [Query]
- Database.V1.Bloodhound.Types: [bottomRight] :: GeoBoundingBox -> LatLon
- Database.V1.Bloodhound.Types: [boundAddress] :: BoundTransportAddress -> EsAddress
- Database.V1.Bloodhound.Types: [boundaryChars] :: FastVectorHighlight -> Maybe Text
- Database.V1.Bloodhound.Types: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Types: [buckets] :: Bucket a -> [a]
- Database.V1.Bloodhound.Types: [buildHash] :: BuildHash -> Text
- Database.V1.Bloodhound.Types: [build_hash] :: Version -> BuildHash
- Database.V1.Bloodhound.Types: [build_snapshot] :: Version -> Bool
- Database.V1.Bloodhound.Types: [build_timestamp] :: Version -> UTCTime
- Database.V1.Bloodhound.Types: [cardinalityField] :: CardinalityAggregation -> FieldName
- Database.V1.Bloodhound.Types: [clusterName] :: ClusterName -> Text
- Database.V1.Bloodhound.Types: [coefficient] :: Distance -> Double
- Database.V1.Bloodhound.Types: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [commonBoost] :: CommonTermsQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
- Database.V1.Bloodhound.Types: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
- Database.V1.Bloodhound.Types: [commonField] :: CommonTermsQuery -> FieldName
- Database.V1.Bloodhound.Types: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V1.Bloodhound.Types: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V1.Bloodhound.Types: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
- Database.V1.Bloodhound.Types: [commonQuery] :: CommonTermsQuery -> QueryString
- Database.V1.Bloodhound.Types: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
- Database.V1.Bloodhound.Types: [cpuCacheSize] :: CPUInfo -> Bytes
- Database.V1.Bloodhound.Types: [cpuCoresPerSocket] :: CPUInfo -> Int
- Database.V1.Bloodhound.Types: [cpuMHZ] :: CPUInfo -> Int
- Database.V1.Bloodhound.Types: [cpuModel] :: CPUInfo -> Text
- Database.V1.Bloodhound.Types: [cpuTotalCores] :: CPUInfo -> Int
- Database.V1.Bloodhound.Types: [cpuTotalSockets] :: CPUInfo -> Int
- Database.V1.Bloodhound.Types: [cpuVendor] :: CPUInfo -> Text
- Database.V1.Bloodhound.Types: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Types: [dateDocCount] :: DateHistogramResult -> Int
- Database.V1.Bloodhound.Types: [dateField] :: DateHistogramAggregation -> FieldName
- Database.V1.Bloodhound.Types: [dateFormat] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Types: [dateInterval] :: DateHistogramAggregation -> Interval
- Database.V1.Bloodhound.Types: [dateKeyStr] :: DateHistogramResult -> Maybe Text
- Database.V1.Bloodhound.Types: [dateKey] :: DateHistogramResult -> Int
- Database.V1.Bloodhound.Types: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [datePostZone] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [datePreZone] :: DateHistogramAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Types: [dateRangeDocCount] :: DateRangeResult -> Int
- Database.V1.Bloodhound.Types: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
- Database.V1.Bloodhound.Types: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
- Database.V1.Bloodhound.Types: [dateRangeKey] :: DateRangeResult -> Text
- Database.V1.Bloodhound.Types: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
- Database.V1.Bloodhound.Types: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
- Database.V1.Bloodhound.Types: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Types: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Types: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Types: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
- Database.V1.Bloodhound.Types: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Types: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
- Database.V1.Bloodhound.Types: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
- Database.V1.Bloodhound.Types: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Types: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Types: [directGeneratorsField] :: DirectGenerators -> FieldName
- Database.V1.Bloodhound.Types: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
- Database.V1.Bloodhound.Types: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [disMaxQueries] :: DisMaxQuery -> [Query]
- Database.V1.Bloodhound.Types: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
- Database.V1.Bloodhound.Types: [distanceFrom] :: DistanceRange -> Distance
- Database.V1.Bloodhound.Types: [distanceTo] :: DistanceRange -> Distance
- Database.V1.Bloodhound.Types: [draField] :: DateRangeAggregation -> FieldName
- Database.V1.Bloodhound.Types: [draFormat] :: DateRangeAggregation -> Maybe Text
- Database.V1.Bloodhound.Types: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
- Database.V1.Bloodhound.Types: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
- Database.V1.Bloodhound.Types: [errorMessage] :: EsError -> Text
- Database.V1.Bloodhound.Types: [errorStatus] :: EsError -> Int
- Database.V1.Bloodhound.Types: [esAddress] :: EsAddress -> Text
- Database.V1.Bloodhound.Types: [esPassword] :: EsPassword -> Text
- Database.V1.Bloodhound.Types: [esProtoExBody] :: EsProtocolException -> LByteString
- Database.V1.Bloodhound.Types: [esUsername] :: EsUsername -> Text
- Database.V1.Bloodhound.Types: [faAggs] :: FilterAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Types: [faFilter] :: FilterAggregation -> Filter
- Database.V1.Bloodhound.Types: [fieldDefinition] :: MappingField -> FieldDefinition
- Database.V1.Bloodhound.Types: [fieldType] :: FieldDefinition -> FieldType
- Database.V1.Bloodhound.Types: [fields] :: Search -> Maybe [FieldName]
- Database.V1.Bloodhound.Types: [filterBody] :: Search -> Maybe Filter
- Database.V1.Bloodhound.Types: [filteredFilter] :: FilteredQuery -> Filter
- Database.V1.Bloodhound.Types: [filteredQuery] :: FilteredQuery -> Query
- Database.V1.Bloodhound.Types: [flushAfterOptimize] :: IndexOptimizationSettings -> Bool
- Database.V1.Bloodhound.Types: [forceSource] :: CommonHighlight -> Maybe Bool
- Database.V1.Bloodhound.Types: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
- Database.V1.Bloodhound.Types: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Types: [fragmentSize] :: NonPostings -> Maybe Int
- Database.V1.Bloodhound.Types: [from] :: Search -> From
- Database.V1.Bloodhound.Types: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Types: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
- Database.V1.Bloodhound.Types: [fsrLocation] :: FsSnapshotRepo -> FilePath
- Database.V1.Bloodhound.Types: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Types: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V1.Bloodhound.Types: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
- Database.V1.Bloodhound.Types: [fullNodeId] :: FullNodeId -> Text
- Database.V1.Bloodhound.Types: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
- Database.V1.Bloodhound.Types: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
- Database.V1.Bloodhound.Types: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
- Database.V1.Bloodhound.Types: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
- Database.V1.Bloodhound.Types: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
- Database.V1.Bloodhound.Types: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
- Database.V1.Bloodhound.Types: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
- Database.V1.Bloodhound.Types: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
- Database.V1.Bloodhound.Types: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
- Database.V1.Bloodhound.Types: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [fuzzyQueryField] :: FuzzyQuery -> FieldName
- Database.V1.Bloodhound.Types: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
- Database.V1.Bloodhound.Types: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
- Database.V1.Bloodhound.Types: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
- Database.V1.Bloodhound.Types: [fuzzyQueryValue] :: FuzzyQuery -> Text
- Database.V1.Bloodhound.Types: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
- Database.V1.Bloodhound.Types: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
- Database.V1.Bloodhound.Types: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
- Database.V1.Bloodhound.Types: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
- Database.V1.Bloodhound.Types: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Types: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
- Database.V1.Bloodhound.Types: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
- Database.V1.Bloodhound.Types: [geoField] :: GeoPoint -> FieldName
- Database.V1.Bloodhound.Types: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
- Database.V1.Bloodhound.Types: [globalsettings] :: Highlights -> Maybe HighlightSettings
- Database.V1.Bloodhound.Types: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
- Database.V1.Bloodhound.Types: [hasChildQueryType] :: HasChildQuery -> TypeName
- Database.V1.Bloodhound.Types: [hasChildQuery] :: HasChildQuery -> Query
- Database.V1.Bloodhound.Types: [hasParentQueryScoreType] :: HasParentQuery -> Maybe ScoreType
- Database.V1.Bloodhound.Types: [hasParentQueryType] :: HasParentQuery -> TypeName
- Database.V1.Bloodhound.Types: [hasParentQuery] :: HasParentQuery -> Query
- Database.V1.Bloodhound.Types: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V1.Bloodhound.Types: [highlightFields] :: Highlights -> [FieldHighlight]
- Database.V1.Bloodhound.Types: [highlightQuery] :: CommonHighlight -> Maybe Query
- Database.V1.Bloodhound.Types: [highlight] :: Search -> Maybe Highlights
- Database.V1.Bloodhound.Types: [hitDocId] :: Hit a -> DocId
- Database.V1.Bloodhound.Types: [hitHighlight] :: Hit a -> Maybe HitHighlight
- Database.V1.Bloodhound.Types: [hitIndex] :: Hit a -> IndexName
- Database.V1.Bloodhound.Types: [hitScore] :: Hit a -> Score
- Database.V1.Bloodhound.Types: [hitSource] :: Hit a -> Maybe a
- Database.V1.Bloodhound.Types: [hitType] :: Hit a -> MappingName
- Database.V1.Bloodhound.Types: [hitsTotal] :: SearchHits a -> Int
- Database.V1.Bloodhound.Types: [hits] :: SearchHits a -> [Hit a]
- Database.V1.Bloodhound.Types: [idsParent] :: IndexDocumentSettings -> Maybe DocumentParent
- Database.V1.Bloodhound.Types: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
- Database.V1.Bloodhound.Types: [ignoreUnmapped] :: DefaultSort -> Bool
- Database.V1.Bloodhound.Types: [indexAliasName] :: IndexAliasName -> IndexName
- Database.V1.Bloodhound.Types: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
- Database.V1.Bloodhound.Types: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
- Database.V1.Bloodhound.Types: [indexAlias] :: IndexAlias -> IndexAliasName
- Database.V1.Bloodhound.Types: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
- Database.V1.Bloodhound.Types: [indexReplicas] :: IndexSettings -> ReplicaCount
- Database.V1.Bloodhound.Types: [indexShards] :: IndexSettings -> ShardCount
- Database.V1.Bloodhound.Types: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
- Database.V1.Bloodhound.Types: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
- Database.V1.Bloodhound.Types: [indicesQuery] :: IndicesQuery -> Query
- Database.V1.Bloodhound.Types: [inline] :: TemplateQueryInline -> Query
- Database.V1.Bloodhound.Types: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
- Database.V1.Bloodhound.Types: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [jvmGCCollector] :: JVMGCCollector -> Text
- Database.V1.Bloodhound.Types: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
- Database.V1.Bloodhound.Types: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Types: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Types: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Types: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Types: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V1.Bloodhound.Types: [jvmMemoryPool] :: JVMMemoryPool -> Text
- Database.V1.Bloodhound.Types: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
- Database.V1.Bloodhound.Types: [latLon] :: GeoPoint -> LatLon
- Database.V1.Bloodhound.Types: [lat] :: LatLon -> Double
- Database.V1.Bloodhound.Types: [loadAvg15Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Types: [loadAvg1Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Types: [loadAvg5Min] :: LoadAvgs -> Double
- Database.V1.Bloodhound.Types: [lon] :: LatLon -> Double
- Database.V1.Bloodhound.Types: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V1.Bloodhound.Types: [lucene_version] :: Version -> VersionNumber
- Database.V1.Bloodhound.Types: [maField] :: MissingAggregation -> Text
- Database.V1.Bloodhound.Types: [macAddress] :: MacAddress -> Text
- Database.V1.Bloodhound.Types: [mappingFieldName] :: MappingField -> FieldName
- Database.V1.Bloodhound.Types: [mappingFields] :: Mapping -> [MappingField]
- Database.V1.Bloodhound.Types: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [matchQueryBoost] :: MatchQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
- Database.V1.Bloodhound.Types: [matchQueryField] :: MatchQuery -> FieldName
- Database.V1.Bloodhound.Types: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
- Database.V1.Bloodhound.Types: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
- Database.V1.Bloodhound.Types: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Types: [matchQueryOperator] :: MatchQuery -> BooleanOperator
- Database.V1.Bloodhound.Types: [matchQueryQueryString] :: MatchQuery -> QueryString
- Database.V1.Bloodhound.Types: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
- Database.V1.Bloodhound.Types: [matchedFields] :: FastVectorHighlight -> [Text]
- Database.V1.Bloodhound.Types: [maxNumSegments] :: IndexOptimizationSettings -> Maybe Int
- Database.V1.Bloodhound.Types: [maxScore] :: SearchHits a -> Score
- Database.V1.Bloodhound.Types: [missingDocCount] :: MissingResult -> Int
- Database.V1.Bloodhound.Types: [missingSort] :: DefaultSort -> Maybe Missing
- Database.V1.Bloodhound.Types: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
- Database.V1.Bloodhound.Types: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
- Database.V1.Bloodhound.Types: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
- Database.V1.Bloodhound.Types: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
- Database.V1.Bloodhound.Types: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
- Database.V1.Bloodhound.Types: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
- Database.V1.Bloodhound.Types: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
- Database.V1.Bloodhound.Types: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
- Database.V1.Bloodhound.Types: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
- Database.V1.Bloodhound.Types: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
- Database.V1.Bloodhound.Types: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
- Database.V1.Bloodhound.Types: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
- Database.V1.Bloodhound.Types: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
- Database.V1.Bloodhound.Types: [moreLikeThisText] :: MoreLikeThisQuery -> Text
- Database.V1.Bloodhound.Types: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
- Database.V1.Bloodhound.Types: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
- Database.V1.Bloodhound.Types: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
- Database.V1.Bloodhound.Types: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Types: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
- Database.V1.Bloodhound.Types: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
- Database.V1.Bloodhound.Types: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
- Database.V1.Bloodhound.Types: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
- Database.V1.Bloodhound.Types: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
- Database.V1.Bloodhound.Types: [name] :: Status -> Text
- Database.V1.Bloodhound.Types: [negativeBoost] :: BoostingQuery -> Boost
- Database.V1.Bloodhound.Types: [negativeQuery] :: BoostingQuery -> Query
- Database.V1.Bloodhound.Types: [nestedFilter] :: DefaultSort -> Maybe Filter
- Database.V1.Bloodhound.Types: [nestedQueryPath] :: NestedQuery -> QueryPath
- Database.V1.Bloodhound.Types: [nestedQueryScoreType] :: NestedQuery -> ScoreType
- Database.V1.Bloodhound.Types: [nestedQuery] :: NestedQuery -> Query
- Database.V1.Bloodhound.Types: [networkInterfaceName] :: NetworkInterfaceName -> Text
- Database.V1.Bloodhound.Types: [noMatchSize] :: CommonHighlight -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
- Database.V1.Bloodhound.Types: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
- Database.V1.Bloodhound.Types: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
- Database.V1.Bloodhound.Types: [nodeBreakersTripped] :: NodeBreakerStats -> Int
- Database.V1.Bloodhound.Types: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathDevice] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Types: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
- Database.V1.Bloodhound.Types: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
- Database.V1.Bloodhound.Types: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathMount] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Types: [nodeDataPathPath] :: NodeDataPathStats -> Text
- Database.V1.Bloodhound.Types: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
- Database.V1.Bloodhound.Types: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
- Database.V1.Bloodhound.Types: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
- Database.V1.Bloodhound.Types: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
- Database.V1.Bloodhound.Types: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
- Database.V1.Bloodhound.Types: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
- Database.V1.Bloodhound.Types: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
- Database.V1.Bloodhound.Types: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
- Database.V1.Bloodhound.Types: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
- Database.V1.Bloodhound.Types: [nodeHTTPTransportAddress] :: NodeHTTPInfo -> BoundTransportAddress
- Database.V1.Bloodhound.Types: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFilterCacheEvictions] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFilterCacheMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIDCacheMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
- Database.V1.Bloodhound.Types: [nodeInfoBuild] :: NodeInfo -> BuildHash
- Database.V1.Bloodhound.Types: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
- Database.V1.Bloodhound.Types: [nodeInfoFullId] :: NodeInfo -> FullNodeId
- Database.V1.Bloodhound.Types: [nodeInfoHTTPAddress] :: NodeInfo -> EsAddress
- Database.V1.Bloodhound.Types: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
- Database.V1.Bloodhound.Types: [nodeInfoHost] :: NodeInfo -> Server
- Database.V1.Bloodhound.Types: [nodeInfoIP] :: NodeInfo -> Server
- Database.V1.Bloodhound.Types: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
- Database.V1.Bloodhound.Types: [nodeInfoName] :: NodeInfo -> NodeName
- Database.V1.Bloodhound.Types: [nodeInfoNetwork] :: NodeInfo -> NodeNetworkInfo
- Database.V1.Bloodhound.Types: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
- Database.V1.Bloodhound.Types: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
- Database.V1.Bloodhound.Types: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
- Database.V1.Bloodhound.Types: [nodeInfoSettings] :: NodeInfo -> Object
- Database.V1.Bloodhound.Types: [nodeInfoThreadPool] :: NodeInfo -> NodeThreadPoolsInfo
- Database.V1.Bloodhound.Types: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
- Database.V1.Bloodhound.Types: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
- Database.V1.Bloodhound.Types: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
- Database.V1.Bloodhound.Types: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
- Database.V1.Bloodhound.Types: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
- Database.V1.Bloodhound.Types: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
- Database.V1.Bloodhound.Types: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
- Database.V1.Bloodhound.Types: [nodeJVMPID] :: NodeJVMInfo -> PID
- Database.V1.Bloodhound.Types: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Types: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Types: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Types: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
- Database.V1.Bloodhound.Types: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
- Database.V1.Bloodhound.Types: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
- Database.V1.Bloodhound.Types: [nodeJVMVMName] :: NodeJVMInfo -> Text
- Database.V1.Bloodhound.Types: [nodeJVMVMVersion] :: NodeJVMInfo -> VersionNumber
- Database.V1.Bloodhound.Types: [nodeJVMVersion] :: NodeJVMInfo -> VersionNumber
- Database.V1.Bloodhound.Types: [nodeName] :: NodeName -> Text
- Database.V1.Bloodhound.Types: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
- Database.V1.Bloodhound.Types: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
- Database.V1.Bloodhound.Types: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
- Database.V1.Bloodhound.Types: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
- Database.V1.Bloodhound.Types: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
- Database.V1.Bloodhound.Types: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
- Database.V1.Bloodhound.Types: [nodeOSCPUIdle] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSCPUInfo] :: NodeOSInfo -> CPUInfo
- Database.V1.Bloodhound.Types: [nodeOSCPUStolen] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSCPUSys] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSCPUUsage] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSCPUUser] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
- Database.V1.Bloodhound.Types: [nodeOSMemActualFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSMemActualUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSMemFreePercent] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSMemFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
- Database.V1.Bloodhound.Types: [nodeOSMemUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSMem] :: NodeOSInfo -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeOSSwapFree] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSSwap] :: NodeOSInfo -> Bytes
- Database.V1.Bloodhound.Types: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
- Database.V1.Bloodhound.Types: [nodeOSUptime] :: NodeOSStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodePluginDescription] :: NodePluginInfo -> Text
- Database.V1.Bloodhound.Types: [nodePluginJVM] :: NodePluginInfo -> Bool
- Database.V1.Bloodhound.Types: [nodePluginName] :: NodePluginInfo -> PluginName
- Database.V1.Bloodhound.Types: [nodePluginSite] :: NodePluginInfo -> Bool
- Database.V1.Bloodhound.Types: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
- Database.V1.Bloodhound.Types: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
- Database.V1.Bloodhound.Types: [nodeProcessCPUSys] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeProcessCPUUser] :: NodeProcessStats -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeProcessId] :: NodeProcessInfo -> PID
- Database.V1.Bloodhound.Types: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
- Database.V1.Bloodhound.Types: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Int
- Database.V1.Bloodhound.Types: [nodeProcessMemResident] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeProcessMemShare] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
- Database.V1.Bloodhound.Types: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
- Database.V1.Bloodhound.Types: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
- Database.V1.Bloodhound.Types: [nodeStatsFS] :: NodeStats -> NodeFSStats
- Database.V1.Bloodhound.Types: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Types: [nodeStatsFullId] :: NodeStats -> FullNodeId
- Database.V1.Bloodhound.Types: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
- Database.V1.Bloodhound.Types: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
- Database.V1.Bloodhound.Types: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
- Database.V1.Bloodhound.Types: [nodeStatsName] :: NodeStats -> NodeName
- Database.V1.Bloodhound.Types: [nodeStatsNetwork] :: NodeStats -> NodeNetworkStats
- Database.V1.Bloodhound.Types: [nodeStatsOS] :: NodeStats -> NodeOSStats
- Database.V1.Bloodhound.Types: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Types: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
- Database.V1.Bloodhound.Types: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V1.Bloodhound.Types: [nodeStatsThreadPool] :: NodeStats -> NodeThreadPoolsStats
- Database.V1.Bloodhound.Types: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
- Database.V1.Bloodhound.Types: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
- Database.V1.Bloodhound.Types: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
- Database.V1.Bloodhound.Types: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
- Database.V1.Bloodhound.Types: [nodeThreadPoolsBulk] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsFetchShardStarted] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsFetchShardStore] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsFlush] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsGeneric] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsGet] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsIndex] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsListener] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsManagement] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsMerge] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsOptimize] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsPercolate] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsRefresh] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsSearch] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsSnapshot] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsBulk] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsFetchShardStarted] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsFetchShardStore] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsFlush] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsGeneric] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsGet] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsIndex] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsListener] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsManagement] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsMerge] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsOptimize] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsPercolate] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsRefresh] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsSearch] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsSnapshot] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsSuggest] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsStatsWarmer] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V1.Bloodhound.Types: [nodeThreadPoolsSuggest] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeThreadPoolsWarmer] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: [nodeTransportAddress] :: NodeTransportInfo -> BoundTransportAddress
- Database.V1.Bloodhound.Types: [nodeTransportCount] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Types: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
- Database.V1.Bloodhound.Types: [nodeTransportRXCount] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Types: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
- Database.V1.Bloodhound.Types: [nodeTransportServerOpen] :: NodeTransportStats -> Int
- Database.V1.Bloodhound.Types: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
- Database.V1.Bloodhound.Types: [nodesClusterName] :: NodesInfo -> ClusterName
- Database.V1.Bloodhound.Types: [nodesInfo] :: NodesInfo -> [NodeInfo]
- Database.V1.Bloodhound.Types: [nodesStatsClusterName] :: NodesStats -> ClusterName
- Database.V1.Bloodhound.Types: [nodesStats] :: NodesStats -> [NodeStats]
- Database.V1.Bloodhound.Types: [nsrName] :: NamedSuggestionResponse -> Text
- Database.V1.Bloodhound.Types: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
- Database.V1.Bloodhound.Types: [numberOfFragments] :: NonPostings -> Maybe Int
- Database.V1.Bloodhound.Types: [number] :: Version -> VersionNumber
- Database.V1.Bloodhound.Types: [ok] :: Status -> Maybe Bool
- Database.V1.Bloodhound.Types: [onlyExpungeDeletes] :: IndexOptimizationSettings -> Bool
- Database.V1.Bloodhound.Types: [order] :: CommonHighlight -> Maybe Text
- Database.V1.Bloodhound.Types: [params] :: TemplateQueryInline -> TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Types: [phraseLimit] :: FastVectorHighlight -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
- Database.V1.Bloodhound.Types: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
- Database.V1.Bloodhound.Types: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> TemplateQueryInline
- Database.V1.Bloodhound.Types: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
- Database.V1.Bloodhound.Types: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterField] :: PhraseSuggester -> FieldName
- Database.V1.Bloodhound.Types: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Types: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
- Database.V1.Bloodhound.Types: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
- Database.V1.Bloodhound.Types: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
- Database.V1.Bloodhound.Types: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
- Database.V1.Bloodhound.Types: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
- Database.V1.Bloodhound.Types: [pid] :: PID -> Int
- Database.V1.Bloodhound.Types: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
- Database.V1.Bloodhound.Types: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
- Database.V1.Bloodhound.Types: [pluginName] :: PluginName -> Text
- Database.V1.Bloodhound.Types: [positiveQuery] :: BoostingQuery -> Query
- Database.V1.Bloodhound.Types: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
- Database.V1.Bloodhound.Types: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [prefixQueryField] :: PrefixQuery -> FieldName
- Database.V1.Bloodhound.Types: [prefixQueryPrefixValue] :: PrefixQuery -> Text
- Database.V1.Bloodhound.Types: [publishAddress] :: BoundTransportAddress -> EsAddress
- Database.V1.Bloodhound.Types: [queryBody] :: Search -> Maybe Query
- Database.V1.Bloodhound.Types: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
- Database.V1.Bloodhound.Types: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
- Database.V1.Bloodhound.Types: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
- Database.V1.Bloodhound.Types: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
- Database.V1.Bloodhound.Types: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
- Database.V1.Bloodhound.Types: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
- Database.V1.Bloodhound.Types: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
- Database.V1.Bloodhound.Types: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
- Database.V1.Bloodhound.Types: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
- Database.V1.Bloodhound.Types: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
- Database.V1.Bloodhound.Types: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
- Database.V1.Bloodhound.Types: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
- Database.V1.Bloodhound.Types: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
- Database.V1.Bloodhound.Types: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
- Database.V1.Bloodhound.Types: [queryStringQuery] :: QueryStringQuery -> QueryString
- Database.V1.Bloodhound.Types: [rangeQueryBoost] :: RangeQuery -> Boost
- Database.V1.Bloodhound.Types: [rangeQueryField] :: RangeQuery -> FieldName
- Database.V1.Bloodhound.Types: [rangeQueryRange] :: RangeQuery -> RangeValue
- Database.V1.Bloodhound.Types: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
- Database.V1.Bloodhound.Types: [regexpQueryField] :: RegexpQuery -> FieldName
- Database.V1.Bloodhound.Types: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
- Database.V1.Bloodhound.Types: [regexpQuery] :: RegexpQuery -> Regexp
- Database.V1.Bloodhound.Types: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
- Database.V1.Bloodhound.Types: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
- Database.V1.Bloodhound.Types: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
- Database.V1.Bloodhound.Types: [routingValue] :: RoutingValue -> Text
- Database.V1.Bloodhound.Types: [rrPattern] :: RestoreRenamePattern -> Text
- Database.V1.Bloodhound.Types: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
- Database.V1.Bloodhound.Types: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
- Database.V1.Bloodhound.Types: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
- Database.V1.Bloodhound.Types: [scriptText] :: Script -> Text
- Database.V1.Bloodhound.Types: [scrollId] :: SearchResult a -> Maybe ScrollId
- Database.V1.Bloodhound.Types: [searchHits] :: SearchResult a -> SearchHits a
- Database.V1.Bloodhound.Types: [searchType] :: Search -> SearchType
- Database.V1.Bloodhound.Types: [shardId] :: ShardId -> Int
- Database.V1.Bloodhound.Types: [shardTotal] :: ShardResult -> Int
- Database.V1.Bloodhound.Types: [shardsFailed] :: ShardResult -> Int
- Database.V1.Bloodhound.Types: [shardsSuccessful] :: ShardResult -> Int
- Database.V1.Bloodhound.Types: [shards] :: SearchResult a -> ShardResult
- Database.V1.Bloodhound.Types: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
- Database.V1.Bloodhound.Types: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
- Database.V1.Bloodhound.Types: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
- Database.V1.Bloodhound.Types: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
- Database.V1.Bloodhound.Types: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
- Database.V1.Bloodhound.Types: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
- Database.V1.Bloodhound.Types: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
- Database.V1.Bloodhound.Types: [size] :: Search -> Size
- Database.V1.Bloodhound.Types: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Types: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Types: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
- Database.V1.Bloodhound.Types: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
- Database.V1.Bloodhound.Types: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
- Database.V1.Bloodhound.Types: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
- Database.V1.Bloodhound.Types: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
- Database.V1.Bloodhound.Types: [snapInfoName] :: SnapshotInfo -> SnapshotName
- Database.V1.Bloodhound.Types: [snapInfoShards] :: SnapshotInfo -> ShardResult
- Database.V1.Bloodhound.Types: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
- Database.V1.Bloodhound.Types: [snapInfoState] :: SnapshotInfo -> SnapshotState
- Database.V1.Bloodhound.Types: [snapPartial] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Types: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
- Database.V1.Bloodhound.Types: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Types: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Types: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Types: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
- Database.V1.Bloodhound.Types: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
- Database.V1.Bloodhound.Types: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Types: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
- Database.V1.Bloodhound.Types: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
- Database.V1.Bloodhound.Types: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
- Database.V1.Bloodhound.Types: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
- Database.V1.Bloodhound.Types: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
- Database.V1.Bloodhound.Types: [snapShardFailureReason] :: SnapshotShardFailure -> Text
- Database.V1.Bloodhound.Types: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
- Database.V1.Bloodhound.Types: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
- Database.V1.Bloodhound.Types: [snapshotName] :: SnapshotName -> Text
- Database.V1.Bloodhound.Types: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
- Database.V1.Bloodhound.Types: [snapshotRepoName] :: SnapshotRepoName -> Text
- Database.V1.Bloodhound.Types: [snapshotRepoType] :: SnapshotRepoType -> Text
- Database.V1.Bloodhound.Types: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
- Database.V1.Bloodhound.Types: [snvNodeName] :: SnapshotNodeVerification -> NodeName
- Database.V1.Bloodhound.Types: [sortBody] :: Search -> Maybe Sort
- Database.V1.Bloodhound.Types: [sortFieldName] :: DefaultSort -> FieldName
- Database.V1.Bloodhound.Types: [sortMode] :: DefaultSort -> Maybe SortMode
- Database.V1.Bloodhound.Types: [sortOrder] :: DefaultSort -> SortOrder
- Database.V1.Bloodhound.Types: [source] :: Search -> Maybe Source
- Database.V1.Bloodhound.Types: [srcIndex] :: IndexAlias -> IndexName
- Database.V1.Bloodhound.Types: [status] :: Status -> Int
- Database.V1.Bloodhound.Types: [suggestBody] :: Search -> Maybe Suggest
- Database.V1.Bloodhound.Types: [suggestName] :: Suggest -> Text
- Database.V1.Bloodhound.Types: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
- Database.V1.Bloodhound.Types: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
- Database.V1.Bloodhound.Types: [suggestOptionsScore] :: SuggestOptions -> Double
- Database.V1.Bloodhound.Types: [suggestOptionsText] :: SuggestOptions -> Text
- Database.V1.Bloodhound.Types: [suggestResponseLength] :: SuggestResponse -> Int
- Database.V1.Bloodhound.Types: [suggestResponseOffset] :: SuggestResponse -> Int
- Database.V1.Bloodhound.Types: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
- Database.V1.Bloodhound.Types: [suggestResponseText] :: SuggestResponse -> Text
- Database.V1.Bloodhound.Types: [suggestText] :: Suggest -> Text
- Database.V1.Bloodhound.Types: [suggestType] :: Suggest -> SuggestType
- Database.V1.Bloodhound.Types: [suggest] :: SearchResult a -> Maybe NamedSuggestionResponse
- Database.V1.Bloodhound.Types: [taFrom] :: TopHitsAggregation -> Maybe From
- Database.V1.Bloodhound.Types: [taSize] :: TopHitsAggregation -> Maybe Size
- Database.V1.Bloodhound.Types: [taSort] :: TopHitsAggregation -> Maybe Sort
- Database.V1.Bloodhound.Types: [tag] :: CommonHighlight -> Maybe HighlightTag
- Database.V1.Bloodhound.Types: [tagline] :: Status -> Text
- Database.V1.Bloodhound.Types: [tarHits] :: TopHitResult a -> (SearchHits a)
- Database.V1.Bloodhound.Types: [templateMappings] :: IndexTemplate -> [Value]
- Database.V1.Bloodhound.Types: [templatePattern] :: IndexTemplate -> TemplatePattern
- Database.V1.Bloodhound.Types: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
- Database.V1.Bloodhound.Types: [termAggs] :: TermsAggregation -> Maybe Aggregations
- Database.V1.Bloodhound.Types: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
- Database.V1.Bloodhound.Types: [termExclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V1.Bloodhound.Types: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
- Database.V1.Bloodhound.Types: [termField] :: Term -> Text
- Database.V1.Bloodhound.Types: [termInclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V1.Bloodhound.Types: [termKey] :: TermsResult -> BucketValue
- Database.V1.Bloodhound.Types: [termMinDocCount] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Types: [termOrder] :: TermsAggregation -> Maybe TermOrder
- Database.V1.Bloodhound.Types: [termShardSize] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Types: [termSize] :: TermsAggregation -> Maybe Int
- Database.V1.Bloodhound.Types: [termSortField] :: TermOrder -> Text
- Database.V1.Bloodhound.Types: [termSortOrder] :: TermOrder -> SortOrder
- Database.V1.Bloodhound.Types: [termValue] :: Term -> Text
- Database.V1.Bloodhound.Types: [term] :: TermsAggregation -> Either Text Text
- Database.V1.Bloodhound.Types: [termsAggs] :: TermsResult -> Maybe AggregationResults
- Database.V1.Bloodhound.Types: [termsDocCount] :: TermsResult -> Int
- Database.V1.Bloodhound.Types: [timedOut] :: SearchResult a -> Bool
- Database.V1.Bloodhound.Types: [took] :: SearchResult a -> Int
- Database.V1.Bloodhound.Types: [topLeft] :: GeoBoundingBox -> LatLon
- Database.V1.Bloodhound.Types: [trackSortScores] :: Search -> TrackSortScores
- Database.V1.Bloodhound.Types: [typeName] :: Mapping -> TypeName
- Database.V1.Bloodhound.Types: [unBH] :: BH m a -> ReaderT BHEnv m a
- Database.V1.Bloodhound.Types: [unMaybeNA] :: MaybeNA a -> Maybe a
- Database.V1.Bloodhound.Types: [unit] :: Distance -> DistanceUnit
- Database.V1.Bloodhound.Types: [versionNumber] :: VersionNumber -> Version
- Database.V1.Bloodhound.Types: [version] :: Status -> Version
- Database.V1.Bloodhound.Types: aggs :: BucketAggregation a => a -> Maybe AggregationResults
- Database.V1.Bloodhound.Types: bhManager :: BHEnv -> Manager
- Database.V1.Bloodhound.Types: bhRequestHook :: BHEnv -> Request -> IO Request
- Database.V1.Bloodhound.Types: bhServer :: BHEnv -> Server
- Database.V1.Bloodhound.Types: class BucketAggregation a
- Database.V1.Bloodhound.Types: class (Functor m, Applicative m, MonadIO m) => MonadBH m
- Database.V1.Bloodhound.Types: class Monoid a
- Database.V1.Bloodhound.Types: class Monoid a => Seminearring a
- Database.V1.Bloodhound.Types: class SnapshotRepo r
- Database.V1.Bloodhound.Types: class ToJSON a
- Database.V1.Bloodhound.Types: data Aggregation
- Database.V1.Bloodhound.Types: data AliasRouting
- Database.V1.Bloodhound.Types: data AllocationPolicy
- Database.V1.Bloodhound.Types: data BHEnv
- Database.V1.Bloodhound.Types: data BoolMatch
- Database.V1.Bloodhound.Types: data BoolQuery
- Database.V1.Bloodhound.Types: data BooleanOperator
- Database.V1.Bloodhound.Types: data BoostingQuery
- Database.V1.Bloodhound.Types: data BoundTransportAddress
- Database.V1.Bloodhound.Types: data Bucket a
- Database.V1.Bloodhound.Types: data BucketValue
- Database.V1.Bloodhound.Types: data BulkOperation
- Database.V1.Bloodhound.Types: data CPUInfo
- Database.V1.Bloodhound.Types: data CardinalityAggregation
- Database.V1.Bloodhound.Types: data CollectionMode
- Database.V1.Bloodhound.Types: data CommonHighlight
- Database.V1.Bloodhound.Types: data CommonMinimumMatch
- Database.V1.Bloodhound.Types: data CommonTermsQuery
- Database.V1.Bloodhound.Types: data CompoundFormat
- Database.V1.Bloodhound.Types: data DateHistogramAggregation
- Database.V1.Bloodhound.Types: data DateHistogramResult
- Database.V1.Bloodhound.Types: data DateMathAnchor
- Database.V1.Bloodhound.Types: data DateMathExpr
- Database.V1.Bloodhound.Types: data DateMathModifier
- Database.V1.Bloodhound.Types: data DateMathUnit
- Database.V1.Bloodhound.Types: data DateRangeAggRange
- Database.V1.Bloodhound.Types: data DateRangeAggregation
- Database.V1.Bloodhound.Types: data DateRangeResult
- Database.V1.Bloodhound.Types: data DefaultSort
- Database.V1.Bloodhound.Types: data DirectGeneratorSuggestModeTypes
- Database.V1.Bloodhound.Types: data DirectGenerators
- Database.V1.Bloodhound.Types: data DisMaxQuery
- Database.V1.Bloodhound.Types: data Distance
- Database.V1.Bloodhound.Types: data DistanceRange
- Database.V1.Bloodhound.Types: data DistanceType
- Database.V1.Bloodhound.Types: data DistanceUnit
- Database.V1.Bloodhound.Types: data DocVersion
- Database.V1.Bloodhound.Types: data EsError
- Database.V1.Bloodhound.Types: data EsProtocolException
- Database.V1.Bloodhound.Types: data EsResult a
- Database.V1.Bloodhound.Types: data EsResultFound a
- Database.V1.Bloodhound.Types: data Exclude
- Database.V1.Bloodhound.Types: data ExecutionHint
- Database.V1.Bloodhound.Types: data FSType
- Database.V1.Bloodhound.Types: data FastVectorHighlight
- Database.V1.Bloodhound.Types: data FieldDefinition
- Database.V1.Bloodhound.Types: data FieldHighlight
- Database.V1.Bloodhound.Types: data FieldOrFields
- Database.V1.Bloodhound.Types: data Filter
- Database.V1.Bloodhound.Types: data FilterAggregation
- Database.V1.Bloodhound.Types: data FilteredQuery
- Database.V1.Bloodhound.Types: data FsSnapshotRepo
- Database.V1.Bloodhound.Types: data FuzzyLikeFieldQuery
- Database.V1.Bloodhound.Types: data FuzzyLikeThisQuery
- Database.V1.Bloodhound.Types: data FuzzyQuery
- Database.V1.Bloodhound.Types: data GenericSnapshotRepo
- Database.V1.Bloodhound.Types: data GeoBoundingBox
- Database.V1.Bloodhound.Types: data GeoBoundingBoxConstraint
- Database.V1.Bloodhound.Types: data GeoFilterType
- Database.V1.Bloodhound.Types: data GeoPoint
- Database.V1.Bloodhound.Types: data HasChildQuery
- Database.V1.Bloodhound.Types: data HasParentQuery
- Database.V1.Bloodhound.Types: data HighlightEncoder
- Database.V1.Bloodhound.Types: data HighlightSettings
- Database.V1.Bloodhound.Types: data HighlightTag
- Database.V1.Bloodhound.Types: data Highlights
- Database.V1.Bloodhound.Types: data Hit a
- Database.V1.Bloodhound.Types: data Include
- Database.V1.Bloodhound.Types: data IndexAlias
- Database.V1.Bloodhound.Types: data IndexAliasAction
- Database.V1.Bloodhound.Types: data IndexAliasCreate
- Database.V1.Bloodhound.Types: data IndexAliasSummary
- Database.V1.Bloodhound.Types: data IndexDocumentSettings
- Database.V1.Bloodhound.Types: data IndexOptimizationSettings
- Database.V1.Bloodhound.Types: data IndexSelection
- Database.V1.Bloodhound.Types: data IndexSettings
- Database.V1.Bloodhound.Types: data IndexSettingsSummary
- Database.V1.Bloodhound.Types: data IndexTemplate
- Database.V1.Bloodhound.Types: data IndicesQuery
- Database.V1.Bloodhound.Types: data InitialShardCount
- Database.V1.Bloodhound.Types: data Interval
- Database.V1.Bloodhound.Types: data JVMBufferPoolStats
- Database.V1.Bloodhound.Types: data JVMGCStats
- Database.V1.Bloodhound.Types: data JVMMemoryInfo
- Database.V1.Bloodhound.Types: data JVMPoolStats
- Database.V1.Bloodhound.Types: data LatLon
- Database.V1.Bloodhound.Types: data LoadAvgs
- Database.V1.Bloodhound.Types: data Mapping
- Database.V1.Bloodhound.Types: data MappingField
- Database.V1.Bloodhound.Types: data MatchQuery
- Database.V1.Bloodhound.Types: data MatchQueryType
- Database.V1.Bloodhound.Types: data MinimumMatchHighLow
- Database.V1.Bloodhound.Types: data Missing
- Database.V1.Bloodhound.Types: data MissingAggregation
- Database.V1.Bloodhound.Types: data MissingResult
- Database.V1.Bloodhound.Types: data MoreLikeThisFieldQuery
- Database.V1.Bloodhound.Types: data MoreLikeThisQuery
- Database.V1.Bloodhound.Types: data MultiMatchQuery
- Database.V1.Bloodhound.Types: data MultiMatchQueryType
- Database.V1.Bloodhound.Types: data NamedSuggestionResponse
- Database.V1.Bloodhound.Types: data NestedQuery
- Database.V1.Bloodhound.Types: data NodeAttrFilter
- Database.V1.Bloodhound.Types: data NodeBreakerStats
- Database.V1.Bloodhound.Types: data NodeBreakersStats
- Database.V1.Bloodhound.Types: data NodeDataPathStats
- Database.V1.Bloodhound.Types: data NodeFSStats
- Database.V1.Bloodhound.Types: data NodeFSTotalStats
- Database.V1.Bloodhound.Types: data NodeHTTPInfo
- Database.V1.Bloodhound.Types: data NodeHTTPStats
- Database.V1.Bloodhound.Types: data NodeIndicesStats
- Database.V1.Bloodhound.Types: data NodeInfo
- Database.V1.Bloodhound.Types: data NodeJVMInfo
- Database.V1.Bloodhound.Types: data NodeJVMStats
- Database.V1.Bloodhound.Types: data NodeNetworkInfo
- Database.V1.Bloodhound.Types: data NodeNetworkInterface
- Database.V1.Bloodhound.Types: data NodeNetworkStats
- Database.V1.Bloodhound.Types: data NodeOSInfo
- Database.V1.Bloodhound.Types: data NodeOSStats
- Database.V1.Bloodhound.Types: data NodePluginInfo
- Database.V1.Bloodhound.Types: data NodeProcessInfo
- Database.V1.Bloodhound.Types: data NodeProcessStats
- Database.V1.Bloodhound.Types: data NodeSelection
- Database.V1.Bloodhound.Types: data NodeSelector
- Database.V1.Bloodhound.Types: data NodeStats
- Database.V1.Bloodhound.Types: data NodeThreadPoolInfo
- Database.V1.Bloodhound.Types: data NodeThreadPoolStats
- Database.V1.Bloodhound.Types: data NodeThreadPoolsInfo
- Database.V1.Bloodhound.Types: data NodeThreadPoolsStats
- Database.V1.Bloodhound.Types: data NodeTransportInfo
- Database.V1.Bloodhound.Types: data NodeTransportStats
- Database.V1.Bloodhound.Types: data NodesInfo
- Database.V1.Bloodhound.Types: data NodesStats
- Database.V1.Bloodhound.Types: data NonPostings
- Database.V1.Bloodhound.Types: data OpenCloseIndex
- Database.V1.Bloodhound.Types: data OptimizeBbox
- Database.V1.Bloodhound.Types: data PatternOrPatterns
- Database.V1.Bloodhound.Types: data PhraseSuggester
- Database.V1.Bloodhound.Types: data PhraseSuggesterCollate
- Database.V1.Bloodhound.Types: data PhraseSuggesterHighlighter
- Database.V1.Bloodhound.Types: data PlainHighlight
- Database.V1.Bloodhound.Types: data PostingsHighlight
- Database.V1.Bloodhound.Types: data PrefixQuery
- Database.V1.Bloodhound.Types: data Query
- Database.V1.Bloodhound.Types: data QueryStringQuery
- Database.V1.Bloodhound.Types: data RRGroupRefNum
- Database.V1.Bloodhound.Types: data RangeExecution
- Database.V1.Bloodhound.Types: data RangeQuery
- Database.V1.Bloodhound.Types: data RangeValue
- Database.V1.Bloodhound.Types: data RegexpFlag
- Database.V1.Bloodhound.Types: data RegexpFlags
- Database.V1.Bloodhound.Types: data RegexpQuery
- Database.V1.Bloodhound.Types: data ReplicaBounds
- Database.V1.Bloodhound.Types: data RestoreIndexSettings
- Database.V1.Bloodhound.Types: data RestoreRenameToken
- Database.V1.Bloodhound.Types: data ScoreType
- Database.V1.Bloodhound.Types: data Search
- Database.V1.Bloodhound.Types: data SearchHits a
- Database.V1.Bloodhound.Types: data SearchResult a
- Database.V1.Bloodhound.Types: data SearchType
- Database.V1.Bloodhound.Types: data ShardResult
- Database.V1.Bloodhound.Types: data SimpleQueryFlag
- Database.V1.Bloodhound.Types: data SimpleQueryStringQuery
- Database.V1.Bloodhound.Types: data SnapshotCreateSettings
- Database.V1.Bloodhound.Types: data SnapshotInfo
- Database.V1.Bloodhound.Types: data SnapshotNodeVerification
- Database.V1.Bloodhound.Types: data SnapshotPattern
- Database.V1.Bloodhound.Types: data SnapshotRepoConversionError
- Database.V1.Bloodhound.Types: data SnapshotRepoPattern
- Database.V1.Bloodhound.Types: data SnapshotRepoSelection
- Database.V1.Bloodhound.Types: data SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Types: data SnapshotRestoreSettings
- Database.V1.Bloodhound.Types: data SnapshotSelection
- Database.V1.Bloodhound.Types: data SnapshotShardFailure
- Database.V1.Bloodhound.Types: data SnapshotState
- Database.V1.Bloodhound.Types: data SortMode
- Database.V1.Bloodhound.Types: data SortOrder
- Database.V1.Bloodhound.Types: data SortSpec
- Database.V1.Bloodhound.Types: data Source
- Database.V1.Bloodhound.Types: data Status
- Database.V1.Bloodhound.Types: data Suggest
- Database.V1.Bloodhound.Types: data SuggestOptions
- Database.V1.Bloodhound.Types: data SuggestResponse
- Database.V1.Bloodhound.Types: data SuggestType
- Database.V1.Bloodhound.Types: data TemplateQueryInline
- Database.V1.Bloodhound.Types: data Term
- Database.V1.Bloodhound.Types: data TermInclusion
- Database.V1.Bloodhound.Types: data TermOrder
- Database.V1.Bloodhound.Types: data TermsAggregation
- Database.V1.Bloodhound.Types: data TermsResult
- Database.V1.Bloodhound.Types: data ThreadPoolSize
- Database.V1.Bloodhound.Types: data ThreadPoolType
- Database.V1.Bloodhound.Types: data TimeInterval
- Database.V1.Bloodhound.Types: data TopHitResult a
- Database.V1.Bloodhound.Types: data TopHitsAggregation
- Database.V1.Bloodhound.Types: data UpdatableIndexSetting
- Database.V1.Bloodhound.Types: data ValueCountAggregation
- Database.V1.Bloodhound.Types: data Version
- Database.V1.Bloodhound.Types: data VersionControl
- Database.V1.Bloodhound.Types: data ZeroTermsQuery
- Database.V1.Bloodhound.Types: defaultCache :: Cache
- Database.V1.Bloodhound.Types: defaultIndexDocumentSettings :: IndexDocumentSettings
- Database.V1.Bloodhound.Types: defaultIndexOptimizationSettings :: IndexOptimizationSettings
- Database.V1.Bloodhound.Types: defaultIndexSettings :: IndexSettings
- Database.V1.Bloodhound.Types: defaultSnapshotCreateSettings :: SnapshotCreateSettings
- Database.V1.Bloodhound.Types: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
- Database.V1.Bloodhound.Types: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
- Database.V1.Bloodhound.Types: docCount :: BucketAggregation a => a -> Int
- Database.V1.Bloodhound.Types: docVersionNumber :: DocVersion -> Int
- Database.V1.Bloodhound.Types: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
- Database.V1.Bloodhound.Types: getBHEnv :: MonadBH m => m BHEnv
- Database.V1.Bloodhound.Types: gigabytes :: Int -> Bytes
- Database.V1.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V1.Bloodhound.Types.SearchResult a)
- Database.V1.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V1.Bloodhound.Types.Search
- Database.V1.Bloodhound.Types: instance GHC.Classes.Eq Database.V1.Bloodhound.Types.Search
- Database.V1.Bloodhound.Types: instance GHC.Classes.Eq Database.V1.Bloodhound.Types.SearchType
- Database.V1.Bloodhound.Types: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V1.Bloodhound.Types.SearchResult a)
- Database.V1.Bloodhound.Types: instance GHC.Show.Show Database.V1.Bloodhound.Types.Search
- Database.V1.Bloodhound.Types: instance GHC.Show.Show Database.V1.Bloodhound.Types.SearchType
- Database.V1.Bloodhound.Types: instance GHC.Show.Show a => GHC.Show.Show (Database.V1.Bloodhound.Types.SearchResult a)
- Database.V1.Bloodhound.Types: key :: BucketAggregation a => a -> BucketValue
- Database.V1.Bloodhound.Types: kilobytes :: Int -> Bytes
- Database.V1.Bloodhound.Types: mappend :: Monoid a => a -> a -> a
- Database.V1.Bloodhound.Types: mconcat :: Monoid a => [a] -> a
- Database.V1.Bloodhound.Types: megabytes :: Int -> Bytes
- Database.V1.Bloodhound.Types: mempty :: Monoid a => a
- Database.V1.Bloodhound.Types: mkAggregations :: Text -> Aggregation -> Aggregations
- Database.V1.Bloodhound.Types: mkBHEnv :: Server -> Manager -> BHEnv
- Database.V1.Bloodhound.Types: mkBoolQuery :: [Query] -> [Query] -> [Query] -> BoolQuery
- Database.V1.Bloodhound.Types: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
- Database.V1.Bloodhound.Types: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
- Database.V1.Bloodhound.Types: mkDirectGenerators :: FieldName -> DirectGenerators
- Database.V1.Bloodhound.Types: mkDocVersion :: Int -> Maybe DocVersion
- Database.V1.Bloodhound.Types: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
- Database.V1.Bloodhound.Types: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
- Database.V1.Bloodhound.Types: mkPhraseSuggester :: FieldName -> PhraseSuggester
- Database.V1.Bloodhound.Types: mkQueryStringQuery :: QueryString -> QueryStringQuery
- Database.V1.Bloodhound.Types: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
- Database.V1.Bloodhound.Types: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
- Database.V1.Bloodhound.Types: mkSort :: FieldName -> SortOrder -> DefaultSort
- Database.V1.Bloodhound.Types: mkTermsAggregation :: Text -> TermsAggregation
- Database.V1.Bloodhound.Types: mkTermsScriptAggregation :: Text -> TermsAggregation
- Database.V1.Bloodhound.Types: newtype AllowLeadingWildcard
- Database.V1.Bloodhound.Types: newtype AnalyzeWildcard
- Database.V1.Bloodhound.Types: newtype Analyzer
- Database.V1.Bloodhound.Types: newtype BH m a
- Database.V1.Bloodhound.Types: newtype Boost
- Database.V1.Bloodhound.Types: newtype BoostTerms
- Database.V1.Bloodhound.Types: newtype BuildHash
- Database.V1.Bloodhound.Types: newtype Bytes
- Database.V1.Bloodhound.Types: newtype CacheKey
- Database.V1.Bloodhound.Types: newtype CacheName
- Database.V1.Bloodhound.Types: newtype ClusterName
- Database.V1.Bloodhound.Types: newtype CutoffFrequency
- Database.V1.Bloodhound.Types: newtype DisableCoord
- Database.V1.Bloodhound.Types: newtype DocId
- Database.V1.Bloodhound.Types: newtype DocumentParent
- Database.V1.Bloodhound.Types: newtype EnablePositionIncrements
- Database.V1.Bloodhound.Types: newtype EsAddress
- Database.V1.Bloodhound.Types: newtype EsPassword
- Database.V1.Bloodhound.Types: newtype EsUsername
- Database.V1.Bloodhound.Types: newtype Existence
- Database.V1.Bloodhound.Types: newtype ExternalDocVersion
- Database.V1.Bloodhound.Types: newtype FieldName
- Database.V1.Bloodhound.Types: newtype From
- Database.V1.Bloodhound.Types: newtype FullNodeId
- Database.V1.Bloodhound.Types: newtype Fuzziness
- Database.V1.Bloodhound.Types: newtype GeneratePhraseQueries
- Database.V1.Bloodhound.Types: newtype GenericSnapshotRepoSettings
- Database.V1.Bloodhound.Types: newtype GreaterThan
- Database.V1.Bloodhound.Types: newtype GreaterThanD
- Database.V1.Bloodhound.Types: newtype GreaterThanEq
- Database.V1.Bloodhound.Types: newtype GreaterThanEqD
- Database.V1.Bloodhound.Types: newtype IgnoreTermFrequency
- Database.V1.Bloodhound.Types: newtype IndexAliasName
- Database.V1.Bloodhound.Types: newtype IndexAliasRouting
- Database.V1.Bloodhound.Types: newtype IndexAliasesSummary
- Database.V1.Bloodhound.Types: newtype IndexName
- Database.V1.Bloodhound.Types: newtype JVMGCCollector
- Database.V1.Bloodhound.Types: newtype JVMMemoryPool
- Database.V1.Bloodhound.Types: newtype Lenient
- Database.V1.Bloodhound.Types: newtype LessThan
- Database.V1.Bloodhound.Types: newtype LessThanD
- Database.V1.Bloodhound.Types: newtype LessThanEq
- Database.V1.Bloodhound.Types: newtype LessThanEqD
- Database.V1.Bloodhound.Types: newtype Locale
- Database.V1.Bloodhound.Types: newtype LowercaseExpanded
- Database.V1.Bloodhound.Types: newtype MacAddress
- Database.V1.Bloodhound.Types: newtype MappingName
- Database.V1.Bloodhound.Types: newtype MaxDocFrequency
- Database.V1.Bloodhound.Types: newtype MaxExpansions
- Database.V1.Bloodhound.Types: newtype MaxQueryTerms
- Database.V1.Bloodhound.Types: newtype MaxWordLength
- Database.V1.Bloodhound.Types: newtype MaybeNA a
- Database.V1.Bloodhound.Types: newtype MinDocFrequency
- Database.V1.Bloodhound.Types: newtype MinWordLength
- Database.V1.Bloodhound.Types: newtype MinimumMatch
- Database.V1.Bloodhound.Types: newtype MinimumTermFrequency
- Database.V1.Bloodhound.Types: newtype NetworkInterfaceName
- Database.V1.Bloodhound.Types: newtype NodeAttrName
- Database.V1.Bloodhound.Types: newtype NodeName
- Database.V1.Bloodhound.Types: newtype NullValue
- Database.V1.Bloodhound.Types: newtype PID
- Database.V1.Bloodhound.Types: newtype Pattern
- Database.V1.Bloodhound.Types: newtype PercentMatch
- Database.V1.Bloodhound.Types: newtype PhraseSlop
- Database.V1.Bloodhound.Types: newtype PluginName
- Database.V1.Bloodhound.Types: newtype PrefixLength
- Database.V1.Bloodhound.Types: newtype QueryPath
- Database.V1.Bloodhound.Types: newtype QueryString
- Database.V1.Bloodhound.Types: newtype Regexp
- Database.V1.Bloodhound.Types: newtype ReplicaCount
- Database.V1.Bloodhound.Types: newtype RestoreRenamePattern
- Database.V1.Bloodhound.Types: newtype RoutingValue
- Database.V1.Bloodhound.Types: newtype Script
- Database.V1.Bloodhound.Types: newtype ScrollId
- Database.V1.Bloodhound.Types: newtype SearchAliasRouting
- Database.V1.Bloodhound.Types: newtype Server
- Database.V1.Bloodhound.Types: newtype ShardCount
- Database.V1.Bloodhound.Types: newtype ShardId
- Database.V1.Bloodhound.Types: newtype Size
- Database.V1.Bloodhound.Types: newtype SnapshotName
- Database.V1.Bloodhound.Types: newtype SnapshotRepoName
- Database.V1.Bloodhound.Types: newtype SnapshotRepoType
- Database.V1.Bloodhound.Types: newtype SnapshotVerification
- Database.V1.Bloodhound.Types: newtype StopWord
- Database.V1.Bloodhound.Types: newtype TemplateName
- Database.V1.Bloodhound.Types: newtype TemplatePattern
- Database.V1.Bloodhound.Types: newtype TemplateQueryKeyValuePairs
- Database.V1.Bloodhound.Types: newtype Tiebreaker
- Database.V1.Bloodhound.Types: newtype TypeName
- Database.V1.Bloodhound.Types: newtype VersionNumber
- Database.V1.Bloodhound.Types: omitNulls :: [(Text, Value)] -> Value
- Database.V1.Bloodhound.Types: rrGroupRefNum :: RRGroupRefNum -> Int
- Database.V1.Bloodhound.Types: runBH :: BHEnv -> BH m a -> m a
- Database.V1.Bloodhound.Types: showText :: Show a => a -> Text
- Database.V1.Bloodhound.Types: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
- Database.V1.Bloodhound.Types: toEncoding :: ToJSON a => a -> Encoding
- Database.V1.Bloodhound.Types: toEncodingList :: ToJSON a => [a] -> Encoding
- Database.V1.Bloodhound.Types: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
- Database.V1.Bloodhound.Types: toJSON :: ToJSON a => a -> Value
- Database.V1.Bloodhound.Types: toJSONList :: ToJSON a => [a] -> Value
- Database.V1.Bloodhound.Types: toMissing :: Text -> AggregationResults -> Maybe MissingResult
- Database.V1.Bloodhound.Types: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
- Database.V1.Bloodhound.Types: toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)
- Database.V1.Bloodhound.Types: type AggregationResults = Map Text Value
- Database.V1.Bloodhound.Types: type Aggregations = Map Text Aggregation
- Database.V1.Bloodhound.Types: type Cache = Bool
- Database.V1.Bloodhound.Types: type HitHighlight = Map Text [Text]
- Database.V1.Bloodhound.Types: type Method = Method
- Database.V1.Bloodhound.Types: type Reply = Response LByteString
- Database.V1.Bloodhound.Types: type Score = Maybe Double
- Database.V1.Bloodhound.Types: type Sort = [SortSpec]
- Database.V1.Bloodhound.Types: type TrackSortScores = Bool
- Database.V1.Bloodhound.Types: unpackId :: DocId -> Text
- Database.V1.Bloodhound.Types.Class: (<&&>) :: Seminearring a => a -> a -> a
- Database.V1.Bloodhound.Types.Class: (<||>) :: Seminearring a => a -> a -> a
- Database.V1.Bloodhound.Types.Class: class Monoid a => Seminearring a
- Database.V5.Bloodhound.Client: advanceScroll :: (FromJSON a, MonadBH m, MonadThrow m) => ScrollId -> NominalDiffTime -> m (Either EsError (SearchResult a))
- Database.V5.Bloodhound.Client: basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request
- Database.V5.Bloodhound.Client: bulk :: MonadBH m => Vector BulkOperation -> m Reply
- Database.V5.Bloodhound.Client: closeIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply
- Database.V5.Bloodhound.Client: createIndexWith :: MonadBH m => [UpdatableIndexSetting] -> Int -> IndexName -> m Reply
- Database.V5.Bloodhound.Client: createSnapshot :: (MonadBH m) => SnapshotRepoName -> SnapshotName -> SnapshotCreateSettings -> m Reply
- Database.V5.Bloodhound.Client: deleteDocument :: MonadBH m => IndexName -> MappingName -> DocId -> m Reply
- Database.V5.Bloodhound.Client: deleteIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: deleteIndexAlias :: MonadBH m => IndexAliasName -> m Reply
- Database.V5.Bloodhound.Client: deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply
- Database.V5.Bloodhound.Client: deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply
- Database.V5.Bloodhound.Client: deleteTemplate :: MonadBH m => TemplateName -> m Reply
- Database.V5.Bloodhound.Client: documentExists :: MonadBH m => IndexName -> MappingName -> Maybe DocumentParent -> DocId -> m Bool
- Database.V5.Bloodhound.Client: encodeBulkOperation :: BulkOperation -> ByteString
- Database.V5.Bloodhound.Client: encodeBulkOperations :: Vector BulkOperation -> ByteString
- Database.V5.Bloodhound.Client: flushIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: forceMergeIndex :: MonadBH m => IndexSelection -> ForceMergeIndexSettings -> m Reply
- Database.V5.Bloodhound.Client: getDocument :: MonadBH m => IndexName -> MappingName -> DocId -> m Reply
- Database.V5.Bloodhound.Client: getIndexAliases :: (MonadBH m, MonadThrow m) => m (Either EsError IndexAliasesSummary)
- Database.V5.Bloodhound.Client: getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName -> m (Either EsError IndexSettingsSummary)
- Database.V5.Bloodhound.Client: getInitialScroll :: (FromJSON a, MonadThrow m, MonadBH m) => IndexName -> MappingName -> Search -> m (Either EsError (SearchResult a))
- Database.V5.Bloodhound.Client: getInitialSortedScroll :: (FromJSON a, MonadThrow m, MonadBH m) => IndexName -> MappingName -> Search -> m (Either EsError (SearchResult a))
- Database.V5.Bloodhound.Client: getNodesInfo :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesInfo)
- Database.V5.Bloodhound.Client: getNodesStats :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesStats)
- Database.V5.Bloodhound.Client: getSnapshotRepos :: (MonadBH m, MonadThrow m) => SnapshotRepoSelection -> m (Either EsError [GenericSnapshotRepo])
- Database.V5.Bloodhound.Client: getSnapshots :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> SnapshotSelection -> m (Either EsError [SnapshotInfo])
- Database.V5.Bloodhound.Client: getStatus :: MonadBH m => m (Maybe Status)
- Database.V5.Bloodhound.Client: indexDocument :: (ToJSON doc, MonadBH m) => IndexName -> MappingName -> IndexDocumentSettings -> doc -> DocId -> m Reply
- Database.V5.Bloodhound.Client: indexExists :: MonadBH m => IndexName -> m Bool
- Database.V5.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Client.GSRs
- Database.V5.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Client.SIs
- Database.V5.Bloodhound.Client: isCreated :: Reply -> Bool
- Database.V5.Bloodhound.Client: isSuccess :: Reply -> Bool
- Database.V5.Bloodhound.Client: isVersionConflict :: Reply -> Bool
- Database.V5.Bloodhound.Client: listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]
- Database.V5.Bloodhound.Client: mkAggregateSearch :: Maybe Query -> Aggregations -> Search
- Database.V5.Bloodhound.Client: mkHighlightSearch :: Maybe Query -> Highlights -> Search
- Database.V5.Bloodhound.Client: mkReplicaCount :: Int -> Maybe ReplicaCount
- Database.V5.Bloodhound.Client: mkSearch :: Maybe Query -> Maybe Filter -> Search
- Database.V5.Bloodhound.Client: mkShardCount :: Int -> Maybe ShardCount
- Database.V5.Bloodhound.Client: openIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: pageSearch :: From -> Size -> Search -> Search
- Database.V5.Bloodhound.Client: parseEsResponse :: (MonadThrow m, FromJSON a) => Reply -> m (Either EsError a)
- Database.V5.Bloodhound.Client: putMapping :: (MonadBH m, ToJSON a) => IndexName -> MappingName -> a -> m Reply
- Database.V5.Bloodhound.Client: putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply
- Database.V5.Bloodhound.Client: refreshIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: restoreSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> SnapshotRestoreSettings -> m Reply
- Database.V5.Bloodhound.Client: scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName -> MappingName -> Search -> m [Hit a]
- Database.V5.Bloodhound.Client: searchAll :: MonadBH m => Search -> m Reply
- Database.V5.Bloodhound.Client: searchByIndex :: MonadBH m => IndexName -> Search -> m Reply
- Database.V5.Bloodhound.Client: searchByIndices :: MonadBH m => NonEmpty IndexName -> Search -> m Reply
- Database.V5.Bloodhound.Client: searchByType :: MonadBH m => IndexName -> MappingName -> Search -> m Reply
- Database.V5.Bloodhound.Client: templateExists :: MonadBH m => TemplateName -> m Bool
- Database.V5.Bloodhound.Client: updateDocument :: (ToJSON patch, MonadBH m) => IndexName -> MappingName -> IndexDocumentSettings -> patch -> DocId -> m Reply
- Database.V5.Bloodhound.Client: updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply
- Database.V5.Bloodhound.Client: updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply
- Database.V5.Bloodhound.Client: updateSnapshotRepo :: (MonadBH m, SnapshotRepo repo) => SnapshotRepoUpdateSettings -> repo -> m Reply
- Database.V5.Bloodhound.Client: verifySnapshotRepo :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> m (Either EsError SnapshotVerification)
- Database.V5.Bloodhound.Client: waitForYellowIndex :: MonadBH m => IndexName -> m Reply
- Database.V5.Bloodhound.Client: withBH :: ManagerSettings -> Server -> BH IO a -> IO a
- Database.V5.Bloodhound.Internal.Aggregation: AddTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: Basic :: StatsType
- Database.V5.Bloodhound.Internal.Aggregation: BoolValue :: Bool -> BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: BreadthFirst :: CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: Bucket :: [a] -> Bucket a
- Database.V5.Bloodhound.Internal.Aggregation: CardinalityAgg :: CardinalityAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
- Database.V5.Bloodhound.Internal.Aggregation: DMDate :: Day -> DateMathAnchor
- Database.V5.Bloodhound.Internal.Aggregation: DMDay :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMHour :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMMinute :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMMonth :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMNow :: DateMathAnchor
- Database.V5.Bloodhound.Internal.Aggregation: DMSecond :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMWeek :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DMYear :: DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
- Database.V5.Bloodhound.Internal.Aggregation: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
- Database.V5.Bloodhound.Internal.Aggregation: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeAgg :: DateRangeAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: DateRangeTo :: DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: DepthFirst :: CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: Extended :: StatsType
- Database.V5.Bloodhound.Internal.Aggregation: FieldValueCount :: FieldName -> ValueCountAggregation
- Database.V5.Bloodhound.Internal.Aggregation: FilterAgg :: FilterAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
- Database.V5.Bloodhound.Internal.Aggregation: GlobalOrdinals :: ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: GlobalOrdinalsHash :: ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: GlobalOrdinalsLowCardinality :: ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: Hit :: IndexName -> MappingName -> DocId -> Score -> Maybe a -> Maybe HitFields -> Maybe HitHighlight -> Hit a
- Database.V5.Bloodhound.Internal.Aggregation: Map :: ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: MissingAgg :: MissingAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: MissingAggregation :: Text -> MissingAggregation
- Database.V5.Bloodhound.Internal.Aggregation: MissingResult :: Int -> MissingResult
- Database.V5.Bloodhound.Internal.Aggregation: Ordinals :: ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: RoundDownTo :: DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: ScientificValue :: Scientific -> BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: ScriptValueCount :: Script -> ValueCountAggregation
- Database.V5.Bloodhound.Internal.Aggregation: SearchHits :: Int -> Score -> [Hit a] -> SearchHits a
- Database.V5.Bloodhound.Internal.Aggregation: StatisticsAggregation :: StatsType -> FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: StatsAgg :: StatisticsAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: TermInclusion :: Text -> TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: TermOrder :: Text -> SortOrder -> TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: TermPattern :: Text -> Text -> TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: TermsAgg :: TermsAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: TextValue :: Text -> BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: TopHitResult :: (SearchHits a) -> TopHitResult a
- Database.V5.Bloodhound.Internal.Aggregation: TopHitsAgg :: TopHitsAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: ValueCountAgg :: ValueCountAggregation -> Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: [buckets] :: Bucket a -> [a]
- Database.V5.Bloodhound.Internal.Aggregation: [cardinalityField] :: CardinalityAggregation -> FieldName
- Database.V5.Bloodhound.Internal.Aggregation: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Internal.Aggregation: [dateDocCount] :: DateHistogramResult -> Int
- Database.V5.Bloodhound.Internal.Aggregation: [dateField] :: DateHistogramAggregation -> FieldName
- Database.V5.Bloodhound.Internal.Aggregation: [dateFormat] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Internal.Aggregation: [dateInterval] :: DateHistogramAggregation -> Interval
- Database.V5.Bloodhound.Internal.Aggregation: [dateKeyStr] :: DateHistogramResult -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateKey] :: DateHistogramResult -> Int
- Database.V5.Bloodhound.Internal.Aggregation: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [datePostZone] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [datePreZone] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeDocCount] :: DateRangeResult -> Int
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeKey] :: DateRangeResult -> Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
- Database.V5.Bloodhound.Internal.Aggregation: [draField] :: DateRangeAggregation -> FieldName
- Database.V5.Bloodhound.Internal.Aggregation: [draFormat] :: DateRangeAggregation -> Maybe Text
- Database.V5.Bloodhound.Internal.Aggregation: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: [faAggs] :: FilterAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Internal.Aggregation: [faFilter] :: FilterAggregation -> Filter
- Database.V5.Bloodhound.Internal.Aggregation: [hitDocId] :: Hit a -> DocId
- Database.V5.Bloodhound.Internal.Aggregation: [hitFields] :: Hit a -> Maybe HitFields
- Database.V5.Bloodhound.Internal.Aggregation: [hitHighlight] :: Hit a -> Maybe HitHighlight
- Database.V5.Bloodhound.Internal.Aggregation: [hitIndex] :: Hit a -> IndexName
- Database.V5.Bloodhound.Internal.Aggregation: [hitScore] :: Hit a -> Score
- Database.V5.Bloodhound.Internal.Aggregation: [hitSource] :: Hit a -> Maybe a
- Database.V5.Bloodhound.Internal.Aggregation: [hitType] :: Hit a -> MappingName
- Database.V5.Bloodhound.Internal.Aggregation: [hitsTotal] :: SearchHits a -> Int
- Database.V5.Bloodhound.Internal.Aggregation: [hits] :: SearchHits a -> [Hit a]
- Database.V5.Bloodhound.Internal.Aggregation: [maField] :: MissingAggregation -> Text
- Database.V5.Bloodhound.Internal.Aggregation: [maxScore] :: SearchHits a -> Score
- Database.V5.Bloodhound.Internal.Aggregation: [missingDocCount] :: MissingResult -> Int
- Database.V5.Bloodhound.Internal.Aggregation: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
- Database.V5.Bloodhound.Internal.Aggregation: [statsField] :: StatisticsAggregation -> FieldName
- Database.V5.Bloodhound.Internal.Aggregation: [statsType] :: StatisticsAggregation -> StatsType
- Database.V5.Bloodhound.Internal.Aggregation: [taFrom] :: TopHitsAggregation -> Maybe From
- Database.V5.Bloodhound.Internal.Aggregation: [taSize] :: TopHitsAggregation -> Maybe Size
- Database.V5.Bloodhound.Internal.Aggregation: [taSort] :: TopHitsAggregation -> Maybe Sort
- Database.V5.Bloodhound.Internal.Aggregation: [tarHits] :: TopHitResult a -> (SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: [termAggs] :: TermsAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Internal.Aggregation: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: [termExclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: [termInclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: [termKey] :: TermsResult -> BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: [termMinDocCount] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Internal.Aggregation: [termOrder] :: TermsAggregation -> Maybe TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: [termShardSize] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Internal.Aggregation: [termSize] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Internal.Aggregation: [termSortField] :: TermOrder -> Text
- Database.V5.Bloodhound.Internal.Aggregation: [termSortOrder] :: TermOrder -> SortOrder
- Database.V5.Bloodhound.Internal.Aggregation: [term] :: TermsAggregation -> Either Text Text
- Database.V5.Bloodhound.Internal.Aggregation: [termsAggs] :: TermsResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Internal.Aggregation: [termsDocCount] :: TermsResult -> Int
- Database.V5.Bloodhound.Internal.Aggregation: aggs :: BucketAggregation a => a -> Maybe AggregationResults
- Database.V5.Bloodhound.Internal.Aggregation: class BucketAggregation a
- Database.V5.Bloodhound.Internal.Aggregation: data Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: data Bucket a
- Database.V5.Bloodhound.Internal.Aggregation: data BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: data CardinalityAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: data DateHistogramAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data DateHistogramResult
- Database.V5.Bloodhound.Internal.Aggregation: data DateMathAnchor
- Database.V5.Bloodhound.Internal.Aggregation: data DateMathExpr
- Database.V5.Bloodhound.Internal.Aggregation: data DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: data DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: data DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: data DateRangeAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: data ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: data FilterAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data Hit a
- Database.V5.Bloodhound.Internal.Aggregation: data MissingAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data MissingResult
- Database.V5.Bloodhound.Internal.Aggregation: data SearchHits a
- Database.V5.Bloodhound.Internal.Aggregation: data StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data StatsType
- Database.V5.Bloodhound.Internal.Aggregation: data TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: data TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: data TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: data TopHitResult a
- Database.V5.Bloodhound.Internal.Aggregation: data TopHitsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: data ValueCountAggregation
- Database.V5.Bloodhound.Internal.Aggregation: docCount :: BucketAggregation a => a -> Int
- Database.V5.Bloodhound.Internal.Aggregation: emptyAggregations :: Aggregations
- Database.V5.Bloodhound.Internal.Aggregation: getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Aggregation.BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Aggregation.MissingResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Aggregation.TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Aggregation.Bucket a)
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Aggregation.Hit a)
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Aggregation.TopHitResult a)
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Aggregation.TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: instance Data.Semigroup.Semigroup (Database.V5.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: instance Database.V5.Bloodhound.Internal.Aggregation.BucketAggregation Database.V5.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Database.V5.Bloodhound.Internal.Aggregation.BucketAggregation Database.V5.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: instance Database.V5.Bloodhound.Internal.Aggregation.BucketAggregation Database.V5.Bloodhound.Internal.Aggregation.TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Base.Monoid (Database.V5.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.CardinalityAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateHistogramAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateMathAnchor
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.FilterAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.MissingAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.StatsType
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.TopHitsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Aggregation.ValueCountAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Internal.Aggregation.Hit a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Aggregation.BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Aggregation.TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Read.Read a => GHC.Read.Read (Database.V5.Bloodhound.Internal.Aggregation.Bucket a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.Aggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.CardinalityAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.CollectionMode
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateHistogramAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateHistogramResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateMathAnchor
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateMathExpr
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateMathModifier
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateMathUnit
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggRange
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateRangeAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.DateRangeResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.ExecutionHint
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.FilterAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.MissingAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.MissingResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.StatsType
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.TermInclusion
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.TermOrder
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.TermsResult
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.TopHitsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Aggregation.ValueCountAggregation
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Aggregation.Bucket a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Aggregation.Hit a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Aggregation.SearchHits a)
- Database.V5.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Aggregation.TopHitResult a)
- Database.V5.Bloodhound.Internal.Aggregation: key :: BucketAggregation a => a -> BucketValue
- Database.V5.Bloodhound.Internal.Aggregation: mkAggregations :: Text -> Aggregation -> Aggregations
- Database.V5.Bloodhound.Internal.Aggregation: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
- Database.V5.Bloodhound.Internal.Aggregation: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
- Database.V5.Bloodhound.Internal.Aggregation: mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: mkStatsAggregation :: FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: mkTermsAggregation :: Text -> TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: mkTermsScriptAggregation :: Text -> TermsAggregation
- Database.V5.Bloodhound.Internal.Aggregation: toAggResult :: (FromJSON a) => Text -> AggregationResults -> Maybe a
- Database.V5.Bloodhound.Internal.Aggregation: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
- Database.V5.Bloodhound.Internal.Aggregation: toMissing :: Text -> AggregationResults -> Maybe MissingResult
- Database.V5.Bloodhound.Internal.Aggregation: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
- Database.V5.Bloodhound.Internal.Aggregation: toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)
- Database.V5.Bloodhound.Internal.Aggregation: type AggregationResults = Map Text Value
- Database.V5.Bloodhound.Internal.Aggregation: type Aggregations = Map Text Aggregation
- Database.V5.Bloodhound.Internal.Analysis: Analysis :: Map Text AnalyzerDefinition -> Map Text TokenizerDefinition -> Map Text TokenFilterDefinition -> Map Text CharFilterDefinition -> Analysis
- Database.V5.Bloodhound.Internal.Analysis: AnalyzerDefinition :: Maybe Tokenizer -> [TokenFilter] -> [CharFilter] -> AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: Arabic :: Language
- Database.V5.Bloodhound.Internal.Analysis: Armenian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Basque :: Language
- Database.V5.Bloodhound.Internal.Analysis: Bengali :: Language
- Database.V5.Bloodhound.Internal.Analysis: Brazilian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Bulgarian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Catalan :: Language
- Database.V5.Bloodhound.Internal.Analysis: CharFilterDefinitionMapping :: (Map Text Text) -> CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: CharFilterDefinitionPatternReplace :: Text -> Text -> Maybe Text -> CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: Cjk :: Language
- Database.V5.Bloodhound.Internal.Analysis: Czech :: Language
- Database.V5.Bloodhound.Internal.Analysis: Danish :: Language
- Database.V5.Bloodhound.Internal.Analysis: Dutch :: Language
- Database.V5.Bloodhound.Internal.Analysis: English :: Language
- Database.V5.Bloodhound.Internal.Analysis: Finnish :: Language
- Database.V5.Bloodhound.Internal.Analysis: French :: Language
- Database.V5.Bloodhound.Internal.Analysis: Galician :: Language
- Database.V5.Bloodhound.Internal.Analysis: German :: Language
- Database.V5.Bloodhound.Internal.Analysis: German2 :: Language
- Database.V5.Bloodhound.Internal.Analysis: Greek :: Language
- Database.V5.Bloodhound.Internal.Analysis: Hindi :: Language
- Database.V5.Bloodhound.Internal.Analysis: Hungarian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Indonesian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Irish :: Language
- Database.V5.Bloodhound.Internal.Analysis: Italian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Kp :: Language
- Database.V5.Bloodhound.Internal.Analysis: Latvian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Lithuanian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Lovins :: Language
- Database.V5.Bloodhound.Internal.Analysis: Ngram :: Int -> Int -> [TokenChar] -> Ngram
- Database.V5.Bloodhound.Internal.Analysis: Norwegian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Persian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Porter :: Language
- Database.V5.Bloodhound.Internal.Analysis: Portuguese :: Language
- Database.V5.Bloodhound.Internal.Analysis: Romanian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Russian :: Language
- Database.V5.Bloodhound.Internal.Analysis: Shingle :: Int -> Int -> Bool -> Bool -> Text -> Text -> Shingle
- Database.V5.Bloodhound.Internal.Analysis: Sorani :: Language
- Database.V5.Bloodhound.Internal.Analysis: Spanish :: Language
- Database.V5.Bloodhound.Internal.Analysis: Swedish :: Language
- Database.V5.Bloodhound.Internal.Analysis: Thai :: Language
- Database.V5.Bloodhound.Internal.Analysis: TokenDigit :: TokenChar
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionApostrophe :: TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionLowercase :: (Maybe Language) -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionReverse :: TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionShingle :: Shingle -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionSnowball :: Language -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionStemmer :: Language -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionStop :: (Either Language [StopWord]) -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenFilterDefinitionUppercase :: (Maybe Language) -> TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: TokenLetter :: TokenChar
- Database.V5.Bloodhound.Internal.Analysis: TokenPunctuation :: TokenChar
- Database.V5.Bloodhound.Internal.Analysis: TokenSymbol :: TokenChar
- Database.V5.Bloodhound.Internal.Analysis: TokenWhitespace :: TokenChar
- Database.V5.Bloodhound.Internal.Analysis: Tokenizer :: Text -> Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: TokenizerDefinitionNgram :: Ngram -> TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: Turkish :: Language
- Database.V5.Bloodhound.Internal.Analysis: [analysisAnalyzer] :: Analysis -> Map Text AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: [analysisCharFilter] :: Analysis -> Map Text CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: [analysisTokenFilter] :: Analysis -> Map Text TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: [analysisTokenizer] :: Analysis -> Map Text TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: [analyzerDefinitionCharFilter] :: AnalyzerDefinition -> [CharFilter]
- Database.V5.Bloodhound.Internal.Analysis: [analyzerDefinitionFilter] :: AnalyzerDefinition -> [TokenFilter]
- Database.V5.Bloodhound.Internal.Analysis: [analyzerDefinitionTokenizer] :: AnalyzerDefinition -> Maybe Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplaceFlags] :: CharFilterDefinition -> Maybe Text
- Database.V5.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplacePattern] :: CharFilterDefinition -> Text
- Database.V5.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplaceReplacement] :: CharFilterDefinition -> Text
- Database.V5.Bloodhound.Internal.Analysis: [ngramMaxGram] :: Ngram -> Int
- Database.V5.Bloodhound.Internal.Analysis: [ngramMinGram] :: Ngram -> Int
- Database.V5.Bloodhound.Internal.Analysis: [ngramTokenChars] :: Ngram -> [TokenChar]
- Database.V5.Bloodhound.Internal.Analysis: [shingleFillerToken] :: Shingle -> Text
- Database.V5.Bloodhound.Internal.Analysis: [shingleMaxSize] :: Shingle -> Int
- Database.V5.Bloodhound.Internal.Analysis: [shingleMinSize] :: Shingle -> Int
- Database.V5.Bloodhound.Internal.Analysis: [shingleOutputUnigramsIfNoShingles] :: Shingle -> Bool
- Database.V5.Bloodhound.Internal.Analysis: [shingleOutputUnigrams] :: Shingle -> Bool
- Database.V5.Bloodhound.Internal.Analysis: [shingleTokenSeparator] :: Shingle -> Text
- Database.V5.Bloodhound.Internal.Analysis: data Analysis
- Database.V5.Bloodhound.Internal.Analysis: data AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: data CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: data Language
- Database.V5.Bloodhound.Internal.Analysis: data Ngram
- Database.V5.Bloodhound.Internal.Analysis: data Shingle
- Database.V5.Bloodhound.Internal.Analysis: data TokenChar
- Database.V5.Bloodhound.Internal.Analysis: data TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.Analysis
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.Language
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.TokenChar
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Analysis.TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.Analysis
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.Language
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.TokenChar
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Analysis.TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.Analysis
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.Language
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.Ngram
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.Shingle
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.TokenChar
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Analysis.TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.Analysis
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.AnalyzerDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.CharFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.Language
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.Ngram
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.Shingle
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.TokenChar
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.TokenFilterDefinition
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Analysis.TokenizerDefinition
- Database.V5.Bloodhound.Internal.Analysis: languageFromText :: Text -> Maybe Language
- Database.V5.Bloodhound.Internal.Analysis: languageToText :: Language -> Text
- Database.V5.Bloodhound.Internal.Analysis: newtype Tokenizer
- Database.V5.Bloodhound.Internal.Analysis: newtype TokenizerDefinition
- Database.V5.Bloodhound.Internal.Client: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: AllAliasRouting :: RoutingValue -> AliasRouting
- Database.V5.Bloodhound.Internal.Client: AllIndexes :: IndexSelection
- Database.V5.Bloodhound.Internal.Client: AllNodes :: NodeSelection
- Database.V5.Bloodhound.Internal.Client: AllSnapshotRepos :: SnapshotRepoSelection
- Database.V5.Bloodhound.Internal.Client: AllSnapshots :: SnapshotSelection
- Database.V5.Bloodhound.Internal.Client: AllocAll :: AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: AllocNewPrimaries :: AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: AllocNone :: AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: AllocPrimaries :: AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: AnalysisSetting :: Analysis -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: BH :: ReaderT BHEnv m a -> BH m a
- Database.V5.Bloodhound.Internal.Client: BHEnv :: Server -> Manager -> (Request -> IO Request) -> BHEnv
- Database.V5.Bloodhound.Internal.Client: BlocksMetaData :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: BlocksRead :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: BlocksReadOnly :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: BlocksWrite :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: BoundTransportAddress :: EsAddress -> [EsAddress] -> BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: BuildHash :: Text -> BuildHash
- Database.V5.Bloodhound.Internal.Client: BulkCreate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkCreateEncoding :: IndexName -> MappingName -> DocId -> Encoding -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkDelete :: IndexName -> MappingName -> DocId -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkIndex :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkIndexAuto :: IndexName -> MappingName -> Value -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkIndexEncodingAuto :: IndexName -> MappingName -> Encoding -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: BulkUpdate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Internal.Client: ByteType :: FieldType
- Database.V5.Bloodhound.Internal.Client: Bytes :: Int -> Bytes
- Database.V5.Bloodhound.Internal.Client: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
- Database.V5.Bloodhound.Internal.Client: CacheFilterExpire :: (Maybe NominalDiffTime) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: CacheFilterMaxSize :: (Maybe Bytes) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: CloseIndex :: OpenCloseIndex
- Database.V5.Bloodhound.Internal.Client: ClusterName :: Text -> ClusterName
- Database.V5.Bloodhound.Internal.Client: CompoundFileFormat :: Bool -> CompoundFormat
- Database.V5.Bloodhound.Internal.Client: CompressionBest :: Compression
- Database.V5.Bloodhound.Internal.Client: CompressionDefault :: Compression
- Database.V5.Bloodhound.Internal.Client: CompressionSetting :: Compression -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: Day :: Interval
- Database.V5.Bloodhound.Internal.Client: Days :: TimeInterval
- Database.V5.Bloodhound.Internal.Client: DocVersion :: Int -> DocVersion
- Database.V5.Bloodhound.Internal.Client: DocumentParent :: DocId -> DocumentParent
- Database.V5.Bloodhound.Internal.Client: EsAddress :: Text -> EsAddress
- Database.V5.Bloodhound.Internal.Client: EsError :: Int -> Text -> EsError
- Database.V5.Bloodhound.Internal.Client: EsPassword :: Text -> EsPassword
- Database.V5.Bloodhound.Internal.Client: EsProtocolException :: !Text -> !LByteString -> EsProtocolException
- Database.V5.Bloodhound.Internal.Client: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
- Database.V5.Bloodhound.Internal.Client: EsResultFound :: DocVersion -> a -> EsResultFound a
- Database.V5.Bloodhound.Internal.Client: EsUsername :: Text -> EsUsername
- Database.V5.Bloodhound.Internal.Client: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
- Database.V5.Bloodhound.Internal.Client: ExactSnap :: SnapshotName -> SnapshotPattern
- Database.V5.Bloodhound.Internal.Client: ExplicitShards :: Int -> InitialShardCount
- Database.V5.Bloodhound.Internal.Client: ExternalDocVersion :: DocVersion -> ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: ExternalGT :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Internal.Client: ExternalGTE :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Internal.Client: FSBuffered :: FSType
- Database.V5.Bloodhound.Internal.Client: FSSimple :: FSType
- Database.V5.Bloodhound.Internal.Client: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: FieldDefinition :: FieldType -> FieldDefinition
- Database.V5.Bloodhound.Internal.Client: FloatType :: FieldType
- Database.V5.Bloodhound.Internal.Client: ForceMergeIndexSettings :: Maybe Int -> Bool -> Bool -> ForceMergeIndexSettings
- Database.V5.Bloodhound.Internal.Client: ForceVersion :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Internal.Client: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: FullMinus1Shards :: InitialShardCount
- Database.V5.Bloodhound.Internal.Client: FullNodeId :: Text -> FullNodeId
- Database.V5.Bloodhound.Internal.Client: FullShards :: InitialShardCount
- Database.V5.Bloodhound.Internal.Client: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: GeoPointType :: FieldType
- Database.V5.Bloodhound.Internal.Client: GeoShapeType :: FieldType
- Database.V5.Bloodhound.Internal.Client: GranularAliasRouting :: (Maybe SearchAliasRouting) -> (Maybe IndexAliasRouting) -> AliasRouting
- Database.V5.Bloodhound.Internal.Client: Hour :: Interval
- Database.V5.Bloodhound.Internal.Client: Hours :: TimeInterval
- Database.V5.Bloodhound.Internal.Client: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
- Database.V5.Bloodhound.Internal.Client: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
- Database.V5.Bloodhound.Internal.Client: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
- Database.V5.Bloodhound.Internal.Client: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: IndexConcurrency :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: IndexDocumentSettings :: VersionControl -> Maybe DocumentParent -> IndexDocumentSettings
- Database.V5.Bloodhound.Internal.Client: IndexList :: (NonEmpty IndexName) -> IndexSelection
- Database.V5.Bloodhound.Internal.Client: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
- Database.V5.Bloodhound.Internal.Client: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
- Database.V5.Bloodhound.Internal.Client: IndexTemplate :: TemplatePattern -> Maybe IndexSettings -> [Value] -> IndexTemplate
- Database.V5.Bloodhound.Internal.Client: IntegerType :: FieldType
- Database.V5.Bloodhound.Internal.Client: InternalVersion :: DocVersion -> VersionControl
- Database.V5.Bloodhound.Internal.Client: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: JVMGCCollector :: Text -> JVMGCCollector
- Database.V5.Bloodhound.Internal.Client: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
- Database.V5.Bloodhound.Internal.Client: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: JVMMemoryPool :: Text -> JVMMemoryPool
- Database.V5.Bloodhound.Internal.Client: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: JVMVersion :: Text -> JVMVersion
- Database.V5.Bloodhound.Internal.Client: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
- Database.V5.Bloodhound.Internal.Client: LocalNode :: NodeSelection
- Database.V5.Bloodhound.Internal.Client: LongType :: FieldType
- Database.V5.Bloodhound.Internal.Client: MacAddress :: Text -> MacAddress
- Database.V5.Bloodhound.Internal.Client: Mapping :: TypeName -> [MappingField] -> Mapping
- Database.V5.Bloodhound.Internal.Client: MappingField :: FieldName -> FieldDefinition -> MappingField
- Database.V5.Bloodhound.Internal.Client: MappingTotalFieldsLimit :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
- Database.V5.Bloodhound.Internal.Client: Minute :: Interval
- Database.V5.Bloodhound.Internal.Client: Minutes :: TimeInterval
- Database.V5.Bloodhound.Internal.Client: Month :: Interval
- Database.V5.Bloodhound.Internal.Client: NetworkInterfaceName :: Text -> NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: NoVersionControl :: VersionControl
- Database.V5.Bloodhound.Internal.Client: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
- Database.V5.Bloodhound.Internal.Client: NodeAttrName :: Text -> NodeAttrName
- Database.V5.Bloodhound.Internal.Client: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
- Database.V5.Bloodhound.Internal.Client: NodeByFullNodeId :: FullNodeId -> NodeSelector
- Database.V5.Bloodhound.Internal.Client: NodeByHost :: Server -> NodeSelector
- Database.V5.Bloodhound.Internal.Client: NodeByName :: NodeName -> NodeSelector
- Database.V5.Bloodhound.Internal.Client: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Maybe Text -> Text -> Text -> NodeDataPathStats
- Database.V5.Bloodhound.Internal.Client: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
- Database.V5.Bloodhound.Internal.Client: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: NodeHTTPInfo :: Bytes -> BoundTransportAddress -> NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: NodeInfo :: Maybe EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> Maybe NodeNetworkInfo -> NodeThreadPoolsInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
- Database.V5.Bloodhound.Internal.Client: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VMVersion -> Text -> JVMVersion -> PID -> NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: NodeList :: (NonEmpty NodeSelector) -> NodeSelection
- Database.V5.Bloodhound.Internal.Client: NodeName :: Text -> NodeName
- Database.V5.Bloodhound.Internal.Client: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: NodeOSInfo :: NominalDiffTime -> Text -> Text -> VersionNumber -> Int -> Int -> NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: NodeOSStats :: UTCTime -> Int -> Maybe LoadAvgs -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Bytes -> Bytes -> NodeOSStats
- Database.V5.Bloodhound.Internal.Client: NodePluginInfo :: Maybe Bool -> Maybe Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
- Database.V5.Bloodhound.Internal.Client: NodeProcessInfo :: Bool -> Maybe Int -> PID -> NominalDiffTime -> NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: NodeProcessStats :: UTCTime -> Int -> Int -> Int -> NominalDiffTime -> Bytes -> NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> Maybe NodeNetworkStats -> NodeThreadPoolsStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
- Database.V5.Bloodhound.Internal.Client: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: NodeThreadPoolsInfo :: NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: NodeThreadPoolsStats :: NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: NodeTransportInfo :: [BoundTransportAddress] -> BoundTransportAddress -> NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
- Database.V5.Bloodhound.Internal.Client: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
- Database.V5.Bloodhound.Internal.Client: NominalDiffTimeJSON :: NominalDiffTime -> NominalDiffTimeJSON
- Database.V5.Bloodhound.Internal.Client: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: OpenIndex :: OpenCloseIndex
- Database.V5.Bloodhound.Internal.Client: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: PID :: Int -> PID
- Database.V5.Bloodhound.Internal.Client: PluginName :: Text -> PluginName
- Database.V5.Bloodhound.Internal.Client: Quarter :: Interval
- Database.V5.Bloodhound.Internal.Client: QuorumMinus1Shards :: InitialShardCount
- Database.V5.Bloodhound.Internal.Client: QuorumShards :: InitialShardCount
- Database.V5.Bloodhound.Internal.Client: RRGroupRefNum :: Int -> RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: RRSubWholeMatch :: RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: RRTLit :: Text -> RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RemoveAlias :: IndexAlias -> IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: ReplicasBounded :: Int -> Int -> ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: ReplicasLowerBounded :: Int -> ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: ReplicasUnbounded :: ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: RepoPattern :: Text -> SnapshotRepoPattern
- Database.V5.Bloodhound.Internal.Client: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: RestoreRenamePattern :: Text -> RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RoutingAllocationExclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RoutingAllocationInclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RoutingAllocationRequire :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: RoutingValue :: Text -> RoutingValue
- Database.V5.Bloodhound.Internal.Client: SearchAliasRouting :: (NonEmpty RoutingValue) -> SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: Second :: Interval
- Database.V5.Bloodhound.Internal.Client: Seconds :: TimeInterval
- Database.V5.Bloodhound.Internal.Client: Server :: Text -> Server
- Database.V5.Bloodhound.Internal.Client: ShardResult :: Int -> Int -> Int -> ShardResult
- Database.V5.Bloodhound.Internal.Client: ShortType :: FieldType
- Database.V5.Bloodhound.Internal.Client: SnapPattern :: Text -> SnapshotPattern
- Database.V5.Bloodhound.Internal.Client: SnapshotAborted :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
- Database.V5.Bloodhound.Internal.Client: SnapshotFailed :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
- Database.V5.Bloodhound.Internal.Client: SnapshotInit :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotList :: (NonEmpty SnapshotPattern) -> SnapshotSelection
- Database.V5.Bloodhound.Internal.Client: SnapshotMissing :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
- Database.V5.Bloodhound.Internal.Client: SnapshotRepoList :: (NonEmpty SnapshotRepoPattern) -> SnapshotRepoSelection
- Database.V5.Bloodhound.Internal.Client: SnapshotRepoName :: Text -> SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: SnapshotRepoType :: Text -> SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Internal.Client: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
- Database.V5.Bloodhound.Internal.Client: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
- Database.V5.Bloodhound.Internal.Client: SnapshotStarted :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotSuccess :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
- Database.V5.Bloodhound.Internal.Client: SnapshotWaiting :: SnapshotState
- Database.V5.Bloodhound.Internal.Client: Status :: Text -> Text -> Text -> Version -> Text -> Status
- Database.V5.Bloodhound.Internal.Client: TTLDisablePurge :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: TemplateName :: Text -> TemplateName
- Database.V5.Bloodhound.Internal.Client: TemplatePattern :: Text -> TemplatePattern
- Database.V5.Bloodhound.Internal.Client: ThreadPoolBounded :: Int -> ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: ThreadPoolCached :: ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: ThreadPoolFixed :: ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: ThreadPoolScaling :: ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: ThreadPoolUnbounded :: ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: TranslogFSType :: FSType -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: VMVersion :: Text -> VMVersion
- Database.V5.Bloodhound.Internal.Client: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
- Database.V5.Bloodhound.Internal.Client: VersionNumber :: Version -> VersionNumber
- Database.V5.Bloodhound.Internal.Client: WarmerEnabled :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: Week :: Interval
- Database.V5.Bloodhound.Internal.Client: Weeks :: TimeInterval
- Database.V5.Bloodhound.Internal.Client: Year :: Interval
- Database.V5.Bloodhound.Internal.Client: [_id] :: EsResult a -> Text
- Database.V5.Bloodhound.Internal.Client: [_index] :: EsResult a -> Text
- Database.V5.Bloodhound.Internal.Client: [_source] :: EsResultFound a -> a
- Database.V5.Bloodhound.Internal.Client: [_type] :: EsResult a -> Text
- Database.V5.Bloodhound.Internal.Client: [_version] :: EsResultFound a -> DocVersion
- Database.V5.Bloodhound.Internal.Client: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
- Database.V5.Bloodhound.Internal.Client: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
- Database.V5.Bloodhound.Internal.Client: [bhManager] :: BHEnv -> Manager
- Database.V5.Bloodhound.Internal.Client: [bhRequestHook] :: BHEnv -> Request -> IO Request
- Database.V5.Bloodhound.Internal.Client: [bhServer] :: BHEnv -> Server
- Database.V5.Bloodhound.Internal.Client: [boundAddress] :: BoundTransportAddress -> [EsAddress]
- Database.V5.Bloodhound.Internal.Client: [buildHash] :: BuildHash -> Text
- Database.V5.Bloodhound.Internal.Client: [build_date] :: Version -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [build_hash] :: Version -> BuildHash
- Database.V5.Bloodhound.Internal.Client: [build_snapshot] :: Version -> Bool
- Database.V5.Bloodhound.Internal.Client: [clusterName] :: ClusterName -> Text
- Database.V5.Bloodhound.Internal.Client: [cluster_name] :: Status -> Text
- Database.V5.Bloodhound.Internal.Client: [cluster_uuid] :: Status -> Text
- Database.V5.Bloodhound.Internal.Client: [cpuCacheSize] :: CPUInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [cpuCoresPerSocket] :: CPUInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [cpuMHZ] :: CPUInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [cpuModel] :: CPUInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [cpuTotalCores] :: CPUInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [cpuTotalSockets] :: CPUInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [cpuVendor] :: CPUInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [docVersionNumber] :: DocVersion -> Int
- Database.V5.Bloodhound.Internal.Client: [errorMessage] :: EsError -> Text
- Database.V5.Bloodhound.Internal.Client: [errorStatus] :: EsError -> Int
- Database.V5.Bloodhound.Internal.Client: [esAddress] :: EsAddress -> Text
- Database.V5.Bloodhound.Internal.Client: [esPassword] :: EsPassword -> Text
- Database.V5.Bloodhound.Internal.Client: [esProtoExBody] :: EsProtocolException -> !LByteString
- Database.V5.Bloodhound.Internal.Client: [esProtoExMessage] :: EsProtocolException -> !Text
- Database.V5.Bloodhound.Internal.Client: [esUsername] :: EsUsername -> Text
- Database.V5.Bloodhound.Internal.Client: [fieldDefinition] :: MappingField -> FieldDefinition
- Database.V5.Bloodhound.Internal.Client: [fieldType] :: FieldDefinition -> FieldType
- Database.V5.Bloodhound.Internal.Client: [flushAfterOptimize] :: ForceMergeIndexSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
- Database.V5.Bloodhound.Internal.Client: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
- Database.V5.Bloodhound.Internal.Client: [fsrLocation] :: FsSnapshotRepo -> FilePath
- Database.V5.Bloodhound.Internal.Client: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: [fullNodeId] :: FullNodeId -> Text
- Database.V5.Bloodhound.Internal.Client: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
- Database.V5.Bloodhound.Internal.Client: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: [idsParent] :: IndexDocumentSettings -> Maybe DocumentParent
- Database.V5.Bloodhound.Internal.Client: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
- Database.V5.Bloodhound.Internal.Client: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
- Database.V5.Bloodhound.Internal.Client: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: [indexAlias] :: IndexAlias -> IndexAliasName
- Database.V5.Bloodhound.Internal.Client: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
- Database.V5.Bloodhound.Internal.Client: [indexReplicas] :: IndexSettings -> ReplicaCount
- Database.V5.Bloodhound.Internal.Client: [indexShards] :: IndexSettings -> ShardCount
- Database.V5.Bloodhound.Internal.Client: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmGCCollector] :: JVMGCCollector -> Text
- Database.V5.Bloodhound.Internal.Client: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
- Database.V5.Bloodhound.Internal.Client: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmMemoryPool] :: JVMMemoryPool -> Text
- Database.V5.Bloodhound.Internal.Client: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [loadAvg15Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Internal.Client: [loadAvg1Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Internal.Client: [loadAvg5Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Internal.Client: [lucene_version] :: Version -> VersionNumber
- Database.V5.Bloodhound.Internal.Client: [macAddress] :: MacAddress -> Text
- Database.V5.Bloodhound.Internal.Client: [mappingFieldName] :: MappingField -> FieldName
- Database.V5.Bloodhound.Internal.Client: [mappingFields] :: Mapping -> [MappingField]
- Database.V5.Bloodhound.Internal.Client: [maxNumSegments] :: ForceMergeIndexSettings -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [name] :: Status -> Text
- Database.V5.Bloodhound.Internal.Client: [ndtJSON] :: NominalDiffTimeJSON -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [networkInterfaceName] :: NetworkInterfaceName -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
- Database.V5.Bloodhound.Internal.Client: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
- Database.V5.Bloodhound.Internal.Client: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
- Database.V5.Bloodhound.Internal.Client: [nodeBreakersTripped] :: NodeBreakerStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathDevice] :: NodeDataPathStats -> Maybe Text
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathMount] :: NodeDataPathStats -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathPath] :: NodeDataPathStats -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
- Database.V5.Bloodhound.Internal.Client: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeHTTPTransportAddress] :: NodeHTTPInfo -> BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeInfoBuild] :: NodeInfo -> BuildHash
- Database.V5.Bloodhound.Internal.Client: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
- Database.V5.Bloodhound.Internal.Client: [nodeInfoFullId] :: NodeInfo -> FullNodeId
- Database.V5.Bloodhound.Internal.Client: [nodeInfoHTTPAddress] :: NodeInfo -> Maybe EsAddress
- Database.V5.Bloodhound.Internal.Client: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoHost] :: NodeInfo -> Server
- Database.V5.Bloodhound.Internal.Client: [nodeInfoIP] :: NodeInfo -> Server
- Database.V5.Bloodhound.Internal.Client: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoName] :: NodeInfo -> NodeName
- Database.V5.Bloodhound.Internal.Client: [nodeInfoNetwork] :: NodeInfo -> Maybe NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
- Database.V5.Bloodhound.Internal.Client: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoSettings] :: NodeInfo -> Object
- Database.V5.Bloodhound.Internal.Client: [nodeInfoThreadPool] :: NodeInfo -> NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
- Database.V5.Bloodhound.Internal.Client: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
- Database.V5.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
- Database.V5.Bloodhound.Internal.Client: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeJVMPID] :: NodeJVMInfo -> PID
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeJVMVMName] :: NodeJVMInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeJVMVMVersion] :: NodeJVMInfo -> VMVersion
- Database.V5.Bloodhound.Internal.Client: [nodeJVMVersion] :: NodeJVMInfo -> JVMVersion
- Database.V5.Bloodhound.Internal.Client: [nodeName] :: NodeName -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
- Database.V5.Bloodhound.Internal.Client: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
- Database.V5.Bloodhound.Internal.Client: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeOSAllocatedProcessors] :: NodeOSInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeOSArch] :: NodeOSInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeOSCPUPercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
- Database.V5.Bloodhound.Internal.Client: [nodeOSMemFreePercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeOSMemFree] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSMemTotal] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeOSMemUsed] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSName] :: NodeOSInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeOSSwapFree] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSSwapTotal] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [nodeOSVersion] :: NodeOSInfo -> VersionNumber
- Database.V5.Bloodhound.Internal.Client: [nodePluginDescription] :: NodePluginInfo -> Text
- Database.V5.Bloodhound.Internal.Client: [nodePluginJVM] :: NodePluginInfo -> Maybe Bool
- Database.V5.Bloodhound.Internal.Client: [nodePluginName] :: NodePluginInfo -> PluginName
- Database.V5.Bloodhound.Internal.Client: [nodePluginSite] :: NodePluginInfo -> Maybe Bool
- Database.V5.Bloodhound.Internal.Client: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
- Database.V5.Bloodhound.Internal.Client: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeProcessId] :: NodeProcessInfo -> PID
- Database.V5.Bloodhound.Internal.Client: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
- Database.V5.Bloodhound.Internal.Client: [nodeProcessMaxFDs] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsFS] :: NodeStats -> NodeFSStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsFullId] :: NodeStats -> FullNodeId
- Database.V5.Bloodhound.Internal.Client: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsName] :: NodeStats -> NodeName
- Database.V5.Bloodhound.Internal.Client: [nodeStatsNetwork] :: NodeStats -> Maybe NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsOS] :: NodeStats -> NodeOSStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsThreadPool] :: NodeStats -> NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsBulk] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsFetchShardStarted] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsFetchShardStore] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsFlush] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsGeneric] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsGet] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsIndex] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsListener] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsManagement] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsMerge] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsOptimize] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsPercolate] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsRefresh] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsSearch] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsSnapshot] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsBulk] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFetchShardStarted] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFetchShardStore] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsFlush] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsGeneric] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsGet] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsIndex] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsListener] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsManagement] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsMerge] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsOptimize] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsPercolate] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsRefresh] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSearch] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSnapshot] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsSuggest] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsStatsWarmer] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsSuggest] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeThreadPoolsWarmer] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: [nodeTransportAddress] :: NodeTransportInfo -> BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: [nodeTransportCount] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
- Database.V5.Bloodhound.Internal.Client: [nodeTransportRXCount] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodeTransportServerOpen] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Internal.Client: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
- Database.V5.Bloodhound.Internal.Client: [nodesClusterName] :: NodesInfo -> ClusterName
- Database.V5.Bloodhound.Internal.Client: [nodesInfo] :: NodesInfo -> [NodeInfo]
- Database.V5.Bloodhound.Internal.Client: [nodesStatsClusterName] :: NodesStats -> ClusterName
- Database.V5.Bloodhound.Internal.Client: [nodesStats] :: NodesStats -> [NodeStats]
- Database.V5.Bloodhound.Internal.Client: [number] :: Version -> VersionNumber
- Database.V5.Bloodhound.Internal.Client: [onlyExpungeDeletes] :: ForceMergeIndexSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [pid] :: PID -> Int
- Database.V5.Bloodhound.Internal.Client: [pluginName] :: PluginName -> Text
- Database.V5.Bloodhound.Internal.Client: [publishAddress] :: BoundTransportAddress -> EsAddress
- Database.V5.Bloodhound.Internal.Client: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
- Database.V5.Bloodhound.Internal.Client: [routingValue] :: RoutingValue -> Text
- Database.V5.Bloodhound.Internal.Client: [rrGroupRefNum] :: RRGroupRefNum -> Int
- Database.V5.Bloodhound.Internal.Client: [rrPattern] :: RestoreRenamePattern -> Text
- Database.V5.Bloodhound.Internal.Client: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
- Database.V5.Bloodhound.Internal.Client: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
- Database.V5.Bloodhound.Internal.Client: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
- Database.V5.Bloodhound.Internal.Client: [shardTotal] :: ShardResult -> Int
- Database.V5.Bloodhound.Internal.Client: [shardsFailed] :: ShardResult -> Int
- Database.V5.Bloodhound.Internal.Client: [shardsSuccessful] :: ShardResult -> Int
- Database.V5.Bloodhound.Internal.Client: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
- Database.V5.Bloodhound.Internal.Client: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
- Database.V5.Bloodhound.Internal.Client: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
- Database.V5.Bloodhound.Internal.Client: [snapInfoName] :: SnapshotInfo -> SnapshotName
- Database.V5.Bloodhound.Internal.Client: [snapInfoShards] :: SnapshotInfo -> ShardResult
- Database.V5.Bloodhound.Internal.Client: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
- Database.V5.Bloodhound.Internal.Client: [snapInfoState] :: SnapshotInfo -> SnapshotState
- Database.V5.Bloodhound.Internal.Client: [snapPartial] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
- Database.V5.Bloodhound.Internal.Client: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
- Database.V5.Bloodhound.Internal.Client: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
- Database.V5.Bloodhound.Internal.Client: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
- Database.V5.Bloodhound.Internal.Client: [snapShardFailureReason] :: SnapshotShardFailure -> Text
- Database.V5.Bloodhound.Internal.Client: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
- Database.V5.Bloodhound.Internal.Client: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Internal.Client: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
- Database.V5.Bloodhound.Internal.Client: [snapshotRepoName] :: SnapshotRepoName -> Text
- Database.V5.Bloodhound.Internal.Client: [snapshotRepoType] :: SnapshotRepoType -> Text
- Database.V5.Bloodhound.Internal.Client: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
- Database.V5.Bloodhound.Internal.Client: [snvNodeName] :: SnapshotNodeVerification -> NodeName
- Database.V5.Bloodhound.Internal.Client: [srcIndex] :: IndexAlias -> IndexName
- Database.V5.Bloodhound.Internal.Client: [tagline] :: Status -> Text
- Database.V5.Bloodhound.Internal.Client: [templateMappings] :: IndexTemplate -> [Value]
- Database.V5.Bloodhound.Internal.Client: [templatePattern] :: IndexTemplate -> TemplatePattern
- Database.V5.Bloodhound.Internal.Client: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
- Database.V5.Bloodhound.Internal.Client: [typeName] :: Mapping -> TypeName
- Database.V5.Bloodhound.Internal.Client: [unBH] :: BH m a -> ReaderT BHEnv m a
- Database.V5.Bloodhound.Internal.Client: [unJVMVersion] :: JVMVersion -> Text
- Database.V5.Bloodhound.Internal.Client: [unVMVersion] :: VMVersion -> Text
- Database.V5.Bloodhound.Internal.Client: [versionNumber] :: VersionNumber -> Version
- Database.V5.Bloodhound.Internal.Client: [version] :: Status -> Version
- Database.V5.Bloodhound.Internal.Client: attrFilterJSON :: NonEmpty NodeAttrFilter -> Value
- Database.V5.Bloodhound.Internal.Client: class (Functor m, Applicative m, MonadIO m) => MonadBH m
- Database.V5.Bloodhound.Internal.Client: class SnapshotRepo r
- Database.V5.Bloodhound.Internal.Client: data AliasRouting
- Database.V5.Bloodhound.Internal.Client: data AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: data BHEnv
- Database.V5.Bloodhound.Internal.Client: data BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: data BulkOperation
- Database.V5.Bloodhound.Internal.Client: data CPUInfo
- Database.V5.Bloodhound.Internal.Client: data CompoundFormat
- Database.V5.Bloodhound.Internal.Client: data Compression
- Database.V5.Bloodhound.Internal.Client: data EsError
- Database.V5.Bloodhound.Internal.Client: data EsProtocolException
- Database.V5.Bloodhound.Internal.Client: data EsResult a
- Database.V5.Bloodhound.Internal.Client: data EsResultFound a
- Database.V5.Bloodhound.Internal.Client: data FSType
- Database.V5.Bloodhound.Internal.Client: data FieldType
- Database.V5.Bloodhound.Internal.Client: data ForceMergeIndexSettings
- Database.V5.Bloodhound.Internal.Client: data FsSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: data GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: data IndexAlias
- Database.V5.Bloodhound.Internal.Client: data IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: data IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: data IndexAliasSummary
- Database.V5.Bloodhound.Internal.Client: data IndexDocumentSettings
- Database.V5.Bloodhound.Internal.Client: data IndexSelection
- Database.V5.Bloodhound.Internal.Client: data IndexSettings
- Database.V5.Bloodhound.Internal.Client: data IndexSettingsSummary
- Database.V5.Bloodhound.Internal.Client: data IndexTemplate
- Database.V5.Bloodhound.Internal.Client: data InitialShardCount
- Database.V5.Bloodhound.Internal.Client: data Interval
- Database.V5.Bloodhound.Internal.Client: data JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: data JVMGCStats
- Database.V5.Bloodhound.Internal.Client: data JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: data JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: data LoadAvgs
- Database.V5.Bloodhound.Internal.Client: data Mapping
- Database.V5.Bloodhound.Internal.Client: data MappingField
- Database.V5.Bloodhound.Internal.Client: data NodeAttrFilter
- Database.V5.Bloodhound.Internal.Client: data NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: data NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: data NodeDataPathStats
- Database.V5.Bloodhound.Internal.Client: data NodeFSStats
- Database.V5.Bloodhound.Internal.Client: data NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: data NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: data NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: data NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: data NodeInfo
- Database.V5.Bloodhound.Internal.Client: data NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: data NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: data NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: data NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: data NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: data NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: data NodeOSStats
- Database.V5.Bloodhound.Internal.Client: data NodePluginInfo
- Database.V5.Bloodhound.Internal.Client: data NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: data NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: data NodeSelection
- Database.V5.Bloodhound.Internal.Client: data NodeSelector
- Database.V5.Bloodhound.Internal.Client: data NodeStats
- Database.V5.Bloodhound.Internal.Client: data NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: data NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: data NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: data NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: data NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: data NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: data NodesInfo
- Database.V5.Bloodhound.Internal.Client: data NodesStats
- Database.V5.Bloodhound.Internal.Client: data OpenCloseIndex
- Database.V5.Bloodhound.Internal.Client: data ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: data RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: data ShardResult
- Database.V5.Bloodhound.Internal.Client: data SnapshotCreateSettings
- Database.V5.Bloodhound.Internal.Client: data SnapshotInfo
- Database.V5.Bloodhound.Internal.Client: data SnapshotNodeVerification
- Database.V5.Bloodhound.Internal.Client: data SnapshotPattern
- Database.V5.Bloodhound.Internal.Client: data SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: data SnapshotRepoPattern
- Database.V5.Bloodhound.Internal.Client: data SnapshotRepoSelection
- Database.V5.Bloodhound.Internal.Client: data SnapshotRestoreSettings
- Database.V5.Bloodhound.Internal.Client: data SnapshotSelection
- Database.V5.Bloodhound.Internal.Client: data SnapshotShardFailure
- Database.V5.Bloodhound.Internal.Client: data SnapshotState
- Database.V5.Bloodhound.Internal.Client: data Status
- Database.V5.Bloodhound.Internal.Client: data ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: data ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: data TimeInterval
- Database.V5.Bloodhound.Internal.Client: data UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: data Version
- Database.V5.Bloodhound.Internal.Client: data VersionControl
- Database.V5.Bloodhound.Internal.Client: defaultForceMergeIndexSettings :: ForceMergeIndexSettings
- Database.V5.Bloodhound.Internal.Client: defaultIndexDocumentSettings :: IndexDocumentSettings
- Database.V5.Bloodhound.Internal.Client: defaultIndexSettings :: IndexSettings
- Database.V5.Bloodhound.Internal.Client: defaultSnapshotCreateSettings :: SnapshotCreateSettings
- Database.V5.Bloodhound.Internal.Client: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Internal.Client: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
- Database.V5.Bloodhound.Internal.Client: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
- Database.V5.Bloodhound.Internal.Client: fsRepoType :: SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: getBHEnv :: MonadBH m => m BHEnv
- Database.V5.Bloodhound.Internal.Client: gigabytes :: Int -> Bytes
- Database.V5.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.V5.Bloodhound.Internal.Client.MonadBH (Control.Monad.Trans.Reader.ReaderT Database.V5.Bloodhound.Internal.Client.BHEnv m)
- Database.V5.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.V5.Bloodhound.Internal.Client.MonadBH (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Trans.Class.MonadTrans Database.V5.Bloodhound.Internal.Client.BH
- Database.V5.Bloodhound.Internal.Client: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.AliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.BuildHash
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.Bytes
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.CPUInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.ClusterName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.CompoundFormat
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.Compression
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.EsAddress
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.EsError
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.FSType
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.FullNodeId
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.IndexSettings
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.InitialShardCount
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMGCCollector
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMGCStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.JVMVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.LoadAvgs
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.MacAddress
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeFSStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeOSStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodePluginInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodesInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NodesStats
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.NominalDiffTimeJSON
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.PID
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.PluginName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.RoutingValue
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.Server
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.ShardResult
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotInfo
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotState
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.SnapshotVerification
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.Status
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.TemplateName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.TemplatePattern
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.VMVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.Version
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Client.VersionNumber
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Client.EsResult a)
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Client.EsResultFound a)
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.AliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.BuildHash
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.Bytes
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.CompoundFormat
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.Compression
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.FSType
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexAlias
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexSettings
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.IndexTemplate
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.InitialShardCount
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.Interval
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.NominalDiffTimeJSON
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.RoutingValue
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.TemplateName
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.TemplatePattern
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.VMVersion
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.Version
- Database.V5.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Client.VersionNumber
- Database.V5.Bloodhound.Internal.Client: instance Database.V5.Bloodhound.Internal.Client.SnapshotRepo Database.V5.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance Database.V5.Bloodhound.Internal.Client.SnapshotRepo Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Base.Alternative m => GHC.Base.Alternative (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Base.Applicative m => GHC.Base.Applicative (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Base.Functor m => GHC.Base.Functor (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Base.Monad m => GHC.Base.Monad (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Database.V5.Bloodhound.Internal.Client.BH m)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.AliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.BuildHash
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.BulkOperation
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Bytes
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.CPUInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ClusterName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.CompoundFormat
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Compression
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.DocumentParent
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.EsAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.EsError
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.EsPassword
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.EsProtocolException
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.EsUsername
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.FSType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.FieldDefinition
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.FieldType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ForceMergeIndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.FullNodeId
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAlias
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAliasSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexDocumentSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.InitialShardCount
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Interval
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMGCCollector
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMGCStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.JVMVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.LoadAvgs
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.MacAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Mapping
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.MappingField
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeAttrName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeFSStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeOSStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodePluginInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeSelector
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodesInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.NodesStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.OpenCloseIndex
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.PID
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.PluginName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.RoutingValue
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Server
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ShardResult
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotCreateSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotNodeVerification
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotPattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoPattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotRestoreSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotState
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.SnapshotVerification
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Status
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.TemplateName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.TemplatePattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.TimeInterval
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.VMVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.Version
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.VersionControl
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Client.VersionNumber
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Internal.Client.EsResult a)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Internal.Client.EsResultFound a)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.BuildHash
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.Bytes
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.ClusterName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.EsAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.FullNodeId
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.MacAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.NodeAttrName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.NodeName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.PluginName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.VersionControl
- Database.V5.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.V5.Bloodhound.Internal.Client.VersionNumber
- Database.V5.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.V5.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Exception.Exception Database.V5.Bloodhound.Internal.Client.EsProtocolException
- Database.V5.Bloodhound.Internal.Client: instance GHC.Exception.Exception Database.V5.Bloodhound.Internal.Client.SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Client.EsPassword
- Database.V5.Bloodhound.Internal.Client: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Client.EsUsername
- Database.V5.Bloodhound.Internal.Client: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Client.TimeInterval
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.AliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.AllocationPolicy
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.BoundTransportAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.BuildHash
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.BulkOperation
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Bytes
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.CPUInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ClusterName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.CompoundFormat
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Compression
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.DocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.DocumentParent
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.EsAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.EsError
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.EsPassword
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.EsProtocolException
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.EsUsername
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.FSType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.FieldDefinition
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.FieldType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ForceMergeIndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.FsSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.FullNodeId
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAlias
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAliasAction
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAliasCreate
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAliasSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexAliasesSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexDocumentSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.IndexSettingsSummary
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.InitialShardCount
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Interval
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMBufferPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMGCCollector
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMGCStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMMemoryInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMMemoryPool
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.JVMVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.LoadAvgs
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.MacAddress
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Mapping
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.MappingField
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeAttrFilter
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeAttrName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeBreakerStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeBreakersStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeDataPathStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeFSStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeFSTotalStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeHTTPInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeHTTPStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeIndicesStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeJVMInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeJVMStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeNetworkInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeNetworkInterface
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeNetworkStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeOSInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeOSStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodePluginInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeProcessInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeProcessStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeSelector
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeThreadPoolInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeThreadPoolStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeThreadPoolsStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeTransportInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodeTransportStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodesInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.NodesStats
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.OpenCloseIndex
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.PID
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.PluginName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ReplicaBounds
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.RestoreRenameToken
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.RoutingValue
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Server
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ShardResult
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotCreateSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotInfo
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotNodeVerification
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotPattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoConversionError
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoPattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotRestoreSettings
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotSelection
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotShardFailure
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotState
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.SnapshotVerification
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Status
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.TemplateName
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.TemplatePattern
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ThreadPoolSize
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.ThreadPoolType
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.TimeInterval
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.UpdatableIndexSetting
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.VMVersion
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.Version
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.VersionControl
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Client.VersionNumber
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Client.EsResult a)
- Database.V5.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Client.EsResultFound a)
- Database.V5.Bloodhound.Internal.Client: kilobytes :: Int -> Bytes
- Database.V5.Bloodhound.Internal.Client: megabytes :: Int -> Bytes
- Database.V5.Bloodhound.Internal.Client: mkBHEnv :: Server -> Manager -> BHEnv
- Database.V5.Bloodhound.Internal.Client: mkDocVersion :: Int -> Maybe DocVersion
- Database.V5.Bloodhound.Internal.Client: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: newtype BH m a
- Database.V5.Bloodhound.Internal.Client: newtype BuildHash
- Database.V5.Bloodhound.Internal.Client: newtype Bytes
- Database.V5.Bloodhound.Internal.Client: newtype ClusterName
- Database.V5.Bloodhound.Internal.Client: newtype DocVersion
- Database.V5.Bloodhound.Internal.Client: newtype DocumentParent
- Database.V5.Bloodhound.Internal.Client: newtype EsAddress
- Database.V5.Bloodhound.Internal.Client: newtype EsPassword
- Database.V5.Bloodhound.Internal.Client: newtype EsUsername
- Database.V5.Bloodhound.Internal.Client: newtype ExternalDocVersion
- Database.V5.Bloodhound.Internal.Client: newtype FieldDefinition
- Database.V5.Bloodhound.Internal.Client: newtype FullNodeId
- Database.V5.Bloodhound.Internal.Client: newtype GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Internal.Client: newtype IndexAliasRouting
- Database.V5.Bloodhound.Internal.Client: newtype IndexAliasesSummary
- Database.V5.Bloodhound.Internal.Client: newtype JVMGCCollector
- Database.V5.Bloodhound.Internal.Client: newtype JVMMemoryPool
- Database.V5.Bloodhound.Internal.Client: newtype JVMVersion
- Database.V5.Bloodhound.Internal.Client: newtype MacAddress
- Database.V5.Bloodhound.Internal.Client: newtype NetworkInterfaceName
- Database.V5.Bloodhound.Internal.Client: newtype NodeAttrName
- Database.V5.Bloodhound.Internal.Client: newtype NodeName
- Database.V5.Bloodhound.Internal.Client: newtype NominalDiffTimeJSON
- Database.V5.Bloodhound.Internal.Client: newtype PID
- Database.V5.Bloodhound.Internal.Client: newtype PluginName
- Database.V5.Bloodhound.Internal.Client: newtype RRGroupRefNum
- Database.V5.Bloodhound.Internal.Client: newtype RestoreIndexSettings
- Database.V5.Bloodhound.Internal.Client: newtype RestoreRenamePattern
- Database.V5.Bloodhound.Internal.Client: newtype RoutingValue
- Database.V5.Bloodhound.Internal.Client: newtype SearchAliasRouting
- Database.V5.Bloodhound.Internal.Client: newtype Server
- Database.V5.Bloodhound.Internal.Client: newtype SnapshotRepoName
- Database.V5.Bloodhound.Internal.Client: newtype SnapshotRepoType
- Database.V5.Bloodhound.Internal.Client: newtype SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Internal.Client: newtype SnapshotVerification
- Database.V5.Bloodhound.Internal.Client: newtype TemplateName
- Database.V5.Bloodhound.Internal.Client: newtype TemplatePattern
- Database.V5.Bloodhound.Internal.Client: newtype VMVersion
- Database.V5.Bloodhound.Internal.Client: newtype VersionNumber
- Database.V5.Bloodhound.Internal.Client: parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)
- Database.V5.Bloodhound.Internal.Client: parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo
- Database.V5.Bloodhound.Internal.Client: parseNodeStats :: FullNodeId -> Object -> Parser NodeStats
- Database.V5.Bloodhound.Internal.Client: parseRepo :: Parser a -> Either SnapshotRepoConversionError a
- Database.V5.Bloodhound.Internal.Client: parseSettings :: Object -> Parser [UpdatableIndexSetting]
- Database.V5.Bloodhound.Internal.Client: parseStringInterval :: (Monad m) => String -> m NominalDiffTime
- Database.V5.Bloodhound.Internal.Client: runBH :: BHEnv -> BH m a -> m a
- Database.V5.Bloodhound.Internal.Client: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
- Database.V5.Bloodhound.Internal.Client: type Reply = Response LByteString
- Database.V5.Bloodhound.Internal.Highlight: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: CustomTags :: ([Text], [Text]) -> HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: DefaultEncoder :: HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: FastVector :: FastVectorHighlight -> HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
- Database.V5.Bloodhound.Internal.Highlight: FieldHighlight :: FieldName -> (Maybe HighlightSettings) -> FieldHighlight
- Database.V5.Bloodhound.Internal.Highlight: HTMLEncoder :: HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
- Database.V5.Bloodhound.Internal.Highlight: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
- Database.V5.Bloodhound.Internal.Highlight: Plain :: PlainHighlight -> HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
- Database.V5.Bloodhound.Internal.Highlight: Postings :: PostingsHighlight -> HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: PostingsHighlight :: (Maybe CommonHighlight) -> PostingsHighlight
- Database.V5.Bloodhound.Internal.Highlight: TagSchema :: Text -> HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: [boundaryChars] :: FastVectorHighlight -> Maybe Text
- Database.V5.Bloodhound.Internal.Highlight: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: [forceSource] :: CommonHighlight -> Maybe Bool
- Database.V5.Bloodhound.Internal.Highlight: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [fragmentSize] :: NonPostings -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
- Database.V5.Bloodhound.Internal.Highlight: [globalsettings] :: Highlights -> Maybe HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: [highlightFields] :: Highlights -> [FieldHighlight]
- Database.V5.Bloodhound.Internal.Highlight: [highlightQuery] :: CommonHighlight -> Maybe Query
- Database.V5.Bloodhound.Internal.Highlight: [matchedFields] :: FastVectorHighlight -> [Text]
- Database.V5.Bloodhound.Internal.Highlight: [noMatchSize] :: CommonHighlight -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [numberOfFragments] :: NonPostings -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [order] :: CommonHighlight -> Maybe Text
- Database.V5.Bloodhound.Internal.Highlight: [phraseLimit] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Internal.Highlight: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
- Database.V5.Bloodhound.Internal.Highlight: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
- Database.V5.Bloodhound.Internal.Highlight: [tag] :: CommonHighlight -> Maybe HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: commonHighlightPairs :: Maybe CommonHighlight -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: data CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: data FastVectorHighlight
- Database.V5.Bloodhound.Internal.Highlight: data FieldHighlight
- Database.V5.Bloodhound.Internal.Highlight: data HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: data HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: data HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: data Highlights
- Database.V5.Bloodhound.Internal.Highlight: data NonPostings
- Database.V5.Bloodhound.Internal.Highlight: data PlainHighlight
- Database.V5.Bloodhound.Internal.Highlight: data PostingsHighlight
- Database.V5.Bloodhound.Internal.Highlight: fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: highlightTagToPairs :: Maybe HighlightTag -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Highlight.Highlights
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.FastVectorHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.Highlights
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.NonPostings
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.PlainHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Highlight.PostingsHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.CommonHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.FastVectorHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.FieldHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.HighlightEncoder
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.HighlightSettings
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.HighlightTag
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.Highlights
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.NonPostings
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.PlainHighlight
- Database.V5.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Highlight.PostingsHighlight
- Database.V5.Bloodhound.Internal.Highlight: nonPostingsToPairs :: Maybe NonPostings -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: plainHighPairs :: Maybe PlainHighlight -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: postHighPairs :: Maybe PostingsHighlight -> [Pair]
- Database.V5.Bloodhound.Internal.Highlight: type HitHighlight = Map Text [Text]
- Database.V5.Bloodhound.Internal.Newtypes: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: AnalyzeWildcard :: Bool -> AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: Analyzer :: Text -> Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: Boost :: Double -> Boost
- Database.V5.Bloodhound.Internal.Newtypes: BoostTerms :: Double -> BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: CacheKey :: Text -> CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: CacheName :: Text -> CacheName
- Database.V5.Bloodhound.Internal.Newtypes: CharFilter :: Text -> CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: CutoffFrequency :: Double -> CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: DisableCoord :: Bool -> DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: DocId :: Text -> DocId
- Database.V5.Bloodhound.Internal.Newtypes: EnablePositionIncrements :: Bool -> EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: Existence :: Bool -> Existence
- Database.V5.Bloodhound.Internal.Newtypes: FieldName :: Text -> FieldName
- Database.V5.Bloodhound.Internal.Newtypes: From :: Int -> From
- Database.V5.Bloodhound.Internal.Newtypes: Fuzziness :: Double -> Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: HitFields :: (Map Text [Value]) -> HitFields
- Database.V5.Bloodhound.Internal.Newtypes: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: IndexAliasName :: IndexName -> IndexAliasName
- Database.V5.Bloodhound.Internal.Newtypes: IndexName :: Text -> IndexName
- Database.V5.Bloodhound.Internal.Newtypes: Lenient :: Bool -> Lenient
- Database.V5.Bloodhound.Internal.Newtypes: Locale :: Text -> Locale
- Database.V5.Bloodhound.Internal.Newtypes: LowercaseExpanded :: Bool -> LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: MS :: NominalDiffTime -> MS
- Database.V5.Bloodhound.Internal.Newtypes: MappingName :: Text -> MappingName
- Database.V5.Bloodhound.Internal.Newtypes: MaxDocFrequency :: Int -> MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: MaxExpansions :: Int -> MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: MaxQueryTerms :: Int -> MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: MaxWordLength :: Int -> MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: MaybeNA :: Maybe a -> MaybeNA a
- Database.V5.Bloodhound.Internal.Newtypes: MinDocFrequency :: Int -> MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: MinWordLength :: Int -> MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: MinimumMatch :: Int -> MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: MinimumTermFrequency :: Int -> MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: NullValue :: Bool -> NullValue
- Database.V5.Bloodhound.Internal.Newtypes: POSIXMS :: UTCTime -> POSIXMS
- Database.V5.Bloodhound.Internal.Newtypes: PercentMatch :: Double -> PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: PhraseSlop :: Int -> PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: PrefixLength :: Int -> PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: QueryPath :: Text -> QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: QueryString :: Text -> QueryString
- Database.V5.Bloodhound.Internal.Newtypes: ReplicaCount :: Int -> ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: ShardCount :: Int -> ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: ShardId :: Int -> ShardId
- Database.V5.Bloodhound.Internal.Newtypes: Size :: Int -> Size
- Database.V5.Bloodhound.Internal.Newtypes: SnapshotName :: Text -> SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: StopWord :: Text -> StopWord
- Database.V5.Bloodhound.Internal.Newtypes: Tiebreaker :: Double -> Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: TokenFilter :: Text -> TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: TypeName :: Text -> TypeName
- Database.V5.Bloodhound.Internal.Newtypes: [indexAliasName] :: IndexAliasName -> IndexName
- Database.V5.Bloodhound.Internal.Newtypes: [posixMS] :: POSIXMS -> UTCTime
- Database.V5.Bloodhound.Internal.Newtypes: [shardId] :: ShardId -> Int
- Database.V5.Bloodhound.Internal.Newtypes: [snapshotName] :: SnapshotName -> Text
- Database.V5.Bloodhound.Internal.Newtypes: [unMaybeNA] :: MaybeNA a -> Maybe a
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Boost
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.CacheName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.DocId
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Existence
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.FieldName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.HitFields
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.IndexName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Lenient
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Locale
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MS
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MappingName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.NullValue
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.POSIXMS
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.QueryString
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.ShardId
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Size
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.StopWord
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Newtypes.TypeName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Boost
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.CacheName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.DocId
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Existence
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.FieldName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.From
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.IndexName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Lenient
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Locale
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MappingName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.NullValue
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.QueryString
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Size
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.StopWord
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Newtypes.TypeName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Boost
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.CacheName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.DocId
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Existence
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.FieldName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.From
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.HitFields
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.IndexName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Lenient
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Locale
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MappingName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.NullValue
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.QueryString
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.ShardId
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Size
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.StopWord
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Newtypes.TypeName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Newtypes.FieldName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Boost
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.CacheName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.DocId
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Existence
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.FieldName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.From
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.HitFields
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.IndexAliasName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.IndexName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Lenient
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Locale
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MappingName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.NullValue
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.QueryString
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.ShardId
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Size
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.StopWord
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Newtypes.TypeName
- Database.V5.Bloodhound.Internal.Newtypes: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Internal.Newtypes.MaybeNA a)
- Database.V5.Bloodhound.Internal.Newtypes: newtype AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Newtypes: newtype AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Newtypes: newtype Analyzer
- Database.V5.Bloodhound.Internal.Newtypes: newtype Boost
- Database.V5.Bloodhound.Internal.Newtypes: newtype BoostTerms
- Database.V5.Bloodhound.Internal.Newtypes: newtype CacheKey
- Database.V5.Bloodhound.Internal.Newtypes: newtype CacheName
- Database.V5.Bloodhound.Internal.Newtypes: newtype CharFilter
- Database.V5.Bloodhound.Internal.Newtypes: newtype CutoffFrequency
- Database.V5.Bloodhound.Internal.Newtypes: newtype DisableCoord
- Database.V5.Bloodhound.Internal.Newtypes: newtype DocId
- Database.V5.Bloodhound.Internal.Newtypes: newtype EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Newtypes: newtype Existence
- Database.V5.Bloodhound.Internal.Newtypes: newtype FieldName
- Database.V5.Bloodhound.Internal.Newtypes: newtype From
- Database.V5.Bloodhound.Internal.Newtypes: newtype Fuzziness
- Database.V5.Bloodhound.Internal.Newtypes: newtype GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Newtypes: newtype HitFields
- Database.V5.Bloodhound.Internal.Newtypes: newtype IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: newtype IndexAliasName
- Database.V5.Bloodhound.Internal.Newtypes: newtype IndexName
- Database.V5.Bloodhound.Internal.Newtypes: newtype Lenient
- Database.V5.Bloodhound.Internal.Newtypes: newtype Locale
- Database.V5.Bloodhound.Internal.Newtypes: newtype LowercaseExpanded
- Database.V5.Bloodhound.Internal.Newtypes: newtype MS
- Database.V5.Bloodhound.Internal.Newtypes: newtype MappingName
- Database.V5.Bloodhound.Internal.Newtypes: newtype MaxDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: newtype MaxExpansions
- Database.V5.Bloodhound.Internal.Newtypes: newtype MaxQueryTerms
- Database.V5.Bloodhound.Internal.Newtypes: newtype MaxWordLength
- Database.V5.Bloodhound.Internal.Newtypes: newtype MaybeNA a
- Database.V5.Bloodhound.Internal.Newtypes: newtype MinDocFrequency
- Database.V5.Bloodhound.Internal.Newtypes: newtype MinWordLength
- Database.V5.Bloodhound.Internal.Newtypes: newtype MinimumMatch
- Database.V5.Bloodhound.Internal.Newtypes: newtype MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Newtypes: newtype NullValue
- Database.V5.Bloodhound.Internal.Newtypes: newtype POSIXMS
- Database.V5.Bloodhound.Internal.Newtypes: newtype PercentMatch
- Database.V5.Bloodhound.Internal.Newtypes: newtype PhraseSlop
- Database.V5.Bloodhound.Internal.Newtypes: newtype PrefixLength
- Database.V5.Bloodhound.Internal.Newtypes: newtype QueryPath
- Database.V5.Bloodhound.Internal.Newtypes: newtype QueryString
- Database.V5.Bloodhound.Internal.Newtypes: newtype ReplicaCount
- Database.V5.Bloodhound.Internal.Newtypes: newtype ShardCount
- Database.V5.Bloodhound.Internal.Newtypes: newtype ShardId
- Database.V5.Bloodhound.Internal.Newtypes: newtype Size
- Database.V5.Bloodhound.Internal.Newtypes: newtype SnapshotName
- Database.V5.Bloodhound.Internal.Newtypes: newtype StopWord
- Database.V5.Bloodhound.Internal.Newtypes: newtype Tiebreaker
- Database.V5.Bloodhound.Internal.Newtypes: newtype TokenFilter
- Database.V5.Bloodhound.Internal.Newtypes: newtype TypeName
- Database.V5.Bloodhound.Internal.Newtypes: type Score = Maybe Double
- Database.V5.Bloodhound.Internal.Newtypes: unMS :: MS -> NominalDiffTime
- Database.V5.Bloodhound.Internal.Query: AllRegexpFlags :: RegexpFlags
- Database.V5.Bloodhound.Internal.Query: And :: BooleanOperator
- Database.V5.Bloodhound.Internal.Query: AnyString :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: Arc :: DistanceType
- Database.V5.Bloodhound.Internal.Query: Automaton :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: BoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
- Database.V5.Bloodhound.Internal.Query: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
- Database.V5.Bloodhound.Internal.Query: Centimeters :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: Complement :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: ComponentFunctionScoreFunction :: Maybe Filter -> FunctionScoreFunction -> Maybe Weight -> ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: ConstantScoreQuery :: Query -> Boost -> Query
- Database.V5.Bloodhound.Internal.Query: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: Distance :: Double -> DistanceUnit -> Distance
- Database.V5.Bloodhound.Internal.Query: DistanceRange :: Distance -> Distance -> DistanceRange
- Database.V5.Bloodhound.Internal.Query: Empty :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: Feet :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: Filter :: Query -> Filter
- Database.V5.Bloodhound.Internal.Query: FofField :: FieldName -> FieldOrFields
- Database.V5.Bloodhound.Internal.Query: FofFields :: (NonEmpty FieldName) -> FieldOrFields
- Database.V5.Bloodhound.Internal.Query: FunctionScoreMultiple :: (NonEmpty ComponentFunctionScoreFunction) -> FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: FunctionScoreQuery :: Maybe Query -> Maybe Boost -> FunctionScoreFunctions -> Maybe Boost -> Maybe BoostMode -> Score -> Maybe ScoreMode -> FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: FunctionScoreSingle :: FunctionScoreFunction -> FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: GeoFilterIndexed :: GeoFilterType
- Database.V5.Bloodhound.Internal.Query: GeoFilterMemory :: GeoFilterType
- Database.V5.Bloodhound.Internal.Query: GeoPoint :: FieldName -> LatLon -> GeoPoint
- Database.V5.Bloodhound.Internal.Query: GreaterThan :: Double -> GreaterThan
- Database.V5.Bloodhound.Internal.Query: GreaterThanD :: UTCTime -> GreaterThanD
- Database.V5.Bloodhound.Internal.Query: GreaterThanEq :: Double -> GreaterThanEq
- Database.V5.Bloodhound.Internal.Query: GreaterThanEqD :: UTCTime -> GreaterThanEqD
- Database.V5.Bloodhound.Internal.Query: HasChildQuery :: TypeName -> Query -> Maybe ScoreType -> HasChildQuery
- Database.V5.Bloodhound.Internal.Query: HasParentQuery :: TypeName -> Query -> Maybe ScoreType -> HasParentQuery
- Database.V5.Bloodhound.Internal.Query: IdsQuery :: MappingName -> [DocId] -> Query
- Database.V5.Bloodhound.Internal.Query: Inches :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
- Database.V5.Bloodhound.Internal.Query: Intersection :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: Interval :: RegexpFlag
- Database.V5.Bloodhound.Internal.Query: Kilometers :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: LatLon :: Double -> Double -> LatLon
- Database.V5.Bloodhound.Internal.Query: LessThan :: Double -> LessThan
- Database.V5.Bloodhound.Internal.Query: LessThanD :: UTCTime -> LessThanD
- Database.V5.Bloodhound.Internal.Query: LessThanEq :: Double -> LessThanEq
- Database.V5.Bloodhound.Internal.Query: LessThanEqD :: UTCTime -> LessThanEqD
- Database.V5.Bloodhound.Internal.Query: MatchAllQuery :: (Maybe Boost) -> Query
- Database.V5.Bloodhound.Internal.Query: MatchPhrase :: MatchQueryType
- Database.V5.Bloodhound.Internal.Query: MatchPhrasePrefix :: MatchQueryType
- Database.V5.Bloodhound.Internal.Query: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> Maybe Text -> MatchQuery
- Database.V5.Bloodhound.Internal.Query: Meters :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: Miles :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: Millimeters :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
- Database.V5.Bloodhound.Internal.Query: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: MultiMatchBestFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: MultiMatchCrossFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: MultiMatchMostFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: MultiMatchPhrase :: MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: MultiMatchPhrasePrefix :: MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: MustMatch :: Term -> Cache -> BoolMatch
- Database.V5.Bloodhound.Internal.Query: MustNotMatch :: Term -> Cache -> BoolMatch
- Database.V5.Bloodhound.Internal.Query: NauticalMiles :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
- Database.V5.Bloodhound.Internal.Query: NoOptimizeBbox :: OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: NoRegexpFlags :: RegexpFlags
- Database.V5.Bloodhound.Internal.Query: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: Or :: BooleanOperator
- Database.V5.Bloodhound.Internal.Query: Plane :: DistanceType
- Database.V5.Bloodhound.Internal.Query: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
- Database.V5.Bloodhound.Internal.Query: QueryBoolQuery :: BoolQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryBoostingQuery :: BoostingQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryCommonTermsQuery :: CommonTermsQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryDisMaxQuery :: DisMaxQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryExistsQuery :: FieldName -> Query
- Database.V5.Bloodhound.Internal.Query: QueryFunctionScoreQuery :: FunctionScoreQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryFuzzyQuery :: FuzzyQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryHasChildQuery :: HasChildQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryHasParentQuery :: HasParentQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryIndicesQuery :: IndicesQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryMatchNoneQuery :: Query
- Database.V5.Bloodhound.Internal.Query: QueryMatchQuery :: MatchQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryMultiMatchQuery :: MultiMatchQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryNestedQuery :: NestedQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryPrefixQuery :: PrefixQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryQueryStringQuery :: QueryStringQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryRangeQuery :: RangeQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QueryRegexpQuery :: RegexpQuery -> Query
- Database.V5.Bloodhound.Internal.Query: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
- Database.V5.Bloodhound.Internal.Query: 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
- Database.V5.Bloodhound.Internal.Query: QueryTemplateQueryInline :: TemplateQueryInline -> Query
- Database.V5.Bloodhound.Internal.Query: QueryWildcardQuery :: WildcardQuery -> Query
- Database.V5.Bloodhound.Internal.Query: RangeDateGt :: GreaterThanD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateGte :: GreaterThanEqD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateLt :: LessThanD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDateLte :: LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGt :: GreaterThan -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGte :: GreaterThanEq -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleLt :: LessThan -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeDoubleLte :: LessThanEq -> RangeValue
- Database.V5.Bloodhound.Internal.Query: RangeExecutionFielddata :: RangeExecution
- Database.V5.Bloodhound.Internal.Query: RangeExecutionIndex :: RangeExecution
- Database.V5.Bloodhound.Internal.Query: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
- Database.V5.Bloodhound.Internal.Query: Regexp :: Text -> Regexp
- Database.V5.Bloodhound.Internal.Query: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
- Database.V5.Bloodhound.Internal.Query: ScoreTypeAvg :: ScoreType
- Database.V5.Bloodhound.Internal.Query: ScoreTypeMax :: ScoreType
- Database.V5.Bloodhound.Internal.Query: ScoreTypeNone :: ScoreType
- Database.V5.Bloodhound.Internal.Query: ScoreTypeSum :: ScoreType
- Database.V5.Bloodhound.Internal.Query: ShouldMatch :: [Term] -> Cache -> BoolMatch
- Database.V5.Bloodhound.Internal.Query: SimpleQueryAll :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryAnd :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryEscape :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryFuzzy :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryNear :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryNone :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryOr :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryPhrase :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryPrecedence :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryPrefix :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQuerySlop :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: SimpleQueryWhitespace :: SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: SloppyArc :: DistanceType
- Database.V5.Bloodhound.Internal.Query: SomeRegexpFlags :: (NonEmpty RegexpFlag) -> RegexpFlags
- Database.V5.Bloodhound.Internal.Query: TemplateQueryInline :: Query -> TemplateQueryKeyValuePairs -> TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: TemplateQueryKeyValuePairs :: (HashMap TemplateQueryKey TemplateQueryValue) -> TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: Term :: Text -> Text -> Term
- Database.V5.Bloodhound.Internal.Query: TermQuery :: Term -> (Maybe Boost) -> Query
- Database.V5.Bloodhound.Internal.Query: TermsQuery :: Text -> (NonEmpty Text) -> Query
- Database.V5.Bloodhound.Internal.Query: WildcardQuery :: FieldName -> Text -> Maybe Boost -> WildcardQuery
- Database.V5.Bloodhound.Internal.Query: Yards :: DistanceUnit
- Database.V5.Bloodhound.Internal.Query: ZeroTermsAll :: ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: ZeroTermsNone :: ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
- Database.V5.Bloodhound.Internal.Query: [boolQueryBoost] :: BoolQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
- Database.V5.Bloodhound.Internal.Query: [boolQueryFilter] :: BoolQuery -> [Filter]
- Database.V5.Bloodhound.Internal.Query: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
- Database.V5.Bloodhound.Internal.Query: [boolQueryMustMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Internal.Query: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Internal.Query: [boolQueryShouldMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Internal.Query: [bottomRight] :: GeoBoundingBox -> LatLon
- Database.V5.Bloodhound.Internal.Query: [coefficient] :: Distance -> Double
- Database.V5.Bloodhound.Internal.Query: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [commonBoost] :: CommonTermsQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
- Database.V5.Bloodhound.Internal.Query: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
- Database.V5.Bloodhound.Internal.Query: [commonField] :: CommonTermsQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: [commonQuery] :: CommonTermsQuery -> QueryString
- Database.V5.Bloodhound.Internal.Query: [componentScoreFunctionFilter] :: ComponentFunctionScoreFunction -> Maybe Filter
- Database.V5.Bloodhound.Internal.Query: [componentScoreFunctionWeight] :: ComponentFunctionScoreFunction -> Maybe Weight
- Database.V5.Bloodhound.Internal.Query: [componentScoreFunction] :: ComponentFunctionScoreFunction -> FunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [disMaxQueries] :: DisMaxQuery -> [Query]
- Database.V5.Bloodhound.Internal.Query: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
- Database.V5.Bloodhound.Internal.Query: [distanceFrom] :: DistanceRange -> Distance
- Database.V5.Bloodhound.Internal.Query: [distanceTo] :: DistanceRange -> Distance
- Database.V5.Bloodhound.Internal.Query: [functionScoreBoostMode] :: FunctionScoreQuery -> Maybe BoostMode
- Database.V5.Bloodhound.Internal.Query: [functionScoreBoost] :: FunctionScoreQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [functionScoreFunctions] :: FunctionScoreQuery -> FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: [functionScoreMaxBoost] :: FunctionScoreQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [functionScoreMinScore] :: FunctionScoreQuery -> Score
- Database.V5.Bloodhound.Internal.Query: [functionScoreQuery] :: FunctionScoreQuery -> Maybe Query
- Database.V5.Bloodhound.Internal.Query: [functionScoreScoreMode] :: FunctionScoreQuery -> Maybe ScoreMode
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
- Database.V5.Bloodhound.Internal.Query: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryField] :: FuzzyQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
- Database.V5.Bloodhound.Internal.Query: [fuzzyQueryValue] :: FuzzyQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
- Database.V5.Bloodhound.Internal.Query: [geoField] :: GeoPoint -> FieldName
- Database.V5.Bloodhound.Internal.Query: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
- Database.V5.Bloodhound.Internal.Query: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
- Database.V5.Bloodhound.Internal.Query: [hasChildQueryType] :: HasChildQuery -> TypeName
- Database.V5.Bloodhound.Internal.Query: [hasChildQuery] :: HasChildQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [hasParentQueryScoreType] :: HasParentQuery -> Maybe ScoreType
- Database.V5.Bloodhound.Internal.Query: [hasParentQueryType] :: HasParentQuery -> TypeName
- Database.V5.Bloodhound.Internal.Query: [hasParentQuery] :: HasParentQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V5.Bloodhound.Internal.Query: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
- Database.V5.Bloodhound.Internal.Query: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
- Database.V5.Bloodhound.Internal.Query: [indicesQuery] :: IndicesQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [inline] :: TemplateQueryInline -> Query
- Database.V5.Bloodhound.Internal.Query: [latLon] :: GeoPoint -> LatLon
- Database.V5.Bloodhound.Internal.Query: [lat] :: LatLon -> Double
- Database.V5.Bloodhound.Internal.Query: [lon] :: LatLon -> Double
- Database.V5.Bloodhound.Internal.Query: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V5.Bloodhound.Internal.Query: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [matchQueryBoost] :: MatchQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
- Database.V5.Bloodhound.Internal.Query: [matchQueryField] :: MatchQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
- Database.V5.Bloodhound.Internal.Query: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
- Database.V5.Bloodhound.Internal.Query: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Internal.Query: [matchQueryMinimumShouldMatch] :: MatchQuery -> Maybe Text
- Database.V5.Bloodhound.Internal.Query: [matchQueryOperator] :: MatchQuery -> BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [matchQueryQueryString] :: MatchQuery -> QueryString
- Database.V5.Bloodhound.Internal.Query: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
- Database.V5.Bloodhound.Internal.Query: [moreLikeThisText] :: MoreLikeThisQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: [negativeBoost] :: BoostingQuery -> Boost
- Database.V5.Bloodhound.Internal.Query: [negativeQuery] :: BoostingQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [nestedQueryPath] :: NestedQuery -> QueryPath
- Database.V5.Bloodhound.Internal.Query: [nestedQueryScoreType] :: NestedQuery -> ScoreType
- Database.V5.Bloodhound.Internal.Query: [nestedQuery] :: NestedQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [params] :: TemplateQueryInline -> TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: [positiveQuery] :: BoostingQuery -> Query
- Database.V5.Bloodhound.Internal.Query: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [prefixQueryField] :: PrefixQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [prefixQueryPrefixValue] :: PrefixQuery -> Text
- Database.V5.Bloodhound.Internal.Query: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
- Database.V5.Bloodhound.Internal.Query: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
- Database.V5.Bloodhound.Internal.Query: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
- Database.V5.Bloodhound.Internal.Query: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
- Database.V5.Bloodhound.Internal.Query: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
- Database.V5.Bloodhound.Internal.Query: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Internal.Query: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
- Database.V5.Bloodhound.Internal.Query: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
- Database.V5.Bloodhound.Internal.Query: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
- Database.V5.Bloodhound.Internal.Query: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
- Database.V5.Bloodhound.Internal.Query: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
- Database.V5.Bloodhound.Internal.Query: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
- Database.V5.Bloodhound.Internal.Query: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
- Database.V5.Bloodhound.Internal.Query: [queryStringQuery] :: QueryStringQuery -> QueryString
- Database.V5.Bloodhound.Internal.Query: [rangeQueryBoost] :: RangeQuery -> Boost
- Database.V5.Bloodhound.Internal.Query: [rangeQueryField] :: RangeQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [rangeQueryRange] :: RangeQuery -> RangeValue
- Database.V5.Bloodhound.Internal.Query: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [regexpQueryField] :: RegexpQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
- Database.V5.Bloodhound.Internal.Query: [regexpQuery] :: RegexpQuery -> Regexp
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
- Database.V5.Bloodhound.Internal.Query: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
- Database.V5.Bloodhound.Internal.Query: [termField] :: Term -> Text
- Database.V5.Bloodhound.Internal.Query: [termValue] :: Term -> Text
- Database.V5.Bloodhound.Internal.Query: [topLeft] :: GeoBoundingBox -> LatLon
- Database.V5.Bloodhound.Internal.Query: [unFilter] :: Filter -> Query
- Database.V5.Bloodhound.Internal.Query: [unit] :: Distance -> DistanceUnit
- Database.V5.Bloodhound.Internal.Query: [wildcardQueryBoost] :: WildcardQuery -> Maybe Boost
- Database.V5.Bloodhound.Internal.Query: [wildcardQueryField] :: WildcardQuery -> FieldName
- Database.V5.Bloodhound.Internal.Query: [wildcardQuery] :: WildcardQuery -> Text
- Database.V5.Bloodhound.Internal.Query: data BoolMatch
- Database.V5.Bloodhound.Internal.Query: data BoolQuery
- Database.V5.Bloodhound.Internal.Query: data BooleanOperator
- Database.V5.Bloodhound.Internal.Query: data BoostingQuery
- Database.V5.Bloodhound.Internal.Query: data CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: data CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: data ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: data DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: data Distance
- Database.V5.Bloodhound.Internal.Query: data DistanceRange
- Database.V5.Bloodhound.Internal.Query: data DistanceType
- Database.V5.Bloodhound.Internal.Query: data DistanceUnit
- Database.V5.Bloodhound.Internal.Query: data FieldOrFields
- Database.V5.Bloodhound.Internal.Query: data FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: data FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: data FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: data FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: data FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: data GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: data GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: data GeoFilterType
- Database.V5.Bloodhound.Internal.Query: data GeoPoint
- Database.V5.Bloodhound.Internal.Query: data HasChildQuery
- Database.V5.Bloodhound.Internal.Query: data HasParentQuery
- Database.V5.Bloodhound.Internal.Query: data IndicesQuery
- Database.V5.Bloodhound.Internal.Query: data LatLon
- Database.V5.Bloodhound.Internal.Query: data MatchQuery
- Database.V5.Bloodhound.Internal.Query: data MatchQueryType
- Database.V5.Bloodhound.Internal.Query: data MinimumMatchHighLow
- Database.V5.Bloodhound.Internal.Query: data MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: data MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: data MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: data MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: data NestedQuery
- Database.V5.Bloodhound.Internal.Query: data OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: data PrefixQuery
- Database.V5.Bloodhound.Internal.Query: data Query
- Database.V5.Bloodhound.Internal.Query: data QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: data RangeExecution
- Database.V5.Bloodhound.Internal.Query: data RangeQuery
- Database.V5.Bloodhound.Internal.Query: data RangeValue
- Database.V5.Bloodhound.Internal.Query: data RegexpFlag
- Database.V5.Bloodhound.Internal.Query: data RegexpFlags
- Database.V5.Bloodhound.Internal.Query: data RegexpQuery
- Database.V5.Bloodhound.Internal.Query: data ScoreType
- Database.V5.Bloodhound.Internal.Query: data SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: data SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: data TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: data Term
- Database.V5.Bloodhound.Internal.Query: data WildcardQuery
- Database.V5.Bloodhound.Internal.Query: data ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: defaultCache :: Cache
- Database.V5.Bloodhound.Internal.Query: fieldTagged :: Monad m => (FieldName -> Object -> m a) -> Object -> m a
- Database.V5.Bloodhound.Internal.Query: functionScoreFunctionsPair :: FunctionScoreFunctions -> (Text, Value)
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.BoolMatch
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.BoolQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.BooleanOperator
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.BoostingQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.Distance
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.DistanceType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.DistanceUnit
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.FieldOrFields
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.Filter
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.GeoFilterType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.HasChildQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.HasParentQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.IndicesQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.LatLon
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MatchQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.NestedQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.PrefixQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.Query
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RangeExecution
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RangeQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RangeValue
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.Regexp
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RegexpFlag
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RegexpFlags
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.RegexpQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.ScoreType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.Term
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.WildcardQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.BoolMatch
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.BoolQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.BooleanOperator
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.BoostingQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.Distance
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.DistanceType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.DistanceUnit
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.FieldOrFields
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.Filter
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.GeoFilterType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.GeoPoint
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.HasChildQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.HasParentQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.IndicesQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.LatLon
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MatchQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.NestedQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.PrefixQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.Query
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.RangeExecution
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.RangeQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.RegexpFlags
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.RegexpQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.ScoreType
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.Term
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.WildcardQuery
- Database.V5.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.BoolMatch
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.BoolQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.BooleanOperator
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.BoostingQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.Distance
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.DistanceRange
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.DistanceType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.DistanceUnit
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FieldOrFields
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.Filter
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GeoFilterType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GeoPoint
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GreaterThan
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GreaterThanD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GreaterThanEq
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.GreaterThanEqD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.HasChildQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.HasParentQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.IndicesQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.LatLon
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.LessThan
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.LessThanD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.LessThanEq
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.LessThanEqD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MatchQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MinimumMatchHighLow
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.NestedQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.PrefixQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.Query
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RangeExecution
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RangeQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RangeValue
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.Regexp
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RegexpFlag
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RegexpFlags
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.RegexpQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.ScoreType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.Term
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.WildcardQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.BoolMatch
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.BoolQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.BooleanOperator
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.BoostingQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.CommonMinimumMatch
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.CommonTermsQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.DisMaxQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.Distance
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.DistanceRange
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.DistanceType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.DistanceUnit
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FieldOrFields
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.Filter
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FunctionScoreFunctions
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FunctionScoreQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FuzzyLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.FuzzyQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GeoBoundingBox
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GeoFilterType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GeoPoint
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GreaterThan
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GreaterThanD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GreaterThanEq
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.GreaterThanEqD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.HasChildQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.HasParentQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.IndicesQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.LatLon
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.LessThan
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.LessThanD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.LessThanEq
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.LessThanEqD
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MatchQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MinimumMatchHighLow
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MoreLikeThisQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.MultiMatchQueryType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.NestedQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.OptimizeBbox
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.PrefixQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.Query
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RangeExecution
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RangeQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RangeValue
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.Regexp
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RegexpFlag
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RegexpFlags
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.RegexpQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.ScoreType
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.SimpleQueryFlag
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.SimpleQueryStringQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.TemplateQueryInline
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.Term
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.WildcardQuery
- Database.V5.Bloodhound.Internal.Query: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Query.ZeroTermsQuery
- Database.V5.Bloodhound.Internal.Query: mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery
- Database.V5.Bloodhound.Internal.Query: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
- Database.V5.Bloodhound.Internal.Query: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
- Database.V5.Bloodhound.Internal.Query: mkQueryStringQuery :: QueryString -> QueryStringQuery
- Database.V5.Bloodhound.Internal.Query: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
- Database.V5.Bloodhound.Internal.Query: newtype Filter
- Database.V5.Bloodhound.Internal.Query: newtype GreaterThan
- Database.V5.Bloodhound.Internal.Query: newtype GreaterThanD
- Database.V5.Bloodhound.Internal.Query: newtype GreaterThanEq
- Database.V5.Bloodhound.Internal.Query: newtype GreaterThanEqD
- Database.V5.Bloodhound.Internal.Query: newtype LessThan
- Database.V5.Bloodhound.Internal.Query: newtype LessThanD
- Database.V5.Bloodhound.Internal.Query: newtype LessThanEq
- Database.V5.Bloodhound.Internal.Query: newtype LessThanEqD
- Database.V5.Bloodhound.Internal.Query: newtype Regexp
- Database.V5.Bloodhound.Internal.Query: newtype TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Internal.Query: parseRangeValue :: (FromJSON t4, FromJSON t3, FromJSON t2, FromJSON t1) => (t3 -> t5) -> (t1 -> t6) -> (t4 -> t7) -> (t2 -> t8) -> (t5 -> t6 -> b) -> (t7 -> t6 -> b) -> (t5 -> t8 -> b) -> (t7 -> t8 -> b) -> (t5 -> b) -> (t6 -> b) -> (t7 -> b) -> (t8 -> b) -> Parser b -> Object -> Parser b
- Database.V5.Bloodhound.Internal.Query: rangeValueToPair :: RangeValue -> [Pair]
- Database.V5.Bloodhound.Internal.Query: type Cache = Bool
- Database.V5.Bloodhound.Internal.Query: type TemplateQueryKey = Text
- Database.V5.Bloodhound.Internal.Query: type TemplateQueryValue = Text
- Database.V5.Bloodhound.Internal.Sort: Ascending :: SortOrder
- Database.V5.Bloodhound.Internal.Sort: CustomMissing :: Text -> Missing
- Database.V5.Bloodhound.Internal.Sort: DefaultSort :: FieldName -> SortOrder -> Maybe Text -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
- Database.V5.Bloodhound.Internal.Sort: DefaultSortSpec :: DefaultSort -> SortSpec
- Database.V5.Bloodhound.Internal.Sort: Descending :: SortOrder
- Database.V5.Bloodhound.Internal.Sort: FirstMissing :: Missing
- Database.V5.Bloodhound.Internal.Sort: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
- Database.V5.Bloodhound.Internal.Sort: LastMissing :: Missing
- Database.V5.Bloodhound.Internal.Sort: SortAvg :: SortMode
- Database.V5.Bloodhound.Internal.Sort: SortMax :: SortMode
- Database.V5.Bloodhound.Internal.Sort: SortMin :: SortMode
- Database.V5.Bloodhound.Internal.Sort: SortSum :: SortMode
- Database.V5.Bloodhound.Internal.Sort: [ignoreUnmapped] :: DefaultSort -> Maybe Text
- Database.V5.Bloodhound.Internal.Sort: [missingSort] :: DefaultSort -> Maybe Missing
- Database.V5.Bloodhound.Internal.Sort: [nestedFilter] :: DefaultSort -> Maybe Filter
- Database.V5.Bloodhound.Internal.Sort: [sortFieldName] :: DefaultSort -> FieldName
- Database.V5.Bloodhound.Internal.Sort: [sortMode] :: DefaultSort -> Maybe SortMode
- Database.V5.Bloodhound.Internal.Sort: [sortOrder] :: DefaultSort -> SortOrder
- Database.V5.Bloodhound.Internal.Sort: data DefaultSort
- Database.V5.Bloodhound.Internal.Sort: data Missing
- Database.V5.Bloodhound.Internal.Sort: data SortMode
- Database.V5.Bloodhound.Internal.Sort: data SortOrder
- Database.V5.Bloodhound.Internal.Sort: data SortSpec
- Database.V5.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Sort.Missing
- Database.V5.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Sort.SortMode
- Database.V5.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Sort.SortOrder
- Database.V5.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Sort.SortSpec
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Sort.DefaultSort
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Sort.Missing
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Sort.SortMode
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Sort.SortOrder
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Sort.SortSpec
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Sort.DefaultSort
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Sort.Missing
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Sort.SortMode
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Sort.SortOrder
- Database.V5.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Sort.SortSpec
- Database.V5.Bloodhound.Internal.Sort: mkSort :: FieldName -> SortOrder -> DefaultSort
- Database.V5.Bloodhound.Internal.Sort: type Sort = [SortSpec]
- Database.V5.Bloodhound.Internal.StringlyTyped: StringlyTypedBool :: Bool -> StringlyTypedBool
- Database.V5.Bloodhound.Internal.StringlyTyped: StringlyTypedDouble :: Double -> StringlyTypedDouble
- Database.V5.Bloodhound.Internal.StringlyTyped: StringlyTypedInt :: Int -> StringlyTypedInt
- Database.V5.Bloodhound.Internal.StringlyTyped: [unStringlyTypedBool] :: StringlyTypedBool -> Bool
- Database.V5.Bloodhound.Internal.StringlyTyped: [unStringlyTypedDouble] :: StringlyTypedDouble -> Double
- Database.V5.Bloodhound.Internal.StringlyTyped: [unStringlyTypedInt] :: StringlyTypedInt -> Int
- Database.V5.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.StringlyTyped.StringlyTypedBool
- Database.V5.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.StringlyTyped.StringlyTypedDouble
- Database.V5.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.StringlyTyped.StringlyTypedInt
- Database.V5.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedBool
- Database.V5.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedDouble
- Database.V5.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedInt
- Database.V5.Bloodhound.Internal.StringlyTyped: unStringlyTypeJSON :: Value -> Value
- Database.V5.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: PhraseSuggesterCollate :: TemplateQueryInline -> Bool -> PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: Suggest :: Text -> Text -> SuggestType -> Suggest
- Database.V5.Bloodhound.Internal.Suggest: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorsField] :: DirectGenerators -> FieldName
- Database.V5.Bloodhound.Internal.Suggest: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [nsrName] :: NamedSuggestionResponse -> Text
- Database.V5.Bloodhound.Internal.Suggest: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> TemplateQueryInline
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterField] :: PhraseSuggester -> FieldName
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
- Database.V5.Bloodhound.Internal.Suggest: [suggestName] :: Suggest -> Text
- Database.V5.Bloodhound.Internal.Suggest: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
- Database.V5.Bloodhound.Internal.Suggest: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
- Database.V5.Bloodhound.Internal.Suggest: [suggestOptionsScore] :: SuggestOptions -> Double
- Database.V5.Bloodhound.Internal.Suggest: [suggestOptionsText] :: SuggestOptions -> Text
- Database.V5.Bloodhound.Internal.Suggest: [suggestResponseLength] :: SuggestResponse -> Int
- Database.V5.Bloodhound.Internal.Suggest: [suggestResponseOffset] :: SuggestResponse -> Int
- Database.V5.Bloodhound.Internal.Suggest: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
- Database.V5.Bloodhound.Internal.Suggest: [suggestResponseText] :: SuggestResponse -> Text
- Database.V5.Bloodhound.Internal.Suggest: [suggestText] :: Suggest -> Text
- Database.V5.Bloodhound.Internal.Suggest: [suggestType] :: Suggest -> SuggestType
- Database.V5.Bloodhound.Internal.Suggest: data DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: data DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: data NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: data PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: data PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: data PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: data Suggest
- Database.V5.Bloodhound.Internal.Suggest: data SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: data SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: data SuggestType
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.Suggest
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Internal.Suggest.SuggestType
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.Suggest
- Database.V5.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Internal.Suggest.SuggestType
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.Suggest
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.V5.Bloodhound.Internal.Suggest.SuggestType
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.V5.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.NamedSuggestionResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.PhraseSuggester
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.Suggest
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.SuggestOptions
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.SuggestResponse
- Database.V5.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.V5.Bloodhound.Internal.Suggest.SuggestType
- Database.V5.Bloodhound.Internal.Suggest: mkDirectGenerators :: FieldName -> DirectGenerators
- Database.V5.Bloodhound.Internal.Suggest: mkPhraseSuggester :: FieldName -> PhraseSuggester
- Database.V5.Bloodhound.Types: (<&&>) :: Seminearring a => a -> a -> a
- Database.V5.Bloodhound.Types: (<||>) :: Seminearring a => a -> a -> a
- Database.V5.Bloodhound.Types: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
- Database.V5.Bloodhound.Types: AddTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Types: AllAliasRouting :: RoutingValue -> AliasRouting
- Database.V5.Bloodhound.Types: AllIndexes :: IndexSelection
- Database.V5.Bloodhound.Types: AllNodes :: NodeSelection
- Database.V5.Bloodhound.Types: AllRegexpFlags :: RegexpFlags
- Database.V5.Bloodhound.Types: AllSnapshotRepos :: SnapshotRepoSelection
- Database.V5.Bloodhound.Types: AllSnapshots :: SnapshotSelection
- Database.V5.Bloodhound.Types: AllocAll :: AllocationPolicy
- Database.V5.Bloodhound.Types: AllocNewPrimaries :: AllocationPolicy
- Database.V5.Bloodhound.Types: AllocNone :: AllocationPolicy
- Database.V5.Bloodhound.Types: AllocPrimaries :: AllocationPolicy
- Database.V5.Bloodhound.Types: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
- Database.V5.Bloodhound.Types: Analysis :: Map Text AnalyzerDefinition -> Map Text TokenizerDefinition -> Map Text TokenFilterDefinition -> Map Text CharFilterDefinition -> Analysis
- Database.V5.Bloodhound.Types: AnalysisSetting :: Analysis -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: AnalyzeWildcard :: Bool -> AnalyzeWildcard
- Database.V5.Bloodhound.Types: Analyzer :: Text -> Analyzer
- Database.V5.Bloodhound.Types: AnalyzerDefinition :: Maybe Tokenizer -> [TokenFilter] -> [CharFilter] -> AnalyzerDefinition
- Database.V5.Bloodhound.Types: And :: BooleanOperator
- Database.V5.Bloodhound.Types: AnyString :: RegexpFlag
- Database.V5.Bloodhound.Types: Arabic :: Language
- Database.V5.Bloodhound.Types: Arc :: DistanceType
- Database.V5.Bloodhound.Types: Armenian :: Language
- Database.V5.Bloodhound.Types: Ascending :: SortOrder
- Database.V5.Bloodhound.Types: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: Automaton :: RegexpFlag
- Database.V5.Bloodhound.Types: BH :: ReaderT BHEnv m a -> BH m a
- Database.V5.Bloodhound.Types: Basque :: Language
- Database.V5.Bloodhound.Types: Bengali :: Language
- Database.V5.Bloodhound.Types: BlocksMetaData :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: BlocksRead :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: BlocksReadOnly :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: BlocksWrite :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: BoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
- Database.V5.Bloodhound.Types: BoolValue :: Bool -> BucketValue
- Database.V5.Bloodhound.Types: Boost :: Double -> Boost
- Database.V5.Bloodhound.Types: BoostModeAvg :: BoostMode
- Database.V5.Bloodhound.Types: BoostModeMax :: BoostMode
- Database.V5.Bloodhound.Types: BoostModeMin :: BoostMode
- Database.V5.Bloodhound.Types: BoostModeMultiply :: BoostMode
- Database.V5.Bloodhound.Types: BoostModeReplace :: BoostMode
- Database.V5.Bloodhound.Types: BoostModeSum :: BoostMode
- Database.V5.Bloodhound.Types: BoostTerms :: Double -> BoostTerms
- Database.V5.Bloodhound.Types: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
- Database.V5.Bloodhound.Types: BoundTransportAddress :: EsAddress -> [EsAddress] -> BoundTransportAddress
- Database.V5.Bloodhound.Types: Brazilian :: Language
- Database.V5.Bloodhound.Types: BreadthFirst :: CollectionMode
- Database.V5.Bloodhound.Types: Bucket :: [a] -> Bucket a
- Database.V5.Bloodhound.Types: BuildHash :: Text -> BuildHash
- Database.V5.Bloodhound.Types: Bulgarian :: Language
- Database.V5.Bloodhound.Types: BulkCreate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Types: BulkCreateEncoding :: IndexName -> MappingName -> DocId -> Encoding -> BulkOperation
- Database.V5.Bloodhound.Types: BulkDelete :: IndexName -> MappingName -> DocId -> BulkOperation
- Database.V5.Bloodhound.Types: BulkIndex :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Types: BulkIndexAuto :: IndexName -> MappingName -> Value -> BulkOperation
- Database.V5.Bloodhound.Types: BulkIndexEncodingAuto :: IndexName -> MappingName -> Encoding -> BulkOperation
- Database.V5.Bloodhound.Types: BulkUpdate :: IndexName -> MappingName -> DocId -> Value -> BulkOperation
- Database.V5.Bloodhound.Types: Bytes :: Int -> Bytes
- Database.V5.Bloodhound.Types: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
- Database.V5.Bloodhound.Types: CacheFilterExpire :: (Maybe NominalDiffTime) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: CacheFilterMaxSize :: (Maybe Bytes) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: CacheKey :: Text -> CacheKey
- Database.V5.Bloodhound.Types: CacheName :: Text -> CacheName
- Database.V5.Bloodhound.Types: CardinalityAgg :: CardinalityAggregation -> Aggregation
- Database.V5.Bloodhound.Types: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
- Database.V5.Bloodhound.Types: Catalan :: Language
- Database.V5.Bloodhound.Types: Centimeters :: DistanceUnit
- Database.V5.Bloodhound.Types: CharFilter :: Text -> CharFilter
- Database.V5.Bloodhound.Types: CharFilterDefinitionMapping :: (Map Text Text) -> CharFilterDefinition
- Database.V5.Bloodhound.Types: CharFilterDefinitionPatternReplace :: Text -> Text -> Maybe Text -> CharFilterDefinition
- Database.V5.Bloodhound.Types: Cjk :: Language
- Database.V5.Bloodhound.Types: CloseIndex :: OpenCloseIndex
- Database.V5.Bloodhound.Types: ClusterName :: Text -> ClusterName
- Database.V5.Bloodhound.Types: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
- Database.V5.Bloodhound.Types: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
- Database.V5.Bloodhound.Types: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
- Database.V5.Bloodhound.Types: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
- Database.V5.Bloodhound.Types: Complement :: RegexpFlag
- Database.V5.Bloodhound.Types: ComponentFunctionScoreFunction :: Maybe Filter -> FunctionScoreFunction -> Maybe Weight -> ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Types: CompoundFileFormat :: Bool -> CompoundFormat
- Database.V5.Bloodhound.Types: CompressionBest :: Compression
- Database.V5.Bloodhound.Types: CompressionDefault :: Compression
- Database.V5.Bloodhound.Types: CompressionSetting :: Compression -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: ConstantScoreQuery :: Query -> Boost -> Query
- Database.V5.Bloodhound.Types: CustomMissing :: Text -> Missing
- Database.V5.Bloodhound.Types: CustomTags :: ([Text], [Text]) -> HighlightTag
- Database.V5.Bloodhound.Types: CutoffFrequency :: Double -> CutoffFrequency
- Database.V5.Bloodhound.Types: Czech :: Language
- Database.V5.Bloodhound.Types: DMDate :: Day -> DateMathAnchor
- Database.V5.Bloodhound.Types: DMDay :: DateMathUnit
- Database.V5.Bloodhound.Types: DMHour :: DateMathUnit
- Database.V5.Bloodhound.Types: DMMinute :: DateMathUnit
- Database.V5.Bloodhound.Types: DMMonth :: DateMathUnit
- Database.V5.Bloodhound.Types: DMNow :: DateMathAnchor
- Database.V5.Bloodhound.Types: DMSecond :: DateMathUnit
- Database.V5.Bloodhound.Types: DMWeek :: DateMathUnit
- Database.V5.Bloodhound.Types: DMYear :: DateMathUnit
- Database.V5.Bloodhound.Types: Danish :: Language
- Database.V5.Bloodhound.Types: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
- Database.V5.Bloodhound.Types: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
- Database.V5.Bloodhound.Types: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
- Database.V5.Bloodhound.Types: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
- Database.V5.Bloodhound.Types: DateRangeAgg :: DateRangeAggregation -> Aggregation
- Database.V5.Bloodhound.Types: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
- Database.V5.Bloodhound.Types: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Types: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Types: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
- Database.V5.Bloodhound.Types: DateRangeTo :: DateMathExpr -> DateRangeAggRange
- Database.V5.Bloodhound.Types: Day :: Interval
- Database.V5.Bloodhound.Types: Days :: TimeInterval
- Database.V5.Bloodhound.Types: DefaultEncoder :: HighlightEncoder
- Database.V5.Bloodhound.Types: DefaultSort :: FieldName -> SortOrder -> Maybe Text -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
- Database.V5.Bloodhound.Types: DefaultSortSpec :: DefaultSort -> SortSpec
- Database.V5.Bloodhound.Types: DepthFirst :: CollectionMode
- Database.V5.Bloodhound.Types: Descending :: SortOrder
- Database.V5.Bloodhound.Types: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Types: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Types: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Types: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
- Database.V5.Bloodhound.Types: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
- Database.V5.Bloodhound.Types: DisableCoord :: Bool -> DisableCoord
- Database.V5.Bloodhound.Types: Distance :: Double -> DistanceUnit -> Distance
- Database.V5.Bloodhound.Types: DistanceRange :: Distance -> Distance -> DistanceRange
- Database.V5.Bloodhound.Types: DocId :: Text -> DocId
- Database.V5.Bloodhound.Types: DocumentParent :: DocId -> DocumentParent
- Database.V5.Bloodhound.Types: Dutch :: Language
- Database.V5.Bloodhound.Types: Empty :: RegexpFlag
- Database.V5.Bloodhound.Types: EnablePositionIncrements :: Bool -> EnablePositionIncrements
- Database.V5.Bloodhound.Types: English :: Language
- Database.V5.Bloodhound.Types: EsAddress :: Text -> EsAddress
- Database.V5.Bloodhound.Types: EsError :: Int -> Text -> EsError
- Database.V5.Bloodhound.Types: EsPassword :: Text -> EsPassword
- Database.V5.Bloodhound.Types: EsProtocolException :: !Text -> !LByteString -> EsProtocolException
- Database.V5.Bloodhound.Types: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
- Database.V5.Bloodhound.Types: EsResultFound :: DocVersion -> a -> EsResultFound a
- Database.V5.Bloodhound.Types: EsUsername :: Text -> EsUsername
- Database.V5.Bloodhound.Types: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
- Database.V5.Bloodhound.Types: ExactSnap :: SnapshotName -> SnapshotPattern
- Database.V5.Bloodhound.Types: Exclude :: [Pattern] -> Exclude
- Database.V5.Bloodhound.Types: Existence :: Bool -> Existence
- Database.V5.Bloodhound.Types: ExplicitShards :: Int -> InitialShardCount
- Database.V5.Bloodhound.Types: ExternalDocVersion :: DocVersion -> ExternalDocVersion
- Database.V5.Bloodhound.Types: ExternalGT :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Types: ExternalGTE :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Types: FSBuffered :: FSType
- Database.V5.Bloodhound.Types: FSSimple :: FSType
- Database.V5.Bloodhound.Types: Factor :: Float -> Factor
- Database.V5.Bloodhound.Types: FactorMissingFieldValue :: Float -> FactorMissingFieldValue
- Database.V5.Bloodhound.Types: FactorModifierLn :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierLn1p :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierLn2p :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierLog :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierLog1p :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierLog2p :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierNone :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierReciprocal :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierSqrt :: FactorModifier
- Database.V5.Bloodhound.Types: FactorModifierSquare :: FactorModifier
- Database.V5.Bloodhound.Types: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: FastVector :: FastVectorHighlight -> HighlightSettings
- Database.V5.Bloodhound.Types: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
- Database.V5.Bloodhound.Types: Feet :: DistanceUnit
- Database.V5.Bloodhound.Types: FieldDefinition :: FieldType -> FieldDefinition
- Database.V5.Bloodhound.Types: FieldHighlight :: FieldName -> (Maybe HighlightSettings) -> FieldHighlight
- Database.V5.Bloodhound.Types: FieldName :: Text -> FieldName
- Database.V5.Bloodhound.Types: FieldValueCount :: FieldName -> ValueCountAggregation
- Database.V5.Bloodhound.Types: FieldValueFactor :: FieldName -> Maybe Factor -> Maybe FactorModifier -> Maybe FactorMissingFieldValue -> FieldValueFactor
- Database.V5.Bloodhound.Types: Filter :: Query -> Filter
- Database.V5.Bloodhound.Types: FilterAgg :: FilterAggregation -> Aggregation
- Database.V5.Bloodhound.Types: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
- Database.V5.Bloodhound.Types: Finnish :: Language
- Database.V5.Bloodhound.Types: FirstMissing :: Missing
- Database.V5.Bloodhound.Types: FofField :: FieldName -> FieldOrFields
- Database.V5.Bloodhound.Types: FofFields :: (NonEmpty FieldName) -> FieldOrFields
- Database.V5.Bloodhound.Types: ForceMergeIndexSettings :: Maybe Int -> Bool -> Bool -> ForceMergeIndexSettings
- Database.V5.Bloodhound.Types: ForceVersion :: ExternalDocVersion -> VersionControl
- Database.V5.Bloodhound.Types: French :: Language
- Database.V5.Bloodhound.Types: From :: Int -> From
- Database.V5.Bloodhound.Types: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
- Database.V5.Bloodhound.Types: FullMinus1Shards :: InitialShardCount
- Database.V5.Bloodhound.Types: FullNodeId :: Text -> FullNodeId
- Database.V5.Bloodhound.Types: FullShards :: InitialShardCount
- Database.V5.Bloodhound.Types: FunctionScoreFunctionFieldValueFactor :: FieldValueFactor -> FunctionScoreFunction
- Database.V5.Bloodhound.Types: FunctionScoreFunctionRandom :: Seed -> FunctionScoreFunction
- Database.V5.Bloodhound.Types: FunctionScoreFunctionScript :: Script -> FunctionScoreFunction
- Database.V5.Bloodhound.Types: FunctionScoreMultiple :: (NonEmpty ComponentFunctionScoreFunction) -> FunctionScoreFunctions
- Database.V5.Bloodhound.Types: FunctionScoreQuery :: Maybe Query -> Maybe Boost -> FunctionScoreFunctions -> Maybe Boost -> Maybe BoostMode -> Score -> Maybe ScoreMode -> FunctionScoreQuery
- Database.V5.Bloodhound.Types: FunctionScoreSingle :: FunctionScoreFunction -> FunctionScoreFunctions
- Database.V5.Bloodhound.Types: Fuzziness :: Double -> Fuzziness
- Database.V5.Bloodhound.Types: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Types: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
- Database.V5.Bloodhound.Types: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
- Database.V5.Bloodhound.Types: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: Galician :: Language
- Database.V5.Bloodhound.Types: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
- Database.V5.Bloodhound.Types: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
- Database.V5.Bloodhound.Types: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Types: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
- Database.V5.Bloodhound.Types: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Types: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
- Database.V5.Bloodhound.Types: GeoFilterIndexed :: GeoFilterType
- Database.V5.Bloodhound.Types: GeoFilterMemory :: GeoFilterType
- Database.V5.Bloodhound.Types: GeoPoint :: FieldName -> LatLon -> GeoPoint
- Database.V5.Bloodhound.Types: German :: Language
- Database.V5.Bloodhound.Types: German2 :: Language
- Database.V5.Bloodhound.Types: GlobalOrdinals :: ExecutionHint
- Database.V5.Bloodhound.Types: GlobalOrdinalsHash :: ExecutionHint
- Database.V5.Bloodhound.Types: GlobalOrdinalsLowCardinality :: ExecutionHint
- Database.V5.Bloodhound.Types: GranularAliasRouting :: (Maybe SearchAliasRouting) -> (Maybe IndexAliasRouting) -> AliasRouting
- Database.V5.Bloodhound.Types: GreaterThan :: Double -> GreaterThan
- Database.V5.Bloodhound.Types: GreaterThanD :: UTCTime -> GreaterThanD
- Database.V5.Bloodhound.Types: GreaterThanEq :: Double -> GreaterThanEq
- Database.V5.Bloodhound.Types: GreaterThanEqD :: UTCTime -> GreaterThanEqD
- Database.V5.Bloodhound.Types: Greek :: Language
- Database.V5.Bloodhound.Types: HTMLEncoder :: HighlightEncoder
- Database.V5.Bloodhound.Types: HasChildQuery :: TypeName -> Query -> Maybe ScoreType -> HasChildQuery
- Database.V5.Bloodhound.Types: HasParentQuery :: TypeName -> Query -> Maybe ScoreType -> HasParentQuery
- Database.V5.Bloodhound.Types: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
- Database.V5.Bloodhound.Types: Hindi :: Language
- Database.V5.Bloodhound.Types: Hit :: IndexName -> MappingName -> DocId -> Score -> Maybe a -> Maybe HitFields -> Maybe HitHighlight -> Hit a
- Database.V5.Bloodhound.Types: HitFields :: (Map Text [Value]) -> HitFields
- Database.V5.Bloodhound.Types: Hour :: Interval
- Database.V5.Bloodhound.Types: Hours :: TimeInterval
- Database.V5.Bloodhound.Types: Hungarian :: Language
- Database.V5.Bloodhound.Types: IdsQuery :: MappingName -> [DocId] -> Query
- Database.V5.Bloodhound.Types: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
- Database.V5.Bloodhound.Types: Inches :: DistanceUnit
- Database.V5.Bloodhound.Types: Include :: [Pattern] -> Include
- Database.V5.Bloodhound.Types: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
- Database.V5.Bloodhound.Types: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
- Database.V5.Bloodhound.Types: IndexAliasName :: IndexName -> IndexAliasName
- Database.V5.Bloodhound.Types: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
- Database.V5.Bloodhound.Types: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
- Database.V5.Bloodhound.Types: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
- Database.V5.Bloodhound.Types: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: IndexConcurrency :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: IndexDocumentSettings :: VersionControl -> Maybe DocumentParent -> IndexDocumentSettings
- Database.V5.Bloodhound.Types: IndexList :: (NonEmpty IndexName) -> IndexSelection
- Database.V5.Bloodhound.Types: IndexName :: Text -> IndexName
- Database.V5.Bloodhound.Types: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
- Database.V5.Bloodhound.Types: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
- Database.V5.Bloodhound.Types: IndexTemplate :: TemplatePattern -> Maybe IndexSettings -> [Value] -> IndexTemplate
- Database.V5.Bloodhound.Types: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
- Database.V5.Bloodhound.Types: Indonesian :: Language
- Database.V5.Bloodhound.Types: InternalVersion :: DocVersion -> VersionControl
- Database.V5.Bloodhound.Types: Intersection :: RegexpFlag
- Database.V5.Bloodhound.Types: Interval :: RegexpFlag
- Database.V5.Bloodhound.Types: Irish :: Language
- Database.V5.Bloodhound.Types: Italian :: Language
- Database.V5.Bloodhound.Types: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
- Database.V5.Bloodhound.Types: JVMGCCollector :: Text -> JVMGCCollector
- Database.V5.Bloodhound.Types: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
- Database.V5.Bloodhound.Types: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
- Database.V5.Bloodhound.Types: JVMMemoryPool :: Text -> JVMMemoryPool
- Database.V5.Bloodhound.Types: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
- Database.V5.Bloodhound.Types: Kilometers :: DistanceUnit
- Database.V5.Bloodhound.Types: Kp :: Language
- Database.V5.Bloodhound.Types: LastMissing :: Missing
- Database.V5.Bloodhound.Types: LatLon :: Double -> Double -> LatLon
- Database.V5.Bloodhound.Types: Latvian :: Language
- Database.V5.Bloodhound.Types: Lenient :: Bool -> Lenient
- Database.V5.Bloodhound.Types: LessThan :: Double -> LessThan
- Database.V5.Bloodhound.Types: LessThanD :: UTCTime -> LessThanD
- Database.V5.Bloodhound.Types: LessThanEq :: Double -> LessThanEq
- Database.V5.Bloodhound.Types: LessThanEqD :: UTCTime -> LessThanEqD
- Database.V5.Bloodhound.Types: Lithuanian :: Language
- Database.V5.Bloodhound.Types: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
- Database.V5.Bloodhound.Types: LocalNode :: NodeSelection
- Database.V5.Bloodhound.Types: Locale :: Text -> Locale
- Database.V5.Bloodhound.Types: Lovins :: Language
- Database.V5.Bloodhound.Types: LowercaseExpanded :: Bool -> LowercaseExpanded
- Database.V5.Bloodhound.Types: MacAddress :: Text -> MacAddress
- Database.V5.Bloodhound.Types: Map :: ExecutionHint
- Database.V5.Bloodhound.Types: Mapping :: TypeName -> [MappingField] -> Mapping
- Database.V5.Bloodhound.Types: MappingField :: FieldName -> FieldDefinition -> MappingField
- Database.V5.Bloodhound.Types: MappingName :: Text -> MappingName
- Database.V5.Bloodhound.Types: MappingTotalFieldsLimit :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: MatchAllQuery :: (Maybe Boost) -> Query
- Database.V5.Bloodhound.Types: MatchPhrase :: MatchQueryType
- Database.V5.Bloodhound.Types: MatchPhrasePrefix :: MatchQueryType
- Database.V5.Bloodhound.Types: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> Maybe Text -> MatchQuery
- Database.V5.Bloodhound.Types: MaxDocFrequency :: Int -> MaxDocFrequency
- Database.V5.Bloodhound.Types: MaxExpansions :: Int -> MaxExpansions
- Database.V5.Bloodhound.Types: MaxQueryTerms :: Int -> MaxQueryTerms
- Database.V5.Bloodhound.Types: MaxWordLength :: Int -> MaxWordLength
- Database.V5.Bloodhound.Types: MaybeNA :: Maybe a -> MaybeNA a
- Database.V5.Bloodhound.Types: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
- Database.V5.Bloodhound.Types: Meters :: DistanceUnit
- Database.V5.Bloodhound.Types: Miles :: DistanceUnit
- Database.V5.Bloodhound.Types: Millimeters :: DistanceUnit
- Database.V5.Bloodhound.Types: MinDocFrequency :: Int -> MinDocFrequency
- Database.V5.Bloodhound.Types: MinWordLength :: Int -> MinWordLength
- Database.V5.Bloodhound.Types: MinimumMatch :: Int -> MinimumMatch
- Database.V5.Bloodhound.Types: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
- Database.V5.Bloodhound.Types: MinimumTermFrequency :: Int -> MinimumTermFrequency
- Database.V5.Bloodhound.Types: Minute :: Interval
- Database.V5.Bloodhound.Types: Minutes :: TimeInterval
- Database.V5.Bloodhound.Types: MissingAgg :: MissingAggregation -> Aggregation
- Database.V5.Bloodhound.Types: MissingAggregation :: Text -> MissingAggregation
- Database.V5.Bloodhound.Types: MissingResult :: Int -> MissingResult
- Database.V5.Bloodhound.Types: Month :: Interval
- Database.V5.Bloodhound.Types: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Types: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
- Database.V5.Bloodhound.Types: MultiMatchBestFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Types: MultiMatchCrossFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Types: MultiMatchMostFields :: MultiMatchQueryType
- Database.V5.Bloodhound.Types: MultiMatchPhrase :: MultiMatchQueryType
- Database.V5.Bloodhound.Types: MultiMatchPhrasePrefix :: MultiMatchQueryType
- Database.V5.Bloodhound.Types: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
- Database.V5.Bloodhound.Types: MustMatch :: Term -> Cache -> BoolMatch
- Database.V5.Bloodhound.Types: MustNotMatch :: Term -> Cache -> BoolMatch
- Database.V5.Bloodhound.Types: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
- Database.V5.Bloodhound.Types: NauticalMiles :: DistanceUnit
- Database.V5.Bloodhound.Types: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
- Database.V5.Bloodhound.Types: NetworkInterfaceName :: Text -> NetworkInterfaceName
- Database.V5.Bloodhound.Types: Ngram :: Int -> Int -> [TokenChar] -> Ngram
- Database.V5.Bloodhound.Types: NoOptimizeBbox :: OptimizeBbox
- Database.V5.Bloodhound.Types: NoRegexpFlags :: RegexpFlags
- Database.V5.Bloodhound.Types: NoSource :: Source
- Database.V5.Bloodhound.Types: NoVersionControl :: VersionControl
- Database.V5.Bloodhound.Types: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
- Database.V5.Bloodhound.Types: NodeAttrName :: Text -> NodeAttrName
- Database.V5.Bloodhound.Types: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
- Database.V5.Bloodhound.Types: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
- Database.V5.Bloodhound.Types: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
- Database.V5.Bloodhound.Types: NodeByFullNodeId :: FullNodeId -> NodeSelector
- Database.V5.Bloodhound.Types: NodeByHost :: Server -> NodeSelector
- Database.V5.Bloodhound.Types: NodeByName :: NodeName -> NodeSelector
- Database.V5.Bloodhound.Types: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Maybe Text -> Text -> Text -> NodeDataPathStats
- Database.V5.Bloodhound.Types: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
- Database.V5.Bloodhound.Types: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
- Database.V5.Bloodhound.Types: NodeHTTPInfo :: Bytes -> BoundTransportAddress -> NodeHTTPInfo
- Database.V5.Bloodhound.Types: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
- Database.V5.Bloodhound.Types: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
- Database.V5.Bloodhound.Types: NodeInfo :: Maybe EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> Maybe NodeNetworkInfo -> NodeThreadPoolsInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
- Database.V5.Bloodhound.Types: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VMVersion -> Text -> JVMVersion -> PID -> NodeJVMInfo
- Database.V5.Bloodhound.Types: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
- Database.V5.Bloodhound.Types: NodeList :: (NonEmpty NodeSelector) -> NodeSelection
- Database.V5.Bloodhound.Types: NodeName :: Text -> NodeName
- Database.V5.Bloodhound.Types: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
- Database.V5.Bloodhound.Types: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
- Database.V5.Bloodhound.Types: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
- Database.V5.Bloodhound.Types: NodeOSInfo :: NominalDiffTime -> Text -> Text -> VersionNumber -> Int -> Int -> NodeOSInfo
- Database.V5.Bloodhound.Types: NodeOSStats :: UTCTime -> Int -> Maybe LoadAvgs -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Bytes -> Bytes -> NodeOSStats
- Database.V5.Bloodhound.Types: NodePluginInfo :: Maybe Bool -> Maybe Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
- Database.V5.Bloodhound.Types: NodeProcessInfo :: Bool -> Maybe Int -> PID -> NominalDiffTime -> NodeProcessInfo
- Database.V5.Bloodhound.Types: NodeProcessStats :: UTCTime -> Int -> Int -> Int -> NominalDiffTime -> Bytes -> NodeProcessStats
- Database.V5.Bloodhound.Types: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> Maybe NodeNetworkStats -> NodeThreadPoolsStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
- Database.V5.Bloodhound.Types: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: NodeThreadPoolsInfo :: NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> Maybe NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolInfo -> NodeThreadPoolsInfo
- Database.V5.Bloodhound.Types: NodeThreadPoolsStats :: NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolStats -> NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> Maybe NodeThreadPoolStats -> NodeThreadPoolsStats
- Database.V5.Bloodhound.Types: NodeTransportInfo :: [BoundTransportAddress] -> BoundTransportAddress -> NodeTransportInfo
- Database.V5.Bloodhound.Types: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
- Database.V5.Bloodhound.Types: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
- Database.V5.Bloodhound.Types: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
- Database.V5.Bloodhound.Types: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
- Database.V5.Bloodhound.Types: Norwegian :: Language
- Database.V5.Bloodhound.Types: NullValue :: Bool -> NullValue
- Database.V5.Bloodhound.Types: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: OpenIndex :: OpenCloseIndex
- Database.V5.Bloodhound.Types: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
- Database.V5.Bloodhound.Types: Or :: BooleanOperator
- Database.V5.Bloodhound.Types: Ordinals :: ExecutionHint
- Database.V5.Bloodhound.Types: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
- Database.V5.Bloodhound.Types: PID :: Int -> PID
- Database.V5.Bloodhound.Types: Pattern :: Text -> Pattern
- Database.V5.Bloodhound.Types: PercentMatch :: Double -> PercentMatch
- Database.V5.Bloodhound.Types: Persian :: Language
- Database.V5.Bloodhound.Types: PhraseSlop :: Int -> PhraseSlop
- Database.V5.Bloodhound.Types: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
- Database.V5.Bloodhound.Types: PhraseSuggesterCollate :: TemplateQueryInline -> Bool -> PhraseSuggesterCollate
- Database.V5.Bloodhound.Types: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Types: Plain :: PlainHighlight -> HighlightSettings
- Database.V5.Bloodhound.Types: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
- Database.V5.Bloodhound.Types: Plane :: DistanceType
- Database.V5.Bloodhound.Types: PluginName :: Text -> PluginName
- Database.V5.Bloodhound.Types: PopPattern :: Pattern -> PatternOrPatterns
- Database.V5.Bloodhound.Types: PopPatterns :: [Pattern] -> PatternOrPatterns
- Database.V5.Bloodhound.Types: Porter :: Language
- Database.V5.Bloodhound.Types: Portuguese :: Language
- Database.V5.Bloodhound.Types: Postings :: PostingsHighlight -> HighlightSettings
- Database.V5.Bloodhound.Types: PostingsHighlight :: (Maybe CommonHighlight) -> PostingsHighlight
- Database.V5.Bloodhound.Types: PrefixLength :: Int -> PrefixLength
- Database.V5.Bloodhound.Types: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
- Database.V5.Bloodhound.Types: Quarter :: Interval
- Database.V5.Bloodhound.Types: QueryBoolQuery :: BoolQuery -> Query
- Database.V5.Bloodhound.Types: QueryBoostingQuery :: BoostingQuery -> Query
- Database.V5.Bloodhound.Types: QueryCommonTermsQuery :: CommonTermsQuery -> Query
- Database.V5.Bloodhound.Types: QueryDisMaxQuery :: DisMaxQuery -> Query
- Database.V5.Bloodhound.Types: QueryExistsQuery :: FieldName -> Query
- Database.V5.Bloodhound.Types: QueryFunctionScoreQuery :: FunctionScoreQuery -> Query
- Database.V5.Bloodhound.Types: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
- Database.V5.Bloodhound.Types: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
- Database.V5.Bloodhound.Types: QueryFuzzyQuery :: FuzzyQuery -> Query
- Database.V5.Bloodhound.Types: QueryHasChildQuery :: HasChildQuery -> Query
- Database.V5.Bloodhound.Types: QueryHasParentQuery :: HasParentQuery -> Query
- Database.V5.Bloodhound.Types: QueryIndicesQuery :: IndicesQuery -> Query
- Database.V5.Bloodhound.Types: QueryMatchNoneQuery :: Query
- Database.V5.Bloodhound.Types: QueryMatchQuery :: MatchQuery -> Query
- Database.V5.Bloodhound.Types: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
- Database.V5.Bloodhound.Types: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
- Database.V5.Bloodhound.Types: QueryMultiMatchQuery :: MultiMatchQuery -> Query
- Database.V5.Bloodhound.Types: QueryNestedQuery :: NestedQuery -> Query
- Database.V5.Bloodhound.Types: QueryPath :: Text -> QueryPath
- Database.V5.Bloodhound.Types: QueryPrefixQuery :: PrefixQuery -> Query
- Database.V5.Bloodhound.Types: QueryQueryStringQuery :: QueryStringQuery -> Query
- Database.V5.Bloodhound.Types: QueryRangeQuery :: RangeQuery -> Query
- Database.V5.Bloodhound.Types: QueryRegexpQuery :: RegexpQuery -> Query
- Database.V5.Bloodhound.Types: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
- Database.V5.Bloodhound.Types: QueryString :: Text -> QueryString
- Database.V5.Bloodhound.Types: 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
- Database.V5.Bloodhound.Types: QueryTemplateQueryInline :: TemplateQueryInline -> Query
- Database.V5.Bloodhound.Types: QueryWildcardQuery :: WildcardQuery -> Query
- Database.V5.Bloodhound.Types: QuorumMinus1Shards :: InitialShardCount
- Database.V5.Bloodhound.Types: QuorumShards :: InitialShardCount
- Database.V5.Bloodhound.Types: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
- Database.V5.Bloodhound.Types: RRSubWholeMatch :: RestoreRenameToken
- Database.V5.Bloodhound.Types: RRTLit :: Text -> RestoreRenameToken
- Database.V5.Bloodhound.Types: RangeDateGt :: GreaterThanD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateGte :: GreaterThanEqD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateLt :: LessThanD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDateLte :: LessThanEqD -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGt :: GreaterThan -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGte :: GreaterThanEq -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleLt :: LessThan -> RangeValue
- Database.V5.Bloodhound.Types: RangeDoubleLte :: LessThanEq -> RangeValue
- Database.V5.Bloodhound.Types: RangeExecutionFielddata :: RangeExecution
- Database.V5.Bloodhound.Types: RangeExecutionIndex :: RangeExecution
- Database.V5.Bloodhound.Types: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
- Database.V5.Bloodhound.Types: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: Regexp :: Text -> Regexp
- Database.V5.Bloodhound.Types: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
- Database.V5.Bloodhound.Types: RemoveAlias :: IndexAlias -> IndexAliasAction
- Database.V5.Bloodhound.Types: ReplicaCount :: Int -> ReplicaCount
- Database.V5.Bloodhound.Types: ReplicasBounded :: Int -> Int -> ReplicaBounds
- Database.V5.Bloodhound.Types: ReplicasLowerBounded :: Int -> ReplicaBounds
- Database.V5.Bloodhound.Types: ReplicasUnbounded :: ReplicaBounds
- Database.V5.Bloodhound.Types: RepoPattern :: Text -> SnapshotRepoPattern
- Database.V5.Bloodhound.Types: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
- Database.V5.Bloodhound.Types: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
- Database.V5.Bloodhound.Types: RestoreRenamePattern :: Text -> RestoreRenamePattern
- Database.V5.Bloodhound.Types: Romanian :: Language
- Database.V5.Bloodhound.Types: RoundDownTo :: DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Types: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RoutingAllocationExclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RoutingAllocationInclude :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RoutingAllocationRequire :: (NonEmpty NodeAttrFilter) -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: RoutingValue :: Text -> RoutingValue
- Database.V5.Bloodhound.Types: Russian :: Language
- Database.V5.Bloodhound.Types: ScientificValue :: Scientific -> BucketValue
- Database.V5.Bloodhound.Types: ScoreModeAvg :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreModeFirst :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreModeMax :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreModeMin :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreModeMultiply :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreModeSum :: ScoreMode
- Database.V5.Bloodhound.Types: ScoreTypeAvg :: ScoreType
- Database.V5.Bloodhound.Types: ScoreTypeMax :: ScoreType
- Database.V5.Bloodhound.Types: ScoreTypeNone :: ScoreType
- Database.V5.Bloodhound.Types: ScoreTypeSum :: ScoreType
- Database.V5.Bloodhound.Types: Script :: Maybe ScriptLanguage -> Maybe ScriptInline -> Maybe ScriptId -> Maybe ScriptParams -> Script
- Database.V5.Bloodhound.Types: ScriptFields :: (HashMap ScriptFieldName ScriptFieldValue) -> ScriptFields
- Database.V5.Bloodhound.Types: ScriptId :: Text -> ScriptId
- Database.V5.Bloodhound.Types: ScriptInline :: Text -> ScriptInline
- Database.V5.Bloodhound.Types: ScriptLanguage :: Text -> ScriptLanguage
- Database.V5.Bloodhound.Types: ScriptParams :: (HashMap ScriptParamName ScriptParamValue) -> ScriptParams
- Database.V5.Bloodhound.Types: ScriptValueCount :: Script -> ValueCountAggregation
- Database.V5.Bloodhound.Types: ScrollId :: Text -> ScrollId
- Database.V5.Bloodhound.Types: Search :: Maybe Query -> Maybe Filter -> Maybe Sort -> Maybe Aggregations -> Maybe Highlights -> TrackSortScores -> From -> Size -> SearchType -> Maybe [FieldName] -> Maybe ScriptFields -> Maybe Source -> Maybe Suggest -> Search
- Database.V5.Bloodhound.Types: SearchAliasRouting :: (NonEmpty RoutingValue) -> SearchAliasRouting
- Database.V5.Bloodhound.Types: SearchHits :: Int -> Score -> [Hit a] -> SearchHits a
- Database.V5.Bloodhound.Types: SearchResult :: Int -> Bool -> ShardResult -> SearchHits a -> Maybe AggregationResults -> Maybe ScrollId -> Maybe NamedSuggestionResponse -> SearchResult a
- Database.V5.Bloodhound.Types: SearchTypeDfsQueryThenFetch :: SearchType
- Database.V5.Bloodhound.Types: SearchTypeQueryThenFetch :: SearchType
- Database.V5.Bloodhound.Types: Second :: Interval
- Database.V5.Bloodhound.Types: Seconds :: TimeInterval
- Database.V5.Bloodhound.Types: Seed :: Float -> Seed
- Database.V5.Bloodhound.Types: Server :: Text -> Server
- Database.V5.Bloodhound.Types: ShardCount :: Int -> ShardCount
- Database.V5.Bloodhound.Types: ShardId :: Int -> ShardId
- Database.V5.Bloodhound.Types: ShardResult :: Int -> Int -> Int -> ShardResult
- Database.V5.Bloodhound.Types: Shingle :: Int -> Int -> Bool -> Bool -> Text -> Text -> Shingle
- Database.V5.Bloodhound.Types: ShouldMatch :: [Term] -> Cache -> BoolMatch
- Database.V5.Bloodhound.Types: SimpleQueryAll :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryAnd :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryEscape :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryFuzzy :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryNear :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryNone :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryOr :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryPhrase :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryPrecedence :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryPrefix :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQuerySlop :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
- Database.V5.Bloodhound.Types: SimpleQueryWhitespace :: SimpleQueryFlag
- Database.V5.Bloodhound.Types: Size :: Int -> Size
- Database.V5.Bloodhound.Types: SloppyArc :: DistanceType
- Database.V5.Bloodhound.Types: SnapPattern :: Text -> SnapshotPattern
- Database.V5.Bloodhound.Types: SnapshotAborted :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
- Database.V5.Bloodhound.Types: SnapshotFailed :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
- Database.V5.Bloodhound.Types: SnapshotInit :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotList :: (NonEmpty SnapshotPattern) -> SnapshotSelection
- Database.V5.Bloodhound.Types: SnapshotMissing :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotName :: Text -> SnapshotName
- Database.V5.Bloodhound.Types: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
- Database.V5.Bloodhound.Types: SnapshotRepoList :: (NonEmpty SnapshotRepoPattern) -> SnapshotRepoSelection
- Database.V5.Bloodhound.Types: SnapshotRepoName :: Text -> SnapshotRepoName
- Database.V5.Bloodhound.Types: SnapshotRepoType :: Text -> SnapshotRepoType
- Database.V5.Bloodhound.Types: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Types: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
- Database.V5.Bloodhound.Types: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
- Database.V5.Bloodhound.Types: SnapshotStarted :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotSuccess :: SnapshotState
- Database.V5.Bloodhound.Types: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
- Database.V5.Bloodhound.Types: SnapshotWaiting :: SnapshotState
- Database.V5.Bloodhound.Types: SomeRegexpFlags :: (NonEmpty RegexpFlag) -> RegexpFlags
- Database.V5.Bloodhound.Types: Sorani :: Language
- Database.V5.Bloodhound.Types: SortAvg :: SortMode
- Database.V5.Bloodhound.Types: SortMax :: SortMode
- Database.V5.Bloodhound.Types: SortMin :: SortMode
- Database.V5.Bloodhound.Types: SortSum :: SortMode
- Database.V5.Bloodhound.Types: SourceIncludeExclude :: Include -> Exclude -> Source
- Database.V5.Bloodhound.Types: SourcePatterns :: PatternOrPatterns -> Source
- Database.V5.Bloodhound.Types: Spanish :: Language
- Database.V5.Bloodhound.Types: StatisticsAggregation :: StatsType -> FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Types: StatsAgg :: StatisticsAggregation -> Aggregation
- Database.V5.Bloodhound.Types: Status :: Text -> Text -> Text -> Version -> Text -> Status
- Database.V5.Bloodhound.Types: StopWord :: Text -> StopWord
- Database.V5.Bloodhound.Types: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
- Database.V5.Bloodhound.Types: Suggest :: Text -> Text -> SuggestType -> Suggest
- Database.V5.Bloodhound.Types: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
- Database.V5.Bloodhound.Types: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
- Database.V5.Bloodhound.Types: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
- Database.V5.Bloodhound.Types: Swedish :: Language
- Database.V5.Bloodhound.Types: TTLDisablePurge :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: TagSchema :: Text -> HighlightTag
- Database.V5.Bloodhound.Types: TemplateName :: Text -> TemplateName
- Database.V5.Bloodhound.Types: TemplatePattern :: Text -> TemplatePattern
- Database.V5.Bloodhound.Types: TemplateQueryInline :: Query -> TemplateQueryKeyValuePairs -> TemplateQueryInline
- Database.V5.Bloodhound.Types: TemplateQueryKeyValuePairs :: (HashMap TemplateQueryKey TemplateQueryValue) -> TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Types: Term :: Text -> Text -> Term
- Database.V5.Bloodhound.Types: TermInclusion :: Text -> TermInclusion
- Database.V5.Bloodhound.Types: TermOrder :: Text -> SortOrder -> TermOrder
- Database.V5.Bloodhound.Types: TermPattern :: Text -> Text -> TermInclusion
- Database.V5.Bloodhound.Types: TermQuery :: Term -> (Maybe Boost) -> Query
- Database.V5.Bloodhound.Types: TermsAgg :: TermsAggregation -> Aggregation
- Database.V5.Bloodhound.Types: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
- Database.V5.Bloodhound.Types: TermsQuery :: Text -> (NonEmpty Text) -> Query
- Database.V5.Bloodhound.Types: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
- Database.V5.Bloodhound.Types: TextValue :: Text -> BucketValue
- Database.V5.Bloodhound.Types: Thai :: Language
- Database.V5.Bloodhound.Types: ThreadPoolBounded :: Int -> ThreadPoolSize
- Database.V5.Bloodhound.Types: ThreadPoolCached :: ThreadPoolType
- Database.V5.Bloodhound.Types: ThreadPoolFixed :: ThreadPoolType
- Database.V5.Bloodhound.Types: ThreadPoolScaling :: ThreadPoolType
- Database.V5.Bloodhound.Types: ThreadPoolUnbounded :: ThreadPoolSize
- Database.V5.Bloodhound.Types: Tiebreaker :: Double -> Tiebreaker
- Database.V5.Bloodhound.Types: TokenDigit :: TokenChar
- Database.V5.Bloodhound.Types: TokenFilter :: Text -> TokenFilter
- Database.V5.Bloodhound.Types: TokenFilterDefinitionApostrophe :: TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionLowercase :: (Maybe Language) -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionReverse :: TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionShingle :: Shingle -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionSnowball :: Language -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionStemmer :: Language -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionStop :: (Either Language [StopWord]) -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenFilterDefinitionUppercase :: (Maybe Language) -> TokenFilterDefinition
- Database.V5.Bloodhound.Types: TokenLetter :: TokenChar
- Database.V5.Bloodhound.Types: TokenPunctuation :: TokenChar
- Database.V5.Bloodhound.Types: TokenSymbol :: TokenChar
- Database.V5.Bloodhound.Types: TokenWhitespace :: TokenChar
- Database.V5.Bloodhound.Types: Tokenizer :: Text -> Tokenizer
- Database.V5.Bloodhound.Types: TokenizerDefinitionNgram :: Ngram -> TokenizerDefinition
- Database.V5.Bloodhound.Types: TopHitResult :: (SearchHits a) -> TopHitResult a
- Database.V5.Bloodhound.Types: TopHitsAgg :: TopHitsAggregation -> Aggregation
- Database.V5.Bloodhound.Types: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
- Database.V5.Bloodhound.Types: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: TranslogFSType :: FSType -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: Turkish :: Language
- Database.V5.Bloodhound.Types: TypeName :: Text -> TypeName
- Database.V5.Bloodhound.Types: ValueCountAgg :: ValueCountAggregation -> Aggregation
- Database.V5.Bloodhound.Types: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
- Database.V5.Bloodhound.Types: VersionNumber :: Version -> VersionNumber
- Database.V5.Bloodhound.Types: WarmerEnabled :: Bool -> UpdatableIndexSetting
- Database.V5.Bloodhound.Types: Week :: Interval
- Database.V5.Bloodhound.Types: Weeks :: TimeInterval
- Database.V5.Bloodhound.Types: Weight :: Float -> Weight
- Database.V5.Bloodhound.Types: WildcardQuery :: FieldName -> Text -> Maybe Boost -> WildcardQuery
- Database.V5.Bloodhound.Types: Yards :: DistanceUnit
- Database.V5.Bloodhound.Types: Year :: Interval
- Database.V5.Bloodhound.Types: ZeroTermsAll :: ZeroTermsQuery
- Database.V5.Bloodhound.Types: ZeroTermsNone :: ZeroTermsQuery
- Database.V5.Bloodhound.Types: [_id] :: EsResult a -> Text
- Database.V5.Bloodhound.Types: [_index] :: EsResult a -> Text
- Database.V5.Bloodhound.Types: [_source] :: EsResultFound a -> a
- Database.V5.Bloodhound.Types: [_type] :: EsResult a -> Text
- Database.V5.Bloodhound.Types: [_version] :: EsResultFound a -> DocVersion
- Database.V5.Bloodhound.Types: [aggBody] :: Search -> Maybe Aggregations
- Database.V5.Bloodhound.Types: [aggregations] :: SearchResult a -> Maybe AggregationResults
- Database.V5.Bloodhound.Types: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
- Database.V5.Bloodhound.Types: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
- Database.V5.Bloodhound.Types: [analysisAnalyzer] :: Analysis -> Map Text AnalyzerDefinition
- Database.V5.Bloodhound.Types: [analysisCharFilter] :: Analysis -> Map Text CharFilterDefinition
- Database.V5.Bloodhound.Types: [analysisTokenFilter] :: Analysis -> Map Text TokenFilterDefinition
- Database.V5.Bloodhound.Types: [analysisTokenizer] :: Analysis -> Map Text TokenizerDefinition
- Database.V5.Bloodhound.Types: [analyzerDefinitionCharFilter] :: AnalyzerDefinition -> [CharFilter]
- Database.V5.Bloodhound.Types: [analyzerDefinitionFilter] :: AnalyzerDefinition -> [TokenFilter]
- Database.V5.Bloodhound.Types: [analyzerDefinitionTokenizer] :: AnalyzerDefinition -> Maybe Tokenizer
- Database.V5.Bloodhound.Types: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
- Database.V5.Bloodhound.Types: [boolQueryBoost] :: BoolQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
- Database.V5.Bloodhound.Types: [boolQueryFilter] :: BoolQuery -> [Filter]
- Database.V5.Bloodhound.Types: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
- Database.V5.Bloodhound.Types: [boolQueryMustMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Types: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Types: [boolQueryShouldMatch] :: BoolQuery -> [Query]
- Database.V5.Bloodhound.Types: [bottomRight] :: GeoBoundingBox -> LatLon
- Database.V5.Bloodhound.Types: [boundAddress] :: BoundTransportAddress -> [EsAddress]
- Database.V5.Bloodhound.Types: [boundaryChars] :: FastVectorHighlight -> Maybe Text
- Database.V5.Bloodhound.Types: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Types: [buckets] :: Bucket a -> [a]
- Database.V5.Bloodhound.Types: [buildHash] :: BuildHash -> Text
- Database.V5.Bloodhound.Types: [build_date] :: Version -> UTCTime
- Database.V5.Bloodhound.Types: [build_hash] :: Version -> BuildHash
- Database.V5.Bloodhound.Types: [build_snapshot] :: Version -> Bool
- Database.V5.Bloodhound.Types: [cardinalityField] :: CardinalityAggregation -> FieldName
- Database.V5.Bloodhound.Types: [charFilterDefinitionPatternReplaceFlags] :: CharFilterDefinition -> Maybe Text
- Database.V5.Bloodhound.Types: [charFilterDefinitionPatternReplacePattern] :: CharFilterDefinition -> Text
- Database.V5.Bloodhound.Types: [charFilterDefinitionPatternReplaceReplacement] :: CharFilterDefinition -> Text
- Database.V5.Bloodhound.Types: [clusterName] :: ClusterName -> Text
- Database.V5.Bloodhound.Types: [cluster_name] :: Status -> Text
- Database.V5.Bloodhound.Types: [cluster_uuid] :: Status -> Text
- Database.V5.Bloodhound.Types: [coefficient] :: Distance -> Double
- Database.V5.Bloodhound.Types: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [commonBoost] :: CommonTermsQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
- Database.V5.Bloodhound.Types: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
- Database.V5.Bloodhound.Types: [commonField] :: CommonTermsQuery -> FieldName
- Database.V5.Bloodhound.Types: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V5.Bloodhound.Types: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
- Database.V5.Bloodhound.Types: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
- Database.V5.Bloodhound.Types: [commonQuery] :: CommonTermsQuery -> QueryString
- Database.V5.Bloodhound.Types: [componentScoreFunctionFilter] :: ComponentFunctionScoreFunction -> Maybe Filter
- Database.V5.Bloodhound.Types: [componentScoreFunctionWeight] :: ComponentFunctionScoreFunction -> Maybe Weight
- Database.V5.Bloodhound.Types: [componentScoreFunction] :: ComponentFunctionScoreFunction -> FunctionScoreFunction
- Database.V5.Bloodhound.Types: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
- Database.V5.Bloodhound.Types: [cpuCacheSize] :: CPUInfo -> Bytes
- Database.V5.Bloodhound.Types: [cpuCoresPerSocket] :: CPUInfo -> Int
- Database.V5.Bloodhound.Types: [cpuMHZ] :: CPUInfo -> Int
- Database.V5.Bloodhound.Types: [cpuModel] :: CPUInfo -> Text
- Database.V5.Bloodhound.Types: [cpuTotalCores] :: CPUInfo -> Int
- Database.V5.Bloodhound.Types: [cpuTotalSockets] :: CPUInfo -> Int
- Database.V5.Bloodhound.Types: [cpuVendor] :: CPUInfo -> Text
- Database.V5.Bloodhound.Types: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Types: [dateDocCount] :: DateHistogramResult -> Int
- Database.V5.Bloodhound.Types: [dateField] :: DateHistogramAggregation -> FieldName
- Database.V5.Bloodhound.Types: [dateFormat] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Types: [dateInterval] :: DateHistogramAggregation -> Interval
- Database.V5.Bloodhound.Types: [dateKeyStr] :: DateHistogramResult -> Maybe Text
- Database.V5.Bloodhound.Types: [dateKey] :: DateHistogramResult -> Int
- Database.V5.Bloodhound.Types: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [datePostZone] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [datePreZone] :: DateHistogramAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Types: [dateRangeDocCount] :: DateRangeResult -> Int
- Database.V5.Bloodhound.Types: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
- Database.V5.Bloodhound.Types: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
- Database.V5.Bloodhound.Types: [dateRangeKey] :: DateRangeResult -> Text
- Database.V5.Bloodhound.Types: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
- Database.V5.Bloodhound.Types: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
- Database.V5.Bloodhound.Types: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Types: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Types: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Types: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
- Database.V5.Bloodhound.Types: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Types: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
- Database.V5.Bloodhound.Types: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
- Database.V5.Bloodhound.Types: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Types: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Types: [directGeneratorsField] :: DirectGenerators -> FieldName
- Database.V5.Bloodhound.Types: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
- Database.V5.Bloodhound.Types: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [disMaxQueries] :: DisMaxQuery -> [Query]
- Database.V5.Bloodhound.Types: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
- Database.V5.Bloodhound.Types: [distanceFrom] :: DistanceRange -> Distance
- Database.V5.Bloodhound.Types: [distanceTo] :: DistanceRange -> Distance
- Database.V5.Bloodhound.Types: [draField] :: DateRangeAggregation -> FieldName
- Database.V5.Bloodhound.Types: [draFormat] :: DateRangeAggregation -> Maybe Text
- Database.V5.Bloodhound.Types: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
- Database.V5.Bloodhound.Types: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
- Database.V5.Bloodhound.Types: [errorMessage] :: EsError -> Text
- Database.V5.Bloodhound.Types: [errorStatus] :: EsError -> Int
- Database.V5.Bloodhound.Types: [esAddress] :: EsAddress -> Text
- Database.V5.Bloodhound.Types: [esPassword] :: EsPassword -> Text
- Database.V5.Bloodhound.Types: [esProtoExBody] :: EsProtocolException -> !LByteString
- Database.V5.Bloodhound.Types: [esProtoExMessage] :: EsProtocolException -> !Text
- Database.V5.Bloodhound.Types: [esUsername] :: EsUsername -> Text
- Database.V5.Bloodhound.Types: [faAggs] :: FilterAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Types: [faFilter] :: FilterAggregation -> Filter
- Database.V5.Bloodhound.Types: [fieldDefinition] :: MappingField -> FieldDefinition
- Database.V5.Bloodhound.Types: [fieldType] :: FieldDefinition -> FieldType
- Database.V5.Bloodhound.Types: [fieldValueFactorField] :: FieldValueFactor -> FieldName
- Database.V5.Bloodhound.Types: [fieldValueFactorMissing] :: FieldValueFactor -> Maybe FactorMissingFieldValue
- Database.V5.Bloodhound.Types: [fieldValueFactorModifier] :: FieldValueFactor -> Maybe FactorModifier
- Database.V5.Bloodhound.Types: [fieldValueFactor] :: FieldValueFactor -> Maybe Factor
- Database.V5.Bloodhound.Types: [fields] :: Search -> Maybe [FieldName]
- Database.V5.Bloodhound.Types: [filterBody] :: Search -> Maybe Filter
- Database.V5.Bloodhound.Types: [flushAfterOptimize] :: ForceMergeIndexSettings -> Bool
- Database.V5.Bloodhound.Types: [forceSource] :: CommonHighlight -> Maybe Bool
- Database.V5.Bloodhound.Types: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
- Database.V5.Bloodhound.Types: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Types: [fragmentSize] :: NonPostings -> Maybe Int
- Database.V5.Bloodhound.Types: [from] :: Search -> From
- Database.V5.Bloodhound.Types: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Types: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
- Database.V5.Bloodhound.Types: [fsrLocation] :: FsSnapshotRepo -> FilePath
- Database.V5.Bloodhound.Types: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Types: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
- Database.V5.Bloodhound.Types: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
- Database.V5.Bloodhound.Types: [fullNodeId] :: FullNodeId -> Text
- Database.V5.Bloodhound.Types: [functionScoreBoostMode] :: FunctionScoreQuery -> Maybe BoostMode
- Database.V5.Bloodhound.Types: [functionScoreBoost] :: FunctionScoreQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [functionScoreFunctions] :: FunctionScoreQuery -> FunctionScoreFunctions
- Database.V5.Bloodhound.Types: [functionScoreMaxBoost] :: FunctionScoreQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [functionScoreMinScore] :: FunctionScoreQuery -> Score
- Database.V5.Bloodhound.Types: [functionScoreQuery] :: FunctionScoreQuery -> Maybe Query
- Database.V5.Bloodhound.Types: [functionScoreScoreMode] :: FunctionScoreQuery -> Maybe ScoreMode
- Database.V5.Bloodhound.Types: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
- Database.V5.Bloodhound.Types: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
- Database.V5.Bloodhound.Types: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
- Database.V5.Bloodhound.Types: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
- Database.V5.Bloodhound.Types: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
- Database.V5.Bloodhound.Types: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
- Database.V5.Bloodhound.Types: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
- Database.V5.Bloodhound.Types: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
- Database.V5.Bloodhound.Types: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
- Database.V5.Bloodhound.Types: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [fuzzyQueryField] :: FuzzyQuery -> FieldName
- Database.V5.Bloodhound.Types: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
- Database.V5.Bloodhound.Types: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
- Database.V5.Bloodhound.Types: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
- Database.V5.Bloodhound.Types: [fuzzyQueryValue] :: FuzzyQuery -> Text
- Database.V5.Bloodhound.Types: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
- Database.V5.Bloodhound.Types: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
- Database.V5.Bloodhound.Types: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
- Database.V5.Bloodhound.Types: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
- Database.V5.Bloodhound.Types: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Types: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
- Database.V5.Bloodhound.Types: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
- Database.V5.Bloodhound.Types: [geoField] :: GeoPoint -> FieldName
- Database.V5.Bloodhound.Types: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
- Database.V5.Bloodhound.Types: [globalsettings] :: Highlights -> Maybe HighlightSettings
- Database.V5.Bloodhound.Types: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
- Database.V5.Bloodhound.Types: [hasChildQueryType] :: HasChildQuery -> TypeName
- Database.V5.Bloodhound.Types: [hasChildQuery] :: HasChildQuery -> Query
- Database.V5.Bloodhound.Types: [hasParentQueryScoreType] :: HasParentQuery -> Maybe ScoreType
- Database.V5.Bloodhound.Types: [hasParentQueryType] :: HasParentQuery -> TypeName
- Database.V5.Bloodhound.Types: [hasParentQuery] :: HasParentQuery -> Query
- Database.V5.Bloodhound.Types: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V5.Bloodhound.Types: [highlightFields] :: Highlights -> [FieldHighlight]
- Database.V5.Bloodhound.Types: [highlightQuery] :: CommonHighlight -> Maybe Query
- Database.V5.Bloodhound.Types: [highlight] :: Search -> Maybe Highlights
- Database.V5.Bloodhound.Types: [hitDocId] :: Hit a -> DocId
- Database.V5.Bloodhound.Types: [hitFields] :: Hit a -> Maybe HitFields
- Database.V5.Bloodhound.Types: [hitHighlight] :: Hit a -> Maybe HitHighlight
- Database.V5.Bloodhound.Types: [hitIndex] :: Hit a -> IndexName
- Database.V5.Bloodhound.Types: [hitScore] :: Hit a -> Score
- Database.V5.Bloodhound.Types: [hitSource] :: Hit a -> Maybe a
- Database.V5.Bloodhound.Types: [hitType] :: Hit a -> MappingName
- Database.V5.Bloodhound.Types: [hitsTotal] :: SearchHits a -> Int
- Database.V5.Bloodhound.Types: [hits] :: SearchHits a -> [Hit a]
- Database.V5.Bloodhound.Types: [idsParent] :: IndexDocumentSettings -> Maybe DocumentParent
- Database.V5.Bloodhound.Types: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
- Database.V5.Bloodhound.Types: [ignoreUnmapped] :: DefaultSort -> Maybe Text
- Database.V5.Bloodhound.Types: [indexAliasName] :: IndexAliasName -> IndexName
- Database.V5.Bloodhound.Types: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
- Database.V5.Bloodhound.Types: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
- Database.V5.Bloodhound.Types: [indexAlias] :: IndexAlias -> IndexAliasName
- Database.V5.Bloodhound.Types: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
- Database.V5.Bloodhound.Types: [indexReplicas] :: IndexSettings -> ReplicaCount
- Database.V5.Bloodhound.Types: [indexShards] :: IndexSettings -> ShardCount
- Database.V5.Bloodhound.Types: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
- Database.V5.Bloodhound.Types: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
- Database.V5.Bloodhound.Types: [indicesQuery] :: IndicesQuery -> Query
- Database.V5.Bloodhound.Types: [inline] :: TemplateQueryInline -> Query
- Database.V5.Bloodhound.Types: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
- Database.V5.Bloodhound.Types: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [jvmGCCollector] :: JVMGCCollector -> Text
- Database.V5.Bloodhound.Types: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
- Database.V5.Bloodhound.Types: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Types: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Types: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Types: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Types: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
- Database.V5.Bloodhound.Types: [jvmMemoryPool] :: JVMMemoryPool -> Text
- Database.V5.Bloodhound.Types: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
- Database.V5.Bloodhound.Types: [latLon] :: GeoPoint -> LatLon
- Database.V5.Bloodhound.Types: [lat] :: LatLon -> Double
- Database.V5.Bloodhound.Types: [loadAvg15Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Types: [loadAvg1Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Types: [loadAvg5Min] :: LoadAvgs -> Double
- Database.V5.Bloodhound.Types: [lon] :: LatLon -> Double
- Database.V5.Bloodhound.Types: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
- Database.V5.Bloodhound.Types: [lucene_version] :: Version -> VersionNumber
- Database.V5.Bloodhound.Types: [maField] :: MissingAggregation -> Text
- Database.V5.Bloodhound.Types: [macAddress] :: MacAddress -> Text
- Database.V5.Bloodhound.Types: [mappingFieldName] :: MappingField -> FieldName
- Database.V5.Bloodhound.Types: [mappingFields] :: Mapping -> [MappingField]
- Database.V5.Bloodhound.Types: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [matchQueryBoost] :: MatchQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
- Database.V5.Bloodhound.Types: [matchQueryField] :: MatchQuery -> FieldName
- Database.V5.Bloodhound.Types: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
- Database.V5.Bloodhound.Types: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
- Database.V5.Bloodhound.Types: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Types: [matchQueryMinimumShouldMatch] :: MatchQuery -> Maybe Text
- Database.V5.Bloodhound.Types: [matchQueryOperator] :: MatchQuery -> BooleanOperator
- Database.V5.Bloodhound.Types: [matchQueryQueryString] :: MatchQuery -> QueryString
- Database.V5.Bloodhound.Types: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
- Database.V5.Bloodhound.Types: [matchedFields] :: FastVectorHighlight -> [Text]
- Database.V5.Bloodhound.Types: [maxNumSegments] :: ForceMergeIndexSettings -> Maybe Int
- Database.V5.Bloodhound.Types: [maxScore] :: SearchHits a -> Score
- Database.V5.Bloodhound.Types: [missingDocCount] :: MissingResult -> Int
- Database.V5.Bloodhound.Types: [missingSort] :: DefaultSort -> Maybe Missing
- Database.V5.Bloodhound.Types: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
- Database.V5.Bloodhound.Types: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
- Database.V5.Bloodhound.Types: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
- Database.V5.Bloodhound.Types: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
- Database.V5.Bloodhound.Types: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
- Database.V5.Bloodhound.Types: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
- Database.V5.Bloodhound.Types: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
- Database.V5.Bloodhound.Types: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
- Database.V5.Bloodhound.Types: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
- Database.V5.Bloodhound.Types: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
- Database.V5.Bloodhound.Types: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
- Database.V5.Bloodhound.Types: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
- Database.V5.Bloodhound.Types: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
- Database.V5.Bloodhound.Types: [moreLikeThisText] :: MoreLikeThisQuery -> Text
- Database.V5.Bloodhound.Types: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
- Database.V5.Bloodhound.Types: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
- Database.V5.Bloodhound.Types: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
- Database.V5.Bloodhound.Types: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Types: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
- Database.V5.Bloodhound.Types: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
- Database.V5.Bloodhound.Types: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
- Database.V5.Bloodhound.Types: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
- Database.V5.Bloodhound.Types: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
- Database.V5.Bloodhound.Types: [name] :: Status -> Text
- Database.V5.Bloodhound.Types: [negativeBoost] :: BoostingQuery -> Boost
- Database.V5.Bloodhound.Types: [negativeQuery] :: BoostingQuery -> Query
- Database.V5.Bloodhound.Types: [nestedFilter] :: DefaultSort -> Maybe Filter
- Database.V5.Bloodhound.Types: [nestedQueryPath] :: NestedQuery -> QueryPath
- Database.V5.Bloodhound.Types: [nestedQueryScoreType] :: NestedQuery -> ScoreType
- Database.V5.Bloodhound.Types: [nestedQuery] :: NestedQuery -> Query
- Database.V5.Bloodhound.Types: [networkInterfaceName] :: NetworkInterfaceName -> Text
- Database.V5.Bloodhound.Types: [ngramMaxGram] :: Ngram -> Int
- Database.V5.Bloodhound.Types: [ngramMinGram] :: Ngram -> Int
- Database.V5.Bloodhound.Types: [ngramTokenChars] :: Ngram -> [TokenChar]
- Database.V5.Bloodhound.Types: [noMatchSize] :: CommonHighlight -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
- Database.V5.Bloodhound.Types: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
- Database.V5.Bloodhound.Types: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
- Database.V5.Bloodhound.Types: [nodeBreakersTripped] :: NodeBreakerStats -> Int
- Database.V5.Bloodhound.Types: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathDevice] :: NodeDataPathStats -> Maybe Text
- Database.V5.Bloodhound.Types: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
- Database.V5.Bloodhound.Types: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
- Database.V5.Bloodhound.Types: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathMount] :: NodeDataPathStats -> Text
- Database.V5.Bloodhound.Types: [nodeDataPathPath] :: NodeDataPathStats -> Text
- Database.V5.Bloodhound.Types: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
- Database.V5.Bloodhound.Types: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
- Database.V5.Bloodhound.Types: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
- Database.V5.Bloodhound.Types: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
- Database.V5.Bloodhound.Types: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
- Database.V5.Bloodhound.Types: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
- Database.V5.Bloodhound.Types: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
- Database.V5.Bloodhound.Types: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
- Database.V5.Bloodhound.Types: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
- Database.V5.Bloodhound.Types: [nodeHTTPTransportAddress] :: NodeHTTPInfo -> BoundTransportAddress
- Database.V5.Bloodhound.Types: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
- Database.V5.Bloodhound.Types: [nodeInfoBuild] :: NodeInfo -> BuildHash
- Database.V5.Bloodhound.Types: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
- Database.V5.Bloodhound.Types: [nodeInfoFullId] :: NodeInfo -> FullNodeId
- Database.V5.Bloodhound.Types: [nodeInfoHTTPAddress] :: NodeInfo -> Maybe EsAddress
- Database.V5.Bloodhound.Types: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
- Database.V5.Bloodhound.Types: [nodeInfoHost] :: NodeInfo -> Server
- Database.V5.Bloodhound.Types: [nodeInfoIP] :: NodeInfo -> Server
- Database.V5.Bloodhound.Types: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
- Database.V5.Bloodhound.Types: [nodeInfoName] :: NodeInfo -> NodeName
- Database.V5.Bloodhound.Types: [nodeInfoNetwork] :: NodeInfo -> Maybe NodeNetworkInfo
- Database.V5.Bloodhound.Types: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
- Database.V5.Bloodhound.Types: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
- Database.V5.Bloodhound.Types: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
- Database.V5.Bloodhound.Types: [nodeInfoSettings] :: NodeInfo -> Object
- Database.V5.Bloodhound.Types: [nodeInfoThreadPool] :: NodeInfo -> NodeThreadPoolsInfo
- Database.V5.Bloodhound.Types: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
- Database.V5.Bloodhound.Types: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
- Database.V5.Bloodhound.Types: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
- Database.V5.Bloodhound.Types: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
- Database.V5.Bloodhound.Types: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
- Database.V5.Bloodhound.Types: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
- Database.V5.Bloodhound.Types: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
- Database.V5.Bloodhound.Types: [nodeJVMPID] :: NodeJVMInfo -> PID
- Database.V5.Bloodhound.Types: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Types: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Types: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Types: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
- Database.V5.Bloodhound.Types: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
- Database.V5.Bloodhound.Types: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
- Database.V5.Bloodhound.Types: [nodeJVMVMName] :: NodeJVMInfo -> Text
- Database.V5.Bloodhound.Types: [nodeJVMVMVersion] :: NodeJVMInfo -> VMVersion
- Database.V5.Bloodhound.Types: [nodeJVMVersion] :: NodeJVMInfo -> JVMVersion
- Database.V5.Bloodhound.Types: [nodeName] :: NodeName -> Text
- Database.V5.Bloodhound.Types: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
- Database.V5.Bloodhound.Types: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
- Database.V5.Bloodhound.Types: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
- Database.V5.Bloodhound.Types: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
- Database.V5.Bloodhound.Types: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
- Database.V5.Bloodhound.Types: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeOSAllocatedProcessors] :: NodeOSInfo -> Int
- Database.V5.Bloodhound.Types: [nodeOSArch] :: NodeOSInfo -> Text
- Database.V5.Bloodhound.Types: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
- Database.V5.Bloodhound.Types: [nodeOSCPUPercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Types: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
- Database.V5.Bloodhound.Types: [nodeOSMemFreePercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Types: [nodeOSMemFree] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSMemTotal] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
- Database.V5.Bloodhound.Types: [nodeOSMemUsed] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSName] :: NodeOSInfo -> Text
- Database.V5.Bloodhound.Types: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeOSSwapFree] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSSwapTotal] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
- Database.V5.Bloodhound.Types: [nodeOSVersion] :: NodeOSInfo -> VersionNumber
- Database.V5.Bloodhound.Types: [nodePluginDescription] :: NodePluginInfo -> Text
- Database.V5.Bloodhound.Types: [nodePluginJVM] :: NodePluginInfo -> Maybe Bool
- Database.V5.Bloodhound.Types: [nodePluginName] :: NodePluginInfo -> PluginName
- Database.V5.Bloodhound.Types: [nodePluginSite] :: NodePluginInfo -> Maybe Bool
- Database.V5.Bloodhound.Types: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
- Database.V5.Bloodhound.Types: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Types: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeProcessId] :: NodeProcessInfo -> PID
- Database.V5.Bloodhound.Types: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
- Database.V5.Bloodhound.Types: [nodeProcessMaxFDs] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Types: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
- Database.V5.Bloodhound.Types: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
- Database.V5.Bloodhound.Types: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
- Database.V5.Bloodhound.Types: [nodeStatsFS] :: NodeStats -> NodeFSStats
- Database.V5.Bloodhound.Types: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Types: [nodeStatsFullId] :: NodeStats -> FullNodeId
- Database.V5.Bloodhound.Types: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
- Database.V5.Bloodhound.Types: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
- Database.V5.Bloodhound.Types: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
- Database.V5.Bloodhound.Types: [nodeStatsName] :: NodeStats -> NodeName
- Database.V5.Bloodhound.Types: [nodeStatsNetwork] :: NodeStats -> Maybe NodeNetworkStats
- Database.V5.Bloodhound.Types: [nodeStatsOS] :: NodeStats -> NodeOSStats
- Database.V5.Bloodhound.Types: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Types: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
- Database.V5.Bloodhound.Types: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
- Database.V5.Bloodhound.Types: [nodeStatsThreadPool] :: NodeStats -> NodeThreadPoolsStats
- Database.V5.Bloodhound.Types: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
- Database.V5.Bloodhound.Types: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
- Database.V5.Bloodhound.Types: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
- Database.V5.Bloodhound.Types: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
- Database.V5.Bloodhound.Types: [nodeThreadPoolsBulk] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsFetchShardStarted] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsFetchShardStore] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsFlush] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsGeneric] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsGet] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsIndex] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsListener] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsManagement] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsMerge] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsOptimize] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsPercolate] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsRefresh] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsSearch] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsSnapshot] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsBulk] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsFetchShardStarted] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsFetchShardStore] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsFlush] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsGeneric] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsGet] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsIndex] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsListener] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsManagement] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsMerge] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsOptimize] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsPercolate] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsRefresh] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsSearch] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsSnapshot] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsSuggest] :: NodeThreadPoolsStats -> Maybe NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsStatsWarmer] :: NodeThreadPoolsStats -> NodeThreadPoolStats
- Database.V5.Bloodhound.Types: [nodeThreadPoolsSuggest] :: NodeThreadPoolsInfo -> Maybe NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeThreadPoolsWarmer] :: NodeThreadPoolsInfo -> NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: [nodeTransportAddress] :: NodeTransportInfo -> BoundTransportAddress
- Database.V5.Bloodhound.Types: [nodeTransportCount] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Types: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
- Database.V5.Bloodhound.Types: [nodeTransportRXCount] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Types: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
- Database.V5.Bloodhound.Types: [nodeTransportServerOpen] :: NodeTransportStats -> Int
- Database.V5.Bloodhound.Types: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
- Database.V5.Bloodhound.Types: [nodesClusterName] :: NodesInfo -> ClusterName
- Database.V5.Bloodhound.Types: [nodesInfo] :: NodesInfo -> [NodeInfo]
- Database.V5.Bloodhound.Types: [nodesStatsClusterName] :: NodesStats -> ClusterName
- Database.V5.Bloodhound.Types: [nodesStats] :: NodesStats -> [NodeStats]
- Database.V5.Bloodhound.Types: [nsrName] :: NamedSuggestionResponse -> Text
- Database.V5.Bloodhound.Types: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
- Database.V5.Bloodhound.Types: [numberOfFragments] :: NonPostings -> Maybe Int
- Database.V5.Bloodhound.Types: [number] :: Version -> VersionNumber
- Database.V5.Bloodhound.Types: [onlyExpungeDeletes] :: ForceMergeIndexSettings -> Bool
- Database.V5.Bloodhound.Types: [order] :: CommonHighlight -> Maybe Text
- Database.V5.Bloodhound.Types: [params] :: TemplateQueryInline -> TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Types: [phraseLimit] :: FastVectorHighlight -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
- Database.V5.Bloodhound.Types: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
- Database.V5.Bloodhound.Types: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> TemplateQueryInline
- Database.V5.Bloodhound.Types: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
- Database.V5.Bloodhound.Types: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterField] :: PhraseSuggester -> FieldName
- Database.V5.Bloodhound.Types: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Types: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
- Database.V5.Bloodhound.Types: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
- Database.V5.Bloodhound.Types: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
- Database.V5.Bloodhound.Types: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
- Database.V5.Bloodhound.Types: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
- Database.V5.Bloodhound.Types: [pid] :: PID -> Int
- Database.V5.Bloodhound.Types: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
- Database.V5.Bloodhound.Types: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
- Database.V5.Bloodhound.Types: [pluginName] :: PluginName -> Text
- Database.V5.Bloodhound.Types: [positiveQuery] :: BoostingQuery -> Query
- Database.V5.Bloodhound.Types: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
- Database.V5.Bloodhound.Types: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [prefixQueryField] :: PrefixQuery -> FieldName
- Database.V5.Bloodhound.Types: [prefixQueryPrefixValue] :: PrefixQuery -> Text
- Database.V5.Bloodhound.Types: [publishAddress] :: BoundTransportAddress -> EsAddress
- Database.V5.Bloodhound.Types: [queryBody] :: Search -> Maybe Query
- Database.V5.Bloodhound.Types: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
- Database.V5.Bloodhound.Types: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
- Database.V5.Bloodhound.Types: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
- Database.V5.Bloodhound.Types: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
- Database.V5.Bloodhound.Types: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
- Database.V5.Bloodhound.Types: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
- Database.V5.Bloodhound.Types: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
- Database.V5.Bloodhound.Types: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
- Database.V5.Bloodhound.Types: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
- Database.V5.Bloodhound.Types: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
- Database.V5.Bloodhound.Types: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
- Database.V5.Bloodhound.Types: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
- Database.V5.Bloodhound.Types: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
- Database.V5.Bloodhound.Types: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
- Database.V5.Bloodhound.Types: [queryStringQuery] :: QueryStringQuery -> QueryString
- Database.V5.Bloodhound.Types: [rangeQueryBoost] :: RangeQuery -> Boost
- Database.V5.Bloodhound.Types: [rangeQueryField] :: RangeQuery -> FieldName
- Database.V5.Bloodhound.Types: [rangeQueryRange] :: RangeQuery -> RangeValue
- Database.V5.Bloodhound.Types: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [regexpQueryField] :: RegexpQuery -> FieldName
- Database.V5.Bloodhound.Types: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
- Database.V5.Bloodhound.Types: [regexpQuery] :: RegexpQuery -> Regexp
- Database.V5.Bloodhound.Types: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
- Database.V5.Bloodhound.Types: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
- Database.V5.Bloodhound.Types: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
- Database.V5.Bloodhound.Types: [routingValue] :: RoutingValue -> Text
- Database.V5.Bloodhound.Types: [rrPattern] :: RestoreRenamePattern -> Text
- Database.V5.Bloodhound.Types: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
- Database.V5.Bloodhound.Types: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
- Database.V5.Bloodhound.Types: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
- Database.V5.Bloodhound.Types: [scriptFields] :: Search -> Maybe ScriptFields
- Database.V5.Bloodhound.Types: [scriptInline] :: Script -> Maybe ScriptInline
- Database.V5.Bloodhound.Types: [scriptLanguage] :: Script -> Maybe ScriptLanguage
- Database.V5.Bloodhound.Types: [scriptParams] :: Script -> Maybe ScriptParams
- Database.V5.Bloodhound.Types: [scriptStored] :: Script -> Maybe ScriptId
- Database.V5.Bloodhound.Types: [scrollId] :: SearchResult a -> Maybe ScrollId
- Database.V5.Bloodhound.Types: [searchHits] :: SearchResult a -> SearchHits a
- Database.V5.Bloodhound.Types: [searchType] :: Search -> SearchType
- Database.V5.Bloodhound.Types: [shardId] :: ShardId -> Int
- Database.V5.Bloodhound.Types: [shardTotal] :: ShardResult -> Int
- Database.V5.Bloodhound.Types: [shardsFailed] :: ShardResult -> Int
- Database.V5.Bloodhound.Types: [shardsSuccessful] :: ShardResult -> Int
- Database.V5.Bloodhound.Types: [shards] :: SearchResult a -> ShardResult
- Database.V5.Bloodhound.Types: [shingleFillerToken] :: Shingle -> Text
- Database.V5.Bloodhound.Types: [shingleMaxSize] :: Shingle -> Int
- Database.V5.Bloodhound.Types: [shingleMinSize] :: Shingle -> Int
- Database.V5.Bloodhound.Types: [shingleOutputUnigramsIfNoShingles] :: Shingle -> Bool
- Database.V5.Bloodhound.Types: [shingleOutputUnigrams] :: Shingle -> Bool
- Database.V5.Bloodhound.Types: [shingleTokenSeparator] :: Shingle -> Text
- Database.V5.Bloodhound.Types: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
- Database.V5.Bloodhound.Types: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
- Database.V5.Bloodhound.Types: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
- Database.V5.Bloodhound.Types: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
- Database.V5.Bloodhound.Types: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
- Database.V5.Bloodhound.Types: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
- Database.V5.Bloodhound.Types: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
- Database.V5.Bloodhound.Types: [size] :: Search -> Size
- Database.V5.Bloodhound.Types: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Types: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Types: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
- Database.V5.Bloodhound.Types: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
- Database.V5.Bloodhound.Types: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
- Database.V5.Bloodhound.Types: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
- Database.V5.Bloodhound.Types: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
- Database.V5.Bloodhound.Types: [snapInfoName] :: SnapshotInfo -> SnapshotName
- Database.V5.Bloodhound.Types: [snapInfoShards] :: SnapshotInfo -> ShardResult
- Database.V5.Bloodhound.Types: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
- Database.V5.Bloodhound.Types: [snapInfoState] :: SnapshotInfo -> SnapshotState
- Database.V5.Bloodhound.Types: [snapPartial] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Types: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
- Database.V5.Bloodhound.Types: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Types: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Types: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Types: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
- Database.V5.Bloodhound.Types: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
- Database.V5.Bloodhound.Types: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Types: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
- Database.V5.Bloodhound.Types: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
- Database.V5.Bloodhound.Types: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
- Database.V5.Bloodhound.Types: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
- Database.V5.Bloodhound.Types: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
- Database.V5.Bloodhound.Types: [snapShardFailureReason] :: SnapshotShardFailure -> Text
- Database.V5.Bloodhound.Types: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
- Database.V5.Bloodhound.Types: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
- Database.V5.Bloodhound.Types: [snapshotName] :: SnapshotName -> Text
- Database.V5.Bloodhound.Types: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
- Database.V5.Bloodhound.Types: [snapshotRepoName] :: SnapshotRepoName -> Text
- Database.V5.Bloodhound.Types: [snapshotRepoType] :: SnapshotRepoType -> Text
- Database.V5.Bloodhound.Types: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
- Database.V5.Bloodhound.Types: [snvNodeName] :: SnapshotNodeVerification -> NodeName
- Database.V5.Bloodhound.Types: [sortBody] :: Search -> Maybe Sort
- Database.V5.Bloodhound.Types: [sortFieldName] :: DefaultSort -> FieldName
- Database.V5.Bloodhound.Types: [sortMode] :: DefaultSort -> Maybe SortMode
- Database.V5.Bloodhound.Types: [sortOrder] :: DefaultSort -> SortOrder
- Database.V5.Bloodhound.Types: [source] :: Search -> Maybe Source
- Database.V5.Bloodhound.Types: [srcIndex] :: IndexAlias -> IndexName
- Database.V5.Bloodhound.Types: [statsField] :: StatisticsAggregation -> FieldName
- Database.V5.Bloodhound.Types: [statsType] :: StatisticsAggregation -> StatsType
- Database.V5.Bloodhound.Types: [suggestBody] :: Search -> Maybe Suggest
- Database.V5.Bloodhound.Types: [suggestName] :: Suggest -> Text
- Database.V5.Bloodhound.Types: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
- Database.V5.Bloodhound.Types: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
- Database.V5.Bloodhound.Types: [suggestOptionsScore] :: SuggestOptions -> Double
- Database.V5.Bloodhound.Types: [suggestOptionsText] :: SuggestOptions -> Text
- Database.V5.Bloodhound.Types: [suggestResponseLength] :: SuggestResponse -> Int
- Database.V5.Bloodhound.Types: [suggestResponseOffset] :: SuggestResponse -> Int
- Database.V5.Bloodhound.Types: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
- Database.V5.Bloodhound.Types: [suggestResponseText] :: SuggestResponse -> Text
- Database.V5.Bloodhound.Types: [suggestText] :: Suggest -> Text
- Database.V5.Bloodhound.Types: [suggestType] :: Suggest -> SuggestType
- Database.V5.Bloodhound.Types: [suggest] :: SearchResult a -> Maybe NamedSuggestionResponse
- Database.V5.Bloodhound.Types: [taFrom] :: TopHitsAggregation -> Maybe From
- Database.V5.Bloodhound.Types: [taSize] :: TopHitsAggregation -> Maybe Size
- Database.V5.Bloodhound.Types: [taSort] :: TopHitsAggregation -> Maybe Sort
- Database.V5.Bloodhound.Types: [tag] :: CommonHighlight -> Maybe HighlightTag
- Database.V5.Bloodhound.Types: [tagline] :: Status -> Text
- Database.V5.Bloodhound.Types: [tarHits] :: TopHitResult a -> (SearchHits a)
- Database.V5.Bloodhound.Types: [templateMappings] :: IndexTemplate -> [Value]
- Database.V5.Bloodhound.Types: [templatePattern] :: IndexTemplate -> TemplatePattern
- Database.V5.Bloodhound.Types: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
- Database.V5.Bloodhound.Types: [termAggs] :: TermsAggregation -> Maybe Aggregations
- Database.V5.Bloodhound.Types: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
- Database.V5.Bloodhound.Types: [termExclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V5.Bloodhound.Types: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
- Database.V5.Bloodhound.Types: [termField] :: Term -> Text
- Database.V5.Bloodhound.Types: [termInclude] :: TermsAggregation -> Maybe TermInclusion
- Database.V5.Bloodhound.Types: [termKey] :: TermsResult -> BucketValue
- Database.V5.Bloodhound.Types: [termMinDocCount] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Types: [termOrder] :: TermsAggregation -> Maybe TermOrder
- Database.V5.Bloodhound.Types: [termShardSize] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Types: [termSize] :: TermsAggregation -> Maybe Int
- Database.V5.Bloodhound.Types: [termSortField] :: TermOrder -> Text
- Database.V5.Bloodhound.Types: [termSortOrder] :: TermOrder -> SortOrder
- Database.V5.Bloodhound.Types: [termValue] :: Term -> Text
- Database.V5.Bloodhound.Types: [term] :: TermsAggregation -> Either Text Text
- Database.V5.Bloodhound.Types: [termsAggs] :: TermsResult -> Maybe AggregationResults
- Database.V5.Bloodhound.Types: [termsDocCount] :: TermsResult -> Int
- Database.V5.Bloodhound.Types: [timedOut] :: SearchResult a -> Bool
- Database.V5.Bloodhound.Types: [took] :: SearchResult a -> Int
- Database.V5.Bloodhound.Types: [topLeft] :: GeoBoundingBox -> LatLon
- Database.V5.Bloodhound.Types: [trackSortScores] :: Search -> TrackSortScores
- Database.V5.Bloodhound.Types: [typeName] :: Mapping -> TypeName
- Database.V5.Bloodhound.Types: [unBH] :: BH m a -> ReaderT BHEnv m a
- Database.V5.Bloodhound.Types: [unFilter] :: Filter -> Query
- Database.V5.Bloodhound.Types: [unMaybeNA] :: MaybeNA a -> Maybe a
- Database.V5.Bloodhound.Types: [unit] :: Distance -> DistanceUnit
- Database.V5.Bloodhound.Types: [versionNumber] :: VersionNumber -> Version
- Database.V5.Bloodhound.Types: [version] :: Status -> Version
- Database.V5.Bloodhound.Types: [wildcardQueryBoost] :: WildcardQuery -> Maybe Boost
- Database.V5.Bloodhound.Types: [wildcardQueryField] :: WildcardQuery -> FieldName
- Database.V5.Bloodhound.Types: [wildcardQuery] :: WildcardQuery -> Text
- Database.V5.Bloodhound.Types: aggs :: BucketAggregation a => a -> Maybe AggregationResults
- Database.V5.Bloodhound.Types: bhManager :: BHEnv -> Manager
- Database.V5.Bloodhound.Types: bhRequestHook :: BHEnv -> Request -> IO Request
- Database.V5.Bloodhound.Types: bhServer :: BHEnv -> Server
- Database.V5.Bloodhound.Types: class BucketAggregation a
- Database.V5.Bloodhound.Types: class (Functor m, Applicative m, MonadIO m) => MonadBH m
- Database.V5.Bloodhound.Types: class Monoid a
- Database.V5.Bloodhound.Types: class Monoid a => Seminearring a
- Database.V5.Bloodhound.Types: class SnapshotRepo r
- Database.V5.Bloodhound.Types: class ToJSON a
- Database.V5.Bloodhound.Types: data Aggregation
- Database.V5.Bloodhound.Types: data AliasRouting
- Database.V5.Bloodhound.Types: data AllocationPolicy
- Database.V5.Bloodhound.Types: data Analysis
- Database.V5.Bloodhound.Types: data AnalyzerDefinition
- Database.V5.Bloodhound.Types: data BHEnv
- Database.V5.Bloodhound.Types: data BoolMatch
- Database.V5.Bloodhound.Types: data BoolQuery
- Database.V5.Bloodhound.Types: data BooleanOperator
- Database.V5.Bloodhound.Types: data BoostMode
- Database.V5.Bloodhound.Types: data BoostingQuery
- Database.V5.Bloodhound.Types: data BoundTransportAddress
- Database.V5.Bloodhound.Types: data Bucket a
- Database.V5.Bloodhound.Types: data BucketValue
- Database.V5.Bloodhound.Types: data BulkOperation
- Database.V5.Bloodhound.Types: data CPUInfo
- Database.V5.Bloodhound.Types: data CardinalityAggregation
- Database.V5.Bloodhound.Types: data CharFilterDefinition
- Database.V5.Bloodhound.Types: data CollectionMode
- Database.V5.Bloodhound.Types: data CommonHighlight
- Database.V5.Bloodhound.Types: data CommonMinimumMatch
- Database.V5.Bloodhound.Types: data CommonTermsQuery
- Database.V5.Bloodhound.Types: data ComponentFunctionScoreFunction
- Database.V5.Bloodhound.Types: data CompoundFormat
- Database.V5.Bloodhound.Types: data Compression
- Database.V5.Bloodhound.Types: data DateHistogramAggregation
- Database.V5.Bloodhound.Types: data DateHistogramResult
- Database.V5.Bloodhound.Types: data DateMathAnchor
- Database.V5.Bloodhound.Types: data DateMathExpr
- Database.V5.Bloodhound.Types: data DateMathModifier
- Database.V5.Bloodhound.Types: data DateMathUnit
- Database.V5.Bloodhound.Types: data DateRangeAggRange
- Database.V5.Bloodhound.Types: data DateRangeAggregation
- Database.V5.Bloodhound.Types: data DateRangeResult
- Database.V5.Bloodhound.Types: data DefaultSort
- Database.V5.Bloodhound.Types: data DirectGeneratorSuggestModeTypes
- Database.V5.Bloodhound.Types: data DirectGenerators
- Database.V5.Bloodhound.Types: data DisMaxQuery
- Database.V5.Bloodhound.Types: data Distance
- Database.V5.Bloodhound.Types: data DistanceRange
- Database.V5.Bloodhound.Types: data DistanceType
- Database.V5.Bloodhound.Types: data DistanceUnit
- Database.V5.Bloodhound.Types: data DocVersion
- Database.V5.Bloodhound.Types: data EsError
- Database.V5.Bloodhound.Types: data EsProtocolException
- Database.V5.Bloodhound.Types: data EsResult a
- Database.V5.Bloodhound.Types: data EsResultFound a
- Database.V5.Bloodhound.Types: data Exclude
- Database.V5.Bloodhound.Types: data ExecutionHint
- Database.V5.Bloodhound.Types: data FSType
- Database.V5.Bloodhound.Types: data FactorModifier
- Database.V5.Bloodhound.Types: data FastVectorHighlight
- Database.V5.Bloodhound.Types: data FieldHighlight
- Database.V5.Bloodhound.Types: data FieldOrFields
- Database.V5.Bloodhound.Types: data FieldValueFactor
- Database.V5.Bloodhound.Types: data FilterAggregation
- Database.V5.Bloodhound.Types: data ForceMergeIndexSettings
- Database.V5.Bloodhound.Types: data FsSnapshotRepo
- Database.V5.Bloodhound.Types: data FunctionScoreFunction
- Database.V5.Bloodhound.Types: data FunctionScoreFunctions
- Database.V5.Bloodhound.Types: data FunctionScoreQuery
- Database.V5.Bloodhound.Types: data FuzzyLikeFieldQuery
- Database.V5.Bloodhound.Types: data FuzzyLikeThisQuery
- Database.V5.Bloodhound.Types: data FuzzyQuery
- Database.V5.Bloodhound.Types: data GenericSnapshotRepo
- Database.V5.Bloodhound.Types: data GeoBoundingBox
- Database.V5.Bloodhound.Types: data GeoBoundingBoxConstraint
- Database.V5.Bloodhound.Types: data GeoFilterType
- Database.V5.Bloodhound.Types: data GeoPoint
- Database.V5.Bloodhound.Types: data HasChildQuery
- Database.V5.Bloodhound.Types: data HasParentQuery
- Database.V5.Bloodhound.Types: data HighlightEncoder
- Database.V5.Bloodhound.Types: data HighlightSettings
- Database.V5.Bloodhound.Types: data HighlightTag
- Database.V5.Bloodhound.Types: data Highlights
- Database.V5.Bloodhound.Types: data Hit a
- Database.V5.Bloodhound.Types: data Include
- Database.V5.Bloodhound.Types: data IndexAlias
- Database.V5.Bloodhound.Types: data IndexAliasAction
- Database.V5.Bloodhound.Types: data IndexAliasCreate
- Database.V5.Bloodhound.Types: data IndexAliasSummary
- Database.V5.Bloodhound.Types: data IndexDocumentSettings
- Database.V5.Bloodhound.Types: data IndexSelection
- Database.V5.Bloodhound.Types: data IndexSettings
- Database.V5.Bloodhound.Types: data IndexSettingsSummary
- Database.V5.Bloodhound.Types: data IndexTemplate
- Database.V5.Bloodhound.Types: data IndicesQuery
- Database.V5.Bloodhound.Types: data InitialShardCount
- Database.V5.Bloodhound.Types: data Interval
- Database.V5.Bloodhound.Types: data JVMBufferPoolStats
- Database.V5.Bloodhound.Types: data JVMGCStats
- Database.V5.Bloodhound.Types: data JVMMemoryInfo
- Database.V5.Bloodhound.Types: data JVMPoolStats
- Database.V5.Bloodhound.Types: data Language
- Database.V5.Bloodhound.Types: data LatLon
- Database.V5.Bloodhound.Types: data LoadAvgs
- Database.V5.Bloodhound.Types: data Mapping
- Database.V5.Bloodhound.Types: data MappingField
- Database.V5.Bloodhound.Types: data MatchQuery
- Database.V5.Bloodhound.Types: data MatchQueryType
- Database.V5.Bloodhound.Types: data MinimumMatchHighLow
- Database.V5.Bloodhound.Types: data Missing
- Database.V5.Bloodhound.Types: data MissingAggregation
- Database.V5.Bloodhound.Types: data MissingResult
- Database.V5.Bloodhound.Types: data MoreLikeThisFieldQuery
- Database.V5.Bloodhound.Types: data MoreLikeThisQuery
- Database.V5.Bloodhound.Types: data MultiMatchQuery
- Database.V5.Bloodhound.Types: data MultiMatchQueryType
- Database.V5.Bloodhound.Types: data NamedSuggestionResponse
- Database.V5.Bloodhound.Types: data NestedQuery
- Database.V5.Bloodhound.Types: data Ngram
- Database.V5.Bloodhound.Types: data NodeAttrFilter
- Database.V5.Bloodhound.Types: data NodeBreakerStats
- Database.V5.Bloodhound.Types: data NodeBreakersStats
- Database.V5.Bloodhound.Types: data NodeDataPathStats
- Database.V5.Bloodhound.Types: data NodeFSStats
- Database.V5.Bloodhound.Types: data NodeFSTotalStats
- Database.V5.Bloodhound.Types: data NodeHTTPInfo
- Database.V5.Bloodhound.Types: data NodeHTTPStats
- Database.V5.Bloodhound.Types: data NodeIndicesStats
- Database.V5.Bloodhound.Types: data NodeInfo
- Database.V5.Bloodhound.Types: data NodeJVMInfo
- Database.V5.Bloodhound.Types: data NodeJVMStats
- Database.V5.Bloodhound.Types: data NodeNetworkInfo
- Database.V5.Bloodhound.Types: data NodeNetworkInterface
- Database.V5.Bloodhound.Types: data NodeNetworkStats
- Database.V5.Bloodhound.Types: data NodeOSInfo
- Database.V5.Bloodhound.Types: data NodeOSStats
- Database.V5.Bloodhound.Types: data NodePluginInfo
- Database.V5.Bloodhound.Types: data NodeProcessInfo
- Database.V5.Bloodhound.Types: data NodeProcessStats
- Database.V5.Bloodhound.Types: data NodeSelection
- Database.V5.Bloodhound.Types: data NodeSelector
- Database.V5.Bloodhound.Types: data NodeStats
- Database.V5.Bloodhound.Types: data NodeThreadPoolInfo
- Database.V5.Bloodhound.Types: data NodeThreadPoolStats
- Database.V5.Bloodhound.Types: data NodeThreadPoolsInfo
- Database.V5.Bloodhound.Types: data NodeThreadPoolsStats
- Database.V5.Bloodhound.Types: data NodeTransportInfo
- Database.V5.Bloodhound.Types: data NodeTransportStats
- Database.V5.Bloodhound.Types: data NodesInfo
- Database.V5.Bloodhound.Types: data NodesStats
- Database.V5.Bloodhound.Types: data NonPostings
- Database.V5.Bloodhound.Types: data OpenCloseIndex
- Database.V5.Bloodhound.Types: data OptimizeBbox
- Database.V5.Bloodhound.Types: data PatternOrPatterns
- Database.V5.Bloodhound.Types: data PhraseSuggester
- Database.V5.Bloodhound.Types: data PhraseSuggesterCollate
- Database.V5.Bloodhound.Types: data PhraseSuggesterHighlighter
- Database.V5.Bloodhound.Types: data PlainHighlight
- Database.V5.Bloodhound.Types: data PostingsHighlight
- Database.V5.Bloodhound.Types: data PrefixQuery
- Database.V5.Bloodhound.Types: data Query
- Database.V5.Bloodhound.Types: data QueryStringQuery
- Database.V5.Bloodhound.Types: data RRGroupRefNum
- Database.V5.Bloodhound.Types: data RangeExecution
- Database.V5.Bloodhound.Types: data RangeQuery
- Database.V5.Bloodhound.Types: data RangeValue
- Database.V5.Bloodhound.Types: data RegexpFlag
- Database.V5.Bloodhound.Types: data RegexpFlags
- Database.V5.Bloodhound.Types: data RegexpQuery
- Database.V5.Bloodhound.Types: data ReplicaBounds
- Database.V5.Bloodhound.Types: data RestoreRenameToken
- Database.V5.Bloodhound.Types: data ScoreMode
- Database.V5.Bloodhound.Types: data ScoreType
- Database.V5.Bloodhound.Types: data Script
- Database.V5.Bloodhound.Types: data Search
- Database.V5.Bloodhound.Types: data SearchHits a
- Database.V5.Bloodhound.Types: data SearchResult a
- Database.V5.Bloodhound.Types: data SearchType
- Database.V5.Bloodhound.Types: data ShardResult
- Database.V5.Bloodhound.Types: data Shingle
- Database.V5.Bloodhound.Types: data SimpleQueryFlag
- Database.V5.Bloodhound.Types: data SimpleQueryStringQuery
- Database.V5.Bloodhound.Types: data SnapshotCreateSettings
- Database.V5.Bloodhound.Types: data SnapshotInfo
- Database.V5.Bloodhound.Types: data SnapshotNodeVerification
- Database.V5.Bloodhound.Types: data SnapshotPattern
- Database.V5.Bloodhound.Types: data SnapshotRepoConversionError
- Database.V5.Bloodhound.Types: data SnapshotRepoPattern
- Database.V5.Bloodhound.Types: data SnapshotRepoSelection
- Database.V5.Bloodhound.Types: data SnapshotRestoreSettings
- Database.V5.Bloodhound.Types: data SnapshotSelection
- Database.V5.Bloodhound.Types: data SnapshotShardFailure
- Database.V5.Bloodhound.Types: data SnapshotState
- Database.V5.Bloodhound.Types: data SortMode
- Database.V5.Bloodhound.Types: data SortOrder
- Database.V5.Bloodhound.Types: data SortSpec
- Database.V5.Bloodhound.Types: data Source
- Database.V5.Bloodhound.Types: data StatisticsAggregation
- Database.V5.Bloodhound.Types: data Status
- Database.V5.Bloodhound.Types: data Suggest
- Database.V5.Bloodhound.Types: data SuggestOptions
- Database.V5.Bloodhound.Types: data SuggestResponse
- Database.V5.Bloodhound.Types: data SuggestType
- Database.V5.Bloodhound.Types: data TemplateQueryInline
- Database.V5.Bloodhound.Types: data Term
- Database.V5.Bloodhound.Types: data TermInclusion
- Database.V5.Bloodhound.Types: data TermOrder
- Database.V5.Bloodhound.Types: data TermsAggregation
- Database.V5.Bloodhound.Types: data TermsResult
- Database.V5.Bloodhound.Types: data ThreadPoolSize
- Database.V5.Bloodhound.Types: data ThreadPoolType
- Database.V5.Bloodhound.Types: data TimeInterval
- Database.V5.Bloodhound.Types: data TokenChar
- Database.V5.Bloodhound.Types: data TokenFilterDefinition
- Database.V5.Bloodhound.Types: data TopHitResult a
- Database.V5.Bloodhound.Types: data TopHitsAggregation
- Database.V5.Bloodhound.Types: data UpdatableIndexSetting
- Database.V5.Bloodhound.Types: data ValueCountAggregation
- Database.V5.Bloodhound.Types: data Version
- Database.V5.Bloodhound.Types: data VersionControl
- Database.V5.Bloodhound.Types: data WildcardQuery
- Database.V5.Bloodhound.Types: data ZeroTermsQuery
- Database.V5.Bloodhound.Types: defaultCache :: Cache
- Database.V5.Bloodhound.Types: defaultForceMergeIndexSettings :: ForceMergeIndexSettings
- Database.V5.Bloodhound.Types: defaultIndexDocumentSettings :: IndexDocumentSettings
- Database.V5.Bloodhound.Types: defaultIndexSettings :: IndexSettings
- Database.V5.Bloodhound.Types: defaultSnapshotCreateSettings :: SnapshotCreateSettings
- Database.V5.Bloodhound.Types: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Types: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
- Database.V5.Bloodhound.Types: docCount :: BucketAggregation a => a -> Int
- Database.V5.Bloodhound.Types: docVersionNumber :: DocVersion -> Int
- Database.V5.Bloodhound.Types: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
- Database.V5.Bloodhound.Types: getBHEnv :: MonadBH m => m BHEnv
- Database.V5.Bloodhound.Types: gigabytes :: Int -> Bytes
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.V5.Bloodhound.Types.ScrollId
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.V5.Bloodhound.Types.SearchResult a)
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.Exclude
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.Include
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.Pattern
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.PatternOrPatterns
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.ScrollId
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.Search
- Database.V5.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.V5.Bloodhound.Types.Source
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.Exclude
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.Include
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.Pattern
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.PatternOrPatterns
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.ScrollId
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.Search
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.SearchType
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq Database.V5.Bloodhound.Types.Source
- Database.V5.Bloodhound.Types: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.V5.Bloodhound.Types.SearchResult a)
- Database.V5.Bloodhound.Types: instance GHC.Classes.Ord Database.V5.Bloodhound.Types.ScrollId
- Database.V5.Bloodhound.Types: instance GHC.Read.Read Database.V5.Bloodhound.Types.Exclude
- Database.V5.Bloodhound.Types: instance GHC.Read.Read Database.V5.Bloodhound.Types.Include
- Database.V5.Bloodhound.Types: instance GHC.Read.Read Database.V5.Bloodhound.Types.Pattern
- Database.V5.Bloodhound.Types: instance GHC.Read.Read Database.V5.Bloodhound.Types.PatternOrPatterns
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.Exclude
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.Include
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.Pattern
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.PatternOrPatterns
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.ScrollId
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.Search
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.SearchType
- Database.V5.Bloodhound.Types: instance GHC.Show.Show Database.V5.Bloodhound.Types.Source
- Database.V5.Bloodhound.Types: instance GHC.Show.Show a => GHC.Show.Show (Database.V5.Bloodhound.Types.SearchResult a)
- Database.V5.Bloodhound.Types: key :: BucketAggregation a => a -> BucketValue
- Database.V5.Bloodhound.Types: kilobytes :: Int -> Bytes
- Database.V5.Bloodhound.Types: mappend :: Monoid a => a -> a -> a
- Database.V5.Bloodhound.Types: mconcat :: Monoid a => [a] -> a
- Database.V5.Bloodhound.Types: megabytes :: Int -> Bytes
- Database.V5.Bloodhound.Types: mempty :: Monoid a => a
- Database.V5.Bloodhound.Types: mkAggregations :: Text -> Aggregation -> Aggregations
- Database.V5.Bloodhound.Types: mkBHEnv :: Server -> Manager -> BHEnv
- Database.V5.Bloodhound.Types: mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery
- Database.V5.Bloodhound.Types: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
- Database.V5.Bloodhound.Types: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
- Database.V5.Bloodhound.Types: mkDirectGenerators :: FieldName -> DirectGenerators
- Database.V5.Bloodhound.Types: mkDocVersion :: Int -> Maybe DocVersion
- Database.V5.Bloodhound.Types: mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Types: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
- Database.V5.Bloodhound.Types: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
- Database.V5.Bloodhound.Types: mkPhraseSuggester :: FieldName -> PhraseSuggester
- Database.V5.Bloodhound.Types: mkQueryStringQuery :: QueryString -> QueryStringQuery
- Database.V5.Bloodhound.Types: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
- Database.V5.Bloodhound.Types: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
- Database.V5.Bloodhound.Types: mkSort :: FieldName -> SortOrder -> DefaultSort
- Database.V5.Bloodhound.Types: mkStatsAggregation :: FieldName -> StatisticsAggregation
- Database.V5.Bloodhound.Types: mkTermsAggregation :: Text -> TermsAggregation
- Database.V5.Bloodhound.Types: mkTermsScriptAggregation :: Text -> TermsAggregation
- Database.V5.Bloodhound.Types: newtype AllowLeadingWildcard
- Database.V5.Bloodhound.Types: newtype AnalyzeWildcard
- Database.V5.Bloodhound.Types: newtype Analyzer
- Database.V5.Bloodhound.Types: newtype BH m a
- Database.V5.Bloodhound.Types: newtype Boost
- Database.V5.Bloodhound.Types: newtype BoostTerms
- Database.V5.Bloodhound.Types: newtype BuildHash
- Database.V5.Bloodhound.Types: newtype Bytes
- Database.V5.Bloodhound.Types: newtype CacheKey
- Database.V5.Bloodhound.Types: newtype CacheName
- Database.V5.Bloodhound.Types: newtype CharFilter
- Database.V5.Bloodhound.Types: newtype ClusterName
- Database.V5.Bloodhound.Types: newtype CutoffFrequency
- Database.V5.Bloodhound.Types: newtype DisableCoord
- Database.V5.Bloodhound.Types: newtype DocId
- Database.V5.Bloodhound.Types: newtype DocumentParent
- Database.V5.Bloodhound.Types: newtype EnablePositionIncrements
- Database.V5.Bloodhound.Types: newtype EsAddress
- Database.V5.Bloodhound.Types: newtype EsPassword
- Database.V5.Bloodhound.Types: newtype EsUsername
- Database.V5.Bloodhound.Types: newtype Existence
- Database.V5.Bloodhound.Types: newtype ExternalDocVersion
- Database.V5.Bloodhound.Types: newtype Factor
- Database.V5.Bloodhound.Types: newtype FactorMissingFieldValue
- Database.V5.Bloodhound.Types: newtype FieldDefinition
- Database.V5.Bloodhound.Types: newtype FieldName
- Database.V5.Bloodhound.Types: newtype Filter
- Database.V5.Bloodhound.Types: newtype From
- Database.V5.Bloodhound.Types: newtype FullNodeId
- Database.V5.Bloodhound.Types: newtype Fuzziness
- Database.V5.Bloodhound.Types: newtype GeneratePhraseQueries
- Database.V5.Bloodhound.Types: newtype GenericSnapshotRepoSettings
- Database.V5.Bloodhound.Types: newtype GreaterThan
- Database.V5.Bloodhound.Types: newtype GreaterThanD
- Database.V5.Bloodhound.Types: newtype GreaterThanEq
- Database.V5.Bloodhound.Types: newtype GreaterThanEqD
- Database.V5.Bloodhound.Types: newtype HitFields
- Database.V5.Bloodhound.Types: newtype IgnoreTermFrequency
- Database.V5.Bloodhound.Types: newtype IndexAliasName
- Database.V5.Bloodhound.Types: newtype IndexAliasRouting
- Database.V5.Bloodhound.Types: newtype IndexAliasesSummary
- Database.V5.Bloodhound.Types: newtype IndexName
- Database.V5.Bloodhound.Types: newtype JVMGCCollector
- Database.V5.Bloodhound.Types: newtype JVMMemoryPool
- Database.V5.Bloodhound.Types: newtype Lenient
- Database.V5.Bloodhound.Types: newtype LessThan
- Database.V5.Bloodhound.Types: newtype LessThanD
- Database.V5.Bloodhound.Types: newtype LessThanEq
- Database.V5.Bloodhound.Types: newtype LessThanEqD
- Database.V5.Bloodhound.Types: newtype Locale
- Database.V5.Bloodhound.Types: newtype LowercaseExpanded
- Database.V5.Bloodhound.Types: newtype MacAddress
- Database.V5.Bloodhound.Types: newtype MappingName
- Database.V5.Bloodhound.Types: newtype MaxDocFrequency
- Database.V5.Bloodhound.Types: newtype MaxExpansions
- Database.V5.Bloodhound.Types: newtype MaxQueryTerms
- Database.V5.Bloodhound.Types: newtype MaxWordLength
- Database.V5.Bloodhound.Types: newtype MaybeNA a
- Database.V5.Bloodhound.Types: newtype MinDocFrequency
- Database.V5.Bloodhound.Types: newtype MinWordLength
- Database.V5.Bloodhound.Types: newtype MinimumMatch
- Database.V5.Bloodhound.Types: newtype MinimumTermFrequency
- Database.V5.Bloodhound.Types: newtype NetworkInterfaceName
- Database.V5.Bloodhound.Types: newtype NodeAttrName
- Database.V5.Bloodhound.Types: newtype NodeName
- Database.V5.Bloodhound.Types: newtype NullValue
- Database.V5.Bloodhound.Types: newtype PID
- Database.V5.Bloodhound.Types: newtype Pattern
- Database.V5.Bloodhound.Types: newtype PercentMatch
- Database.V5.Bloodhound.Types: newtype PhraseSlop
- Database.V5.Bloodhound.Types: newtype PluginName
- Database.V5.Bloodhound.Types: newtype PrefixLength
- Database.V5.Bloodhound.Types: newtype QueryPath
- Database.V5.Bloodhound.Types: newtype QueryString
- Database.V5.Bloodhound.Types: newtype Regexp
- Database.V5.Bloodhound.Types: newtype ReplicaCount
- Database.V5.Bloodhound.Types: newtype RestoreIndexSettings
- Database.V5.Bloodhound.Types: newtype RestoreRenamePattern
- Database.V5.Bloodhound.Types: newtype RoutingValue
- Database.V5.Bloodhound.Types: newtype ScriptFields
- Database.V5.Bloodhound.Types: newtype ScriptId
- Database.V5.Bloodhound.Types: newtype ScriptInline
- Database.V5.Bloodhound.Types: newtype ScriptLanguage
- Database.V5.Bloodhound.Types: newtype ScriptParams
- Database.V5.Bloodhound.Types: newtype ScrollId
- Database.V5.Bloodhound.Types: newtype SearchAliasRouting
- Database.V5.Bloodhound.Types: newtype Seed
- Database.V5.Bloodhound.Types: newtype Server
- Database.V5.Bloodhound.Types: newtype ShardCount
- Database.V5.Bloodhound.Types: newtype ShardId
- Database.V5.Bloodhound.Types: newtype Size
- Database.V5.Bloodhound.Types: newtype SnapshotName
- Database.V5.Bloodhound.Types: newtype SnapshotRepoName
- Database.V5.Bloodhound.Types: newtype SnapshotRepoType
- Database.V5.Bloodhound.Types: newtype SnapshotRepoUpdateSettings
- Database.V5.Bloodhound.Types: newtype SnapshotVerification
- Database.V5.Bloodhound.Types: newtype StopWord
- Database.V5.Bloodhound.Types: newtype TemplateName
- Database.V5.Bloodhound.Types: newtype TemplatePattern
- Database.V5.Bloodhound.Types: newtype TemplateQueryKeyValuePairs
- Database.V5.Bloodhound.Types: newtype Tiebreaker
- Database.V5.Bloodhound.Types: newtype TokenFilter
- Database.V5.Bloodhound.Types: newtype Tokenizer
- Database.V5.Bloodhound.Types: newtype TokenizerDefinition
- Database.V5.Bloodhound.Types: newtype TypeName
- Database.V5.Bloodhound.Types: newtype VersionNumber
- Database.V5.Bloodhound.Types: newtype Weight
- Database.V5.Bloodhound.Types: omitNulls :: [(Text, Value)] -> Value
- Database.V5.Bloodhound.Types: rrGroupRefNum :: RRGroupRefNum -> Int
- Database.V5.Bloodhound.Types: runBH :: BHEnv -> BH m a -> m a
- Database.V5.Bloodhound.Types: showText :: Show a => a -> Text
- Database.V5.Bloodhound.Types: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
- Database.V5.Bloodhound.Types: toEncoding :: ToJSON a => a -> Encoding
- Database.V5.Bloodhound.Types: toEncodingList :: ToJSON a => [a] -> Encoding
- Database.V5.Bloodhound.Types: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
- Database.V5.Bloodhound.Types: toJSON :: ToJSON a => a -> Value
- Database.V5.Bloodhound.Types: toJSONList :: ToJSON a => [a] -> Value
- Database.V5.Bloodhound.Types: toMissing :: Text -> AggregationResults -> Maybe MissingResult
- Database.V5.Bloodhound.Types: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
- Database.V5.Bloodhound.Types: toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)
- Database.V5.Bloodhound.Types: type AggregationResults = Map Text Value
- Database.V5.Bloodhound.Types: type Aggregations = Map Text Aggregation
- Database.V5.Bloodhound.Types: type Cache = Bool
- Database.V5.Bloodhound.Types: type HitHighlight = Map Text [Text]
- Database.V5.Bloodhound.Types: type Method = Method
- Database.V5.Bloodhound.Types: type Reply = Response LByteString
- Database.V5.Bloodhound.Types: type Score = Maybe Double
- Database.V5.Bloodhound.Types: type ScriptFieldName = Text
- Database.V5.Bloodhound.Types: type ScriptFieldValue = Value
- Database.V5.Bloodhound.Types: type ScriptParamName = Text
- Database.V5.Bloodhound.Types: type ScriptParamValue = Value
- Database.V5.Bloodhound.Types: type Sort = [SortSpec]
- Database.V5.Bloodhound.Types: type TrackSortScores = Bool
- Database.V5.Bloodhound.Types: unpackId :: DocId -> Text
- Database.V5.Bloodhound.Types.Class: (<&&>) :: Seminearring a => a -> a -> a
- Database.V5.Bloodhound.Types.Class: (<||>) :: Seminearring a => a -> a -> a
- Database.V5.Bloodhound.Types.Class: class Monoid a => Seminearring a
+ Database.Bloodhound.Client: advanceScroll :: (FromJSON a, MonadBH m, MonadThrow m) => ScrollId -> NominalDiffTime -> m (Either EsError (SearchResult a))
+ Database.Bloodhound.Client: basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request
+ Database.Bloodhound.Client: bulk :: MonadBH m => Vector BulkOperation -> m Reply
+ Database.Bloodhound.Client: catIndices :: (MonadThrow m, MonadBH m) => m [(IndexName, Int)]
+ Database.Bloodhound.Client: closeIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: countByIndex :: (MonadBH m, MonadThrow m) => IndexName -> CountQuery -> m (Either EsError CountResponse)
+ Database.Bloodhound.Client: createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply
+ Database.Bloodhound.Client: createIndexWith :: MonadBH m => [UpdatableIndexSetting] -> Int -> IndexName -> m Reply
+ Database.Bloodhound.Client: createSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> SnapshotCreateSettings -> m Reply
+ Database.Bloodhound.Client: deleteByQuery :: MonadBH m => IndexName -> Query -> m Reply
+ Database.Bloodhound.Client: deleteDocument :: MonadBH m => IndexName -> DocId -> m Reply
+ Database.Bloodhound.Client: deleteIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: deleteIndexAlias :: MonadBH m => IndexAliasName -> m Reply
+ Database.Bloodhound.Client: deleteSearchTemplate :: MonadBH m => SearchTemplateId -> m Reply
+ Database.Bloodhound.Client: deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply
+ Database.Bloodhound.Client: deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply
+ Database.Bloodhound.Client: deleteTemplate :: MonadBH m => TemplateName -> m Reply
+ Database.Bloodhound.Client: documentExists :: MonadBH m => IndexName -> DocId -> m Bool
+ Database.Bloodhound.Client: encodeBulkOperation :: BulkOperation -> ByteString
+ Database.Bloodhound.Client: encodeBulkOperations :: Vector BulkOperation -> ByteString
+ Database.Bloodhound.Client: flushIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: forceMergeIndex :: MonadBH m => IndexSelection -> ForceMergeIndexSettings -> m Reply
+ Database.Bloodhound.Client: getDocument :: MonadBH m => IndexName -> DocId -> m Reply
+ Database.Bloodhound.Client: getIndexAliases :: (MonadBH m, MonadThrow m) => m (Either EsError IndexAliasesSummary)
+ Database.Bloodhound.Client: getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName -> m (Either EsError IndexSettingsSummary)
+ Database.Bloodhound.Client: getInitialScroll :: (FromJSON a, MonadThrow m, MonadBH m) => IndexName -> Search -> m (Either EsError (SearchResult a))
+ Database.Bloodhound.Client: getInitialSortedScroll :: (FromJSON a, MonadThrow m, MonadBH m) => IndexName -> Search -> m (Either EsError (SearchResult a))
+ Database.Bloodhound.Client: getNodesInfo :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesInfo)
+ Database.Bloodhound.Client: getNodesStats :: (MonadBH m, MonadThrow m) => NodeSelection -> m (Either EsError NodesStats)
+ Database.Bloodhound.Client: getSearchTemplate :: MonadBH m => SearchTemplateId -> m Reply
+ Database.Bloodhound.Client: getSnapshotRepos :: (MonadBH m, MonadThrow m) => SnapshotRepoSelection -> m (Either EsError [GenericSnapshotRepo])
+ Database.Bloodhound.Client: getSnapshots :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> SnapshotSelection -> m (Either EsError [SnapshotInfo])
+ Database.Bloodhound.Client: getStatus :: MonadBH m => m (Maybe Status)
+ Database.Bloodhound.Client: indexDocument :: (ToJSON doc, MonadBH m) => IndexName -> IndexDocumentSettings -> doc -> DocId -> m Reply
+ Database.Bloodhound.Client: indexExists :: MonadBH m => IndexName -> m Bool
+ Database.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Client.GSRs
+ Database.Bloodhound.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Client.SIs
+ Database.Bloodhound.Client: isCreated :: Reply -> Bool
+ Database.Bloodhound.Client: isSuccess :: Reply -> Bool
+ Database.Bloodhound.Client: isVersionConflict :: Reply -> Bool
+ Database.Bloodhound.Client: listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]
+ Database.Bloodhound.Client: mkAggregateSearch :: Maybe Query -> Aggregations -> Search
+ Database.Bloodhound.Client: mkHighlightSearch :: Maybe Query -> Highlights -> Search
+ Database.Bloodhound.Client: mkReplicaCount :: Int -> Maybe ReplicaCount
+ Database.Bloodhound.Client: mkSearch :: Maybe Query -> Maybe Filter -> Search
+ Database.Bloodhound.Client: mkSearchTemplate :: Either SearchTemplateId SearchTemplateSource -> TemplateQueryKeyValuePairs -> SearchTemplate
+ Database.Bloodhound.Client: mkShardCount :: Int -> Maybe ShardCount
+ Database.Bloodhound.Client: openIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: pageSearch :: From -> Size -> Search -> Search
+ Database.Bloodhound.Client: parseEsResponse :: (MonadThrow m, FromJSON a) => Reply -> m (Either EsError a)
+ Database.Bloodhound.Client: putMapping :: (MonadBH m, ToJSON a) => IndexName -> a -> m Reply
+ Database.Bloodhound.Client: putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply
+ Database.Bloodhound.Client: refreshIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: restoreSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> SnapshotRestoreSettings -> m Reply
+ Database.Bloodhound.Client: scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName -> Search -> m [Hit a]
+ Database.Bloodhound.Client: searchAll :: MonadBH m => Search -> m Reply
+ Database.Bloodhound.Client: searchByIndex :: MonadBH m => IndexName -> Search -> m Reply
+ Database.Bloodhound.Client: searchByIndexTemplate :: MonadBH m => IndexName -> SearchTemplate -> m Reply
+ Database.Bloodhound.Client: searchByIndices :: MonadBH m => NonEmpty IndexName -> Search -> m Reply
+ Database.Bloodhound.Client: searchByIndicesTemplate :: MonadBH m => NonEmpty IndexName -> SearchTemplate -> m Reply
+ Database.Bloodhound.Client: storeSearchTemplate :: MonadBH m => SearchTemplateId -> SearchTemplateSource -> m Reply
+ Database.Bloodhound.Client: templateExists :: MonadBH m => TemplateName -> m Bool
+ Database.Bloodhound.Client: updateDocument :: (ToJSON patch, MonadBH m) => IndexName -> IndexDocumentSettings -> patch -> DocId -> m Reply
+ Database.Bloodhound.Client: updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply
+ Database.Bloodhound.Client: updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply
+ Database.Bloodhound.Client: updateSnapshotRepo :: (MonadBH m, SnapshotRepo repo) => SnapshotRepoUpdateSettings -> repo -> m Reply
+ Database.Bloodhound.Client: verifySnapshotRepo :: (MonadBH m, MonadThrow m) => SnapshotRepoName -> m (Either EsError SnapshotVerification)
+ Database.Bloodhound.Client: waitForYellowIndex :: MonadBH m => IndexName -> m Reply
+ Database.Bloodhound.Client: withBH :: ManagerSettings -> Server -> BH IO a -> IO a
+ Database.Bloodhound.Internal.Aggregation: AddTime :: Int -> DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: Basic :: StatsType
+ Database.Bloodhound.Internal.Aggregation: BoolValue :: Bool -> BucketValue
+ Database.Bloodhound.Internal.Aggregation: BreadthFirst :: CollectionMode
+ Database.Bloodhound.Internal.Aggregation: Bucket :: [a] -> Bucket a
+ Database.Bloodhound.Internal.Aggregation: CardinalityAgg :: CardinalityAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
+ Database.Bloodhound.Internal.Aggregation: DMDate :: Day -> DateMathAnchor
+ Database.Bloodhound.Internal.Aggregation: DMDay :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMHour :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMMinute :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMMonth :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMNow :: DateMathAnchor
+ Database.Bloodhound.Internal.Aggregation: DMSecond :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMWeek :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DMYear :: DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
+ Database.Bloodhound.Internal.Aggregation: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
+ Database.Bloodhound.Internal.Aggregation: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
+ Database.Bloodhound.Internal.Aggregation: DateRangeAgg :: DateRangeAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
+ Database.Bloodhound.Internal.Aggregation: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: DateRangeTo :: DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: DepthFirst :: CollectionMode
+ Database.Bloodhound.Internal.Aggregation: Extended :: StatsType
+ Database.Bloodhound.Internal.Aggregation: FieldValueCount :: FieldName -> ValueCountAggregation
+ Database.Bloodhound.Internal.Aggregation: FilterAgg :: FilterAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
+ Database.Bloodhound.Internal.Aggregation: GlobalOrdinals :: ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: HTR_EQ :: HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: HTR_GTE :: HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: Hit :: IndexName -> DocId -> Score -> Maybe a -> Maybe SearchAfterKey -> Maybe HitFields -> Maybe HitHighlight -> Hit a
+ Database.Bloodhound.Internal.Aggregation: HitsTotal :: Int -> HitsTotalRelation -> HitsTotal
+ Database.Bloodhound.Internal.Aggregation: Map :: ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: MissingAgg :: MissingAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: MissingAggregation :: Text -> MissingAggregation
+ Database.Bloodhound.Internal.Aggregation: MissingResult :: Int -> MissingResult
+ Database.Bloodhound.Internal.Aggregation: RoundDownTo :: DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: ScientificValue :: Scientific -> BucketValue
+ Database.Bloodhound.Internal.Aggregation: ScriptValueCount :: Script -> ValueCountAggregation
+ Database.Bloodhound.Internal.Aggregation: SearchHits :: HitsTotal -> Score -> [Hit a] -> SearchHits a
+ Database.Bloodhound.Internal.Aggregation: StatisticsAggregation :: StatsType -> FieldName -> StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: StatsAgg :: StatisticsAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: TermInclusion :: Text -> TermInclusion
+ Database.Bloodhound.Internal.Aggregation: TermOrder :: Text -> SortOrder -> TermOrder
+ Database.Bloodhound.Internal.Aggregation: TermPattern :: Text -> Text -> TermInclusion
+ Database.Bloodhound.Internal.Aggregation: TermsAgg :: TermsAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
+ Database.Bloodhound.Internal.Aggregation: TextValue :: Text -> BucketValue
+ Database.Bloodhound.Internal.Aggregation: TopHitResult :: SearchHits a -> TopHitResult a
+ Database.Bloodhound.Internal.Aggregation: TopHitsAgg :: TopHitsAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
+ Database.Bloodhound.Internal.Aggregation: ValueCountAgg :: ValueCountAggregation -> Aggregation
+ Database.Bloodhound.Internal.Aggregation: [buckets] :: Bucket a -> [a]
+ Database.Bloodhound.Internal.Aggregation: [cardinalityField] :: CardinalityAggregation -> FieldName
+ Database.Bloodhound.Internal.Aggregation: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
+ Database.Bloodhound.Internal.Aggregation: [dateDocCount] :: DateHistogramResult -> Int
+ Database.Bloodhound.Internal.Aggregation: [dateField] :: DateHistogramAggregation -> FieldName
+ Database.Bloodhound.Internal.Aggregation: [dateFormat] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
+ Database.Bloodhound.Internal.Aggregation: [dateInterval] :: DateHistogramAggregation -> Interval
+ Database.Bloodhound.Internal.Aggregation: [dateKeyStr] :: DateHistogramResult -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [dateKey] :: DateHistogramResult -> Int
+ Database.Bloodhound.Internal.Aggregation: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [datePostZone] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [datePreZone] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
+ Database.Bloodhound.Internal.Aggregation: [dateRangeDocCount] :: DateRangeResult -> Int
+ Database.Bloodhound.Internal.Aggregation: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
+ Database.Bloodhound.Internal.Aggregation: [dateRangeKey] :: DateRangeResult -> Text
+ Database.Bloodhound.Internal.Aggregation: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
+ Database.Bloodhound.Internal.Aggregation: [draField] :: DateRangeAggregation -> FieldName
+ Database.Bloodhound.Internal.Aggregation: [draFormat] :: DateRangeAggregation -> Maybe Text
+ Database.Bloodhound.Internal.Aggregation: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: [faAggs] :: FilterAggregation -> Maybe Aggregations
+ Database.Bloodhound.Internal.Aggregation: [faFilter] :: FilterAggregation -> Filter
+ Database.Bloodhound.Internal.Aggregation: [hitDocId] :: Hit a -> DocId
+ Database.Bloodhound.Internal.Aggregation: [hitFields] :: Hit a -> Maybe HitFields
+ Database.Bloodhound.Internal.Aggregation: [hitHighlight] :: Hit a -> Maybe HitHighlight
+ Database.Bloodhound.Internal.Aggregation: [hitIndex] :: Hit a -> IndexName
+ Database.Bloodhound.Internal.Aggregation: [hitScore] :: Hit a -> Score
+ Database.Bloodhound.Internal.Aggregation: [hitSort] :: Hit a -> Maybe SearchAfterKey
+ Database.Bloodhound.Internal.Aggregation: [hitSource] :: Hit a -> Maybe a
+ Database.Bloodhound.Internal.Aggregation: [hitsTotal] :: SearchHits a -> HitsTotal
+ Database.Bloodhound.Internal.Aggregation: [hits] :: SearchHits a -> [Hit a]
+ Database.Bloodhound.Internal.Aggregation: [maField] :: MissingAggregation -> Text
+ Database.Bloodhound.Internal.Aggregation: [maxScore] :: SearchHits a -> Score
+ Database.Bloodhound.Internal.Aggregation: [missingDocCount] :: MissingResult -> Int
+ Database.Bloodhound.Internal.Aggregation: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
+ Database.Bloodhound.Internal.Aggregation: [relation] :: HitsTotal -> HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: [statsField] :: StatisticsAggregation -> FieldName
+ Database.Bloodhound.Internal.Aggregation: [statsType] :: StatisticsAggregation -> StatsType
+ Database.Bloodhound.Internal.Aggregation: [taFrom] :: TopHitsAggregation -> Maybe From
+ Database.Bloodhound.Internal.Aggregation: [taSize] :: TopHitsAggregation -> Maybe Size
+ Database.Bloodhound.Internal.Aggregation: [taSort] :: TopHitsAggregation -> Maybe Sort
+ Database.Bloodhound.Internal.Aggregation: [tarHits] :: TopHitResult a -> SearchHits a
+ Database.Bloodhound.Internal.Aggregation: [termAggs] :: TermsAggregation -> Maybe Aggregations
+ Database.Bloodhound.Internal.Aggregation: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
+ Database.Bloodhound.Internal.Aggregation: [termExclude] :: TermsAggregation -> Maybe TermInclusion
+ Database.Bloodhound.Internal.Aggregation: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: [termInclude] :: TermsAggregation -> Maybe TermInclusion
+ Database.Bloodhound.Internal.Aggregation: [termKey] :: TermsResult -> BucketValue
+ Database.Bloodhound.Internal.Aggregation: [termMinDocCount] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Internal.Aggregation: [termOrder] :: TermsAggregation -> Maybe TermOrder
+ Database.Bloodhound.Internal.Aggregation: [termShardSize] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Internal.Aggregation: [termSize] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Internal.Aggregation: [termSortField] :: TermOrder -> Text
+ Database.Bloodhound.Internal.Aggregation: [termSortOrder] :: TermOrder -> SortOrder
+ Database.Bloodhound.Internal.Aggregation: [term] :: TermsAggregation -> Either Text Text
+ Database.Bloodhound.Internal.Aggregation: [termsAggs] :: TermsResult -> Maybe AggregationResults
+ Database.Bloodhound.Internal.Aggregation: [termsDocCount] :: TermsResult -> Int
+ Database.Bloodhound.Internal.Aggregation: [value] :: HitsTotal -> Int
+ Database.Bloodhound.Internal.Aggregation: aggs :: BucketAggregation a => a -> Maybe AggregationResults
+ Database.Bloodhound.Internal.Aggregation: class BucketAggregation a
+ Database.Bloodhound.Internal.Aggregation: data Aggregation
+ Database.Bloodhound.Internal.Aggregation: data Bucket a
+ Database.Bloodhound.Internal.Aggregation: data BucketValue
+ Database.Bloodhound.Internal.Aggregation: data CardinalityAggregation
+ Database.Bloodhound.Internal.Aggregation: data CollectionMode
+ Database.Bloodhound.Internal.Aggregation: data DateHistogramAggregation
+ Database.Bloodhound.Internal.Aggregation: data DateHistogramResult
+ Database.Bloodhound.Internal.Aggregation: data DateMathAnchor
+ Database.Bloodhound.Internal.Aggregation: data DateMathExpr
+ Database.Bloodhound.Internal.Aggregation: data DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: data DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: data DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: data DateRangeAggregation
+ Database.Bloodhound.Internal.Aggregation: data DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: data ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: data FilterAggregation
+ Database.Bloodhound.Internal.Aggregation: data Hit a
+ Database.Bloodhound.Internal.Aggregation: data HitsTotal
+ Database.Bloodhound.Internal.Aggregation: data HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: data MissingAggregation
+ Database.Bloodhound.Internal.Aggregation: data MissingResult
+ Database.Bloodhound.Internal.Aggregation: data SearchHits a
+ Database.Bloodhound.Internal.Aggregation: data StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: data StatsType
+ Database.Bloodhound.Internal.Aggregation: data TermInclusion
+ Database.Bloodhound.Internal.Aggregation: data TermOrder
+ Database.Bloodhound.Internal.Aggregation: data TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: data TermsResult
+ Database.Bloodhound.Internal.Aggregation: data TopHitResult a
+ Database.Bloodhound.Internal.Aggregation: data TopHitsAggregation
+ Database.Bloodhound.Internal.Aggregation: data ValueCountAggregation
+ Database.Bloodhound.Internal.Aggregation: docCount :: BucketAggregation a => a -> Int
+ Database.Bloodhound.Internal.Aggregation: emptyAggregations :: Aggregations
+ Database.Bloodhound.Internal.Aggregation: getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.BucketValue
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.DateHistogramResult
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.HitsTotal
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.MissingResult
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Aggregation.TermsResult
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Aggregation.Bucket a)
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Aggregation.Hit a)
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Aggregation.SearchHits a)
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Aggregation.TopHitResult a)
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.Aggregation
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.CollectionMode
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.DateMathExpr
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.DateRangeAggregation
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.TermInclusion
+ Database.Bloodhound.Internal.Aggregation: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Aggregation.TermOrder
+ Database.Bloodhound.Internal.Aggregation: instance Database.Bloodhound.Internal.Aggregation.BucketAggregation Database.Bloodhound.Internal.Aggregation.DateHistogramResult
+ Database.Bloodhound.Internal.Aggregation: instance Database.Bloodhound.Internal.Aggregation.BucketAggregation Database.Bloodhound.Internal.Aggregation.DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: instance Database.Bloodhound.Internal.Aggregation.BucketAggregation Database.Bloodhound.Internal.Aggregation.TermsResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Base.Monoid (Database.Bloodhound.Internal.Aggregation.SearchHits a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Base.Semigroup (Database.Bloodhound.Internal.Aggregation.SearchHits a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Base.Semigroup Database.Bloodhound.Internal.Aggregation.HitsTotal
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.Aggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.CardinalityAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.CollectionMode
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateHistogramAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateMathAnchor
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateMathExpr
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateRangeAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.FilterAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.HitsTotal
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.MissingAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.StatsType
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.TermInclusion
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.TermOrder
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.TopHitsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq Database.Bloodhound.Internal.Aggregation.ValueCountAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Internal.Aggregation.Hit a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Internal.Aggregation.SearchHits a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Read.Read Database.Bloodhound.Internal.Aggregation.BucketValue
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Read.Read Database.Bloodhound.Internal.Aggregation.TermsResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Read.Read a => GHC.Read.Read (Database.Bloodhound.Internal.Aggregation.Bucket a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.Aggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.BucketValue
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.CardinalityAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.CollectionMode
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateHistogramAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateHistogramResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateMathAnchor
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateMathExpr
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateMathModifier
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateMathUnit
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateRangeAggRange
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateRangeAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.DateRangeResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.ExecutionHint
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.FilterAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.HitsTotal
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.HitsTotalRelation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.MissingAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.MissingResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.StatsType
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.TermInclusion
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.TermOrder
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.TermsResult
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.TopHitsAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show Database.Bloodhound.Internal.Aggregation.ValueCountAggregation
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Aggregation.Bucket a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Aggregation.Hit a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Aggregation.SearchHits a)
+ Database.Bloodhound.Internal.Aggregation: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Aggregation.TopHitResult a)
+ Database.Bloodhound.Internal.Aggregation: key :: BucketAggregation a => a -> BucketValue
+ Database.Bloodhound.Internal.Aggregation: mkAggregations :: Text -> Aggregation -> Aggregations
+ Database.Bloodhound.Internal.Aggregation: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
+ Database.Bloodhound.Internal.Aggregation: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
+ Database.Bloodhound.Internal.Aggregation: mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: mkStatsAggregation :: FieldName -> StatisticsAggregation
+ Database.Bloodhound.Internal.Aggregation: mkTermsAggregation :: Text -> TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: mkTermsScriptAggregation :: Text -> TermsAggregation
+ Database.Bloodhound.Internal.Aggregation: toAggResult :: FromJSON a => Text -> AggregationResults -> Maybe a
+ Database.Bloodhound.Internal.Aggregation: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
+ Database.Bloodhound.Internal.Aggregation: toMissing :: Text -> AggregationResults -> Maybe MissingResult
+ Database.Bloodhound.Internal.Aggregation: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
+ Database.Bloodhound.Internal.Aggregation: toTopHits :: FromJSON a => Text -> AggregationResults -> Maybe (TopHitResult a)
+ Database.Bloodhound.Internal.Aggregation: type AggregationResults = Map Text Value
+ Database.Bloodhound.Internal.Aggregation: type Aggregations = Map Text Aggregation
+ Database.Bloodhound.Internal.Aggregation: type SearchAfterKey = [Value]
+ Database.Bloodhound.Internal.Analysis: Analysis :: Map Text AnalyzerDefinition -> Map Text TokenizerDefinition -> Map Text TokenFilterDefinition -> Map Text CharFilterDefinition -> Analysis
+ Database.Bloodhound.Internal.Analysis: AnalyzerDefinition :: Maybe Tokenizer -> [TokenFilter] -> [CharFilter] -> AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: Arabic :: Language
+ Database.Bloodhound.Internal.Analysis: Armenian :: Language
+ Database.Bloodhound.Internal.Analysis: Basque :: Language
+ Database.Bloodhound.Internal.Analysis: Bengali :: Language
+ Database.Bloodhound.Internal.Analysis: Brazilian :: Language
+ Database.Bloodhound.Internal.Analysis: Bulgarian :: Language
+ Database.Bloodhound.Internal.Analysis: Catalan :: Language
+ Database.Bloodhound.Internal.Analysis: CharFilterDefinitionMapping :: Map Text Text -> CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: CharFilterDefinitionPatternReplace :: Text -> Text -> Maybe Text -> CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: Cjk :: Language
+ Database.Bloodhound.Internal.Analysis: Czech :: Language
+ Database.Bloodhound.Internal.Analysis: Danish :: Language
+ Database.Bloodhound.Internal.Analysis: Dutch :: Language
+ Database.Bloodhound.Internal.Analysis: English :: Language
+ Database.Bloodhound.Internal.Analysis: Finnish :: Language
+ Database.Bloodhound.Internal.Analysis: French :: Language
+ Database.Bloodhound.Internal.Analysis: Galician :: Language
+ Database.Bloodhound.Internal.Analysis: German :: Language
+ Database.Bloodhound.Internal.Analysis: German2 :: Language
+ Database.Bloodhound.Internal.Analysis: Greek :: Language
+ Database.Bloodhound.Internal.Analysis: Hindi :: Language
+ Database.Bloodhound.Internal.Analysis: Hungarian :: Language
+ Database.Bloodhound.Internal.Analysis: Indonesian :: Language
+ Database.Bloodhound.Internal.Analysis: Irish :: Language
+ Database.Bloodhound.Internal.Analysis: Italian :: Language
+ Database.Bloodhound.Internal.Analysis: Kp :: Language
+ Database.Bloodhound.Internal.Analysis: Latvian :: Language
+ Database.Bloodhound.Internal.Analysis: Lithuanian :: Language
+ Database.Bloodhound.Internal.Analysis: Lovins :: Language
+ Database.Bloodhound.Internal.Analysis: Ngram :: Int -> Int -> [TokenChar] -> Ngram
+ Database.Bloodhound.Internal.Analysis: Norwegian :: Language
+ Database.Bloodhound.Internal.Analysis: Persian :: Language
+ Database.Bloodhound.Internal.Analysis: Porter :: Language
+ Database.Bloodhound.Internal.Analysis: Portuguese :: Language
+ Database.Bloodhound.Internal.Analysis: Romanian :: Language
+ Database.Bloodhound.Internal.Analysis: Russian :: Language
+ Database.Bloodhound.Internal.Analysis: Shingle :: Int -> Int -> Bool -> Bool -> Text -> Text -> Shingle
+ Database.Bloodhound.Internal.Analysis: Sorani :: Language
+ Database.Bloodhound.Internal.Analysis: Spanish :: Language
+ Database.Bloodhound.Internal.Analysis: Swedish :: Language
+ Database.Bloodhound.Internal.Analysis: Thai :: Language
+ Database.Bloodhound.Internal.Analysis: TokenDigit :: TokenChar
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionApostrophe :: TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionLowercase :: Maybe Language -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionReverse :: TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionShingle :: Shingle -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionSnowball :: Language -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionStemmer :: Language -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionStop :: Either Language [StopWord] -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenFilterDefinitionUppercase :: Maybe Language -> TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: TokenLetter :: TokenChar
+ Database.Bloodhound.Internal.Analysis: TokenPunctuation :: TokenChar
+ Database.Bloodhound.Internal.Analysis: TokenSymbol :: TokenChar
+ Database.Bloodhound.Internal.Analysis: TokenWhitespace :: TokenChar
+ Database.Bloodhound.Internal.Analysis: Tokenizer :: Text -> Tokenizer
+ Database.Bloodhound.Internal.Analysis: TokenizerDefinitionNgram :: Ngram -> TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: Turkish :: Language
+ Database.Bloodhound.Internal.Analysis: [analysisAnalyzer] :: Analysis -> Map Text AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: [analysisCharFilter] :: Analysis -> Map Text CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: [analysisTokenFilter] :: Analysis -> Map Text TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: [analysisTokenizer] :: Analysis -> Map Text TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: [analyzerDefinitionCharFilter] :: AnalyzerDefinition -> [CharFilter]
+ Database.Bloodhound.Internal.Analysis: [analyzerDefinitionFilter] :: AnalyzerDefinition -> [TokenFilter]
+ Database.Bloodhound.Internal.Analysis: [analyzerDefinitionTokenizer] :: AnalyzerDefinition -> Maybe Tokenizer
+ Database.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplaceFlags] :: CharFilterDefinition -> Maybe Text
+ Database.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplacePattern] :: CharFilterDefinition -> Text
+ Database.Bloodhound.Internal.Analysis: [charFilterDefinitionPatternReplaceReplacement] :: CharFilterDefinition -> Text
+ Database.Bloodhound.Internal.Analysis: [ngramMaxGram] :: Ngram -> Int
+ Database.Bloodhound.Internal.Analysis: [ngramMinGram] :: Ngram -> Int
+ Database.Bloodhound.Internal.Analysis: [ngramTokenChars] :: Ngram -> [TokenChar]
+ Database.Bloodhound.Internal.Analysis: [shingleFillerToken] :: Shingle -> Text
+ Database.Bloodhound.Internal.Analysis: [shingleMaxSize] :: Shingle -> Int
+ Database.Bloodhound.Internal.Analysis: [shingleMinSize] :: Shingle -> Int
+ Database.Bloodhound.Internal.Analysis: [shingleOutputUnigramsIfNoShingles] :: Shingle -> Bool
+ Database.Bloodhound.Internal.Analysis: [shingleOutputUnigrams] :: Shingle -> Bool
+ Database.Bloodhound.Internal.Analysis: [shingleTokenSeparator] :: Shingle -> Text
+ Database.Bloodhound.Internal.Analysis: data Analysis
+ Database.Bloodhound.Internal.Analysis: data AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: data CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: data Language
+ Database.Bloodhound.Internal.Analysis: data Ngram
+ Database.Bloodhound.Internal.Analysis: data Shingle
+ Database.Bloodhound.Internal.Analysis: data TokenChar
+ Database.Bloodhound.Internal.Analysis: data TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.Analysis
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.Language
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.TokenChar
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.Tokenizer
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Analysis.TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.Analysis
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.Language
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.TokenChar
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.Tokenizer
+ Database.Bloodhound.Internal.Analysis: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Analysis.TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.Analysis
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.Language
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.Ngram
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.Shingle
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.TokenChar
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.Tokenizer
+ Database.Bloodhound.Internal.Analysis: instance GHC.Classes.Eq Database.Bloodhound.Internal.Analysis.TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.Analysis
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.AnalyzerDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.CharFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.Language
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.Ngram
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.Shingle
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.TokenChar
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.TokenFilterDefinition
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.Tokenizer
+ Database.Bloodhound.Internal.Analysis: instance GHC.Show.Show Database.Bloodhound.Internal.Analysis.TokenizerDefinition
+ Database.Bloodhound.Internal.Analysis: languageFromText :: Text -> Maybe Language
+ Database.Bloodhound.Internal.Analysis: languageToText :: Language -> Text
+ Database.Bloodhound.Internal.Analysis: newtype Tokenizer
+ Database.Bloodhound.Internal.Analysis: newtype TokenizerDefinition
+ Database.Bloodhound.Internal.Client: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
+ Database.Bloodhound.Internal.Client: AllAliasRouting :: RoutingValue -> AliasRouting
+ Database.Bloodhound.Internal.Client: AllIndexes :: IndexSelection
+ Database.Bloodhound.Internal.Client: AllNodes :: NodeSelection
+ Database.Bloodhound.Internal.Client: AllSnapshotRepos :: SnapshotRepoSelection
+ Database.Bloodhound.Internal.Client: AllSnapshots :: SnapshotSelection
+ Database.Bloodhound.Internal.Client: AllocAll :: AllocationPolicy
+ Database.Bloodhound.Internal.Client: AllocNewPrimaries :: AllocationPolicy
+ Database.Bloodhound.Internal.Client: AllocNone :: AllocationPolicy
+ Database.Bloodhound.Internal.Client: AllocPrimaries :: AllocationPolicy
+ Database.Bloodhound.Internal.Client: AnalysisSetting :: Analysis -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: BH :: ReaderT BHEnv m a -> BH m a
+ Database.Bloodhound.Internal.Client: BHEnv :: Server -> Manager -> (Request -> IO Request) -> BHEnv
+ Database.Bloodhound.Internal.Client: BlocksMetaData :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: BlocksRead :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: BlocksReadOnly :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: BlocksWrite :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: BoundTransportAddress :: EsAddress -> [EsAddress] -> BoundTransportAddress
+ Database.Bloodhound.Internal.Client: BuildHash :: Text -> BuildHash
+ Database.Bloodhound.Internal.Client: BulkCreate :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkCreateEncoding :: IndexName -> DocId -> Encoding -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkDelete :: IndexName -> DocId -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkIndex :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkIndexAuto :: IndexName -> Value -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkIndexEncodingAuto :: IndexName -> Encoding -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkUpdate :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Internal.Client: BulkUpsert :: IndexName -> DocId -> UpsertPayload -> [UpsertActionMetadata] -> BulkOperation
+ Database.Bloodhound.Internal.Client: ByteType :: FieldType
+ Database.Bloodhound.Internal.Client: Bytes :: Int -> Bytes
+ Database.Bloodhound.Internal.Client: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
+ Database.Bloodhound.Internal.Client: CacheFilterExpire :: Maybe NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: CacheFilterMaxSize :: Maybe Bytes -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: ChildDocument :: FieldName -> RelationName -> DocId -> JoinRelation
+ Database.Bloodhound.Internal.Client: CloseIndex :: OpenCloseIndex
+ Database.Bloodhound.Internal.Client: ClusterName :: Text -> ClusterName
+ Database.Bloodhound.Internal.Client: CompoundFileFormat :: Bool -> CompoundFormat
+ Database.Bloodhound.Internal.Client: CompressionBest :: Compression
+ Database.Bloodhound.Internal.Client: CompressionDefault :: Compression
+ Database.Bloodhound.Internal.Client: CompressionSetting :: Compression -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: Day :: Interval
+ Database.Bloodhound.Internal.Client: Days :: TimeInterval
+ Database.Bloodhound.Internal.Client: DocVersion :: Int -> DocVersion
+ Database.Bloodhound.Internal.Client: EsAddress :: Text -> EsAddress
+ Database.Bloodhound.Internal.Client: EsError :: Int -> Text -> EsError
+ Database.Bloodhound.Internal.Client: EsPassword :: Text -> EsPassword
+ Database.Bloodhound.Internal.Client: EsProtocolException :: !Text -> !LByteString -> EsProtocolException
+ Database.Bloodhound.Internal.Client: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
+ Database.Bloodhound.Internal.Client: EsResultFound :: DocVersion -> a -> EsResultFound a
+ Database.Bloodhound.Internal.Client: EsUsername :: Text -> EsUsername
+ Database.Bloodhound.Internal.Client: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
+ Database.Bloodhound.Internal.Client: ExactSnap :: SnapshotName -> SnapshotPattern
+ Database.Bloodhound.Internal.Client: ExplicitShards :: Int -> InitialShardCount
+ Database.Bloodhound.Internal.Client: ExternalDocVersion :: DocVersion -> ExternalDocVersion
+ Database.Bloodhound.Internal.Client: ExternalGT :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Internal.Client: ExternalGTE :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Internal.Client: FSBuffered :: FSType
+ Database.Bloodhound.Internal.Client: FSSimple :: FSType
+ Database.Bloodhound.Internal.Client: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: FieldDefinition :: FieldType -> FieldDefinition
+ Database.Bloodhound.Internal.Client: FloatType :: FieldType
+ Database.Bloodhound.Internal.Client: ForceMergeIndexSettings :: Maybe Int -> Bool -> Bool -> ForceMergeIndexSettings
+ Database.Bloodhound.Internal.Client: ForceVersion :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Internal.Client: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
+ Database.Bloodhound.Internal.Client: FullMinus1Shards :: InitialShardCount
+ Database.Bloodhound.Internal.Client: FullNodeId :: Text -> FullNodeId
+ Database.Bloodhound.Internal.Client: FullShards :: InitialShardCount
+ Database.Bloodhound.Internal.Client: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: GeoPointType :: FieldType
+ Database.Bloodhound.Internal.Client: GeoShapeType :: FieldType
+ Database.Bloodhound.Internal.Client: GranularAliasRouting :: Maybe SearchAliasRouting -> Maybe IndexAliasRouting -> AliasRouting
+ Database.Bloodhound.Internal.Client: Hour :: Interval
+ Database.Bloodhound.Internal.Client: Hours :: TimeInterval
+ Database.Bloodhound.Internal.Client: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
+ Database.Bloodhound.Internal.Client: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
+ Database.Bloodhound.Internal.Client: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
+ Database.Bloodhound.Internal.Client: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
+ Database.Bloodhound.Internal.Client: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
+ Database.Bloodhound.Internal.Client: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: IndexConcurrency :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: IndexDocumentSettings :: VersionControl -> Maybe JoinRelation -> IndexDocumentSettings
+ Database.Bloodhound.Internal.Client: IndexList :: NonEmpty IndexName -> IndexSelection
+ Database.Bloodhound.Internal.Client: IndexPattern :: Text -> IndexPattern
+ Database.Bloodhound.Internal.Client: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
+ Database.Bloodhound.Internal.Client: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
+ Database.Bloodhound.Internal.Client: IndexTemplate :: [IndexPattern] -> Maybe IndexSettings -> Value -> IndexTemplate
+ Database.Bloodhound.Internal.Client: IntegerType :: FieldType
+ Database.Bloodhound.Internal.Client: InternalVersion :: DocVersion -> VersionControl
+ Database.Bloodhound.Internal.Client: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: JVMGCCollector :: Text -> JVMGCCollector
+ Database.Bloodhound.Internal.Client: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
+ Database.Bloodhound.Internal.Client: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: JVMMemoryPool :: Text -> JVMMemoryPool
+ Database.Bloodhound.Internal.Client: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
+ Database.Bloodhound.Internal.Client: JVMVersion :: Text -> JVMVersion
+ Database.Bloodhound.Internal.Client: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
+ Database.Bloodhound.Internal.Client: LocalNode :: NodeSelection
+ Database.Bloodhound.Internal.Client: LongType :: FieldType
+ Database.Bloodhound.Internal.Client: MacAddress :: Text -> MacAddress
+ Database.Bloodhound.Internal.Client: Mapping :: [MappingField] -> Mapping
+ Database.Bloodhound.Internal.Client: MappingField :: FieldName -> FieldDefinition -> MappingField
+ Database.Bloodhound.Internal.Client: MappingTotalFieldsLimit :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
+ Database.Bloodhound.Internal.Client: Minute :: Interval
+ Database.Bloodhound.Internal.Client: Minutes :: TimeInterval
+ Database.Bloodhound.Internal.Client: Month :: Interval
+ Database.Bloodhound.Internal.Client: NetworkInterfaceName :: Text -> NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: NoVersionControl :: VersionControl
+ Database.Bloodhound.Internal.Client: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
+ Database.Bloodhound.Internal.Client: NodeAttrName :: Text -> NodeAttrName
+ Database.Bloodhound.Internal.Client: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
+ Database.Bloodhound.Internal.Client: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
+ Database.Bloodhound.Internal.Client: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
+ Database.Bloodhound.Internal.Client: NodeByFullNodeId :: FullNodeId -> NodeSelector
+ Database.Bloodhound.Internal.Client: NodeByHost :: Server -> NodeSelector
+ Database.Bloodhound.Internal.Client: NodeByName :: NodeName -> NodeSelector
+ Database.Bloodhound.Internal.Client: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Maybe Text -> Text -> Text -> NodeDataPathStats
+ Database.Bloodhound.Internal.Client: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
+ Database.Bloodhound.Internal.Client: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: NodeHTTPInfo :: Bytes -> EsAddress -> [EsAddress] -> NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
+ Database.Bloodhound.Internal.Client: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
+ Database.Bloodhound.Internal.Client: NodeInfo :: Maybe EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> Maybe NodeNetworkInfo -> Map Text NodeThreadPoolInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
+ Database.Bloodhound.Internal.Client: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VMVersion -> Text -> JVMVersion -> PID -> NodeJVMInfo
+ Database.Bloodhound.Internal.Client: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
+ Database.Bloodhound.Internal.Client: NodeList :: NonEmpty NodeSelector -> NodeSelection
+ Database.Bloodhound.Internal.Client: NodeName :: Text -> NodeName
+ Database.Bloodhound.Internal.Client: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
+ Database.Bloodhound.Internal.Client: NodeOSInfo :: NominalDiffTime -> Text -> Text -> VersionNumber -> Int -> Int -> NodeOSInfo
+ Database.Bloodhound.Internal.Client: NodeOSStats :: UTCTime -> Int -> Maybe LoadAvgs -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Bytes -> Bytes -> NodeOSStats
+ Database.Bloodhound.Internal.Client: NodePluginInfo :: Maybe Bool -> Maybe Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
+ Database.Bloodhound.Internal.Client: NodeProcessInfo :: Bool -> Maybe Int -> PID -> NominalDiffTime -> NodeProcessInfo
+ Database.Bloodhound.Internal.Client: NodeProcessStats :: UTCTime -> Int -> Int -> Int -> NominalDiffTime -> Bytes -> NodeProcessStats
+ Database.Bloodhound.Internal.Client: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> Maybe NodeNetworkStats -> Map Text NodeThreadPoolStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
+ Database.Bloodhound.Internal.Client: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: NodeTransportInfo :: [BoundTransportAddress] -> EsAddress -> [EsAddress] -> NodeTransportInfo
+ Database.Bloodhound.Internal.Client: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
+ Database.Bloodhound.Internal.Client: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
+ Database.Bloodhound.Internal.Client: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
+ Database.Bloodhound.Internal.Client: NominalDiffTimeJSON :: NominalDiffTime -> NominalDiffTimeJSON
+ Database.Bloodhound.Internal.Client: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: OpenIndex :: OpenCloseIndex
+ Database.Bloodhound.Internal.Client: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: PID :: Int -> PID
+ Database.Bloodhound.Internal.Client: ParentDocument :: FieldName -> RelationName -> JoinRelation
+ Database.Bloodhound.Internal.Client: PluginName :: Text -> PluginName
+ Database.Bloodhound.Internal.Client: Quarter :: Interval
+ Database.Bloodhound.Internal.Client: QuorumMinus1Shards :: InitialShardCount
+ Database.Bloodhound.Internal.Client: QuorumShards :: InitialShardCount
+ Database.Bloodhound.Internal.Client: RRGroupRefNum :: Int -> RRGroupRefNum
+ Database.Bloodhound.Internal.Client: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
+ Database.Bloodhound.Internal.Client: RRSubWholeMatch :: RestoreRenameToken
+ Database.Bloodhound.Internal.Client: RRTLit :: Text -> RestoreRenameToken
+ Database.Bloodhound.Internal.Client: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RemoveAlias :: IndexAlias -> IndexAliasAction
+ Database.Bloodhound.Internal.Client: ReplicasBounded :: Int -> Int -> ReplicaBounds
+ Database.Bloodhound.Internal.Client: ReplicasLowerBounded :: Int -> ReplicaBounds
+ Database.Bloodhound.Internal.Client: ReplicasUnbounded :: ReplicaBounds
+ Database.Bloodhound.Internal.Client: RepoPattern :: Text -> SnapshotRepoPattern
+ Database.Bloodhound.Internal.Client: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: RestoreRenamePattern :: Text -> RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RoutingAllocationExclude :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RoutingAllocationInclude :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RoutingAllocationRequire :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: RoutingValue :: Text -> RoutingValue
+ Database.Bloodhound.Internal.Client: SearchAliasRouting :: NonEmpty RoutingValue -> SearchAliasRouting
+ Database.Bloodhound.Internal.Client: Second :: Interval
+ Database.Bloodhound.Internal.Client: Seconds :: TimeInterval
+ Database.Bloodhound.Internal.Client: Server :: Text -> Server
+ Database.Bloodhound.Internal.Client: ShardResult :: Int -> Int -> Int -> Int -> ShardResult
+ Database.Bloodhound.Internal.Client: ShortType :: FieldType
+ Database.Bloodhound.Internal.Client: SnapPattern :: Text -> SnapshotPattern
+ Database.Bloodhound.Internal.Client: SnapshotAborted :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
+ Database.Bloodhound.Internal.Client: SnapshotFailed :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
+ Database.Bloodhound.Internal.Client: SnapshotInit :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotList :: NonEmpty SnapshotPattern -> SnapshotSelection
+ Database.Bloodhound.Internal.Client: SnapshotMissing :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
+ Database.Bloodhound.Internal.Client: SnapshotRepoList :: NonEmpty SnapshotRepoPattern -> SnapshotRepoSelection
+ Database.Bloodhound.Internal.Client: SnapshotRepoName :: Text -> SnapshotRepoName
+ Database.Bloodhound.Internal.Client: SnapshotRepoType :: Text -> SnapshotRepoType
+ Database.Bloodhound.Internal.Client: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
+ Database.Bloodhound.Internal.Client: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
+ Database.Bloodhound.Internal.Client: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
+ Database.Bloodhound.Internal.Client: SnapshotStarted :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotSuccess :: SnapshotState
+ Database.Bloodhound.Internal.Client: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
+ Database.Bloodhound.Internal.Client: SnapshotWaiting :: SnapshotState
+ Database.Bloodhound.Internal.Client: Status :: Text -> Text -> Text -> Version -> Text -> Status
+ Database.Bloodhound.Internal.Client: TTLDisablePurge :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: TemplateName :: Text -> TemplateName
+ Database.Bloodhound.Internal.Client: ThreadPool :: Text -> NodeThreadPoolInfo -> ThreadPool
+ Database.Bloodhound.Internal.Client: ThreadPoolBounded :: Int -> ThreadPoolSize
+ Database.Bloodhound.Internal.Client: ThreadPoolCached :: ThreadPoolType
+ Database.Bloodhound.Internal.Client: ThreadPoolFixed :: ThreadPoolType
+ Database.Bloodhound.Internal.Client: ThreadPoolFixedAutoQueueSize :: ThreadPoolType
+ Database.Bloodhound.Internal.Client: ThreadPoolScaling :: ThreadPoolType
+ Database.Bloodhound.Internal.Client: ThreadPoolUnbounded :: ThreadPoolSize
+ Database.Bloodhound.Internal.Client: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: TranslogFSType :: FSType -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: UA_RetryOnConflict :: Int -> UpsertActionMetadata
+ Database.Bloodhound.Internal.Client: UA_Version :: Int -> UpsertActionMetadata
+ Database.Bloodhound.Internal.Client: UnassignedNodeLeftDelayedTimeout :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: UpsertDoc :: Value -> UpsertPayload
+ Database.Bloodhound.Internal.Client: UpsertScript :: Bool -> Script -> Value -> UpsertPayload
+ Database.Bloodhound.Internal.Client: VMVersion :: Text -> VMVersion
+ Database.Bloodhound.Internal.Client: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
+ Database.Bloodhound.Internal.Client: VersionNumber :: Version -> VersionNumber
+ Database.Bloodhound.Internal.Client: WarmerEnabled :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: Week :: Interval
+ Database.Bloodhound.Internal.Client: Weeks :: TimeInterval
+ Database.Bloodhound.Internal.Client: Year :: Interval
+ Database.Bloodhound.Internal.Client: [_id] :: EsResult a -> Text
+ Database.Bloodhound.Internal.Client: [_index] :: EsResult a -> Text
+ Database.Bloodhound.Internal.Client: [_source] :: EsResultFound a -> a
+ Database.Bloodhound.Internal.Client: [_type] :: EsResult a -> Text
+ Database.Bloodhound.Internal.Client: [_version] :: EsResultFound a -> DocVersion
+ Database.Bloodhound.Internal.Client: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
+ Database.Bloodhound.Internal.Client: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
+ Database.Bloodhound.Internal.Client: [bhManager] :: BHEnv -> Manager
+ Database.Bloodhound.Internal.Client: [bhRequestHook] :: BHEnv -> Request -> IO Request
+ Database.Bloodhound.Internal.Client: [bhServer] :: BHEnv -> Server
+ Database.Bloodhound.Internal.Client: [boundAddress] :: BoundTransportAddress -> [EsAddress]
+ Database.Bloodhound.Internal.Client: [buildHash] :: BuildHash -> Text
+ Database.Bloodhound.Internal.Client: [build_date] :: Version -> UTCTime
+ Database.Bloodhound.Internal.Client: [build_hash] :: Version -> BuildHash
+ Database.Bloodhound.Internal.Client: [build_snapshot] :: Version -> Bool
+ Database.Bloodhound.Internal.Client: [clusterName] :: ClusterName -> Text
+ Database.Bloodhound.Internal.Client: [cluster_name] :: Status -> Text
+ Database.Bloodhound.Internal.Client: [cluster_uuid] :: Status -> Text
+ Database.Bloodhound.Internal.Client: [cpuCacheSize] :: CPUInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [cpuCoresPerSocket] :: CPUInfo -> Int
+ Database.Bloodhound.Internal.Client: [cpuMHZ] :: CPUInfo -> Int
+ Database.Bloodhound.Internal.Client: [cpuModel] :: CPUInfo -> Text
+ Database.Bloodhound.Internal.Client: [cpuTotalCores] :: CPUInfo -> Int
+ Database.Bloodhound.Internal.Client: [cpuTotalSockets] :: CPUInfo -> Int
+ Database.Bloodhound.Internal.Client: [cpuVendor] :: CPUInfo -> Text
+ Database.Bloodhound.Internal.Client: [docVersionNumber] :: DocVersion -> Int
+ Database.Bloodhound.Internal.Client: [errorMessage] :: EsError -> Text
+ Database.Bloodhound.Internal.Client: [errorStatus] :: EsError -> Int
+ Database.Bloodhound.Internal.Client: [esAddress] :: EsAddress -> Text
+ Database.Bloodhound.Internal.Client: [esPassword] :: EsPassword -> Text
+ Database.Bloodhound.Internal.Client: [esProtoExBody] :: EsProtocolException -> !LByteString
+ Database.Bloodhound.Internal.Client: [esProtoExMessage] :: EsProtocolException -> !Text
+ Database.Bloodhound.Internal.Client: [esUsername] :: EsUsername -> Text
+ Database.Bloodhound.Internal.Client: [fieldDefinition] :: MappingField -> FieldDefinition
+ Database.Bloodhound.Internal.Client: [fieldType] :: FieldDefinition -> FieldType
+ Database.Bloodhound.Internal.Client: [flushAfterOptimize] :: ForceMergeIndexSettings -> Bool
+ Database.Bloodhound.Internal.Client: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
+ Database.Bloodhound.Internal.Client: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
+ Database.Bloodhound.Internal.Client: [fsrLocation] :: FsSnapshotRepo -> FilePath
+ Database.Bloodhound.Internal.Client: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
+ Database.Bloodhound.Internal.Client: [fullNodeId] :: FullNodeId -> Text
+ Database.Bloodhound.Internal.Client: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
+ Database.Bloodhound.Internal.Client: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
+ Database.Bloodhound.Internal.Client: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
+ Database.Bloodhound.Internal.Client: [idsJoinRelation] :: IndexDocumentSettings -> Maybe JoinRelation
+ Database.Bloodhound.Internal.Client: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
+ Database.Bloodhound.Internal.Client: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
+ Database.Bloodhound.Internal.Client: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
+ Database.Bloodhound.Internal.Client: [indexAlias] :: IndexAlias -> IndexAliasName
+ Database.Bloodhound.Internal.Client: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
+ Database.Bloodhound.Internal.Client: [indexReplicas] :: IndexSettings -> ReplicaCount
+ Database.Bloodhound.Internal.Client: [indexShards] :: IndexSettings -> ShardCount
+ Database.Bloodhound.Internal.Client: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmGCCollector] :: JVMGCCollector -> Text
+ Database.Bloodhound.Internal.Client: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
+ Database.Bloodhound.Internal.Client: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmMemoryPool] :: JVMMemoryPool -> Text
+ Database.Bloodhound.Internal.Client: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Internal.Client: [loadAvg15Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Internal.Client: [loadAvg1Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Internal.Client: [loadAvg5Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Internal.Client: [lucene_version] :: Version -> VersionNumber
+ Database.Bloodhound.Internal.Client: [macAddress] :: MacAddress -> Text
+ Database.Bloodhound.Internal.Client: [mappingFieldName] :: MappingField -> FieldName
+ Database.Bloodhound.Internal.Client: [mappingFields] :: Mapping -> [MappingField]
+ Database.Bloodhound.Internal.Client: [maxNumSegments] :: ForceMergeIndexSettings -> Maybe Int
+ Database.Bloodhound.Internal.Client: [name] :: Status -> Text
+ Database.Bloodhound.Internal.Client: [ndtJSON] :: NominalDiffTimeJSON -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [networkInterfaceName] :: NetworkInterfaceName -> Text
+ Database.Bloodhound.Internal.Client: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
+ Database.Bloodhound.Internal.Client: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
+ Database.Bloodhound.Internal.Client: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
+ Database.Bloodhound.Internal.Client: [nodeBreakersTripped] :: NodeBreakerStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathDevice] :: NodeDataPathStats -> Maybe Text
+ Database.Bloodhound.Internal.Client: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
+ Database.Bloodhound.Internal.Client: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
+ Database.Bloodhound.Internal.Client: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathMount] :: NodeDataPathStats -> Text
+ Database.Bloodhound.Internal.Client: [nodeDataPathPath] :: NodeDataPathStats -> Text
+ Database.Bloodhound.Internal.Client: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
+ Database.Bloodhound.Internal.Client: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
+ Database.Bloodhound.Internal.Client: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
+ Database.Bloodhound.Internal.Client: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
+ Database.Bloodhound.Internal.Client: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
+ Database.Bloodhound.Internal.Client: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeHTTPbound_address] :: NodeHTTPInfo -> [EsAddress]
+ Database.Bloodhound.Internal.Client: [nodeHTTPpublishAddress] :: NodeHTTPInfo -> EsAddress
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeInfoBuild] :: NodeInfo -> BuildHash
+ Database.Bloodhound.Internal.Client: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
+ Database.Bloodhound.Internal.Client: [nodeInfoFullId] :: NodeInfo -> FullNodeId
+ Database.Bloodhound.Internal.Client: [nodeInfoHTTPAddress] :: NodeInfo -> Maybe EsAddress
+ Database.Bloodhound.Internal.Client: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoHost] :: NodeInfo -> Server
+ Database.Bloodhound.Internal.Client: [nodeInfoIP] :: NodeInfo -> Server
+ Database.Bloodhound.Internal.Client: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoName] :: NodeInfo -> NodeName
+ Database.Bloodhound.Internal.Client: [nodeInfoNetwork] :: NodeInfo -> Maybe NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
+ Database.Bloodhound.Internal.Client: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoSettings] :: NodeInfo -> Object
+ Database.Bloodhound.Internal.Client: [nodeInfoThreadPool] :: NodeInfo -> Map Text NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
+ Database.Bloodhound.Internal.Client: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
+ Database.Bloodhound.Internal.Client: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
+ Database.Bloodhound.Internal.Client: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
+ Database.Bloodhound.Internal.Client: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
+ Database.Bloodhound.Internal.Client: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
+ Database.Bloodhound.Internal.Client: [nodeJVMPID] :: NodeJVMInfo -> PID
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Internal.Client: [nodeJVMVMName] :: NodeJVMInfo -> Text
+ Database.Bloodhound.Internal.Client: [nodeJVMVMVersion] :: NodeJVMInfo -> VMVersion
+ Database.Bloodhound.Internal.Client: [nodeJVMVersion] :: NodeJVMInfo -> JVMVersion
+ Database.Bloodhound.Internal.Client: [nodeName] :: NodeName -> Text
+ Database.Bloodhound.Internal.Client: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
+ Database.Bloodhound.Internal.Client: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
+ Database.Bloodhound.Internal.Client: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeOSAllocatedProcessors] :: NodeOSInfo -> Int
+ Database.Bloodhound.Internal.Client: [nodeOSArch] :: NodeOSInfo -> Text
+ Database.Bloodhound.Internal.Client: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
+ Database.Bloodhound.Internal.Client: [nodeOSCPUPercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
+ Database.Bloodhound.Internal.Client: [nodeOSMemFreePercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeOSMemFree] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSMemTotal] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeOSMemUsed] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSName] :: NodeOSInfo -> Text
+ Database.Bloodhound.Internal.Client: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeOSSwapFree] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSSwapTotal] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
+ Database.Bloodhound.Internal.Client: [nodeOSVersion] :: NodeOSInfo -> VersionNumber
+ Database.Bloodhound.Internal.Client: [nodePluginDescription] :: NodePluginInfo -> Text
+ Database.Bloodhound.Internal.Client: [nodePluginJVM] :: NodePluginInfo -> Maybe Bool
+ Database.Bloodhound.Internal.Client: [nodePluginName] :: NodePluginInfo -> PluginName
+ Database.Bloodhound.Internal.Client: [nodePluginSite] :: NodePluginInfo -> Maybe Bool
+ Database.Bloodhound.Internal.Client: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
+ Database.Bloodhound.Internal.Client: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeProcessId] :: NodeProcessInfo -> PID
+ Database.Bloodhound.Internal.Client: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
+ Database.Bloodhound.Internal.Client: [nodeProcessMaxFDs] :: NodeProcessStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
+ Database.Bloodhound.Internal.Client: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
+ Database.Bloodhound.Internal.Client: [nodeStatsFS] :: NodeStats -> NodeFSStats
+ Database.Bloodhound.Internal.Client: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Internal.Client: [nodeStatsFullId] :: NodeStats -> FullNodeId
+ Database.Bloodhound.Internal.Client: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
+ Database.Bloodhound.Internal.Client: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
+ Database.Bloodhound.Internal.Client: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
+ Database.Bloodhound.Internal.Client: [nodeStatsName] :: NodeStats -> NodeName
+ Database.Bloodhound.Internal.Client: [nodeStatsNetwork] :: NodeStats -> Maybe NodeNetworkStats
+ Database.Bloodhound.Internal.Client: [nodeStatsOS] :: NodeStats -> NodeOSStats
+ Database.Bloodhound.Internal.Client: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Internal.Client: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
+ Database.Bloodhound.Internal.Client: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Internal.Client: [nodeStatsThreadPool] :: NodeStats -> Map Text NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolInfo] :: ThreadPool -> NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolName] :: ThreadPool -> Text
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
+ Database.Bloodhound.Internal.Client: [nodeTransportBoundAddress] :: NodeTransportInfo -> [EsAddress]
+ Database.Bloodhound.Internal.Client: [nodeTransportCount] :: NodeTransportStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
+ Database.Bloodhound.Internal.Client: [nodeTransportPublishAddress] :: NodeTransportInfo -> EsAddress
+ Database.Bloodhound.Internal.Client: [nodeTransportRXCount] :: NodeTransportStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodeTransportServerOpen] :: NodeTransportStats -> Int
+ Database.Bloodhound.Internal.Client: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
+ Database.Bloodhound.Internal.Client: [nodesClusterName] :: NodesInfo -> ClusterName
+ Database.Bloodhound.Internal.Client: [nodesInfo] :: NodesInfo -> [NodeInfo]
+ Database.Bloodhound.Internal.Client: [nodesStatsClusterName] :: NodesStats -> ClusterName
+ Database.Bloodhound.Internal.Client: [nodesStats] :: NodesStats -> [NodeStats]
+ Database.Bloodhound.Internal.Client: [number] :: Version -> VersionNumber
+ Database.Bloodhound.Internal.Client: [onlyExpungeDeletes] :: ForceMergeIndexSettings -> Bool
+ Database.Bloodhound.Internal.Client: [pid] :: PID -> Int
+ Database.Bloodhound.Internal.Client: [pluginName] :: PluginName -> Text
+ Database.Bloodhound.Internal.Client: [publishAddress] :: BoundTransportAddress -> EsAddress
+ Database.Bloodhound.Internal.Client: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
+ Database.Bloodhound.Internal.Client: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
+ Database.Bloodhound.Internal.Client: [routingValue] :: RoutingValue -> Text
+ Database.Bloodhound.Internal.Client: [rrGroupRefNum] :: RRGroupRefNum -> Int
+ Database.Bloodhound.Internal.Client: [rrPattern] :: RestoreRenamePattern -> Text
+ Database.Bloodhound.Internal.Client: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
+ Database.Bloodhound.Internal.Client: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
+ Database.Bloodhound.Internal.Client: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
+ Database.Bloodhound.Internal.Client: [shardTotal] :: ShardResult -> Int
+ Database.Bloodhound.Internal.Client: [shardsFailed] :: ShardResult -> Int
+ Database.Bloodhound.Internal.Client: [shardsSkipped] :: ShardResult -> Int
+ Database.Bloodhound.Internal.Client: [shardsSuccessful] :: ShardResult -> Int
+ Database.Bloodhound.Internal.Client: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
+ Database.Bloodhound.Internal.Client: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
+ Database.Bloodhound.Internal.Client: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
+ Database.Bloodhound.Internal.Client: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
+ Database.Bloodhound.Internal.Client: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
+ Database.Bloodhound.Internal.Client: [snapInfoName] :: SnapshotInfo -> SnapshotName
+ Database.Bloodhound.Internal.Client: [snapInfoShards] :: SnapshotInfo -> ShardResult
+ Database.Bloodhound.Internal.Client: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
+ Database.Bloodhound.Internal.Client: [snapInfoState] :: SnapshotInfo -> SnapshotState
+ Database.Bloodhound.Internal.Client: [snapPartial] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
+ Database.Bloodhound.Internal.Client: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
+ Database.Bloodhound.Internal.Client: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
+ Database.Bloodhound.Internal.Client: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
+ Database.Bloodhound.Internal.Client: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
+ Database.Bloodhound.Internal.Client: [snapShardFailureReason] :: SnapshotShardFailure -> Text
+ Database.Bloodhound.Internal.Client: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
+ Database.Bloodhound.Internal.Client: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Internal.Client: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
+ Database.Bloodhound.Internal.Client: [snapshotRepoName] :: SnapshotRepoName -> Text
+ Database.Bloodhound.Internal.Client: [snapshotRepoType] :: SnapshotRepoType -> Text
+ Database.Bloodhound.Internal.Client: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
+ Database.Bloodhound.Internal.Client: [snvNodeName] :: SnapshotNodeVerification -> NodeName
+ Database.Bloodhound.Internal.Client: [srcIndex] :: IndexAlias -> IndexName
+ Database.Bloodhound.Internal.Client: [tagline] :: Status -> Text
+ Database.Bloodhound.Internal.Client: [templateMappings] :: IndexTemplate -> Value
+ Database.Bloodhound.Internal.Client: [templatePatterns] :: IndexTemplate -> [IndexPattern]
+ Database.Bloodhound.Internal.Client: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
+ Database.Bloodhound.Internal.Client: [unBH] :: BH m a -> ReaderT BHEnv m a
+ Database.Bloodhound.Internal.Client: [unJVMVersion] :: JVMVersion -> Text
+ Database.Bloodhound.Internal.Client: [unVMVersion] :: VMVersion -> Text
+ Database.Bloodhound.Internal.Client: [versionNumber] :: VersionNumber -> Version
+ Database.Bloodhound.Internal.Client: [version] :: Status -> Version
+ Database.Bloodhound.Internal.Client: attrFilterJSON :: NonEmpty NodeAttrFilter -> Value
+ Database.Bloodhound.Internal.Client: buildUpsertActionMetadata :: UpsertActionMetadata -> Pair
+ Database.Bloodhound.Internal.Client: class (Functor m, Applicative m, MonadIO m) => MonadBH m
+ Database.Bloodhound.Internal.Client: class SnapshotRepo r
+ Database.Bloodhound.Internal.Client: data AliasRouting
+ Database.Bloodhound.Internal.Client: data AllocationPolicy
+ Database.Bloodhound.Internal.Client: data BHEnv
+ Database.Bloodhound.Internal.Client: data BoundTransportAddress
+ Database.Bloodhound.Internal.Client: data BulkOperation
+ Database.Bloodhound.Internal.Client: data CPUInfo
+ Database.Bloodhound.Internal.Client: data CompoundFormat
+ Database.Bloodhound.Internal.Client: data Compression
+ Database.Bloodhound.Internal.Client: data EsError
+ Database.Bloodhound.Internal.Client: data EsProtocolException
+ Database.Bloodhound.Internal.Client: data EsResult a
+ Database.Bloodhound.Internal.Client: data EsResultFound a
+ Database.Bloodhound.Internal.Client: data FSType
+ Database.Bloodhound.Internal.Client: data FieldType
+ Database.Bloodhound.Internal.Client: data ForceMergeIndexSettings
+ Database.Bloodhound.Internal.Client: data FsSnapshotRepo
+ Database.Bloodhound.Internal.Client: data GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: data IndexAlias
+ Database.Bloodhound.Internal.Client: data IndexAliasAction
+ Database.Bloodhound.Internal.Client: data IndexAliasCreate
+ Database.Bloodhound.Internal.Client: data IndexAliasSummary
+ Database.Bloodhound.Internal.Client: data IndexDocumentSettings
+ Database.Bloodhound.Internal.Client: data IndexSelection
+ Database.Bloodhound.Internal.Client: data IndexSettings
+ Database.Bloodhound.Internal.Client: data IndexSettingsSummary
+ Database.Bloodhound.Internal.Client: data IndexTemplate
+ Database.Bloodhound.Internal.Client: data InitialShardCount
+ Database.Bloodhound.Internal.Client: data Interval
+ Database.Bloodhound.Internal.Client: data JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: data JVMGCStats
+ Database.Bloodhound.Internal.Client: data JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: data JVMPoolStats
+ Database.Bloodhound.Internal.Client: data JoinRelation
+ Database.Bloodhound.Internal.Client: data LoadAvgs
+ Database.Bloodhound.Internal.Client: data MappingField
+ Database.Bloodhound.Internal.Client: data NodeAttrFilter
+ Database.Bloodhound.Internal.Client: data NodeBreakerStats
+ Database.Bloodhound.Internal.Client: data NodeBreakersStats
+ Database.Bloodhound.Internal.Client: data NodeDataPathStats
+ Database.Bloodhound.Internal.Client: data NodeFSStats
+ Database.Bloodhound.Internal.Client: data NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: data NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: data NodeHTTPStats
+ Database.Bloodhound.Internal.Client: data NodeIndicesStats
+ Database.Bloodhound.Internal.Client: data NodeInfo
+ Database.Bloodhound.Internal.Client: data NodeJVMInfo
+ Database.Bloodhound.Internal.Client: data NodeJVMStats
+ Database.Bloodhound.Internal.Client: data NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: data NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: data NodeNetworkStats
+ Database.Bloodhound.Internal.Client: data NodeOSInfo
+ Database.Bloodhound.Internal.Client: data NodeOSStats
+ Database.Bloodhound.Internal.Client: data NodePluginInfo
+ Database.Bloodhound.Internal.Client: data NodeProcessInfo
+ Database.Bloodhound.Internal.Client: data NodeProcessStats
+ Database.Bloodhound.Internal.Client: data NodeSelection
+ Database.Bloodhound.Internal.Client: data NodeSelector
+ Database.Bloodhound.Internal.Client: data NodeStats
+ Database.Bloodhound.Internal.Client: data NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: data NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: data NodeTransportInfo
+ Database.Bloodhound.Internal.Client: data NodeTransportStats
+ Database.Bloodhound.Internal.Client: data NodesInfo
+ Database.Bloodhound.Internal.Client: data NodesStats
+ Database.Bloodhound.Internal.Client: data OpenCloseIndex
+ Database.Bloodhound.Internal.Client: data ReplicaBounds
+ Database.Bloodhound.Internal.Client: data RestoreRenameToken
+ Database.Bloodhound.Internal.Client: data ShardResult
+ Database.Bloodhound.Internal.Client: data SnapshotCreateSettings
+ Database.Bloodhound.Internal.Client: data SnapshotInfo
+ Database.Bloodhound.Internal.Client: data SnapshotNodeVerification
+ Database.Bloodhound.Internal.Client: data SnapshotPattern
+ Database.Bloodhound.Internal.Client: data SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: data SnapshotRepoPattern
+ Database.Bloodhound.Internal.Client: data SnapshotRepoSelection
+ Database.Bloodhound.Internal.Client: data SnapshotRestoreSettings
+ Database.Bloodhound.Internal.Client: data SnapshotSelection
+ Database.Bloodhound.Internal.Client: data SnapshotShardFailure
+ Database.Bloodhound.Internal.Client: data SnapshotState
+ Database.Bloodhound.Internal.Client: data Status
+ Database.Bloodhound.Internal.Client: data ThreadPool
+ Database.Bloodhound.Internal.Client: data ThreadPoolSize
+ Database.Bloodhound.Internal.Client: data ThreadPoolType
+ Database.Bloodhound.Internal.Client: data TimeInterval
+ Database.Bloodhound.Internal.Client: data UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: data UpsertActionMetadata
+ Database.Bloodhound.Internal.Client: data UpsertPayload
+ Database.Bloodhound.Internal.Client: data Version
+ Database.Bloodhound.Internal.Client: data VersionControl
+ Database.Bloodhound.Internal.Client: defaultForceMergeIndexSettings :: ForceMergeIndexSettings
+ Database.Bloodhound.Internal.Client: defaultIndexDocumentSettings :: IndexDocumentSettings
+ Database.Bloodhound.Internal.Client: defaultIndexSettings :: IndexSettings
+ Database.Bloodhound.Internal.Client: defaultSnapshotCreateSettings :: SnapshotCreateSettings
+ Database.Bloodhound.Internal.Client: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
+ Database.Bloodhound.Internal.Client: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
+ Database.Bloodhound.Internal.Client: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
+ Database.Bloodhound.Internal.Client: fsRepoType :: SnapshotRepoType
+ Database.Bloodhound.Internal.Client: getBHEnv :: MonadBH m => m BHEnv
+ Database.Bloodhound.Internal.Client: gigabytes :: Int -> Bytes
+ Database.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.Bloodhound.Internal.Client.MonadBH (Control.Monad.Trans.Reader.ReaderT Database.Bloodhound.Internal.Client.BHEnv m)
+ Database.Bloodhound.Internal.Client: instance (GHC.Base.Functor m, GHC.Base.Applicative m, Control.Monad.IO.Class.MonadIO m) => Database.Bloodhound.Internal.Client.MonadBH (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Trans.Class.MonadTrans Database.Bloodhound.Internal.Client.BH
+ Database.Bloodhound.Internal.Client: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.AliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.AllocationPolicy
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.BoundTransportAddress
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.BuildHash
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.Bytes
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.CPUInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.ClusterName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.CompoundFormat
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.Compression
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.EsAddress
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.EsError
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.FSType
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.FullNodeId
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexAliasCreate
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexAliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexAliasesSummary
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexPattern
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexSettings
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.IndexSettingsSummary
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.InitialShardCount
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMGCCollector
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMGCStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMMemoryPool
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMPoolStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.JVMVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.LoadAvgs
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.MacAddress
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeBreakerStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeBreakersStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeDataPathStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeFSStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeHTTPStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeIndicesStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeJVMInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeJVMStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeNetworkStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeOSInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeOSStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodePluginInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeProcessInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeProcessStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeTransportInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodeTransportStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodesInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NodesStats
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.NominalDiffTimeJSON
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.PID
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.PluginName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.ReplicaBounds
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.RoutingValue
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SearchAliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.Server
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.ShardResult
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotInfo
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotRepoName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotRepoType
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotShardFailure
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotState
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.SnapshotVerification
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.Status
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.TemplateName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.ThreadPoolSize
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.ThreadPoolType
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.VMVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.Version
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Client.VersionNumber
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Client.EsResult a)
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Client.EsResultFound a)
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.AliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.AllocationPolicy
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.BuildHash
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.Bytes
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.CompoundFormat
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.Compression
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.FSType
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexAlias
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexAliasAction
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexAliasCreate
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexAliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexPattern
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexSettings
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.IndexTemplate
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.InitialShardCount
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.Interval
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.NominalDiffTimeJSON
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.ReplicaBounds
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.RoutingValue
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.SearchAliasRouting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.SnapshotRepoName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.SnapshotRepoType
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.TemplateName
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.VMVersion
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.Version
+ Database.Bloodhound.Internal.Client: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Client.VersionNumber
+ Database.Bloodhound.Internal.Client: instance Database.Bloodhound.Internal.Client.SnapshotRepo Database.Bloodhound.Internal.Client.FsSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance Database.Bloodhound.Internal.Client.SnapshotRepo Database.Bloodhound.Internal.Client.GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance GHC.Base.Alternative m => GHC.Base.Alternative (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance GHC.Base.Applicative m => GHC.Base.Applicative (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance GHC.Base.Functor m => GHC.Base.Functor (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance GHC.Base.Monad m => GHC.Base.Monad (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Database.Bloodhound.Internal.Client.BH m)
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.AliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.AllocationPolicy
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.BoundTransportAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.BuildHash
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.BulkOperation
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Bytes
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.CPUInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ClusterName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.CompoundFormat
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Compression
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.EsAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.EsError
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.EsPassword
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.EsProtocolException
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.EsUsername
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.FSType
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.FieldDefinition
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.FieldType
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ForceMergeIndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.FsSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.FullNodeId
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAlias
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAliasAction
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAliasCreate
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAliasSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexAliasesSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexDocumentSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.IndexSettingsSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.InitialShardCount
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Interval
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMGCCollector
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMGCStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMMemoryPool
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JVMVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.JoinRelation
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.LoadAvgs
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.MacAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Mapping
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.MappingField
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeAttrFilter
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeAttrName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeBreakerStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeBreakersStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeDataPathStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeFSStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeHTTPStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeIndicesStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeJVMInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeJVMStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeNetworkStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeOSInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeOSStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodePluginInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeProcessInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeProcessStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeSelector
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeTransportInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodeTransportStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodesInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.NodesStats
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.OpenCloseIndex
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.PID
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.PluginName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.RRGroupRefNum
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ReplicaBounds
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.RestoreRenameToken
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.RoutingValue
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SearchAliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Server
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ShardResult
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotCreateSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotNodeVerification
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoType
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotRestoreSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotShardFailure
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotState
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.SnapshotVerification
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Status
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.TemplateName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ThreadPool
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ThreadPoolSize
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.ThreadPoolType
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.TimeInterval
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.UpsertActionMetadata
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.UpsertPayload
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.VMVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.Version
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.VersionControl
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq Database.Bloodhound.Internal.Client.VersionNumber
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Internal.Client.EsResult a)
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Internal.Client.EsResultFound a)
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.BuildHash
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.Bytes
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.ClusterName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.EsAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.FullNodeId
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.MacAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.NodeAttrFilter
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.NodeAttrName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.NodeName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.PluginName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.RRGroupRefNum
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.SnapshotRepoName
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.SnapshotRepoType
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.VersionControl
+ Database.Bloodhound.Internal.Client: instance GHC.Classes.Ord Database.Bloodhound.Internal.Client.VersionNumber
+ Database.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Enum.Bounded Database.Bloodhound.Internal.Client.RRGroupRefNum
+ Database.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Enum.Enum Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Exception.Type.Exception Database.Bloodhound.Internal.Client.EsProtocolException
+ Database.Bloodhound.Internal.Client: instance GHC.Exception.Type.Exception Database.Bloodhound.Internal.Client.SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: instance GHC.Read.Read Database.Bloodhound.Internal.Client.EsPassword
+ Database.Bloodhound.Internal.Client: instance GHC.Read.Read Database.Bloodhound.Internal.Client.EsUsername
+ Database.Bloodhound.Internal.Client: instance GHC.Read.Read Database.Bloodhound.Internal.Client.TimeInterval
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.AliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.AllocationPolicy
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.BoundTransportAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.BuildHash
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.BulkOperation
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Bytes
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.CPUInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ClusterName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.CompoundFormat
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Compression
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.DocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.EsAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.EsError
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.EsPassword
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.EsProtocolException
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.EsUsername
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ExternalDocVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.FSType
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.FieldDefinition
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.FieldType
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ForceMergeIndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.FsSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.FullNodeId
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAlias
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAliasAction
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAliasCreate
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAliasSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexAliasesSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexDocumentSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.IndexSettingsSummary
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.InitialShardCount
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Interval
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMBufferPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMGCCollector
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMGCStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMMemoryInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMMemoryPool
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JVMVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.JoinRelation
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.LoadAvgs
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.MacAddress
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Mapping
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.MappingField
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeAttrFilter
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeAttrName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeBreakerStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeBreakersStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeDataPathStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeFSStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeFSTotalStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeHTTPInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeHTTPStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeIndicesStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeJVMInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeJVMStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeNetworkInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeNetworkInterface
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeNetworkStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeOSInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeOSStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodePluginInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeProcessInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeProcessStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeSelector
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeThreadPoolInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeThreadPoolStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeTransportInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodeTransportStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodesInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.NodesStats
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.OpenCloseIndex
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.PID
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.PluginName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.RRGroupRefNum
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ReplicaBounds
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.RestoreRenameToken
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.RoutingValue
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SearchAliasRouting
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Server
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ShardResult
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotCreateSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotInfo
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotNodeVerification
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoConversionError
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoPattern
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoType
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRepoUpdateSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotRestoreSettings
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotSelection
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotShardFailure
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotState
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.SnapshotVerification
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Status
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.TemplateName
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ThreadPool
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ThreadPoolSize
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.ThreadPoolType
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.TimeInterval
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.UpdatableIndexSetting
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.UpsertActionMetadata
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.UpsertPayload
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.VMVersion
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.Version
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.VersionControl
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show Database.Bloodhound.Internal.Client.VersionNumber
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Client.EsResult a)
+ Database.Bloodhound.Internal.Client: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Client.EsResultFound a)
+ Database.Bloodhound.Internal.Client: kilobytes :: Int -> Bytes
+ Database.Bloodhound.Internal.Client: megabytes :: Int -> Bytes
+ Database.Bloodhound.Internal.Client: mkBHEnv :: Server -> Manager -> BHEnv
+ Database.Bloodhound.Internal.Client: mkDocVersion :: Int -> Maybe DocVersion
+ Database.Bloodhound.Internal.Client: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
+ Database.Bloodhound.Internal.Client: newtype BH m a
+ Database.Bloodhound.Internal.Client: newtype BuildHash
+ Database.Bloodhound.Internal.Client: newtype Bytes
+ Database.Bloodhound.Internal.Client: newtype ClusterName
+ Database.Bloodhound.Internal.Client: newtype DocVersion
+ Database.Bloodhound.Internal.Client: newtype EsAddress
+ Database.Bloodhound.Internal.Client: newtype EsPassword
+ Database.Bloodhound.Internal.Client: newtype EsUsername
+ Database.Bloodhound.Internal.Client: newtype ExternalDocVersion
+ Database.Bloodhound.Internal.Client: newtype FieldDefinition
+ Database.Bloodhound.Internal.Client: newtype FullNodeId
+ Database.Bloodhound.Internal.Client: newtype GenericSnapshotRepoSettings
+ Database.Bloodhound.Internal.Client: newtype IndexAliasRouting
+ Database.Bloodhound.Internal.Client: newtype IndexAliasesSummary
+ Database.Bloodhound.Internal.Client: newtype IndexPattern
+ Database.Bloodhound.Internal.Client: newtype JVMGCCollector
+ Database.Bloodhound.Internal.Client: newtype JVMMemoryPool
+ Database.Bloodhound.Internal.Client: newtype JVMVersion
+ Database.Bloodhound.Internal.Client: newtype MacAddress
+ Database.Bloodhound.Internal.Client: newtype Mapping
+ Database.Bloodhound.Internal.Client: newtype NetworkInterfaceName
+ Database.Bloodhound.Internal.Client: newtype NodeAttrName
+ Database.Bloodhound.Internal.Client: newtype NodeName
+ Database.Bloodhound.Internal.Client: newtype NominalDiffTimeJSON
+ Database.Bloodhound.Internal.Client: newtype PID
+ Database.Bloodhound.Internal.Client: newtype PluginName
+ Database.Bloodhound.Internal.Client: newtype RRGroupRefNum
+ Database.Bloodhound.Internal.Client: newtype RestoreIndexSettings
+ Database.Bloodhound.Internal.Client: newtype RestoreRenamePattern
+ Database.Bloodhound.Internal.Client: newtype RoutingValue
+ Database.Bloodhound.Internal.Client: newtype SearchAliasRouting
+ Database.Bloodhound.Internal.Client: newtype Server
+ Database.Bloodhound.Internal.Client: newtype SnapshotRepoName
+ Database.Bloodhound.Internal.Client: newtype SnapshotRepoType
+ Database.Bloodhound.Internal.Client: newtype SnapshotRepoUpdateSettings
+ Database.Bloodhound.Internal.Client: newtype SnapshotVerification
+ Database.Bloodhound.Internal.Client: newtype TemplateName
+ Database.Bloodhound.Internal.Client: newtype VMVersion
+ Database.Bloodhound.Internal.Client: newtype VersionNumber
+ Database.Bloodhound.Internal.Client: parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)
+ Database.Bloodhound.Internal.Client: parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo
+ Database.Bloodhound.Internal.Client: parseNodeStats :: FullNodeId -> Object -> Parser NodeStats
+ Database.Bloodhound.Internal.Client: parseRepo :: Parser a -> Either SnapshotRepoConversionError a
+ Database.Bloodhound.Internal.Client: parseSettings :: Object -> Parser [UpdatableIndexSetting]
+ Database.Bloodhound.Internal.Client: parseStringInterval :: (Monad m, MonadFail m) => String -> m NominalDiffTime
+ Database.Bloodhound.Internal.Client: runBH :: BHEnv -> BH m a -> m a
+ Database.Bloodhound.Internal.Client: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
+ Database.Bloodhound.Internal.Client: type Reply = Response LByteString
+ Database.Bloodhound.Internal.Highlight: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
+ Database.Bloodhound.Internal.Highlight: CustomTags :: ([Text], [Text]) -> HighlightTag
+ Database.Bloodhound.Internal.Highlight: DefaultEncoder :: HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: FastVector :: FastVectorHighlight -> HighlightSettings
+ Database.Bloodhound.Internal.Highlight: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
+ Database.Bloodhound.Internal.Highlight: FieldHighlight :: FieldName -> Maybe HighlightSettings -> FieldHighlight
+ Database.Bloodhound.Internal.Highlight: HTMLEncoder :: HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
+ Database.Bloodhound.Internal.Highlight: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
+ Database.Bloodhound.Internal.Highlight: Plain :: PlainHighlight -> HighlightSettings
+ Database.Bloodhound.Internal.Highlight: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
+ Database.Bloodhound.Internal.Highlight: Postings :: PostingsHighlight -> HighlightSettings
+ Database.Bloodhound.Internal.Highlight: PostingsHighlight :: Maybe CommonHighlight -> PostingsHighlight
+ Database.Bloodhound.Internal.Highlight: TagSchema :: Text -> HighlightTag
+ Database.Bloodhound.Internal.Highlight: [boundaryChars] :: FastVectorHighlight -> Maybe Text
+ Database.Bloodhound.Internal.Highlight: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: [forceSource] :: CommonHighlight -> Maybe Bool
+ Database.Bloodhound.Internal.Highlight: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [fragmentSize] :: NonPostings -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
+ Database.Bloodhound.Internal.Highlight: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
+ Database.Bloodhound.Internal.Highlight: [globalsettings] :: Highlights -> Maybe HighlightSettings
+ Database.Bloodhound.Internal.Highlight: [highlightFields] :: Highlights -> [FieldHighlight]
+ Database.Bloodhound.Internal.Highlight: [highlightQuery] :: CommonHighlight -> Maybe Query
+ Database.Bloodhound.Internal.Highlight: [matchedFields] :: FastVectorHighlight -> [Text]
+ Database.Bloodhound.Internal.Highlight: [noMatchSize] :: CommonHighlight -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [numberOfFragments] :: NonPostings -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [order] :: CommonHighlight -> Maybe Text
+ Database.Bloodhound.Internal.Highlight: [phraseLimit] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Internal.Highlight: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
+ Database.Bloodhound.Internal.Highlight: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
+ Database.Bloodhound.Internal.Highlight: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
+ Database.Bloodhound.Internal.Highlight: [tag] :: CommonHighlight -> Maybe HighlightTag
+ Database.Bloodhound.Internal.Highlight: commonHighlightPairs :: Maybe CommonHighlight -> [Pair]
+ Database.Bloodhound.Internal.Highlight: data CommonHighlight
+ Database.Bloodhound.Internal.Highlight: data FastVectorHighlight
+ Database.Bloodhound.Internal.Highlight: data FieldHighlight
+ Database.Bloodhound.Internal.Highlight: data HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: data HighlightSettings
+ Database.Bloodhound.Internal.Highlight: data HighlightTag
+ Database.Bloodhound.Internal.Highlight: data Highlights
+ Database.Bloodhound.Internal.Highlight: data NonPostings
+ Database.Bloodhound.Internal.Highlight: data PlainHighlight
+ Database.Bloodhound.Internal.Highlight: data PostingsHighlight
+ Database.Bloodhound.Internal.Highlight: fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]
+ Database.Bloodhound.Internal.Highlight: highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]
+ Database.Bloodhound.Internal.Highlight: highlightTagToPairs :: Maybe HighlightTag -> [Pair]
+ Database.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Highlight.FieldHighlight
+ Database.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Highlight.HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Highlight.HighlightSettings
+ Database.Bloodhound.Internal.Highlight: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Highlight.Highlights
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.CommonHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.FastVectorHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.FieldHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.HighlightSettings
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.HighlightTag
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.Highlights
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.NonPostings
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.PlainHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Classes.Eq Database.Bloodhound.Internal.Highlight.PostingsHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.CommonHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.FastVectorHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.FieldHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.HighlightEncoder
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.HighlightSettings
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.HighlightTag
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.Highlights
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.NonPostings
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.PlainHighlight
+ Database.Bloodhound.Internal.Highlight: instance GHC.Show.Show Database.Bloodhound.Internal.Highlight.PostingsHighlight
+ Database.Bloodhound.Internal.Highlight: nonPostingsToPairs :: Maybe NonPostings -> [Pair]
+ Database.Bloodhound.Internal.Highlight: plainHighPairs :: Maybe PlainHighlight -> [Pair]
+ Database.Bloodhound.Internal.Highlight: postHighPairs :: Maybe PostingsHighlight -> [Pair]
+ Database.Bloodhound.Internal.Highlight: type HitHighlight = Map Text [Text]
+ Database.Bloodhound.Internal.Newtypes: AggregateParentScore :: Bool -> AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: AnalyzeWildcard :: Bool -> AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: Analyzer :: Text -> Analyzer
+ Database.Bloodhound.Internal.Newtypes: Boost :: Double -> Boost
+ Database.Bloodhound.Internal.Newtypes: BoostTerms :: Double -> BoostTerms
+ Database.Bloodhound.Internal.Newtypes: CacheKey :: Text -> CacheKey
+ Database.Bloodhound.Internal.Newtypes: CacheName :: Text -> CacheName
+ Database.Bloodhound.Internal.Newtypes: CharFilter :: Text -> CharFilter
+ Database.Bloodhound.Internal.Newtypes: CutoffFrequency :: Double -> CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: DisableCoord :: Bool -> DisableCoord
+ Database.Bloodhound.Internal.Newtypes: DocId :: Text -> DocId
+ Database.Bloodhound.Internal.Newtypes: EnablePositionIncrements :: Bool -> EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: Existence :: Bool -> Existence
+ Database.Bloodhound.Internal.Newtypes: FieldName :: Text -> FieldName
+ Database.Bloodhound.Internal.Newtypes: From :: Int -> From
+ Database.Bloodhound.Internal.Newtypes: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: HitFields :: Map Text [Value] -> HitFields
+ Database.Bloodhound.Internal.Newtypes: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: IgnoreUnmapped :: Bool -> IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: IndexAliasName :: IndexName -> IndexAliasName
+ Database.Bloodhound.Internal.Newtypes: IndexName :: Text -> IndexName
+ Database.Bloodhound.Internal.Newtypes: Lenient :: Bool -> Lenient
+ Database.Bloodhound.Internal.Newtypes: Locale :: Text -> Locale
+ Database.Bloodhound.Internal.Newtypes: LowercaseExpanded :: Bool -> LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: MS :: NominalDiffTime -> MS
+ Database.Bloodhound.Internal.Newtypes: MaxChildren :: Int -> MaxChildren
+ Database.Bloodhound.Internal.Newtypes: MaxDocFrequency :: Int -> MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: MaxExpansions :: Int -> MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: MaxQueryTerms :: Int -> MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: MaxWordLength :: Int -> MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: MaybeNA :: Maybe a -> MaybeNA a
+ Database.Bloodhound.Internal.Newtypes: MinChildren :: Int -> MinChildren
+ Database.Bloodhound.Internal.Newtypes: MinDocFrequency :: Int -> MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: MinWordLength :: Int -> MinWordLength
+ Database.Bloodhound.Internal.Newtypes: MinimumMatch :: Int -> MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: MinimumTermFrequency :: Int -> MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: NullValue :: Bool -> NullValue
+ Database.Bloodhound.Internal.Newtypes: POSIXMS :: UTCTime -> POSIXMS
+ Database.Bloodhound.Internal.Newtypes: PercentMatch :: Double -> PercentMatch
+ Database.Bloodhound.Internal.Newtypes: PhraseSlop :: Int -> PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: PrefixLength :: Int -> PrefixLength
+ Database.Bloodhound.Internal.Newtypes: QueryPath :: Text -> QueryPath
+ Database.Bloodhound.Internal.Newtypes: QueryString :: Text -> QueryString
+ Database.Bloodhound.Internal.Newtypes: RelationName :: Text -> RelationName
+ Database.Bloodhound.Internal.Newtypes: ReplicaCount :: Int -> ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: ShardCount :: Int -> ShardCount
+ Database.Bloodhound.Internal.Newtypes: ShardId :: Int -> ShardId
+ Database.Bloodhound.Internal.Newtypes: Size :: Int -> Size
+ Database.Bloodhound.Internal.Newtypes: SnapshotName :: Text -> SnapshotName
+ Database.Bloodhound.Internal.Newtypes: StopWord :: Text -> StopWord
+ Database.Bloodhound.Internal.Newtypes: Tiebreaker :: Double -> Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: TokenFilter :: Text -> TokenFilter
+ Database.Bloodhound.Internal.Newtypes: [indexAliasName] :: IndexAliasName -> IndexName
+ Database.Bloodhound.Internal.Newtypes: [posixMS] :: POSIXMS -> UTCTime
+ Database.Bloodhound.Internal.Newtypes: [shardId] :: ShardId -> Int
+ Database.Bloodhound.Internal.Newtypes: [snapshotName] :: SnapshotName -> Text
+ Database.Bloodhound.Internal.Newtypes: [unMaybeNA] :: MaybeNA a -> Maybe a
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Analyzer
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Boost
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.BoostTerms
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.CacheKey
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.CacheName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.CharFilter
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.DisableCoord
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.DocId
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Existence
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.FieldName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.HitFields
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.IndexName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Lenient
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Locale
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MS
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MaxChildren
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MinChildren
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MinWordLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.NullValue
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.POSIXMS
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.PercentMatch
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.PrefixLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.QueryPath
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.QueryString
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.RelationName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.ShardCount
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.ShardId
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Size
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.SnapshotName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.StopWord
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Newtypes.TokenFilter
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Internal.Newtypes.MaybeNA a)
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Analyzer
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Boost
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.BoostTerms
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.CacheKey
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.CacheName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.CharFilter
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.DisableCoord
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.DocId
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Existence
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.FieldName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.From
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.IndexAliasName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.IndexName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Lenient
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Locale
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MaxChildren
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MinChildren
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MinWordLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.NullValue
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.PercentMatch
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.PrefixLength
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.QueryPath
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.QueryString
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.RelationName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.ShardCount
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Size
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.SnapshotName
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.StopWord
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Newtypes.TokenFilter
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Analyzer
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Boost
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.BoostTerms
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.CacheKey
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.CacheName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.CharFilter
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.DisableCoord
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.DocId
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Existence
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.FieldName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.From
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.HitFields
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.IndexAliasName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.IndexName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Lenient
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Locale
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MaxChildren
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MinChildren
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MinWordLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.NullValue
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.PercentMatch
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.PrefixLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.QueryPath
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.QueryString
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.RelationName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.ShardCount
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.ShardId
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Size
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.SnapshotName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.StopWord
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq Database.Bloodhound.Internal.Newtypes.TokenFilter
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Internal.Newtypes.MaybeNA a)
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Read.Read Database.Bloodhound.Internal.Newtypes.FieldName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Read.Read Database.Bloodhound.Internal.Newtypes.RelationName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Analyzer
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Boost
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.BoostTerms
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.CacheKey
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.CacheName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.CharFilter
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.DisableCoord
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.DocId
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Existence
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.FieldName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.From
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.HitFields
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.IndexAliasName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.IndexName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Lenient
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Locale
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MaxChildren
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MinChildren
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MinWordLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.NullValue
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.PercentMatch
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.PrefixLength
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.QueryPath
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.QueryString
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.RelationName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.ShardCount
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.ShardId
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Size
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.SnapshotName
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.StopWord
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show Database.Bloodhound.Internal.Newtypes.TokenFilter
+ Database.Bloodhound.Internal.Newtypes: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Internal.Newtypes.MaybeNA a)
+ Database.Bloodhound.Internal.Newtypes: newtype AggregateParentScore
+ Database.Bloodhound.Internal.Newtypes: newtype AllowLeadingWildcard
+ Database.Bloodhound.Internal.Newtypes: newtype AnalyzeWildcard
+ Database.Bloodhound.Internal.Newtypes: newtype Analyzer
+ Database.Bloodhound.Internal.Newtypes: newtype Boost
+ Database.Bloodhound.Internal.Newtypes: newtype BoostTerms
+ Database.Bloodhound.Internal.Newtypes: newtype CacheKey
+ Database.Bloodhound.Internal.Newtypes: newtype CacheName
+ Database.Bloodhound.Internal.Newtypes: newtype CharFilter
+ Database.Bloodhound.Internal.Newtypes: newtype CutoffFrequency
+ Database.Bloodhound.Internal.Newtypes: newtype DisableCoord
+ Database.Bloodhound.Internal.Newtypes: newtype DocId
+ Database.Bloodhound.Internal.Newtypes: newtype EnablePositionIncrements
+ Database.Bloodhound.Internal.Newtypes: newtype Existence
+ Database.Bloodhound.Internal.Newtypes: newtype FieldName
+ Database.Bloodhound.Internal.Newtypes: newtype From
+ Database.Bloodhound.Internal.Newtypes: newtype GeneratePhraseQueries
+ Database.Bloodhound.Internal.Newtypes: newtype HitFields
+ Database.Bloodhound.Internal.Newtypes: newtype IgnoreTermFrequency
+ Database.Bloodhound.Internal.Newtypes: newtype IgnoreUnmapped
+ Database.Bloodhound.Internal.Newtypes: newtype IndexAliasName
+ Database.Bloodhound.Internal.Newtypes: newtype IndexName
+ Database.Bloodhound.Internal.Newtypes: newtype Lenient
+ Database.Bloodhound.Internal.Newtypes: newtype Locale
+ Database.Bloodhound.Internal.Newtypes: newtype LowercaseExpanded
+ Database.Bloodhound.Internal.Newtypes: newtype MS
+ Database.Bloodhound.Internal.Newtypes: newtype MaxChildren
+ Database.Bloodhound.Internal.Newtypes: newtype MaxDocFrequency
+ Database.Bloodhound.Internal.Newtypes: newtype MaxExpansions
+ Database.Bloodhound.Internal.Newtypes: newtype MaxQueryTerms
+ Database.Bloodhound.Internal.Newtypes: newtype MaxWordLength
+ Database.Bloodhound.Internal.Newtypes: newtype MaybeNA a
+ Database.Bloodhound.Internal.Newtypes: newtype MinChildren
+ Database.Bloodhound.Internal.Newtypes: newtype MinDocFrequency
+ Database.Bloodhound.Internal.Newtypes: newtype MinWordLength
+ Database.Bloodhound.Internal.Newtypes: newtype MinimumMatch
+ Database.Bloodhound.Internal.Newtypes: newtype MinimumTermFrequency
+ Database.Bloodhound.Internal.Newtypes: newtype NullValue
+ Database.Bloodhound.Internal.Newtypes: newtype POSIXMS
+ Database.Bloodhound.Internal.Newtypes: newtype PercentMatch
+ Database.Bloodhound.Internal.Newtypes: newtype PhraseSlop
+ Database.Bloodhound.Internal.Newtypes: newtype PrefixLength
+ Database.Bloodhound.Internal.Newtypes: newtype QueryPath
+ Database.Bloodhound.Internal.Newtypes: newtype QueryString
+ Database.Bloodhound.Internal.Newtypes: newtype RelationName
+ Database.Bloodhound.Internal.Newtypes: newtype ReplicaCount
+ Database.Bloodhound.Internal.Newtypes: newtype ShardCount
+ Database.Bloodhound.Internal.Newtypes: newtype ShardId
+ Database.Bloodhound.Internal.Newtypes: newtype Size
+ Database.Bloodhound.Internal.Newtypes: newtype SnapshotName
+ Database.Bloodhound.Internal.Newtypes: newtype StopWord
+ Database.Bloodhound.Internal.Newtypes: newtype Tiebreaker
+ Database.Bloodhound.Internal.Newtypes: newtype TokenFilter
+ Database.Bloodhound.Internal.Newtypes: type Score = Maybe Double
+ Database.Bloodhound.Internal.Newtypes: unMS :: MS -> NominalDiffTime
+ Database.Bloodhound.Internal.Query: AllRegexpFlags :: RegexpFlags
+ Database.Bloodhound.Internal.Query: And :: BooleanOperator
+ Database.Bloodhound.Internal.Query: AnyString :: RegexpFlag
+ Database.Bloodhound.Internal.Query: Arc :: DistanceType
+ Database.Bloodhound.Internal.Query: Automaton :: RegexpFlag
+ Database.Bloodhound.Internal.Query: BoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
+ Database.Bloodhound.Internal.Query: BoostModeAvg :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostModeMax :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostModeMin :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostModeMultiply :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostModeReplace :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostModeSum :: BoostMode
+ Database.Bloodhound.Internal.Query: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
+ Database.Bloodhound.Internal.Query: Centimeters :: DistanceUnit
+ Database.Bloodhound.Internal.Query: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
+ Database.Bloodhound.Internal.Query: Complement :: RegexpFlag
+ Database.Bloodhound.Internal.Query: ComponentFunctionScoreFunction :: Maybe Filter -> FunctionScoreFunction -> Maybe Weight -> ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: ConstantScoreQuery :: Query -> Boost -> Query
+ Database.Bloodhound.Internal.Query: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
+ Database.Bloodhound.Internal.Query: Distance :: Double -> DistanceUnit -> Distance
+ Database.Bloodhound.Internal.Query: DistanceRange :: Distance -> Distance -> DistanceRange
+ Database.Bloodhound.Internal.Query: Empty :: RegexpFlag
+ Database.Bloodhound.Internal.Query: Factor :: Float -> Factor
+ Database.Bloodhound.Internal.Query: FactorMissingFieldValue :: Float -> FactorMissingFieldValue
+ Database.Bloodhound.Internal.Query: FactorModifierLn :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierLn1p :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierLn2p :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierLog :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierLog1p :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierLog2p :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierNone :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierReciprocal :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierSqrt :: FactorModifier
+ Database.Bloodhound.Internal.Query: FactorModifierSquare :: FactorModifier
+ Database.Bloodhound.Internal.Query: Feet :: DistanceUnit
+ Database.Bloodhound.Internal.Query: FieldValueFactor :: FieldName -> Maybe Factor -> Maybe FactorModifier -> Maybe FactorMissingFieldValue -> FieldValueFactor
+ Database.Bloodhound.Internal.Query: Filter :: Query -> Filter
+ Database.Bloodhound.Internal.Query: FofField :: FieldName -> FieldOrFields
+ Database.Bloodhound.Internal.Query: FofFields :: NonEmpty FieldName -> FieldOrFields
+ Database.Bloodhound.Internal.Query: FunctionScoreFunctionFieldValueFactor :: FieldValueFactor -> FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: FunctionScoreFunctionRandom :: Seed -> FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: FunctionScoreFunctionScript :: Script -> FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: FunctionScoreMultiple :: NonEmpty ComponentFunctionScoreFunction -> FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: FunctionScoreQuery :: Maybe Query -> Maybe Boost -> FunctionScoreFunctions -> Maybe Boost -> Maybe BoostMode -> Score -> Maybe ScoreMode -> FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: FunctionScoreSingle :: FunctionScoreFunction -> FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: Fuzziness :: Double -> Fuzziness
+ Database.Bloodhound.Internal.Query: FuzzinessAuto :: Fuzziness
+ Database.Bloodhound.Internal.Query: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
+ Database.Bloodhound.Internal.Query: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
+ Database.Bloodhound.Internal.Query: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: GeoFilterIndexed :: GeoFilterType
+ Database.Bloodhound.Internal.Query: GeoFilterMemory :: GeoFilterType
+ Database.Bloodhound.Internal.Query: GeoPoint :: FieldName -> LatLon -> GeoPoint
+ Database.Bloodhound.Internal.Query: GreaterThan :: Double -> GreaterThan
+ Database.Bloodhound.Internal.Query: GreaterThanD :: UTCTime -> GreaterThanD
+ Database.Bloodhound.Internal.Query: GreaterThanEq :: Double -> GreaterThanEq
+ Database.Bloodhound.Internal.Query: GreaterThanEqD :: UTCTime -> GreaterThanEqD
+ Database.Bloodhound.Internal.Query: HasChildQuery :: RelationName -> Query -> Maybe ScoreType -> Maybe IgnoreUnmapped -> Maybe MinChildren -> Maybe MaxChildren -> HasChildQuery
+ Database.Bloodhound.Internal.Query: HasParentQuery :: RelationName -> Query -> Maybe AggregateParentScore -> Maybe IgnoreUnmapped -> HasParentQuery
+ Database.Bloodhound.Internal.Query: IdsQuery :: [DocId] -> Query
+ Database.Bloodhound.Internal.Query: Inches :: DistanceUnit
+ Database.Bloodhound.Internal.Query: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
+ Database.Bloodhound.Internal.Query: Intersection :: RegexpFlag
+ Database.Bloodhound.Internal.Query: Interval :: RegexpFlag
+ Database.Bloodhound.Internal.Query: Kilometers :: DistanceUnit
+ Database.Bloodhound.Internal.Query: LatLon :: Double -> Double -> LatLon
+ Database.Bloodhound.Internal.Query: LessThan :: Double -> LessThan
+ Database.Bloodhound.Internal.Query: LessThanD :: UTCTime -> LessThanD
+ Database.Bloodhound.Internal.Query: LessThanEq :: Double -> LessThanEq
+ Database.Bloodhound.Internal.Query: LessThanEqD :: UTCTime -> LessThanEqD
+ Database.Bloodhound.Internal.Query: MatchAllQuery :: Maybe Boost -> Query
+ Database.Bloodhound.Internal.Query: MatchPhrase :: MatchQueryType
+ Database.Bloodhound.Internal.Query: MatchPhrasePrefix :: MatchQueryType
+ Database.Bloodhound.Internal.Query: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> Maybe Text -> Maybe Fuzziness -> MatchQuery
+ Database.Bloodhound.Internal.Query: Meters :: DistanceUnit
+ Database.Bloodhound.Internal.Query: Miles :: DistanceUnit
+ Database.Bloodhound.Internal.Query: Millimeters :: DistanceUnit
+ Database.Bloodhound.Internal.Query: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
+ Database.Bloodhound.Internal.Query: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: MultiMatchBestFields :: MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: MultiMatchCrossFields :: MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: MultiMatchMostFields :: MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: MultiMatchPhrase :: MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: MultiMatchPhrasePrefix :: MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
+ Database.Bloodhound.Internal.Query: MustMatch :: Term -> Cache -> BoolMatch
+ Database.Bloodhound.Internal.Query: MustNotMatch :: Term -> Cache -> BoolMatch
+ Database.Bloodhound.Internal.Query: NauticalMiles :: DistanceUnit
+ Database.Bloodhound.Internal.Query: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
+ Database.Bloodhound.Internal.Query: NoOptimizeBbox :: OptimizeBbox
+ Database.Bloodhound.Internal.Query: NoRegexpFlags :: RegexpFlags
+ Database.Bloodhound.Internal.Query: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
+ Database.Bloodhound.Internal.Query: Or :: BooleanOperator
+ Database.Bloodhound.Internal.Query: Plane :: DistanceType
+ Database.Bloodhound.Internal.Query: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
+ Database.Bloodhound.Internal.Query: QueryBoolQuery :: BoolQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryBoostingQuery :: BoostingQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryCommonTermsQuery :: CommonTermsQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryDisMaxQuery :: DisMaxQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryExistsQuery :: FieldName -> Query
+ Database.Bloodhound.Internal.Query: QueryFunctionScoreQuery :: FunctionScoreQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryFuzzyQuery :: FuzzyQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryHasChildQuery :: HasChildQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryHasParentQuery :: HasParentQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryIndicesQuery :: IndicesQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryMatchNoneQuery :: Query
+ Database.Bloodhound.Internal.Query: QueryMatchQuery :: MatchQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryMultiMatchQuery :: MultiMatchQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryNestedQuery :: NestedQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryPrefixQuery :: PrefixQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryQueryStringQuery :: QueryStringQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryRangeQuery :: RangeQuery -> Query
+ Database.Bloodhound.Internal.Query: QueryRegexpQuery :: RegexpQuery -> Query
+ Database.Bloodhound.Internal.Query: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
+ Database.Bloodhound.Internal.Query: 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
+ Database.Bloodhound.Internal.Query: QueryWildcardQuery :: WildcardQuery -> Query
+ Database.Bloodhound.Internal.Query: RangeDateGt :: GreaterThanD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateGte :: GreaterThanEqD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateLt :: LessThanD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDateLte :: LessThanEqD -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGt :: GreaterThan -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGte :: GreaterThanEq -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleLt :: LessThan -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeDoubleLte :: LessThanEq -> RangeValue
+ Database.Bloodhound.Internal.Query: RangeExecutionFielddata :: RangeExecution
+ Database.Bloodhound.Internal.Query: RangeExecutionIndex :: RangeExecution
+ Database.Bloodhound.Internal.Query: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
+ Database.Bloodhound.Internal.Query: Regexp :: Text -> Regexp
+ Database.Bloodhound.Internal.Query: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
+ Database.Bloodhound.Internal.Query: ScoreModeAvg :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreModeFirst :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreModeMax :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreModeMin :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreModeMultiply :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreModeSum :: ScoreMode
+ Database.Bloodhound.Internal.Query: ScoreTypeAvg :: ScoreType
+ Database.Bloodhound.Internal.Query: ScoreTypeMax :: ScoreType
+ Database.Bloodhound.Internal.Query: ScoreTypeNone :: ScoreType
+ Database.Bloodhound.Internal.Query: ScoreTypeSum :: ScoreType
+ Database.Bloodhound.Internal.Query: Script :: Maybe ScriptLanguage -> ScriptSource -> Maybe ScriptParams -> Script
+ Database.Bloodhound.Internal.Query: ScriptFields :: HashMap ScriptFieldName ScriptFieldValue -> ScriptFields
+ Database.Bloodhound.Internal.Query: ScriptId :: Text -> ScriptSource
+ Database.Bloodhound.Internal.Query: ScriptInline :: Text -> ScriptSource
+ Database.Bloodhound.Internal.Query: ScriptLanguage :: Text -> ScriptLanguage
+ Database.Bloodhound.Internal.Query: ScriptParams :: HashMap ScriptParamName ScriptParamValue -> ScriptParams
+ Database.Bloodhound.Internal.Query: Seed :: Float -> Seed
+ Database.Bloodhound.Internal.Query: ShouldMatch :: [Term] -> Cache -> BoolMatch
+ Database.Bloodhound.Internal.Query: SimpleQueryAll :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryAnd :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryEscape :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryFuzzy :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryNear :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryNone :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryOr :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryPhrase :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryPrecedence :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryPrefix :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQuerySlop :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: SimpleQueryWhitespace :: SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: SloppyArc :: DistanceType
+ Database.Bloodhound.Internal.Query: SomeRegexpFlags :: NonEmpty RegexpFlag -> RegexpFlags
+ Database.Bloodhound.Internal.Query: TemplateQueryKeyValuePairs :: HashMap TemplateQueryKey TemplateQueryValue -> TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: Term :: Text -> Text -> Term
+ Database.Bloodhound.Internal.Query: TermQuery :: Term -> Maybe Boost -> Query
+ Database.Bloodhound.Internal.Query: TermsQuery :: Text -> NonEmpty Text -> Query
+ Database.Bloodhound.Internal.Query: Weight :: Float -> Weight
+ Database.Bloodhound.Internal.Query: WildcardQuery :: FieldName -> Text -> Maybe Boost -> WildcardQuery
+ Database.Bloodhound.Internal.Query: Yards :: DistanceUnit
+ Database.Bloodhound.Internal.Query: ZeroTermsAll :: ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: ZeroTermsNone :: ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
+ Database.Bloodhound.Internal.Query: [boolQueryBoost] :: BoolQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
+ Database.Bloodhound.Internal.Query: [boolQueryFilter] :: BoolQuery -> [Filter]
+ Database.Bloodhound.Internal.Query: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
+ Database.Bloodhound.Internal.Query: [boolQueryMustMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Internal.Query: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Internal.Query: [boolQueryShouldMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Internal.Query: [bottomRight] :: GeoBoundingBox -> LatLon
+ Database.Bloodhound.Internal.Query: [coefficient] :: Distance -> Double
+ Database.Bloodhound.Internal.Query: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [commonBoost] :: CommonTermsQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
+ Database.Bloodhound.Internal.Query: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
+ Database.Bloodhound.Internal.Query: [commonField] :: CommonTermsQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
+ Database.Bloodhound.Internal.Query: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
+ Database.Bloodhound.Internal.Query: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: [commonQuery] :: CommonTermsQuery -> QueryString
+ Database.Bloodhound.Internal.Query: [componentScoreFunctionFilter] :: ComponentFunctionScoreFunction -> Maybe Filter
+ Database.Bloodhound.Internal.Query: [componentScoreFunctionWeight] :: ComponentFunctionScoreFunction -> Maybe Weight
+ Database.Bloodhound.Internal.Query: [componentScoreFunction] :: ComponentFunctionScoreFunction -> FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
+ Database.Bloodhound.Internal.Query: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [disMaxQueries] :: DisMaxQuery -> [Query]
+ Database.Bloodhound.Internal.Query: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
+ Database.Bloodhound.Internal.Query: [distanceFrom] :: DistanceRange -> Distance
+ Database.Bloodhound.Internal.Query: [distanceTo] :: DistanceRange -> Distance
+ Database.Bloodhound.Internal.Query: [fieldValueFactorField] :: FieldValueFactor -> FieldName
+ Database.Bloodhound.Internal.Query: [fieldValueFactorMissing] :: FieldValueFactor -> Maybe FactorMissingFieldValue
+ Database.Bloodhound.Internal.Query: [fieldValueFactorModifier] :: FieldValueFactor -> Maybe FactorModifier
+ Database.Bloodhound.Internal.Query: [fieldValueFactor] :: FieldValueFactor -> Maybe Factor
+ Database.Bloodhound.Internal.Query: [functionScoreBoostMode] :: FunctionScoreQuery -> Maybe BoostMode
+ Database.Bloodhound.Internal.Query: [functionScoreBoost] :: FunctionScoreQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [functionScoreFunctions] :: FunctionScoreQuery -> FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: [functionScoreMaxBoost] :: FunctionScoreQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [functionScoreMinScore] :: FunctionScoreQuery -> Score
+ Database.Bloodhound.Internal.Query: [functionScoreQuery] :: FunctionScoreQuery -> Maybe Query
+ Database.Bloodhound.Internal.Query: [functionScoreScoreMode] :: FunctionScoreQuery -> Maybe ScoreMode
+ Database.Bloodhound.Internal.Query: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
+ Database.Bloodhound.Internal.Query: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
+ Database.Bloodhound.Internal.Query: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
+ Database.Bloodhound.Internal.Query: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
+ Database.Bloodhound.Internal.Query: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
+ Database.Bloodhound.Internal.Query: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
+ Database.Bloodhound.Internal.Query: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
+ Database.Bloodhound.Internal.Query: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [fuzzyQueryField] :: FuzzyQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
+ Database.Bloodhound.Internal.Query: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
+ Database.Bloodhound.Internal.Query: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
+ Database.Bloodhound.Internal.Query: [fuzzyQueryValue] :: FuzzyQuery -> Text
+ Database.Bloodhound.Internal.Query: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
+ Database.Bloodhound.Internal.Query: [geoField] :: GeoPoint -> FieldName
+ Database.Bloodhound.Internal.Query: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
+ Database.Bloodhound.Internal.Query: [hasChildIgnoreUnmappped] :: HasChildQuery -> Maybe IgnoreUnmapped
+ Database.Bloodhound.Internal.Query: [hasChildMaxChildren] :: HasChildQuery -> Maybe MaxChildren
+ Database.Bloodhound.Internal.Query: [hasChildMinChildren] :: HasChildQuery -> Maybe MinChildren
+ Database.Bloodhound.Internal.Query: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
+ Database.Bloodhound.Internal.Query: [hasChildQueryType] :: HasChildQuery -> RelationName
+ Database.Bloodhound.Internal.Query: [hasChildQuery] :: HasChildQuery -> Query
+ Database.Bloodhound.Internal.Query: [hasParentIgnoreUnmapped] :: HasParentQuery -> Maybe IgnoreUnmapped
+ Database.Bloodhound.Internal.Query: [hasParentQueryScore] :: HasParentQuery -> Maybe AggregateParentScore
+ Database.Bloodhound.Internal.Query: [hasParentQueryType] :: HasParentQuery -> RelationName
+ Database.Bloodhound.Internal.Query: [hasParentQuery] :: HasParentQuery -> Query
+ Database.Bloodhound.Internal.Query: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
+ Database.Bloodhound.Internal.Query: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
+ Database.Bloodhound.Internal.Query: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
+ Database.Bloodhound.Internal.Query: [indicesQuery] :: IndicesQuery -> Query
+ Database.Bloodhound.Internal.Query: [latLon] :: GeoPoint -> LatLon
+ Database.Bloodhound.Internal.Query: [lat] :: LatLon -> Double
+ Database.Bloodhound.Internal.Query: [lon] :: LatLon -> Double
+ Database.Bloodhound.Internal.Query: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
+ Database.Bloodhound.Internal.Query: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [matchQueryBoost] :: MatchQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
+ Database.Bloodhound.Internal.Query: [matchQueryField] :: MatchQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [matchQueryFuzziness] :: MatchQuery -> Maybe Fuzziness
+ Database.Bloodhound.Internal.Query: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
+ Database.Bloodhound.Internal.Query: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
+ Database.Bloodhound.Internal.Query: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Internal.Query: [matchQueryMinimumShouldMatch] :: MatchQuery -> Maybe Text
+ Database.Bloodhound.Internal.Query: [matchQueryOperator] :: MatchQuery -> BooleanOperator
+ Database.Bloodhound.Internal.Query: [matchQueryQueryString] :: MatchQuery -> QueryString
+ Database.Bloodhound.Internal.Query: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
+ Database.Bloodhound.Internal.Query: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
+ Database.Bloodhound.Internal.Query: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
+ Database.Bloodhound.Internal.Query: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
+ Database.Bloodhound.Internal.Query: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
+ Database.Bloodhound.Internal.Query: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
+ Database.Bloodhound.Internal.Query: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
+ Database.Bloodhound.Internal.Query: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
+ Database.Bloodhound.Internal.Query: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
+ Database.Bloodhound.Internal.Query: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
+ Database.Bloodhound.Internal.Query: [moreLikeThisText] :: MoreLikeThisQuery -> Text
+ Database.Bloodhound.Internal.Query: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
+ Database.Bloodhound.Internal.Query: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
+ Database.Bloodhound.Internal.Query: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
+ Database.Bloodhound.Internal.Query: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Internal.Query: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
+ Database.Bloodhound.Internal.Query: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
+ Database.Bloodhound.Internal.Query: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
+ Database.Bloodhound.Internal.Query: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: [negativeBoost] :: BoostingQuery -> Boost
+ Database.Bloodhound.Internal.Query: [negativeQuery] :: BoostingQuery -> Query
+ Database.Bloodhound.Internal.Query: [nestedQueryPath] :: NestedQuery -> QueryPath
+ Database.Bloodhound.Internal.Query: [nestedQueryScoreType] :: NestedQuery -> ScoreType
+ Database.Bloodhound.Internal.Query: [nestedQuery] :: NestedQuery -> Query
+ Database.Bloodhound.Internal.Query: [positiveQuery] :: BoostingQuery -> Query
+ Database.Bloodhound.Internal.Query: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [prefixQueryField] :: PrefixQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [prefixQueryPrefixValue] :: PrefixQuery -> Text
+ Database.Bloodhound.Internal.Query: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
+ Database.Bloodhound.Internal.Query: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
+ Database.Bloodhound.Internal.Query: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
+ Database.Bloodhound.Internal.Query: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
+ Database.Bloodhound.Internal.Query: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
+ Database.Bloodhound.Internal.Query: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Internal.Query: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
+ Database.Bloodhound.Internal.Query: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
+ Database.Bloodhound.Internal.Query: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
+ Database.Bloodhound.Internal.Query: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
+ Database.Bloodhound.Internal.Query: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
+ Database.Bloodhound.Internal.Query: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
+ Database.Bloodhound.Internal.Query: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
+ Database.Bloodhound.Internal.Query: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
+ Database.Bloodhound.Internal.Query: [queryStringQuery] :: QueryStringQuery -> QueryString
+ Database.Bloodhound.Internal.Query: [rangeQueryBoost] :: RangeQuery -> Boost
+ Database.Bloodhound.Internal.Query: [rangeQueryField] :: RangeQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [rangeQueryRange] :: RangeQuery -> RangeValue
+ Database.Bloodhound.Internal.Query: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [regexpQueryField] :: RegexpQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
+ Database.Bloodhound.Internal.Query: [regexpQuery] :: RegexpQuery -> Regexp
+ Database.Bloodhound.Internal.Query: [scriptLanguage] :: Script -> Maybe ScriptLanguage
+ Database.Bloodhound.Internal.Query: [scriptParams] :: Script -> Maybe ScriptParams
+ Database.Bloodhound.Internal.Query: [scriptSource] :: Script -> ScriptSource
+ Database.Bloodhound.Internal.Query: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
+ Database.Bloodhound.Internal.Query: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
+ Database.Bloodhound.Internal.Query: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
+ Database.Bloodhound.Internal.Query: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
+ Database.Bloodhound.Internal.Query: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
+ Database.Bloodhound.Internal.Query: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
+ Database.Bloodhound.Internal.Query: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
+ Database.Bloodhound.Internal.Query: [termField] :: Term -> Text
+ Database.Bloodhound.Internal.Query: [termValue] :: Term -> Text
+ Database.Bloodhound.Internal.Query: [topLeft] :: GeoBoundingBox -> LatLon
+ Database.Bloodhound.Internal.Query: [unFilter] :: Filter -> Query
+ Database.Bloodhound.Internal.Query: [unit] :: Distance -> DistanceUnit
+ Database.Bloodhound.Internal.Query: [wildcardQueryBoost] :: WildcardQuery -> Maybe Boost
+ Database.Bloodhound.Internal.Query: [wildcardQueryField] :: WildcardQuery -> FieldName
+ Database.Bloodhound.Internal.Query: [wildcardQuery] :: WildcardQuery -> Text
+ Database.Bloodhound.Internal.Query: data BoolMatch
+ Database.Bloodhound.Internal.Query: data BoolQuery
+ Database.Bloodhound.Internal.Query: data BooleanOperator
+ Database.Bloodhound.Internal.Query: data BoostMode
+ Database.Bloodhound.Internal.Query: data BoostingQuery
+ Database.Bloodhound.Internal.Query: data CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: data CommonTermsQuery
+ Database.Bloodhound.Internal.Query: data ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: data DisMaxQuery
+ Database.Bloodhound.Internal.Query: data Distance
+ Database.Bloodhound.Internal.Query: data DistanceRange
+ Database.Bloodhound.Internal.Query: data DistanceType
+ Database.Bloodhound.Internal.Query: data DistanceUnit
+ Database.Bloodhound.Internal.Query: data FactorModifier
+ Database.Bloodhound.Internal.Query: data FieldOrFields
+ Database.Bloodhound.Internal.Query: data FieldValueFactor
+ Database.Bloodhound.Internal.Query: data FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: data FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: data FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: data Fuzziness
+ Database.Bloodhound.Internal.Query: data FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: data FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: data FuzzyQuery
+ Database.Bloodhound.Internal.Query: data GeoBoundingBox
+ Database.Bloodhound.Internal.Query: data GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: data GeoFilterType
+ Database.Bloodhound.Internal.Query: data GeoPoint
+ Database.Bloodhound.Internal.Query: data HasChildQuery
+ Database.Bloodhound.Internal.Query: data HasParentQuery
+ Database.Bloodhound.Internal.Query: data IndicesQuery
+ Database.Bloodhound.Internal.Query: data LatLon
+ Database.Bloodhound.Internal.Query: data MatchQuery
+ Database.Bloodhound.Internal.Query: data MatchQueryType
+ Database.Bloodhound.Internal.Query: data MinimumMatchHighLow
+ Database.Bloodhound.Internal.Query: data MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: data MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: data MultiMatchQuery
+ Database.Bloodhound.Internal.Query: data MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: data NestedQuery
+ Database.Bloodhound.Internal.Query: data OptimizeBbox
+ Database.Bloodhound.Internal.Query: data PrefixQuery
+ Database.Bloodhound.Internal.Query: data Query
+ Database.Bloodhound.Internal.Query: data QueryStringQuery
+ Database.Bloodhound.Internal.Query: data RangeExecution
+ Database.Bloodhound.Internal.Query: data RangeQuery
+ Database.Bloodhound.Internal.Query: data RangeValue
+ Database.Bloodhound.Internal.Query: data RegexpFlag
+ Database.Bloodhound.Internal.Query: data RegexpFlags
+ Database.Bloodhound.Internal.Query: data RegexpQuery
+ Database.Bloodhound.Internal.Query: data ScoreMode
+ Database.Bloodhound.Internal.Query: data ScoreType
+ Database.Bloodhound.Internal.Query: data Script
+ Database.Bloodhound.Internal.Query: data ScriptSource
+ Database.Bloodhound.Internal.Query: data SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: data SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: data Term
+ Database.Bloodhound.Internal.Query: data WildcardQuery
+ Database.Bloodhound.Internal.Query: data ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: defaultCache :: Cache
+ Database.Bloodhound.Internal.Query: fieldTagged :: (Monad m, MonadFail m) => (FieldName -> Object -> m a) -> Object -> m a
+ Database.Bloodhound.Internal.Query: functionScoreFunctionPair :: FunctionScoreFunction -> (Text, Value)
+ Database.Bloodhound.Internal.Query: functionScoreFunctionsPair :: FunctionScoreFunctions -> (Text, Value)
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.BoolMatch
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.BoolQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.BooleanOperator
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.BoostingQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.CommonTermsQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.DisMaxQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Distance
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.DistanceType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.DistanceUnit
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.FieldOrFields
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Filter
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Fuzziness
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.FuzzyQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.GeoBoundingBox
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.GeoFilterType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.HasChildQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.HasParentQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.IndicesQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.LatLon
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MatchQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MatchQueryType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MultiMatchQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.NestedQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.OptimizeBbox
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.PrefixQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Query
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.QueryStringQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RangeExecution
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RangeQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RangeValue
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Regexp
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RegexpFlag
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RegexpFlags
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.RegexpQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.ScoreType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.Term
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.WildcardQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Query.ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.BoolMatch
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.BoolQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.BooleanOperator
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.BoostingQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.CommonTermsQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.DisMaxQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.Distance
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.DistanceType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.DistanceUnit
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.FieldOrFields
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.Filter
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.Fuzziness
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.FuzzyQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.GeoBoundingBox
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.GeoFilterType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.GeoPoint
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.HasChildQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.HasParentQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.IndicesQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.LatLon
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MatchQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MatchQueryType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MultiMatchQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.NestedQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.OptimizeBbox
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.PrefixQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.Query
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.QueryStringQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.RangeExecution
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.RangeQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.RegexpFlags
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.RegexpQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.ScoreType
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.Term
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.WildcardQuery
+ Database.Bloodhound.Internal.Query: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Query.ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.BoolMatch
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.BoolQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.BooleanOperator
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.BoostingQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.CommonTermsQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.DisMaxQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Distance
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.DistanceRange
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.DistanceType
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.DistanceUnit
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FieldOrFields
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Filter
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Fuzziness
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.FuzzyQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GeoBoundingBox
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GeoFilterType
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GeoPoint
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GreaterThan
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GreaterThanD
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GreaterThanEq
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.GreaterThanEqD
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.HasChildQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.HasParentQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.IndicesQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.LatLon
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.LessThan
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.LessThanD
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.LessThanEq
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.LessThanEqD
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MatchQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MatchQueryType
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MinimumMatchHighLow
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MultiMatchQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.NestedQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.OptimizeBbox
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.PrefixQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Query
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.QueryStringQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RangeExecution
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RangeQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RangeValue
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Regexp
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RegexpFlag
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RegexpFlags
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.RegexpQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.ScoreType
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.Term
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.WildcardQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Classes.Eq Database.Bloodhound.Internal.Query.ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.BoolMatch
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.BoolQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.BooleanOperator
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.BoostingQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.CommonMinimumMatch
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.CommonTermsQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.ComponentFunctionScoreFunction
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.DisMaxQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Distance
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.DistanceRange
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.DistanceType
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.DistanceUnit
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FieldOrFields
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Filter
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FunctionScoreFunctions
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FunctionScoreQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Fuzziness
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FuzzyLikeFieldQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FuzzyLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.FuzzyQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GeoBoundingBox
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GeoBoundingBoxConstraint
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GeoFilterType
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GeoPoint
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GreaterThan
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GreaterThanD
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GreaterThanEq
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.GreaterThanEqD
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.HasChildQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.HasParentQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.IndicesQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.LatLon
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.LessThan
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.LessThanD
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.LessThanEq
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.LessThanEqD
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MatchQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MatchQueryType
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MinimumMatchHighLow
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MoreLikeThisFieldQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MoreLikeThisQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MultiMatchQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.MultiMatchQueryType
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.NestedQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.OptimizeBbox
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.PrefixQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Query
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.QueryStringQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RangeExecution
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RangeQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RangeValue
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Regexp
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RegexpFlag
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RegexpFlags
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.RegexpQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.ScoreType
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.SimpleQueryFlag
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.SimpleQueryStringQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.Term
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.WildcardQuery
+ Database.Bloodhound.Internal.Query: instance GHC.Show.Show Database.Bloodhound.Internal.Query.ZeroTermsQuery
+ Database.Bloodhound.Internal.Query: mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery
+ Database.Bloodhound.Internal.Query: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
+ Database.Bloodhound.Internal.Query: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
+ Database.Bloodhound.Internal.Query: mkQueryStringQuery :: QueryString -> QueryStringQuery
+ Database.Bloodhound.Internal.Query: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
+ Database.Bloodhound.Internal.Query: newtype Factor
+ Database.Bloodhound.Internal.Query: newtype FactorMissingFieldValue
+ Database.Bloodhound.Internal.Query: newtype Filter
+ Database.Bloodhound.Internal.Query: newtype GreaterThan
+ Database.Bloodhound.Internal.Query: newtype GreaterThanD
+ Database.Bloodhound.Internal.Query: newtype GreaterThanEq
+ Database.Bloodhound.Internal.Query: newtype GreaterThanEqD
+ Database.Bloodhound.Internal.Query: newtype LessThan
+ Database.Bloodhound.Internal.Query: newtype LessThanD
+ Database.Bloodhound.Internal.Query: newtype LessThanEq
+ Database.Bloodhound.Internal.Query: newtype LessThanEqD
+ Database.Bloodhound.Internal.Query: newtype Regexp
+ Database.Bloodhound.Internal.Query: newtype ScriptFields
+ Database.Bloodhound.Internal.Query: newtype ScriptLanguage
+ Database.Bloodhound.Internal.Query: newtype ScriptParams
+ Database.Bloodhound.Internal.Query: newtype Seed
+ Database.Bloodhound.Internal.Query: newtype TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Query: newtype Weight
+ Database.Bloodhound.Internal.Query: parseFunctionScoreFunction :: Object -> Parser FunctionScoreFunction
+ Database.Bloodhound.Internal.Query: parseRangeValue :: (FromJSON t4, FromJSON t3, FromJSON t2, FromJSON t1) => (t3 -> t5) -> (t1 -> t6) -> (t4 -> t7) -> (t2 -> t8) -> (t5 -> t6 -> b) -> (t7 -> t6 -> b) -> (t5 -> t8 -> b) -> (t7 -> t8 -> b) -> (t5 -> b) -> (t6 -> b) -> (t7 -> b) -> (t8 -> b) -> Parser b -> Object -> Parser b
+ Database.Bloodhound.Internal.Query: rangeValueToPair :: RangeValue -> [Pair]
+ Database.Bloodhound.Internal.Query: type Cache = Bool
+ Database.Bloodhound.Internal.Query: type ScriptFieldName = Text
+ Database.Bloodhound.Internal.Query: type ScriptFieldValue = Value
+ Database.Bloodhound.Internal.Query: type ScriptParamName = Text
+ Database.Bloodhound.Internal.Query: type ScriptParamValue = Value
+ Database.Bloodhound.Internal.Query: type TemplateQueryKey = Text
+ Database.Bloodhound.Internal.Query: type TemplateQueryValue = Text
+ Database.Bloodhound.Internal.Sort: Ascending :: SortOrder
+ Database.Bloodhound.Internal.Sort: CustomMissing :: Text -> Missing
+ Database.Bloodhound.Internal.Sort: DefaultSort :: FieldName -> SortOrder -> Maybe Text -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
+ Database.Bloodhound.Internal.Sort: DefaultSortSpec :: DefaultSort -> SortSpec
+ Database.Bloodhound.Internal.Sort: Descending :: SortOrder
+ Database.Bloodhound.Internal.Sort: FirstMissing :: Missing
+ Database.Bloodhound.Internal.Sort: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
+ Database.Bloodhound.Internal.Sort: LastMissing :: Missing
+ Database.Bloodhound.Internal.Sort: SortAvg :: SortMode
+ Database.Bloodhound.Internal.Sort: SortMax :: SortMode
+ Database.Bloodhound.Internal.Sort: SortMin :: SortMode
+ Database.Bloodhound.Internal.Sort: SortSum :: SortMode
+ Database.Bloodhound.Internal.Sort: [ignoreUnmapped] :: DefaultSort -> Maybe Text
+ Database.Bloodhound.Internal.Sort: [missingSort] :: DefaultSort -> Maybe Missing
+ Database.Bloodhound.Internal.Sort: [nestedFilter] :: DefaultSort -> Maybe Filter
+ Database.Bloodhound.Internal.Sort: [sortFieldName] :: DefaultSort -> FieldName
+ Database.Bloodhound.Internal.Sort: [sortMode] :: DefaultSort -> Maybe SortMode
+ Database.Bloodhound.Internal.Sort: [sortOrder] :: DefaultSort -> SortOrder
+ Database.Bloodhound.Internal.Sort: data DefaultSort
+ Database.Bloodhound.Internal.Sort: data Missing
+ Database.Bloodhound.Internal.Sort: data SortMode
+ Database.Bloodhound.Internal.Sort: data SortOrder
+ Database.Bloodhound.Internal.Sort: data SortSpec
+ Database.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Sort.Missing
+ Database.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Sort.SortMode
+ Database.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Sort.SortOrder
+ Database.Bloodhound.Internal.Sort: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Sort.SortSpec
+ Database.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.Bloodhound.Internal.Sort.DefaultSort
+ Database.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.Bloodhound.Internal.Sort.Missing
+ Database.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.Bloodhound.Internal.Sort.SortMode
+ Database.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.Bloodhound.Internal.Sort.SortOrder
+ Database.Bloodhound.Internal.Sort: instance GHC.Classes.Eq Database.Bloodhound.Internal.Sort.SortSpec
+ Database.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.Bloodhound.Internal.Sort.DefaultSort
+ Database.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.Bloodhound.Internal.Sort.Missing
+ Database.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.Bloodhound.Internal.Sort.SortMode
+ Database.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.Bloodhound.Internal.Sort.SortOrder
+ Database.Bloodhound.Internal.Sort: instance GHC.Show.Show Database.Bloodhound.Internal.Sort.SortSpec
+ Database.Bloodhound.Internal.Sort: mkSort :: FieldName -> SortOrder -> DefaultSort
+ Database.Bloodhound.Internal.Sort: type Sort = [SortSpec]
+ Database.Bloodhound.Internal.StringlyTyped: StringlyTypedBool :: Bool -> StringlyTypedBool
+ Database.Bloodhound.Internal.StringlyTyped: StringlyTypedDouble :: Double -> StringlyTypedDouble
+ Database.Bloodhound.Internal.StringlyTyped: StringlyTypedInt :: Int -> StringlyTypedInt
+ Database.Bloodhound.Internal.StringlyTyped: [unStringlyTypedBool] :: StringlyTypedBool -> Bool
+ Database.Bloodhound.Internal.StringlyTyped: [unStringlyTypedDouble] :: StringlyTypedDouble -> Double
+ Database.Bloodhound.Internal.StringlyTyped: [unStringlyTypedInt] :: StringlyTypedInt -> Int
+ Database.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.StringlyTyped.StringlyTypedBool
+ Database.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.StringlyTyped.StringlyTypedDouble
+ Database.Bloodhound.Internal.StringlyTyped: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.StringlyTyped.StringlyTypedInt
+ Database.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedBool
+ Database.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedDouble
+ Database.Bloodhound.Internal.StringlyTyped: newtype StringlyTypedInt
+ Database.Bloodhound.Internal.StringlyTyped: unStringlyTypeJSON :: Value -> Value
+ Database.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
+ Database.Bloodhound.Internal.Suggest: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: PhraseSuggesterCollate :: Query -> TemplateQueryKeyValuePairs -> Bool -> PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: Suggest :: Text -> Text -> SuggestType -> Suggest
+ Database.Bloodhound.Internal.Suggest: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
+ Database.Bloodhound.Internal.Suggest: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
+ Database.Bloodhound.Internal.Suggest: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
+ Database.Bloodhound.Internal.Suggest: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Internal.Suggest: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Internal.Suggest: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Internal.Suggest: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
+ Database.Bloodhound.Internal.Suggest: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
+ Database.Bloodhound.Internal.Suggest: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: [directGeneratorsField] :: DirectGenerators -> FieldName
+ Database.Bloodhound.Internal.Suggest: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [nsrName] :: NamedSuggestionResponse -> Text
+ Database.Bloodhound.Internal.Suggest: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterCollateParams] :: PhraseSuggesterCollate -> TemplateQueryKeyValuePairs
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> Query
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterField] :: PhraseSuggester -> FieldName
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
+ Database.Bloodhound.Internal.Suggest: [suggestName] :: Suggest -> Text
+ Database.Bloodhound.Internal.Suggest: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
+ Database.Bloodhound.Internal.Suggest: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
+ Database.Bloodhound.Internal.Suggest: [suggestOptionsScore] :: SuggestOptions -> Double
+ Database.Bloodhound.Internal.Suggest: [suggestOptionsText] :: SuggestOptions -> Text
+ Database.Bloodhound.Internal.Suggest: [suggestResponseLength] :: SuggestResponse -> Int
+ Database.Bloodhound.Internal.Suggest: [suggestResponseOffset] :: SuggestResponse -> Int
+ Database.Bloodhound.Internal.Suggest: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
+ Database.Bloodhound.Internal.Suggest: [suggestResponseText] :: SuggestResponse -> Text
+ Database.Bloodhound.Internal.Suggest: [suggestText] :: Suggest -> Text
+ Database.Bloodhound.Internal.Suggest: [suggestType] :: Suggest -> SuggestType
+ Database.Bloodhound.Internal.Suggest: data DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: data DirectGenerators
+ Database.Bloodhound.Internal.Suggest: data NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: data PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: data PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: data PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: data Suggest
+ Database.Bloodhound.Internal.Suggest: data SuggestOptions
+ Database.Bloodhound.Internal.Suggest: data SuggestResponse
+ Database.Bloodhound.Internal.Suggest: data SuggestType
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.DirectGenerators
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.Suggest
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.SuggestOptions
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.SuggestResponse
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Internal.Suggest.SuggestType
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.DirectGenerators
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.Suggest
+ Database.Bloodhound.Internal.Suggest: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Internal.Suggest.SuggestType
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.DirectGenerators
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.Suggest
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.SuggestOptions
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.SuggestResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Classes.Eq Database.Bloodhound.Internal.Suggest.SuggestType
+ Database.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.Bloodhound.Internal.Suggest.NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.Bloodhound.Internal.Suggest.SuggestOptions
+ Database.Bloodhound.Internal.Suggest: instance GHC.Read.Read Database.Bloodhound.Internal.Suggest.SuggestResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.DirectGenerators
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.NamedSuggestionResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.PhraseSuggester
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.PhraseSuggesterCollate
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.PhraseSuggesterHighlighter
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.Suggest
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.SuggestOptions
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.SuggestResponse
+ Database.Bloodhound.Internal.Suggest: instance GHC.Show.Show Database.Bloodhound.Internal.Suggest.SuggestType
+ Database.Bloodhound.Internal.Suggest: mkDirectGenerators :: FieldName -> DirectGenerators
+ Database.Bloodhound.Internal.Suggest: mkPhraseSuggester :: FieldName -> PhraseSuggester
+ Database.Bloodhound.Types: AddAlias :: IndexAlias -> IndexAliasCreate -> IndexAliasAction
+ Database.Bloodhound.Types: AddTime :: Int -> DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Types: AggregateParentScore :: Bool -> AggregateParentScore
+ Database.Bloodhound.Types: AllAliasRouting :: RoutingValue -> AliasRouting
+ Database.Bloodhound.Types: AllIndexes :: IndexSelection
+ Database.Bloodhound.Types: AllNodes :: NodeSelection
+ Database.Bloodhound.Types: AllRegexpFlags :: RegexpFlags
+ Database.Bloodhound.Types: AllSnapshotRepos :: SnapshotRepoSelection
+ Database.Bloodhound.Types: AllSnapshots :: SnapshotSelection
+ Database.Bloodhound.Types: AllocAll :: AllocationPolicy
+ Database.Bloodhound.Types: AllocNewPrimaries :: AllocationPolicy
+ Database.Bloodhound.Types: AllocNone :: AllocationPolicy
+ Database.Bloodhound.Types: AllocPrimaries :: AllocationPolicy
+ Database.Bloodhound.Types: AllowLeadingWildcard :: Bool -> AllowLeadingWildcard
+ Database.Bloodhound.Types: Analysis :: Map Text AnalyzerDefinition -> Map Text TokenizerDefinition -> Map Text TokenFilterDefinition -> Map Text CharFilterDefinition -> Analysis
+ Database.Bloodhound.Types: AnalysisSetting :: Analysis -> UpdatableIndexSetting
+ Database.Bloodhound.Types: AnalyzeWildcard :: Bool -> AnalyzeWildcard
+ Database.Bloodhound.Types: Analyzer :: Text -> Analyzer
+ Database.Bloodhound.Types: AnalyzerDefinition :: Maybe Tokenizer -> [TokenFilter] -> [CharFilter] -> AnalyzerDefinition
+ Database.Bloodhound.Types: And :: BooleanOperator
+ Database.Bloodhound.Types: AnyString :: RegexpFlag
+ Database.Bloodhound.Types: Arabic :: Language
+ Database.Bloodhound.Types: Arc :: DistanceType
+ Database.Bloodhound.Types: Armenian :: Language
+ Database.Bloodhound.Types: Ascending :: SortOrder
+ Database.Bloodhound.Types: AutoExpandReplicas :: ReplicaBounds -> UpdatableIndexSetting
+ Database.Bloodhound.Types: Automaton :: RegexpFlag
+ Database.Bloodhound.Types: BH :: ReaderT BHEnv m a -> BH m a
+ Database.Bloodhound.Types: Basque :: Language
+ Database.Bloodhound.Types: Bengali :: Language
+ Database.Bloodhound.Types: BlocksMetaData :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: BlocksRead :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: BlocksReadOnly :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: BlocksWrite :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: BoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> Maybe MinimumMatch -> Maybe Boost -> Maybe DisableCoord -> BoolQuery
+ Database.Bloodhound.Types: BoolValue :: Bool -> BucketValue
+ Database.Bloodhound.Types: Boost :: Double -> Boost
+ Database.Bloodhound.Types: BoostModeAvg :: BoostMode
+ Database.Bloodhound.Types: BoostModeMax :: BoostMode
+ Database.Bloodhound.Types: BoostModeMin :: BoostMode
+ Database.Bloodhound.Types: BoostModeMultiply :: BoostMode
+ Database.Bloodhound.Types: BoostModeReplace :: BoostMode
+ Database.Bloodhound.Types: BoostModeSum :: BoostMode
+ Database.Bloodhound.Types: BoostTerms :: Double -> BoostTerms
+ Database.Bloodhound.Types: BoostingQuery :: Query -> Query -> Boost -> BoostingQuery
+ Database.Bloodhound.Types: BoundTransportAddress :: EsAddress -> [EsAddress] -> BoundTransportAddress
+ Database.Bloodhound.Types: Brazilian :: Language
+ Database.Bloodhound.Types: BreadthFirst :: CollectionMode
+ Database.Bloodhound.Types: Bucket :: [a] -> Bucket a
+ Database.Bloodhound.Types: BuildHash :: Text -> BuildHash
+ Database.Bloodhound.Types: Bulgarian :: Language
+ Database.Bloodhound.Types: BulkCreate :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Types: BulkCreateEncoding :: IndexName -> DocId -> Encoding -> BulkOperation
+ Database.Bloodhound.Types: BulkDelete :: IndexName -> DocId -> BulkOperation
+ Database.Bloodhound.Types: BulkIndex :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Types: BulkIndexAuto :: IndexName -> Value -> BulkOperation
+ Database.Bloodhound.Types: BulkIndexEncodingAuto :: IndexName -> Encoding -> BulkOperation
+ Database.Bloodhound.Types: BulkUpdate :: IndexName -> DocId -> Value -> BulkOperation
+ Database.Bloodhound.Types: BulkUpsert :: IndexName -> DocId -> UpsertPayload -> [UpsertActionMetadata] -> BulkOperation
+ Database.Bloodhound.Types: Bytes :: Int -> Bytes
+ Database.Bloodhound.Types: CPUInfo :: Bytes -> Int -> Int -> Int -> Int -> Text -> Text -> CPUInfo
+ Database.Bloodhound.Types: CacheFilterExpire :: Maybe NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: CacheFilterMaxSize :: Maybe Bytes -> UpdatableIndexSetting
+ Database.Bloodhound.Types: CacheKey :: Text -> CacheKey
+ Database.Bloodhound.Types: CacheName :: Text -> CacheName
+ Database.Bloodhound.Types: CardinalityAgg :: CardinalityAggregation -> Aggregation
+ Database.Bloodhound.Types: CardinalityAggregation :: FieldName -> Maybe Int -> CardinalityAggregation
+ Database.Bloodhound.Types: Catalan :: Language
+ Database.Bloodhound.Types: Centimeters :: DistanceUnit
+ Database.Bloodhound.Types: CharFilter :: Text -> CharFilter
+ Database.Bloodhound.Types: CharFilterDefinitionMapping :: Map Text Text -> CharFilterDefinition
+ Database.Bloodhound.Types: CharFilterDefinitionPatternReplace :: Text -> Text -> Maybe Text -> CharFilterDefinition
+ Database.Bloodhound.Types: ChildDocument :: FieldName -> RelationName -> DocId -> JoinRelation
+ Database.Bloodhound.Types: Cjk :: Language
+ Database.Bloodhound.Types: CloseIndex :: OpenCloseIndex
+ Database.Bloodhound.Types: ClusterName :: Text -> ClusterName
+ Database.Bloodhound.Types: CommonHighlight :: Maybe Text -> Maybe Bool -> Maybe HighlightTag -> Maybe HighlightEncoder -> Maybe Int -> Maybe Query -> Maybe Bool -> CommonHighlight
+ Database.Bloodhound.Types: CommonMinimumMatch :: MinimumMatch -> CommonMinimumMatch
+ Database.Bloodhound.Types: CommonMinimumMatchHighLow :: MinimumMatchHighLow -> CommonMinimumMatch
+ Database.Bloodhound.Types: CommonTermsQuery :: FieldName -> QueryString -> CutoffFrequency -> BooleanOperator -> BooleanOperator -> Maybe CommonMinimumMatch -> Maybe Boost -> Maybe Analyzer -> Maybe DisableCoord -> CommonTermsQuery
+ Database.Bloodhound.Types: Complement :: RegexpFlag
+ Database.Bloodhound.Types: ComponentFunctionScoreFunction :: Maybe Filter -> FunctionScoreFunction -> Maybe Weight -> ComponentFunctionScoreFunction
+ Database.Bloodhound.Types: CompoundFileFormat :: Bool -> CompoundFormat
+ Database.Bloodhound.Types: CompressionBest :: Compression
+ Database.Bloodhound.Types: CompressionDefault :: Compression
+ Database.Bloodhound.Types: CompressionSetting :: Compression -> UpdatableIndexSetting
+ Database.Bloodhound.Types: ConstantScoreQuery :: Query -> Boost -> Query
+ Database.Bloodhound.Types: CountQuery :: Query -> CountQuery
+ Database.Bloodhound.Types: CountResponse :: Natural -> CountShards -> CountResponse
+ Database.Bloodhound.Types: CountShards :: Int -> Int -> Int -> Int -> CountShards
+ Database.Bloodhound.Types: CustomMissing :: Text -> Missing
+ Database.Bloodhound.Types: CustomTags :: ([Text], [Text]) -> HighlightTag
+ Database.Bloodhound.Types: CutoffFrequency :: Double -> CutoffFrequency
+ Database.Bloodhound.Types: Czech :: Language
+ Database.Bloodhound.Types: DMDate :: Day -> DateMathAnchor
+ Database.Bloodhound.Types: DMDay :: DateMathUnit
+ Database.Bloodhound.Types: DMHour :: DateMathUnit
+ Database.Bloodhound.Types: DMMinute :: DateMathUnit
+ Database.Bloodhound.Types: DMMonth :: DateMathUnit
+ Database.Bloodhound.Types: DMNow :: DateMathAnchor
+ Database.Bloodhound.Types: DMSecond :: DateMathUnit
+ Database.Bloodhound.Types: DMWeek :: DateMathUnit
+ Database.Bloodhound.Types: DMYear :: DateMathUnit
+ Database.Bloodhound.Types: Danish :: Language
+ Database.Bloodhound.Types: DateHistogramAgg :: DateHistogramAggregation -> Aggregation
+ Database.Bloodhound.Types: DateHistogramAggregation :: FieldName -> Interval -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Aggregations -> DateHistogramAggregation
+ Database.Bloodhound.Types: DateHistogramResult :: Int -> Maybe Text -> Int -> Maybe AggregationResults -> DateHistogramResult
+ Database.Bloodhound.Types: DateMathExpr :: DateMathAnchor -> [DateMathModifier] -> DateMathExpr
+ Database.Bloodhound.Types: DateRangeAgg :: DateRangeAggregation -> Aggregation
+ Database.Bloodhound.Types: DateRangeAggregation :: FieldName -> Maybe Text -> NonEmpty DateRangeAggRange -> DateRangeAggregation
+ Database.Bloodhound.Types: DateRangeFrom :: DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Types: DateRangeFromAndTo :: DateMathExpr -> DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Types: DateRangeResult :: Text -> Maybe UTCTime -> Maybe Text -> Maybe UTCTime -> Maybe Text -> Int -> Maybe AggregationResults -> DateRangeResult
+ Database.Bloodhound.Types: DateRangeTo :: DateMathExpr -> DateRangeAggRange
+ Database.Bloodhound.Types: Day :: Interval
+ Database.Bloodhound.Types: Days :: TimeInterval
+ Database.Bloodhound.Types: DefaultEncoder :: HighlightEncoder
+ Database.Bloodhound.Types: DefaultSort :: FieldName -> SortOrder -> Maybe Text -> Maybe SortMode -> Maybe Missing -> Maybe Filter -> DefaultSort
+ Database.Bloodhound.Types: DefaultSortSpec :: DefaultSort -> SortSpec
+ Database.Bloodhound.Types: DepthFirst :: CollectionMode
+ Database.Bloodhound.Types: Descending :: SortOrder
+ Database.Bloodhound.Types: DirectGeneratorSuggestModeAlways :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Types: DirectGeneratorSuggestModeMissing :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Types: DirectGeneratorSuggestModePopular :: DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Types: DirectGenerators :: FieldName -> Maybe Int -> DirectGeneratorSuggestModeTypes -> Maybe Double -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe Double -> Maybe Text -> Maybe Text -> DirectGenerators
+ Database.Bloodhound.Types: DisMaxQuery :: [Query] -> Tiebreaker -> Maybe Boost -> DisMaxQuery
+ Database.Bloodhound.Types: DisableCoord :: Bool -> DisableCoord
+ Database.Bloodhound.Types: Distance :: Double -> DistanceUnit -> Distance
+ Database.Bloodhound.Types: DistanceRange :: Distance -> Distance -> DistanceRange
+ Database.Bloodhound.Types: DocId :: Text -> DocId
+ Database.Bloodhound.Types: Dutch :: Language
+ Database.Bloodhound.Types: Empty :: RegexpFlag
+ Database.Bloodhound.Types: EnablePositionIncrements :: Bool -> EnablePositionIncrements
+ Database.Bloodhound.Types: English :: Language
+ Database.Bloodhound.Types: EsAddress :: Text -> EsAddress
+ Database.Bloodhound.Types: EsError :: Int -> Text -> EsError
+ Database.Bloodhound.Types: EsPassword :: Text -> EsPassword
+ Database.Bloodhound.Types: EsProtocolException :: !Text -> !LByteString -> EsProtocolException
+ Database.Bloodhound.Types: EsResult :: Text -> Text -> Text -> Maybe (EsResultFound a) -> EsResult a
+ Database.Bloodhound.Types: EsResultFound :: DocVersion -> a -> EsResultFound a
+ Database.Bloodhound.Types: EsUsername :: Text -> EsUsername
+ Database.Bloodhound.Types: ExactRepo :: SnapshotRepoName -> SnapshotRepoPattern
+ Database.Bloodhound.Types: ExactSnap :: SnapshotName -> SnapshotPattern
+ Database.Bloodhound.Types: Exclude :: [Pattern] -> Exclude
+ Database.Bloodhound.Types: Existence :: Bool -> Existence
+ Database.Bloodhound.Types: ExplicitShards :: Int -> InitialShardCount
+ Database.Bloodhound.Types: ExternalDocVersion :: DocVersion -> ExternalDocVersion
+ Database.Bloodhound.Types: ExternalGT :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Types: ExternalGTE :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Types: FSBuffered :: FSType
+ Database.Bloodhound.Types: FSSimple :: FSType
+ Database.Bloodhound.Types: Factor :: Float -> Factor
+ Database.Bloodhound.Types: FactorMissingFieldValue :: Float -> FactorMissingFieldValue
+ Database.Bloodhound.Types: FactorModifierLn :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierLn1p :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierLn2p :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierLog :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierLog1p :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierLog2p :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierNone :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierReciprocal :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierSqrt :: FactorModifier
+ Database.Bloodhound.Types: FactorModifierSquare :: FactorModifier
+ Database.Bloodhound.Types: FailOnMergeFailure :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: FastVector :: FastVectorHighlight -> HighlightSettings
+ Database.Bloodhound.Types: FastVectorHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> Maybe Text -> Maybe Int -> Maybe Int -> [Text] -> Maybe Int -> FastVectorHighlight
+ Database.Bloodhound.Types: Feet :: DistanceUnit
+ Database.Bloodhound.Types: FieldDefinition :: FieldType -> FieldDefinition
+ Database.Bloodhound.Types: FieldHighlight :: FieldName -> Maybe HighlightSettings -> FieldHighlight
+ Database.Bloodhound.Types: FieldName :: Text -> FieldName
+ Database.Bloodhound.Types: FieldValueCount :: FieldName -> ValueCountAggregation
+ Database.Bloodhound.Types: FieldValueFactor :: FieldName -> Maybe Factor -> Maybe FactorModifier -> Maybe FactorMissingFieldValue -> FieldValueFactor
+ Database.Bloodhound.Types: Filter :: Query -> Filter
+ Database.Bloodhound.Types: FilterAgg :: FilterAggregation -> Aggregation
+ Database.Bloodhound.Types: FilterAggregation :: Filter -> Maybe Aggregations -> FilterAggregation
+ Database.Bloodhound.Types: Finnish :: Language
+ Database.Bloodhound.Types: FirstMissing :: Missing
+ Database.Bloodhound.Types: FofField :: FieldName -> FieldOrFields
+ Database.Bloodhound.Types: FofFields :: NonEmpty FieldName -> FieldOrFields
+ Database.Bloodhound.Types: ForceMergeIndexSettings :: Maybe Int -> Bool -> Bool -> ForceMergeIndexSettings
+ Database.Bloodhound.Types: ForceVersion :: ExternalDocVersion -> VersionControl
+ Database.Bloodhound.Types: French :: Language
+ Database.Bloodhound.Types: From :: Int -> From
+ Database.Bloodhound.Types: FsSnapshotRepo :: SnapshotRepoName -> FilePath -> Bool -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> FsSnapshotRepo
+ Database.Bloodhound.Types: FullMinus1Shards :: InitialShardCount
+ Database.Bloodhound.Types: FullNodeId :: Text -> FullNodeId
+ Database.Bloodhound.Types: FullShards :: InitialShardCount
+ Database.Bloodhound.Types: FunctionScoreFunctionFieldValueFactor :: FieldValueFactor -> FunctionScoreFunction
+ Database.Bloodhound.Types: FunctionScoreFunctionRandom :: Seed -> FunctionScoreFunction
+ Database.Bloodhound.Types: FunctionScoreFunctionScript :: Script -> FunctionScoreFunction
+ Database.Bloodhound.Types: FunctionScoreMultiple :: NonEmpty ComponentFunctionScoreFunction -> FunctionScoreFunctions
+ Database.Bloodhound.Types: FunctionScoreQuery :: Maybe Query -> Maybe Boost -> FunctionScoreFunctions -> Maybe Boost -> Maybe BoostMode -> Score -> Maybe ScoreMode -> FunctionScoreQuery
+ Database.Bloodhound.Types: FunctionScoreSingle :: FunctionScoreFunction -> FunctionScoreFunctions
+ Database.Bloodhound.Types: Fuzziness :: Double -> Fuzziness
+ Database.Bloodhound.Types: FuzzinessAuto :: Fuzziness
+ Database.Bloodhound.Types: FuzzyLikeFieldQuery :: FieldName -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeFieldQuery
+ Database.Bloodhound.Types: FuzzyLikeThisQuery :: [FieldName] -> Text -> MaxQueryTerms -> IgnoreTermFrequency -> Fuzziness -> PrefixLength -> Boost -> Maybe Analyzer -> FuzzyLikeThisQuery
+ Database.Bloodhound.Types: FuzzyQuery :: FieldName -> Text -> PrefixLength -> MaxExpansions -> Fuzziness -> Maybe Boost -> FuzzyQuery
+ Database.Bloodhound.Types: GCDeletes :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: Galician :: Language
+ Database.Bloodhound.Types: GatewaySnapshotInterval :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: GeneratePhraseQueries :: Bool -> GeneratePhraseQueries
+ Database.Bloodhound.Types: GenericSnapshotRepo :: SnapshotRepoName -> SnapshotRepoType -> GenericSnapshotRepoSettings -> GenericSnapshotRepo
+ Database.Bloodhound.Types: GenericSnapshotRepoSettings :: Object -> GenericSnapshotRepoSettings
+ Database.Bloodhound.Types: GeoBoundingBox :: LatLon -> LatLon -> GeoBoundingBox
+ Database.Bloodhound.Types: GeoBoundingBoxConstraint :: FieldName -> GeoBoundingBox -> Cache -> GeoFilterType -> GeoBoundingBoxConstraint
+ Database.Bloodhound.Types: GeoDistanceSortSpec :: SortOrder -> GeoPoint -> DistanceUnit -> SortSpec
+ Database.Bloodhound.Types: GeoFilterIndexed :: GeoFilterType
+ Database.Bloodhound.Types: GeoFilterMemory :: GeoFilterType
+ Database.Bloodhound.Types: GeoPoint :: FieldName -> LatLon -> GeoPoint
+ Database.Bloodhound.Types: German :: Language
+ Database.Bloodhound.Types: German2 :: Language
+ Database.Bloodhound.Types: GetTemplateScript :: Maybe Text -> Maybe SearchTemplateSource -> Maybe (HashMap Text Text) -> Text -> Bool -> GetTemplateScript
+ Database.Bloodhound.Types: GlobalOrdinals :: ExecutionHint
+ Database.Bloodhound.Types: GranularAliasRouting :: Maybe SearchAliasRouting -> Maybe IndexAliasRouting -> AliasRouting
+ Database.Bloodhound.Types: GreaterThan :: Double -> GreaterThan
+ Database.Bloodhound.Types: GreaterThanD :: UTCTime -> GreaterThanD
+ Database.Bloodhound.Types: GreaterThanEq :: Double -> GreaterThanEq
+ Database.Bloodhound.Types: GreaterThanEqD :: UTCTime -> GreaterThanEqD
+ Database.Bloodhound.Types: Greek :: Language
+ Database.Bloodhound.Types: HTMLEncoder :: HighlightEncoder
+ Database.Bloodhound.Types: HTR_EQ :: HitsTotalRelation
+ Database.Bloodhound.Types: HTR_GTE :: HitsTotalRelation
+ Database.Bloodhound.Types: HasChildQuery :: RelationName -> Query -> Maybe ScoreType -> Maybe IgnoreUnmapped -> Maybe MinChildren -> Maybe MaxChildren -> HasChildQuery
+ Database.Bloodhound.Types: HasParentQuery :: RelationName -> Query -> Maybe AggregateParentScore -> Maybe IgnoreUnmapped -> HasParentQuery
+ Database.Bloodhound.Types: Highlights :: Maybe HighlightSettings -> [FieldHighlight] -> Highlights
+ Database.Bloodhound.Types: Hindi :: Language
+ Database.Bloodhound.Types: Hit :: IndexName -> DocId -> Score -> Maybe a -> Maybe SearchAfterKey -> Maybe HitFields -> Maybe HitHighlight -> Hit a
+ Database.Bloodhound.Types: HitFields :: Map Text [Value] -> HitFields
+ Database.Bloodhound.Types: HitsTotal :: Int -> HitsTotalRelation -> HitsTotal
+ Database.Bloodhound.Types: Hour :: Interval
+ Database.Bloodhound.Types: Hours :: TimeInterval
+ Database.Bloodhound.Types: Hungarian :: Language
+ Database.Bloodhound.Types: IdsQuery :: [DocId] -> Query
+ Database.Bloodhound.Types: IgnoreTermFrequency :: Bool -> IgnoreTermFrequency
+ Database.Bloodhound.Types: IgnoreUnmapped :: Bool -> IgnoreUnmapped
+ Database.Bloodhound.Types: Inches :: DistanceUnit
+ Database.Bloodhound.Types: Include :: [Pattern] -> Include
+ Database.Bloodhound.Types: IndexAlias :: IndexName -> IndexAliasName -> IndexAlias
+ Database.Bloodhound.Types: IndexAliasCreate :: Maybe AliasRouting -> Maybe Filter -> IndexAliasCreate
+ Database.Bloodhound.Types: IndexAliasName :: IndexName -> IndexAliasName
+ Database.Bloodhound.Types: IndexAliasRouting :: RoutingValue -> IndexAliasRouting
+ Database.Bloodhound.Types: IndexAliasSummary :: IndexAlias -> IndexAliasCreate -> IndexAliasSummary
+ Database.Bloodhound.Types: IndexAliasesSummary :: [IndexAliasSummary] -> IndexAliasesSummary
+ Database.Bloodhound.Types: IndexCompoundFormat :: CompoundFormat -> UpdatableIndexSetting
+ Database.Bloodhound.Types: IndexCompoundOnFlush :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: IndexConcurrency :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Types: IndexDocumentSettings :: VersionControl -> Maybe JoinRelation -> IndexDocumentSettings
+ Database.Bloodhound.Types: IndexList :: NonEmpty IndexName -> IndexSelection
+ Database.Bloodhound.Types: IndexName :: Text -> IndexName
+ Database.Bloodhound.Types: IndexPattern :: Text -> IndexPattern
+ Database.Bloodhound.Types: IndexSettings :: ShardCount -> ReplicaCount -> IndexSettings
+ Database.Bloodhound.Types: IndexSettingsSummary :: IndexName -> IndexSettings -> [UpdatableIndexSetting] -> IndexSettingsSummary
+ Database.Bloodhound.Types: IndexTemplate :: [IndexPattern] -> Maybe IndexSettings -> Value -> IndexTemplate
+ Database.Bloodhound.Types: IndicesQuery :: [IndexName] -> Query -> Maybe Query -> IndicesQuery
+ Database.Bloodhound.Types: Indonesian :: Language
+ Database.Bloodhound.Types: InternalVersion :: DocVersion -> VersionControl
+ Database.Bloodhound.Types: Intersection :: RegexpFlag
+ Database.Bloodhound.Types: Interval :: RegexpFlag
+ Database.Bloodhound.Types: Irish :: Language
+ Database.Bloodhound.Types: Italian :: Language
+ Database.Bloodhound.Types: JVMBufferPoolStats :: Bytes -> Bytes -> Int -> JVMBufferPoolStats
+ Database.Bloodhound.Types: JVMGCCollector :: Text -> JVMGCCollector
+ Database.Bloodhound.Types: JVMGCStats :: NominalDiffTime -> Int -> JVMGCStats
+ Database.Bloodhound.Types: JVMMemoryInfo :: Bytes -> Bytes -> Bytes -> Bytes -> Bytes -> JVMMemoryInfo
+ Database.Bloodhound.Types: JVMMemoryPool :: Text -> JVMMemoryPool
+ Database.Bloodhound.Types: JVMPoolStats :: Bytes -> Bytes -> Bytes -> Bytes -> JVMPoolStats
+ Database.Bloodhound.Types: Kilometers :: DistanceUnit
+ Database.Bloodhound.Types: Kp :: Language
+ Database.Bloodhound.Types: LastMissing :: Missing
+ Database.Bloodhound.Types: LatLon :: Double -> Double -> LatLon
+ Database.Bloodhound.Types: Latvian :: Language
+ Database.Bloodhound.Types: Lenient :: Bool -> Lenient
+ Database.Bloodhound.Types: LessThan :: Double -> LessThan
+ Database.Bloodhound.Types: LessThanD :: UTCTime -> LessThanD
+ Database.Bloodhound.Types: LessThanEq :: Double -> LessThanEq
+ Database.Bloodhound.Types: LessThanEqD :: UTCTime -> LessThanEqD
+ Database.Bloodhound.Types: Lithuanian :: Language
+ Database.Bloodhound.Types: LoadAvgs :: Double -> Double -> Double -> LoadAvgs
+ Database.Bloodhound.Types: LocalNode :: NodeSelection
+ Database.Bloodhound.Types: Locale :: Text -> Locale
+ Database.Bloodhound.Types: Lovins :: Language
+ Database.Bloodhound.Types: LowercaseExpanded :: Bool -> LowercaseExpanded
+ Database.Bloodhound.Types: MacAddress :: Text -> MacAddress
+ Database.Bloodhound.Types: Map :: ExecutionHint
+ Database.Bloodhound.Types: Mapping :: [MappingField] -> Mapping
+ Database.Bloodhound.Types: MappingField :: FieldName -> FieldDefinition -> MappingField
+ Database.Bloodhound.Types: MappingTotalFieldsLimit :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Types: MatchAllQuery :: Maybe Boost -> Query
+ Database.Bloodhound.Types: MatchPhrase :: MatchQueryType
+ Database.Bloodhound.Types: MatchPhrasePrefix :: MatchQueryType
+ Database.Bloodhound.Types: MatchQuery :: FieldName -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe CutoffFrequency -> Maybe MatchQueryType -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> Maybe Boost -> Maybe Text -> Maybe Fuzziness -> MatchQuery
+ Database.Bloodhound.Types: MaxChildren :: Int -> MaxChildren
+ Database.Bloodhound.Types: MaxDocFrequency :: Int -> MaxDocFrequency
+ Database.Bloodhound.Types: MaxExpansions :: Int -> MaxExpansions
+ Database.Bloodhound.Types: MaxQueryTerms :: Int -> MaxQueryTerms
+ Database.Bloodhound.Types: MaxWordLength :: Int -> MaxWordLength
+ Database.Bloodhound.Types: MaybeNA :: Maybe a -> MaybeNA a
+ Database.Bloodhound.Types: MergeSegmentVsTotalIndex :: Double -> CompoundFormat
+ Database.Bloodhound.Types: Meters :: DistanceUnit
+ Database.Bloodhound.Types: Miles :: DistanceUnit
+ Database.Bloodhound.Types: Millimeters :: DistanceUnit
+ Database.Bloodhound.Types: MinChildren :: Int -> MinChildren
+ Database.Bloodhound.Types: MinDocFrequency :: Int -> MinDocFrequency
+ Database.Bloodhound.Types: MinWordLength :: Int -> MinWordLength
+ Database.Bloodhound.Types: MinimumMatch :: Int -> MinimumMatch
+ Database.Bloodhound.Types: MinimumMatchHighLow :: MinimumMatch -> MinimumMatch -> MinimumMatchHighLow
+ Database.Bloodhound.Types: MinimumTermFrequency :: Int -> MinimumTermFrequency
+ Database.Bloodhound.Types: Minute :: Interval
+ Database.Bloodhound.Types: Minutes :: TimeInterval
+ Database.Bloodhound.Types: MissingAgg :: MissingAggregation -> Aggregation
+ Database.Bloodhound.Types: MissingAggregation :: Text -> MissingAggregation
+ Database.Bloodhound.Types: MissingResult :: Int -> MissingResult
+ Database.Bloodhound.Types: Month :: Interval
+ Database.Bloodhound.Types: MoreLikeThisFieldQuery :: Text -> FieldName -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisFieldQuery
+ Database.Bloodhound.Types: MoreLikeThisQuery :: Text -> Maybe (NonEmpty FieldName) -> Maybe PercentMatch -> Maybe MinimumTermFrequency -> Maybe MaxQueryTerms -> Maybe (NonEmpty StopWord) -> Maybe MinDocFrequency -> Maybe MaxDocFrequency -> Maybe MinWordLength -> Maybe MaxWordLength -> Maybe BoostTerms -> Maybe Boost -> Maybe Analyzer -> MoreLikeThisQuery
+ Database.Bloodhound.Types: MultiMatchBestFields :: MultiMatchQueryType
+ Database.Bloodhound.Types: MultiMatchCrossFields :: MultiMatchQueryType
+ Database.Bloodhound.Types: MultiMatchMostFields :: MultiMatchQueryType
+ Database.Bloodhound.Types: MultiMatchPhrase :: MultiMatchQueryType
+ Database.Bloodhound.Types: MultiMatchPhrasePrefix :: MultiMatchQueryType
+ Database.Bloodhound.Types: MultiMatchQuery :: [FieldName] -> QueryString -> BooleanOperator -> ZeroTermsQuery -> Maybe Tiebreaker -> Maybe MultiMatchQueryType -> Maybe CutoffFrequency -> Maybe Analyzer -> Maybe MaxExpansions -> Maybe Lenient -> MultiMatchQuery
+ Database.Bloodhound.Types: MustMatch :: Term -> Cache -> BoolMatch
+ Database.Bloodhound.Types: MustNotMatch :: Term -> Cache -> BoolMatch
+ Database.Bloodhound.Types: NamedSuggestionResponse :: Text -> [SuggestResponse] -> NamedSuggestionResponse
+ Database.Bloodhound.Types: NauticalMiles :: DistanceUnit
+ Database.Bloodhound.Types: NestedQuery :: QueryPath -> ScoreType -> Query -> NestedQuery
+ Database.Bloodhound.Types: NetworkInterfaceName :: Text -> NetworkInterfaceName
+ Database.Bloodhound.Types: Ngram :: Int -> Int -> [TokenChar] -> Ngram
+ Database.Bloodhound.Types: NoOptimizeBbox :: OptimizeBbox
+ Database.Bloodhound.Types: NoRegexpFlags :: RegexpFlags
+ Database.Bloodhound.Types: NoSource :: Source
+ Database.Bloodhound.Types: NoVersionControl :: VersionControl
+ Database.Bloodhound.Types: NodeAttrFilter :: NodeAttrName -> NonEmpty Text -> NodeAttrFilter
+ Database.Bloodhound.Types: NodeAttrName :: Text -> NodeAttrName
+ Database.Bloodhound.Types: NodeBreakerStats :: Int -> Double -> Bytes -> Bytes -> NodeBreakerStats
+ Database.Bloodhound.Types: NodeBreakersStats :: NodeBreakerStats -> NodeBreakerStats -> NodeBreakerStats -> NodeBreakersStats
+ Database.Bloodhound.Types: NodeByAttribute :: NodeAttrName -> Text -> NodeSelector
+ Database.Bloodhound.Types: NodeByFullNodeId :: FullNodeId -> NodeSelector
+ Database.Bloodhound.Types: NodeByHost :: Server -> NodeSelector
+ Database.Bloodhound.Types: NodeByName :: NodeName -> NodeSelector
+ Database.Bloodhound.Types: NodeDataPathStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> Maybe Text -> Maybe Text -> Text -> Text -> NodeDataPathStats
+ Database.Bloodhound.Types: NodeFSStats :: [NodeDataPathStats] -> NodeFSTotalStats -> UTCTime -> NodeFSStats
+ Database.Bloodhound.Types: NodeFSTotalStats :: Maybe Double -> Maybe Double -> Maybe Bytes -> Maybe Bytes -> Maybe Bytes -> Maybe Int -> Maybe Int -> Maybe Int -> Bytes -> Bytes -> Bytes -> NodeFSTotalStats
+ Database.Bloodhound.Types: NodeHTTPInfo :: Bytes -> EsAddress -> [EsAddress] -> NodeHTTPInfo
+ Database.Bloodhound.Types: NodeHTTPStats :: Int -> Int -> NodeHTTPStats
+ Database.Bloodhound.Types: NodeIndicesStats :: Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Bytes -> Int -> Maybe Bytes -> Bytes -> Maybe Bytes -> Bytes -> Bytes -> Int -> Bytes -> Maybe Int -> Maybe Bytes -> Maybe Int -> Maybe NominalDiffTime -> Maybe Int -> Int -> Bytes -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> NominalDiffTime -> Int -> Bytes -> Int -> Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Int -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Maybe Bool -> Maybe Int -> Int -> NominalDiffTime -> Int -> Int -> NominalDiffTime -> Int -> Maybe NominalDiffTime -> Bytes -> Int -> Int -> NodeIndicesStats
+ Database.Bloodhound.Types: NodeInfo :: Maybe EsAddress -> BuildHash -> VersionNumber -> Server -> Server -> EsAddress -> NodeName -> FullNodeId -> [NodePluginInfo] -> NodeHTTPInfo -> NodeTransportInfo -> Maybe NodeNetworkInfo -> Map Text NodeThreadPoolInfo -> NodeJVMInfo -> NodeProcessInfo -> NodeOSInfo -> Object -> NodeInfo
+ Database.Bloodhound.Types: NodeJVMInfo :: [JVMMemoryPool] -> [JVMGCCollector] -> JVMMemoryInfo -> UTCTime -> Text -> VMVersion -> Text -> JVMVersion -> PID -> NodeJVMInfo
+ Database.Bloodhound.Types: NodeJVMStats :: JVMBufferPoolStats -> JVMBufferPoolStats -> JVMGCStats -> JVMGCStats -> Int -> Int -> JVMPoolStats -> JVMPoolStats -> JVMPoolStats -> Bytes -> Bytes -> Bytes -> Bytes -> Int -> Bytes -> NominalDiffTime -> UTCTime -> NodeJVMStats
+ Database.Bloodhound.Types: NodeList :: NonEmpty NodeSelector -> NodeSelection
+ Database.Bloodhound.Types: NodeName :: Text -> NodeName
+ Database.Bloodhound.Types: NodeNetworkInfo :: NodeNetworkInterface -> NominalDiffTime -> NodeNetworkInfo
+ Database.Bloodhound.Types: NodeNetworkInterface :: MacAddress -> NetworkInterfaceName -> Server -> NodeNetworkInterface
+ Database.Bloodhound.Types: NodeNetworkStats :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> NodeNetworkStats
+ Database.Bloodhound.Types: NodeOSInfo :: NominalDiffTime -> Text -> Text -> VersionNumber -> Int -> Int -> NodeOSInfo
+ Database.Bloodhound.Types: NodeOSStats :: UTCTime -> Int -> Maybe LoadAvgs -> Bytes -> Bytes -> Int -> Bytes -> Int -> Bytes -> Bytes -> Bytes -> NodeOSStats
+ Database.Bloodhound.Types: NodePluginInfo :: Maybe Bool -> Maybe Bool -> Text -> MaybeNA VersionNumber -> PluginName -> NodePluginInfo
+ Database.Bloodhound.Types: NodeProcessInfo :: Bool -> Maybe Int -> PID -> NominalDiffTime -> NodeProcessInfo
+ Database.Bloodhound.Types: NodeProcessStats :: UTCTime -> Int -> Int -> Int -> NominalDiffTime -> Bytes -> NodeProcessStats
+ Database.Bloodhound.Types: NodeStats :: NodeName -> FullNodeId -> Maybe NodeBreakersStats -> NodeHTTPStats -> NodeTransportStats -> NodeFSStats -> Maybe NodeNetworkStats -> Map Text NodeThreadPoolStats -> NodeJVMStats -> NodeProcessStats -> NodeOSStats -> NodeIndicesStats -> NodeStats
+ Database.Bloodhound.Types: NodeThreadPoolInfo :: ThreadPoolSize -> Maybe NominalDiffTime -> Maybe Int -> Maybe Int -> ThreadPoolType -> NodeThreadPoolInfo
+ Database.Bloodhound.Types: NodeThreadPoolStats :: Int -> Int -> Int -> Int -> Int -> Int -> NodeThreadPoolStats
+ Database.Bloodhound.Types: NodeTransportInfo :: [BoundTransportAddress] -> EsAddress -> [EsAddress] -> NodeTransportInfo
+ Database.Bloodhound.Types: NodeTransportStats :: Bytes -> Int -> Bytes -> Int -> Int -> NodeTransportStats
+ Database.Bloodhound.Types: NodesInfo :: [NodeInfo] -> ClusterName -> NodesInfo
+ Database.Bloodhound.Types: NodesStats :: [NodeStats] -> ClusterName -> NodesStats
+ Database.Bloodhound.Types: NonPostings :: Maybe Int -> Maybe Int -> NonPostings
+ Database.Bloodhound.Types: Norwegian :: Language
+ Database.Bloodhound.Types: NullValue :: Bool -> NullValue
+ Database.Bloodhound.Types: NumberOfReplicas :: ReplicaCount -> UpdatableIndexSetting
+ Database.Bloodhound.Types: OpenIndex :: OpenCloseIndex
+ Database.Bloodhound.Types: OptimizeGeoFilterType :: GeoFilterType -> OptimizeBbox
+ Database.Bloodhound.Types: Or :: BooleanOperator
+ Database.Bloodhound.Types: OtherRepoConversionError :: Text -> SnapshotRepoConversionError
+ Database.Bloodhound.Types: PID :: Int -> PID
+ Database.Bloodhound.Types: ParentDocument :: FieldName -> RelationName -> JoinRelation
+ Database.Bloodhound.Types: Pattern :: Text -> Pattern
+ Database.Bloodhound.Types: PercentMatch :: Double -> PercentMatch
+ Database.Bloodhound.Types: Persian :: Language
+ Database.Bloodhound.Types: PhraseSlop :: Int -> PhraseSlop
+ Database.Bloodhound.Types: PhraseSuggester :: FieldName -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Size -> Maybe Analyzer -> Maybe Int -> Maybe PhraseSuggesterHighlighter -> Maybe PhraseSuggesterCollate -> [DirectGenerators] -> PhraseSuggester
+ Database.Bloodhound.Types: PhraseSuggesterCollate :: Query -> TemplateQueryKeyValuePairs -> Bool -> PhraseSuggesterCollate
+ Database.Bloodhound.Types: PhraseSuggesterHighlighter :: Text -> Text -> PhraseSuggesterHighlighter
+ Database.Bloodhound.Types: Plain :: PlainHighlight -> HighlightSettings
+ Database.Bloodhound.Types: PlainHighlight :: Maybe CommonHighlight -> Maybe NonPostings -> PlainHighlight
+ Database.Bloodhound.Types: Plane :: DistanceType
+ Database.Bloodhound.Types: PluginName :: Text -> PluginName
+ Database.Bloodhound.Types: PopPattern :: Pattern -> PatternOrPatterns
+ Database.Bloodhound.Types: PopPatterns :: [Pattern] -> PatternOrPatterns
+ Database.Bloodhound.Types: Porter :: Language
+ Database.Bloodhound.Types: Portuguese :: Language
+ Database.Bloodhound.Types: Postings :: PostingsHighlight -> HighlightSettings
+ Database.Bloodhound.Types: PostingsHighlight :: Maybe CommonHighlight -> PostingsHighlight
+ Database.Bloodhound.Types: PrefixLength :: Int -> PrefixLength
+ Database.Bloodhound.Types: PrefixQuery :: FieldName -> Text -> Maybe Boost -> PrefixQuery
+ Database.Bloodhound.Types: Quarter :: Interval
+ Database.Bloodhound.Types: QueryBoolQuery :: BoolQuery -> Query
+ Database.Bloodhound.Types: QueryBoostingQuery :: BoostingQuery -> Query
+ Database.Bloodhound.Types: QueryCommonTermsQuery :: CommonTermsQuery -> Query
+ Database.Bloodhound.Types: QueryDisMaxQuery :: DisMaxQuery -> Query
+ Database.Bloodhound.Types: QueryExistsQuery :: FieldName -> Query
+ Database.Bloodhound.Types: QueryFunctionScoreQuery :: FunctionScoreQuery -> Query
+ Database.Bloodhound.Types: QueryFuzzyLikeFieldQuery :: FuzzyLikeFieldQuery -> Query
+ Database.Bloodhound.Types: QueryFuzzyLikeThisQuery :: FuzzyLikeThisQuery -> Query
+ Database.Bloodhound.Types: QueryFuzzyQuery :: FuzzyQuery -> Query
+ Database.Bloodhound.Types: QueryHasChildQuery :: HasChildQuery -> Query
+ Database.Bloodhound.Types: QueryHasParentQuery :: HasParentQuery -> Query
+ Database.Bloodhound.Types: QueryIndicesQuery :: IndicesQuery -> Query
+ Database.Bloodhound.Types: QueryMatchNoneQuery :: Query
+ Database.Bloodhound.Types: QueryMatchQuery :: MatchQuery -> Query
+ Database.Bloodhound.Types: QueryMoreLikeThisFieldQuery :: MoreLikeThisFieldQuery -> Query
+ Database.Bloodhound.Types: QueryMoreLikeThisQuery :: MoreLikeThisQuery -> Query
+ Database.Bloodhound.Types: QueryMultiMatchQuery :: MultiMatchQuery -> Query
+ Database.Bloodhound.Types: QueryNestedQuery :: NestedQuery -> Query
+ Database.Bloodhound.Types: QueryPath :: Text -> QueryPath
+ Database.Bloodhound.Types: QueryPrefixQuery :: PrefixQuery -> Query
+ Database.Bloodhound.Types: QueryQueryStringQuery :: QueryStringQuery -> Query
+ Database.Bloodhound.Types: QueryRangeQuery :: RangeQuery -> Query
+ Database.Bloodhound.Types: QueryRegexpQuery :: RegexpQuery -> Query
+ Database.Bloodhound.Types: QuerySimpleQueryStringQuery :: SimpleQueryStringQuery -> Query
+ Database.Bloodhound.Types: QueryString :: Text -> QueryString
+ Database.Bloodhound.Types: 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
+ Database.Bloodhound.Types: QueryWildcardQuery :: WildcardQuery -> Query
+ Database.Bloodhound.Types: QuorumMinus1Shards :: InitialShardCount
+ Database.Bloodhound.Types: QuorumShards :: InitialShardCount
+ Database.Bloodhound.Types: RRSubGroup :: RRGroupRefNum -> RestoreRenameToken
+ Database.Bloodhound.Types: RRSubWholeMatch :: RestoreRenameToken
+ Database.Bloodhound.Types: RRTLit :: Text -> RestoreRenameToken
+ Database.Bloodhound.Types: RangeDateGt :: GreaterThanD -> RangeValue
+ Database.Bloodhound.Types: RangeDateGtLt :: GreaterThanD -> LessThanD -> RangeValue
+ Database.Bloodhound.Types: RangeDateGtLte :: GreaterThanD -> LessThanEqD -> RangeValue
+ Database.Bloodhound.Types: RangeDateGte :: GreaterThanEqD -> RangeValue
+ Database.Bloodhound.Types: RangeDateGteLt :: GreaterThanEqD -> LessThanD -> RangeValue
+ Database.Bloodhound.Types: RangeDateGteLte :: GreaterThanEqD -> LessThanEqD -> RangeValue
+ Database.Bloodhound.Types: RangeDateLt :: LessThanD -> RangeValue
+ Database.Bloodhound.Types: RangeDateLte :: LessThanEqD -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGt :: GreaterThan -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGtLt :: GreaterThan -> LessThan -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGtLte :: GreaterThan -> LessThanEq -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGte :: GreaterThanEq -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGteLt :: GreaterThanEq -> LessThan -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleGteLte :: GreaterThanEq -> LessThanEq -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleLt :: LessThan -> RangeValue
+ Database.Bloodhound.Types: RangeDoubleLte :: LessThanEq -> RangeValue
+ Database.Bloodhound.Types: RangeExecutionFielddata :: RangeExecution
+ Database.Bloodhound.Types: RangeExecutionIndex :: RangeExecution
+ Database.Bloodhound.Types: RangeQuery :: FieldName -> RangeValue -> Boost -> RangeQuery
+ Database.Bloodhound.Types: RecoveryInitialShards :: InitialShardCount -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RefreshInterval :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: Regexp :: Text -> Regexp
+ Database.Bloodhound.Types: RegexpQuery :: FieldName -> Regexp -> RegexpFlags -> Maybe Boost -> RegexpQuery
+ Database.Bloodhound.Types: RelationName :: Text -> RelationName
+ Database.Bloodhound.Types: RemoveAlias :: IndexAlias -> IndexAliasAction
+ Database.Bloodhound.Types: ReplicaCount :: Int -> ReplicaCount
+ Database.Bloodhound.Types: ReplicasBounded :: Int -> Int -> ReplicaBounds
+ Database.Bloodhound.Types: ReplicasLowerBounded :: Int -> ReplicaBounds
+ Database.Bloodhound.Types: ReplicasUnbounded :: ReplicaBounds
+ Database.Bloodhound.Types: RepoPattern :: Text -> SnapshotRepoPattern
+ Database.Bloodhound.Types: RepoTypeMismatch :: SnapshotRepoType -> SnapshotRepoType -> SnapshotRepoConversionError
+ Database.Bloodhound.Types: RestoreIndexSettings :: Maybe ReplicaCount -> RestoreIndexSettings
+ Database.Bloodhound.Types: RestoreRenamePattern :: Text -> RestoreRenamePattern
+ Database.Bloodhound.Types: Romanian :: Language
+ Database.Bloodhound.Types: RoundDownTo :: DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Types: RoutingAllocationEnable :: AllocationPolicy -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RoutingAllocationExclude :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RoutingAllocationInclude :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RoutingAllocationRequire :: NonEmpty NodeAttrFilter -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RoutingAllocationShardsPerNode :: ShardCount -> UpdatableIndexSetting
+ Database.Bloodhound.Types: RoutingValue :: Text -> RoutingValue
+ Database.Bloodhound.Types: Russian :: Language
+ Database.Bloodhound.Types: ScientificValue :: Scientific -> BucketValue
+ Database.Bloodhound.Types: ScoreModeAvg :: ScoreMode
+ Database.Bloodhound.Types: ScoreModeFirst :: ScoreMode
+ Database.Bloodhound.Types: ScoreModeMax :: ScoreMode
+ Database.Bloodhound.Types: ScoreModeMin :: ScoreMode
+ Database.Bloodhound.Types: ScoreModeMultiply :: ScoreMode
+ Database.Bloodhound.Types: ScoreModeSum :: ScoreMode
+ Database.Bloodhound.Types: ScoreTypeAvg :: ScoreType
+ Database.Bloodhound.Types: ScoreTypeMax :: ScoreType
+ Database.Bloodhound.Types: ScoreTypeNone :: ScoreType
+ Database.Bloodhound.Types: ScoreTypeSum :: ScoreType
+ Database.Bloodhound.Types: Script :: Maybe ScriptLanguage -> ScriptSource -> Maybe ScriptParams -> Script
+ Database.Bloodhound.Types: ScriptFields :: HashMap ScriptFieldName ScriptFieldValue -> ScriptFields
+ Database.Bloodhound.Types: ScriptId :: Text -> ScriptSource
+ Database.Bloodhound.Types: ScriptInline :: Text -> ScriptSource
+ Database.Bloodhound.Types: ScriptLanguage :: Text -> ScriptLanguage
+ Database.Bloodhound.Types: ScriptParams :: HashMap ScriptParamName ScriptParamValue -> ScriptParams
+ Database.Bloodhound.Types: ScriptValueCount :: Script -> ValueCountAggregation
+ Database.Bloodhound.Types: ScrollId :: Text -> ScrollId
+ Database.Bloodhound.Types: Search :: Maybe Query -> Maybe Filter -> Maybe Sort -> Maybe Aggregations -> Maybe Highlights -> TrackSortScores -> From -> Size -> SearchType -> Maybe SearchAfterKey -> Maybe [FieldName] -> Maybe ScriptFields -> Maybe Source -> Maybe Suggest -> Search
+ Database.Bloodhound.Types: SearchAliasRouting :: NonEmpty RoutingValue -> SearchAliasRouting
+ Database.Bloodhound.Types: SearchHits :: HitsTotal -> Score -> [Hit a] -> SearchHits a
+ Database.Bloodhound.Types: SearchResult :: Int -> Bool -> ShardResult -> SearchHits a -> Maybe AggregationResults -> Maybe ScrollId -> Maybe NamedSuggestionResponse -> SearchResult a
+ Database.Bloodhound.Types: SearchTemplate :: Either SearchTemplateId SearchTemplateSource -> TemplateQueryKeyValuePairs -> Maybe Bool -> Maybe Bool -> SearchTemplate
+ Database.Bloodhound.Types: SearchTemplateId :: Text -> SearchTemplateId
+ Database.Bloodhound.Types: SearchTemplateSource :: Text -> SearchTemplateSource
+ Database.Bloodhound.Types: SearchTypeDfsQueryThenFetch :: SearchType
+ Database.Bloodhound.Types: SearchTypeQueryThenFetch :: SearchType
+ Database.Bloodhound.Types: Second :: Interval
+ Database.Bloodhound.Types: Seconds :: TimeInterval
+ Database.Bloodhound.Types: Seed :: Float -> Seed
+ Database.Bloodhound.Types: Server :: Text -> Server
+ Database.Bloodhound.Types: ShardCount :: Int -> ShardCount
+ Database.Bloodhound.Types: ShardId :: Int -> ShardId
+ Database.Bloodhound.Types: ShardResult :: Int -> Int -> Int -> Int -> ShardResult
+ Database.Bloodhound.Types: Shingle :: Int -> Int -> Bool -> Bool -> Text -> Text -> Shingle
+ Database.Bloodhound.Types: ShouldMatch :: [Term] -> Cache -> BoolMatch
+ Database.Bloodhound.Types: SimpleQueryAll :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryAnd :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryEscape :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryFuzzy :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryNear :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryNone :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryOr :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryPhrase :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryPrecedence :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryPrefix :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQuerySlop :: SimpleQueryFlag
+ Database.Bloodhound.Types: SimpleQueryStringQuery :: QueryString -> Maybe FieldOrFields -> Maybe BooleanOperator -> Maybe Analyzer -> Maybe (NonEmpty SimpleQueryFlag) -> Maybe LowercaseExpanded -> Maybe Locale -> SimpleQueryStringQuery
+ Database.Bloodhound.Types: SimpleQueryWhitespace :: SimpleQueryFlag
+ Database.Bloodhound.Types: Size :: Int -> Size
+ Database.Bloodhound.Types: SloppyArc :: DistanceType
+ Database.Bloodhound.Types: SnapPattern :: Text -> SnapshotPattern
+ Database.Bloodhound.Types: SnapshotAborted :: SnapshotState
+ Database.Bloodhound.Types: SnapshotCreateSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Bool -> SnapshotCreateSettings
+ Database.Bloodhound.Types: SnapshotFailed :: SnapshotState
+ Database.Bloodhound.Types: SnapshotInfo :: ShardResult -> [SnapshotShardFailure] -> NominalDiffTime -> UTCTime -> UTCTime -> SnapshotState -> [IndexName] -> SnapshotName -> SnapshotInfo
+ Database.Bloodhound.Types: SnapshotInit :: SnapshotState
+ Database.Bloodhound.Types: SnapshotList :: NonEmpty SnapshotPattern -> SnapshotSelection
+ Database.Bloodhound.Types: SnapshotMissing :: SnapshotState
+ Database.Bloodhound.Types: SnapshotName :: Text -> SnapshotName
+ Database.Bloodhound.Types: SnapshotNodeVerification :: FullNodeId -> NodeName -> SnapshotNodeVerification
+ Database.Bloodhound.Types: SnapshotRepoList :: NonEmpty SnapshotRepoPattern -> SnapshotRepoSelection
+ Database.Bloodhound.Types: SnapshotRepoName :: Text -> SnapshotRepoName
+ Database.Bloodhound.Types: SnapshotRepoType :: Text -> SnapshotRepoType
+ Database.Bloodhound.Types: SnapshotRepoUpdateSettings :: Bool -> SnapshotRepoUpdateSettings
+ Database.Bloodhound.Types: SnapshotRestoreSettings :: Bool -> Maybe IndexSelection -> Bool -> Bool -> Maybe RestoreRenamePattern -> Maybe (NonEmpty RestoreRenameToken) -> Bool -> Bool -> Maybe RestoreIndexSettings -> Maybe (NonEmpty Text) -> SnapshotRestoreSettings
+ Database.Bloodhound.Types: SnapshotShardFailure :: IndexName -> Maybe NodeName -> Text -> ShardId -> SnapshotShardFailure
+ Database.Bloodhound.Types: SnapshotStarted :: SnapshotState
+ Database.Bloodhound.Types: SnapshotSuccess :: SnapshotState
+ Database.Bloodhound.Types: SnapshotVerification :: [SnapshotNodeVerification] -> SnapshotVerification
+ Database.Bloodhound.Types: SnapshotWaiting :: SnapshotState
+ Database.Bloodhound.Types: SomeRegexpFlags :: NonEmpty RegexpFlag -> RegexpFlags
+ Database.Bloodhound.Types: Sorani :: Language
+ Database.Bloodhound.Types: SortAvg :: SortMode
+ Database.Bloodhound.Types: SortMax :: SortMode
+ Database.Bloodhound.Types: SortMin :: SortMode
+ Database.Bloodhound.Types: SortSum :: SortMode
+ Database.Bloodhound.Types: SourceIncludeExclude :: Include -> Exclude -> Source
+ Database.Bloodhound.Types: SourcePatterns :: PatternOrPatterns -> Source
+ Database.Bloodhound.Types: Spanish :: Language
+ Database.Bloodhound.Types: StatisticsAggregation :: StatsType -> FieldName -> StatisticsAggregation
+ Database.Bloodhound.Types: StatsAgg :: StatisticsAggregation -> Aggregation
+ Database.Bloodhound.Types: Status :: Text -> Text -> Text -> Version -> Text -> Status
+ Database.Bloodhound.Types: StopWord :: Text -> StopWord
+ Database.Bloodhound.Types: SubtractTime :: Int -> DateMathUnit -> DateMathModifier
+ Database.Bloodhound.Types: Suggest :: Text -> Text -> SuggestType -> Suggest
+ Database.Bloodhound.Types: SuggestOptions :: Text -> Double -> Maybe Int -> Maybe Text -> SuggestOptions
+ Database.Bloodhound.Types: SuggestResponse :: Text -> Int -> Int -> [SuggestOptions] -> SuggestResponse
+ Database.Bloodhound.Types: SuggestTypePhraseSuggester :: PhraseSuggester -> SuggestType
+ Database.Bloodhound.Types: Swedish :: Language
+ Database.Bloodhound.Types: TTLDisablePurge :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: TagSchema :: Text -> HighlightTag
+ Database.Bloodhound.Types: TemplateName :: Text -> TemplateName
+ Database.Bloodhound.Types: TemplateQueryKeyValuePairs :: HashMap TemplateQueryKey TemplateQueryValue -> TemplateQueryKeyValuePairs
+ Database.Bloodhound.Types: Term :: Text -> Text -> Term
+ Database.Bloodhound.Types: TermInclusion :: Text -> TermInclusion
+ Database.Bloodhound.Types: TermOrder :: Text -> SortOrder -> TermOrder
+ Database.Bloodhound.Types: TermPattern :: Text -> Text -> TermInclusion
+ Database.Bloodhound.Types: TermQuery :: Term -> Maybe Boost -> Query
+ Database.Bloodhound.Types: TermsAgg :: TermsAggregation -> Aggregation
+ Database.Bloodhound.Types: TermsAggregation :: Either Text Text -> Maybe TermInclusion -> Maybe TermInclusion -> Maybe TermOrder -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe CollectionMode -> Maybe ExecutionHint -> Maybe Aggregations -> TermsAggregation
+ Database.Bloodhound.Types: TermsQuery :: Text -> NonEmpty Text -> Query
+ Database.Bloodhound.Types: TermsResult :: BucketValue -> Int -> Maybe AggregationResults -> TermsResult
+ Database.Bloodhound.Types: TextValue :: Text -> BucketValue
+ Database.Bloodhound.Types: Thai :: Language
+ Database.Bloodhound.Types: ThreadPoolBounded :: Int -> ThreadPoolSize
+ Database.Bloodhound.Types: ThreadPoolCached :: ThreadPoolType
+ Database.Bloodhound.Types: ThreadPoolFixed :: ThreadPoolType
+ Database.Bloodhound.Types: ThreadPoolFixedAutoQueueSize :: ThreadPoolType
+ Database.Bloodhound.Types: ThreadPoolScaling :: ThreadPoolType
+ Database.Bloodhound.Types: ThreadPoolUnbounded :: ThreadPoolSize
+ Database.Bloodhound.Types: Tiebreaker :: Double -> Tiebreaker
+ Database.Bloodhound.Types: TokenDigit :: TokenChar
+ Database.Bloodhound.Types: TokenFilter :: Text -> TokenFilter
+ Database.Bloodhound.Types: TokenFilterDefinitionApostrophe :: TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionLowercase :: Maybe Language -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionReverse :: TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionShingle :: Shingle -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionSnowball :: Language -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionStemmer :: Language -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionStop :: Either Language [StopWord] -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenFilterDefinitionUppercase :: Maybe Language -> TokenFilterDefinition
+ Database.Bloodhound.Types: TokenLetter :: TokenChar
+ Database.Bloodhound.Types: TokenPunctuation :: TokenChar
+ Database.Bloodhound.Types: TokenSymbol :: TokenChar
+ Database.Bloodhound.Types: TokenWhitespace :: TokenChar
+ Database.Bloodhound.Types: Tokenizer :: Text -> Tokenizer
+ Database.Bloodhound.Types: TokenizerDefinitionNgram :: Ngram -> TokenizerDefinition
+ Database.Bloodhound.Types: TopHitResult :: SearchHits a -> TopHitResult a
+ Database.Bloodhound.Types: TopHitsAgg :: TopHitsAggregation -> Aggregation
+ Database.Bloodhound.Types: TopHitsAggregation :: Maybe From -> Maybe Size -> Maybe Sort -> TopHitsAggregation
+ Database.Bloodhound.Types: TranslogDisableFlush :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: TranslogFSType :: FSType -> UpdatableIndexSetting
+ Database.Bloodhound.Types: TranslogFlushThresholdOps :: Int -> UpdatableIndexSetting
+ Database.Bloodhound.Types: TranslogFlushThresholdPeriod :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: TranslogFlushThresholdSize :: Bytes -> UpdatableIndexSetting
+ Database.Bloodhound.Types: Turkish :: Language
+ Database.Bloodhound.Types: UA_RetryOnConflict :: Int -> UpsertActionMetadata
+ Database.Bloodhound.Types: UA_Version :: Int -> UpsertActionMetadata
+ Database.Bloodhound.Types: UnassignedNodeLeftDelayedTimeout :: NominalDiffTime -> UpdatableIndexSetting
+ Database.Bloodhound.Types: UpsertDoc :: Value -> UpsertPayload
+ Database.Bloodhound.Types: UpsertScript :: Bool -> Script -> Value -> UpsertPayload
+ Database.Bloodhound.Types: ValueCountAgg :: ValueCountAggregation -> Aggregation
+ Database.Bloodhound.Types: Version :: VersionNumber -> BuildHash -> UTCTime -> Bool -> VersionNumber -> Version
+ Database.Bloodhound.Types: VersionNumber :: Version -> VersionNumber
+ Database.Bloodhound.Types: WarmerEnabled :: Bool -> UpdatableIndexSetting
+ Database.Bloodhound.Types: Week :: Interval
+ Database.Bloodhound.Types: Weeks :: TimeInterval
+ Database.Bloodhound.Types: Weight :: Float -> Weight
+ Database.Bloodhound.Types: WildcardQuery :: FieldName -> Text -> Maybe Boost -> WildcardQuery
+ Database.Bloodhound.Types: Yards :: DistanceUnit
+ Database.Bloodhound.Types: Year :: Interval
+ Database.Bloodhound.Types: ZeroTermsAll :: ZeroTermsQuery
+ Database.Bloodhound.Types: ZeroTermsNone :: ZeroTermsQuery
+ Database.Bloodhound.Types: [_id] :: EsResult a -> Text
+ Database.Bloodhound.Types: [_index] :: EsResult a -> Text
+ Database.Bloodhound.Types: [_source] :: EsResultFound a -> a
+ Database.Bloodhound.Types: [_type] :: EsResult a -> Text
+ Database.Bloodhound.Types: [_version] :: EsResultFound a -> DocVersion
+ Database.Bloodhound.Types: [aggBody] :: Search -> Maybe Aggregations
+ Database.Bloodhound.Types: [aggregations] :: SearchResult a -> Maybe AggregationResults
+ Database.Bloodhound.Types: [aliasCreateFilter] :: IndexAliasCreate -> Maybe Filter
+ Database.Bloodhound.Types: [aliasCreateRouting] :: IndexAliasCreate -> Maybe AliasRouting
+ Database.Bloodhound.Types: [analysisAnalyzer] :: Analysis -> Map Text AnalyzerDefinition
+ Database.Bloodhound.Types: [analysisCharFilter] :: Analysis -> Map Text CharFilterDefinition
+ Database.Bloodhound.Types: [analysisTokenFilter] :: Analysis -> Map Text TokenFilterDefinition
+ Database.Bloodhound.Types: [analysisTokenizer] :: Analysis -> Map Text TokenizerDefinition
+ Database.Bloodhound.Types: [analyzerDefinitionCharFilter] :: AnalyzerDefinition -> [CharFilter]
+ Database.Bloodhound.Types: [analyzerDefinitionFilter] :: AnalyzerDefinition -> [TokenFilter]
+ Database.Bloodhound.Types: [analyzerDefinitionTokenizer] :: AnalyzerDefinition -> Maybe Tokenizer
+ Database.Bloodhound.Types: [bbConstraintcache] :: GeoBoundingBoxConstraint -> Cache
+ Database.Bloodhound.Types: [boolQueryBoost] :: BoolQuery -> Maybe Boost
+ Database.Bloodhound.Types: [boolQueryDisableCoord] :: BoolQuery -> Maybe DisableCoord
+ Database.Bloodhound.Types: [boolQueryFilter] :: BoolQuery -> [Filter]
+ Database.Bloodhound.Types: [boolQueryMinimumShouldMatch] :: BoolQuery -> Maybe MinimumMatch
+ Database.Bloodhound.Types: [boolQueryMustMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Types: [boolQueryMustNotMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Types: [boolQueryShouldMatch] :: BoolQuery -> [Query]
+ Database.Bloodhound.Types: [bottomRight] :: GeoBoundingBox -> LatLon
+ Database.Bloodhound.Types: [boundAddress] :: BoundTransportAddress -> [EsAddress]
+ Database.Bloodhound.Types: [boundaryChars] :: FastVectorHighlight -> Maybe Text
+ Database.Bloodhound.Types: [boundaryMaxScan] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Types: [buckets] :: Bucket a -> [a]
+ Database.Bloodhound.Types: [buildHash] :: BuildHash -> Text
+ Database.Bloodhound.Types: [build_date] :: Version -> UTCTime
+ Database.Bloodhound.Types: [build_hash] :: Version -> BuildHash
+ Database.Bloodhound.Types: [build_snapshot] :: Version -> Bool
+ Database.Bloodhound.Types: [cardinalityField] :: CardinalityAggregation -> FieldName
+ Database.Bloodhound.Types: [charFilterDefinitionPatternReplaceFlags] :: CharFilterDefinition -> Maybe Text
+ Database.Bloodhound.Types: [charFilterDefinitionPatternReplacePattern] :: CharFilterDefinition -> Text
+ Database.Bloodhound.Types: [charFilterDefinitionPatternReplaceReplacement] :: CharFilterDefinition -> Text
+ Database.Bloodhound.Types: [clusterName] :: ClusterName -> Text
+ Database.Bloodhound.Types: [cluster_name] :: Status -> Text
+ Database.Bloodhound.Types: [cluster_uuid] :: Status -> Text
+ Database.Bloodhound.Types: [coefficient] :: Distance -> Double
+ Database.Bloodhound.Types: [commonAnalyzer] :: CommonTermsQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [commonBoost] :: CommonTermsQuery -> Maybe Boost
+ Database.Bloodhound.Types: [commonCutoffFrequency] :: CommonTermsQuery -> CutoffFrequency
+ Database.Bloodhound.Types: [commonDisableCoord] :: CommonTermsQuery -> Maybe DisableCoord
+ Database.Bloodhound.Types: [commonField] :: CommonTermsQuery -> FieldName
+ Database.Bloodhound.Types: [commonHighFreqOperator] :: CommonTermsQuery -> BooleanOperator
+ Database.Bloodhound.Types: [commonLowFreqOperator] :: CommonTermsQuery -> BooleanOperator
+ Database.Bloodhound.Types: [commonMinimumShouldMatch] :: CommonTermsQuery -> Maybe CommonMinimumMatch
+ Database.Bloodhound.Types: [commonQuery] :: CommonTermsQuery -> QueryString
+ Database.Bloodhound.Types: [componentScoreFunctionFilter] :: ComponentFunctionScoreFunction -> Maybe Filter
+ Database.Bloodhound.Types: [componentScoreFunctionWeight] :: ComponentFunctionScoreFunction -> Maybe Weight
+ Database.Bloodhound.Types: [componentScoreFunction] :: ComponentFunctionScoreFunction -> FunctionScoreFunction
+ Database.Bloodhound.Types: [constraintBox] :: GeoBoundingBoxConstraint -> GeoBoundingBox
+ Database.Bloodhound.Types: [countQuery] :: CountQuery -> Query
+ Database.Bloodhound.Types: [cpuCacheSize] :: CPUInfo -> Bytes
+ Database.Bloodhound.Types: [cpuCoresPerSocket] :: CPUInfo -> Int
+ Database.Bloodhound.Types: [cpuMHZ] :: CPUInfo -> Int
+ Database.Bloodhound.Types: [cpuModel] :: CPUInfo -> Text
+ Database.Bloodhound.Types: [cpuTotalCores] :: CPUInfo -> Int
+ Database.Bloodhound.Types: [cpuTotalSockets] :: CPUInfo -> Int
+ Database.Bloodhound.Types: [cpuVendor] :: CPUInfo -> Text
+ Database.Bloodhound.Types: [crCount] :: CountResponse -> Natural
+ Database.Bloodhound.Types: [crShards] :: CountResponse -> CountShards
+ Database.Bloodhound.Types: [csFailed] :: CountShards -> Int
+ Database.Bloodhound.Types: [csSkipped] :: CountShards -> Int
+ Database.Bloodhound.Types: [csSuccessful] :: CountShards -> Int
+ Database.Bloodhound.Types: [csTotal] :: CountShards -> Int
+ Database.Bloodhound.Types: [dateAggs] :: DateHistogramAggregation -> Maybe Aggregations
+ Database.Bloodhound.Types: [dateDocCount] :: DateHistogramResult -> Int
+ Database.Bloodhound.Types: [dateField] :: DateHistogramAggregation -> FieldName
+ Database.Bloodhound.Types: [dateFormat] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Types: [dateHistogramAggs] :: DateHistogramResult -> Maybe AggregationResults
+ Database.Bloodhound.Types: [dateInterval] :: DateHistogramAggregation -> Interval
+ Database.Bloodhound.Types: [dateKeyStr] :: DateHistogramResult -> Maybe Text
+ Database.Bloodhound.Types: [dateKey] :: DateHistogramResult -> Int
+ Database.Bloodhound.Types: [datePostOffset] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Types: [datePostZone] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Types: [datePreOffset] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Types: [datePreZone] :: DateHistogramAggregation -> Maybe Text
+ Database.Bloodhound.Types: [dateRangeAggs] :: DateRangeResult -> Maybe AggregationResults
+ Database.Bloodhound.Types: [dateRangeDocCount] :: DateRangeResult -> Int
+ Database.Bloodhound.Types: [dateRangeFromAsString] :: DateRangeResult -> Maybe Text
+ Database.Bloodhound.Types: [dateRangeFrom] :: DateRangeResult -> Maybe UTCTime
+ Database.Bloodhound.Types: [dateRangeKey] :: DateRangeResult -> Text
+ Database.Bloodhound.Types: [dateRangeToAsString] :: DateRangeResult -> Maybe Text
+ Database.Bloodhound.Types: [dateRangeTo] :: DateRangeResult -> Maybe UTCTime
+ Database.Bloodhound.Types: [directGeneratorMaxEdits] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Types: [directGeneratorMaxInspections] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Types: [directGeneratorMaxTermFreq] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Types: [directGeneratorMinDocFreq] :: DirectGenerators -> Maybe Double
+ Database.Bloodhound.Types: [directGeneratorMinWordLength] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Types: [directGeneratorPostFilter] :: DirectGenerators -> Maybe Text
+ Database.Bloodhound.Types: [directGeneratorPreFilter] :: DirectGenerators -> Maybe Text
+ Database.Bloodhound.Types: [directGeneratorPrefixLength] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Types: [directGeneratorSuggestMode] :: DirectGenerators -> DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Types: [directGeneratorsField] :: DirectGenerators -> FieldName
+ Database.Bloodhound.Types: [directGeneratorsSize] :: DirectGenerators -> Maybe Int
+ Database.Bloodhound.Types: [disMaxBoost] :: DisMaxQuery -> Maybe Boost
+ Database.Bloodhound.Types: [disMaxQueries] :: DisMaxQuery -> [Query]
+ Database.Bloodhound.Types: [disMaxTiebreaker] :: DisMaxQuery -> Tiebreaker
+ Database.Bloodhound.Types: [distanceFrom] :: DistanceRange -> Distance
+ Database.Bloodhound.Types: [distanceTo] :: DistanceRange -> Distance
+ Database.Bloodhound.Types: [draField] :: DateRangeAggregation -> FieldName
+ Database.Bloodhound.Types: [draFormat] :: DateRangeAggregation -> Maybe Text
+ Database.Bloodhound.Types: [draRanges] :: DateRangeAggregation -> NonEmpty DateRangeAggRange
+ Database.Bloodhound.Types: [encoder] :: CommonHighlight -> Maybe HighlightEncoder
+ Database.Bloodhound.Types: [errorMessage] :: EsError -> Text
+ Database.Bloodhound.Types: [errorStatus] :: EsError -> Int
+ Database.Bloodhound.Types: [esAddress] :: EsAddress -> Text
+ Database.Bloodhound.Types: [esPassword] :: EsPassword -> Text
+ Database.Bloodhound.Types: [esProtoExBody] :: EsProtocolException -> !LByteString
+ Database.Bloodhound.Types: [esProtoExMessage] :: EsProtocolException -> !Text
+ Database.Bloodhound.Types: [esUsername] :: EsUsername -> Text
+ Database.Bloodhound.Types: [explainSearchTemplate] :: SearchTemplate -> Maybe Bool
+ Database.Bloodhound.Types: [faAggs] :: FilterAggregation -> Maybe Aggregations
+ Database.Bloodhound.Types: [faFilter] :: FilterAggregation -> Filter
+ Database.Bloodhound.Types: [fieldDefinition] :: MappingField -> FieldDefinition
+ Database.Bloodhound.Types: [fieldType] :: FieldDefinition -> FieldType
+ Database.Bloodhound.Types: [fieldValueFactorField] :: FieldValueFactor -> FieldName
+ Database.Bloodhound.Types: [fieldValueFactorMissing] :: FieldValueFactor -> Maybe FactorMissingFieldValue
+ Database.Bloodhound.Types: [fieldValueFactorModifier] :: FieldValueFactor -> Maybe FactorModifier
+ Database.Bloodhound.Types: [fieldValueFactor] :: FieldValueFactor -> Maybe Factor
+ Database.Bloodhound.Types: [fields] :: Search -> Maybe [FieldName]
+ Database.Bloodhound.Types: [filterBody] :: Search -> Maybe Filter
+ Database.Bloodhound.Types: [flushAfterOptimize] :: ForceMergeIndexSettings -> Bool
+ Database.Bloodhound.Types: [forceSource] :: CommonHighlight -> Maybe Bool
+ Database.Bloodhound.Types: [foundResult] :: EsResult a -> Maybe (EsResultFound a)
+ Database.Bloodhound.Types: [fragmentOffset] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Types: [fragmentSize] :: NonPostings -> Maybe Int
+ Database.Bloodhound.Types: [from] :: Search -> From
+ Database.Bloodhound.Types: [fsrChunkSize] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Types: [fsrCompressMetadata] :: FsSnapshotRepo -> Bool
+ Database.Bloodhound.Types: [fsrLocation] :: FsSnapshotRepo -> FilePath
+ Database.Bloodhound.Types: [fsrMaxRestoreBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Types: [fsrMaxSnapshotBytesPerSec] :: FsSnapshotRepo -> Maybe Bytes
+ Database.Bloodhound.Types: [fsrName] :: FsSnapshotRepo -> SnapshotRepoName
+ Database.Bloodhound.Types: [fullNodeId] :: FullNodeId -> Text
+ Database.Bloodhound.Types: [functionScoreBoostMode] :: FunctionScoreQuery -> Maybe BoostMode
+ Database.Bloodhound.Types: [functionScoreBoost] :: FunctionScoreQuery -> Maybe Boost
+ Database.Bloodhound.Types: [functionScoreFunctions] :: FunctionScoreQuery -> FunctionScoreFunctions
+ Database.Bloodhound.Types: [functionScoreMaxBoost] :: FunctionScoreQuery -> Maybe Boost
+ Database.Bloodhound.Types: [functionScoreMinScore] :: FunctionScoreQuery -> Score
+ Database.Bloodhound.Types: [functionScoreQuery] :: FunctionScoreQuery -> Maybe Query
+ Database.Bloodhound.Types: [functionScoreScoreMode] :: FunctionScoreQuery -> Maybe ScoreMode
+ Database.Bloodhound.Types: [fuzzyLikeAnalyzer] :: FuzzyLikeThisQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [fuzzyLikeBoost] :: FuzzyLikeThisQuery -> Boost
+ Database.Bloodhound.Types: [fuzzyLikeFieldAnalyzer] :: FuzzyLikeFieldQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [fuzzyLikeFieldBoost] :: FuzzyLikeFieldQuery -> Boost
+ Database.Bloodhound.Types: [fuzzyLikeFieldFuzziness] :: FuzzyLikeFieldQuery -> Fuzziness
+ Database.Bloodhound.Types: [fuzzyLikeFieldIgnoreTermFrequency] :: FuzzyLikeFieldQuery -> IgnoreTermFrequency
+ Database.Bloodhound.Types: [fuzzyLikeFieldMaxQueryTerms] :: FuzzyLikeFieldQuery -> MaxQueryTerms
+ Database.Bloodhound.Types: [fuzzyLikeFieldPrefixLength] :: FuzzyLikeFieldQuery -> PrefixLength
+ Database.Bloodhound.Types: [fuzzyLikeFieldText] :: FuzzyLikeFieldQuery -> Text
+ Database.Bloodhound.Types: [fuzzyLikeField] :: FuzzyLikeFieldQuery -> FieldName
+ Database.Bloodhound.Types: [fuzzyLikeFields] :: FuzzyLikeThisQuery -> [FieldName]
+ Database.Bloodhound.Types: [fuzzyLikeFuzziness] :: FuzzyLikeThisQuery -> Fuzziness
+ Database.Bloodhound.Types: [fuzzyLikeIgnoreTermFrequency] :: FuzzyLikeThisQuery -> IgnoreTermFrequency
+ Database.Bloodhound.Types: [fuzzyLikeMaxQueryTerms] :: FuzzyLikeThisQuery -> MaxQueryTerms
+ Database.Bloodhound.Types: [fuzzyLikePrefixLength] :: FuzzyLikeThisQuery -> PrefixLength
+ Database.Bloodhound.Types: [fuzzyLikeText] :: FuzzyLikeThisQuery -> Text
+ Database.Bloodhound.Types: [fuzzyQueryBoost] :: FuzzyQuery -> Maybe Boost
+ Database.Bloodhound.Types: [fuzzyQueryField] :: FuzzyQuery -> FieldName
+ Database.Bloodhound.Types: [fuzzyQueryFuzziness] :: FuzzyQuery -> Fuzziness
+ Database.Bloodhound.Types: [fuzzyQueryMaxExpansions] :: FuzzyQuery -> MaxExpansions
+ Database.Bloodhound.Types: [fuzzyQueryPrefixLength] :: FuzzyQuery -> PrefixLength
+ Database.Bloodhound.Types: [fuzzyQueryValue] :: FuzzyQuery -> Text
+ Database.Bloodhound.Types: [fvCommon] :: FastVectorHighlight -> Maybe CommonHighlight
+ Database.Bloodhound.Types: [fvNonPostSettings] :: FastVectorHighlight -> Maybe NonPostings
+ Database.Bloodhound.Types: [gSnapshotRepoName] :: GenericSnapshotRepo -> SnapshotRepoName
+ Database.Bloodhound.Types: [gSnapshotRepoSettingsObject] :: GenericSnapshotRepoSettings -> Object
+ Database.Bloodhound.Types: [gSnapshotRepoSettings] :: GenericSnapshotRepo -> GenericSnapshotRepoSettings
+ Database.Bloodhound.Types: [gSnapshotRepoType] :: GenericSnapshotRepo -> SnapshotRepoType
+ Database.Bloodhound.Types: [geoBBField] :: GeoBoundingBoxConstraint -> FieldName
+ Database.Bloodhound.Types: [geoField] :: GeoPoint -> FieldName
+ Database.Bloodhound.Types: [geoType] :: GeoBoundingBoxConstraint -> GeoFilterType
+ Database.Bloodhound.Types: [getTemplateScriptFound] :: GetTemplateScript -> Bool
+ Database.Bloodhound.Types: [getTemplateScriptId] :: GetTemplateScript -> Text
+ Database.Bloodhound.Types: [getTemplateScriptLang] :: GetTemplateScript -> Maybe Text
+ Database.Bloodhound.Types: [getTemplateScriptOptions] :: GetTemplateScript -> Maybe (HashMap Text Text)
+ Database.Bloodhound.Types: [getTemplateScriptSource] :: GetTemplateScript -> Maybe SearchTemplateSource
+ Database.Bloodhound.Types: [globalsettings] :: Highlights -> Maybe HighlightSettings
+ Database.Bloodhound.Types: [hasChildIgnoreUnmappped] :: HasChildQuery -> Maybe IgnoreUnmapped
+ Database.Bloodhound.Types: [hasChildMaxChildren] :: HasChildQuery -> Maybe MaxChildren
+ Database.Bloodhound.Types: [hasChildMinChildren] :: HasChildQuery -> Maybe MinChildren
+ Database.Bloodhound.Types: [hasChildQueryScoreType] :: HasChildQuery -> Maybe ScoreType
+ Database.Bloodhound.Types: [hasChildQueryType] :: HasChildQuery -> RelationName
+ Database.Bloodhound.Types: [hasChildQuery] :: HasChildQuery -> Query
+ Database.Bloodhound.Types: [hasParentIgnoreUnmapped] :: HasParentQuery -> Maybe IgnoreUnmapped
+ Database.Bloodhound.Types: [hasParentQueryScore] :: HasParentQuery -> Maybe AggregateParentScore
+ Database.Bloodhound.Types: [hasParentQueryType] :: HasParentQuery -> RelationName
+ Database.Bloodhound.Types: [hasParentQuery] :: HasParentQuery -> Query
+ Database.Bloodhound.Types: [highFreq] :: MinimumMatchHighLow -> MinimumMatch
+ Database.Bloodhound.Types: [highlightFields] :: Highlights -> [FieldHighlight]
+ Database.Bloodhound.Types: [highlightQuery] :: CommonHighlight -> Maybe Query
+ Database.Bloodhound.Types: [highlight] :: Search -> Maybe Highlights
+ Database.Bloodhound.Types: [hitDocId] :: Hit a -> DocId
+ Database.Bloodhound.Types: [hitFields] :: Hit a -> Maybe HitFields
+ Database.Bloodhound.Types: [hitHighlight] :: Hit a -> Maybe HitHighlight
+ Database.Bloodhound.Types: [hitIndex] :: Hit a -> IndexName
+ Database.Bloodhound.Types: [hitScore] :: Hit a -> Score
+ Database.Bloodhound.Types: [hitSort] :: Hit a -> Maybe SearchAfterKey
+ Database.Bloodhound.Types: [hitSource] :: Hit a -> Maybe a
+ Database.Bloodhound.Types: [hitsTotal] :: SearchHits a -> HitsTotal
+ Database.Bloodhound.Types: [hits] :: SearchHits a -> [Hit a]
+ Database.Bloodhound.Types: [idsJoinRelation] :: IndexDocumentSettings -> Maybe JoinRelation
+ Database.Bloodhound.Types: [idsVersionControl] :: IndexDocumentSettings -> VersionControl
+ Database.Bloodhound.Types: [ignoreUnmapped] :: DefaultSort -> Maybe Text
+ Database.Bloodhound.Types: [indexAliasName] :: IndexAliasName -> IndexName
+ Database.Bloodhound.Types: [indexAliasSummaryAlias] :: IndexAliasSummary -> IndexAlias
+ Database.Bloodhound.Types: [indexAliasSummaryCreate] :: IndexAliasSummary -> IndexAliasCreate
+ Database.Bloodhound.Types: [indexAlias] :: IndexAlias -> IndexAliasName
+ Database.Bloodhound.Types: [indexAliasesSummary] :: IndexAliasesSummary -> [IndexAliasSummary]
+ Database.Bloodhound.Types: [indexReplicas] :: IndexSettings -> ReplicaCount
+ Database.Bloodhound.Types: [indexShards] :: IndexSettings -> ShardCount
+ Database.Bloodhound.Types: [indicesQueryIndices] :: IndicesQuery -> [IndexName]
+ Database.Bloodhound.Types: [indicesQueryNoMatch] :: IndicesQuery -> Maybe Query
+ Database.Bloodhound.Types: [indicesQuery] :: IndicesQuery -> Query
+ Database.Bloodhound.Types: [jvmBufferPoolStatsCount] :: JVMBufferPoolStats -> Int
+ Database.Bloodhound.Types: [jvmBufferPoolStatsTotalCapacity] :: JVMBufferPoolStats -> Bytes
+ Database.Bloodhound.Types: [jvmBufferPoolStatsUsed] :: JVMBufferPoolStats -> Bytes
+ Database.Bloodhound.Types: [jvmGCCollector] :: JVMGCCollector -> Text
+ Database.Bloodhound.Types: [jvmGCStatsCollectionCount] :: JVMGCStats -> Int
+ Database.Bloodhound.Types: [jvmGCStatsCollectionTime] :: JVMGCStats -> NominalDiffTime
+ Database.Bloodhound.Types: [jvmMemoryInfoDirectMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Types: [jvmMemoryInfoHeapInit] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Types: [jvmMemoryInfoHeapMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Types: [jvmMemoryInfoNonHeapInit] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Types: [jvmMemoryInfoNonHeapMax] :: JVMMemoryInfo -> Bytes
+ Database.Bloodhound.Types: [jvmMemoryPool] :: JVMMemoryPool -> Text
+ Database.Bloodhound.Types: [jvmPoolStatsMax] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Types: [jvmPoolStatsPeakMax] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Types: [jvmPoolStatsPeakUsed] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Types: [jvmPoolStatsUsed] :: JVMPoolStats -> Bytes
+ Database.Bloodhound.Types: [latLon] :: GeoPoint -> LatLon
+ Database.Bloodhound.Types: [lat] :: LatLon -> Double
+ Database.Bloodhound.Types: [loadAvg15Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Types: [loadAvg1Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Types: [loadAvg5Min] :: LoadAvgs -> Double
+ Database.Bloodhound.Types: [lon] :: LatLon -> Double
+ Database.Bloodhound.Types: [lowFreq] :: MinimumMatchHighLow -> MinimumMatch
+ Database.Bloodhound.Types: [lucene_version] :: Version -> VersionNumber
+ Database.Bloodhound.Types: [maField] :: MissingAggregation -> Text
+ Database.Bloodhound.Types: [macAddress] :: MacAddress -> Text
+ Database.Bloodhound.Types: [mappingFieldName] :: MappingField -> FieldName
+ Database.Bloodhound.Types: [mappingFields] :: Mapping -> [MappingField]
+ Database.Bloodhound.Types: [matchQueryAnalyzer] :: MatchQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [matchQueryBoost] :: MatchQuery -> Maybe Boost
+ Database.Bloodhound.Types: [matchQueryCutoffFrequency] :: MatchQuery -> Maybe CutoffFrequency
+ Database.Bloodhound.Types: [matchQueryField] :: MatchQuery -> FieldName
+ Database.Bloodhound.Types: [matchQueryFuzziness] :: MatchQuery -> Maybe Fuzziness
+ Database.Bloodhound.Types: [matchQueryLenient] :: MatchQuery -> Maybe Lenient
+ Database.Bloodhound.Types: [matchQueryMatchType] :: MatchQuery -> Maybe MatchQueryType
+ Database.Bloodhound.Types: [matchQueryMaxExpansions] :: MatchQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Types: [matchQueryMinimumShouldMatch] :: MatchQuery -> Maybe Text
+ Database.Bloodhound.Types: [matchQueryOperator] :: MatchQuery -> BooleanOperator
+ Database.Bloodhound.Types: [matchQueryQueryString] :: MatchQuery -> QueryString
+ Database.Bloodhound.Types: [matchQueryZeroTerms] :: MatchQuery -> ZeroTermsQuery
+ Database.Bloodhound.Types: [matchedFields] :: FastVectorHighlight -> [Text]
+ Database.Bloodhound.Types: [maxNumSegments] :: ForceMergeIndexSettings -> Maybe Int
+ Database.Bloodhound.Types: [maxScore] :: SearchHits a -> Score
+ Database.Bloodhound.Types: [missingDocCount] :: MissingResult -> Int
+ Database.Bloodhound.Types: [missingSort] :: DefaultSort -> Maybe Missing
+ Database.Bloodhound.Types: [moreLikeThisAnalyzer] :: MoreLikeThisQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [moreLikeThisBoostTerms] :: MoreLikeThisQuery -> Maybe BoostTerms
+ Database.Bloodhound.Types: [moreLikeThisBoost] :: MoreLikeThisQuery -> Maybe Boost
+ Database.Bloodhound.Types: [moreLikeThisFieldAnalyzer] :: MoreLikeThisFieldQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [moreLikeThisFieldBoostTerms] :: MoreLikeThisFieldQuery -> Maybe BoostTerms
+ Database.Bloodhound.Types: [moreLikeThisFieldBoost] :: MoreLikeThisFieldQuery -> Maybe Boost
+ Database.Bloodhound.Types: [moreLikeThisFieldFields] :: MoreLikeThisFieldQuery -> FieldName
+ Database.Bloodhound.Types: [moreLikeThisFieldMaxDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MaxDocFrequency
+ Database.Bloodhound.Types: [moreLikeThisFieldMaxQueryTerms] :: MoreLikeThisFieldQuery -> Maybe MaxQueryTerms
+ Database.Bloodhound.Types: [moreLikeThisFieldMaxWordLength] :: MoreLikeThisFieldQuery -> Maybe MaxWordLength
+ Database.Bloodhound.Types: [moreLikeThisFieldMinDocFrequency] :: MoreLikeThisFieldQuery -> Maybe MinDocFrequency
+ Database.Bloodhound.Types: [moreLikeThisFieldMinWordLength] :: MoreLikeThisFieldQuery -> Maybe MinWordLength
+ Database.Bloodhound.Types: [moreLikeThisFieldMinimumTermFreq] :: MoreLikeThisFieldQuery -> Maybe MinimumTermFrequency
+ Database.Bloodhound.Types: [moreLikeThisFieldPercentMatch] :: MoreLikeThisFieldQuery -> Maybe PercentMatch
+ Database.Bloodhound.Types: [moreLikeThisFieldStopWords] :: MoreLikeThisFieldQuery -> Maybe (NonEmpty StopWord)
+ Database.Bloodhound.Types: [moreLikeThisFieldText] :: MoreLikeThisFieldQuery -> Text
+ Database.Bloodhound.Types: [moreLikeThisFields] :: MoreLikeThisQuery -> Maybe (NonEmpty FieldName)
+ Database.Bloodhound.Types: [moreLikeThisMaxDocFrequency] :: MoreLikeThisQuery -> Maybe MaxDocFrequency
+ Database.Bloodhound.Types: [moreLikeThisMaxQueryTerms] :: MoreLikeThisQuery -> Maybe MaxQueryTerms
+ Database.Bloodhound.Types: [moreLikeThisMaxWordLength] :: MoreLikeThisQuery -> Maybe MaxWordLength
+ Database.Bloodhound.Types: [moreLikeThisMinDocFrequency] :: MoreLikeThisQuery -> Maybe MinDocFrequency
+ Database.Bloodhound.Types: [moreLikeThisMinWordLength] :: MoreLikeThisQuery -> Maybe MinWordLength
+ Database.Bloodhound.Types: [moreLikeThisMinimumTermFreq] :: MoreLikeThisQuery -> Maybe MinimumTermFrequency
+ Database.Bloodhound.Types: [moreLikeThisPercentMatch] :: MoreLikeThisQuery -> Maybe PercentMatch
+ Database.Bloodhound.Types: [moreLikeThisStopWords] :: MoreLikeThisQuery -> Maybe (NonEmpty StopWord)
+ Database.Bloodhound.Types: [moreLikeThisText] :: MoreLikeThisQuery -> Text
+ Database.Bloodhound.Types: [multiMatchQueryAnalyzer] :: MultiMatchQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [multiMatchQueryCutoffFrequency] :: MultiMatchQuery -> Maybe CutoffFrequency
+ Database.Bloodhound.Types: [multiMatchQueryFields] :: MultiMatchQuery -> [FieldName]
+ Database.Bloodhound.Types: [multiMatchQueryLenient] :: MultiMatchQuery -> Maybe Lenient
+ Database.Bloodhound.Types: [multiMatchQueryMaxExpansions] :: MultiMatchQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Types: [multiMatchQueryOperator] :: MultiMatchQuery -> BooleanOperator
+ Database.Bloodhound.Types: [multiMatchQueryString] :: MultiMatchQuery -> QueryString
+ Database.Bloodhound.Types: [multiMatchQueryTiebreaker] :: MultiMatchQuery -> Maybe Tiebreaker
+ Database.Bloodhound.Types: [multiMatchQueryType] :: MultiMatchQuery -> Maybe MultiMatchQueryType
+ Database.Bloodhound.Types: [multiMatchQueryZeroTerms] :: MultiMatchQuery -> ZeroTermsQuery
+ Database.Bloodhound.Types: [name] :: Status -> Text
+ Database.Bloodhound.Types: [negativeBoost] :: BoostingQuery -> Boost
+ Database.Bloodhound.Types: [negativeQuery] :: BoostingQuery -> Query
+ Database.Bloodhound.Types: [nestedFilter] :: DefaultSort -> Maybe Filter
+ Database.Bloodhound.Types: [nestedQueryPath] :: NestedQuery -> QueryPath
+ Database.Bloodhound.Types: [nestedQueryScoreType] :: NestedQuery -> ScoreType
+ Database.Bloodhound.Types: [nestedQuery] :: NestedQuery -> Query
+ Database.Bloodhound.Types: [networkInterfaceName] :: NetworkInterfaceName -> Text
+ Database.Bloodhound.Types: [ngramMaxGram] :: Ngram -> Int
+ Database.Bloodhound.Types: [ngramMinGram] :: Ngram -> Int
+ Database.Bloodhound.Types: [ngramTokenChars] :: Ngram -> [TokenChar]
+ Database.Bloodhound.Types: [noMatchSize] :: CommonHighlight -> Maybe Int
+ Database.Bloodhound.Types: [nodeAttrFilterName] :: NodeAttrFilter -> NodeAttrName
+ Database.Bloodhound.Types: [nodeAttrFilterValues] :: NodeAttrFilter -> NonEmpty Text
+ Database.Bloodhound.Types: [nodeBreakersEstSize] :: NodeBreakerStats -> Bytes
+ Database.Bloodhound.Types: [nodeBreakersLimitSize] :: NodeBreakerStats -> Bytes
+ Database.Bloodhound.Types: [nodeBreakersOverhead] :: NodeBreakerStats -> Double
+ Database.Bloodhound.Types: [nodeBreakersTripped] :: NodeBreakerStats -> Int
+ Database.Bloodhound.Types: [nodeDataPathAvailable] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Types: [nodeDataPathDevice] :: NodeDataPathStats -> Maybe Text
+ Database.Bloodhound.Types: [nodeDataPathDiskQueue] :: NodeDataPathStats -> Maybe Double
+ Database.Bloodhound.Types: [nodeDataPathDiskServiceTime] :: NodeDataPathStats -> Maybe Double
+ Database.Bloodhound.Types: [nodeDataPathFree] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Types: [nodeDataPathIOOps] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeDataPathIOSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeDataPathMount] :: NodeDataPathStats -> Text
+ Database.Bloodhound.Types: [nodeDataPathPath] :: NodeDataPathStats -> Text
+ Database.Bloodhound.Types: [nodeDataPathReadSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeDataPathReads] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeDataPathTotal] :: NodeDataPathStats -> Bytes
+ Database.Bloodhound.Types: [nodeDataPathType] :: NodeDataPathStats -> Maybe Text
+ Database.Bloodhound.Types: [nodeDataPathWriteSize] :: NodeDataPathStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeDataPathWrites] :: NodeDataPathStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeFSDataPaths] :: NodeFSStats -> [NodeDataPathStats]
+ Database.Bloodhound.Types: [nodeFSTimestamp] :: NodeFSStats -> UTCTime
+ Database.Bloodhound.Types: [nodeFSTotalAvailable] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Types: [nodeFSTotalDiskQueue] :: NodeFSTotalStats -> Maybe Double
+ Database.Bloodhound.Types: [nodeFSTotalDiskServiceTime] :: NodeFSTotalStats -> Maybe Double
+ Database.Bloodhound.Types: [nodeFSTotalFree] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Types: [nodeFSTotalIOOps] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeFSTotalIOSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeFSTotalReadSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeFSTotalReads] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeFSTotalTotal] :: NodeFSTotalStats -> Bytes
+ Database.Bloodhound.Types: [nodeFSTotalWriteSize] :: NodeFSTotalStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeFSTotalWrites] :: NodeFSTotalStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeFSTotal] :: NodeFSStats -> NodeFSTotalStats
+ Database.Bloodhound.Types: [nodeHTTPCurrentOpen] :: NodeHTTPStats -> Int
+ Database.Bloodhound.Types: [nodeHTTPMaxContentLength] :: NodeHTTPInfo -> Bytes
+ Database.Bloodhound.Types: [nodeHTTPTotalOpened] :: NodeHTTPStats -> Int
+ Database.Bloodhound.Types: [nodeHTTPbound_address] :: NodeHTTPInfo -> [EsAddress]
+ Database.Bloodhound.Types: [nodeHTTPpublishAddress] :: NodeHTTPInfo -> EsAddress
+ Database.Bloodhound.Types: [nodeIndicesStatsCompletionSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsDocsCount] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsDocsDeleted] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsFieldDataEvictions] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsFieldDataMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsFlushTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsFlushTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsGetCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsGetExistsTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsGetExistsTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsGetMissingTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsGetMissingTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsGetTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsGetTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingDeleteTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingIndexCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingIndexTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingIsThrottled] :: NodeIndicesStats -> Maybe Bool
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingNoopUpdateTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsIndexingTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesCurrentDocs] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesCurrentSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesTotalDocs] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesTotalSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsMergesTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsPercolateCurrent] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsPercolateMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsPercolateQueries] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsPercolateTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsPercolateTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsQueryCacheEvictions] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsQueryCacheHits] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsQueryCacheMisses] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsQueryCacheSize] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsSource] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsRecoveryCurrentAsTarget] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsRecoveryThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsRefreshTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsRefreshTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchFetchCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchFetchTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchFetchTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchOpenContexts] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchQueryCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchQueryTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsSearchQueryTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSegCount] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSegFixedBitSetMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMaxMemory] :: NodeIndicesStats -> Maybe Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsSegIndexWriterMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsSegMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsSegVersionMapMemory] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsStoreSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsStoreThrottleTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsSuggestCurrent] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsSuggestTime] :: NodeIndicesStats -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsSuggestTotal] :: NodeIndicesStats -> Maybe Int
+ Database.Bloodhound.Types: [nodeIndicesStatsTranslogOps] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsTranslogSize] :: NodeIndicesStats -> Bytes
+ Database.Bloodhound.Types: [nodeIndicesStatsWarmerCurrent] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeIndicesStatsWarmerTotalTime] :: NodeIndicesStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeIndicesStatsWarmerTotal] :: NodeIndicesStats -> Int
+ Database.Bloodhound.Types: [nodeInfoBuild] :: NodeInfo -> BuildHash
+ Database.Bloodhound.Types: [nodeInfoESVersion] :: NodeInfo -> VersionNumber
+ Database.Bloodhound.Types: [nodeInfoFullId] :: NodeInfo -> FullNodeId
+ Database.Bloodhound.Types: [nodeInfoHTTPAddress] :: NodeInfo -> Maybe EsAddress
+ Database.Bloodhound.Types: [nodeInfoHTTP] :: NodeInfo -> NodeHTTPInfo
+ Database.Bloodhound.Types: [nodeInfoHost] :: NodeInfo -> Server
+ Database.Bloodhound.Types: [nodeInfoIP] :: NodeInfo -> Server
+ Database.Bloodhound.Types: [nodeInfoJVM] :: NodeInfo -> NodeJVMInfo
+ Database.Bloodhound.Types: [nodeInfoName] :: NodeInfo -> NodeName
+ Database.Bloodhound.Types: [nodeInfoNetwork] :: NodeInfo -> Maybe NodeNetworkInfo
+ Database.Bloodhound.Types: [nodeInfoOS] :: NodeInfo -> NodeOSInfo
+ Database.Bloodhound.Types: [nodeInfoPlugins] :: NodeInfo -> [NodePluginInfo]
+ Database.Bloodhound.Types: [nodeInfoProcess] :: NodeInfo -> NodeProcessInfo
+ Database.Bloodhound.Types: [nodeInfoSettings] :: NodeInfo -> Object
+ Database.Bloodhound.Types: [nodeInfoThreadPool] :: NodeInfo -> Map Text NodeThreadPoolInfo
+ Database.Bloodhound.Types: [nodeInfoTransportAddress] :: NodeInfo -> EsAddress
+ Database.Bloodhound.Types: [nodeInfoTransport] :: NodeInfo -> NodeTransportInfo
+ Database.Bloodhound.Types: [nodeJVMInfoMemoryInfo] :: NodeJVMInfo -> JVMMemoryInfo
+ Database.Bloodhound.Types: [nodeJVMInfoMemoryPoolsGCCollectors] :: NodeJVMInfo -> [JVMGCCollector]
+ Database.Bloodhound.Types: [nodeJVMInfoMemoryPools] :: NodeJVMInfo -> [JVMMemoryPool]
+ Database.Bloodhound.Types: [nodeJVMInfoStartTime] :: NodeJVMInfo -> UTCTime
+ Database.Bloodhound.Types: [nodeJVMInfoVMVendor] :: NodeJVMInfo -> Text
+ Database.Bloodhound.Types: [nodeJVMPID] :: NodeJVMInfo -> PID
+ Database.Bloodhound.Types: [nodeJVMStatsDirectBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
+ Database.Bloodhound.Types: [nodeJVMStatsGCOldCollector] :: NodeJVMStats -> JVMGCStats
+ Database.Bloodhound.Types: [nodeJVMStatsGCYoungCollector] :: NodeJVMStats -> JVMGCStats
+ Database.Bloodhound.Types: [nodeJVMStatsHeapCommitted] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Types: [nodeJVMStatsHeapMax] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Types: [nodeJVMStatsHeapUsedPercent] :: NodeJVMStats -> Int
+ Database.Bloodhound.Types: [nodeJVMStatsHeapUsed] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Types: [nodeJVMStatsMappedBufferPool] :: NodeJVMStats -> JVMBufferPoolStats
+ Database.Bloodhound.Types: [nodeJVMStatsNonHeapCommitted] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Types: [nodeJVMStatsNonHeapUsed] :: NodeJVMStats -> Bytes
+ Database.Bloodhound.Types: [nodeJVMStatsOldPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Types: [nodeJVMStatsPeakThreadsCount] :: NodeJVMStats -> Int
+ Database.Bloodhound.Types: [nodeJVMStatsSurvivorPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Types: [nodeJVMStatsThreadsCount] :: NodeJVMStats -> Int
+ Database.Bloodhound.Types: [nodeJVMStatsTimestamp] :: NodeJVMStats -> UTCTime
+ Database.Bloodhound.Types: [nodeJVMStatsUptime] :: NodeJVMStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeJVMStatsYoungPool] :: NodeJVMStats -> JVMPoolStats
+ Database.Bloodhound.Types: [nodeJVMVMName] :: NodeJVMInfo -> Text
+ Database.Bloodhound.Types: [nodeJVMVMVersion] :: NodeJVMInfo -> VMVersion
+ Database.Bloodhound.Types: [nodeJVMVersion] :: NodeJVMInfo -> JVMVersion
+ Database.Bloodhound.Types: [nodeName] :: NodeName -> Text
+ Database.Bloodhound.Types: [nodeNetIfaceAddress] :: NodeNetworkInterface -> Server
+ Database.Bloodhound.Types: [nodeNetIfaceMacAddress] :: NodeNetworkInterface -> MacAddress
+ Database.Bloodhound.Types: [nodeNetIfaceName] :: NodeNetworkInterface -> NetworkInterfaceName
+ Database.Bloodhound.Types: [nodeNetTCPActiveOpens] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPAttemptFails] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPCurrEstab] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPEstabResets] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPInErrs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPInSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPOutRSTs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPOutSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPPassiveOpens] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetTCPRetransSegs] :: NodeNetworkStats -> Int
+ Database.Bloodhound.Types: [nodeNetworkPrimaryInterface] :: NodeNetworkInfo -> NodeNetworkInterface
+ Database.Bloodhound.Types: [nodeNetworkRefreshInterval] :: NodeNetworkInfo -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeOSAllocatedProcessors] :: NodeOSInfo -> Int
+ Database.Bloodhound.Types: [nodeOSArch] :: NodeOSInfo -> Text
+ Database.Bloodhound.Types: [nodeOSAvailableProcessors] :: NodeOSInfo -> Int
+ Database.Bloodhound.Types: [nodeOSCPUPercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Types: [nodeOSLoad] :: NodeOSStats -> Maybe LoadAvgs
+ Database.Bloodhound.Types: [nodeOSMemFreePercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Types: [nodeOSMemFree] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSMemTotal] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSMemUsedPercent] :: NodeOSStats -> Int
+ Database.Bloodhound.Types: [nodeOSMemUsed] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSName] :: NodeOSInfo -> Text
+ Database.Bloodhound.Types: [nodeOSRefreshInterval] :: NodeOSInfo -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeOSSwapFree] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSSwapTotal] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSSwapUsed] :: NodeOSStats -> Bytes
+ Database.Bloodhound.Types: [nodeOSTimestamp] :: NodeOSStats -> UTCTime
+ Database.Bloodhound.Types: [nodeOSVersion] :: NodeOSInfo -> VersionNumber
+ Database.Bloodhound.Types: [nodePluginDescription] :: NodePluginInfo -> Text
+ Database.Bloodhound.Types: [nodePluginJVM] :: NodePluginInfo -> Maybe Bool
+ Database.Bloodhound.Types: [nodePluginName] :: NodePluginInfo -> PluginName
+ Database.Bloodhound.Types: [nodePluginSite] :: NodePluginInfo -> Maybe Bool
+ Database.Bloodhound.Types: [nodePluginVersion] :: NodePluginInfo -> MaybeNA VersionNumber
+ Database.Bloodhound.Types: [nodeProcessCPUPercent] :: NodeProcessStats -> Int
+ Database.Bloodhound.Types: [nodeProcessCPUTotal] :: NodeProcessStats -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeProcessId] :: NodeProcessInfo -> PID
+ Database.Bloodhound.Types: [nodeProcessMLockAll] :: NodeProcessInfo -> Bool
+ Database.Bloodhound.Types: [nodeProcessMaxFDs] :: NodeProcessStats -> Int
+ Database.Bloodhound.Types: [nodeProcessMaxFileDescriptors] :: NodeProcessInfo -> Maybe Int
+ Database.Bloodhound.Types: [nodeProcessMemTotalVirtual] :: NodeProcessStats -> Bytes
+ Database.Bloodhound.Types: [nodeProcessOpenFDs] :: NodeProcessStats -> Int
+ Database.Bloodhound.Types: [nodeProcessRefreshInterval] :: NodeProcessInfo -> NominalDiffTime
+ Database.Bloodhound.Types: [nodeProcessTimestamp] :: NodeProcessStats -> UTCTime
+ Database.Bloodhound.Types: [nodeStatsBreakersStats] :: NodeStats -> Maybe NodeBreakersStats
+ Database.Bloodhound.Types: [nodeStatsFS] :: NodeStats -> NodeFSStats
+ Database.Bloodhound.Types: [nodeStatsFieldDataBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Types: [nodeStatsFullId] :: NodeStats -> FullNodeId
+ Database.Bloodhound.Types: [nodeStatsHTTP] :: NodeStats -> NodeHTTPStats
+ Database.Bloodhound.Types: [nodeStatsIndices] :: NodeStats -> NodeIndicesStats
+ Database.Bloodhound.Types: [nodeStatsJVM] :: NodeStats -> NodeJVMStats
+ Database.Bloodhound.Types: [nodeStatsName] :: NodeStats -> NodeName
+ Database.Bloodhound.Types: [nodeStatsNetwork] :: NodeStats -> Maybe NodeNetworkStats
+ Database.Bloodhound.Types: [nodeStatsOS] :: NodeStats -> NodeOSStats
+ Database.Bloodhound.Types: [nodeStatsParentBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Types: [nodeStatsProcess] :: NodeStats -> NodeProcessStats
+ Database.Bloodhound.Types: [nodeStatsRequestBreaker] :: NodeBreakersStats -> NodeBreakerStats
+ Database.Bloodhound.Types: [nodeStatsThreadPool] :: NodeStats -> Map Text NodeThreadPoolStats
+ Database.Bloodhound.Types: [nodeStatsTransport] :: NodeStats -> NodeTransportStats
+ Database.Bloodhound.Types: [nodeThreadPoolActive] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolCompleted] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolKeepalive] :: NodeThreadPoolInfo -> Maybe NominalDiffTime
+ Database.Bloodhound.Types: [nodeThreadPoolLargest] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolMax] :: NodeThreadPoolInfo -> Maybe Int
+ Database.Bloodhound.Types: [nodeThreadPoolMin] :: NodeThreadPoolInfo -> Maybe Int
+ Database.Bloodhound.Types: [nodeThreadPoolQueueSize] :: NodeThreadPoolInfo -> ThreadPoolSize
+ Database.Bloodhound.Types: [nodeThreadPoolQueue] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolRejected] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolThreads] :: NodeThreadPoolStats -> Int
+ Database.Bloodhound.Types: [nodeThreadPoolType] :: NodeThreadPoolInfo -> ThreadPoolType
+ Database.Bloodhound.Types: [nodeTransportBoundAddress] :: NodeTransportInfo -> [EsAddress]
+ Database.Bloodhound.Types: [nodeTransportCount] :: NodeTransportStats -> Int
+ Database.Bloodhound.Types: [nodeTransportProfiles] :: NodeTransportInfo -> [BoundTransportAddress]
+ Database.Bloodhound.Types: [nodeTransportPublishAddress] :: NodeTransportInfo -> EsAddress
+ Database.Bloodhound.Types: [nodeTransportRXCount] :: NodeTransportStats -> Int
+ Database.Bloodhound.Types: [nodeTransportRXSize] :: NodeTransportStats -> Bytes
+ Database.Bloodhound.Types: [nodeTransportServerOpen] :: NodeTransportStats -> Int
+ Database.Bloodhound.Types: [nodeTransportTXSize] :: NodeTransportStats -> Bytes
+ Database.Bloodhound.Types: [nodesClusterName] :: NodesInfo -> ClusterName
+ Database.Bloodhound.Types: [nodesInfo] :: NodesInfo -> [NodeInfo]
+ Database.Bloodhound.Types: [nodesStatsClusterName] :: NodesStats -> ClusterName
+ Database.Bloodhound.Types: [nodesStats] :: NodesStats -> [NodeStats]
+ Database.Bloodhound.Types: [nsrName] :: NamedSuggestionResponse -> Text
+ Database.Bloodhound.Types: [nsrResponses] :: NamedSuggestionResponse -> [SuggestResponse]
+ Database.Bloodhound.Types: [numberOfFragments] :: NonPostings -> Maybe Int
+ Database.Bloodhound.Types: [number] :: Version -> VersionNumber
+ Database.Bloodhound.Types: [onlyExpungeDeletes] :: ForceMergeIndexSettings -> Bool
+ Database.Bloodhound.Types: [order] :: CommonHighlight -> Maybe Text
+ Database.Bloodhound.Types: [params] :: SearchTemplate -> TemplateQueryKeyValuePairs
+ Database.Bloodhound.Types: [phraseLimit] :: FastVectorHighlight -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterAnalyzer] :: PhraseSuggester -> Maybe Analyzer
+ Database.Bloodhound.Types: [phraseSuggesterCandidateGenerators] :: PhraseSuggester -> [DirectGenerators]
+ Database.Bloodhound.Types: [phraseSuggesterCollateParams] :: PhraseSuggesterCollate -> TemplateQueryKeyValuePairs
+ Database.Bloodhound.Types: [phraseSuggesterCollatePrune] :: PhraseSuggesterCollate -> Bool
+ Database.Bloodhound.Types: [phraseSuggesterCollateTemplateQuery] :: PhraseSuggesterCollate -> Query
+ Database.Bloodhound.Types: [phraseSuggesterCollate] :: PhraseSuggester -> Maybe PhraseSuggesterCollate
+ Database.Bloodhound.Types: [phraseSuggesterConfidence] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterField] :: PhraseSuggester -> FieldName
+ Database.Bloodhound.Types: [phraseSuggesterGramSize] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterHighlight] :: PhraseSuggester -> Maybe PhraseSuggesterHighlighter
+ Database.Bloodhound.Types: [phraseSuggesterHighlighterPostTag] :: PhraseSuggesterHighlighter -> Text
+ Database.Bloodhound.Types: [phraseSuggesterHighlighterPreTag] :: PhraseSuggesterHighlighter -> Text
+ Database.Bloodhound.Types: [phraseSuggesterMaxErrors] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterRealWordErrorLikelihood] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterSeparator] :: PhraseSuggester -> Maybe Text
+ Database.Bloodhound.Types: [phraseSuggesterShardSize] :: PhraseSuggester -> Maybe Int
+ Database.Bloodhound.Types: [phraseSuggesterSize] :: PhraseSuggester -> Maybe Size
+ Database.Bloodhound.Types: [pid] :: PID -> Int
+ Database.Bloodhound.Types: [plainCommon] :: PlainHighlight -> Maybe CommonHighlight
+ Database.Bloodhound.Types: [plainNonPost] :: PlainHighlight -> Maybe NonPostings
+ Database.Bloodhound.Types: [pluginName] :: PluginName -> Text
+ Database.Bloodhound.Types: [positiveQuery] :: BoostingQuery -> Query
+ Database.Bloodhound.Types: [precisionThreshold] :: CardinalityAggregation -> Maybe Int
+ Database.Bloodhound.Types: [prefixQueryBoost] :: PrefixQuery -> Maybe Boost
+ Database.Bloodhound.Types: [prefixQueryField] :: PrefixQuery -> FieldName
+ Database.Bloodhound.Types: [prefixQueryPrefixValue] :: PrefixQuery -> Text
+ Database.Bloodhound.Types: [profileSearchTemplate] :: SearchTemplate -> Maybe Bool
+ Database.Bloodhound.Types: [publishAddress] :: BoundTransportAddress -> EsAddress
+ Database.Bloodhound.Types: [queryBody] :: Search -> Maybe Query
+ Database.Bloodhound.Types: [queryStringAllowLeadingWildcard] :: QueryStringQuery -> Maybe AllowLeadingWildcard
+ Database.Bloodhound.Types: [queryStringAnalyzeWildcard] :: QueryStringQuery -> Maybe AnalyzeWildcard
+ Database.Bloodhound.Types: [queryStringAnalyzer] :: QueryStringQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [queryStringBoost] :: QueryStringQuery -> Maybe Boost
+ Database.Bloodhound.Types: [queryStringDefaultField] :: QueryStringQuery -> Maybe FieldName
+ Database.Bloodhound.Types: [queryStringEnablePositionIncrements] :: QueryStringQuery -> Maybe EnablePositionIncrements
+ Database.Bloodhound.Types: [queryStringFuzziness] :: QueryStringQuery -> Maybe Fuzziness
+ Database.Bloodhound.Types: [queryStringFuzzyMaxExpansions] :: QueryStringQuery -> Maybe MaxExpansions
+ Database.Bloodhound.Types: [queryStringFuzzyPrefixLength] :: QueryStringQuery -> Maybe PrefixLength
+ Database.Bloodhound.Types: [queryStringGeneratePhraseQueries] :: QueryStringQuery -> Maybe GeneratePhraseQueries
+ Database.Bloodhound.Types: [queryStringLenient] :: QueryStringQuery -> Maybe Lenient
+ Database.Bloodhound.Types: [queryStringLocale] :: QueryStringQuery -> Maybe Locale
+ Database.Bloodhound.Types: [queryStringLowercaseExpanded] :: QueryStringQuery -> Maybe LowercaseExpanded
+ Database.Bloodhound.Types: [queryStringMinimumShouldMatch] :: QueryStringQuery -> Maybe MinimumMatch
+ Database.Bloodhound.Types: [queryStringOperator] :: QueryStringQuery -> Maybe BooleanOperator
+ Database.Bloodhound.Types: [queryStringPhraseSlop] :: QueryStringQuery -> Maybe PhraseSlop
+ Database.Bloodhound.Types: [queryStringQuery] :: QueryStringQuery -> QueryString
+ Database.Bloodhound.Types: [rangeQueryBoost] :: RangeQuery -> Boost
+ Database.Bloodhound.Types: [rangeQueryField] :: RangeQuery -> FieldName
+ Database.Bloodhound.Types: [rangeQueryRange] :: RangeQuery -> RangeValue
+ Database.Bloodhound.Types: [regexpQueryBoost] :: RegexpQuery -> Maybe Boost
+ Database.Bloodhound.Types: [regexpQueryField] :: RegexpQuery -> FieldName
+ Database.Bloodhound.Types: [regexpQueryFlags] :: RegexpQuery -> RegexpFlags
+ Database.Bloodhound.Types: [regexpQuery] :: RegexpQuery -> Regexp
+ Database.Bloodhound.Types: [relation] :: HitsTotal -> HitsTotalRelation
+ Database.Bloodhound.Types: [repoUpdateVerify] :: SnapshotRepoUpdateSettings -> Bool
+ Database.Bloodhound.Types: [requireFieldMatch] :: CommonHighlight -> Maybe Bool
+ Database.Bloodhound.Types: [restoreOverrideReplicas] :: RestoreIndexSettings -> Maybe ReplicaCount
+ Database.Bloodhound.Types: [routingValue] :: RoutingValue -> Text
+ Database.Bloodhound.Types: [rrPattern] :: RestoreRenamePattern -> Text
+ Database.Bloodhound.Types: [sSummaryFixedSettings] :: IndexSettingsSummary -> IndexSettings
+ Database.Bloodhound.Types: [sSummaryIndexName] :: IndexSettingsSummary -> IndexName
+ Database.Bloodhound.Types: [sSummaryUpdateable] :: IndexSettingsSummary -> [UpdatableIndexSetting]
+ Database.Bloodhound.Types: [scriptFields] :: Search -> Maybe ScriptFields
+ Database.Bloodhound.Types: [scriptLanguage] :: Script -> Maybe ScriptLanguage
+ Database.Bloodhound.Types: [scriptParams] :: Script -> Maybe ScriptParams
+ Database.Bloodhound.Types: [scriptSource] :: Script -> ScriptSource
+ Database.Bloodhound.Types: [scrollId] :: SearchResult a -> Maybe ScrollId
+ Database.Bloodhound.Types: [searchAfterKey] :: Search -> Maybe SearchAfterKey
+ Database.Bloodhound.Types: [searchHits] :: SearchResult a -> SearchHits a
+ Database.Bloodhound.Types: [searchTemplate] :: SearchTemplate -> Either SearchTemplateId SearchTemplateSource
+ Database.Bloodhound.Types: [searchType] :: Search -> SearchType
+ Database.Bloodhound.Types: [shardId] :: ShardId -> Int
+ Database.Bloodhound.Types: [shardTotal] :: ShardResult -> Int
+ Database.Bloodhound.Types: [shardsFailed] :: ShardResult -> Int
+ Database.Bloodhound.Types: [shardsSkipped] :: ShardResult -> Int
+ Database.Bloodhound.Types: [shardsSuccessful] :: ShardResult -> Int
+ Database.Bloodhound.Types: [shards] :: SearchResult a -> ShardResult
+ Database.Bloodhound.Types: [shingleFillerToken] :: Shingle -> Text
+ Database.Bloodhound.Types: [shingleMaxSize] :: Shingle -> Int
+ Database.Bloodhound.Types: [shingleMinSize] :: Shingle -> Int
+ Database.Bloodhound.Types: [shingleOutputUnigramsIfNoShingles] :: Shingle -> Bool
+ Database.Bloodhound.Types: [shingleOutputUnigrams] :: Shingle -> Bool
+ Database.Bloodhound.Types: [shingleTokenSeparator] :: Shingle -> Text
+ Database.Bloodhound.Types: [simpleQueryStringAnalyzer] :: SimpleQueryStringQuery -> Maybe Analyzer
+ Database.Bloodhound.Types: [simpleQueryStringField] :: SimpleQueryStringQuery -> Maybe FieldOrFields
+ Database.Bloodhound.Types: [simpleQueryStringFlags] :: SimpleQueryStringQuery -> Maybe (NonEmpty SimpleQueryFlag)
+ Database.Bloodhound.Types: [simpleQueryStringLocale] :: SimpleQueryStringQuery -> Maybe Locale
+ Database.Bloodhound.Types: [simpleQueryStringLowercaseExpanded] :: SimpleQueryStringQuery -> Maybe LowercaseExpanded
+ Database.Bloodhound.Types: [simpleQueryStringOperator] :: SimpleQueryStringQuery -> Maybe BooleanOperator
+ Database.Bloodhound.Types: [simpleQueryStringQuery] :: SimpleQueryStringQuery -> QueryString
+ Database.Bloodhound.Types: [size] :: Search -> Size
+ Database.Bloodhound.Types: [snapIgnoreUnavailable] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Types: [snapIncludeGlobalState] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Types: [snapIndices] :: SnapshotCreateSettings -> Maybe IndexSelection
+ Database.Bloodhound.Types: [snapInfoDuration] :: SnapshotInfo -> NominalDiffTime
+ Database.Bloodhound.Types: [snapInfoEndTime] :: SnapshotInfo -> UTCTime
+ Database.Bloodhound.Types: [snapInfoFailures] :: SnapshotInfo -> [SnapshotShardFailure]
+ Database.Bloodhound.Types: [snapInfoIndices] :: SnapshotInfo -> [IndexName]
+ Database.Bloodhound.Types: [snapInfoName] :: SnapshotInfo -> SnapshotName
+ Database.Bloodhound.Types: [snapInfoShards] :: SnapshotInfo -> ShardResult
+ Database.Bloodhound.Types: [snapInfoStartTime] :: SnapshotInfo -> UTCTime
+ Database.Bloodhound.Types: [snapInfoState] :: SnapshotInfo -> SnapshotState
+ Database.Bloodhound.Types: [snapPartial] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Types: [snapRestoreIgnoreIndexSettings] :: SnapshotRestoreSettings -> Maybe (NonEmpty Text)
+ Database.Bloodhound.Types: [snapRestoreIgnoreUnavailable] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Types: [snapRestoreIncludeAliases] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Types: [snapRestoreIncludeGlobalState] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Types: [snapRestoreIndexSettingsOverrides] :: SnapshotRestoreSettings -> Maybe RestoreIndexSettings
+ Database.Bloodhound.Types: [snapRestoreIndices] :: SnapshotRestoreSettings -> Maybe IndexSelection
+ Database.Bloodhound.Types: [snapRestorePartial] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Types: [snapRestoreRenamePattern] :: SnapshotRestoreSettings -> Maybe RestoreRenamePattern
+ Database.Bloodhound.Types: [snapRestoreRenameReplacement] :: SnapshotRestoreSettings -> Maybe (NonEmpty RestoreRenameToken)
+ Database.Bloodhound.Types: [snapRestoreWaitForCompletion] :: SnapshotRestoreSettings -> Bool
+ Database.Bloodhound.Types: [snapShardFailureIndex] :: SnapshotShardFailure -> IndexName
+ Database.Bloodhound.Types: [snapShardFailureNodeId] :: SnapshotShardFailure -> Maybe NodeName
+ Database.Bloodhound.Types: [snapShardFailureReason] :: SnapshotShardFailure -> Text
+ Database.Bloodhound.Types: [snapShardFailureShardId] :: SnapshotShardFailure -> ShardId
+ Database.Bloodhound.Types: [snapWaitForCompletion] :: SnapshotCreateSettings -> Bool
+ Database.Bloodhound.Types: [snapshotName] :: SnapshotName -> Text
+ Database.Bloodhound.Types: [snapshotNodeVerifications] :: SnapshotVerification -> [SnapshotNodeVerification]
+ Database.Bloodhound.Types: [snapshotRepoName] :: SnapshotRepoName -> Text
+ Database.Bloodhound.Types: [snapshotRepoType] :: SnapshotRepoType -> Text
+ Database.Bloodhound.Types: [snvFullId] :: SnapshotNodeVerification -> FullNodeId
+ Database.Bloodhound.Types: [snvNodeName] :: SnapshotNodeVerification -> NodeName
+ Database.Bloodhound.Types: [sortBody] :: Search -> Maybe Sort
+ Database.Bloodhound.Types: [sortFieldName] :: DefaultSort -> FieldName
+ Database.Bloodhound.Types: [sortMode] :: DefaultSort -> Maybe SortMode
+ Database.Bloodhound.Types: [sortOrder] :: DefaultSort -> SortOrder
+ Database.Bloodhound.Types: [source] :: Search -> Maybe Source
+ Database.Bloodhound.Types: [srcIndex] :: IndexAlias -> IndexName
+ Database.Bloodhound.Types: [statsField] :: StatisticsAggregation -> FieldName
+ Database.Bloodhound.Types: [statsType] :: StatisticsAggregation -> StatsType
+ Database.Bloodhound.Types: [suggestBody] :: Search -> Maybe Suggest
+ Database.Bloodhound.Types: [suggestName] :: Suggest -> Text
+ Database.Bloodhound.Types: [suggestOptionsFreq] :: SuggestOptions -> Maybe Int
+ Database.Bloodhound.Types: [suggestOptionsHighlighted] :: SuggestOptions -> Maybe Text
+ Database.Bloodhound.Types: [suggestOptionsScore] :: SuggestOptions -> Double
+ Database.Bloodhound.Types: [suggestOptionsText] :: SuggestOptions -> Text
+ Database.Bloodhound.Types: [suggestResponseLength] :: SuggestResponse -> Int
+ Database.Bloodhound.Types: [suggestResponseOffset] :: SuggestResponse -> Int
+ Database.Bloodhound.Types: [suggestResponseOptions] :: SuggestResponse -> [SuggestOptions]
+ Database.Bloodhound.Types: [suggestResponseText] :: SuggestResponse -> Text
+ Database.Bloodhound.Types: [suggestText] :: Suggest -> Text
+ Database.Bloodhound.Types: [suggestType] :: Suggest -> SuggestType
+ Database.Bloodhound.Types: [suggest] :: SearchResult a -> Maybe NamedSuggestionResponse
+ Database.Bloodhound.Types: [taFrom] :: TopHitsAggregation -> Maybe From
+ Database.Bloodhound.Types: [taSize] :: TopHitsAggregation -> Maybe Size
+ Database.Bloodhound.Types: [taSort] :: TopHitsAggregation -> Maybe Sort
+ Database.Bloodhound.Types: [tag] :: CommonHighlight -> Maybe HighlightTag
+ Database.Bloodhound.Types: [tagline] :: Status -> Text
+ Database.Bloodhound.Types: [tarHits] :: TopHitResult a -> SearchHits a
+ Database.Bloodhound.Types: [templateMappings] :: IndexTemplate -> Value
+ Database.Bloodhound.Types: [templatePatterns] :: IndexTemplate -> [IndexPattern]
+ Database.Bloodhound.Types: [templateSettings] :: IndexTemplate -> Maybe IndexSettings
+ Database.Bloodhound.Types: [termAggs] :: TermsAggregation -> Maybe Aggregations
+ Database.Bloodhound.Types: [termCollectMode] :: TermsAggregation -> Maybe CollectionMode
+ Database.Bloodhound.Types: [termExclude] :: TermsAggregation -> Maybe TermInclusion
+ Database.Bloodhound.Types: [termExecutionHint] :: TermsAggregation -> Maybe ExecutionHint
+ Database.Bloodhound.Types: [termField] :: Term -> Text
+ Database.Bloodhound.Types: [termInclude] :: TermsAggregation -> Maybe TermInclusion
+ Database.Bloodhound.Types: [termKey] :: TermsResult -> BucketValue
+ Database.Bloodhound.Types: [termMinDocCount] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Types: [termOrder] :: TermsAggregation -> Maybe TermOrder
+ Database.Bloodhound.Types: [termShardSize] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Types: [termSize] :: TermsAggregation -> Maybe Int
+ Database.Bloodhound.Types: [termSortField] :: TermOrder -> Text
+ Database.Bloodhound.Types: [termSortOrder] :: TermOrder -> SortOrder
+ Database.Bloodhound.Types: [termValue] :: Term -> Text
+ Database.Bloodhound.Types: [term] :: TermsAggregation -> Either Text Text
+ Database.Bloodhound.Types: [termsAggs] :: TermsResult -> Maybe AggregationResults
+ Database.Bloodhound.Types: [termsDocCount] :: TermsResult -> Int
+ Database.Bloodhound.Types: [timedOut] :: SearchResult a -> Bool
+ Database.Bloodhound.Types: [took] :: SearchResult a -> Int
+ Database.Bloodhound.Types: [topLeft] :: GeoBoundingBox -> LatLon
+ Database.Bloodhound.Types: [trackSortScores] :: Search -> TrackSortScores
+ Database.Bloodhound.Types: [unBH] :: BH m a -> ReaderT BHEnv m a
+ Database.Bloodhound.Types: [unFilter] :: Filter -> Query
+ Database.Bloodhound.Types: [unMaybeNA] :: MaybeNA a -> Maybe a
+ Database.Bloodhound.Types: [unit] :: Distance -> DistanceUnit
+ Database.Bloodhound.Types: [value] :: HitsTotal -> Int
+ Database.Bloodhound.Types: [versionNumber] :: VersionNumber -> Version
+ Database.Bloodhound.Types: [version] :: Status -> Version
+ Database.Bloodhound.Types: [wildcardQueryBoost] :: WildcardQuery -> Maybe Boost
+ Database.Bloodhound.Types: [wildcardQueryField] :: WildcardQuery -> FieldName
+ Database.Bloodhound.Types: [wildcardQuery] :: WildcardQuery -> Text
+ Database.Bloodhound.Types: aggs :: BucketAggregation a => a -> Maybe AggregationResults
+ Database.Bloodhound.Types: bhManager :: BHEnv -> Manager
+ Database.Bloodhound.Types: bhRequestHook :: BHEnv -> Request -> IO Request
+ Database.Bloodhound.Types: bhServer :: BHEnv -> Server
+ Database.Bloodhound.Types: buildUpsertActionMetadata :: UpsertActionMetadata -> Pair
+ Database.Bloodhound.Types: class BucketAggregation a
+ Database.Bloodhound.Types: class (Functor m, Applicative m, MonadIO m) => MonadBH m
+ Database.Bloodhound.Types: class Semigroup a => Monoid a
+ Database.Bloodhound.Types: class SnapshotRepo r
+ Database.Bloodhound.Types: class ToJSON a
+ Database.Bloodhound.Types: data Aggregation
+ Database.Bloodhound.Types: data AliasRouting
+ Database.Bloodhound.Types: data AllocationPolicy
+ Database.Bloodhound.Types: data Analysis
+ Database.Bloodhound.Types: data AnalyzerDefinition
+ Database.Bloodhound.Types: data BHEnv
+ Database.Bloodhound.Types: data BoolMatch
+ Database.Bloodhound.Types: data BoolQuery
+ Database.Bloodhound.Types: data BooleanOperator
+ Database.Bloodhound.Types: data BoostMode
+ Database.Bloodhound.Types: data BoostingQuery
+ Database.Bloodhound.Types: data BoundTransportAddress
+ Database.Bloodhound.Types: data Bucket a
+ Database.Bloodhound.Types: data BucketValue
+ Database.Bloodhound.Types: data BulkOperation
+ Database.Bloodhound.Types: data CPUInfo
+ Database.Bloodhound.Types: data CardinalityAggregation
+ Database.Bloodhound.Types: data CharFilterDefinition
+ Database.Bloodhound.Types: data CollectionMode
+ Database.Bloodhound.Types: data CommonHighlight
+ Database.Bloodhound.Types: data CommonMinimumMatch
+ Database.Bloodhound.Types: data CommonTermsQuery
+ Database.Bloodhound.Types: data ComponentFunctionScoreFunction
+ Database.Bloodhound.Types: data CompoundFormat
+ Database.Bloodhound.Types: data Compression
+ Database.Bloodhound.Types: data CountResponse
+ Database.Bloodhound.Types: data CountShards
+ Database.Bloodhound.Types: data DateHistogramAggregation
+ Database.Bloodhound.Types: data DateHistogramResult
+ Database.Bloodhound.Types: data DateMathAnchor
+ Database.Bloodhound.Types: data DateMathExpr
+ Database.Bloodhound.Types: data DateMathModifier
+ Database.Bloodhound.Types: data DateMathUnit
+ Database.Bloodhound.Types: data DateRangeAggRange
+ Database.Bloodhound.Types: data DateRangeAggregation
+ Database.Bloodhound.Types: data DateRangeResult
+ Database.Bloodhound.Types: data DefaultSort
+ Database.Bloodhound.Types: data DirectGeneratorSuggestModeTypes
+ Database.Bloodhound.Types: data DirectGenerators
+ Database.Bloodhound.Types: data DisMaxQuery
+ Database.Bloodhound.Types: data Distance
+ Database.Bloodhound.Types: data DistanceRange
+ Database.Bloodhound.Types: data DistanceType
+ Database.Bloodhound.Types: data DistanceUnit
+ Database.Bloodhound.Types: data DocVersion
+ Database.Bloodhound.Types: data EsError
+ Database.Bloodhound.Types: data EsProtocolException
+ Database.Bloodhound.Types: data EsResult a
+ Database.Bloodhound.Types: data EsResultFound a
+ Database.Bloodhound.Types: data Exclude
+ Database.Bloodhound.Types: data ExecutionHint
+ Database.Bloodhound.Types: data FSType
+ Database.Bloodhound.Types: data FactorModifier
+ Database.Bloodhound.Types: data FastVectorHighlight
+ Database.Bloodhound.Types: data FieldHighlight
+ Database.Bloodhound.Types: data FieldOrFields
+ Database.Bloodhound.Types: data FieldValueFactor
+ Database.Bloodhound.Types: data FilterAggregation
+ Database.Bloodhound.Types: data ForceMergeIndexSettings
+ Database.Bloodhound.Types: data FsSnapshotRepo
+ Database.Bloodhound.Types: data FunctionScoreFunction
+ Database.Bloodhound.Types: data FunctionScoreFunctions
+ Database.Bloodhound.Types: data FunctionScoreQuery
+ Database.Bloodhound.Types: data Fuzziness
+ Database.Bloodhound.Types: data FuzzyLikeFieldQuery
+ Database.Bloodhound.Types: data FuzzyLikeThisQuery
+ Database.Bloodhound.Types: data FuzzyQuery
+ Database.Bloodhound.Types: data GenericSnapshotRepo
+ Database.Bloodhound.Types: data GeoBoundingBox
+ Database.Bloodhound.Types: data GeoBoundingBoxConstraint
+ Database.Bloodhound.Types: data GeoFilterType
+ Database.Bloodhound.Types: data GeoPoint
+ Database.Bloodhound.Types: data GetTemplateScript
+ Database.Bloodhound.Types: data HasChildQuery
+ Database.Bloodhound.Types: data HasParentQuery
+ Database.Bloodhound.Types: data HighlightEncoder
+ Database.Bloodhound.Types: data HighlightSettings
+ Database.Bloodhound.Types: data HighlightTag
+ Database.Bloodhound.Types: data Highlights
+ Database.Bloodhound.Types: data Hit a
+ Database.Bloodhound.Types: data HitsTotal
+ Database.Bloodhound.Types: data HitsTotalRelation
+ Database.Bloodhound.Types: data Include
+ Database.Bloodhound.Types: data IndexAlias
+ Database.Bloodhound.Types: data IndexAliasAction
+ Database.Bloodhound.Types: data IndexAliasCreate
+ Database.Bloodhound.Types: data IndexAliasSummary
+ Database.Bloodhound.Types: data IndexDocumentSettings
+ Database.Bloodhound.Types: data IndexSelection
+ Database.Bloodhound.Types: data IndexSettings
+ Database.Bloodhound.Types: data IndexSettingsSummary
+ Database.Bloodhound.Types: data IndexTemplate
+ Database.Bloodhound.Types: data IndicesQuery
+ Database.Bloodhound.Types: data InitialShardCount
+ Database.Bloodhound.Types: data Interval
+ Database.Bloodhound.Types: data JVMBufferPoolStats
+ Database.Bloodhound.Types: data JVMGCStats
+ Database.Bloodhound.Types: data JVMMemoryInfo
+ Database.Bloodhound.Types: data JVMPoolStats
+ Database.Bloodhound.Types: data JoinRelation
+ Database.Bloodhound.Types: data Language
+ Database.Bloodhound.Types: data LatLon
+ Database.Bloodhound.Types: data LoadAvgs
+ Database.Bloodhound.Types: data MappingField
+ Database.Bloodhound.Types: data MatchQuery
+ Database.Bloodhound.Types: data MatchQueryType
+ Database.Bloodhound.Types: data MinimumMatchHighLow
+ Database.Bloodhound.Types: data Missing
+ Database.Bloodhound.Types: data MissingAggregation
+ Database.Bloodhound.Types: data MissingResult
+ Database.Bloodhound.Types: data MoreLikeThisFieldQuery
+ Database.Bloodhound.Types: data MoreLikeThisQuery
+ Database.Bloodhound.Types: data MultiMatchQuery
+ Database.Bloodhound.Types: data MultiMatchQueryType
+ Database.Bloodhound.Types: data NamedSuggestionResponse
+ Database.Bloodhound.Types: data NestedQuery
+ Database.Bloodhound.Types: data Ngram
+ Database.Bloodhound.Types: data NodeAttrFilter
+ Database.Bloodhound.Types: data NodeBreakerStats
+ Database.Bloodhound.Types: data NodeBreakersStats
+ Database.Bloodhound.Types: data NodeDataPathStats
+ Database.Bloodhound.Types: data NodeFSStats
+ Database.Bloodhound.Types: data NodeFSTotalStats
+ Database.Bloodhound.Types: data NodeHTTPInfo
+ Database.Bloodhound.Types: data NodeHTTPStats
+ Database.Bloodhound.Types: data NodeIndicesStats
+ Database.Bloodhound.Types: data NodeInfo
+ Database.Bloodhound.Types: data NodeJVMInfo
+ Database.Bloodhound.Types: data NodeJVMStats
+ Database.Bloodhound.Types: data NodeNetworkInfo
+ Database.Bloodhound.Types: data NodeNetworkInterface
+ Database.Bloodhound.Types: data NodeNetworkStats
+ Database.Bloodhound.Types: data NodeOSInfo
+ Database.Bloodhound.Types: data NodeOSStats
+ Database.Bloodhound.Types: data NodePluginInfo
+ Database.Bloodhound.Types: data NodeProcessInfo
+ Database.Bloodhound.Types: data NodeProcessStats
+ Database.Bloodhound.Types: data NodeSelection
+ Database.Bloodhound.Types: data NodeSelector
+ Database.Bloodhound.Types: data NodeStats
+ Database.Bloodhound.Types: data NodeThreadPoolInfo
+ Database.Bloodhound.Types: data NodeThreadPoolStats
+ Database.Bloodhound.Types: data NodeTransportInfo
+ Database.Bloodhound.Types: data NodeTransportStats
+ Database.Bloodhound.Types: data NodesInfo
+ Database.Bloodhound.Types: data NodesStats
+ Database.Bloodhound.Types: data NonPostings
+ Database.Bloodhound.Types: data OpenCloseIndex
+ Database.Bloodhound.Types: data OptimizeBbox
+ Database.Bloodhound.Types: data PatternOrPatterns
+ Database.Bloodhound.Types: data PhraseSuggester
+ Database.Bloodhound.Types: data PhraseSuggesterCollate
+ Database.Bloodhound.Types: data PhraseSuggesterHighlighter
+ Database.Bloodhound.Types: data PlainHighlight
+ Database.Bloodhound.Types: data PostingsHighlight
+ Database.Bloodhound.Types: data PrefixQuery
+ Database.Bloodhound.Types: data Query
+ Database.Bloodhound.Types: data QueryStringQuery
+ Database.Bloodhound.Types: data RRGroupRefNum
+ Database.Bloodhound.Types: data RangeExecution
+ Database.Bloodhound.Types: data RangeQuery
+ Database.Bloodhound.Types: data RangeValue
+ Database.Bloodhound.Types: data RegexpFlag
+ Database.Bloodhound.Types: data RegexpFlags
+ Database.Bloodhound.Types: data RegexpQuery
+ Database.Bloodhound.Types: data ReplicaBounds
+ Database.Bloodhound.Types: data RestoreRenameToken
+ Database.Bloodhound.Types: data ScoreMode
+ Database.Bloodhound.Types: data ScoreType
+ Database.Bloodhound.Types: data Script
+ Database.Bloodhound.Types: data ScriptSource
+ Database.Bloodhound.Types: data Search
+ Database.Bloodhound.Types: data SearchHits a
+ Database.Bloodhound.Types: data SearchResult a
+ Database.Bloodhound.Types: data SearchTemplate
+ Database.Bloodhound.Types: data SearchType
+ Database.Bloodhound.Types: data ShardResult
+ Database.Bloodhound.Types: data Shingle
+ Database.Bloodhound.Types: data SimpleQueryFlag
+ Database.Bloodhound.Types: data SimpleQueryStringQuery
+ Database.Bloodhound.Types: data SnapshotCreateSettings
+ Database.Bloodhound.Types: data SnapshotInfo
+ Database.Bloodhound.Types: data SnapshotNodeVerification
+ Database.Bloodhound.Types: data SnapshotPattern
+ Database.Bloodhound.Types: data SnapshotRepoConversionError
+ Database.Bloodhound.Types: data SnapshotRepoPattern
+ Database.Bloodhound.Types: data SnapshotRepoSelection
+ Database.Bloodhound.Types: data SnapshotRestoreSettings
+ Database.Bloodhound.Types: data SnapshotSelection
+ Database.Bloodhound.Types: data SnapshotShardFailure
+ Database.Bloodhound.Types: data SnapshotState
+ Database.Bloodhound.Types: data SortMode
+ Database.Bloodhound.Types: data SortOrder
+ Database.Bloodhound.Types: data SortSpec
+ Database.Bloodhound.Types: data Source
+ Database.Bloodhound.Types: data StatisticsAggregation
+ Database.Bloodhound.Types: data Status
+ Database.Bloodhound.Types: data Suggest
+ Database.Bloodhound.Types: data SuggestOptions
+ Database.Bloodhound.Types: data SuggestResponse
+ Database.Bloodhound.Types: data SuggestType
+ Database.Bloodhound.Types: data Term
+ Database.Bloodhound.Types: data TermInclusion
+ Database.Bloodhound.Types: data TermOrder
+ Database.Bloodhound.Types: data TermsAggregation
+ Database.Bloodhound.Types: data TermsResult
+ Database.Bloodhound.Types: data ThreadPoolSize
+ Database.Bloodhound.Types: data ThreadPoolType
+ Database.Bloodhound.Types: data TimeInterval
+ Database.Bloodhound.Types: data TokenChar
+ Database.Bloodhound.Types: data TokenFilterDefinition
+ Database.Bloodhound.Types: data TopHitResult a
+ Database.Bloodhound.Types: data TopHitsAggregation
+ Database.Bloodhound.Types: data UpdatableIndexSetting
+ Database.Bloodhound.Types: data UpsertActionMetadata
+ Database.Bloodhound.Types: data UpsertPayload
+ Database.Bloodhound.Types: data ValueCountAggregation
+ Database.Bloodhound.Types: data Version
+ Database.Bloodhound.Types: data VersionControl
+ Database.Bloodhound.Types: data WildcardQuery
+ Database.Bloodhound.Types: data ZeroTermsQuery
+ Database.Bloodhound.Types: defaultCache :: Cache
+ Database.Bloodhound.Types: defaultForceMergeIndexSettings :: ForceMergeIndexSettings
+ Database.Bloodhound.Types: defaultIndexDocumentSettings :: IndexDocumentSettings
+ Database.Bloodhound.Types: defaultIndexSettings :: IndexSettings
+ Database.Bloodhound.Types: defaultSnapshotCreateSettings :: SnapshotCreateSettings
+ Database.Bloodhound.Types: defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings
+ Database.Bloodhound.Types: defaultSnapshotRestoreSettings :: SnapshotRestoreSettings
+ Database.Bloodhound.Types: docCount :: BucketAggregation a => a -> Int
+ Database.Bloodhound.Types: docVersionNumber :: DocVersion -> Int
+ Database.Bloodhound.Types: fromGSnapshotRepo :: SnapshotRepo r => GenericSnapshotRepo -> Either SnapshotRepoConversionError r
+ Database.Bloodhound.Types: getBHEnv :: MonadBH m => m BHEnv
+ Database.Bloodhound.Types: gigabytes :: Int -> Bytes
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.ExpandWildcards
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.GetTemplateScript
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.ScrollId
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.SearchTemplateSource
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.SearchType
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON Database.Bloodhound.Types.TimeUnits
+ Database.Bloodhound.Types: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Database.Bloodhound.Types.SearchResult a)
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.Exclude
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.ExpandWildcards
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.Include
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.Pattern
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.PatternOrPatterns
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.ScrollId
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.Search
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.SearchTemplate
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.SearchTemplateId
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.SearchTemplateSource
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.SearchType
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.Source
+ Database.Bloodhound.Types: instance Data.Aeson.Types.ToJSON.ToJSON Database.Bloodhound.Types.TimeUnits
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.Exclude
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.ExpandWildcards
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.GetTemplateScript
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.Include
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.Pattern
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.PatternOrPatterns
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.ScrollId
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.Search
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.SearchTemplate
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.SearchTemplateId
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.SearchTemplateSource
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.SearchType
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.Source
+ Database.Bloodhound.Types: instance GHC.Classes.Eq Database.Bloodhound.Types.TimeUnits
+ Database.Bloodhound.Types: instance GHC.Classes.Eq a => GHC.Classes.Eq (Database.Bloodhound.Types.SearchResult a)
+ Database.Bloodhound.Types: instance GHC.Classes.Ord Database.Bloodhound.Types.ScrollId
+ Database.Bloodhound.Types: instance GHC.Read.Read Database.Bloodhound.Types.Exclude
+ Database.Bloodhound.Types: instance GHC.Read.Read Database.Bloodhound.Types.Include
+ Database.Bloodhound.Types: instance GHC.Read.Read Database.Bloodhound.Types.Pattern
+ Database.Bloodhound.Types: instance GHC.Read.Read Database.Bloodhound.Types.PatternOrPatterns
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.Exclude
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.ExpandWildcards
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.GetTemplateScript
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.Include
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.Pattern
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.PatternOrPatterns
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.ScrollId
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.Search
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.SearchTemplate
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.SearchTemplateId
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.SearchTemplateSource
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.SearchType
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.Source
+ Database.Bloodhound.Types: instance GHC.Show.Show Database.Bloodhound.Types.TimeUnits
+ Database.Bloodhound.Types: instance GHC.Show.Show a => GHC.Show.Show (Database.Bloodhound.Types.SearchResult a)
+ Database.Bloodhound.Types: key :: BucketAggregation a => a -> BucketValue
+ Database.Bloodhound.Types: kilobytes :: Int -> Bytes
+ Database.Bloodhound.Types: mappend :: Monoid a => a -> a -> a
+ Database.Bloodhound.Types: mconcat :: Monoid a => [a] -> a
+ Database.Bloodhound.Types: megabytes :: Int -> Bytes
+ Database.Bloodhound.Types: mempty :: Monoid a => a
+ Database.Bloodhound.Types: mkAggregations :: Text -> Aggregation -> Aggregations
+ Database.Bloodhound.Types: mkBHEnv :: Server -> Manager -> BHEnv
+ Database.Bloodhound.Types: mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery
+ Database.Bloodhound.Types: mkCardinalityAggregation :: FieldName -> CardinalityAggregation
+ Database.Bloodhound.Types: mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation
+ Database.Bloodhound.Types: mkDirectGenerators :: FieldName -> DirectGenerators
+ Database.Bloodhound.Types: mkDocVersion :: Int -> Maybe DocVersion
+ Database.Bloodhound.Types: mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation
+ Database.Bloodhound.Types: mkMatchQuery :: FieldName -> QueryString -> MatchQuery
+ Database.Bloodhound.Types: mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery
+ Database.Bloodhound.Types: mkPhraseSuggester :: FieldName -> PhraseSuggester
+ Database.Bloodhound.Types: mkQueryStringQuery :: QueryString -> QueryStringQuery
+ Database.Bloodhound.Types: mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum
+ Database.Bloodhound.Types: mkRangeQuery :: FieldName -> RangeValue -> RangeQuery
+ Database.Bloodhound.Types: mkSort :: FieldName -> SortOrder -> DefaultSort
+ Database.Bloodhound.Types: mkStatsAggregation :: FieldName -> StatisticsAggregation
+ Database.Bloodhound.Types: mkTermsAggregation :: Text -> TermsAggregation
+ Database.Bloodhound.Types: mkTermsScriptAggregation :: Text -> TermsAggregation
+ Database.Bloodhound.Types: newtype AggregateParentScore
+ Database.Bloodhound.Types: newtype AllowLeadingWildcard
+ Database.Bloodhound.Types: newtype AnalyzeWildcard
+ Database.Bloodhound.Types: newtype Analyzer
+ Database.Bloodhound.Types: newtype BH m a
+ Database.Bloodhound.Types: newtype Boost
+ Database.Bloodhound.Types: newtype BoostTerms
+ Database.Bloodhound.Types: newtype BuildHash
+ Database.Bloodhound.Types: newtype Bytes
+ Database.Bloodhound.Types: newtype CacheKey
+ Database.Bloodhound.Types: newtype CacheName
+ Database.Bloodhound.Types: newtype CharFilter
+ Database.Bloodhound.Types: newtype ClusterName
+ Database.Bloodhound.Types: newtype CountQuery
+ Database.Bloodhound.Types: newtype CutoffFrequency
+ Database.Bloodhound.Types: newtype DisableCoord
+ Database.Bloodhound.Types: newtype DocId
+ Database.Bloodhound.Types: newtype EnablePositionIncrements
+ Database.Bloodhound.Types: newtype EsAddress
+ Database.Bloodhound.Types: newtype EsPassword
+ Database.Bloodhound.Types: newtype EsUsername
+ Database.Bloodhound.Types: newtype Existence
+ Database.Bloodhound.Types: newtype ExternalDocVersion
+ Database.Bloodhound.Types: newtype Factor
+ Database.Bloodhound.Types: newtype FactorMissingFieldValue
+ Database.Bloodhound.Types: newtype FieldDefinition
+ Database.Bloodhound.Types: newtype FieldName
+ Database.Bloodhound.Types: newtype Filter
+ Database.Bloodhound.Types: newtype From
+ Database.Bloodhound.Types: newtype FullNodeId
+ Database.Bloodhound.Types: newtype GeneratePhraseQueries
+ Database.Bloodhound.Types: newtype GenericSnapshotRepoSettings
+ Database.Bloodhound.Types: newtype GreaterThan
+ Database.Bloodhound.Types: newtype GreaterThanD
+ Database.Bloodhound.Types: newtype GreaterThanEq
+ Database.Bloodhound.Types: newtype GreaterThanEqD
+ Database.Bloodhound.Types: newtype HitFields
+ Database.Bloodhound.Types: newtype IgnoreTermFrequency
+ Database.Bloodhound.Types: newtype IgnoreUnmapped
+ Database.Bloodhound.Types: newtype IndexAliasName
+ Database.Bloodhound.Types: newtype IndexAliasRouting
+ Database.Bloodhound.Types: newtype IndexAliasesSummary
+ Database.Bloodhound.Types: newtype IndexName
+ Database.Bloodhound.Types: newtype IndexPattern
+ Database.Bloodhound.Types: newtype JVMGCCollector
+ Database.Bloodhound.Types: newtype JVMMemoryPool
+ Database.Bloodhound.Types: newtype Lenient
+ Database.Bloodhound.Types: newtype LessThan
+ Database.Bloodhound.Types: newtype LessThanD
+ Database.Bloodhound.Types: newtype LessThanEq
+ Database.Bloodhound.Types: newtype LessThanEqD
+ Database.Bloodhound.Types: newtype Locale
+ Database.Bloodhound.Types: newtype LowercaseExpanded
+ Database.Bloodhound.Types: newtype MacAddress
+ Database.Bloodhound.Types: newtype Mapping
+ Database.Bloodhound.Types: newtype MaxChildren
+ Database.Bloodhound.Types: newtype MaxDocFrequency
+ Database.Bloodhound.Types: newtype MaxExpansions
+ Database.Bloodhound.Types: newtype MaxQueryTerms
+ Database.Bloodhound.Types: newtype MaxWordLength
+ Database.Bloodhound.Types: newtype MaybeNA a
+ Database.Bloodhound.Types: newtype MinChildren
+ Database.Bloodhound.Types: newtype MinDocFrequency
+ Database.Bloodhound.Types: newtype MinWordLength
+ Database.Bloodhound.Types: newtype MinimumMatch
+ Database.Bloodhound.Types: newtype MinimumTermFrequency
+ Database.Bloodhound.Types: newtype NetworkInterfaceName
+ Database.Bloodhound.Types: newtype NodeAttrName
+ Database.Bloodhound.Types: newtype NodeName
+ Database.Bloodhound.Types: newtype NullValue
+ Database.Bloodhound.Types: newtype PID
+ Database.Bloodhound.Types: newtype Pattern
+ Database.Bloodhound.Types: newtype PercentMatch
+ Database.Bloodhound.Types: newtype PhraseSlop
+ Database.Bloodhound.Types: newtype PluginName
+ Database.Bloodhound.Types: newtype PrefixLength
+ Database.Bloodhound.Types: newtype QueryPath
+ Database.Bloodhound.Types: newtype QueryString
+ Database.Bloodhound.Types: newtype Regexp
+ Database.Bloodhound.Types: newtype RelationName
+ Database.Bloodhound.Types: newtype ReplicaCount
+ Database.Bloodhound.Types: newtype RestoreIndexSettings
+ Database.Bloodhound.Types: newtype RestoreRenamePattern
+ Database.Bloodhound.Types: newtype RoutingValue
+ Database.Bloodhound.Types: newtype ScriptFields
+ Database.Bloodhound.Types: newtype ScriptLanguage
+ Database.Bloodhound.Types: newtype ScriptParams
+ Database.Bloodhound.Types: newtype ScrollId
+ Database.Bloodhound.Types: newtype SearchAliasRouting
+ Database.Bloodhound.Types: newtype SearchTemplateId
+ Database.Bloodhound.Types: newtype SearchTemplateSource
+ Database.Bloodhound.Types: newtype Seed
+ Database.Bloodhound.Types: newtype Server
+ Database.Bloodhound.Types: newtype ShardCount
+ Database.Bloodhound.Types: newtype ShardId
+ Database.Bloodhound.Types: newtype Size
+ Database.Bloodhound.Types: newtype SnapshotName
+ Database.Bloodhound.Types: newtype SnapshotRepoName
+ Database.Bloodhound.Types: newtype SnapshotRepoType
+ Database.Bloodhound.Types: newtype SnapshotRepoUpdateSettings
+ Database.Bloodhound.Types: newtype SnapshotVerification
+ Database.Bloodhound.Types: newtype StopWord
+ Database.Bloodhound.Types: newtype TemplateName
+ Database.Bloodhound.Types: newtype TemplateQueryKeyValuePairs
+ Database.Bloodhound.Types: newtype Tiebreaker
+ Database.Bloodhound.Types: newtype TokenFilter
+ Database.Bloodhound.Types: newtype Tokenizer
+ Database.Bloodhound.Types: newtype TokenizerDefinition
+ Database.Bloodhound.Types: newtype VersionNumber
+ Database.Bloodhound.Types: newtype Weight
+ Database.Bloodhound.Types: omitNulls :: [(Text, Value)] -> Value
+ Database.Bloodhound.Types: rrGroupRefNum :: RRGroupRefNum -> Int
+ Database.Bloodhound.Types: runBH :: BHEnv -> BH m a -> m a
+ Database.Bloodhound.Types: showText :: Show a => a -> Text
+ Database.Bloodhound.Types: toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)
+ Database.Bloodhound.Types: toEncoding :: ToJSON a => a -> Encoding
+ Database.Bloodhound.Types: toEncodingList :: ToJSON a => [a] -> Encoding
+ Database.Bloodhound.Types: toGSnapshotRepo :: SnapshotRepo r => r -> GenericSnapshotRepo
+ Database.Bloodhound.Types: toJSON :: ToJSON a => a -> Value
+ Database.Bloodhound.Types: toJSONList :: ToJSON a => [a] -> Value
+ Database.Bloodhound.Types: toMissing :: Text -> AggregationResults -> Maybe MissingResult
+ Database.Bloodhound.Types: toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
+ Database.Bloodhound.Types: toTopHits :: FromJSON a => Text -> AggregationResults -> Maybe (TopHitResult a)
+ Database.Bloodhound.Types: type AggregationResults = Map Text Value
+ Database.Bloodhound.Types: type Aggregations = Map Text Aggregation
+ Database.Bloodhound.Types: type Cache = Bool
+ Database.Bloodhound.Types: type HitHighlight = Map Text [Text]
+ Database.Bloodhound.Types: type Method = Method
+ Database.Bloodhound.Types: type Reply = Response LByteString
+ Database.Bloodhound.Types: type Score = Maybe Double
+ Database.Bloodhound.Types: type ScriptFieldName = Text
+ Database.Bloodhound.Types: type ScriptFieldValue = Value
+ Database.Bloodhound.Types: type ScriptParamName = Text
+ Database.Bloodhound.Types: type ScriptParamValue = Value
+ Database.Bloodhound.Types: type SearchAfterKey = [Value]
+ Database.Bloodhound.Types: type Sort = [SortSpec]
+ Database.Bloodhound.Types: type TrackSortScores = Bool
+ Database.Bloodhound.Types: unpackId :: DocId -> Text
Files
- README.md +4/−0
- bloodhound.cabal +121/−127
- changelog.md +33/−0
- src/Database/Bloodhound.hs +10/−0
- src/Database/Bloodhound/Client.hs +1309/−0
- src/Database/Bloodhound/Common/Script.hs +25/−21
- src/Database/Bloodhound/Internal/Aggregation.hs +484/−0
- src/Database/Bloodhound/Internal/Analysis.hs +379/−0
- src/Database/Bloodhound/Internal/Client.hs +2384/−0
- src/Database/Bloodhound/Internal/Count.hs +45/−0
- src/Database/Bloodhound/Internal/Highlight.hs +164/−0
- src/Database/Bloodhound/Internal/Newtypes.hs +249/−0
- src/Database/Bloodhound/Internal/Query.hs +1632/−0
- src/Database/Bloodhound/Internal/Sort.hs +107/−0
- src/Database/Bloodhound/Internal/StringlyTyped.hs +51/−0
- src/Database/Bloodhound/Internal/Suggest.hs +270/−0
- src/Database/Bloodhound/Types.hs +663/−0
- src/Database/V1/Bloodhound.hs +0/−10
- src/Database/V1/Bloodhound/Client.hs +0/−927
- src/Database/V1/Bloodhound/Internal/Aggregation.hs +0/−416
- src/Database/V1/Bloodhound/Internal/Client.hs +0/−2341
- src/Database/V1/Bloodhound/Internal/Highlight.hs +0/−144
- src/Database/V1/Bloodhound/Internal/Newtypes.hs +0/−211
- src/Database/V1/Bloodhound/Internal/Query.hs +0/−1689
- src/Database/V1/Bloodhound/Internal/Sort.hs +0/−106
- src/Database/V1/Bloodhound/Internal/StringlyTyped.hs +0/−26
- src/Database/V1/Bloodhound/Internal/Suggest.hs +0/−252
- src/Database/V1/Bloodhound/Types.hs +0/−452
- src/Database/V1/Bloodhound/Types/Class.hs +0/−17
- src/Database/V5/Bloodhound.hs +0/−10
- src/Database/V5/Bloodhound/Client.hs +0/−1208
- src/Database/V5/Bloodhound/Internal/Aggregation.hs +0/−467
- src/Database/V5/Bloodhound/Internal/Analysis.hs +0/−380
- src/Database/V5/Bloodhound/Internal/Client.hs +0/−2420
- src/Database/V5/Bloodhound/Internal/Highlight.hs +0/−164
- src/Database/V5/Bloodhound/Internal/Newtypes.hs +0/−239
- src/Database/V5/Bloodhound/Internal/Query.hs +0/−1623
- src/Database/V5/Bloodhound/Internal/Sort.hs +0/−107
- src/Database/V5/Bloodhound/Internal/StringlyTyped.hs +0/−51
- src/Database/V5/Bloodhound/Internal/Suggest.hs +0/−270
- src/Database/V5/Bloodhound/Types.hs +0/−540
- src/Database/V5/Bloodhound/Types/Class.hs +0/−17
- tests/Test/Aggregation.hs +138/−0
- tests/Test/ApproxEq.hs +63/−0
- tests/Test/BulkAPI.hs +192/−0
- tests/Test/Common.hs +250/−0
- tests/Test/Count.hs +16/−0
- tests/Test/Documents.hs +59/−0
- tests/Test/Generators.hs +572/−0
- tests/Test/Highlights.hs +32/−0
- tests/Test/Import.hs +58/−0
- tests/Test/Indices.hs +186/−0
- tests/Test/JSON.hs +213/−0
- tests/Test/Query.hs +151/−0
- tests/Test/Script.hs +35/−0
- tests/Test/Snapshots.hs +197/−0
- tests/Test/Sorting.hs +22/−0
- tests/Test/SourceFiltering.hs +38/−0
- tests/Test/Suggest.hs +23/−0
- tests/Test/Templates.hs +26/−0
- tests/V1/Test/Aggregation.hs +0/−132
- tests/V1/Test/ApproxEq.hs +0/−63
- tests/V1/Test/BulkAPI.hs +0/−77
- tests/V1/Test/Common.hs +0/−289
- tests/V1/Test/Documents.hs +0/−52
- tests/V1/Test/Generators.hs +0/−432
- tests/V1/Test/Highlights.hs +0/−32
- tests/V1/Test/Import.hs +0/−58
- tests/V1/Test/Indices.hs +0/−78
- tests/V1/Test/JSON.hs +0/−202
- tests/V1/Test/Query.hs +0/−115
- tests/V1/Test/Snapshots.hs +0/−201
- tests/V1/Test/Sorting.hs +0/−22
- tests/V1/Test/SourceFiltering.hs +0/−38
- tests/V1/Test/Suggest.hs +0/−22
- tests/V1/Test/Templates.hs +0/−26
- tests/V1/tests.hs +0/−117
- tests/V5/Test/Aggregation.hs +0/−147
- tests/V5/Test/ApproxEq.hs +0/−63
- tests/V5/Test/BulkAPI.hs +0/−95
- tests/V5/Test/Common.hs +0/−292
- tests/V5/Test/Documents.hs +0/−51
- tests/V5/Test/Generators.hs +0/−558
- tests/V5/Test/Highlights.hs +0/−32
- tests/V5/Test/Import.hs +0/−58
- tests/V5/Test/Indices.hs +0/−173
- tests/V5/Test/JSON.hs +0/−213
- tests/V5/Test/Query.hs +0/−123
- tests/V5/Test/Script.hs +0/−36
- tests/V5/Test/Snapshots.hs +0/−201
- tests/V5/Test/Sorting.hs +0/−22
- tests/V5/Test/SourceFiltering.hs +0/−38
- tests/V5/Test/Suggest.hs +0/−23
- tests/V5/Test/Templates.hs +0/−26
- tests/V5/tests.hs +0/−119
- tests/tests.hs +133/−0
README.md view
@@ -3,6 +3,10 @@  +⚠ Maintainers Needed ⚠+========================+The original maintainers of the project don't currently have time to adquately maintain the project. If you actively use this project and would like maintianer access and Hackage upload rights, please reach out on GitHub.+ Elasticsearch client and query DSL for Haskell ==============================================
bloodhound.cabal view
@@ -1,138 +1,132 @@-name: bloodhound-version: 0.16.0.0-synopsis: Elasticsearch client library for Haskell-description: Elasticsearch made awesome for Haskell hackers-homepage: https://github.com/bitemyapp/bloodhound-license: BSD3-license-file: LICENSE-author: Chris Allen-maintainer: cma@bitemyapp.com-copyright: 2018 Chris Allen-category: Database, Search-build-type: Simple-cabal-version: >=1.10+cabal-version: 1.12 +-- This file has been generated from package.yaml by hpack version 0.34.4.+--+-- see: https://github.com/sol/hpack+--+-- hash: 46bef2ac99c6bbcf0d436c07daf15b284777ce3302d2a7747772ed22ce5d224d++name: bloodhound+version: 0.18.0.0+synopsis: Elasticsearch client library for Haskell+description: Elasticsearch made awesome for Haskell hackers+category: Database, Search+homepage: https://github.com/bitemyapp/bloodhound.git#readme+bug-reports: https://github.com/bitemyapp/bloodhound.git/issues+author: Chris Allen+maintainer: cma@bitemyapp.com+copyright: 2018 Chris Allen+license: BSD3+license-file: LICENSE+build-type: Simple extra-source-files:- README.md- changelog.md- -- We do this to avoid package check errors when uploading to hackage- tests/V1/tests.hs- tests/V5/tests.hs+ README.md+ changelog.md+ tests/tests.hs source-repository head- type: git+ type: git location: https://github.com/bitemyapp/bloodhound.git -Flag ES1- Description: Run the test suite against an Elasticsearch 1.x server- Default: False--Flag ES5- Description: Run the test suite against an Elasticsearch 5.x server- Default: True- library- ghc-options: -Wall- exposed-modules: Database.V5.Bloodhound- Database.V5.Bloodhound.Client- Database.V5.Bloodhound.Types- Database.V5.Bloodhound.Types.Class- Database.V5.Bloodhound.Internal.Aggregation- Database.V5.Bloodhound.Internal.Analysis- Database.V5.Bloodhound.Internal.Client- Database.V5.Bloodhound.Internal.Highlight- Database.V5.Bloodhound.Internal.Newtypes- Database.V5.Bloodhound.Internal.Query- Database.V5.Bloodhound.Internal.Sort- Database.V5.Bloodhound.Internal.StringlyTyped- Database.V5.Bloodhound.Internal.Suggest-- Database.V1.Bloodhound- Database.V1.Bloodhound.Client- Database.V1.Bloodhound.Types- Database.V1.Bloodhound.Types.Class- Database.V1.Bloodhound.Internal.Aggregation- Database.V1.Bloodhound.Internal.Client- Database.V1.Bloodhound.Internal.Highlight- Database.V1.Bloodhound.Internal.Newtypes- Database.V1.Bloodhound.Internal.Query- Database.V1.Bloodhound.Internal.Sort- Database.V1.Bloodhound.Internal.StringlyTyped- Database.V1.Bloodhound.Internal.Suggest-- other-modules: Bloodhound.Import- Database.Bloodhound.Common.Script- hs-source-dirs: src- build-depends: base >= 4.3 && <5,- aeson >= 0.11.1,- blaze-builder,- bytestring >= 0.10.0 && <0.11,- containers >= 0.5.0.0 && <0.6,- exceptions,- hashable,- http-client >= 0.4.30 && <0.6,- http-types >= 0.8 && <0.13,- mtl >= 1.0 && <2.3,- network-uri >= 2.6 && <2.7,- scientific >= 0.3.0.0 && <0.4.0.0,- semigroups >= 0.15 && <0.19,- semver,- text >= 0.11 && <1.3,- time >= 1.4 && <1.9,- transformers >= 0.2 && <0.6,- unordered-containers,- vector >= 0.10.9 && <0.13- default-language: Haskell2010+ exposed-modules:+ Database.Bloodhound+ Database.Bloodhound.Client+ Database.Bloodhound.Types+ Database.Bloodhound.Internal.Aggregation+ Database.Bloodhound.Internal.Analysis+ Database.Bloodhound.Internal.Client+ Database.Bloodhound.Internal.Highlight+ Database.Bloodhound.Internal.Newtypes+ Database.Bloodhound.Internal.Query+ Database.Bloodhound.Internal.Sort+ Database.Bloodhound.Internal.StringlyTyped+ Database.Bloodhound.Internal.Suggest+ other-modules:+ Bloodhound.Import+ Database.Bloodhound.Common.Script+ Database.Bloodhound.Internal.Count+ Paths_bloodhound+ hs-source-dirs:+ src+ ghc-options: -Wall+ build-depends:+ aeson >=0.11.1 && <2+ , base >=4.3 && <5+ , blaze-builder+ , bytestring >=0.10.0+ , containers >=0.5.0.0+ , exceptions+ , hashable+ , http-client >=0.4.30+ , http-types >=0.8+ , mtl >=1.0+ , network-uri >=2.6+ , scientific >=0.3.0.0+ , semigroups >=0.15+ , semver+ , text >=0.11+ , time >=1.4+ , transformers >=0.2+ , unordered-containers+ , vector >=0.10.9+ default-language: Haskell2010 test-suite bloodhound-tests- ghc-options: -Wall -fno-warn-orphans type: exitcode-stdio-1.0 main-is: tests.hs- if flag(ES1)- hs-source-dirs: tests/V1- else- hs-source-dirs: tests/V5- other-modules: Test.Script- other-modules: Test.Aggregation- Test.ApproxEq- Test.BulkAPI- Test.Common- Test.Documents- Test.Generators- Test.Highlights- Test.Import- Test.Indices- Test.JSON- Test.Query- Test.Snapshots- Test.Sorting- Test.SourceFiltering- Test.Suggest- Test.Templates- build-depends: base,- QuickCheck,- aeson,- bloodhound,- bytestring,- containers,- errors,- exceptions,- hspec >= 1.8,- http-client,- http-types,- microlens,- microlens-aeson,- mtl,- network-uri,- pretty-simple,- quickcheck-arbitrary-template,- quickcheck-properties,- semigroups,- semver,- temporary,- text,- time,- unix-compat,- unordered-containers >= 0.2.5.0 && <0.3,- vector- default-language: Haskell2010+ other-modules:+ Test.Aggregation+ Test.ApproxEq+ Test.BulkAPI+ Test.Common+ Test.Count+ Test.Documents+ Test.Generators+ Test.Highlights+ Test.Import+ Test.Indices+ Test.JSON+ Test.Query+ Test.Script+ Test.Snapshots+ Test.Sorting+ Test.SourceFiltering+ Test.Suggest+ Test.Templates+ Paths_bloodhound+ hs-source-dirs:+ tests+ ghc-options: -Wall -fno-warn-orphans+ build-depends:+ QuickCheck+ , aeson >=0.11.1 && <2+ , base+ , blaze-builder+ , bloodhound+ , bytestring >=0.10.0+ , containers >=0.5.0.0+ , errors+ , exceptions+ , hashable+ , hspec >=1.8+ , http-client >=0.4.30+ , http-types >=0.8+ , microlens+ , microlens-aeson+ , mtl >=1.0+ , network-uri >=2.6+ , pretty-simple+ , quickcheck-arbitrary-template+ , quickcheck-properties+ , scientific >=0.3.0.0+ , semigroups >=0.15+ , semver+ , temporary+ , text >=0.11+ , time >=1.4+ , transformers >=0.2+ , unix-compat+ , unordered-containers+ , vector >=0.10.9+ default-language: Haskell2010
changelog.md view
@@ -1,3 +1,32 @@+0.18.0.0+========+- @WraithM+ - Fix deleteDocument endpoint+- @iivanbakel+ - Support ES7+- @wireapp+ - Support GHC 8.8+ - Support GHC 8.4+ - Support GHC 8.2.2+ - Support GHC 8.0+ - Implement API Count+- @bitemyapp+ - Add BulkUpsert+- @JoseD92+ - Add support for unassigned.node_left.delayed_timeout index setting++0.17.0.0+========+- @bitemyapp+ - Removed V1 modules and support.+ - Removed the cabal file, replaced with an Hpack `package.yaml`.+- @JoseD92+ - Removed the disused `Seminearring` class.+ - Added Docker Compose support.+ - Add support for unassigned.node_left.delayed_timeout index setting+- @Kheldar, @AlexeyRaga, @dsturnbull+ - Added support for BulkUpsert operations that allow for additional metadata.+ 0.16.0.0 ======== - @bitemyapp@@ -22,9 +51,13 @@ - Add the "stemmer" and "stop" [token filters][] to `TokenFilterDefinition`. - @ahodgen - Add support for wildcard queries+- @ashutoshrishi+ - Added [fuzziness][] option to a Match Query+ - Added support for "AUTO" Fuzziness alongside a numeric value. [Character Filters]: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-charfilters.html [Token Filters]: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-tokenfilters.html+[Fuzziness]: https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#fuzziness 0.15.0.2 ========
+ src/Database/Bloodhound.hs view
@@ -0,0 +1,10 @@+module Database.Bloodhound+ ( -- module Data.Aeson.Types+ -- , + module Database.Bloodhound.Client+ , module Database.Bloodhound.Types+ ) where++-- import Data.Aeson.Types+import Database.Bloodhound.Client+import Database.Bloodhound.Types
+ src/Database/Bloodhound/Client.hs view
@@ -0,0 +1,1309 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TupleSections #-}++-------------------------------------------------------------------------------+-- |+-- Module : Database.Bloodhound.Client+-- Copyright : (C) 2014, 2018 Chris Allen+-- License : BSD-style (see the file LICENSE)+-- Maintainer : Chris Allen <cma@bitemyapp.com>+-- Stability : provisional+-- Portability : OverloadedStrings+--+-- Client side functions for talking to Elasticsearch servers.+--+-------------------------------------------------------------------------------++module Database.Bloodhound.Client+ ( -- * Bloodhound client functions+ -- | The examples in this module assume the following code has been run.+ -- The :{ and :} will only work in GHCi. You'll only need the data types+ -- and typeclass instances for the functions that make use of them.++ -- $setup+ withBH+ -- ** Indices+ , createIndex+ , createIndexWith+ , flushIndex+ , deleteIndex+ , updateIndexSettings+ , getIndexSettings+ , forceMergeIndex+ , indexExists+ , openIndex+ , closeIndex+ , listIndices+ , catIndices+ , waitForYellowIndex+ -- *** Index Aliases+ , updateIndexAliases+ , getIndexAliases+ , deleteIndexAlias+ -- *** Index Templates+ , putTemplate+ , templateExists+ , deleteTemplate+ -- ** Mapping+ , putMapping+ -- ** Documents+ , indexDocument+ , updateDocument+ , getDocument+ , documentExists+ , deleteDocument+ , deleteByQuery+ -- ** Searching+ , searchAll+ , searchByIndex+ , searchByIndices+ , searchByIndexTemplate+ , searchByIndicesTemplate+ , scanSearch+ , getInitialScroll+ , getInitialSortedScroll+ , advanceScroll+ , refreshIndex+ , mkSearch+ , mkAggregateSearch+ , mkHighlightSearch+ , mkSearchTemplate+ , bulk+ , pageSearch+ , mkShardCount+ , mkReplicaCount+ , getStatus+ -- ** Templates+ , storeSearchTemplate+ , getSearchTemplate+ , deleteSearchTemplate+ -- ** Snapshot/Restore+ -- *** Snapshot Repos+ , getSnapshotRepos+ , updateSnapshotRepo+ , verifySnapshotRepo+ , deleteSnapshotRepo+ -- *** Snapshots+ , createSnapshot+ , getSnapshots+ , deleteSnapshot+ -- *** Restoring Snapshots+ , restoreSnapshot+ -- ** Nodes+ , getNodesInfo+ , getNodesStats+ -- ** Request Utilities+ , encodeBulkOperations+ , encodeBulkOperation+ -- * Authentication+ , basicAuthHook+ -- * Reply-handling tools+ , isVersionConflict+ , isSuccess+ , isCreated+ , parseEsResponse+ -- * Count+ , countByIndex+ )+ where++import qualified Blaze.ByteString.Builder as BB+import Control.Applicative as A+import Control.Monad+import Control.Monad.Catch+import Control.Monad.IO.Class+import Data.Aeson+import Data.ByteString.Lazy.Builder+import qualified Data.ByteString.Lazy.Char8 as L+import Data.Foldable (toList)+import qualified Data.HashMap.Strict as HM+import Data.Ix+import qualified Data.List as LS (foldl')+import Data.List.NonEmpty (NonEmpty (..))+import Data.Maybe (catMaybes, fromMaybe)+import Data.Monoid+import Data.Text (Text)+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import Data.Time.Clock+import qualified Data.Vector as V+import Network.HTTP.Client+import qualified Network.HTTP.Types.Method as NHTM+import qualified Network.HTTP.Types.Status as NHTS+import qualified Network.HTTP.Types.URI as NHTU+import qualified Network.URI as URI+import Prelude hiding (filter, head)++import Database.Bloodhound.Types++-- $setup+-- >>> :set -XOverloadedStrings+-- >>> :set -XDeriveGeneric+-- >>> import Database.Bloodhound+-- >>> import Network.HTTP.Client+-- >>> let testServer = (Server "http://localhost:9200")+-- >>> let runBH' = withBH defaultManagerSettings testServer+-- >>> let testIndex = IndexName "twitter"+-- >>> let defaultIndexSettings = IndexSettings (ShardCount 1) (ReplicaCount 0)+-- >>> data TweetMapping = TweetMapping deriving (Eq, Show)+-- >>> _ <- runBH' $ deleteIndex testIndex+-- >>> _ <- runBH' $ deleteIndex (IndexName "didimakeanindex")+-- >>> import GHC.Generics+-- >>> import Data.Time.Calendar (Day (..))+-- >>> import Data.Time.Clock (UTCTime (..), secondsToDiffTime)+-- >>> :{+--instance ToJSON TweetMapping where+-- toJSON TweetMapping =+-- object ["properties" .=+-- object ["location" .=+-- object ["type" .= ("geo_point" :: Text)]]]+--data Location = Location { lat :: Double+-- , lon :: Double } deriving (Eq, Generic, Show)+--data Tweet = Tweet { user :: Text+-- , postDate :: UTCTime+-- , message :: Text+-- , age :: Int+-- , location :: Location } deriving (Eq, Generic, Show)+--exampleTweet = Tweet { user = "bitemyapp"+-- , postDate = UTCTime+-- (ModifiedJulianDay 55000)+-- (secondsToDiffTime 10)+-- , message = "Use haskell!"+-- , age = 10000+-- , location = Location 40.12 (-71.34) }+--instance ToJSON Tweet where+-- toJSON = genericToJSON defaultOptions+--instance FromJSON Tweet where+-- parseJSON = genericParseJSON defaultOptions+--instance ToJSON Location where+-- toJSON = genericToJSON defaultOptions+--instance FromJSON Location where+-- parseJSON = genericParseJSON defaultOptions+--data BulkTest = BulkTest { name :: Text } deriving (Eq, Generic, Show)+--instance FromJSON BulkTest where+-- parseJSON = genericParseJSON defaultOptions+--instance ToJSON BulkTest where+-- toJSON = genericToJSON defaultOptions+-- :}++-- | 'mkShardCount' is a straight-forward smart constructor for 'ShardCount'+-- which rejects 'Int' values below 1 and above 1000.+--+-- >>> mkShardCount 10+-- Just (ShardCount 10)+mkShardCount :: Int -> Maybe ShardCount+mkShardCount n+ | n < 1 = Nothing+ | n > 1000 = Nothing+ | otherwise = Just (ShardCount n)++-- | 'mkReplicaCount' is a straight-forward smart constructor for 'ReplicaCount'+-- which rejects 'Int' values below 0 and above 1000.+--+-- >>> mkReplicaCount 10+-- Just (ReplicaCount 10)+mkReplicaCount :: Int -> Maybe ReplicaCount+mkReplicaCount n+ | n < 0 = Nothing+ | n > 1000 = Nothing -- ...+ | otherwise = Just (ReplicaCount n)++emptyBody :: L.ByteString+emptyBody = L.pack ""++dispatch :: MonadBH m+ => Method+ -> Text+ -> Maybe L.ByteString+ -> m Reply+dispatch dMethod url body = do+ initReq <- liftIO $ parseUrl' url+ reqHook <- bhRequestHook A.<$> getBHEnv+ let reqBody = RequestBodyLBS $ fromMaybe emptyBody body+ req <- liftIO+ $ reqHook+ $ setRequestIgnoreStatus+ $ initReq { method = dMethod+ , requestHeaders =+ -- "application/x-ndjson" for bulk+ ("Content-Type", "application/json") : requestHeaders initReq+ , requestBody = reqBody }+ -- req <- liftIO $ reqHook $ setRequestIgnoreStatus $ initReq { method = dMethod+ -- , requestBody = reqBody }+ mgr <- bhManager <$> getBHEnv+ liftIO $ httpLbs req mgr++joinPath' :: [Text] -> Text+joinPath' = T.intercalate "/"++joinPath :: MonadBH m => [Text] -> m Text+joinPath ps = do+ Server s <- bhServer <$> getBHEnv+ return $ joinPath' (s:ps)++appendSearchTypeParam :: Text -> SearchType -> Text+appendSearchTypeParam originalUrl st = addQuery params originalUrl+ where stText = "search_type"+ params+ | st == SearchTypeDfsQueryThenFetch = [(stText, Just "dfs_query_then_fetch")]+ -- used to catch 'SearchTypeQueryThenFetch', which is also the default+ | otherwise = []++-- | Severely dumbed down query renderer. Assumes your data doesn't+-- need any encoding+addQuery :: [(Text, Maybe Text)] -> Text -> Text+addQuery q u = u <> rendered+ where+ rendered =+ T.decodeUtf8 $ BB.toByteString $ NHTU.renderQueryText prependQuestionMark q+ prependQuestionMark = True++bindM2 :: (Applicative m, Monad m) => (a -> b -> m c) -> m a -> m b -> m c+bindM2 f ma mb = join (f <$> ma <*> mb)++-- | Convenience function that sets up a manager and BHEnv and runs+-- the given set of bloodhound operations. Connections will be+-- pipelined automatically in accordance with the given manager+-- settings in IO. If you've got your own monad transformer stack, you+-- should use 'runBH' directly.+withBH :: ManagerSettings -> Server -> BH IO a -> IO a+withBH ms s f = do+ mgr <- newManager ms+ let env = mkBHEnv s mgr+ runBH env f++-- Shortcut functions for HTTP methods+delete :: MonadBH m => Text -> m Reply+delete = flip (dispatch NHTM.methodDelete) Nothing+get :: MonadBH m => Text -> m Reply+get = flip (dispatch NHTM.methodGet) Nothing+head :: MonadBH m => Text -> m Reply+head = flip (dispatch NHTM.methodHead) Nothing+put :: MonadBH m => Text -> Maybe L.ByteString -> m Reply+put = dispatch NHTM.methodPut+post :: MonadBH m => Text -> Maybe L.ByteString -> m Reply+post = dispatch NHTM.methodPost++-- indexDocument s ix name doc = put (root </> s </> ix </> name </> doc) (Just encode doc)+-- http://hackage.haskell.org/package/http-client-lens-0.1.0/docs/Network-HTTP-Client-Lens.html+-- https://github.com/supki/libjenkins/blob/master/src/Jenkins/Rest/Internal.hs++-- | 'getStatus' fetches the 'Status' of a 'Server'+--+-- >>> serverStatus <- runBH' getStatus+-- >>> fmap tagline (serverStatus)+-- Just "You Know, for Search"+getStatus :: MonadBH m => m (Maybe Status)+getStatus = do+ response <- get =<< url+ return $ decode (responseBody response)+ where url = joinPath []++-- | 'getSnapshotRepos' gets the definitions of a subset of the+-- defined snapshot repos.+getSnapshotRepos+ :: ( MonadBH m+ , MonadThrow m+ )+ => SnapshotRepoSelection+ -> m (Either EsError [GenericSnapshotRepo])+getSnapshotRepos sel = fmap (fmap unGSRs) . parseEsResponse =<< get =<< url+ where+ url = joinPath ["_snapshot", selectorSeg]+ selectorSeg = case sel of+ AllSnapshotRepos -> "_all"+ SnapshotRepoList (p :| ps) -> T.intercalate "," (renderPat <$> (p:ps))+ renderPat (RepoPattern t) = t+ renderPat (ExactRepo (SnapshotRepoName t)) = t+++-- | Wrapper to extract the list of 'GenericSnapshotRepo' in the+-- format they're returned in+newtype GSRs = GSRs { unGSRs :: [GenericSnapshotRepo] }+++instance FromJSON GSRs where+ parseJSON = withObject "Collection of GenericSnapshotRepo" parse+ where+ parse = fmap GSRs . mapM (uncurry go) . HM.toList+ go rawName = withObject "GenericSnapshotRepo" $ \o ->+ GenericSnapshotRepo (SnapshotRepoName rawName) <$> o .: "type"+ <*> o .: "settings"+++-- | Create or update a snapshot repo+updateSnapshotRepo+ :: ( MonadBH m+ , SnapshotRepo repo+ )+ => SnapshotRepoUpdateSettings+ -- ^ Use 'defaultSnapshotRepoUpdateSettings' if unsure+ -> repo+ -> m Reply+updateSnapshotRepo SnapshotRepoUpdateSettings {..} repo =+ bindM2 put url (return (Just body))+ where+ url = addQuery params <$> joinPath ["_snapshot", snapshotRepoName gSnapshotRepoName]+ params+ | repoUpdateVerify = []+ | otherwise = [("verify", Just "false")]+ body = encode $ object [ "type" .= gSnapshotRepoType+ , "settings" .= gSnapshotRepoSettings+ ]+ GenericSnapshotRepo {..} = toGSnapshotRepo repo++++-- | Verify if a snapshot repo is working. __NOTE:__ this API did not+-- make it into Elasticsearch until 1.4. If you use an older version,+-- you will get an error here.+verifySnapshotRepo+ :: ( MonadBH m+ , MonadThrow m+ )+ => SnapshotRepoName+ -> m (Either EsError SnapshotVerification)+verifySnapshotRepo (SnapshotRepoName n) =+ parseEsResponse =<< bindM2 post url (return Nothing)+ where+ url = joinPath ["_snapshot", n, "_verify"]+++deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply+deleteSnapshotRepo (SnapshotRepoName n) = delete =<< url+ where+ url = joinPath ["_snapshot", n]+++-- | Create and start a snapshot+createSnapshot+ :: (MonadBH m)+ => SnapshotRepoName+ -> SnapshotName+ -> SnapshotCreateSettings+ -> m Reply+createSnapshot (SnapshotRepoName repoName)+ (SnapshotName snapName)+ SnapshotCreateSettings {..} =+ bindM2 put url (return (Just body))+ where+ url = addQuery params <$> joinPath ["_snapshot", repoName, snapName]+ params = [("wait_for_completion", Just (boolQP snapWaitForCompletion))]+ body = encode $ object prs+ prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapIndices+ , Just ("ignore_unavailable" .= snapIgnoreUnavailable)+ , Just ("ignore_global_state" .= snapIncludeGlobalState)+ , Just ("partial" .= snapPartial)+ ]+++indexSelectionName :: IndexSelection -> Text+indexSelectionName AllIndexes = "_all"+indexSelectionName (IndexList (i :| is)) = T.intercalate "," (renderIndex <$> (i:is))+ where+ renderIndex (IndexName n) = n+++-- | Get info about known snapshots given a pattern and repo name.+getSnapshots+ :: ( MonadBH m+ , MonadThrow m+ )+ => SnapshotRepoName+ -> SnapshotSelection+ -> m (Either EsError [SnapshotInfo])+getSnapshots (SnapshotRepoName repoName) sel =+ fmap (fmap unSIs) . parseEsResponse =<< get =<< url+ where+ url = joinPath ["_snapshot", repoName, snapPath]+ snapPath = case sel of+ AllSnapshots -> "_all"+ SnapshotList (s :| ss) -> T.intercalate "," (renderPath <$> (s:ss))+ renderPath (SnapPattern t) = t+ renderPath (ExactSnap (SnapshotName t)) = t+++newtype SIs = SIs { unSIs :: [SnapshotInfo] }+++instance FromJSON SIs where+ parseJSON = withObject "Collection of SnapshotInfo" parse+ where+ parse o = SIs <$> o .: "snapshots"+++-- | Delete a snapshot. Cancels if it is running.+deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply+deleteSnapshot (SnapshotRepoName repoName) (SnapshotName snapName) =+ delete =<< url+ where+ url = joinPath ["_snapshot", repoName, snapName]+++-- | Restore a snapshot to the cluster See+-- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/modules-snapshots.html#_restore>+-- for more details.+restoreSnapshot+ :: MonadBH m+ => SnapshotRepoName+ -> SnapshotName+ -> SnapshotRestoreSettings+ -- ^ Start with 'defaultSnapshotRestoreSettings' and customize+ -- from there for reasonable defaults.+ -> m Reply+restoreSnapshot (SnapshotRepoName repoName)+ (SnapshotName snapName)+ SnapshotRestoreSettings {..} = bindM2 post url (return (Just body))+ where+ url = addQuery params <$> joinPath ["_snapshot", repoName, snapName, "_restore"]+ params = [("wait_for_completion", Just (boolQP snapRestoreWaitForCompletion))]+ body = encode (object prs)+++ prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapRestoreIndices+ , Just ("ignore_unavailable" .= snapRestoreIgnoreUnavailable)+ , Just ("include_global_state" .= snapRestoreIncludeGlobalState)+ , ("rename_pattern" .=) <$> snapRestoreRenamePattern+ , ("rename_replacement" .=) . renderTokens <$> snapRestoreRenameReplacement+ , Just ("include_aliases" .= snapRestoreIncludeAliases)+ , ("index_settings" .= ) <$> snapRestoreIndexSettingsOverrides+ , ("ignore_index_settings" .= ) <$> snapRestoreIgnoreIndexSettings+ ]+ renderTokens (t :| ts) = mconcat (renderToken <$> (t:ts))+ renderToken (RRTLit t) = t+ renderToken RRSubWholeMatch = "$0"+ renderToken (RRSubGroup g) = T.pack (show (rrGroupRefNum g))+++getNodesInfo+ :: ( MonadBH m+ , MonadThrow m+ )+ => NodeSelection+ -> m (Either EsError NodesInfo)+getNodesInfo sel = parseEsResponse =<< get =<< url+ where+ url = joinPath ["_nodes", selectionSeg]+ selectionSeg = case sel of+ LocalNode -> "_local"+ NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))+ AllNodes -> "_all"+ selToSeg (NodeByName (NodeName n)) = n+ selToSeg (NodeByFullNodeId (FullNodeId i)) = i+ selToSeg (NodeByHost (Server s)) = s+ selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v++getNodesStats+ :: ( MonadBH m+ , MonadThrow m+ )+ => NodeSelection+ -> m (Either EsError NodesStats)+getNodesStats sel = parseEsResponse =<< get =<< url+ where+ url = joinPath ["_nodes", selectionSeg, "stats"]+ selectionSeg = case sel of+ LocalNode -> "_local"+ NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))+ AllNodes -> "_all"+ selToSeg (NodeByName (NodeName n)) = n+ selToSeg (NodeByFullNodeId (FullNodeId i)) = i+ selToSeg (NodeByHost (Server s)) = s+ selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v++-- | 'createIndex' will create an index given a 'Server', 'IndexSettings', and an 'IndexName'.+--+-- >>> response <- runBH' $ createIndex defaultIndexSettings (IndexName "didimakeanindex")+-- >>> respIsTwoHunna response+-- True+-- >>> runBH' $ indexExists (IndexName "didimakeanindex")+-- True+createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply+createIndex indexSettings (IndexName indexName) =+ bindM2 put url (return body)+ where url = joinPath [indexName]+ body = Just $ encode indexSettings++-- | Create an index, providing it with any number of settings. This+-- is more expressive than 'createIndex' but makes is more verbose+-- for the common case of configuring only the shard count and+-- replica count.+createIndexWith :: MonadBH m+ => [UpdatableIndexSetting]+ -> Int -- ^ shard count+ -> IndexName+ -> m Reply+createIndexWith updates shards (IndexName indexName) =+ bindM2 put url (return (Just body))+ where url = joinPath [indexName]+ body = encode $ object+ ["settings" .= deepMerge+ ( HM.singleton "index.number_of_shards" (toJSON shards) :+ [u | Object u <- toJSON <$> updates]+ )+ ]++-- | 'flushIndex' will flush an index given a 'Server' and an 'IndexName'.+flushIndex :: MonadBH m => IndexName -> m Reply+flushIndex (IndexName indexName) = do+ path <- joinPath [indexName, "_flush"]+ post path Nothing++-- | 'deleteIndex' will delete an index given a 'Server' and an 'IndexName'.+--+-- >>> _ <- runBH' $ createIndex defaultIndexSettings (IndexName "didimakeanindex")+-- >>> response <- runBH' $ deleteIndex (IndexName "didimakeanindex")+-- >>> respIsTwoHunna response+-- True+-- >>> runBH' $ indexExists (IndexName "didimakeanindex")+-- False+deleteIndex :: MonadBH m => IndexName -> m Reply+deleteIndex (IndexName indexName) =+ delete =<< joinPath [indexName]++-- | 'updateIndexSettings' will apply a non-empty list of setting updates to an index+--+-- >>> _ <- runBH' $ createIndex defaultIndexSettings (IndexName "unconfiguredindex")+-- >>> response <- runBH' $ updateIndexSettings (BlocksWrite False :| []) (IndexName "unconfiguredindex")+-- >>> respIsTwoHunna response+-- True+updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply+updateIndexSettings updates (IndexName indexName) =+ bindM2 put url (return body)+ where+ url = joinPath [indexName, "_settings"]+ body = Just (encode jsonBody)+ jsonBody = Object (deepMerge [u | Object u <- toJSON <$> toList updates])+++getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName+ -> m (Either EsError IndexSettingsSummary)+getIndexSettings (IndexName indexName) =+ parseEsResponse =<< get =<< url+ where+ url = joinPath [indexName, "_settings"]++-- | 'forceMergeIndex'+--+-- The force merge API allows to force merging of one or more indices through+-- an API. The merge relates to the number of segments a Lucene index holds+-- within each shard. The force merge operation allows to reduce the number of+-- segments by merging them.+--+-- This call will block until the merge is complete. If the http connection is+-- lost, the request will continue in the background, and any new requests will+-- block until the previous force merge is complete.++-- For more information see+-- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html#indices-forcemerge>.+-- Nothing+-- worthwhile comes back in the reply body, so matching on the status+-- should suffice.+--+-- 'forceMergeIndex' with a maxNumSegments of 1 and onlyExpungeDeletes+-- to True is the main way to release disk space back to the OS being+-- held by deleted documents.+--+-- >>> let ixn = IndexName "unoptimizedindex"+-- >>> _ <- runBH' $ deleteIndex ixn >> createIndex defaultIndexSettings ixn+-- >>> response <- runBH' $ forceMergeIndex (IndexList (ixn :| [])) (defaultIndexOptimizationSettings { maxNumSegments = Just 1, onlyExpungeDeletes = True })+-- >>> respIsTwoHunna response+-- True+forceMergeIndex :: MonadBH m => IndexSelection -> ForceMergeIndexSettings -> m Reply+forceMergeIndex ixs ForceMergeIndexSettings {..} =+ bindM2 post url (return body)+ where url = addQuery params <$> joinPath [indexName, "_forcemerge"]+ params = catMaybes [ ("max_num_segments",) . Just . showText <$> maxNumSegments+ , Just ("only_expunge_deletes", Just (boolQP onlyExpungeDeletes))+ , Just ("flush", Just (boolQP flushAfterOptimize))+ ]+ indexName = indexSelectionName ixs+ body = Nothing+++deepMerge :: [Object] -> Object+deepMerge = LS.foldl' go mempty+ where go acc = LS.foldl' go' acc . HM.toList+ go' acc (k, v) = HM.insertWith merge k v acc+ merge (Object a) (Object b) = Object (deepMerge [a, b])+ merge _ b = b+++statusCodeIs :: (Int, Int) -> Reply -> Bool+statusCodeIs r resp = inRange r $ NHTS.statusCode (responseStatus resp)++respIsTwoHunna :: Reply -> Bool+respIsTwoHunna = statusCodeIs (200, 299)++existentialQuery :: MonadBH m => Text -> m (Reply, Bool)+existentialQuery url = do+ reply <- head url+ return (reply, respIsTwoHunna reply)+++-- | Tries to parse a response body as the expected type @a@ and+-- failing that tries to parse it as an EsError. All well-formed, JSON+-- responses from elasticsearch should fall into these two+-- categories. If they don't, a 'EsProtocolException' will be+-- thrown. If you encounter this, please report the full body it+-- reports along with your Elasticsearch verison.+parseEsResponse :: ( MonadThrow m+ , FromJSON a+ )+ => Reply+ -> m (Either EsError a)+parseEsResponse reply+ | respIsTwoHunna reply = case eitherDecode body of+ Right a -> return (Right a)+ Left err ->+ tryParseError err+ | otherwise = tryParseError "Non-200 status code"+ where body = responseBody reply+ tryParseError originalError+ = case eitherDecode body of+ Right e -> return (Left e)+ -- Failed to parse the error message.+ Left err -> explode ("Original error was: " <> originalError <> " Error parse failure was: " <> err)+ explode errorMsg = throwM (EsProtocolException (T.pack errorMsg) body)++-- | 'indexExists' enables you to check if an index exists. Returns 'Bool'+-- in IO+--+-- >>> exists <- runBH' $ indexExists testIndex+indexExists :: MonadBH m => IndexName -> m Bool+indexExists (IndexName indexName) = do+ (_, exists) <- existentialQuery =<< joinPath [indexName]+ return exists++-- | 'refreshIndex' will force a refresh on an index. You must+-- do this if you want to read what you wrote.+--+-- >>> _ <- runBH' $ createIndex defaultIndexSettings testIndex+-- >>> _ <- runBH' $ refreshIndex testIndex+refreshIndex :: MonadBH m => IndexName -> m Reply+refreshIndex (IndexName indexName) =+ bindM2 post url (return Nothing)+ where url = joinPath [indexName, "_refresh"]++-- | Block until the index becomes available for indexing+-- documents. This is useful for integration tests in which+-- indices are rapidly created and deleted.+waitForYellowIndex :: MonadBH m => IndexName -> m Reply+waitForYellowIndex (IndexName indexName) = get =<< url+ where url = addQuery q <$> joinPath ["_cluster","health",indexName]+ q = [("wait_for_status",Just "yellow"),("timeout",Just "10s")]++stringifyOCIndex :: OpenCloseIndex -> Text+stringifyOCIndex oci = case oci of+ OpenIndex -> "_open"+ CloseIndex -> "_close"++openOrCloseIndexes :: MonadBH m => OpenCloseIndex -> IndexName -> m Reply+openOrCloseIndexes oci (IndexName indexName) =+ bindM2 post url (return Nothing)+ where ociString = stringifyOCIndex oci+ url = joinPath [indexName, ociString]++-- | 'openIndex' opens an index given a 'Server' and an 'IndexName'. Explained in further detail at+-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>+--+-- >>> reply <- runBH' $ openIndex testIndex+openIndex :: MonadBH m => IndexName -> m Reply+openIndex = openOrCloseIndexes OpenIndex++-- | 'closeIndex' closes an index given a 'Server' and an 'IndexName'. Explained in further detail at+-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>+--+-- >>> reply <- runBH' $ closeIndex testIndex+closeIndex :: MonadBH m => IndexName -> m Reply+closeIndex = openOrCloseIndexes CloseIndex++-- | 'listIndices' returns a list of all index names on a given 'Server'+listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]+listIndices =+ parse . responseBody =<< get =<< url+ where+ url = joinPath ["_cat/indices?format=json"]+ parse body = either (\msg -> (throwM (EsProtocolException (T.pack msg) body))) return $ do+ vals <- eitherDecode body+ forM vals $ \val ->+ case val of+ Object obj ->+ case HM.lookup "index" obj of+ (Just (String txt)) -> Right (IndexName txt)+ v -> Left $ "indexVal in listIndices failed on non-string, was: " <> show v+ v -> Left $ "One of the values parsed in listIndices wasn't an object, it was: " <> show v++-- | 'catIndices' returns a list of all index names on a given 'Server' as well as their doc counts+catIndices :: (MonadThrow m, MonadBH m) => m [(IndexName, Int)]+catIndices =+ parse . responseBody =<< get =<< url+ where+ url = joinPath ["_cat/indices?format=json"]+ parse body = either (\msg -> (throwM (EsProtocolException (T.pack msg) body))) return $ do+ vals <- eitherDecode body+ forM vals $ \val ->+ case val of+ Object obj ->+ case (HM.lookup "index" obj, HM.lookup "docs.count" obj) of+ (Just (String txt), Just (String docs)) -> Right ((IndexName txt), read (T.unpack docs))+ v -> Left $ "indexVal in catIndices failed on non-string, was: " <> show v+ v -> Left $ "One of the values parsed in catIndices wasn't an object, it was: " <> show v++-- | 'updateIndexAliases' updates the server's index alias+-- table. Operations are atomic. Explained in further detail at+-- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html>+--+-- >>> let src = IndexName "a-real-index"+-- >>> let aliasName = IndexName "an-alias"+-- >>> let iAlias = IndexAlias src (IndexAliasName aliasName)+-- >>> let aliasCreate = IndexAliasCreate Nothing Nothing+-- >>> _ <- runBH' $ deleteIndex src+-- >>> respIsTwoHunna <$> runBH' (createIndex defaultIndexSettings src)+-- True+-- >>> runBH' $ indexExists src+-- True+-- >>> respIsTwoHunna <$> runBH' (updateIndexAliases (AddAlias iAlias aliasCreate :| []))+-- True+-- >>> runBH' $ indexExists aliasName+-- True+updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply+updateIndexAliases actions = bindM2 post url (return body)+ where url = joinPath ["_aliases"]+ body = Just (encode bodyJSON)+ bodyJSON = object [ "actions" .= toList actions]++-- | Get all aliases configured on the server.+getIndexAliases :: (MonadBH m, MonadThrow m)+ => m (Either EsError IndexAliasesSummary)+getIndexAliases = parseEsResponse =<< get =<< url+ where url = joinPath ["_aliases"]++-- | Delete a single alias, removing it from all indices it+-- is currently associated with.+deleteIndexAlias :: MonadBH m => IndexAliasName -> m Reply+deleteIndexAlias (IndexAliasName (IndexName name)) = delete =<< url+ where url = joinPath ["_all","_alias",name]++-- | 'putTemplate' creates a template given an 'IndexTemplate' and a 'TemplateName'.+-- Explained in further detail at+-- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html>+--+-- >>> let idxTpl = IndexTemplate [IndexPattern "tweet-*"] (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]+-- >>> resp <- runBH' $ putTemplate idxTpl (TemplateName "tweet-tpl")+putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply+putTemplate indexTemplate (TemplateName templateName) =+ bindM2 put url (return body)+ where url = joinPath ["_template", templateName]+ body = Just $ encode indexTemplate++-- | 'templateExists' checks to see if a template exists.+--+-- >>> exists <- runBH' $ templateExists (TemplateName "tweet-tpl")+templateExists :: MonadBH m => TemplateName -> m Bool+templateExists (TemplateName templateName) = do+ (_, exists) <- existentialQuery =<< joinPath ["_template", templateName]+ return exists++-- | 'deleteTemplate' is an HTTP DELETE and deletes a template.+--+-- >>> let idxTpl = IndexTemplate [IndexPattern "tweet-*"] (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]+-- >>> _ <- runBH' $ putTemplate idxTpl (TemplateName "tweet-tpl")+-- >>> resp <- runBH' $ deleteTemplate (TemplateName "tweet-tpl")+deleteTemplate :: MonadBH m => TemplateName -> m Reply+deleteTemplate (TemplateName templateName) =+ delete =<< joinPath ["_template", templateName]++-- | 'putMapping' is an HTTP PUT and has upsert semantics. Mappings are schemas+-- for documents in indexes.+--+-- >>> _ <- runBH' $ createIndex defaultIndexSettings testIndex+-- >>> resp <- runBH' $ putMapping testIndex TweetMapping+-- >>> print resp+-- Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("content-type","application/json; charset=UTF-8"),("content-encoding","gzip"),("transfer-encoding","chunked")], responseBody = "{\"acknowledged\":true}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}+putMapping :: (MonadBH m, ToJSON a) => IndexName -> a -> m Reply+putMapping (IndexName indexName) mapping =+ bindM2 put url (return body)+ where url = joinPath [indexName, "_mapping"]+ -- "_mapping" above is originally transposed+ -- erroneously. The correct API call is: "/INDEX/_mapping"+ body = Just $ encode mapping++versionCtlParams :: IndexDocumentSettings -> [(Text, Maybe Text)]+versionCtlParams cfg =+ case idsVersionControl cfg of+ NoVersionControl -> []+ InternalVersion v -> versionParams v "internal"+ ExternalGT (ExternalDocVersion v) -> versionParams v "external_gt"+ ExternalGTE (ExternalDocVersion v) -> versionParams v "external_gte"+ ForceVersion (ExternalDocVersion v) -> versionParams v "force"+ where+ vt = showText . docVersionNumber+ versionParams v t = [ ("version", Just $ vt v)+ , ("version_type", Just t)+ ]++-- | 'indexDocument' is the primary way to save a single document in+-- Elasticsearch. The document itself is simply something we can+-- convert into a JSON 'Value'. The 'DocId' will function as the+-- primary key for the document. You are encouraged to generate+-- your own id's and not rely on Elasticsearch's automatic id+-- generation. Read more about it here:+-- https://github.com/bitemyapp/bloodhound/issues/107+--+-- >>> resp <- runBH' $ indexDocument testIndex defaultIndexDocumentSettings exampleTweet (DocId "1")+-- >>> print resp+-- Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("content-type","application/json; charset=UTF-8"),("content-encoding","gzip"),("content-length","152")], responseBody = "{\"_index\":\"bloodhound-tests-twitter-1\",\"_type\":\"_doc\",\"_id\":\"1\",\"_version\":2,\"result\":\"updated\",\"_shards\":{\"total\":1,\"successful\":1,\"failed\":0},\"_seq_no\":1,\"_primary_term\":1}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}+indexDocument :: (ToJSON doc, MonadBH m) => IndexName+ -> IndexDocumentSettings -> doc -> DocId -> m Reply+indexDocument (IndexName indexName) cfg document (DocId docId) =+ bindM2 put url (return body)+ where url = addQuery (indexQueryString cfg (DocId docId)) <$> joinPath [indexName, "_doc", docId]+ jsonBody = encodeDocument cfg document+ body = Just (encode jsonBody)++-- | 'updateDocument' provides a way to perform an partial update of a+-- an already indexed document.+updateDocument :: (ToJSON patch, MonadBH m) => IndexName+ -> IndexDocumentSettings -> patch -> DocId -> m Reply+updateDocument (IndexName indexName) cfg patch (DocId docId) =+ bindM2 post url (return body)+ where url = addQuery (indexQueryString cfg (DocId docId)) <$>+ joinPath [indexName, "_update", docId]+ jsonBody = encodeDocument cfg patch+ body = Just (encode $ object ["doc" .= jsonBody])++{- From ES docs:+ Parent and child documents must be indexed on the same shard.+ This means that the same routing value needs to be provided when getting, deleting, or updating a child document.++ Parent/Child support in Bloodhound requires MUCH more love.+ To work it around for now (and to support the existing unit test) we route "parent" documents to their "_id"+ (which is the default strategy for the ES), and route all child documents to their parens' "_id"++ However, it may not be flexible enough for some corner cases.++ Buld operations are completely unaware of "routing" and are probably broken in that matter.+ Or perhaps they always were, because the old "_parent" would also have this requirement.+-}+indexQueryString :: IndexDocumentSettings -> DocId -> [(Text, Maybe Text)]+indexQueryString cfg (DocId docId) =+ versionCtlParams cfg <> routeParams+ where+ routeParams = case idsJoinRelation cfg of+ Nothing -> []+ Just (ParentDocument _ _) -> [("routing", Just docId)]+ Just (ChildDocument _ _ (DocId pid)) -> [("routing", Just pid)]++encodeDocument :: ToJSON doc => IndexDocumentSettings -> doc -> Value+encodeDocument cfg document =+ case idsJoinRelation cfg of+ Nothing -> toJSON document+ Just (ParentDocument (FieldName field) name) ->+ mergeObjects (toJSON document) (object [field .= name])+ Just (ChildDocument (FieldName field) name parent) ->+ mergeObjects (toJSON document) (object [field .= object ["name" .= name, "parent" .= parent]])+ where+ mergeObjects (Object a) (Object b) = Object (a <> b)+ mergeObjects _ _ = error "Impossible happened: both document body and join parameters must be objects"++-- | 'deleteDocument' is the primary way to delete a single document.+--+-- >>> _ <- runBH' $ deleteDocument testIndex (DocId "1")+deleteDocument :: MonadBH m => IndexName -> DocId -> m Reply+deleteDocument (IndexName indexName) (DocId docId) =+ delete =<< joinPath [indexName, "_doc", docId]++-- | 'deleteByQuery' performs a deletion on every document that matches a query.+--+-- >>> let query = TermQuery (Term "user" "bitemyapp") Nothing+-- >>> _ <- runBH' $ deleteDocument testIndex query+deleteByQuery :: MonadBH m => IndexName -> Query -> m Reply+deleteByQuery (IndexName indexName) query =+ bindM2 post url (return body)+ where+ url = joinPath [indexName, "_delete_by_query"]+ body = Just (encode $ object [ "query" .= query ])++-- | 'bulk' uses+-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html Elasticsearch's bulk API>+-- to perform bulk operations. The 'BulkOperation' data type encodes the+-- index\/update\/delete\/create operations. You pass a 'V.Vector' of 'BulkOperation's+-- and a 'Server' to 'bulk' in order to send those operations up to your Elasticsearch+-- server to be performed. I changed from [BulkOperation] to a Vector due to memory overhead.+--+-- >>> let stream = V.fromList [BulkIndex testIndex (DocId "2") (toJSON (BulkTest "blah"))]+-- >>> _ <- runBH' $ bulk stream+-- >>> _ <- runBH' $ refreshIndex testIndex+bulk :: MonadBH m => V.Vector BulkOperation -> m Reply+bulk bulkOps =+ bindM2 post url (return body)+ where+ url = joinPath ["_bulk"]+ body = Just $ encodeBulkOperations bulkOps++-- | 'encodeBulkOperations' is a convenience function for dumping a vector of 'BulkOperation'+-- into an 'L.ByteString'+--+-- >>> let bulkOps = V.fromList [BulkIndex testIndex (DocId "2") (toJSON (BulkTest "blah"))]+-- >>> encodeBulkOperations bulkOps+-- "\n{\"index\":{\"_id\":\"2\",\"_index\":\"twitter\"}}\n{\"name\":\"blah\"}\n"+encodeBulkOperations :: V.Vector BulkOperation -> L.ByteString+encodeBulkOperations stream = collapsed where+ blobs =+ fmap encodeBulkOperation stream+ mashedTaters =+ mash (mempty :: Builder) blobs+ collapsed =+ toLazyByteString $ mappend mashedTaters (byteString "\n")++mash :: Builder -> V.Vector L.ByteString -> Builder+mash = V.foldl' (\b x -> b <> byteString "\n" <> lazyByteString x)++mkBulkStreamValue :: Text -> Text -> Text -> Value+mkBulkStreamValue operation indexName docId =+ object [operation .=+ object [ "_index" .= indexName+ , "_id" .= docId]]++mkBulkStreamValueAuto :: Text -> Text -> Value+mkBulkStreamValueAuto operation indexName =+ object [operation .=+ object [ "_index" .= indexName ]]++mkBulkStreamValueWithMeta :: [UpsertActionMetadata] -> Text -> Text -> Text -> Value+mkBulkStreamValueWithMeta meta operation indexName docId =+ object [ operation .=+ object ([ "_index" .= indexName+ , "_id" .= docId]+ <> (buildUpsertActionMetadata <$> meta))]++-- | 'encodeBulkOperation' is a convenience function for dumping a single 'BulkOperation'+-- into an 'L.ByteString'+--+-- >>> let bulkOp = BulkIndex testIndex (DocId "2") (toJSON (BulkTest "blah"))+-- >>> encodeBulkOperation bulkOp+-- "{\"index\":{\"_id\":\"2\",\"_index\":\"twitter\"}}\n{\"name\":\"blah\"}"+encodeBulkOperation :: BulkOperation -> L.ByteString+encodeBulkOperation (BulkIndex (IndexName indexName) (DocId docId) value) = blob+ where metadata = mkBulkStreamValue "index" indexName docId+ blob = encode metadata `mappend` "\n" `mappend` encode value++encodeBulkOperation (BulkIndexAuto (IndexName indexName) value) = blob+ where metadata = mkBulkStreamValueAuto "index" indexName+ blob = encode metadata `mappend` "\n" `mappend` encode value++encodeBulkOperation (BulkIndexEncodingAuto (IndexName indexName) encoding) = toLazyByteString blob+ where metadata = toEncoding (mkBulkStreamValueAuto "index" indexName)+ blob = fromEncoding metadata <> "\n" <> fromEncoding encoding++encodeBulkOperation (BulkCreate (IndexName indexName) (DocId docId) value) = blob+ where metadata = mkBulkStreamValue "create" indexName docId+ blob = encode metadata `mappend` "\n" `mappend` encode value++encodeBulkOperation (BulkDelete (IndexName indexName) (DocId docId)) = blob+ where metadata = mkBulkStreamValue "delete" indexName docId+ blob = encode metadata++encodeBulkOperation (BulkUpdate (IndexName indexName) (DocId docId) value) = blob+ where metadata = mkBulkStreamValue "update" indexName docId+ doc = object ["doc" .= value]+ blob = encode metadata `mappend` "\n" `mappend` encode doc++encodeBulkOperation (BulkUpsert (IndexName indexName)+ (DocId docId)+ payload+ actionMeta) = blob+ where metadata = mkBulkStreamValueWithMeta actionMeta "update" indexName docId+ blob = encode metadata <> "\n" <> encode doc+ doc = case payload of+ UpsertDoc value -> object ["doc" .= value, "doc_as_upsert" .= True]+ UpsertScript scriptedUpsert script value ->+ let scup = if scriptedUpsert then ["scripted_upsert" .= True] else []+ upsert = ["upsert" .= value]+ in+ case (object (scup <> upsert), toJSON script) of+ (Object obj, Object jscript) -> Object $ jscript <> obj+ _ -> error "Impossible happened: serialising Script to Json should always be Object"++++encodeBulkOperation (BulkCreateEncoding (IndexName indexName) (DocId docId) encoding) =+ toLazyByteString blob+ where metadata = toEncoding (mkBulkStreamValue "create" indexName docId)+ blob = fromEncoding metadata <> "\n" <> fromEncoding encoding++-- | 'getDocument' is a straight-forward way to fetch a single document from+-- Elasticsearch using a 'Server', 'IndexName', and a 'DocId'.+-- The 'DocId' is the primary key for your Elasticsearch document.+--+-- >>> yourDoc <- runBH' $ getDocument testIndex (DocId "1")+getDocument :: MonadBH m => IndexName -> DocId -> m Reply+getDocument (IndexName indexName) (DocId docId) =+ get =<< joinPath [indexName, "_doc", docId]++-- | 'documentExists' enables you to check if a document exists.+documentExists :: MonadBH m => IndexName -> DocId -> m Bool+documentExists (IndexName indexName) (DocId docId) =+ fmap snd (existentialQuery =<< joinPath [indexName, "_doc", docId])++dispatchSearch :: MonadBH m => Text -> Search -> m Reply+dispatchSearch url search = post url' (Just (encode search))+ where url' = appendSearchTypeParam url (searchType search)++-- | 'searchAll', given a 'Search', will perform that search against all indexes+-- on an Elasticsearch server. Try to avoid doing this if it can be helped.+--+-- >>> let query = TermQuery (Term "user" "bitemyapp") Nothing+-- >>> let search = mkSearch (Just query) Nothing+-- >>> reply <- runBH' $ searchAll search+searchAll :: MonadBH m => Search -> m Reply+searchAll = bindM2 dispatchSearch url . return+ where url = joinPath ["_search"]++-- | 'searchByIndex', given a 'Search' and an 'IndexName', will perform that search+-- within an index on an Elasticsearch server.+--+-- >>> let query = TermQuery (Term "user" "bitemyapp") Nothing+-- >>> let search = mkSearch (Just query) Nothing+-- >>> reply <- runBH' $ searchByIndex testIndex search+searchByIndex :: MonadBH m => IndexName -> Search -> m Reply+searchByIndex (IndexName indexName) = bindM2 dispatchSearch url . return+ where url = joinPath [indexName, "_search"]++-- | 'searchByIndices' is a variant of 'searchByIndex' that executes a+-- 'Search' over many indices. This is much faster than using+-- 'mapM' to 'searchByIndex' over a collection since it only+-- causes a single HTTP request to be emitted.+searchByIndices :: MonadBH m => NonEmpty IndexName -> Search -> m Reply+searchByIndices ixs = bindM2 dispatchSearch url . return+ where url = joinPath [renderedIxs, "_search"]+ renderedIxs = T.intercalate (T.singleton ',') (map (\(IndexName t) -> t) (toList ixs))++dispatchSearchTemplate :: MonadBH m => Text -> SearchTemplate -> m Reply+dispatchSearchTemplate url search = post url (Just (encode search))++-- | 'searchByIndexTemplate', given a 'SearchTemplate' and an 'IndexName', will perform that search+-- within an index on an Elasticsearch server.+--+-- >>> let query = SearchTemplateSource "{\"query\": { \"match\" : { \"{{my_field}}\" : \"{{my_value}}\" } }, \"size\" : \"{{my_size}}\"}"+-- >>> let search = mkSearchTemplate (Right query) Nothing+-- >>> reply <- runBH' $ searchByIndexTemplate testIndex search+searchByIndexTemplate :: MonadBH m => IndexName -> SearchTemplate -> m Reply+searchByIndexTemplate (IndexName indexName) = bindM2 dispatchSearchTemplate url . return+ where url = joinPath [indexName, "_search", "template"]++-- | 'searchByIndicesTemplate' is a variant of 'searchByIndexTemplate' that executes a+-- 'SearchTemplate' over many indices. This is much faster than using+-- 'mapM' to 'searchByIndexTemplate' over a collection since it only+-- causes a single HTTP request to be emitted.+searchByIndicesTemplate :: MonadBH m => NonEmpty IndexName -> SearchTemplate -> m Reply+searchByIndicesTemplate ixs = bindM2 dispatchSearchTemplate url . return+ where url = joinPath [renderedIxs, "_search", "template"]+ renderedIxs = T.intercalate (T.singleton ',') (map (\(IndexName t) -> t) (toList ixs))++-- | 'storeSearchTemplate', saves a 'SearchTemplateSource' to be used later.+storeSearchTemplate :: MonadBH m => SearchTemplateId -> SearchTemplateSource -> m Reply+storeSearchTemplate (SearchTemplateId tid) ts =+ url >>= flip post (Just (encode json))+ where+ url = joinPath ["_scripts", tid]+ json = Object $ HM.fromList ["script" .= Object ("lang" .= String "mustache" <> "source" .= ts) ]++-- | 'getSearchTemplate', get info of an stored 'SearchTemplateSource'.+getSearchTemplate :: MonadBH m => SearchTemplateId -> m Reply +getSearchTemplate (SearchTemplateId tid) =+ url >>= get+ where+ url = joinPath ["_scripts", tid]++-- | 'storeSearchTemplate', +deleteSearchTemplate :: MonadBH m => SearchTemplateId -> m Reply +deleteSearchTemplate (SearchTemplateId tid) =+ url >>= delete+ where+ url = joinPath ["_scripts", tid]++-- | For a given search, request a scroll for efficient streaming of+-- search results. Note that the search is put into 'SearchTypeScan'+-- mode and thus results will not be sorted. Combine this with+-- 'advanceScroll' to efficiently stream through the full result set+getInitialScroll ::+ (FromJSON a, MonadThrow m, MonadBH m) => IndexName ->+ Search ->+ m (Either EsError (SearchResult a))+getInitialScroll (IndexName indexName) search' = do+ let url = addQuery params <$> joinPath [indexName, "_search"]+ params = [("scroll", Just "1m")]+ sorting = Just [DefaultSortSpec $ mkSort (FieldName "_doc") Descending]+ search = search' { sortBody = sorting }+ resp' <- bindM2 dispatchSearch url (return search)+ parseEsResponse resp'++-- | For a given search, request a scroll for efficient streaming of+-- search results. Combine this with 'advanceScroll' to efficiently+-- stream through the full result set. Note that this search respects+-- sorting and may be less efficient than 'getInitialScroll'.+getInitialSortedScroll ::+ (FromJSON a, MonadThrow m, MonadBH m) => IndexName ->+ Search ->+ m (Either EsError (SearchResult a))+getInitialSortedScroll (IndexName indexName) search = do+ let url = addQuery params <$> joinPath [indexName, "_search"]+ params = [("scroll", Just "1m")]+ resp' <- bindM2 dispatchSearch url (return search)+ parseEsResponse resp'++scroll' :: (FromJSON a, MonadBH m, MonadThrow m) => Maybe ScrollId ->+ m ([Hit a], Maybe ScrollId)+scroll' Nothing = return ([], Nothing)+scroll' (Just sid) = do+ res <- advanceScroll sid 60+ case res of+ Right SearchResult {..} -> return (hits searchHits, scrollId)+ Left _ -> return ([], Nothing)++-- | Use the given scroll to fetch the next page of documents. If there are no+-- further pages, 'SearchResult.searchHits.hits' will be '[]'.+advanceScroll+ :: ( FromJSON a+ , MonadBH m+ , MonadThrow m+ )+ => ScrollId+ -> NominalDiffTime+ -- ^ How long should the snapshot of data be kept around? This timeout is updated every time 'advanceScroll' is used, so don't feel the need to set it to the entire duration of your search processing. Note that durations < 1s will be rounded up. Also note that 'NominalDiffTime' is an instance of Num so literals like 60 will be interpreted as seconds. 60s is a reasonable default.+ -> m (Either EsError (SearchResult a))+advanceScroll (ScrollId sid) scroll = do+ url <- joinPath ["_search", "scroll"]+ resp <- post url (Just $ encode scrollObject)+ parseEsResponse resp+ where scrollTime = showText secs <> "s"+ secs :: Integer+ secs = round scroll++ scrollObject = object [ "scroll" .= scrollTime+ , "scroll_id" .= sid+ ]++simpleAccumulator ::+ (FromJSON a, MonadBH m, MonadThrow m) =>+ [Hit a] ->+ ([Hit a], Maybe ScrollId) ->+ m ([Hit a], Maybe ScrollId)+simpleAccumulator oldHits (newHits, Nothing) = return (oldHits ++ newHits, Nothing)+simpleAccumulator oldHits ([], _) = return (oldHits, Nothing)+simpleAccumulator oldHits (newHits, msid) = do+ (newHits', msid') <- scroll' msid+ simpleAccumulator (oldHits ++ newHits) (newHits', msid')++-- | 'scanSearch' uses the 'scroll' API of elastic,+-- for a given 'IndexName'. Note that this will+-- consume the entire search result set and will be doing O(n) list+-- appends so this may not be suitable for large result sets. In that+-- case, 'getInitialScroll' and 'advanceScroll' are good low level+-- tools. You should be able to hook them up trivially to conduit,+-- pipes, or your favorite streaming IO abstraction of choice. Note+-- that ordering on the search would destroy performance and thus is+-- ignored.+scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName+ -> Search+ -> m [Hit a]+scanSearch indexName search = do+ initialSearchResult <- getInitialScroll indexName search+ let (hits', josh) = case initialSearchResult of+ Right SearchResult {..} -> (hits searchHits, scrollId)+ Left _ -> ([], Nothing)+ (totalHits, _) <- simpleAccumulator [] (hits', josh)+ return totalHits++-- | 'mkSearch' is a helper function for defaulting additional fields of a 'Search'+-- to Nothing in case you only care about your 'Query' and 'Filter'. Use record update+-- syntax if you want to add things like aggregations or highlights while still using+-- this helper function.+--+-- >>> let query = TermQuery (Term "user" "bitemyapp") Nothing+-- >>> mkSearch (Just query) Nothing+-- Search {queryBody = Just (TermQuery (Term {termField = "user", termValue = "bitemyapp"}) Nothing), filterBody = Nothing, searchAfterKey = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 0, size = Size 10, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}+mkSearch :: Maybe Query -> Maybe Filter -> Search+mkSearch query filter = Search query filter Nothing Nothing Nothing False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing Nothing++-- | 'mkAggregateSearch' is a helper function that defaults everything in a 'Search' except for+-- the 'Query' and the 'Aggregation'.+--+-- >>> let terms = TermsAgg $ (mkTermsAggregation "user") { termCollectMode = Just BreadthFirst }+-- >>> terms+-- TermsAgg (TermsAggregation {term = Left "user", termInclude = Nothing, termExclude = Nothing, termOrder = Nothing, termMinDocCount = Nothing, termSize = Nothing, termShardSize = Nothing, termCollectMode = Just BreadthFirst, termExecutionHint = Nothing, termAggs = Nothing})+-- >>> let myAggregation = mkAggregateSearch Nothing $ mkAggregations "users" terms+mkAggregateSearch :: Maybe Query -> Aggregations -> Search+mkAggregateSearch query mkSearchAggs = Search query Nothing Nothing (Just mkSearchAggs) Nothing False (From 0) (Size 0) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing Nothing++-- | 'mkHighlightSearch' is a helper function that defaults everything in a 'Search' except for+-- the 'Query' and the 'Aggregation'.+--+-- >>> let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")+-- >>> let testHighlight = Highlights Nothing [FieldHighlight (FieldName "message") Nothing]+-- >>> let search = mkHighlightSearch (Just query) testHighlight+mkHighlightSearch :: Maybe Query -> Highlights -> Search+mkHighlightSearch query searchHighlights = Search query Nothing Nothing Nothing (Just searchHighlights) False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing Nothing++-- | 'mkSearchTemplate' is a helper function for defaulting additional fields of a 'SearchTemplate'+-- to Nothing. Use record update syntax if you want to add things.+mkSearchTemplate :: Either SearchTemplateId SearchTemplateSource -> TemplateQueryKeyValuePairs -> SearchTemplate+mkSearchTemplate id params = SearchTemplate id params Nothing Nothing++-- | 'pageSearch' is a helper function that takes a search and assigns the from+-- and size fields for the search. The from parameter defines the offset+-- from the first result you want to fetch. The size parameter allows you to+-- configure the maximum amount of hits to be returned.+--+-- >>> let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")+-- >>> let search = mkSearch (Just query) Nothing+-- >>> search+-- Search {queryBody = Just (QueryMatchQuery (MatchQuery {matchQueryField = FieldName "_all", matchQueryQueryString = QueryString "haskell", matchQueryOperator = Or, matchQueryZeroTerms = ZeroTermsNone, matchQueryCutoffFrequency = Nothing, matchQueryMatchType = Nothing, matchQueryAnalyzer = Nothing, matchQueryMaxExpansions = Nothing, matchQueryLenient = Nothing, matchQueryBoost = Nothing})), filterBody = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 0, size = Size 10, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}+-- >>> pageSearch (From 10) (Size 100) search+-- Search {queryBody = Just (QueryMatchQuery (MatchQuery {matchQueryField = FieldName "_all", matchQueryQueryString = QueryString "haskell", matchQueryOperator = Or, matchQueryZeroTerms = ZeroTermsNone, matchQueryCutoffFrequency = Nothing, matchQueryMatchType = Nothing, matchQueryAnalyzer = Nothing, matchQueryMaxExpansions = Nothing, matchQueryLenient = Nothing, matchQueryBoost = Nothing})), filterBody = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 10, size = Size 100, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}+pageSearch :: From -- ^ The result offset+ -> Size -- ^ The number of results to return+ -> Search -- ^ The current seach+ -> Search -- ^ The paged search+pageSearch resultOffset pageSize search = search { from = resultOffset, size = pageSize }++parseUrl' :: MonadThrow m => Text -> m Request+parseUrl' t = parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack t))++-- | Was there an optimistic concurrency control conflict when+-- indexing a document?+isVersionConflict :: Reply -> Bool+isVersionConflict = statusCheck (== 409)++isSuccess :: Reply -> Bool+isSuccess = statusCheck (inRange (200, 299))++isCreated :: Reply -> Bool+isCreated = statusCheck (== 201)++statusCheck :: (Int -> Bool) -> Reply -> Bool+statusCheck prd = prd . NHTS.statusCode . responseStatus++-- | This is a hook that can be set via the 'bhRequestHook' function+-- that will authenticate all requests using an HTTP Basic+-- Authentication header. Note that it is *strongly* recommended that+-- this option only be used over an SSL connection.+--+-- >> (mkBHEnv myServer myManager) { bhRequestHook = basicAuthHook (EsUsername "myuser") (EsPassword "mypass") }+basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request+basicAuthHook (EsUsername u) (EsPassword p) = return . applyBasicAuth u' p'+ where u' = T.encodeUtf8 u+ p' = T.encodeUtf8 p+++boolQP :: Bool -> Text+boolQP True = "true"+boolQP False = "false"++countByIndex :: (MonadBH m, MonadThrow m) => IndexName -> CountQuery -> m (Either EsError CountResponse)+countByIndex (IndexName indexName) q = do+ url <- joinPath [indexName, "_count"]+ parseEsResponse =<< post url (Just (encode q))
src/Database/Bloodhound/Common/Script.hs view
@@ -7,7 +7,7 @@ import qualified Data.HashMap.Strict as HM -import Database.V5.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Newtypes newtype ScriptFields = ScriptFields (HM.HashMap ScriptFieldName ScriptFieldValue)@@ -16,22 +16,18 @@ type ScriptFieldName = Text type ScriptFieldValue = Value +data ScriptSource = ScriptId Text+ | ScriptInline Text deriving (Eq, Show)+ data Script = Script { scriptLanguage :: Maybe ScriptLanguage- , scriptInline :: Maybe ScriptInline- , scriptStored :: Maybe ScriptId+ , scriptSource :: ScriptSource , scriptParams :: Maybe ScriptParams } deriving (Eq, Show) newtype ScriptLanguage = ScriptLanguage Text deriving (Eq, Show, FromJSON, ToJSON) -newtype ScriptInline =- ScriptInline Text deriving (Eq, Show, FromJSON, ToJSON)--newtype ScriptId =- ScriptId Text deriving (Eq, Show, FromJSON, ToJSON)- newtype ScriptParams = ScriptParams (HM.HashMap ScriptParamName ScriptParamValue) deriving (Eq, Show)@@ -154,21 +150,29 @@ parseJSON _ = fail "error parsing ScriptFields" instance ToJSON Script where- toJSON (Script lang inline stored params) =- object [ "script" .= omitNulls base ]- where base = [ "lang" .= lang- , "inline" .= inline- , "stored" .= stored- , "params" .= params ]+ toJSON script =+ object [ "script" .= omitNulls (base script) ]+ where+ base (Script lang (ScriptInline source) params) =+ ["lang" .= lang, "source" .= source, "params" .= params]+ base (Script lang (ScriptId id) params) =+ ["lang" .= lang, "id" .= id, "params" .= params] instance FromJSON Script where parseJSON = withObject "Script" parse- where parse o = o .: "script" >>= \o' ->- Script- <$> o' .:? "lang"- <*> o' .:? "inline"- <*> o' .:? "stored"- <*> o' .:? "params"+ where + parseSource o = do+ inline <- o .:? "source"+ id <- o .:? "id"+ return $ case (inline,id) of+ (Just x,Nothing) -> ScriptInline x+ (Nothing,Just x) -> ScriptId x+ (Nothing,Nothing) -> error "Script has to be either stored or inlined"+ (Just _,Just _) -> error "Script can't both be stored and inlined at the same time"+ parse o = o .: "script" >>= \o' -> Script+ <$> o' .:? "lang"+ <*> parseSource o'+ <*> o' .:? "params" instance ToJSON ScriptParams where toJSON (ScriptParams x) = Object x
+ src/Database/Bloodhound/Internal/Aggregation.hs view
@@ -0,0 +1,484 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Database.Bloodhound.Internal.Aggregation where++import Bloodhound.Import++import qualified Data.Aeson as Aeson+import qualified Data.HashMap.Strict as HM+import qualified Data.Map.Strict as M+import qualified Data.Text as T++import Database.Bloodhound.Internal.Client+import Database.Bloodhound.Internal.Highlight (HitHighlight)+import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query+import Database.Bloodhound.Internal.Sort++type Aggregations = M.Map Text Aggregation++emptyAggregations :: Aggregations+emptyAggregations = M.empty++mkAggregations :: Text -> Aggregation -> Aggregations+mkAggregations name aggregation = M.insert name aggregation emptyAggregations++data Aggregation = TermsAgg TermsAggregation+ | CardinalityAgg CardinalityAggregation+ | DateHistogramAgg DateHistogramAggregation+ | ValueCountAgg ValueCountAggregation+ | FilterAgg FilterAggregation+ | DateRangeAgg DateRangeAggregation+ | MissingAgg MissingAggregation+ | TopHitsAgg TopHitsAggregation+ | StatsAgg StatisticsAggregation+ deriving (Eq, Show)++instance ToJSON Aggregation where+ toJSON (TermsAgg (TermsAggregation term include exclude order minDocCount size shardSize collectMode executionHint termAggs)) =+ omitNulls ["terms" .= omitNulls [ toJSON' term,+ "include" .= include,+ "exclude" .= exclude,+ "order" .= order,+ "min_doc_count" .= minDocCount,+ "size" .= size,+ "shard_size" .= shardSize,+ "collect_mode" .= collectMode,+ "execution_hint" .= executionHint+ ],+ "aggs" .= termAggs ]+ where+ toJSON' x = case x of { Left y -> "field" .= y; Right y -> "script" .= y }++ toJSON (CardinalityAgg (CardinalityAggregation field precisionThreshold)) =+ object ["cardinality" .= omitNulls [ "field" .= field,+ "precisionThreshold" .= precisionThreshold+ ]+ ]++ toJSON (DateHistogramAgg+ (DateHistogramAggregation field interval format+ preZone postZone preOffset postOffset dateHistoAggs)) =+ omitNulls ["date_histogram" .= omitNulls [ "field" .= field,+ "interval" .= interval,+ "format" .= format,+ "pre_zone" .= preZone,+ "post_zone" .= postZone,+ "pre_offset" .= preOffset,+ "post_offset" .= postOffset+ ],+ "aggs" .= dateHistoAggs ]+ toJSON (ValueCountAgg a) = object ["value_count" .= v]+ where v = case a of+ (FieldValueCount (FieldName n)) ->+ object ["field" .= n]+ (ScriptValueCount s) ->+ object ["script" .= s]+ toJSON (FilterAgg (FilterAggregation filt ags)) =+ omitNulls [ "filter" .= filt+ , "aggs" .= ags]+ toJSON (DateRangeAgg a) = object [ "date_range" .= a+ ]+ toJSON (MissingAgg (MissingAggregation{..})) =+ object ["missing" .= object ["field" .= maField]]++ toJSON (TopHitsAgg (TopHitsAggregation mfrom msize msort)) =+ omitNulls ["top_hits" .= omitNulls [ "size" .= msize+ , "from" .= mfrom+ , "sort" .= msort+ ]+ ]++ toJSON (StatsAgg (StatisticsAggregation typ field)) =+ object [stType .= omitNulls [ "field" .= field ]]+ where+ stType | typ == Basic = "stats"+ | otherwise = "extended_stats"++data TopHitsAggregation = TopHitsAggregation+ { taFrom :: Maybe From+ , taSize :: Maybe Size+ , taSort :: Maybe Sort+ } deriving (Eq, Show)++data MissingAggregation = MissingAggregation+ { maField :: Text+ } deriving (Eq, Show)++data TermsAggregation = TermsAggregation+ { term :: Either Text Text+ , termInclude :: Maybe TermInclusion+ , termExclude :: Maybe TermInclusion+ , termOrder :: Maybe TermOrder+ , termMinDocCount :: Maybe Int+ , termSize :: Maybe Int+ , termShardSize :: Maybe Int+ , termCollectMode :: Maybe CollectionMode+ , termExecutionHint :: Maybe ExecutionHint+ , termAggs :: Maybe Aggregations+ } deriving (Eq, Show)++data CardinalityAggregation = CardinalityAggregation+ { cardinalityField :: FieldName,+ precisionThreshold :: Maybe Int+ } deriving (Eq, Show)++data DateHistogramAggregation = DateHistogramAggregation+ { dateField :: FieldName+ , dateInterval :: Interval+ , dateFormat :: Maybe Text+ -- pre and post deprecated in 1.5+ , datePreZone :: Maybe Text+ , datePostZone :: Maybe Text+ , datePreOffset :: Maybe Text+ , datePostOffset :: Maybe Text+ , dateAggs :: Maybe Aggregations+ } deriving (Eq, Show)++data DateRangeAggregation = DateRangeAggregation+ { draField :: FieldName+ , draFormat :: Maybe Text+ , draRanges :: NonEmpty DateRangeAggRange+ } deriving (Eq, Show)++instance ToJSON DateRangeAggregation where+ toJSON DateRangeAggregation {..} =+ omitNulls [ "field" .= draField+ , "format" .= draFormat+ , "ranges" .= toList draRanges+ ]++data DateRangeAggRange =+ DateRangeFrom DateMathExpr+ | DateRangeTo DateMathExpr+ | DateRangeFromAndTo DateMathExpr DateMathExpr+ deriving (Eq, Show)++instance ToJSON DateRangeAggRange where+ toJSON (DateRangeFrom e) = object [ "from" .= e ]+ toJSON (DateRangeTo e) = object [ "to" .= e ]+ toJSON (DateRangeFromAndTo f t) = object [ "from" .= f, "to" .= t ]++-- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html> for more information.+data ValueCountAggregation =+ FieldValueCount FieldName+ | ScriptValueCount Script+ deriving (Eq, Show)++-- | Single-bucket filter aggregations. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html#search-aggregations-bucket-filter-aggregation> for more information.+data FilterAggregation = FilterAggregation+ { faFilter :: Filter+ , faAggs :: Maybe Aggregations }+ deriving (Eq, Show)++data StatisticsAggregation = StatisticsAggregation+ { statsType :: StatsType+ , statsField :: FieldName }+ deriving (Eq, Show)++data StatsType+ = Basic+ | Extended+ deriving (Eq, Show)++mkTermsAggregation :: Text -> TermsAggregation+mkTermsAggregation t =+ TermsAggregation (Left t)+ Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing++mkTermsScriptAggregation :: Text -> TermsAggregation+mkTermsScriptAggregation t = TermsAggregation (Right t) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing++mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation+mkDateHistogram t i = DateHistogramAggregation t i Nothing Nothing Nothing Nothing Nothing Nothing++mkCardinalityAggregation :: FieldName -> CardinalityAggregation+mkCardinalityAggregation t = CardinalityAggregation t Nothing++mkStatsAggregation :: FieldName -> StatisticsAggregation+mkStatsAggregation = StatisticsAggregation Basic++mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation+mkExtendedStatsAggregation = StatisticsAggregation Extended++type AggregationResults = M.Map Text Value++class BucketAggregation a where+ key :: a -> BucketValue+ docCount :: a -> Int+ aggs :: a -> Maybe AggregationResults++data Bucket a = Bucket+ { buckets :: [a]+ } deriving (Read, Show)++instance (FromJSON a) => FromJSON (Bucket a) where+ parseJSON (Object v) = Bucket <$>+ v .: "buckets"+ parseJSON _ = mempty++data BucketValue = TextValue Text+ | ScientificValue Scientific+ | BoolValue Bool deriving (Read, Show)++instance FromJSON BucketValue where+ parseJSON (String t) = return $ TextValue t+ parseJSON (Number s) = return $ ScientificValue s+ parseJSON (Bool b) = return $ BoolValue b+ parseJSON _ = mempty++data TermInclusion = TermInclusion Text+ | TermPattern Text Text deriving (Eq, Show)++instance ToJSON TermInclusion where+ toJSON (TermInclusion x) = toJSON x+ toJSON (TermPattern pattern flags) =+ omitNulls [ "pattern" .= pattern+ , "flags" .= flags]++data TermOrder = TermOrder+ { termSortField :: Text+ , termSortOrder :: SortOrder } deriving (Eq, Show)++instance ToJSON TermOrder where+ toJSON (TermOrder termSortField termSortOrder) =+ object [termSortField .= termSortOrder]++data CollectionMode = BreadthFirst+ | DepthFirst deriving (Eq, Show)++instance ToJSON CollectionMode where+ toJSON BreadthFirst = "breadth_first"+ toJSON DepthFirst = "depth_first"++data ExecutionHint = GlobalOrdinals+ | Map deriving (Eq, Show)++instance ToJSON ExecutionHint where+ toJSON GlobalOrdinals = "global_ordinals"+ toJSON Map = "map"++-- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math> for more information.+data DateMathExpr =+ DateMathExpr DateMathAnchor [DateMathModifier]+ deriving (Eq, Show)++instance ToJSON DateMathExpr where+ toJSON (DateMathExpr a mods) = String (fmtA a <> mconcat (fmtMod <$> mods))+ where fmtA DMNow = "now"+ fmtA (DMDate date) = (T.pack $ showGregorian date) <> "||"+ fmtMod (AddTime n u) = "+" <> showText n <> fmtU u+ fmtMod (SubtractTime n u) = "-" <> showText n <> fmtU u+ fmtMod (RoundDownTo u) = "/" <> fmtU u+ fmtU DMYear = "y"+ fmtU DMMonth = "M"+ fmtU DMWeek = "w"+ fmtU DMDay = "d"+ fmtU DMHour = "h"+ fmtU DMMinute = "m"+ fmtU DMSecond = "s"++-- | Starting point for a date range. This along with the 'DateMathModifiers' gets you the date ES will start from.+data DateMathAnchor =+ DMNow+ | DMDate Day+ deriving (Eq, Show)++data DateMathModifier =+ AddTime Int DateMathUnit+ | SubtractTime Int DateMathUnit+ | RoundDownTo DateMathUnit+ deriving (Eq, Show)++data DateMathUnit =+ DMYear+ | DMMonth+ | DMWeek+ | DMDay+ | DMHour+ | DMMinute+ | DMSecond+ deriving (Eq, Show)++data TermsResult = TermsResult+ { termKey :: BucketValue+ , termsDocCount :: Int+ , termsAggs :: Maybe AggregationResults+ } deriving (Read, Show)++instance FromJSON TermsResult where+ parseJSON (Object v) = TermsResult <$>+ v .: "key" <*>+ v .: "doc_count" <*>+ (pure $ getNamedSubAgg v ["key", "doc_count"])+ parseJSON _ = mempty++instance BucketAggregation TermsResult where+ key = termKey+ docCount = termsDocCount+ aggs = termsAggs++data DateHistogramResult = DateHistogramResult+ { dateKey :: Int+ , dateKeyStr :: Maybe Text+ , dateDocCount :: Int+ , dateHistogramAggs :: Maybe AggregationResults+ } deriving (Show)++instance FromJSON DateHistogramResult where+ parseJSON (Object v) = DateHistogramResult <$>+ v .: "key" <*>+ v .:? "key_as_string" <*>+ v .: "doc_count" <*>+ (pure $ getNamedSubAgg v [ "key"+ , "doc_count"+ , "key_as_string"+ ]+ )+ parseJSON _ = mempty++instance BucketAggregation DateHistogramResult where+ key = TextValue . showText . dateKey+ docCount = dateDocCount+ aggs = dateHistogramAggs++data DateRangeResult = DateRangeResult+ { dateRangeKey :: Text+ , dateRangeFrom :: Maybe UTCTime+ , dateRangeFromAsString :: Maybe Text+ , dateRangeTo :: Maybe UTCTime+ , dateRangeToAsString :: Maybe Text+ , dateRangeDocCount :: Int+ , dateRangeAggs :: Maybe AggregationResults+ } deriving (Eq, Show)++instance FromJSON DateRangeResult where+ parseJSON = withObject "DateRangeResult" parse+ where parse v = DateRangeResult <$>+ v .: "key" <*>+ (fmap posixMS <$> v .:? "from") <*>+ v .:? "from_as_string" <*>+ (fmap posixMS <$> v .:? "to") <*>+ v .:? "to_as_string" <*>+ v .: "doc_count" <*>+ (pure $ getNamedSubAgg v [ "key"+ , "from"+ , "from_as_string"+ , "to"+ , "to_as_string"+ , "doc_count"+ ]+ )++instance BucketAggregation DateRangeResult where+ key = TextValue . dateRangeKey+ docCount = dateRangeDocCount+ aggs = dateRangeAggs++toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)+toTerms = toAggResult++toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)+toDateHistogram = toAggResult++toMissing :: Text -> AggregationResults -> Maybe MissingResult+toMissing = toAggResult++toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)+toTopHits = toAggResult++toAggResult :: (FromJSON a) => Text -> AggregationResults -> Maybe a+toAggResult t a = M.lookup t a >>= deserialize+ where deserialize = parseMaybe parseJSON++-- Try to get an AggregationResults when we don't know the+-- field name. We filter out the known keys to try to minimize the noise.+getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults+getNamedSubAgg o knownKeys = maggRes+ where unknownKeys = HM.filterWithKey (\k _ -> k `notElem` knownKeys) o+ maggRes+ | HM.null unknownKeys = Nothing+ | otherwise = Just . M.fromList $ HM.toList unknownKeys++data MissingResult = MissingResult+ { missingDocCount :: Int+ } deriving (Show)++instance FromJSON MissingResult where+ parseJSON = withObject "MissingResult" parse+ where parse v = MissingResult <$> v .: "doc_count"++data TopHitResult a = TopHitResult+ { tarHits :: (SearchHits a)+ } deriving Show++instance (FromJSON a) => FromJSON (TopHitResult a) where+ parseJSON (Object v) = TopHitResult <$>+ v .: "hits"+ parseJSON _ = fail "Failure in FromJSON (TopHitResult a)"++data HitsTotalRelation = HTR_EQ | HTR_GTE deriving (Eq, Show)++instance FromJSON HitsTotalRelation where+ parseJSON (String "eq") = pure HTR_EQ+ parseJSON (String "gte") = pure HTR_GTE+ parseJSON _ = empty++data HitsTotal =+ HitsTotal { value :: Int+ , relation :: HitsTotalRelation } deriving (Eq, Show)++instance FromJSON HitsTotal where+ parseJSON (Object v) = HitsTotal <$>+ v .: "value" <*>+ v .: "relation"+ parseJSON _ = empty++instance Semigroup HitsTotal where+ (HitsTotal ta HTR_EQ) <> (HitsTotal tb HTR_EQ) = HitsTotal (ta + tb) HTR_EQ+ (HitsTotal ta HTR_GTE) <> (HitsTotal tb _) = HitsTotal (ta + tb) HTR_GTE+ (HitsTotal ta _) <> (HitsTotal tb HTR_GTE) = HitsTotal (ta + tb) HTR_GTE++data SearchHits a =+ SearchHits { hitsTotal :: HitsTotal+ , maxScore :: Score+ , hits :: [Hit a] } deriving (Eq, Show)++instance (FromJSON a) => FromJSON (SearchHits a) where+ parseJSON (Object v) = SearchHits <$>+ v .: "total" <*>+ v .: "max_score" <*>+ v .: "hits"+ parseJSON _ = empty++instance Semigroup (SearchHits a) where+ (SearchHits ta ma ha) <> (SearchHits tb mb hb) =+ SearchHits (ta <> tb) (max ma mb) (ha <> hb)++instance Monoid (SearchHits a) where+ mempty = SearchHits (HitsTotal 0 HTR_EQ) Nothing mempty+ mappend = (<>)++type SearchAfterKey = [Aeson.Value]++data Hit a =+ Hit { hitIndex :: IndexName+ , hitDocId :: DocId+ , hitScore :: Score+ , hitSource :: Maybe a+ , hitSort :: Maybe SearchAfterKey+ , hitFields :: Maybe HitFields+ , hitHighlight :: Maybe HitHighlight } deriving (Eq, Show)++instance (FromJSON a) => FromJSON (Hit a) where+ parseJSON (Object v) = Hit <$>+ v .: "_index" <*>+ v .: "_id" <*>+ v .: "_score" <*>+ v .:? "_source" <*>+ v .:? "sort" <*>+ v .:? "fields" <*>+ v .:? "highlight"+ parseJSON _ = empty
+ src/Database/Bloodhound/Internal/Analysis.hs view
@@ -0,0 +1,379 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}++module Database.Bloodhound.Internal.Analysis where++import Bloodhound.Import++import qualified Data.Map.Strict as M+import qualified Data.Text as T++import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.StringlyTyped++data Analysis = Analysis+ { analysisAnalyzer :: M.Map Text AnalyzerDefinition+ , analysisTokenizer :: M.Map Text TokenizerDefinition+ , analysisTokenFilter :: M.Map Text TokenFilterDefinition+ , analysisCharFilter :: M.Map Text CharFilterDefinition+ } deriving (Eq, Show)++instance ToJSON Analysis where+ toJSON (Analysis analyzer tokenizer tokenFilter charFilter) = object+ [ "analyzer" .= analyzer+ , "tokenizer" .= tokenizer+ , "filter" .= tokenFilter+ , "char_filter" .= charFilter+ ]++instance FromJSON Analysis where+ parseJSON = withObject "Analysis" $ \m -> Analysis+ <$> m .: "analyzer"+ <*> m .:? "tokenizer" .!= M.empty+ <*> m .:? "filter" .!= M.empty+ <*> m .:? "char_filter" .!= M.empty++newtype Tokenizer =+ Tokenizer Text+ deriving (Eq, Show, ToJSON, FromJSON)++data AnalyzerDefinition = AnalyzerDefinition+ { analyzerDefinitionTokenizer :: Maybe Tokenizer+ , analyzerDefinitionFilter :: [TokenFilter]+ , analyzerDefinitionCharFilter :: [CharFilter]+ } deriving (Eq,Show)++instance ToJSON AnalyzerDefinition where+ toJSON (AnalyzerDefinition tokenizer tokenFilter charFilter) =+ object $ catMaybes+ [ fmap ("tokenizer" .=) tokenizer+ , Just $ "filter" .= tokenFilter+ , Just $ "char_filter" .= charFilter+ ]++instance FromJSON AnalyzerDefinition where+ parseJSON = withObject "AnalyzerDefinition" $ \m -> AnalyzerDefinition+ <$> m .:? "tokenizer"+ <*> m .:? "filter" .!= []+ <*> m .:? "char_filter" .!= []++-- | Character filters are used to preprocess the stream of characters+-- before it is passed to the tokenizer.+data CharFilterDefinition+ = CharFilterDefinitionMapping (M.Map Text Text)+ | CharFilterDefinitionPatternReplace+ { charFilterDefinitionPatternReplacePattern :: Text+ , charFilterDefinitionPatternReplaceReplacement :: Text+ , charFilterDefinitionPatternReplaceFlags :: Maybe Text+ }+ deriving (Eq, Show)++instance ToJSON CharFilterDefinition where+ toJSON (CharFilterDefinitionMapping ms) = object+ [ "type" .= ("mapping" :: Text)+ , "mappings" .= [a <> " => " <> b | (a, b) <- M.toList ms] ]+ toJSON (CharFilterDefinitionPatternReplace pat repl flags) = object $+ [ "type" .= ("pattern_replace" :: Text)+ , "pattern" .= pat+ , "replacement" .= repl+ ] ++ maybe [] (\f -> ["flags" .= f]) flags++instance FromJSON CharFilterDefinition where+ parseJSON = withObject "CharFilterDefinition" $ \m -> do+ t <- m .: "type"+ case (t :: Text) of+ "mapping" -> CharFilterDefinitionMapping . M.fromList <$> ms+ where+ ms = m .: "mappings" >>= mapM parseMapping+ parseMapping kv = case T.splitOn "=>" kv of+ (k:vs) -> pure (T.strip k, T.strip $ T.concat vs)+ _ -> fail "mapping is not of the format key => value"+ "pattern_replace" -> CharFilterDefinitionPatternReplace+ <$> m .: "pattern" <*> m .: "replacement" <*> m .:? "flags"+ _ -> fail ("unrecognized character filter type: " ++ T.unpack t)++newtype TokenizerDefinition =+ TokenizerDefinitionNgram Ngram+ deriving (Eq,Show)++instance ToJSON TokenizerDefinition where+ toJSON x = case x of+ TokenizerDefinitionNgram (Ngram minGram maxGram tokenChars) -> object+ [ "type" .= ("ngram" :: Text)+ , "min_gram" .= minGram+ , "max_gram" .= maxGram+ , "token_chars" .= tokenChars+ ]++instance FromJSON TokenizerDefinition where+ parseJSON = withObject "TokenizerDefinition" $ \m -> do+ typ <- m .: "type" :: Parser Text+ case typ of+ "ngram" -> fmap TokenizerDefinitionNgram $ Ngram+ <$> fmap unStringlyTypedInt (m .: "min_gram")+ <*> fmap unStringlyTypedInt (m .: "max_gram")+ <*> m .: "token_chars"+ _ -> fail "invalid TokenizerDefinition"++data Ngram = Ngram+ { ngramMinGram :: Int+ , ngramMaxGram :: Int+ , ngramTokenChars :: [TokenChar]+ } deriving (Eq,Show)++data TokenChar =+ TokenLetter+ | TokenDigit+ | TokenWhitespace+ | TokenPunctuation+ | TokenSymbol+ deriving (Eq,Show)++instance ToJSON TokenChar where+ toJSON t = String $ case t of+ TokenLetter -> "letter"+ TokenDigit -> "digit"+ TokenWhitespace -> "whitespace"+ TokenPunctuation -> "punctuation"+ TokenSymbol -> "symbol"++instance FromJSON TokenChar where+ parseJSON = withText "TokenChar" $ \t -> case t of+ "letter" -> return TokenLetter+ "digit" -> return TokenDigit+ "whitespace" -> return TokenWhitespace+ "punctuation" -> return TokenPunctuation+ "symbol" -> return TokenSymbol+ _ -> fail "invalid TokenChar"++-- | Token filters are used to create custom analyzers.+data TokenFilterDefinition+ = TokenFilterDefinitionLowercase (Maybe Language)+ | TokenFilterDefinitionUppercase (Maybe Language)+ | TokenFilterDefinitionApostrophe+ | TokenFilterDefinitionReverse+ | TokenFilterDefinitionSnowball Language+ | TokenFilterDefinitionShingle Shingle+ | TokenFilterDefinitionStemmer Language+ | TokenFilterDefinitionStop (Either Language [StopWord])+ deriving (Eq, Show)++instance ToJSON TokenFilterDefinition where+ toJSON x = case x of+ TokenFilterDefinitionLowercase mlang -> object $ catMaybes+ [ Just $ "type" .= ("lowercase" :: Text)+ , fmap (\lang -> "language" .= languageToText lang) mlang+ ]+ TokenFilterDefinitionUppercase mlang -> object $ catMaybes+ [ Just $ "type" .= ("uppercase" :: Text)+ , fmap (\lang -> "language" .= languageToText lang) mlang+ ]+ TokenFilterDefinitionApostrophe -> object+ [ "type" .= ("apostrophe" :: Text)+ ]+ TokenFilterDefinitionReverse -> object+ [ "type" .= ("reverse" :: Text)+ ]+ TokenFilterDefinitionSnowball lang -> object+ [ "type" .= ("snowball" :: Text)+ , "language" .= languageToText lang+ ]+ TokenFilterDefinitionShingle s -> object+ [ "type" .= ("shingle" :: Text)+ , "max_shingle_size" .= shingleMaxSize s+ , "min_shingle_size" .= shingleMinSize s+ , "output_unigrams" .= shingleOutputUnigrams s+ , "output_unigrams_if_no_shingles" .= shingleOutputUnigramsIfNoShingles s+ , "token_separator" .= shingleTokenSeparator s+ , "filler_token" .= shingleFillerToken s+ ]+ TokenFilterDefinitionStemmer lang -> object+ [ "type" .= ("stemmer" :: Text)+ , "language" .= languageToText lang+ ]+ TokenFilterDefinitionStop stop -> object+ [ "type" .= ("stop" :: Text)+ , "stopwords" .= case stop of+ Left lang -> String $ "_" <> languageToText lang <> "_"+ Right stops -> toJSON stops+ ]++instance FromJSON TokenFilterDefinition where+ parseJSON = withObject "TokenFilterDefinition" $ \m -> do+ t <- m .: "type"+ case (t :: Text) of+ "reverse" -> return TokenFilterDefinitionReverse+ "apostrophe" -> return TokenFilterDefinitionApostrophe+ "lowercase" -> TokenFilterDefinitionLowercase+ <$> m .:? "language"+ "uppercase" -> TokenFilterDefinitionUppercase+ <$> m .:? "language"+ "snowball" -> TokenFilterDefinitionSnowball+ <$> m .: "language"+ "shingle" -> fmap TokenFilterDefinitionShingle $ Shingle+ <$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2+ <*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2+ <*> (fmap.fmap) unStringlyTypedBool (m .:? "output_unigrams") .!= True+ <*> (fmap.fmap) unStringlyTypedBool (m .:? "output_unigrams_if_no_shingles") .!= False+ <*> m .:? "token_separator" .!= " "+ <*> m .:? "filler_token" .!= "_"+ "stemmer" -> TokenFilterDefinitionStemmer+ <$> m .: "language"+ "stop" -> do+ stop <- m .: "stopwords"+ stop' <- case stop of+ String lang ->+ fmap Left+ . parseJSON+ . String+ . T.drop 1+ . T.dropEnd 1 $ lang+ _ -> Right <$> parseJSON stop+ return (TokenFilterDefinitionStop stop')+ _ -> fail ("unrecognized token filter type: " ++ T.unpack t)++-- | The set of languages that can be passed to various analyzers,+-- filters, etc. in Elasticsearch. Most data types in this module+-- that have a 'Language' field are actually only actually to+-- handle a subset of these languages. Consult the official+-- Elasticsearch documentation to see what is actually supported.+data Language+ = Arabic+ | Armenian+ | Basque+ | Bengali+ | Brazilian+ | Bulgarian+ | Catalan+ | Cjk+ | Czech+ | Danish+ | Dutch+ | English+ | Finnish+ | French+ | Galician+ | German+ | German2+ | Greek+ | Hindi+ | Hungarian+ | Indonesian+ | Irish+ | Italian+ | Kp+ | Latvian+ | Lithuanian+ | Lovins+ | Norwegian+ | Persian+ | Porter+ | Portuguese+ | Romanian+ | Russian+ | Sorani+ | Spanish+ | Swedish+ | Thai+ | Turkish+ deriving (Eq, Show)++instance ToJSON Language where+ toJSON = String . languageToText++instance FromJSON Language where+ parseJSON = withText "Language" $ \t -> case languageFromText t of+ Nothing -> fail "not a supported Elasticsearch language"+ Just lang -> return lang++languageToText :: Language -> Text+languageToText x = case x of+ Arabic -> "arabic"+ Armenian -> "armenian"+ Basque -> "basque"+ Bengali -> "bengali"+ Brazilian -> "brazilian"+ Bulgarian -> "bulgarian"+ Catalan -> "catalan"+ Cjk -> "cjk"+ Czech -> "czech"+ Danish -> "danish"+ Dutch -> "dutch"+ English -> "english"+ Finnish -> "finnish"+ French -> "french"+ Galician -> "galician"+ German -> "german"+ German2 -> "german2"+ Greek -> "greek"+ Hindi -> "hindi"+ Hungarian -> "hungarian"+ Indonesian -> "indonesian"+ Irish -> "irish"+ Italian -> "italian"+ Kp -> "kp"+ Latvian -> "latvian"+ Lithuanian -> "lithuanian"+ Lovins -> "lovins"+ Norwegian -> "norwegian"+ Persian -> "persian"+ Porter -> "porter"+ Portuguese -> "portuguese"+ Romanian -> "romanian"+ Russian -> "russian"+ Sorani -> "sorani"+ Spanish -> "spanish"+ Swedish -> "swedish"+ Thai -> "thai"+ Turkish -> "turkish"++languageFromText :: Text -> Maybe Language+languageFromText x = case x of+ "arabic" -> Just Arabic+ "armenian" -> Just Armenian+ "basque" -> Just Basque+ "bengali" -> Just Bengali+ "brazilian" -> Just Brazilian+ "bulgarian" -> Just Bulgarian+ "catalan" -> Just Catalan+ "cjk" -> Just Cjk+ "czech" -> Just Czech+ "danish" -> Just Danish+ "dutch" -> Just Dutch+ "english" -> Just English+ "finnish" -> Just Finnish+ "french" -> Just French+ "galician" -> Just Galician+ "german" -> Just German+ "german2" -> Just German2+ "greek" -> Just Greek+ "hindi" -> Just Hindi+ "hungarian" -> Just Hungarian+ "indonesian" -> Just Indonesian+ "irish" -> Just Irish+ "italian" -> Just Italian+ "kp" -> Just Kp+ "latvian" -> Just Latvian+ "lithuanian" -> Just Lithuanian+ "lovins" -> Just Lovins+ "norwegian" -> Just Norwegian+ "persian" -> Just Persian+ "porter" -> Just Porter+ "portuguese" -> Just Portuguese+ "romanian" -> Just Romanian+ "russian" -> Just Russian+ "sorani" -> Just Sorani+ "spanish" -> Just Spanish+ "swedish" -> Just Swedish+ "thai" -> Just Thai+ "turkish" -> Just Turkish+ _ -> Nothing++data Shingle = Shingle+ { shingleMaxSize :: Int+ , shingleMinSize :: Int+ , shingleOutputUnigrams :: Bool+ , shingleOutputUnigramsIfNoShingles :: Bool+ , shingleTokenSeparator :: Text+ , shingleFillerToken :: Text+ } deriving (Eq, Show)
+ src/Database/Bloodhound/Internal/Client.hs view
@@ -0,0 +1,2384 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE UndecidableInstances #-}++module Database.Bloodhound.Internal.Client where++import Bloodhound.Import++#if defined(MIN_VERSION_GLASGOW_HASKELL)+#if MIN_VERSION_GLASGOW_HASKELL(8,0,0,0)+import Control.Monad.Fail (MonadFail)+#endif+#endif+import qualified Data.HashMap.Strict as HM+import Data.Map.Strict (Map)+import qualified Data.SemVer as SemVer+import qualified Data.Text as T+import qualified Data.Traversable as DT+import qualified Data.Vector as V+import GHC.Enum+import Network.HTTP.Client+import Text.Read (Read (..))+import qualified Text.Read as TR++import Database.Bloodhound.Internal.Analysis+import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query+import Database.Bloodhound.Internal.StringlyTyped++{-| Common environment for Elasticsearch calls. Connections will be+ pipelined according to the provided HTTP connection manager.+-}+data BHEnv = BHEnv { bhServer :: Server+ , bhManager :: Manager+ , bhRequestHook :: Request -> IO Request+ -- ^ Low-level hook that is run before every request is sent. Used to implement custom authentication strategies. Defaults to 'return' with 'mkBHEnv'.+ }++instance (Functor m, Applicative m, MonadIO m) => MonadBH (ReaderT BHEnv m) where+ getBHEnv = ask++{-| 'Server' is used with the client functions to point at the ES instance+-}+newtype Server = Server Text deriving (Eq, Show, FromJSON)++{-| All API calls to Elasticsearch operate within+ MonadBH+ . The idea is that it can be easily embedded in your+ own monad transformer stack. A default instance for a ReaderT and+ alias 'BH' is provided for the simple case.+-}+class (Functor m, Applicative m, MonadIO m) => MonadBH m where+ getBHEnv :: m BHEnv++-- | Create a 'BHEnv' with all optional fields defaulted. HTTP hook+-- will be a noop. You can use the exported fields to customize+-- it further, e.g.:+--+-- >> (mkBHEnv myServer myManager) { bhRequestHook = customHook }+mkBHEnv :: Server -> Manager -> BHEnv+mkBHEnv s m = BHEnv s m return++newtype BH m a = BH {+ unBH :: ReaderT BHEnv m a+ } deriving ( Functor+ , Applicative+ , Monad+ , MonadIO+ , MonadState s+ , MonadWriter w+ , MonadError e+ , Alternative+ , MonadPlus+ , MonadFix+ , MonadThrow+ , MonadCatch+#if defined(MIN_VERSION_GLASGOW_HASKELL)+#if MIN_VERSION_GLASGOW_HASKELL(8,6,0,0)+ , MonadFail+#endif+#endif+ , MonadMask)++instance MonadTrans BH where+ lift = BH . lift++instance (MonadReader r m) => MonadReader r (BH m) where+ ask = lift ask+ local f (BH (ReaderT m)) = BH $ ReaderT $ \r ->+ local f (m r)++instance (Functor m, Applicative m, MonadIO m) => MonadBH (BH m) where+ getBHEnv = BH getBHEnv++runBH :: BHEnv -> BH m a -> m a+runBH e f = runReaderT (unBH f) e++{-| 'Version' is embedded in 'Status' -}+data Version = Version { number :: VersionNumber+ , build_hash :: BuildHash+ , build_date :: UTCTime+ , build_snapshot :: Bool+ , lucene_version :: VersionNumber }+ deriving (Eq, Show)++-- | Traditional software versioning number+newtype VersionNumber = VersionNumber+ { versionNumber :: SemVer.Version }+ deriving (Eq, Ord, Show)++{-| 'Status' is a data type for describing the JSON body returned by+ Elasticsearch when you query its status. This was deprecated in 1.2.0.++ <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-status.html#indices-status>+-}++data Status = Status+ { name :: Text+ , cluster_name :: Text+ , cluster_uuid :: Text+ , version :: Version+ , tagline :: Text }+ deriving (Eq, Show)++instance FromJSON Status where+ parseJSON (Object v) = Status <$>+ v .: "name" <*>+ v .: "cluster_name" <*>+ v .: "cluster_uuid" <*>+ v .: "version" <*>+ v .: "tagline"+ parseJSON _ = empty++{-| 'IndexSettings' is used to configure the shards and replicas when+ you create an Elasticsearch Index.++ <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>+-}++data IndexSettings = IndexSettings+ { indexShards :: ShardCount+ , indexReplicas :: ReplicaCount }+ deriving (Eq, Show)++instance ToJSON IndexSettings where+ toJSON (IndexSettings s r) = object ["settings" .=+ object ["index" .=+ object ["number_of_shards" .= s, "number_of_replicas" .= r]+ ]+ ]++instance FromJSON IndexSettings where+ parseJSON = withObject "IndexSettings" parse+ where parse o = do s <- o .: "settings"+ i <- s .: "index"+ IndexSettings <$> i .: "number_of_shards"+ <*> i .: "number_of_replicas"++{-| 'defaultIndexSettings' is an 'IndexSettings' with 3 shards and+ 2 replicas. -}+defaultIndexSettings :: IndexSettings+defaultIndexSettings = IndexSettings (ShardCount 3) (ReplicaCount 2)+-- defaultIndexSettings is exported by Database.Bloodhound as well+-- no trailing slashes in servers, library handles building the path.+++{-| 'ForceMergeIndexSettings' is used to configure index optimization. See+ <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html>+ for more info.+-}+data ForceMergeIndexSettings =+ ForceMergeIndexSettings { maxNumSegments :: Maybe Int+ -- ^ Number of segments to optimize to. 1 will fully optimize the index. If omitted, the default behavior is to only optimize if the server deems it necessary.+ , onlyExpungeDeletes :: Bool+ -- ^ Should the optimize process only expunge segments with deletes in them? If the purpose of the optimization is to free disk space, this should be set to True.+ , flushAfterOptimize :: Bool+ -- ^ Should a flush be performed after the optimize.+ } deriving (Eq, Show)+++{-| 'defaultForceMergeIndexSettings' implements the default settings that+ Elasticsearch uses for index optimization. 'maxNumSegments' is Nothing,+ 'onlyExpungeDeletes' is False, and flushAfterOptimize is True.+-}+defaultForceMergeIndexSettings :: ForceMergeIndexSettings+defaultForceMergeIndexSettings = ForceMergeIndexSettings Nothing False True++{-| 'UpdatableIndexSetting' are settings which may be updated after an index is created.++ <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html>+-}+data UpdatableIndexSetting = NumberOfReplicas ReplicaCount+ -- ^ The number of replicas each shard has.+ | AutoExpandReplicas ReplicaBounds+ | BlocksReadOnly Bool+ -- ^ Set to True to have the index read only. False to allow writes and metadata changes.+ | BlocksRead Bool+ -- ^ Set to True to disable read operations against the index.+ | BlocksWrite Bool+ -- ^ Set to True to disable write operations against the index.+ | BlocksMetaData Bool+ -- ^ Set to True to disable metadata operations against the index.+ | RefreshInterval NominalDiffTime+ -- ^ The async refresh interval of a shard+ | IndexConcurrency Int+ | FailOnMergeFailure Bool+ | TranslogFlushThresholdOps Int+ -- ^ When to flush on operations.+ | TranslogFlushThresholdSize Bytes+ -- ^ When to flush based on translog (bytes) size.+ | TranslogFlushThresholdPeriod NominalDiffTime+ -- ^ When to flush based on a period of not flushing.+ | TranslogDisableFlush Bool+ -- ^ Disables flushing. Note, should be set for a short interval and then enabled.+ | CacheFilterMaxSize (Maybe Bytes)+ -- ^ The maximum size of filter cache (per segment in shard).+ | CacheFilterExpire (Maybe NominalDiffTime)+ -- ^ The expire after access time for filter cache.+ | GatewaySnapshotInterval NominalDiffTime+ -- ^ The gateway snapshot interval (only applies to shared gateways).+ | RoutingAllocationInclude (NonEmpty NodeAttrFilter)+ -- ^ A node matching any rule will be allowed to host shards from the index.+ | RoutingAllocationExclude (NonEmpty NodeAttrFilter)+ -- ^ A node matching any rule will NOT be allowed to host shards from the index.+ | RoutingAllocationRequire (NonEmpty NodeAttrFilter)+ -- ^ Only nodes matching all rules will be allowed to host shards from the index.+ | RoutingAllocationEnable AllocationPolicy+ -- ^ Enables shard allocation for a specific index.+ | RoutingAllocationShardsPerNode ShardCount+ -- ^ Controls the total number of shards (replicas and primaries) allowed to be allocated on a single node.+ | RecoveryInitialShards InitialShardCount+ -- ^ When using local gateway a particular shard is recovered only if there can be allocated quorum shards in the cluster.+ | GCDeletes NominalDiffTime+ | TTLDisablePurge Bool+ -- ^ Disables temporarily the purge of expired docs.+ | TranslogFSType FSType+ | CompressionSetting Compression+ | IndexCompoundFormat CompoundFormat+ | IndexCompoundOnFlush Bool+ | WarmerEnabled Bool+ | MappingTotalFieldsLimit Int+ | AnalysisSetting Analysis+ -- ^ Analysis is not a dynamic setting and can only be performed on a closed index.+ | UnassignedNodeLeftDelayedTimeout NominalDiffTime+ -- ^ Sets a delay to the allocation of replica shards which become unassigned because a node has left, giving them chance to return. See <https://www.elastic.co/guide/en/elasticsearch/reference/5.6/delayed-allocation.html>+ deriving (Eq, Show)++attrFilterJSON :: NonEmpty NodeAttrFilter -> Value+attrFilterJSON fs = object [ n .= T.intercalate "," (toList vs)+ | NodeAttrFilter (NodeAttrName n) vs <- toList fs]++parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)+parseAttrFilter = withObject "NonEmpty NodeAttrFilter" parse+ where parse o = case HM.toList o of+ [] -> fail "Expected non-empty list of NodeAttrFilters"+ x:xs -> DT.mapM (uncurry parse') (x :| xs)+ parse' n = withText "Text" $ \t ->+ case T.splitOn "," t of+ fv:fvs -> return (NodeAttrFilter (NodeAttrName n) (fv :| fvs))+ [] -> fail "Expected non-empty list of filter values"++instance ToJSON UpdatableIndexSetting where+ toJSON (NumberOfReplicas x) = oPath ("index" :| ["number_of_replicas"]) x+ toJSON (AutoExpandReplicas x) = oPath ("index" :| ["auto_expand_replicas"]) x+ toJSON (RefreshInterval x) = oPath ("index" :| ["refresh_interval"]) (NominalDiffTimeJSON x)+ toJSON (IndexConcurrency x) = oPath ("index" :| ["concurrency"]) x+ toJSON (FailOnMergeFailure x) = oPath ("index" :| ["fail_on_merge_failure"]) x+ toJSON (TranslogFlushThresholdOps x) = oPath ("index" :| ["translog", "flush_threshold_ops"]) x+ toJSON (TranslogFlushThresholdSize x) = oPath ("index" :| ["translog", "flush_threshold_size"]) x+ toJSON (TranslogFlushThresholdPeriod x) = oPath ("index" :| ["translog", "flush_threshold_period"]) (NominalDiffTimeJSON x)+ toJSON (TranslogDisableFlush x) = oPath ("index" :| ["translog", "disable_flush"]) x+ toJSON (CacheFilterMaxSize x) = oPath ("index" :| ["cache", "filter", "max_size"]) x+ toJSON (CacheFilterExpire x) = oPath ("index" :| ["cache", "filter", "expire"]) (NominalDiffTimeJSON <$> x)+ toJSON (GatewaySnapshotInterval x) = oPath ("index" :| ["gateway", "snapshot_interval"]) (NominalDiffTimeJSON x)+ toJSON (RoutingAllocationInclude fs) = oPath ("index" :| ["routing", "allocation", "include"]) (attrFilterJSON fs)+ toJSON (RoutingAllocationExclude fs) = oPath ("index" :| ["routing", "allocation", "exclude"]) (attrFilterJSON fs)+ toJSON (RoutingAllocationRequire fs) = oPath ("index" :| ["routing", "allocation", "require"]) (attrFilterJSON fs)+ toJSON (RoutingAllocationEnable x) = oPath ("index" :| ["routing", "allocation", "enable"]) x+ toJSON (RoutingAllocationShardsPerNode x) = oPath ("index" :| ["routing", "allocation", "total_shards_per_node"]) x+ toJSON (RecoveryInitialShards x) = oPath ("index" :| ["recovery", "initial_shards"]) x+ toJSON (GCDeletes x) = oPath ("index" :| ["gc_deletes"]) (NominalDiffTimeJSON x)+ toJSON (TTLDisablePurge x) = oPath ("index" :| ["ttl", "disable_purge"]) x+ toJSON (TranslogFSType x) = oPath ("index" :| ["translog", "fs", "type"]) x+ toJSON (CompressionSetting x) = oPath ("index" :| ["codec"]) x+ toJSON (IndexCompoundFormat x) = oPath ("index" :| ["compound_format"]) x+ toJSON (IndexCompoundOnFlush x) = oPath ("index" :| ["compound_on_flush"]) x+ toJSON (WarmerEnabled x) = oPath ("index" :| ["warmer", "enabled"]) x+ toJSON (BlocksReadOnly x) = oPath ("blocks" :| ["read_only"]) x+ toJSON (BlocksRead x) = oPath ("blocks" :| ["read"]) x+ toJSON (BlocksWrite x) = oPath ("blocks" :| ["write"]) x+ toJSON (BlocksMetaData x) = oPath ("blocks" :| ["metadata"]) x+ toJSON (MappingTotalFieldsLimit x) = oPath ("index" :| ["mapping","total_fields","limit"]) x+ toJSON (AnalysisSetting x) = oPath ("index" :| ["analysis"]) x+ toJSON (UnassignedNodeLeftDelayedTimeout x) = oPath ("index" :| ["unassigned","node_left","delayed_timeout"]) (NominalDiffTimeJSON x)++instance FromJSON UpdatableIndexSetting where+ parseJSON = withObject "UpdatableIndexSetting" parse+ where parse o = numberOfReplicas `taggedAt` ["index", "number_of_replicas"]+ <|> autoExpandReplicas `taggedAt` ["index", "auto_expand_replicas"]+ <|> refreshInterval `taggedAt` ["index", "refresh_interval"]+ <|> indexConcurrency `taggedAt` ["index", "concurrency"]+ <|> failOnMergeFailure `taggedAt` ["index", "fail_on_merge_failure"]+ <|> translogFlushThresholdOps `taggedAt` ["index", "translog", "flush_threshold_ops"]+ <|> translogFlushThresholdSize `taggedAt` ["index", "translog", "flush_threshold_size"]+ <|> translogFlushThresholdPeriod `taggedAt` ["index", "translog", "flush_threshold_period"]+ <|> translogDisableFlush `taggedAt` ["index", "translog", "disable_flush"]+ <|> cacheFilterMaxSize `taggedAt` ["index", "cache", "filter", "max_size"]+ <|> cacheFilterExpire `taggedAt` ["index", "cache", "filter", "expire"]+ <|> gatewaySnapshotInterval `taggedAt` ["index", "gateway", "snapshot_interval"]+ <|> routingAllocationInclude `taggedAt` ["index", "routing", "allocation", "include"]+ <|> routingAllocationExclude `taggedAt` ["index", "routing", "allocation", "exclude"]+ <|> routingAllocationRequire `taggedAt` ["index", "routing", "allocation", "require"]+ <|> routingAllocationEnable `taggedAt` ["index", "routing", "allocation", "enable"]+ <|> routingAllocationShardsPerNode `taggedAt` ["index", "routing", "allocation", "total_shards_per_node"]+ <|> recoveryInitialShards `taggedAt` ["index", "recovery", "initial_shards"]+ <|> gcDeletes `taggedAt` ["index", "gc_deletes"]+ <|> ttlDisablePurge `taggedAt` ["index", "ttl", "disable_purge"]+ <|> translogFSType `taggedAt` ["index", "translog", "fs", "type"]+ <|> compressionSetting `taggedAt` ["index", "codec"]+ <|> compoundFormat `taggedAt` ["index", "compound_format"]+ <|> compoundOnFlush `taggedAt` ["index", "compound_on_flush"]+ <|> warmerEnabled `taggedAt` ["index", "warmer", "enabled"]+ <|> blocksReadOnly `taggedAt` ["blocks", "read_only"]+ <|> blocksRead `taggedAt` ["blocks", "read"]+ <|> blocksWrite `taggedAt` ["blocks", "write"]+ <|> blocksMetaData `taggedAt` ["blocks", "metadata"]+ <|> mappingTotalFieldsLimit `taggedAt` ["index", "mapping", "total_fields", "limit"]+ <|> analysisSetting `taggedAt` ["index", "analysis"]+ <|> unassignedNodeLeftDelayedTimeout `taggedAt` ["index", "unassigned", "node_left", "delayed_timeout"]+ where taggedAt f ks = taggedAt' f (Object o) ks+ taggedAt' f v [] =+ f =<< (parseJSON v <|> parseJSON (unStringlyTypeJSON v))+ taggedAt' f v (k:ks) =+ withObject "Object" (\o -> do v' <- o .: k+ taggedAt' f v' ks) v+ numberOfReplicas = pure . NumberOfReplicas+ autoExpandReplicas = pure . AutoExpandReplicas+ refreshInterval = pure . RefreshInterval . ndtJSON+ indexConcurrency = pure . IndexConcurrency+ failOnMergeFailure = pure . FailOnMergeFailure+ translogFlushThresholdOps = pure . TranslogFlushThresholdOps+ translogFlushThresholdSize = pure . TranslogFlushThresholdSize+ translogFlushThresholdPeriod = pure . TranslogFlushThresholdPeriod . ndtJSON+ translogDisableFlush = pure . TranslogDisableFlush+ cacheFilterMaxSize = pure . CacheFilterMaxSize+ cacheFilterExpire = pure . CacheFilterExpire . fmap ndtJSON+ gatewaySnapshotInterval = pure . GatewaySnapshotInterval . ndtJSON+ routingAllocationInclude = fmap RoutingAllocationInclude . parseAttrFilter+ routingAllocationExclude = fmap RoutingAllocationExclude . parseAttrFilter+ routingAllocationRequire = fmap RoutingAllocationRequire . parseAttrFilter+ routingAllocationEnable = pure . RoutingAllocationEnable+ routingAllocationShardsPerNode = pure . RoutingAllocationShardsPerNode+ recoveryInitialShards = pure . RecoveryInitialShards+ gcDeletes = pure . GCDeletes . ndtJSON+ ttlDisablePurge = pure . TTLDisablePurge+ translogFSType = pure . TranslogFSType+ compressionSetting = pure . CompressionSetting+ compoundFormat = pure . IndexCompoundFormat+ compoundOnFlush = pure . IndexCompoundOnFlush+ warmerEnabled = pure . WarmerEnabled+ blocksReadOnly = pure . BlocksReadOnly+ blocksRead = pure . BlocksRead+ blocksWrite = pure . BlocksWrite+ blocksMetaData = pure . BlocksMetaData+ mappingTotalFieldsLimit = pure . MappingTotalFieldsLimit+ analysisSetting = pure . AnalysisSetting+ unassignedNodeLeftDelayedTimeout = pure . UnassignedNodeLeftDelayedTimeout . ndtJSON++data ReplicaBounds = ReplicasBounded Int Int+ | ReplicasLowerBounded Int+ | ReplicasUnbounded+ deriving (Eq, Show)+++instance ToJSON ReplicaBounds where+ toJSON (ReplicasBounded a b) = String (showText a <> "-" <> showText b)+ toJSON (ReplicasLowerBounded a) = String (showText a <> "-all")+ toJSON ReplicasUnbounded = Bool False++instance FromJSON ReplicaBounds where+ parseJSON v = withText "ReplicaBounds" parseText v+ <|> withBool "ReplicaBounds" parseBool v+ where parseText t = case T.splitOn "-" t of+ [a, "all"] -> ReplicasLowerBounded <$> parseReadText a+ [a, b] -> ReplicasBounded <$> parseReadText a+ <*> parseReadText b+ _ -> fail ("Could not parse ReplicaBounds: " <> show t)+ parseBool False = pure ReplicasUnbounded+ parseBool _ = fail "ReplicasUnbounded cannot be represented with True"++data Compression+ = CompressionDefault+ -- ^ Compress with LZ4+ | CompressionBest+ -- ^ Compress with DEFLATE. Elastic+ -- <https://www.elastic.co/blog/elasticsearch-storage-the-true-story-2.0 blogs>+ -- that this can reduce disk use by 15%-25%.+ deriving (Eq,Show)++instance ToJSON Compression where+ toJSON x = case x of+ CompressionDefault -> toJSON ("default" :: Text)+ CompressionBest -> toJSON ("best_compression" :: Text)++instance FromJSON Compression where+ parseJSON = withText "Compression" $ \t -> case t of+ "default" -> return CompressionDefault+ "best_compression" -> return CompressionBest+ _ -> fail "invalid compression codec"++-- | A measure of bytes used for various configurations. You may want+-- to use smart constructors like 'gigabytes' for larger values.+--+-- >>> gigabytes 9+-- Bytes 9000000000+--+-- >>> megabytes 9+-- Bytes 9000000+--+-- >>> kilobytes 9+-- Bytes 9000+newtype Bytes =+ Bytes Int+ deriving (Eq, Show, Ord, ToJSON, FromJSON)++gigabytes :: Int -> Bytes+gigabytes n = megabytes (1000 * n)+++megabytes :: Int -> Bytes+megabytes n = kilobytes (1000 * n)+++kilobytes :: Int -> Bytes+kilobytes n = Bytes (1000 * n)+++data FSType = FSSimple+ | FSBuffered deriving (Eq, Show)++instance ToJSON FSType where+ toJSON FSSimple = "simple"+ toJSON FSBuffered = "buffered"++instance FromJSON FSType where+ parseJSON = withText "FSType" parse+ where parse "simple" = pure FSSimple+ parse "buffered" = pure FSBuffered+ parse t = fail ("Invalid FSType: " <> show t)++data InitialShardCount = QuorumShards+ | QuorumMinus1Shards+ | FullShards+ | FullMinus1Shards+ | ExplicitShards Int+ deriving (Eq, Show)++instance FromJSON InitialShardCount where+ parseJSON v = withText "InitialShardCount" parseText v+ <|> ExplicitShards <$> parseJSON v+ where parseText "quorum" = pure QuorumShards+ parseText "quorum-1" = pure QuorumMinus1Shards+ parseText "full" = pure FullShards+ parseText "full-1" = pure FullMinus1Shards+ parseText _ = mzero++instance ToJSON InitialShardCount where+ toJSON QuorumShards = String "quorum"+ toJSON QuorumMinus1Shards = String "quorum-1"+ toJSON FullShards = String "full"+ toJSON FullMinus1Shards = String "full-1"+ toJSON (ExplicitShards x) = toJSON x++data NodeAttrFilter = NodeAttrFilter+ { nodeAttrFilterName :: NodeAttrName+ , nodeAttrFilterValues :: NonEmpty Text }+ deriving (Eq, Ord, Show)++newtype NodeAttrName = NodeAttrName Text deriving (Eq, Ord, Show)++data CompoundFormat = CompoundFileFormat Bool+ | MergeSegmentVsTotalIndex Double+ -- ^ percentage between 0 and 1 where 0 is false, 1 is true+ deriving (Eq, Show)++instance ToJSON CompoundFormat where+ toJSON (CompoundFileFormat x) = Bool x+ toJSON (MergeSegmentVsTotalIndex x) = toJSON x++instance FromJSON CompoundFormat where+ parseJSON v = CompoundFileFormat <$> parseJSON v+ <|> MergeSegmentVsTotalIndex <$> parseJSON v++newtype NominalDiffTimeJSON =+ NominalDiffTimeJSON { ndtJSON :: NominalDiffTime }++instance ToJSON NominalDiffTimeJSON where+ toJSON (NominalDiffTimeJSON t) = String (showText (round t :: Integer) <> "s")++instance FromJSON NominalDiffTimeJSON where+ parseJSON = withText "NominalDiffTime" parse+ where parse t = case T.takeEnd 1 t of+ "s" -> NominalDiffTimeJSON . fromInteger <$> parseReadText (T.dropEnd 1 t)+ _ -> fail "Invalid or missing NominalDiffTime unit (expected s)"++data IndexSettingsSummary = IndexSettingsSummary+ { sSummaryIndexName :: IndexName+ , sSummaryFixedSettings :: IndexSettings+ , sSummaryUpdateable :: [UpdatableIndexSetting]}+ deriving (Eq, Show)++parseSettings :: Object -> Parser [UpdatableIndexSetting]+parseSettings o = do+ o' <- o .: "index"+ -- slice the index object into singleton hashmaps and try to parse each+ parses <- forM (HM.toList o') $ \(k, v) -> do+ -- blocks are now nested into the "index" key, which is not how they're serialized+ let atRoot = Object (HM.singleton k v)+ let atIndex = Object (HM.singleton "index" atRoot)+ optional (parseJSON atRoot <|> parseJSON atIndex)+ return (catMaybes parses)++instance FromJSON IndexSettingsSummary where+ parseJSON = withObject "IndexSettingsSummary" parse+ where parse o = case HM.toList o of+ [(ixn, v@(Object o'))] -> IndexSettingsSummary (IndexName ixn)+ <$> parseJSON v+ <*> (fmap (filter (not . redundant)) . parseSettings =<< o' .: "settings")+ _ -> fail "Expected single-key object with index name"+ redundant (NumberOfReplicas _) = True+ redundant _ = False++{-| 'Reply' and 'Method' are type synonyms from 'Network.HTTP.Types.Method.Method' -}+type Reply = Network.HTTP.Client.Response LByteString++{-| 'OpenCloseIndex' is a sum type for opening and closing indices.++ <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>+-}+data OpenCloseIndex = OpenIndex | CloseIndex deriving (Eq, Show)++data FieldType = GeoPointType+ | GeoShapeType+ | FloatType+ | IntegerType+ | LongType+ | ShortType+ | ByteType deriving (Eq, Show)++newtype FieldDefinition = FieldDefinition+ { fieldType :: FieldType+ } deriving (Eq, Show)++{-| An 'IndexTemplate' defines a template that will automatically be+ applied to new indices created. The templates include both+ 'IndexSettings' and mappings, and a simple 'IndexPattern' that+ controls if the template will be applied to the index created.+ Specify mappings as follows: @[toJSON TweetMapping, ...]@++ https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html+-}+data IndexTemplate =+ IndexTemplate { templatePatterns :: [IndexPattern]+ , templateSettings :: Maybe IndexSettings+ , templateMappings :: Value+ }++instance ToJSON IndexTemplate where+ toJSON (IndexTemplate p s m) = merge+ (object [ "index_patterns" .= p+ , "mappings" .= m+ ])+ (toJSON s)+ where+ merge (Object o1) (Object o2) = toJSON $ HM.union o1 o2+ merge o Null = o+ merge _ _ = undefined++data MappingField =+ MappingField { mappingFieldName :: FieldName+ , fieldDefinition :: FieldDefinition }+ deriving (Eq, Show)++{-| Support for type reification of 'Mapping's is currently incomplete, for+ now the mapping API verbiage expects a 'ToJSON'able blob.++ Indexes have mappings, mappings are schemas for the documents contained+ in the index. I'd recommend having only one mapping per index, always+ having a mapping, and keeping different kinds of documents separated+ if possible.+-}+newtype Mapping =+ Mapping { mappingFields :: [MappingField] }+ deriving (Eq, Show)++data UpsertActionMetadata+ = UA_RetryOnConflict Int+ | UA_Version Int+ deriving (Eq, Show)++buildUpsertActionMetadata :: UpsertActionMetadata -> Pair+buildUpsertActionMetadata (UA_RetryOnConflict i) = "retry_on_conflict" .= i+buildUpsertActionMetadata (UA_Version i) = "_version" .= i++data UpsertPayload+ = UpsertDoc Value+ | UpsertScript Bool Script Value+ deriving (Eq, Show)++data AllocationPolicy = AllocAll+ -- ^ Allows shard allocation for all shards.+ | AllocPrimaries+ -- ^ Allows shard allocation only for primary shards.+ | AllocNewPrimaries+ -- ^ Allows shard allocation only for primary shards for new indices.+ | AllocNone+ -- ^ No shard allocation is allowed+ deriving (Eq, Show)++instance ToJSON AllocationPolicy where+ toJSON AllocAll = String "all"+ toJSON AllocPrimaries = String "primaries"+ toJSON AllocNewPrimaries = String "new_primaries"+ toJSON AllocNone = String "none"++instance FromJSON AllocationPolicy where+ parseJSON = withText "AllocationPolicy" parse+ where parse "all" = pure AllocAll+ parse "primaries" = pure AllocPrimaries+ parse "new_primaries" = pure AllocNewPrimaries+ parse "none" = pure AllocNone+ parse t = fail ("Invlaid AllocationPolicy: " <> show t)++{-| 'BulkOperation' is a sum type for expressing the four kinds of bulk+ operation index, create, delete, and update. 'BulkIndex' behaves like an+ "upsert", 'BulkCreate' will fail if a document already exists at the DocId.+ Consult the <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html#docs-bulk Bulk API documentation>+ for further explanation.+ Warning: Bulk operations suffixed with @Auto@ rely on Elasticsearch to+ generate the id. Often, people use auto-generated identifiers when+ Elasticsearch is the only place that their data is stored. Do not let+ Elasticsearch be the only place your data is stored. It does not guarantee+ durability, and it may silently discard data.+ This <https://github.com/elastic/elasticsearch/issues/10708 issue> is+ discussed further on github.+-}+data BulkOperation =+ BulkIndex IndexName DocId Value+ -- ^ Create the document, replacing it if it already exists.+ | BulkIndexAuto IndexName Value+ -- ^ Create a document with an autogenerated id.+ | BulkIndexEncodingAuto IndexName Encoding+ -- ^ Create a document with an autogenerated id. Use fast JSON encoding.+ | BulkCreate IndexName DocId Value+ -- ^ Create a document, failing if it already exists.+ | BulkCreateEncoding IndexName DocId Encoding+ -- ^ Create a document, failing if it already exists. Use fast JSON encoding.+ | BulkDelete IndexName DocId+ -- ^ Delete the document+ | BulkUpdate IndexName DocId Value+ -- ^ Update the document, merging the new value with the existing one.+ | BulkUpsert IndexName DocId UpsertPayload [UpsertActionMetadata]+ -- ^ Update the document if it already exists, otherwise insert it.+ deriving (Eq, Show)++{-| 'EsResult' describes the standard wrapper JSON document that you see in+ successful Elasticsearch lookups or lookups that couldn't find the document.+-}+data EsResult a = EsResult { _index :: Text+ , _type :: Text+ , _id :: Text+ , foundResult :: Maybe (EsResultFound a)} deriving (Eq, Show)++{-| 'EsResultFound' contains the document and its metadata inside of an+ 'EsResult' when the document was successfully found.+-}+data EsResultFound a =+ EsResultFound { _version :: DocVersion+ , _source :: a }+ deriving (Eq, Show)++instance (FromJSON a) => FromJSON (EsResult a) where+ parseJSON jsonVal@(Object v) = do+ found <- v .:? "found" .!= False+ fr <- if found+ then parseJSON jsonVal+ else return Nothing+ EsResult <$> v .: "_index" <*>+ v .: "_type" <*>+ v .: "_id" <*>+ pure fr+ parseJSON _ = empty++instance (FromJSON a) => FromJSON (EsResultFound a) where+ parseJSON (Object v) = EsResultFound <$>+ v .: "_version" <*>+ v .: "_source"+ parseJSON _ = empty++{-| 'EsError' is the generic type that will be returned when there was a+ problem. If you can't parse the expected response, its a good idea to+ try parsing this.+-}+data EsError =+ EsError { errorStatus :: Int+ , errorMessage :: Text }+ deriving (Eq, Show)++instance FromJSON EsError where+ parseJSON (Object v) = EsError <$>+ v .: "status" <*>+ (v .: "error" <|> (v .: "error" >>= (.: "reason")))+ parseJSON _ = empty++{-| 'EsProtocolException' will be thrown if Bloodhound cannot parse a response+returned by the Elasticsearch server. If you encounter this error, please+verify that your domain data types and FromJSON instances are working properly+(for example, the 'a' of '[Hit a]' in 'SearchResult.searchHits.hits'). If you're+sure that your mappings are correct, then this error may be an indication of an+incompatibility between Bloodhound and Elasticsearch. Please open a bug report+and be sure to include the exception body.+-}+data EsProtocolException = EsProtocolException+ { esProtoExMessage :: !Text+ , esProtoExBody :: !LByteString+ } deriving (Eq, Show)++instance Exception EsProtocolException++data IndexAlias = IndexAlias { srcIndex :: IndexName+ , indexAlias :: IndexAliasName } deriving (Eq, Show)++data IndexAliasAction =+ AddAlias IndexAlias IndexAliasCreate+ | RemoveAlias IndexAlias+ deriving (Eq, Show)++data IndexAliasCreate =+ IndexAliasCreate { aliasCreateRouting :: Maybe AliasRouting+ , aliasCreateFilter :: Maybe Filter}+ deriving (Eq, Show)++data AliasRouting =+ AllAliasRouting RoutingValue+ | GranularAliasRouting (Maybe SearchAliasRouting) (Maybe IndexAliasRouting)+ deriving (Eq, Show)++newtype SearchAliasRouting =+ SearchAliasRouting (NonEmpty RoutingValue)+ deriving (Eq, Show)++instance ToJSON SearchAliasRouting where+ toJSON (SearchAliasRouting rvs) = toJSON (T.intercalate "," (routingValue <$> toList rvs))++instance FromJSON SearchAliasRouting where+ parseJSON = withText "SearchAliasRouting" parse+ where parse t = SearchAliasRouting <$> parseNEJSON (String <$> T.splitOn "," t)++newtype IndexAliasRouting =+ IndexAliasRouting RoutingValue+ deriving (Eq, Show, ToJSON, FromJSON)++newtype RoutingValue =+ RoutingValue { routingValue :: Text }+ deriving (Eq, Show, ToJSON, FromJSON)++newtype IndexAliasesSummary =+ IndexAliasesSummary { indexAliasesSummary :: [IndexAliasSummary] }+ deriving (Eq, Show)++instance FromJSON IndexAliasesSummary where+ parseJSON = withObject "IndexAliasesSummary" parse+ where parse o = IndexAliasesSummary . mconcat <$> mapM (uncurry go) (HM.toList o)+ go ixn = withObject "index aliases" $ \ia -> do+ aliases <- ia .:? "aliases" .!= mempty+ forM (HM.toList aliases) $ \(aName, v) -> do+ let indexAlias = IndexAlias (IndexName ixn) (IndexAliasName (IndexName aName))+ IndexAliasSummary indexAlias <$> parseJSON v+++instance ToJSON IndexAliasAction where+ toJSON (AddAlias ia opts) = object ["add" .= (iaObj <> optsObj)]+ where Object iaObj = toJSON ia+ Object optsObj = toJSON opts+ toJSON (RemoveAlias ia) = object ["remove" .= iaObj]+ where Object iaObj = toJSON ia++instance ToJSON IndexAlias where+ toJSON IndexAlias {..} = object ["index" .= srcIndex+ , "alias" .= indexAlias+ ]++instance ToJSON IndexAliasCreate where+ toJSON IndexAliasCreate {..} = Object (filterObj <> routingObj)+ where filterObj = maybe mempty (HM.singleton "filter" . toJSON) aliasCreateFilter+ Object routingObj = maybe (Object mempty) toJSON aliasCreateRouting++instance ToJSON AliasRouting where+ toJSON (AllAliasRouting v) = object ["routing" .= v]+ toJSON (GranularAliasRouting srch idx) = object (catMaybes prs)+ where prs = [("search_routing" .=) <$> srch+ ,("index_routing" .=) <$> idx]++instance FromJSON AliasRouting where+ parseJSON = withObject "AliasRouting" parse+ where parse o = parseAll o <|> parseGranular o+ parseAll o = AllAliasRouting <$> o .: "routing"+ parseGranular o = do+ sr <- o .:? "search_routing"+ ir <- o .:? "index_routing"+ if isNothing sr && isNothing ir+ then fail "Both search_routing and index_routing can't be blank"+ else return (GranularAliasRouting sr ir)++instance FromJSON IndexAliasCreate where+ parseJSON v = withObject "IndexAliasCreate" parse v+ where parse o = IndexAliasCreate <$> optional (parseJSON v)+ <*> o .:? "filter"++{-| 'IndexAliasSummary' is a summary of an index alias configured for a server. -}+data IndexAliasSummary = IndexAliasSummary+ { indexAliasSummaryAlias :: IndexAlias+ , indexAliasSummaryCreate :: IndexAliasCreate }+ deriving (Eq, Show)++{-| 'DocVersion' is an integer version number for a document between 1+and 9.2e+18 used for <<https://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html optimistic concurrency control>>.+-}+newtype DocVersion = DocVersion {+ docVersionNumber :: Int+ } deriving (Eq, Show, Ord, ToJSON)++-- | Smart constructor for in-range doc version+mkDocVersion :: Int -> Maybe DocVersion+mkDocVersion i+ | i >= docVersionNumber minBound+ && i <= docVersionNumber maxBound =+ Just $ DocVersion i+ | otherwise = Nothing++instance Bounded DocVersion where+ minBound = DocVersion 1+ maxBound = DocVersion 9200000000000000000 -- 9.2e+18++instance Enum DocVersion where+ succ x+ | x /= maxBound = DocVersion (succ $ docVersionNumber x)+ | otherwise = succError "DocVersion"+ pred x+ | x /= minBound = DocVersion (pred $ docVersionNumber x)+ | otherwise = predError "DocVersion"+ toEnum i =+ fromMaybe (error $ show i ++ " out of DocVersion range") $ mkDocVersion i+ fromEnum = docVersionNumber+ enumFrom = boundedEnumFrom+ enumFromThen = boundedEnumFromThen++instance FromJSON DocVersion where+ parseJSON v = do+ i <- parseJSON v+ maybe (fail "DocVersion out of range") return $ mkDocVersion i++{-| 'ExternalDocVersion' is a convenience wrapper if your code uses its+own version numbers instead of ones from ES.+-}+newtype ExternalDocVersion = ExternalDocVersion DocVersion+ deriving (Eq, Show, Ord, Bounded, Enum, ToJSON)++{-| 'VersionControl' is specified when indexing documents as a+optimistic concurrency control.+-}+data VersionControl = NoVersionControl+ -- ^ Don't send a version. This is a pure overwrite.+ | InternalVersion DocVersion+ -- ^ Use the default ES versioning scheme. Only+ -- index the document if the version is the same+ -- as the one specified. Only applicable to+ -- updates, as you should be getting Version from+ -- a search result.+ | ExternalGT ExternalDocVersion+ -- ^ Use your own version numbering. Only index+ -- the document if the version is strictly higher+ -- OR the document doesn't exist. The given+ -- version will be used as the new version number+ -- for the stored document. N.B. All updates must+ -- increment this number, meaning there is some+ -- global, external ordering of updates.+ | ExternalGTE ExternalDocVersion+ -- ^ Use your own version numbering. Only index+ -- the document if the version is equal or higher+ -- than the stored version. Will succeed if there+ -- is no existing document. The given version will+ -- be used as the new version number for the+ -- stored document. Use with care, as this could+ -- result in data loss.+ | ForceVersion ExternalDocVersion+ -- ^ The document will always be indexed and the+ -- given version will be the new version. This is+ -- typically used for correcting errors. Use with+ -- care, as this could result in data loss.+ deriving (Eq, Show, Ord)++data JoinRelation+ = ParentDocument FieldName RelationName+ | ChildDocument FieldName RelationName DocId+ deriving (Show, Eq)++{-| 'IndexDocumentSettings' are special settings supplied when indexing+a document. For the best backwards compatiblity when new fields are+added, you should probably prefer to start with 'defaultIndexDocumentSettings'+-}+data IndexDocumentSettings =+ IndexDocumentSettings { idsVersionControl :: VersionControl+ , idsJoinRelation :: Maybe JoinRelation+ } deriving (Eq, Show)++{-| Reasonable default settings. Chooses no version control and no parent.+-}+defaultIndexDocumentSettings :: IndexDocumentSettings+defaultIndexDocumentSettings = IndexDocumentSettings NoVersionControl Nothing++{-| 'IndexSelection' is used for APIs which take a single index, a list of+ indexes, or the special @_all@ index.+-}+--TODO: this does not fully support <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/multi-index.html multi-index syntax>. It wouldn't be too hard to implement but you'd have to add the optional parameters (ignore_unavailable, allow_no_indices, expand_wildcards) to any APIs using it. Also would be a breaking API.+data IndexSelection =+ IndexList (NonEmpty IndexName)+ | AllIndexes+ deriving (Eq, Show)++{-| 'NodeSelection' is used for most cluster APIs. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes here> for more details.+-}+data NodeSelection =+ LocalNode+ -- ^ Whatever node receives this request+ | NodeList (NonEmpty NodeSelector)+ | AllNodes+ deriving (Eq, Show)+++-- | An exact match or pattern to identify a node. Note that All of+-- these options support wildcarding, so your node name, server, attr+-- name can all contain * characters to be a fuzzy match.+data NodeSelector =+ NodeByName NodeName+ | NodeByFullNodeId FullNodeId+ | NodeByHost Server+ -- ^ e.g. 10.0.0.1 or even 10.0.0.*+ | NodeByAttribute NodeAttrName Text+ -- ^ NodeAttrName can be a pattern, e.g. rack*. The value can too.+ deriving (Eq, Show)++{-| 'TemplateName' is used to describe which template to query/create/delete+-}+newtype TemplateName = TemplateName Text deriving (Eq, Show, ToJSON, FromJSON)++{-| 'IndexPattern' represents a pattern which is matched against index names+-}+newtype IndexPattern = IndexPattern Text deriving (Eq, Show, ToJSON, FromJSON)++-- | Username type used for HTTP Basic authentication. See 'basicAuthHook'.+newtype EsUsername = EsUsername { esUsername :: Text } deriving (Read, Show, Eq)++-- | Password type used for HTTP Basic authentication. See 'basicAuthHook'.+newtype EsPassword = EsPassword { esPassword :: Text } deriving (Read, Show, Eq)+++data SnapshotRepoSelection =+ SnapshotRepoList (NonEmpty SnapshotRepoPattern)+ | AllSnapshotRepos+ deriving (Eq, Show)+++-- | Either specifies an exact repo name or one with globs in it,+-- e.g. @RepoPattern "foo*"@ __NOTE__: Patterns are not supported on ES < 1.7+data SnapshotRepoPattern =+ ExactRepo SnapshotRepoName+ | RepoPattern Text+ deriving (Eq, Show)++-- | The unique name of a snapshot repository.+newtype SnapshotRepoName =+ SnapshotRepoName { snapshotRepoName :: Text }+ deriving (Eq, Ord, Show, ToJSON, FromJSON)+++-- | A generic representation of a snapshot repo. This is what gets+-- sent to and parsed from the server. For repo types enabled by+-- plugins that aren't exported by this library, consider making a+-- custom type which implements 'SnapshotRepo'. If it is a common repo+-- type, consider submitting a pull request to have it included in the+-- library proper+data GenericSnapshotRepo = GenericSnapshotRepo {+ gSnapshotRepoName :: SnapshotRepoName+ , gSnapshotRepoType :: SnapshotRepoType+ , gSnapshotRepoSettings :: GenericSnapshotRepoSettings+ } deriving (Eq, Show)+++instance SnapshotRepo GenericSnapshotRepo where+ toGSnapshotRepo = id+ fromGSnapshotRepo = Right+++newtype SnapshotRepoType =+ SnapshotRepoType { snapshotRepoType :: Text }+ deriving (Eq, Ord, Show, ToJSON, FromJSON)+++-- | Opaque representation of snapshot repo settings. Instances of+-- 'SnapshotRepo' will produce this.+newtype GenericSnapshotRepoSettings =+ GenericSnapshotRepoSettings { gSnapshotRepoSettingsObject :: Object }+ deriving (Eq, Show, ToJSON)+++ -- Regardless of whether you send strongly typed json, my version of+ -- ES sends back stringly typed json in the settings, e.g. booleans+ -- as strings, so we'll try to convert them.+instance FromJSON GenericSnapshotRepoSettings where+ parseJSON = fmap (GenericSnapshotRepoSettings . fmap unStringlyTypeJSON). parseJSON++-- | The result of running 'verifySnapshotRepo'.+newtype SnapshotVerification =+ SnapshotVerification {+ snapshotNodeVerifications :: [SnapshotNodeVerification]+ } deriving (Eq, Show)+++instance FromJSON SnapshotVerification where+ parseJSON = withObject "SnapshotVerification" parse+ where+ parse o = do+ o2 <- o .: "nodes"+ SnapshotVerification <$> mapM (uncurry parse') (HM.toList o2)+ parse' rawFullId = withObject "SnapshotNodeVerification" $ \o ->+ SnapshotNodeVerification (FullNodeId rawFullId) <$> o .: "name"+++-- | A node that has verified a snapshot+data SnapshotNodeVerification = SnapshotNodeVerification {+ snvFullId :: FullNodeId+ , snvNodeName :: NodeName+ } deriving (Eq, Show)+++-- | Unique, automatically-generated name assigned to nodes that are+-- usually returned in node-oriented APIs.+newtype FullNodeId = FullNodeId { fullNodeId :: Text }+ deriving (Eq, Ord, Show, FromJSON)+++-- | A human-readable node name that is supplied by the user in the+-- node config or automatically generated by Elasticsearch.+newtype NodeName = NodeName { nodeName :: Text }+ deriving (Eq, Ord, Show, FromJSON)++newtype ClusterName = ClusterName { clusterName :: Text }+ deriving (Eq, Ord, Show, FromJSON)++data NodesInfo = NodesInfo {+ nodesInfo :: [NodeInfo]+ , nodesClusterName :: ClusterName+ } deriving (Eq, Show)++data NodesStats = NodesStats {+ nodesStats :: [NodeStats]+ , nodesStatsClusterName :: ClusterName+ } deriving (Eq, Show)++data NodeStats = NodeStats {+ nodeStatsName :: NodeName+ , nodeStatsFullId :: FullNodeId+ , nodeStatsBreakersStats :: Maybe NodeBreakersStats+ , nodeStatsHTTP :: NodeHTTPStats+ , nodeStatsTransport :: NodeTransportStats+ , nodeStatsFS :: NodeFSStats+ , nodeStatsNetwork :: Maybe NodeNetworkStats+ , nodeStatsThreadPool :: Map Text NodeThreadPoolStats+ , nodeStatsJVM :: NodeJVMStats+ , nodeStatsProcess :: NodeProcessStats+ , nodeStatsOS :: NodeOSStats+ , nodeStatsIndices :: NodeIndicesStats+ } deriving (Eq, Show)++data NodeBreakersStats = NodeBreakersStats {+ nodeStatsParentBreaker :: NodeBreakerStats+ , nodeStatsRequestBreaker :: NodeBreakerStats+ , nodeStatsFieldDataBreaker :: NodeBreakerStats+ } deriving (Eq, Show)++data NodeBreakerStats = NodeBreakerStats {+ nodeBreakersTripped :: Int+ , nodeBreakersOverhead :: Double+ , nodeBreakersEstSize :: Bytes+ , nodeBreakersLimitSize :: Bytes+ } deriving (Eq, Show)++data NodeHTTPStats = NodeHTTPStats {+ nodeHTTPTotalOpened :: Int+ , nodeHTTPCurrentOpen :: Int+ } deriving (Eq, Show)++data NodeTransportStats = NodeTransportStats {+ nodeTransportTXSize :: Bytes+ , nodeTransportCount :: Int+ , nodeTransportRXSize :: Bytes+ , nodeTransportRXCount :: Int+ , nodeTransportServerOpen :: Int+ } deriving (Eq, Show)++data NodeFSStats = NodeFSStats {+ nodeFSDataPaths :: [NodeDataPathStats]+ , nodeFSTotal :: NodeFSTotalStats+ , nodeFSTimestamp :: UTCTime+ } deriving (Eq, Show)++data NodeDataPathStats = NodeDataPathStats {+ nodeDataPathDiskServiceTime :: Maybe Double+ , nodeDataPathDiskQueue :: Maybe Double+ , nodeDataPathIOSize :: Maybe Bytes+ , nodeDataPathWriteSize :: Maybe Bytes+ , nodeDataPathReadSize :: Maybe Bytes+ , nodeDataPathIOOps :: Maybe Int+ , nodeDataPathWrites :: Maybe Int+ , nodeDataPathReads :: Maybe Int+ , nodeDataPathAvailable :: Bytes+ , nodeDataPathFree :: Bytes+ , nodeDataPathTotal :: Bytes+ , nodeDataPathType :: Maybe Text+ , nodeDataPathDevice :: Maybe Text+ , nodeDataPathMount :: Text+ , nodeDataPathPath :: Text+ } deriving (Eq, Show)++data NodeFSTotalStats = NodeFSTotalStats {+ nodeFSTotalDiskServiceTime :: Maybe Double+ , nodeFSTotalDiskQueue :: Maybe Double+ , nodeFSTotalIOSize :: Maybe Bytes+ , nodeFSTotalWriteSize :: Maybe Bytes+ , nodeFSTotalReadSize :: Maybe Bytes+ , nodeFSTotalIOOps :: Maybe Int+ , nodeFSTotalWrites :: Maybe Int+ , nodeFSTotalReads :: Maybe Int+ , nodeFSTotalAvailable :: Bytes+ , nodeFSTotalFree :: Bytes+ , nodeFSTotalTotal :: Bytes+ } deriving (Eq, Show)++data NodeNetworkStats = NodeNetworkStats {+ nodeNetTCPOutRSTs :: Int+ , nodeNetTCPInErrs :: Int+ , nodeNetTCPAttemptFails :: Int+ , nodeNetTCPEstabResets :: Int+ , nodeNetTCPRetransSegs :: Int+ , nodeNetTCPOutSegs :: Int+ , nodeNetTCPInSegs :: Int+ , nodeNetTCPCurrEstab :: Int+ , nodeNetTCPPassiveOpens :: Int+ , nodeNetTCPActiveOpens :: Int+ } deriving (Eq, Show)++data NodeThreadPoolStats = NodeThreadPoolStats {+ nodeThreadPoolCompleted :: Int+ , nodeThreadPoolLargest :: Int+ , nodeThreadPoolRejected :: Int+ , nodeThreadPoolActive :: Int+ , nodeThreadPoolQueue :: Int+ , nodeThreadPoolThreads :: Int+ } deriving (Eq, Show)++data NodeJVMStats = NodeJVMStats {+ nodeJVMStatsMappedBufferPool :: JVMBufferPoolStats+ , nodeJVMStatsDirectBufferPool :: JVMBufferPoolStats+ , nodeJVMStatsGCOldCollector :: JVMGCStats+ , nodeJVMStatsGCYoungCollector :: JVMGCStats+ , nodeJVMStatsPeakThreadsCount :: Int+ , nodeJVMStatsThreadsCount :: Int+ , nodeJVMStatsOldPool :: JVMPoolStats+ , nodeJVMStatsSurvivorPool :: JVMPoolStats+ , nodeJVMStatsYoungPool :: JVMPoolStats+ , nodeJVMStatsNonHeapCommitted :: Bytes+ , nodeJVMStatsNonHeapUsed :: Bytes+ , nodeJVMStatsHeapMax :: Bytes+ , nodeJVMStatsHeapCommitted :: Bytes+ , nodeJVMStatsHeapUsedPercent :: Int+ , nodeJVMStatsHeapUsed :: Bytes+ , nodeJVMStatsUptime :: NominalDiffTime+ , nodeJVMStatsTimestamp :: UTCTime+ } deriving (Eq, Show)++data JVMBufferPoolStats = JVMBufferPoolStats {+ jvmBufferPoolStatsTotalCapacity :: Bytes+ , jvmBufferPoolStatsUsed :: Bytes+ , jvmBufferPoolStatsCount :: Int+ } deriving (Eq, Show)++data JVMGCStats = JVMGCStats {+ jvmGCStatsCollectionTime :: NominalDiffTime+ , jvmGCStatsCollectionCount :: Int+ } deriving (Eq, Show)++data JVMPoolStats = JVMPoolStats {+ jvmPoolStatsPeakMax :: Bytes+ , jvmPoolStatsPeakUsed :: Bytes+ , jvmPoolStatsMax :: Bytes+ , jvmPoolStatsUsed :: Bytes+ } deriving (Eq, Show)++data NodeProcessStats = NodeProcessStats {+ nodeProcessTimestamp :: UTCTime+ , nodeProcessOpenFDs :: Int+ , nodeProcessMaxFDs :: Int+ , nodeProcessCPUPercent :: Int+ , nodeProcessCPUTotal :: NominalDiffTime+ , nodeProcessMemTotalVirtual :: Bytes+ } deriving (Eq, Show)++data NodeOSStats = NodeOSStats {+ nodeOSTimestamp :: UTCTime+ , nodeOSCPUPercent :: Int+ , nodeOSLoad :: Maybe LoadAvgs+ , nodeOSMemTotal :: Bytes+ , nodeOSMemFree :: Bytes+ , nodeOSMemFreePercent :: Int+ , nodeOSMemUsed :: Bytes+ , nodeOSMemUsedPercent :: Int+ , nodeOSSwapTotal :: Bytes+ , nodeOSSwapFree :: Bytes+ , nodeOSSwapUsed :: Bytes+ } deriving (Eq, Show)++data LoadAvgs = LoadAvgs {+ loadAvg1Min :: Double+ , loadAvg5Min :: Double+ , loadAvg15Min :: Double+ } deriving (Eq, Show)++data NodeIndicesStats = NodeIndicesStats {+ nodeIndicesStatsRecoveryThrottleTime :: Maybe NominalDiffTime+ , nodeIndicesStatsRecoveryCurrentAsTarget :: Maybe Int+ , nodeIndicesStatsRecoveryCurrentAsSource :: Maybe Int+ , nodeIndicesStatsQueryCacheMisses :: Maybe Int+ , nodeIndicesStatsQueryCacheHits :: Maybe Int+ , nodeIndicesStatsQueryCacheEvictions :: Maybe Int+ , nodeIndicesStatsQueryCacheSize :: Maybe Bytes+ , nodeIndicesStatsSuggestCurrent :: Maybe Int+ , nodeIndicesStatsSuggestTime :: Maybe NominalDiffTime+ , nodeIndicesStatsSuggestTotal :: Maybe Int+ , nodeIndicesStatsTranslogSize :: Bytes+ , nodeIndicesStatsTranslogOps :: Int+ , nodeIndicesStatsSegFixedBitSetMemory :: Maybe Bytes+ , nodeIndicesStatsSegVersionMapMemory :: Bytes+ , nodeIndicesStatsSegIndexWriterMaxMemory :: Maybe Bytes+ , nodeIndicesStatsSegIndexWriterMemory :: Bytes+ , nodeIndicesStatsSegMemory :: Bytes+ , nodeIndicesStatsSegCount :: Int+ , nodeIndicesStatsCompletionSize :: Bytes+ , nodeIndicesStatsPercolateQueries :: Maybe Int+ , nodeIndicesStatsPercolateMemory :: Maybe Bytes+ , nodeIndicesStatsPercolateCurrent :: Maybe Int+ , nodeIndicesStatsPercolateTime :: Maybe NominalDiffTime+ , nodeIndicesStatsPercolateTotal :: Maybe Int+ , nodeIndicesStatsFieldDataEvictions :: Int+ , nodeIndicesStatsFieldDataMemory :: Bytes+ , nodeIndicesStatsWarmerTotalTime :: NominalDiffTime+ , nodeIndicesStatsWarmerTotal :: Int+ , nodeIndicesStatsWarmerCurrent :: Int+ , nodeIndicesStatsFlushTotalTime :: NominalDiffTime+ , nodeIndicesStatsFlushTotal :: Int+ , nodeIndicesStatsRefreshTotalTime :: NominalDiffTime+ , nodeIndicesStatsRefreshTotal :: Int+ , nodeIndicesStatsMergesTotalSize :: Bytes+ , nodeIndicesStatsMergesTotalDocs :: Int+ , nodeIndicesStatsMergesTotalTime :: NominalDiffTime+ , nodeIndicesStatsMergesTotal :: Int+ , nodeIndicesStatsMergesCurrentSize :: Bytes+ , nodeIndicesStatsMergesCurrentDocs :: Int+ , nodeIndicesStatsMergesCurrent :: Int+ , nodeIndicesStatsSearchFetchCurrent :: Int+ , nodeIndicesStatsSearchFetchTime :: NominalDiffTime+ , nodeIndicesStatsSearchFetchTotal :: Int+ , nodeIndicesStatsSearchQueryCurrent :: Int+ , nodeIndicesStatsSearchQueryTime :: NominalDiffTime+ , nodeIndicesStatsSearchQueryTotal :: Int+ , nodeIndicesStatsSearchOpenContexts :: Int+ , nodeIndicesStatsGetCurrent :: Int+ , nodeIndicesStatsGetMissingTime :: NominalDiffTime+ , nodeIndicesStatsGetMissingTotal :: Int+ , nodeIndicesStatsGetExistsTime :: NominalDiffTime+ , nodeIndicesStatsGetExistsTotal :: Int+ , nodeIndicesStatsGetTime :: NominalDiffTime+ , nodeIndicesStatsGetTotal :: Int+ , nodeIndicesStatsIndexingThrottleTime :: Maybe NominalDiffTime+ , nodeIndicesStatsIndexingIsThrottled :: Maybe Bool+ , nodeIndicesStatsIndexingNoopUpdateTotal :: Maybe Int+ , nodeIndicesStatsIndexingDeleteCurrent :: Int+ , nodeIndicesStatsIndexingDeleteTime :: NominalDiffTime+ , nodeIndicesStatsIndexingDeleteTotal :: Int+ , nodeIndicesStatsIndexingIndexCurrent :: Int+ , nodeIndicesStatsIndexingIndexTime :: NominalDiffTime+ , nodeIndicesStatsIndexingTotal :: Int+ , nodeIndicesStatsStoreThrottleTime :: Maybe NominalDiffTime+ , nodeIndicesStatsStoreSize :: Bytes+ , nodeIndicesStatsDocsDeleted :: Int+ , nodeIndicesStatsDocsCount :: Int+ } deriving (Eq, Show)++-- | A quirky address format used throughout Elasticsearch. An example+-- would be inet[/1.1.1.1:9200]. inet may be a placeholder for a+-- <https://en.wikipedia.org/wiki/Fully_qualified_domain_name FQDN>.+newtype EsAddress = EsAddress { esAddress :: Text }+ deriving (Eq, Ord, Show, FromJSON)++-- | Typically a 7 character hex string.+newtype BuildHash = BuildHash { buildHash :: Text }+ deriving (Eq, Ord, Show, FromJSON, ToJSON)++newtype PluginName = PluginName { pluginName :: Text }+ deriving (Eq, Ord, Show, FromJSON)++data NodeInfo = NodeInfo {+ nodeInfoHTTPAddress :: Maybe EsAddress+ , nodeInfoBuild :: BuildHash+ , nodeInfoESVersion :: VersionNumber+ , nodeInfoIP :: Server+ , nodeInfoHost :: Server+ , nodeInfoTransportAddress :: EsAddress+ , nodeInfoName :: NodeName+ , nodeInfoFullId :: FullNodeId+ , nodeInfoPlugins :: [NodePluginInfo]+ , nodeInfoHTTP :: NodeHTTPInfo+ , nodeInfoTransport :: NodeTransportInfo+ , nodeInfoNetwork :: Maybe NodeNetworkInfo+ , nodeInfoThreadPool :: Map Text NodeThreadPoolInfo+ , nodeInfoJVM :: NodeJVMInfo+ , nodeInfoProcess :: NodeProcessInfo+ , nodeInfoOS :: NodeOSInfo+ , nodeInfoSettings :: Object+ -- ^ The members of the settings objects are not consistent,+ -- dependent on plugins, etc.+ } deriving (Eq, Show)++data NodePluginInfo = NodePluginInfo {+ nodePluginSite :: Maybe Bool+ -- ^ Is this a site plugin?+ , nodePluginJVM :: Maybe Bool+ -- ^ Is this plugin running on the JVM+ , nodePluginDescription :: Text+ , nodePluginVersion :: MaybeNA VersionNumber+ , nodePluginName :: PluginName+ } deriving (Eq, Show)++data NodeHTTPInfo = NodeHTTPInfo {+ nodeHTTPMaxContentLength :: Bytes+ , nodeHTTPpublishAddress :: EsAddress+ , nodeHTTPbound_address :: [EsAddress]+ } deriving (Eq, Show)++data NodeTransportInfo = NodeTransportInfo {+ nodeTransportProfiles :: [BoundTransportAddress]+ , nodeTransportPublishAddress :: EsAddress+ , nodeTransportBoundAddress :: [EsAddress]+ } deriving (Eq, Show)++data BoundTransportAddress = BoundTransportAddress {+ publishAddress :: EsAddress+ , boundAddress :: [EsAddress]+ } deriving (Eq, Show)++data NodeNetworkInfo = NodeNetworkInfo {+ nodeNetworkPrimaryInterface :: NodeNetworkInterface+ , nodeNetworkRefreshInterval :: NominalDiffTime+ } deriving (Eq, Show)++newtype MacAddress = MacAddress { macAddress :: Text }+ deriving (Eq, Ord, Show, FromJSON)++newtype NetworkInterfaceName = NetworkInterfaceName { networkInterfaceName :: Text }+ deriving (Eq, Ord, Show, FromJSON)++data NodeNetworkInterface = NodeNetworkInterface {+ nodeNetIfaceMacAddress :: MacAddress+ , nodeNetIfaceName :: NetworkInterfaceName+ , nodeNetIfaceAddress :: Server+ } deriving (Eq, Show)++data ThreadPool = ThreadPool {+ nodeThreadPoolName :: Text+ , nodeThreadPoolInfo :: NodeThreadPoolInfo+} deriving (Eq, Show)++data NodeThreadPoolInfo = NodeThreadPoolInfo {+ nodeThreadPoolQueueSize :: ThreadPoolSize+ , nodeThreadPoolKeepalive :: Maybe NominalDiffTime+ , nodeThreadPoolMin :: Maybe Int+ , nodeThreadPoolMax :: Maybe Int+ , nodeThreadPoolType :: ThreadPoolType+ } deriving (Eq, Show)++data ThreadPoolSize = ThreadPoolBounded Int+ | ThreadPoolUnbounded+ deriving (Eq, Show)++data ThreadPoolType = ThreadPoolScaling+ | ThreadPoolFixed+ | ThreadPoolCached+ | ThreadPoolFixedAutoQueueSize+ deriving (Eq, Show)++data NodeJVMInfo = NodeJVMInfo {+ nodeJVMInfoMemoryPools :: [JVMMemoryPool]+ , nodeJVMInfoMemoryPoolsGCCollectors :: [JVMGCCollector]+ , nodeJVMInfoMemoryInfo :: JVMMemoryInfo+ , nodeJVMInfoStartTime :: UTCTime+ , nodeJVMInfoVMVendor :: Text+ , nodeJVMVMVersion :: VMVersion+ -- ^ JVM doesn't seme to follow normal version conventions+ , nodeJVMVMName :: Text+ , nodeJVMVersion :: JVMVersion+ , nodeJVMPID :: PID+ } deriving (Eq, Show)++-- | We cannot parse JVM version numbers and we're not going to try.+newtype JVMVersion =+ JVMVersion { unJVMVersion :: Text }+ deriving (Eq, Show)++instance FromJSON JVMVersion where+ parseJSON = withText "JVMVersion" (pure . JVMVersion)++data JVMMemoryInfo = JVMMemoryInfo {+ jvmMemoryInfoDirectMax :: Bytes+ , jvmMemoryInfoNonHeapMax :: Bytes+ , jvmMemoryInfoNonHeapInit :: Bytes+ , jvmMemoryInfoHeapMax :: Bytes+ , jvmMemoryInfoHeapInit :: Bytes+ } deriving (Eq, Show)++-- VM version numbers don't appear to be SemVer+-- so we're special casing this jawn.+newtype VMVersion =+ VMVersion { unVMVersion :: Text }+ deriving (Eq, Show)++instance ToJSON VMVersion where+ toJSON = toJSON . unVMVersion++instance FromJSON VMVersion where+ parseJSON = withText "VMVersion" (pure . VMVersion)++newtype JVMMemoryPool = JVMMemoryPool {+ jvmMemoryPool :: Text+ } deriving (Eq, Show, FromJSON)++newtype JVMGCCollector = JVMGCCollector {+ jvmGCCollector :: Text+ } deriving (Eq, Show, FromJSON)++newtype PID = PID {+ pid :: Int+ } deriving (Eq, Show, FromJSON)++data NodeOSInfo = NodeOSInfo {+ nodeOSRefreshInterval :: NominalDiffTime+ , nodeOSName :: Text+ , nodeOSArch :: Text+ , nodeOSVersion :: VersionNumber+ , nodeOSAvailableProcessors :: Int+ , nodeOSAllocatedProcessors :: Int+ } deriving (Eq, Show)++data CPUInfo = CPUInfo {+ cpuCacheSize :: Bytes+ , cpuCoresPerSocket :: Int+ , cpuTotalSockets :: Int+ , cpuTotalCores :: Int+ , cpuMHZ :: Int+ , cpuModel :: Text+ , cpuVendor :: Text+ } deriving (Eq, Show)++data NodeProcessInfo = NodeProcessInfo {+ nodeProcessMLockAll :: Bool+ -- ^ See <https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>+ , nodeProcessMaxFileDescriptors :: Maybe Int+ , nodeProcessId :: PID+ , nodeProcessRefreshInterval :: NominalDiffTime+ } deriving (Eq, Show)++data ShardResult =+ ShardResult { shardTotal :: Int+ , shardsSuccessful :: Int+ , shardsSkipped :: Int+ , shardsFailed :: Int } deriving (Eq, Show)++instance FromJSON ShardResult where+ parseJSON (Object v) = ShardResult <$>+ v .: "total" <*>+ v .: "successful" <*>+ v .: "skipped" <*>+ v .: "failed"+ parseJSON _ = empty++data SnapshotState = SnapshotInit+ | SnapshotStarted+ | SnapshotSuccess+ | SnapshotFailed+ | SnapshotAborted+ | SnapshotMissing+ | SnapshotWaiting+ deriving (Eq, Show)++instance FromJSON SnapshotState where+ parseJSON = withText "SnapshotState" parse+ where+ parse "INIT" = return SnapshotInit+ parse "STARTED" = return SnapshotStarted+ parse "SUCCESS" = return SnapshotSuccess+ parse "FAILED" = return SnapshotFailed+ parse "ABORTED" = return SnapshotAborted+ parse "MISSING" = return SnapshotMissing+ parse "WAITING" = return SnapshotWaiting+ parse t = fail ("Invalid snapshot state " <> T.unpack t)+++data SnapshotRestoreSettings = SnapshotRestoreSettings {+ snapRestoreWaitForCompletion :: Bool+ -- ^ Should the API call return immediately after initializing+ -- the restore or wait until completed? Note that if this is+ -- enabled, it could wait a long time, so you should adjust your+ -- 'ManagerSettings' accordingly to set long timeouts or+ -- explicitly handle timeouts.+ , snapRestoreIndices :: Maybe IndexSelection+ -- ^ Nothing will restore all indices in the snapshot. Just [] is+ -- permissable and will essentially be a no-op restore.+ , snapRestoreIgnoreUnavailable :: Bool+ -- ^ If set to True, any indices that do not exist will be ignored+ -- during snapshot rather than failing the restore.+ , snapRestoreIncludeGlobalState :: Bool+ -- ^ If set to false, will ignore any global state in the snapshot+ -- and will not restore it.+ , snapRestoreRenamePattern :: Maybe RestoreRenamePattern+ -- ^ A regex pattern for matching indices. Used with+ -- 'snapRestoreRenameReplacement', the restore can reference the+ -- matched index and create a new index name upon restore.+ , snapRestoreRenameReplacement :: Maybe (NonEmpty RestoreRenameToken)+ -- ^ Expression of how index renames should be constructed.+ , snapRestorePartial :: Bool+ -- ^ If some indices fail to restore, should the process proceed?+ , snapRestoreIncludeAliases :: Bool+ -- ^ Should the restore also restore the aliases captured in the+ -- snapshot.+ , snapRestoreIndexSettingsOverrides :: Maybe RestoreIndexSettings+ -- ^ Settings to apply during the restore process. __NOTE:__ This+ -- option is not supported in ES < 1.5 and should be set to+ -- Nothing in that case.+ , snapRestoreIgnoreIndexSettings :: Maybe (NonEmpty Text)+ -- ^ This type could be more rich but it isn't clear which+ -- settings are allowed to be ignored during restore, so we're+ -- going with including this feature in a basic form rather than+ -- omitting it. One example here would be+ -- "index.refresh_interval". Any setting specified here will+ -- revert back to the server default during the restore process.+ } deriving (Eq, Show)++newtype SnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings+ { repoUpdateVerify :: Bool+ -- ^ After creation/update, synchronously check that nodes can+ -- write to this repo. Defaults to True. You may use False if you+ -- need a faster response and plan on verifying manually later+ -- with 'verifySnapshotRepo'.+ } deriving (Eq, Show)+++-- | Reasonable defaults for repo creation/update+--+-- * repoUpdateVerify True+defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings+defaultSnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings True+++-- | A filesystem-based snapshot repo that ships with+-- Elasticsearch. This is an instance of 'SnapshotRepo' so it can be+-- used with 'updateSnapshotRepo'+data FsSnapshotRepo = FsSnapshotRepo {+ fsrName :: SnapshotRepoName+ , fsrLocation :: FilePath+ , fsrCompressMetadata :: Bool+ , fsrChunkSize :: Maybe Bytes+ -- ^ Size by which to split large files during snapshotting.+ , fsrMaxRestoreBytesPerSec :: Maybe Bytes+ -- ^ Throttle node restore rate. If not supplied, defaults to 40mb/sec+ , fsrMaxSnapshotBytesPerSec :: Maybe Bytes+ -- ^ Throttle node snapshot rate. If not supplied, defaults to 40mb/sec+ } deriving (Eq, Show)+++instance SnapshotRepo FsSnapshotRepo where+ toGSnapshotRepo FsSnapshotRepo {..} =+ GenericSnapshotRepo fsrName fsRepoType (GenericSnapshotRepoSettings settings)+ where+ Object settings = object $ [ "location" .= fsrLocation+ , "compress" .= fsrCompressMetadata+ ] ++ optionalPairs+ optionalPairs = catMaybes [ ("chunk_size" .=) <$> fsrChunkSize+ , ("max_restore_bytes_per_sec" .=) <$> fsrMaxRestoreBytesPerSec+ , ("max_snapshot_bytes_per_sec" .=) <$> fsrMaxSnapshotBytesPerSec+ ]+ fromGSnapshotRepo GenericSnapshotRepo {..}+ | gSnapshotRepoType == fsRepoType = do+ let o = gSnapshotRepoSettingsObject gSnapshotRepoSettings+ parseRepo $+ FsSnapshotRepo gSnapshotRepoName <$> o .: "location"+ <*> o .:? "compress" .!= False+ <*> o .:? "chunk_size"+ <*> o .:? "max_restore_bytes_per_sec"+ <*> o .:? "max_snapshot_bytes_per_sec"+ | otherwise = Left (RepoTypeMismatch fsRepoType gSnapshotRepoType)+++parseRepo :: Parser a -> Either SnapshotRepoConversionError a+parseRepo parser = case parseEither (const parser) () of+ Left e -> Left (OtherRepoConversionError (T.pack e))+ Right a -> Right a+++fsRepoType :: SnapshotRepoType+fsRepoType = SnapshotRepoType "fs"++-- | Law: fromGSnapshotRepo (toGSnapshotRepo r) == Right r+class SnapshotRepo r where+ toGSnapshotRepo :: r -> GenericSnapshotRepo+ fromGSnapshotRepo :: GenericSnapshotRepo -> Either SnapshotRepoConversionError r+++data SnapshotRepoConversionError = RepoTypeMismatch SnapshotRepoType SnapshotRepoType+ -- ^ Expected type and actual type+ | OtherRepoConversionError Text+ deriving (Show, Eq)+++instance Exception SnapshotRepoConversionError+++data SnapshotCreateSettings = SnapshotCreateSettings {+ snapWaitForCompletion :: Bool+ -- ^ Should the API call return immediately after initializing+ -- the snapshot or wait until completed? Note that if this is+ -- enabled it could wait a long time, so you should adjust your+ -- 'ManagerSettings' accordingly to set long timeouts or+ -- explicitly handle timeouts.+ , snapIndices :: Maybe IndexSelection+ -- ^ Nothing will snapshot all indices. Just [] is permissable and+ -- will essentially be a no-op snapshot.+ , snapIgnoreUnavailable :: Bool+ -- ^ If set to True, any matched indices that don't exist will be+ -- ignored. Otherwise it will be an error and fail.+ , snapIncludeGlobalState :: Bool+ , snapPartial :: Bool+ -- ^ If some indices failed to snapshot (e.g. if not all primary+ -- shards are available), should the process proceed?+ } deriving (Eq, Show)+++-- | Reasonable defaults for snapshot creation+--+-- * snapWaitForCompletion False+-- * snapIndices Nothing+-- * snapIgnoreUnavailable False+-- * snapIncludeGlobalState True+-- * snapPartial False+defaultSnapshotCreateSettings :: SnapshotCreateSettings+defaultSnapshotCreateSettings = SnapshotCreateSettings {+ snapWaitForCompletion = False+ , snapIndices = Nothing+ , snapIgnoreUnavailable = False+ , snapIncludeGlobalState = True+ , snapPartial = False+ }+++data SnapshotSelection =+ SnapshotList (NonEmpty SnapshotPattern)+ | AllSnapshots+ deriving (Eq, Show)+++-- | Either specifies an exact snapshot name or one with globs in it,+-- e.g. @SnapPattern "foo*"@ __NOTE__: Patterns are not supported on+-- ES < 1.7+data SnapshotPattern =+ ExactSnap SnapshotName+ | SnapPattern Text+ deriving (Eq, Show)+++-- | General information about the state of a snapshot. Has some+-- redundancies with 'SnapshotStatus'+data SnapshotInfo = SnapshotInfo {+ snapInfoShards :: ShardResult+ , snapInfoFailures :: [SnapshotShardFailure]+ , snapInfoDuration :: NominalDiffTime+ , snapInfoEndTime :: UTCTime+ , snapInfoStartTime :: UTCTime+ , snapInfoState :: SnapshotState+ , snapInfoIndices :: [IndexName]+ , snapInfoName :: SnapshotName+ } deriving (Eq, Show)+++instance FromJSON SnapshotInfo where+ parseJSON = withObject "SnapshotInfo" parse+ where+ parse o = SnapshotInfo <$> o .: "shards"+ <*> o .: "failures"+ <*> (unMS <$> o .: "duration_in_millis")+ <*> (posixMS <$> o .: "end_time_in_millis")+ <*> (posixMS <$> o .: "start_time_in_millis")+ <*> o .: "state"+ <*> o .: "indices"+ <*> o .: "snapshot"++data SnapshotShardFailure = SnapshotShardFailure {+ snapShardFailureIndex :: IndexName+ , snapShardFailureNodeId :: Maybe NodeName -- I'm not 100% sure this isn't actually 'FullNodeId'+ , snapShardFailureReason :: Text+ , snapShardFailureShardId :: ShardId+ } deriving (Eq, Show)+++instance FromJSON SnapshotShardFailure where+ parseJSON = withObject "SnapshotShardFailure" parse+ where+ parse o = SnapshotShardFailure <$> o .: "index"+ <*> o .:? "node_id"+ <*> o .: "reason"+ <*> o .: "shard_id"++-- | Regex-stype pattern, e.g. "index_(.+)" to match index names+newtype RestoreRenamePattern =+ RestoreRenamePattern { rrPattern :: Text }+ deriving (Eq, Show, Ord, ToJSON)+++-- | A single token in a index renaming scheme for a restore. These+-- are concatenated into a string before being sent to+-- Elasticsearch. Check out these Java+-- <https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html docs> to find out more if you're into that sort of thing.+data RestoreRenameToken = RRTLit Text+ -- ^ Just a literal string of characters+ | RRSubWholeMatch+ -- ^ Equivalent to $0. The entire matched pattern, not any subgroup+ | RRSubGroup RRGroupRefNum+ -- ^ A specific reference to a group number+ deriving (Eq, Show)+++-- | A group number for regex matching. Only values from 1-9 are+-- supported. Construct with 'mkRRGroupRefNum'+newtype RRGroupRefNum =+ RRGroupRefNum { rrGroupRefNum :: Int }+ deriving (Eq, Ord, Show)++instance Bounded RRGroupRefNum where+ minBound = RRGroupRefNum 1+ maxBound = RRGroupRefNum 9+++-- | Only allows valid group number references (1-9).+mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum+mkRRGroupRefNum i+ | i >= rrGroupRefNum minBound+ && i <= rrGroupRefNum maxBound =+ Just $ RRGroupRefNum i+ | otherwise = Nothing++-- | Reasonable defaults for snapshot restores+--+-- * snapRestoreWaitForCompletion False+-- * snapRestoreIndices Nothing+-- * snapRestoreIgnoreUnavailable False+-- * snapRestoreIncludeGlobalState True+-- * snapRestoreRenamePattern Nothing+-- * snapRestoreRenameReplacement Nothing+-- * snapRestorePartial False+-- * snapRestoreIncludeAliases True+-- * snapRestoreIndexSettingsOverrides Nothing+-- * snapRestoreIgnoreIndexSettings Nothing+defaultSnapshotRestoreSettings :: SnapshotRestoreSettings+defaultSnapshotRestoreSettings = SnapshotRestoreSettings {+ snapRestoreWaitForCompletion = False+ , snapRestoreIndices = Nothing+ , snapRestoreIgnoreUnavailable = False+ , snapRestoreIncludeGlobalState = True+ , snapRestoreRenamePattern = Nothing+ , snapRestoreRenameReplacement = Nothing+ , snapRestorePartial = False+ , snapRestoreIncludeAliases = True+ , snapRestoreIndexSettingsOverrides = Nothing+ , snapRestoreIgnoreIndexSettings = Nothing+ }+++-- | Index settings that can be overridden. The docs only mention you+-- can update number of replicas, but there may be more. You+-- definitely cannot override shard count.+newtype RestoreIndexSettings = RestoreIndexSettings+ { restoreOverrideReplicas :: Maybe ReplicaCount+ } deriving (Eq, Show)+++instance ToJSON RestoreIndexSettings where+ toJSON RestoreIndexSettings {..} = object prs+ where+ prs = catMaybes [("index.number_of_replicas" .=) <$> restoreOverrideReplicas]+++instance FromJSON NodesInfo where+ parseJSON = withObject "NodesInfo" parse+ where+ parse o = do+ nodes <- o .: "nodes"+ infos <- forM (HM.toList nodes) $ \(fullNID, v) -> do+ node <- parseJSON v+ parseNodeInfo (FullNodeId fullNID) node+ cn <- o .: "cluster_name"+ return (NodesInfo infos cn)++instance FromJSON NodesStats where+ parseJSON = withObject "NodesStats" parse+ where+ parse o = do+ nodes <- o .: "nodes"+ stats <- forM (HM.toList nodes) $ \(fullNID, v) -> do+ node <- parseJSON v+ parseNodeStats (FullNodeId fullNID) node+ cn <- o .: "cluster_name"+ return (NodesStats stats cn)++instance FromJSON NodeBreakerStats where+ parseJSON = withObject "NodeBreakerStats" parse+ where+ parse o = NodeBreakerStats <$> o .: "tripped"+ <*> o .: "overhead"+ <*> o .: "estimated_size_in_bytes"+ <*> o .: "limit_size_in_bytes"++instance FromJSON NodeHTTPStats where+ parseJSON = withObject "NodeHTTPStats" parse+ where+ parse o = NodeHTTPStats <$> o .: "total_opened"+ <*> o .: "current_open"++instance FromJSON NodeTransportStats where+ parseJSON = withObject "NodeTransportStats" parse+ where+ parse o = NodeTransportStats <$> o .: "tx_size_in_bytes"+ <*> o .: "tx_count"+ <*> o .: "rx_size_in_bytes"+ <*> o .: "rx_count"+ <*> o .: "server_open"++instance FromJSON NodeFSStats where+ parseJSON = withObject "NodeFSStats" parse+ where+ parse o = NodeFSStats <$> o .: "data"+ <*> o .: "total"+ <*> (posixMS <$> o .: "timestamp")++instance FromJSON NodeDataPathStats where+ parseJSON = withObject "NodeDataPathStats" parse+ where+ parse o =+ NodeDataPathStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")+ <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")+ <*> o .:? "disk_io_size_in_bytes"+ <*> o .:? "disk_write_size_in_bytes"+ <*> o .:? "disk_read_size_in_bytes"+ <*> o .:? "disk_io_op"+ <*> o .:? "disk_writes"+ <*> o .:? "disk_reads"+ <*> o .: "available_in_bytes"+ <*> o .: "free_in_bytes"+ <*> o .: "total_in_bytes"+ <*> o .:? "type"+ <*> o .:? "dev"+ <*> o .: "mount"+ <*> o .: "path"++instance FromJSON NodeFSTotalStats where+ parseJSON = withObject "NodeFSTotalStats" parse+ where+ parse o = NodeFSTotalStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")+ <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")+ <*> o .:? "disk_io_size_in_bytes"+ <*> o .:? "disk_write_size_in_bytes"+ <*> o .:? "disk_read_size_in_bytes"+ <*> o .:? "disk_io_op"+ <*> o .:? "disk_writes"+ <*> o .:? "disk_reads"+ <*> o .: "available_in_bytes"+ <*> o .: "free_in_bytes"+ <*> o .: "total_in_bytes"++instance FromJSON NodeNetworkStats where+ parseJSON = withObject "NodeNetworkStats" parse+ where+ parse o = do+ tcp <- o .: "tcp"+ NodeNetworkStats <$> tcp .: "out_rsts"+ <*> tcp .: "in_errs"+ <*> tcp .: "attempt_fails"+ <*> tcp .: "estab_resets"+ <*> tcp .: "retrans_segs"+ <*> tcp .: "out_segs"+ <*> tcp .: "in_segs"+ <*> tcp .: "curr_estab"+ <*> tcp .: "passive_opens"+ <*> tcp .: "active_opens"++instance FromJSON NodeThreadPoolStats where+ parseJSON = withObject "NodeThreadPoolStats" parse+ where+ parse o = NodeThreadPoolStats <$> o .: "completed"+ <*> o .: "largest"+ <*> o .: "rejected"+ <*> o .: "active"+ <*> o .: "queue"+ <*> o .: "threads"++instance FromJSON NodeJVMStats where+ parseJSON = withObject "NodeJVMStats" parse+ where+ parse o = do+ bufferPools <- o .: "buffer_pools"+ mapped <- bufferPools .: "mapped"+ direct <- bufferPools .: "direct"+ gc <- o .: "gc"+ collectors <- gc .: "collectors"+ oldC <- collectors .: "old"+ youngC <- collectors .: "young"+ threads <- o .: "threads"+ mem <- o .: "mem"+ pools <- mem .: "pools"+ oldM <- pools .: "old"+ survivorM <- pools .: "survivor"+ youngM <- pools .: "young"+ NodeJVMStats <$> pure mapped+ <*> pure direct+ <*> pure oldC+ <*> pure youngC+ <*> threads .: "peak_count"+ <*> threads .: "count"+ <*> pure oldM+ <*> pure survivorM+ <*> pure youngM+ <*> mem .: "non_heap_committed_in_bytes"+ <*> mem .: "non_heap_used_in_bytes"+ <*> mem .: "heap_max_in_bytes"+ <*> mem .: "heap_committed_in_bytes"+ <*> mem .: "heap_used_percent"+ <*> mem .: "heap_used_in_bytes"+ <*> (unMS <$> o .: "uptime_in_millis")+ <*> (posixMS <$> o .: "timestamp")++instance FromJSON JVMBufferPoolStats where+ parseJSON = withObject "JVMBufferPoolStats" parse+ where+ parse o = JVMBufferPoolStats <$> o .: "total_capacity_in_bytes"+ <*> o .: "used_in_bytes"+ <*> o .: "count"++instance FromJSON JVMGCStats where+ parseJSON = withObject "JVMGCStats" parse+ where+ parse o = JVMGCStats <$> (unMS <$> o .: "collection_time_in_millis")+ <*> o .: "collection_count"++instance FromJSON JVMPoolStats where+ parseJSON = withObject "JVMPoolStats" parse+ where+ parse o = JVMPoolStats <$> o .: "peak_max_in_bytes"+ <*> o .: "peak_used_in_bytes"+ <*> o .: "max_in_bytes"+ <*> o .: "used_in_bytes"++instance FromJSON NodeProcessStats where+ parseJSON = withObject "NodeProcessStats" parse+ where+ parse o = do+ mem <- o .: "mem"+ cpu <- o .: "cpu"+ NodeProcessStats <$> (posixMS <$> o .: "timestamp")+ <*> o .: "open_file_descriptors"+ <*> o .: "max_file_descriptors"+ <*> cpu .: "percent"+ <*> (unMS <$> cpu .: "total_in_millis")+ <*> mem .: "total_virtual_in_bytes"++instance FromJSON NodeOSStats where+ parseJSON = withObject "NodeOSStats" parse+ where+ parse o = do+ swap <- o .: "swap"+ mem <- o .: "mem"+ cpu <- o .: "cpu"+ load <- o .:? "load_average"+ NodeOSStats <$> (posixMS <$> o .: "timestamp")+ <*> cpu .: "percent"+ <*> pure load+ <*> mem .: "total_in_bytes"+ <*> mem .: "free_in_bytes"+ <*> mem .: "free_percent"+ <*> mem .: "used_in_bytes"+ <*> mem .: "used_percent"+ <*> swap .: "total_in_bytes"+ <*> swap .: "free_in_bytes"+ <*> swap .: "used_in_bytes"++instance FromJSON LoadAvgs where+ parseJSON = withArray "LoadAvgs" parse+ where+ parse v = case V.toList v of+ [one, five, fifteen] -> LoadAvgs <$> parseJSON one+ <*> parseJSON five+ <*> parseJSON fifteen+ _ -> fail "Expecting a triple of Doubles"++instance FromJSON NodeIndicesStats where+ parseJSON = withObject "NodeIndicesStats" parse+ where+ parse o = do+ let (.::) mv k = case mv of+ Just v -> Just <$> v .: k+ Nothing -> pure Nothing+ mRecovery <- o .:? "recovery"+ mQueryCache <- o .:? "query_cache"+ mSuggest <- o .:? "suggest"+ translog <- o .: "translog"+ segments <- o .: "segments"+ completion <- o .: "completion"+ mPercolate <- o .:? "percolate"+ fielddata <- o .: "fielddata"+ warmer <- o .: "warmer"+ flush <- o .: "flush"+ refresh <- o .: "refresh"+ merges <- o .: "merges"+ search <- o .: "search"+ getStats <- o .: "get"+ indexing <- o .: "indexing"+ store <- o .: "store"+ docs <- o .: "docs"+ NodeIndicesStats <$> (fmap unMS <$> mRecovery .:: "throttle_time_in_millis")+ <*> mRecovery .:: "current_as_target"+ <*> mRecovery .:: "current_as_source"+ <*> mQueryCache .:: "miss_count"+ <*> mQueryCache .:: "hit_count"+ <*> mQueryCache .:: "evictions"+ <*> mQueryCache .:: "memory_size_in_bytes"+ <*> mSuggest .:: "current"+ <*> (fmap unMS <$> mSuggest .:: "time_in_millis")+ <*> mSuggest .:: "total"+ <*> translog .: "size_in_bytes"+ <*> translog .: "operations"+ <*> segments .:? "fixed_bit_set_memory_in_bytes"+ <*> segments .: "version_map_memory_in_bytes"+ <*> segments .:? "index_writer_max_memory_in_bytes"+ <*> segments .: "index_writer_memory_in_bytes"+ <*> segments .: "memory_in_bytes"+ <*> segments .: "count"+ <*> completion .: "size_in_bytes"+ <*> mPercolate .:: "queries"+ <*> mPercolate .:: "memory_size_in_bytes"+ <*> mPercolate .:: "current"+ <*> (fmap unMS <$> mPercolate .:: "time_in_millis")+ <*> mPercolate .:: "total"+ <*> fielddata .: "evictions"+ <*> fielddata .: "memory_size_in_bytes"+ <*> (unMS <$> warmer .: "total_time_in_millis")+ <*> warmer .: "total"+ <*> warmer .: "current"+ <*> (unMS <$> flush .: "total_time_in_millis")+ <*> flush .: "total"+ <*> (unMS <$> refresh .: "total_time_in_millis")+ <*> refresh .: "total"+ <*> merges .: "total_size_in_bytes"+ <*> merges .: "total_docs"+ <*> (unMS <$> merges .: "total_time_in_millis")+ <*> merges .: "total"+ <*> merges .: "current_size_in_bytes"+ <*> merges .: "current_docs"+ <*> merges .: "current"+ <*> search .: "fetch_current"+ <*> (unMS <$> search .: "fetch_time_in_millis")+ <*> search .: "fetch_total"+ <*> search .: "query_current"+ <*> (unMS <$> search .: "query_time_in_millis")+ <*> search .: "query_total"+ <*> search .: "open_contexts"+ <*> getStats .: "current"+ <*> (unMS <$> getStats .: "missing_time_in_millis")+ <*> getStats .: "missing_total"+ <*> (unMS <$> getStats .: "exists_time_in_millis")+ <*> getStats .: "exists_total"+ <*> (unMS <$> getStats .: "time_in_millis")+ <*> getStats .: "total"+ <*> (fmap unMS <$> indexing .:? "throttle_time_in_millis")+ <*> indexing .:? "is_throttled"+ <*> indexing .:? "noop_update_total"+ <*> indexing .: "delete_current"+ <*> (unMS <$> indexing .: "delete_time_in_millis")+ <*> indexing .: "delete_total"+ <*> indexing .: "index_current"+ <*> (unMS <$> indexing .: "index_time_in_millis")+ <*> indexing .: "index_total"+ <*> (fmap unMS <$> store .:? "throttle_time_in_millis")+ <*> store .: "size_in_bytes"+ <*> docs .: "deleted"+ <*> docs .: "count"++instance FromJSON NodeBreakersStats where+ parseJSON = withObject "NodeBreakersStats" parse+ where+ parse o = NodeBreakersStats <$> o .: "parent"+ <*> o .: "request"+ <*> o .: "fielddata"++parseNodeStats :: FullNodeId -> Object -> Parser NodeStats+parseNodeStats fnid o =+ NodeStats <$> o .: "name"+ <*> pure fnid+ <*> o .:? "breakers"+ <*> o .: "http"+ <*> o .: "transport"+ <*> o .: "fs"+ <*> o .:? "network"+ <*> o .: "thread_pool"+ <*> o .: "jvm"+ <*> o .: "process"+ <*> o .: "os"+ <*> o .: "indices"++parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo+parseNodeInfo nid o =+ NodeInfo <$> o .:? "http_address"+ <*> o .: "build_hash"+ <*> o .: "version"+ <*> o .: "ip"+ <*> o .: "host"+ <*> o .: "transport_address"+ <*> o .: "name"+ <*> pure nid+ <*> o .: "plugins"+ <*> o .: "http"+ <*> o .: "transport"+ <*> o .:? "network"+ <*> o .: "thread_pool"+ <*> o .: "jvm"+ <*> o .: "process"+ <*> o .: "os"+ <*> o .: "settings"++instance FromJSON NodePluginInfo where+ parseJSON = withObject "NodePluginInfo" parse+ where+ parse o = NodePluginInfo <$> o .:? "site"+ <*> o .:? "jvm"+ <*> o .: "description"+ <*> o .: "version"+ <*> o .: "name"++instance FromJSON NodeHTTPInfo where+ parseJSON = withObject "NodeHTTPInfo" parse+ where+ parse o = NodeHTTPInfo <$> o .: "max_content_length_in_bytes"+ <*> o .: "publish_address"+ <*> o .: "bound_address"++instance FromJSON BoundTransportAddress where+ parseJSON = withObject "BoundTransportAddress" parse+ where+ parse o = BoundTransportAddress <$> o .: "publish_address"+ <*> o .: "bound_address"++instance FromJSON NodeOSInfo where+ parseJSON = withObject "NodeOSInfo" parse+ where+ parse o =+ NodeOSInfo <$> (unMS <$> o .: "refresh_interval_in_millis")+ <*> o .: "name"+ <*> o .: "arch"+ <*> o .: "version"+ <*> o .: "available_processors"+ <*> o .: "allocated_processors"+++instance FromJSON CPUInfo where+ parseJSON = withObject "CPUInfo" parse+ where+ parse o = CPUInfo <$> o .: "cache_size_in_bytes"+ <*> o .: "cores_per_socket"+ <*> o .: "total_sockets"+ <*> o .: "total_cores"+ <*> o .: "mhz"+ <*> o .: "model"+ <*> o .: "vendor"++instance FromJSON NodeProcessInfo where+ parseJSON = withObject "NodeProcessInfo" parse+ where+ parse o = NodeProcessInfo <$> o .: "mlockall"+ <*> o .:? "max_file_descriptors"+ <*> o .: "id"+ <*> (unMS <$> o .: "refresh_interval_in_millis")++instance FromJSON NodeJVMInfo where+ parseJSON = withObject "NodeJVMInfo" parse+ where+ parse o = NodeJVMInfo <$> o .: "memory_pools"+ <*> o .: "gc_collectors"+ <*> o .: "mem"+ <*> (posixMS <$> o .: "start_time_in_millis")+ <*> o .: "vm_vendor"+ <*> o .: "vm_version"+ <*> o .: "vm_name"+ <*> o .: "version"+ <*> o .: "pid"++instance FromJSON JVMMemoryInfo where+ parseJSON = withObject "JVMMemoryInfo" parse+ where+ parse o = JVMMemoryInfo <$> o .: "direct_max_in_bytes"+ <*> o .: "non_heap_max_in_bytes"+ <*> o .: "non_heap_init_in_bytes"+ <*> o .: "heap_max_in_bytes"+ <*> o .: "heap_init_in_bytes"++instance FromJSON NodeThreadPoolInfo where+ parseJSON = withObject "NodeThreadPoolInfo" parse+ where+ parse o = do+ ka <- maybe (return Nothing) (fmap Just . parseStringInterval) =<< o .:? "keep_alive"+ NodeThreadPoolInfo <$> (parseJSON . unStringlyTypeJSON =<< o .: "queue_size")+ <*> pure ka+ <*> o .:? "min"+ <*> o .:? "max"+ <*> o .: "type"++data TimeInterval = Weeks+ | Days+ | Hours+ | Minutes+ | Seconds deriving Eq++instance Show TimeInterval where+ show Weeks = "w"+ show Days = "d"+ show Hours = "h"+ show Minutes = "m"+ show Seconds = "s"++instance Read TimeInterval where+ readPrec = f =<< TR.get+ where+ f 'w' = return Weeks+ f 'd' = return Days+ f 'h' = return Hours+ f 'm' = return Minutes+ f 's' = return Seconds+ f _ = fail "TimeInterval expected one of w, d, h, m, s"++data Interval = Year+ | Quarter+ | Month+ | Week+ | Day+ | Hour+ | Minute+ | Second deriving (Eq, Show)++instance ToJSON Interval where+ toJSON Year = "year"+ toJSON Quarter = "quarter"+ toJSON Month = "month"+ toJSON Week = "week"+ toJSON Day = "day"+ toJSON Hour = "hour"+ toJSON Minute = "minute"+ toJSON Second = "second"++parseStringInterval :: (Monad m, MonadFail m) => String -> m NominalDiffTime+parseStringInterval s = case span isNumber s of+ ("", _) -> fail "Invalid interval"+ (nS, unitS) -> case (readMay nS, readMay unitS) of+ (Just n, Just unit) -> return (fromInteger (n * unitNDT unit))+ (Nothing, _) -> fail "Invalid interval number"+ (_, Nothing) -> fail "Invalid interval unit"+ where+ unitNDT Seconds = 1+ unitNDT Minutes = 60+ unitNDT Hours = 60 * 60+ unitNDT Days = 24 * 60 * 60+ unitNDT Weeks = 7 * 24 * 60 * 60++instance FromJSON ThreadPoolSize where+ parseJSON v = parseAsNumber v <|> parseAsString v+ where+ parseAsNumber = parseAsInt <=< parseJSON+ parseAsInt (-1) = return ThreadPoolUnbounded+ parseAsInt n+ | n >= 0 = return (ThreadPoolBounded n)+ | otherwise = fail "Thread pool size must be >= -1."+ parseAsString = withText "ThreadPoolSize" $ \t ->+ case first (readMay . T.unpack) (T.span isNumber t) of+ (Just n, "k") -> return (ThreadPoolBounded (n * 1000))+ (Just n, "") -> return (ThreadPoolBounded n)+ _ -> fail ("Invalid thread pool size " <> T.unpack t)++instance FromJSON ThreadPoolType where+ parseJSON = withText "ThreadPoolType" parse+ where+ parse "scaling" = return ThreadPoolScaling+ parse "fixed" = return ThreadPoolFixed+ parse "cached" = return ThreadPoolCached+ parse "fixed_auto_queue_size" = return ThreadPoolFixedAutoQueueSize+ parse e = fail ("Unexpected thread pool type" <> T.unpack e)++instance FromJSON NodeTransportInfo where+ parseJSON = withObject "NodeTransportInfo" parse+ where+ parse o = NodeTransportInfo <$> (maybe (return mempty) parseProfiles =<< o .:? "profiles")+ <*> o .: "publish_address"+ <*> o .: "bound_address"+ parseProfiles (Object o) | HM.null o = return []+ parseProfiles v@(Array _) = parseJSON v+ parseProfiles Null = return []+ parseProfiles _ = fail "Could not parse profiles"++instance FromJSON NodeNetworkInfo where+ parseJSON = withObject "NodeNetworkInfo" parse+ where+ parse o = NodeNetworkInfo <$> o .: "primary_interface"+ <*> (unMS <$> o .: "refresh_interval_in_millis")+++instance FromJSON NodeNetworkInterface where+ parseJSON = withObject "NodeNetworkInterface" parse+ where+ parse o = NodeNetworkInterface <$> o .: "mac_address"+ <*> o .: "name"+ <*> o .: "address"+++instance ToJSON Version where+ toJSON Version {..} = object ["number" .= number+ ,"build_hash" .= build_hash+ ,"build_date" .= build_date+ ,"build_snapshot" .= build_snapshot+ ,"lucene_version" .= lucene_version]++instance FromJSON Version where+ parseJSON = withObject "Version" parse+ where parse o = Version+ <$> o .: "number"+ <*> o .: "build_hash"+ <*> o .: "build_date"+ <*> o .: "build_snapshot"+ <*> o .: "lucene_version"++instance ToJSON VersionNumber where+ toJSON = toJSON . SemVer.toText . versionNumber++instance FromJSON VersionNumber where+ parseJSON = withText "VersionNumber" parse+ where+ parse t =+ case SemVer.fromText t of+ (Left err) -> fail err+ (Right v) -> return (VersionNumber v)
+ src/Database/Bloodhound/Internal/Count.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE OverloadedStrings #-}+module Database.Bloodhound.Internal.Count+ (CountQuery (..), CountResponse(..), CountShards(..))+where++import Data.Aeson+import Database.Bloodhound.Internal.Query+import Numeric.Natural++newtype CountQuery = CountQuery { countQuery :: Query }+ deriving (Eq, Show)++instance ToJSON CountQuery where+ toJSON (CountQuery q) =+ object ["query" .= q]++data CountResponse = CountResponse { crCount :: Natural+ , crShards :: CountShards+ }+ deriving (Eq, Show)++instance FromJSON CountResponse where+ parseJSON =+ withObject "CountResponse"+ $ \o ->+ CountResponse+ <$> o .: "count"+ <*> o .: "_shards"++data CountShards = CountShards { csTotal :: Int+ , csSuccessful :: Int+ , csSkipped :: Int+ , csFailed :: Int+ }+ deriving (Eq, Show)++instance FromJSON CountShards where+ parseJSON =+ withObject "CountShards"+ $ \o ->+ CountShards+ <$> o .: "total"+ <*> o .: "successful"+ <*> o .: "skipped"+ <*> o .: "failed"
+ src/Database/Bloodhound/Internal/Highlight.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}++module Database.Bloodhound.Internal.Highlight where++import Bloodhound.Import++import qualified Data.Map.Strict as M++import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query++type HitHighlight = M.Map Text [Text]++data Highlights = Highlights+ { globalsettings :: Maybe HighlightSettings+ , highlightFields :: [FieldHighlight]+ } deriving (Eq, Show)++instance ToJSON Highlights where+ toJSON (Highlights global fields) =+ omitNulls (("fields" .= fields)+ : highlightSettingsPairs global)++data FieldHighlight =+ FieldHighlight FieldName (Maybe HighlightSettings)+ deriving (Eq, Show)+++instance ToJSON FieldHighlight where+ toJSON (FieldHighlight (FieldName fName) (Just fSettings)) =+ object [ fName .= fSettings ]+ toJSON (FieldHighlight (FieldName fName) Nothing) =+ object [ fName .= emptyObject ]++data HighlightSettings =+ Plain PlainHighlight+ | Postings PostingsHighlight+ | FastVector FastVectorHighlight+ deriving (Eq, Show)+++instance ToJSON HighlightSettings where+ toJSON hs = omitNulls (highlightSettingsPairs (Just hs))++data PlainHighlight =+ PlainHighlight { plainCommon :: Maybe CommonHighlight+ , plainNonPost :: Maybe NonPostings }+ deriving (Eq, Show)++ -- This requires that index_options are set to 'offset' in the mapping.+data PostingsHighlight =+ PostingsHighlight (Maybe CommonHighlight)+ deriving (Eq, Show)++-- This requires that term_vector is set to 'with_positions_offsets' in the mapping.+data FastVectorHighlight = FastVectorHighlight+ { fvCommon :: Maybe CommonHighlight+ , fvNonPostSettings :: Maybe NonPostings+ , boundaryChars :: Maybe Text+ , boundaryMaxScan :: Maybe Int+ , fragmentOffset :: Maybe Int+ , matchedFields :: [Text]+ , phraseLimit :: Maybe Int+ } deriving (Eq, Show)++data CommonHighlight = CommonHighlight+ { order :: Maybe Text+ , forceSource :: Maybe Bool+ , tag :: Maybe HighlightTag+ , encoder :: Maybe HighlightEncoder+ , noMatchSize :: Maybe Int+ , highlightQuery :: Maybe Query+ , requireFieldMatch :: Maybe Bool+ } deriving (Eq, Show)++-- Settings that are only applicable to FastVector and Plain highlighters.+data NonPostings =+ NonPostings { fragmentSize :: Maybe Int+ , numberOfFragments :: Maybe Int+ } deriving (Eq, Show)++data HighlightEncoder = DefaultEncoder+ | HTMLEncoder+ deriving (Eq, Show)++instance ToJSON HighlightEncoder where+ toJSON DefaultEncoder = String "default"+ toJSON HTMLEncoder = String "html"++-- NOTE: Should the tags use some kind of HTML type, rather than Text?+data HighlightTag =+ TagSchema Text+ -- Only uses more than the first value in the lists if fvh+ | CustomTags ([Text], [Text]) + deriving (Eq, Show)++highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]+highlightSettingsPairs Nothing = []+highlightSettingsPairs (Just (Plain plh)) = plainHighPairs (Just plh)+highlightSettingsPairs (Just (Postings ph)) = postHighPairs (Just ph)+highlightSettingsPairs (Just (FastVector fvh)) = fastVectorHighPairs (Just fvh)+++plainHighPairs :: Maybe PlainHighlight -> [Pair]+plainHighPairs Nothing = []+plainHighPairs (Just (PlainHighlight plCom plNonPost)) =+ [ "type" .= String "plain"]+ ++ commonHighlightPairs plCom+ ++ nonPostingsToPairs plNonPost++postHighPairs :: Maybe PostingsHighlight -> [Pair]+postHighPairs Nothing = []+postHighPairs (Just (PostingsHighlight pCom)) =+ ("type" .= String "postings")+ : commonHighlightPairs pCom++fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]+fastVectorHighPairs Nothing = []+fastVectorHighPairs+ (Just+ (FastVectorHighlight fvCom fvNonPostSettings' fvBoundChars+ fvBoundMaxScan fvFragOff fvMatchedFields+ fvPhraseLim)) =+ [ "type" .= String "fvh"+ , "boundary_chars" .= fvBoundChars+ , "boundary_max_scan" .= fvBoundMaxScan+ , "fragment_offset" .= fvFragOff+ , "matched_fields" .= fvMatchedFields+ , "phraseLimit" .= fvPhraseLim]+ ++ commonHighlightPairs fvCom+ ++ nonPostingsToPairs fvNonPostSettings'++commonHighlightPairs :: Maybe CommonHighlight -> [Pair]+commonHighlightPairs Nothing = []+commonHighlightPairs (Just (CommonHighlight chScore chForceSource+ chTag chEncoder chNoMatchSize+ chHighlightQuery chRequireFieldMatch)) =+ [ "order" .= chScore+ , "force_source" .= chForceSource+ , "encoder" .= chEncoder+ , "no_match_size" .= chNoMatchSize+ , "highlight_query" .= chHighlightQuery+ , "require_fieldMatch" .= chRequireFieldMatch+ ]+ ++ highlightTagToPairs chTag+++nonPostingsToPairs :: Maybe NonPostings -> [Pair]+nonPostingsToPairs Nothing = []+nonPostingsToPairs (Just (NonPostings npFragSize npNumOfFrags)) =+ [ "fragment_size" .= npFragSize+ , "number_of_fragments" .= npNumOfFrags+ ]++highlightTagToPairs :: Maybe HighlightTag -> [Pair]+highlightTagToPairs (Just (TagSchema _)) =+ [ "scheme" .= String "default"+ ]+highlightTagToPairs (Just (CustomTags (pre, post))) =+ [ "pre_tags" .= pre+ , "post_tags" .= post+ ]+highlightTagToPairs Nothing = []
+ src/Database/Bloodhound/Internal/Newtypes.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}++module Database.Bloodhound.Internal.Newtypes where++import Bloodhound.Import++import qualified Data.Map.Strict as M++newtype From = From Int deriving (Eq, Show, ToJSON)+newtype Size = Size Int deriving (Eq, Show, ToJSON, FromJSON)++-- Used with scripts+newtype HitFields =+ HitFields (M.Map Text [Value])+ deriving (Eq, Show)++instance FromJSON HitFields where+ parseJSON x+ = HitFields <$> parseJSON x++-- Slight misnomer.+type Score = Maybe Double++newtype ShardId = ShardId { shardId :: Int }+ deriving (Eq, Show, FromJSON)++{-| 'DocId' is a generic wrapper value for expressing unique Document IDs.+ Can be set by the user or created by ES itself. Often used in client+ functions for poking at specific documents.+-}+newtype DocId =+ DocId Text+ deriving (Eq, Show, ToJSON, FromJSON)++{-| 'FieldName' is used all over the place wherever a specific field within+ a document needs to be specified, usually in 'Query's or 'Filter's.+-}+newtype FieldName =+ FieldName Text+ deriving (Eq, Read, Show, ToJSON, FromJSON)++{- | 'RelationName' describes a relation role between parend and child Documents+ in a Join relarionship: https://www.elastic.co/guide/en/elasticsearch/reference/current/parent-join.html+-}+newtype RelationName =+ RelationName Text+ deriving (Eq, Read, Show, ToJSON, FromJSON)++{-| 'QueryString' is used to wrap query text bodies, be they human written or not.+-}+newtype QueryString =+ QueryString Text+ deriving (Eq, Show, ToJSON, FromJSON)+++-- {-| 'Script' is often used in place of 'FieldName' to specify more+-- complex ways of extracting a value from a document.+-- -}+-- newtype Script =+-- Script { scriptText :: Text }+-- deriving (Eq, Show)++{-| 'CacheName' is used in 'RegexpFilter' for describing the+ 'CacheKey' keyed caching behavior.+-}+newtype CacheName =+ CacheName Text+ deriving (Eq, Show, FromJSON, ToJSON)++{-| 'CacheKey' is used in 'RegexpFilter' to key regex caching.+-}+newtype CacheKey =+ CacheKey Text deriving (Eq, Show, FromJSON, ToJSON)+newtype Existence =+ Existence Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype NullValue =+ NullValue Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype CutoffFrequency =+ CutoffFrequency Double deriving (Eq, Show, FromJSON, ToJSON)+newtype Analyzer =+ Analyzer Text deriving (Eq, Show, FromJSON, ToJSON)+newtype MaxExpansions =+ MaxExpansions Int deriving (Eq, Show, FromJSON, ToJSON)++{-| 'Lenient', if set to true, will cause format based failures to be+ ignored. I don't know what the bloody default is, Elasticsearch+ documentation didn't say what it was. Let me know if you figure it out.+-}+newtype Lenient =+ Lenient Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype Tiebreaker =+ Tiebreaker Double deriving (Eq, Show, FromJSON, ToJSON)++{-| 'MinimumMatch' controls how many should clauses in the bool query should+ match. Can be an absolute value (2) or a percentage (30%) or a+ combination of both.+-}+newtype MinimumMatch =+ MinimumMatch Int deriving (Eq, Show, FromJSON, ToJSON)+newtype DisableCoord =+ DisableCoord Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype IgnoreTermFrequency =+ IgnoreTermFrequency Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype MinimumTermFrequency =+ MinimumTermFrequency Int deriving (Eq, Show, FromJSON, ToJSON)+newtype MaxQueryTerms =+ MaxQueryTerms Int deriving (Eq, Show, FromJSON, ToJSON)++{-| 'PrefixLength' is the prefix length used in queries, defaults to 0. -}+newtype PrefixLength =+ PrefixLength Int deriving (Eq, Show, FromJSON, ToJSON)+newtype PercentMatch =+ PercentMatch Double deriving (Eq, Show, FromJSON, ToJSON)+newtype StopWord =+ StopWord Text deriving (Eq, Show, FromJSON, ToJSON)+newtype QueryPath =+ QueryPath Text deriving (Eq, Show, FromJSON, ToJSON)++{-| Allowing a wildcard at the beginning of a word (eg "*ing") is particularly+ heavy, because all terms in the index need to be examined, just in case+ they match. Leading wildcards can be disabled by setting+ 'AllowLeadingWildcard' to false. -}+newtype AllowLeadingWildcard =+ AllowLeadingWildcard Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype LowercaseExpanded =+ LowercaseExpanded Bool deriving (Eq, Show, FromJSON, ToJSON)+newtype EnablePositionIncrements =+ EnablePositionIncrements Bool deriving (Eq, Show, FromJSON, ToJSON)++{-| By default, wildcard terms in a query are not analyzed.+ Setting 'AnalyzeWildcard' to true enables best-effort analysis.+-}+newtype AnalyzeWildcard = AnalyzeWildcard Bool deriving (Eq, Show, FromJSON, ToJSON)++{-| 'GeneratePhraseQueries' defaults to false.+-}+newtype GeneratePhraseQueries =+ GeneratePhraseQueries Bool deriving (Eq, Show, FromJSON, ToJSON)++{-| 'Locale' is used for string conversions - defaults to ROOT.+-}+newtype Locale = Locale Text deriving (Eq, Show, FromJSON, ToJSON)+newtype MaxWordLength = MaxWordLength Int deriving (Eq, Show, FromJSON, ToJSON)+newtype MinWordLength = MinWordLength Int deriving (Eq, Show, FromJSON, ToJSON)++{-| 'PhraseSlop' sets the default slop for phrases, 0 means exact+ phrase matches. Default is 0.+-}+newtype PhraseSlop = PhraseSlop Int deriving (Eq, Show, FromJSON, ToJSON)+newtype MinDocFrequency = MinDocFrequency Int deriving (Eq, Show, FromJSON, ToJSON)+newtype MaxDocFrequency = MaxDocFrequency Int deriving (Eq, Show, FromJSON, ToJSON)++-- | Indicates whether the relevance score of a matching parent document is aggregated into its child documents.+newtype AggregateParentScore = AggregateParentScore Bool deriving (Eq, Show, FromJSON, ToJSON)++-- | Indicates whether to ignore an unmapped parent_type and not return any documents instead of an error.+newtype IgnoreUnmapped = IgnoreUnmapped Bool deriving (Eq, Show, FromJSON, ToJSON)++{-| Maximum number of child documents that match the query allowed for a returned parent document.+ If the parent document exceeds this limit, it is excluded from the search results.+-}+newtype MinChildren = MinChildren Int deriving (Eq, Show, FromJSON, ToJSON)++{-| Minimum number of child documents that match the query required to match the query for a returned parent document.+ If the parent document does not meet this limit, it is excluded from the search results.+-}+newtype MaxChildren = MaxChildren Int deriving (Eq, Show, FromJSON, ToJSON)++-- | Newtype wrapper to parse ES's concerning tendency to in some APIs return a floating point number of milliseconds since epoch ಠ_ಠ+newtype POSIXMS = POSIXMS { posixMS :: UTCTime }++instance FromJSON POSIXMS where+ parseJSON = withScientific "POSIXMS" (return . parse)+ where parse n =+ let n' = truncate n :: Integer+ in POSIXMS (posixSecondsToUTCTime (fromInteger (n' `div` 1000)))++newtype Boost =+ Boost Double+ deriving (Eq, Show, ToJSON, FromJSON)++newtype BoostTerms =+ BoostTerms Double+ deriving (Eq, Show, ToJSON, FromJSON)++{-| 'ReplicaCount' is part of 'IndexSettings' -}+newtype ReplicaCount =+ ReplicaCount Int+ deriving (Eq, Show, ToJSON)++{-| 'ShardCount' is part of 'IndexSettings' -}+newtype ShardCount =+ ShardCount Int+ deriving (Eq, Show, ToJSON)++-- This insanity is because ES *sometimes* returns Replica/Shard counts as strings+instance FromJSON ReplicaCount where+ parseJSON v = parseAsInt v+ <|> parseAsString v+ where parseAsInt = fmap ReplicaCount . parseJSON+ parseAsString = withText "ReplicaCount" (fmap ReplicaCount . parseReadText)++instance FromJSON ShardCount where+ parseJSON v = parseAsInt v+ <|> parseAsString v+ where parseAsInt = fmap ShardCount . parseJSON+ parseAsString = withText "ShardCount" (fmap ShardCount . parseReadText)++{-| 'IndexName' is used to describe which index to query/create/delete -}+newtype IndexName =+ IndexName Text+ deriving (Eq, Show, ToJSON, FromJSON)++newtype IndexAliasName =+ IndexAliasName { indexAliasName :: IndexName }+ deriving (Eq, Show, ToJSON)++newtype MaybeNA a = MaybeNA { unMaybeNA :: Maybe a }+ deriving (Show, Eq)++instance FromJSON a => FromJSON (MaybeNA a) where+ parseJSON (String "NA") = pure $ MaybeNA Nothing+ parseJSON o = MaybeNA . Just <$> parseJSON o++newtype SnapshotName =+ SnapshotName { snapshotName :: Text }+ deriving (Eq, Show, ToJSON, FromJSON)++-- | Milliseconds+newtype MS = MS NominalDiffTime++-- keeps the unexported constructor warnings at bay+unMS :: MS -> NominalDiffTime+unMS (MS t) = t+++instance FromJSON MS where+ parseJSON = withScientific "MS" (return . MS . parse)+ where+ parse n = fromInteger (truncate n * 1000)++newtype TokenFilter =+ TokenFilter Text+ deriving (Eq, Show, FromJSON, ToJSON)++newtype CharFilter =+ CharFilter Text+ deriving (Eq, Show, FromJSON, ToJSON)
+ src/Database/Bloodhound/Internal/Query.hs view
@@ -0,0 +1,1632 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Database.Bloodhound.Internal.Query+ ( module X+ , module Database.Bloodhound.Internal.Query+ ) where++import Bloodhound.Import++import Control.Monad.Fail (MonadFail)+import Data.Char (isNumber)+import qualified Data.HashMap.Strict as HM+import Data.List (nub)+import qualified Data.Text as T++import Database.Bloodhound.Common.Script as X+import Database.Bloodhound.Internal.Newtypes++data Query =+ TermQuery Term (Maybe Boost)+ | TermsQuery Text (NonEmpty Text)+ | QueryMatchQuery MatchQuery+ | QueryMultiMatchQuery MultiMatchQuery+ | QueryBoolQuery BoolQuery+ | QueryBoostingQuery BoostingQuery+ | QueryCommonTermsQuery CommonTermsQuery+ | ConstantScoreQuery Query Boost+ | QueryFunctionScoreQuery FunctionScoreQuery+ | QueryDisMaxQuery DisMaxQuery+ | QueryFuzzyLikeThisQuery FuzzyLikeThisQuery+ | QueryFuzzyLikeFieldQuery FuzzyLikeFieldQuery+ | QueryFuzzyQuery FuzzyQuery+ | QueryHasChildQuery HasChildQuery+ | QueryHasParentQuery HasParentQuery+ | IdsQuery [DocId]+ | QueryIndicesQuery IndicesQuery+ | MatchAllQuery (Maybe Boost)+ | QueryMoreLikeThisQuery MoreLikeThisQuery+ | QueryMoreLikeThisFieldQuery MoreLikeThisFieldQuery+ | QueryNestedQuery NestedQuery+ | QueryPrefixQuery PrefixQuery+ | QueryQueryStringQuery QueryStringQuery+ | QuerySimpleQueryStringQuery SimpleQueryStringQuery+ | QueryRangeQuery RangeQuery+ | QueryRegexpQuery RegexpQuery+ | QueryExistsQuery FieldName+ | QueryMatchNoneQuery+ | QueryWildcardQuery WildcardQuery+ deriving (Eq, Show)++instance ToJSON Query where+ toJSON (TermQuery (Term termQueryField termQueryValue) boost) =+ object [ "term" .=+ object [termQueryField .= object merged]]+ where+ base = [ "value" .= termQueryValue ]+ boosted = maybe [] (return . ("boost" .=)) boost+ merged = mappend base boosted++ toJSON (TermsQuery fieldName terms) =+ object [ "terms" .= object conjoined ]+ where conjoined = [fieldName .= terms]++ toJSON (IdsQuery docIds) =+ object [ "ids" .= object conjoined ]+ where conjoined = [ "values" .= fmap toJSON docIds ]++ toJSON (QueryQueryStringQuery qQueryStringQuery) =+ object [ "query_string" .= qQueryStringQuery ]++ toJSON (QueryMatchQuery matchQuery) =+ object [ "match" .= matchQuery ]++ toJSON (QueryMultiMatchQuery multiMatchQuery) =+ toJSON multiMatchQuery++ toJSON (QueryBoolQuery boolQuery) =+ object [ "bool" .= boolQuery ]++ toJSON (QueryBoostingQuery boostingQuery) =+ object [ "boosting" .= boostingQuery ]++ toJSON (QueryCommonTermsQuery commonTermsQuery) =+ object [ "common" .= commonTermsQuery ]++ toJSON (ConstantScoreQuery query boost) =+ object ["constant_score" .= object ["filter" .= query+ , "boost" .= boost]]++ toJSON (QueryFunctionScoreQuery functionScoreQuery) =+ object [ "function_score" .= functionScoreQuery ]++ toJSON (QueryDisMaxQuery disMaxQuery) =+ object [ "dis_max" .= disMaxQuery ]++ toJSON (QueryFuzzyLikeThisQuery fuzzyQuery) =+ object [ "fuzzy_like_this" .= fuzzyQuery ]++ toJSON (QueryFuzzyLikeFieldQuery fuzzyFieldQuery) =+ object [ "fuzzy_like_this_field" .= fuzzyFieldQuery ]++ toJSON (QueryFuzzyQuery fuzzyQuery) =+ object [ "fuzzy" .= fuzzyQuery ]++ toJSON (QueryHasChildQuery childQuery) =+ object [ "has_child" .= childQuery ]++ toJSON (QueryHasParentQuery parentQuery) =+ object [ "has_parent" .= parentQuery ]++ toJSON (QueryIndicesQuery qIndicesQuery) =+ object [ "indices" .= qIndicesQuery ]++ toJSON (MatchAllQuery boost) =+ object [ "match_all" .= omitNulls [ "boost" .= boost ] ]++ toJSON (QueryMoreLikeThisQuery query) =+ object [ "more_like_this" .= query ]++ toJSON (QueryMoreLikeThisFieldQuery query) =+ object [ "more_like_this_field" .= query ]++ toJSON (QueryNestedQuery query) =+ object [ "nested" .= query ]++ toJSON (QueryPrefixQuery query) =+ object [ "prefix" .= query ]++ toJSON (QueryRangeQuery query) =+ object [ "range" .= query ]++ toJSON (QueryRegexpQuery query) =+ object [ "regexp" .= query ]++ toJSON (QuerySimpleQueryStringQuery query) =+ object [ "simple_query_string" .= query ]++ toJSON (QueryExistsQuery (FieldName fieldName)) =+ object ["exists" .= object+ ["field" .= fieldName]+ ]+ toJSON QueryMatchNoneQuery =+ object ["match_none" .= object []]++ toJSON (QueryWildcardQuery query) =+ object [ "wildcard" .= query ]++instance FromJSON Query where+ parseJSON v = withObject "Query" parse v+ where parse o = termQuery `taggedWith` "term"+ <|> termsQuery `taggedWith` "terms"+ <|> idsQuery `taggedWith` "ids"+ <|> queryQueryStringQuery `taggedWith` "query_string"+ <|> queryMatchQuery `taggedWith` "match"+ <|> queryMultiMatchQuery+ <|> queryBoolQuery `taggedWith` "bool"+ <|> queryBoostingQuery `taggedWith` "boosting"+ <|> queryCommonTermsQuery `taggedWith` "common"+ <|> constantScoreQuery `taggedWith` "constant_score"+ <|> queryFunctionScoreQuery `taggedWith` "function_score"+ <|> queryDisMaxQuery `taggedWith` "dis_max"+ <|> queryFuzzyLikeThisQuery `taggedWith` "fuzzy_like_this"+ <|> queryFuzzyLikeFieldQuery `taggedWith` "fuzzy_like_this_field"+ <|> queryFuzzyQuery `taggedWith` "fuzzy"+ <|> queryHasChildQuery `taggedWith` "has_child"+ <|> queryHasParentQuery `taggedWith` "has_parent"+ <|> queryIndicesQuery `taggedWith` "indices"+ <|> matchAllQuery `taggedWith` "match_all"+ <|> queryMoreLikeThisQuery `taggedWith` "more_like_this"+ <|> queryMoreLikeThisFieldQuery `taggedWith` "more_like_this_field"+ <|> queryNestedQuery `taggedWith` "nested"+ <|> queryPrefixQuery `taggedWith` "prefix"+ <|> queryRangeQuery `taggedWith` "range"+ <|> queryRegexpQuery `taggedWith` "regexp"+ <|> querySimpleQueryStringQuery `taggedWith` "simple_query_string"+ <|> queryWildcardQuery `taggedWith` "wildcard"+ where taggedWith parser k = parser =<< o .: k+ termQuery = fieldTagged $ \(FieldName fn) o ->+ TermQuery <$> (Term fn <$> o .: "value") <*> o .:? "boost"+ termsQuery o = case HM.toList o of+ [(fn, vs)] -> do vals <- parseJSON vs+ case vals of+ x:xs -> return (TermsQuery fn (x :| xs))+ _ -> fail "Expected non empty list of values"+ _ -> fail "Expected object with 1 field-named key"+ idsQuery o = IdsQuery <$> o .: "values"+ queryQueryStringQuery = pure . QueryQueryStringQuery+ queryMatchQuery = pure . QueryMatchQuery+ queryMultiMatchQuery = QueryMultiMatchQuery <$> parseJSON v+ queryBoolQuery = pure . QueryBoolQuery+ queryBoostingQuery = pure . QueryBoostingQuery+ queryCommonTermsQuery = pure . QueryCommonTermsQuery+ constantScoreQuery o = case HM.lookup "filter" o of+ Just x -> ConstantScoreQuery <$> parseJSON x+ <*> o .: "boost"+ _ -> fail "Does not appear to be a ConstantScoreQuery"+ queryFunctionScoreQuery = pure . QueryFunctionScoreQuery+ queryDisMaxQuery = pure . QueryDisMaxQuery+ queryFuzzyLikeThisQuery = pure . QueryFuzzyLikeThisQuery+ queryFuzzyLikeFieldQuery = pure . QueryFuzzyLikeFieldQuery+ queryFuzzyQuery = pure . QueryFuzzyQuery+ queryHasChildQuery = pure . QueryHasChildQuery+ queryHasParentQuery = pure . QueryHasParentQuery+ queryIndicesQuery = pure . QueryIndicesQuery+ matchAllQuery o = MatchAllQuery <$> o .:? "boost"+ queryMoreLikeThisQuery = pure . QueryMoreLikeThisQuery+ queryMoreLikeThisFieldQuery = pure . QueryMoreLikeThisFieldQuery+ queryNestedQuery = pure . QueryNestedQuery+ queryPrefixQuery = pure . QueryPrefixQuery+ queryRangeQuery = pure . QueryRangeQuery+ queryRegexpQuery = pure . QueryRegexpQuery+ querySimpleQueryStringQuery = pure . QuerySimpleQueryStringQuery+ -- queryExistsQuery o = QueryExistsQuery <$> o .: "field"+ queryWildcardQuery = pure . QueryWildcardQuery++-- | As of Elastic 2.0, 'Filters' are just 'Queries' housed in a+-- Bool Query, and flagged in a different context.+newtype Filter = Filter { unFilter :: Query }+ deriving (Eq, Show)++instance ToJSON Filter where+ toJSON = toJSON . unFilter++instance FromJSON Filter where+ parseJSON v = Filter <$> parseJSON v++data RegexpQuery =+ RegexpQuery { regexpQueryField :: FieldName+ , regexpQuery :: Regexp+ , regexpQueryFlags :: RegexpFlags+ , regexpQueryBoost :: Maybe Boost+ } deriving (Eq, Show)++instance ToJSON RegexpQuery where+ toJSON (RegexpQuery (FieldName rqQueryField)+ (Regexp regexpQueryQuery) rqQueryFlags+ rqQueryBoost) =+ object [ rqQueryField .= omitNulls base ]+ where base = [ "value" .= regexpQueryQuery+ , "flags" .= rqQueryFlags+ , "boost" .= rqQueryBoost ]++instance FromJSON RegexpQuery where+ parseJSON = withObject "RegexpQuery" parse+ where parse = fieldTagged $ \fn o ->+ RegexpQuery fn+ <$> o .: "value"+ <*> o .: "flags"+ <*> o .:? "boost"++data WildcardQuery =+ WildcardQuery { wildcardQueryField :: FieldName+ , wildcardQuery :: Text+ , wildcardQueryBoost :: Maybe Boost+ } deriving (Eq, Show)++instance ToJSON WildcardQuery where+ toJSON (WildcardQuery (FieldName wcQueryField)+ (wcQueryQuery) wcQueryBoost) =+ object [ wcQueryField .= omitNulls base ]+ where base = [ "value" .= wcQueryQuery+ , "boost" .= wcQueryBoost ]++instance FromJSON WildcardQuery where+ parseJSON = withObject "WildcardQuery" parse+ where parse = fieldTagged $ \fn o ->+ WildcardQuery fn+ <$> o .: "value"+ <*> o .:? "boost"++data RangeQuery =+ RangeQuery { rangeQueryField :: FieldName+ , rangeQueryRange :: RangeValue+ , rangeQueryBoost :: Boost } deriving (Eq, Show)++instance ToJSON RangeQuery where+ toJSON (RangeQuery (FieldName fieldName) range boost) =+ object [ fieldName .= object conjoined ]+ where+ conjoined = ("boost" .= boost) : rangeValueToPair range++instance FromJSON RangeQuery where+ parseJSON = withObject "RangeQuery" parse+ where parse = fieldTagged $ \fn o ->+ RangeQuery fn+ <$> parseJSON (Object o)+ <*> o .: "boost"++mkRangeQuery :: FieldName -> RangeValue -> RangeQuery+mkRangeQuery f r = RangeQuery f r (Boost 1.0)++data SimpleQueryStringQuery =+ SimpleQueryStringQuery+ { simpleQueryStringQuery :: QueryString+ , simpleQueryStringField :: Maybe FieldOrFields+ , simpleQueryStringOperator :: Maybe BooleanOperator+ , simpleQueryStringAnalyzer :: Maybe Analyzer+ , simpleQueryStringFlags :: Maybe (NonEmpty SimpleQueryFlag)+ , simpleQueryStringLowercaseExpanded :: Maybe LowercaseExpanded+ , simpleQueryStringLocale :: Maybe Locale+ } deriving (Eq, Show)+++instance ToJSON SimpleQueryStringQuery where+ toJSON SimpleQueryStringQuery {..} =+ omitNulls (base ++ maybeAdd)+ where base = [ "query" .= simpleQueryStringQuery ]+ maybeAdd = [ "fields" .= simpleQueryStringField+ , "default_operator" .= simpleQueryStringOperator+ , "analyzer" .= simpleQueryStringAnalyzer+ , "flags" .= simpleQueryStringFlags+ , "lowercase_expanded_terms" .= simpleQueryStringLowercaseExpanded+ , "locale" .= simpleQueryStringLocale ]++instance FromJSON SimpleQueryStringQuery where+ parseJSON = withObject "SimpleQueryStringQuery" parse+ where parse o = SimpleQueryStringQuery <$> o .: "query"+ <*> o .:? "fields"+ <*> o .:? "default_operator"+ <*> o .:? "analyzer"+ <*> (parseFlags <$> o .:? "flags")+ <*> o .:? "lowercase_expanded_terms"+ <*> o .:? "locale"+ parseFlags (Just (x:xs)) = Just (x :| xs)+ parseFlags _ = Nothing++data SimpleQueryFlag =+ SimpleQueryAll+ | SimpleQueryNone+ | SimpleQueryAnd+ | SimpleQueryOr+ | SimpleQueryPrefix+ | SimpleQueryPhrase+ | SimpleQueryPrecedence+ | SimpleQueryEscape+ | SimpleQueryWhitespace+ | SimpleQueryFuzzy+ | SimpleQueryNear+ | SimpleQuerySlop deriving (Eq, Show)++instance ToJSON SimpleQueryFlag where+ toJSON SimpleQueryAll = "ALL"+ toJSON SimpleQueryNone = "NONE"+ toJSON SimpleQueryAnd = "AND"+ toJSON SimpleQueryOr = "OR"+ toJSON SimpleQueryPrefix = "PREFIX"+ toJSON SimpleQueryPhrase = "PHRASE"+ toJSON SimpleQueryPrecedence = "PRECEDENCE"+ toJSON SimpleQueryEscape = "ESCAPE"+ toJSON SimpleQueryWhitespace = "WHITESPACE"+ toJSON SimpleQueryFuzzy = "FUZZY"+ toJSON SimpleQueryNear = "NEAR"+ toJSON SimpleQuerySlop = "SLOP"++instance FromJSON SimpleQueryFlag where+ parseJSON = withText "SimpleQueryFlag" parse+ where parse "ALL" = pure SimpleQueryAll+ parse "NONE" = pure SimpleQueryNone+ parse "AND" = pure SimpleQueryAnd+ parse "OR" = pure SimpleQueryOr+ parse "PREFIX" = pure SimpleQueryPrefix+ parse "PHRASE" = pure SimpleQueryPhrase+ parse "PRECEDENCE" = pure SimpleQueryPrecedence+ parse "ESCAPE" = pure SimpleQueryEscape+ parse "WHITESPACE" = pure SimpleQueryWhitespace+ parse "FUZZY" = pure SimpleQueryFuzzy+ parse "NEAR" = pure SimpleQueryNear+ parse "SLOP" = pure SimpleQuerySlop+ parse f = fail ("Unexpected SimpleQueryFlag: " <> show f)++-- use_dis_max and tie_breaker when fields are plural?+data QueryStringQuery =+ QueryStringQuery+ { queryStringQuery :: QueryString+ , queryStringDefaultField :: Maybe FieldName+ , queryStringOperator :: Maybe BooleanOperator+ , queryStringAnalyzer :: Maybe Analyzer+ , queryStringAllowLeadingWildcard :: Maybe AllowLeadingWildcard+ , queryStringLowercaseExpanded :: Maybe LowercaseExpanded+ , queryStringEnablePositionIncrements :: Maybe EnablePositionIncrements+ , queryStringFuzzyMaxExpansions :: Maybe MaxExpansions+ , queryStringFuzziness :: Maybe Fuzziness+ , queryStringFuzzyPrefixLength :: Maybe PrefixLength+ , queryStringPhraseSlop :: Maybe PhraseSlop+ , queryStringBoost :: Maybe Boost+ , queryStringAnalyzeWildcard :: Maybe AnalyzeWildcard+ , queryStringGeneratePhraseQueries :: Maybe GeneratePhraseQueries+ , queryStringMinimumShouldMatch :: Maybe MinimumMatch+ , queryStringLenient :: Maybe Lenient+ , queryStringLocale :: Maybe Locale+ } deriving (Eq, Show)+++instance ToJSON QueryStringQuery where+ toJSON (QueryStringQuery qsQueryString+ qsDefaultField qsOperator+ qsAnalyzer qsAllowWildcard+ qsLowercaseExpanded qsEnablePositionIncrements+ qsFuzzyMaxExpansions qsFuzziness+ qsFuzzyPrefixLength qsPhraseSlop+ qsBoost qsAnalyzeWildcard+ qsGeneratePhraseQueries qsMinimumShouldMatch+ qsLenient qsLocale) =+ omitNulls base+ where+ base = [ "query" .= qsQueryString+ , "default_field" .= qsDefaultField+ , "default_operator" .= qsOperator+ , "analyzer" .= qsAnalyzer+ , "allow_leading_wildcard" .= qsAllowWildcard+ , "lowercase_expanded_terms" .= qsLowercaseExpanded+ , "enable_position_increments" .= qsEnablePositionIncrements+ , "fuzzy_max_expansions" .= qsFuzzyMaxExpansions+ , "fuzziness" .= qsFuzziness+ , "fuzzy_prefix_length" .= qsFuzzyPrefixLength+ , "phrase_slop" .= qsPhraseSlop+ , "boost" .= qsBoost+ , "analyze_wildcard" .= qsAnalyzeWildcard+ , "auto_generate_phrase_queries" .= qsGeneratePhraseQueries+ , "minimum_should_match" .= qsMinimumShouldMatch+ , "lenient" .= qsLenient+ , "locale" .= qsLocale ]++instance FromJSON QueryStringQuery where+ parseJSON = withObject "QueryStringQuery" parse+ where parse o = QueryStringQuery+ <$> o .: "query"+ <*> o .:? "default_field"+ <*> o .:? "default_operator"+ <*> o .:? "analyzer"+ <*> o .:? "allow_leading_wildcard"+ <*> o .:? "lowercase_expanded_terms"+ <*> o .:? "enable_position_increments"+ <*> o .:? "fuzzy_max_expansions"+ <*> o .:? "fuzziness"+ <*> o .:? "fuzzy_prefix_length"+ <*> o .:? "phrase_slop"+ <*> o .:? "boost"+ <*> o .:? "analyze_wildcard"+ <*> o .:? "auto_generate_phrase_queries"+ <*> o .:? "minimum_should_match"+ <*> o .:? "lenient"+ <*> o .:? "locale"++mkQueryStringQuery :: QueryString -> QueryStringQuery+mkQueryStringQuery qs =+ QueryStringQuery qs Nothing Nothing+ Nothing Nothing Nothing Nothing+ Nothing Nothing Nothing Nothing+ Nothing Nothing Nothing Nothing+ Nothing Nothing++data FieldOrFields = FofField FieldName+ | FofFields (NonEmpty FieldName) deriving (Eq, Show)++instance ToJSON FieldOrFields where+ toJSON (FofField fieldName) =+ toJSON fieldName+ toJSON (FofFields fieldNames) =+ toJSON fieldNames++instance FromJSON FieldOrFields where+ parseJSON v = FofField <$> parseJSON v+ <|> FofFields <$> (parseNEJSON =<< parseJSON v)++data PrefixQuery =+ PrefixQuery+ { prefixQueryField :: FieldName+ , prefixQueryPrefixValue :: Text+ , prefixQueryBoost :: Maybe Boost } deriving (Eq, Show)++instance ToJSON PrefixQuery where+ toJSON (PrefixQuery (FieldName fieldName) queryValue boost) =+ object [ fieldName .= omitNulls base ]+ where base = [ "value" .= queryValue+ , "boost" .= boost ]++instance FromJSON PrefixQuery where+ parseJSON = withObject "PrefixQuery" parse+ where parse = fieldTagged $ \fn o ->+ PrefixQuery fn+ <$> o .: "value"+ <*> o .:? "boost"++data NestedQuery =+ NestedQuery+ { nestedQueryPath :: QueryPath+ , nestedQueryScoreType :: ScoreType+ , nestedQuery :: Query } deriving (Eq, Show)++instance ToJSON NestedQuery where+ toJSON (NestedQuery nqPath nqScoreType nqQuery) =+ object [ "path" .= nqPath+ , "score_mode" .= nqScoreType+ , "query" .= nqQuery ]++instance FromJSON NestedQuery where+ parseJSON = withObject "NestedQuery" parse+ where parse o = NestedQuery+ <$> o .: "path"+ <*> o .: "score_mode"+ <*> o .: "query"++data MoreLikeThisFieldQuery =+ MoreLikeThisFieldQuery+ { moreLikeThisFieldText :: Text+ , moreLikeThisFieldFields :: FieldName+ -- default 0.3 (30%)+ , moreLikeThisFieldPercentMatch :: Maybe PercentMatch+ , moreLikeThisFieldMinimumTermFreq :: Maybe MinimumTermFrequency+ , moreLikeThisFieldMaxQueryTerms :: Maybe MaxQueryTerms+ , moreLikeThisFieldStopWords :: Maybe (NonEmpty StopWord)+ , moreLikeThisFieldMinDocFrequency :: Maybe MinDocFrequency+ , moreLikeThisFieldMaxDocFrequency :: Maybe MaxDocFrequency+ , moreLikeThisFieldMinWordLength :: Maybe MinWordLength+ , moreLikeThisFieldMaxWordLength :: Maybe MaxWordLength+ , moreLikeThisFieldBoostTerms :: Maybe BoostTerms+ , moreLikeThisFieldBoost :: Maybe Boost+ , moreLikeThisFieldAnalyzer :: Maybe Analyzer+ } deriving (Eq, Show)+++instance ToJSON MoreLikeThisFieldQuery where+ toJSON (MoreLikeThisFieldQuery text (FieldName fieldName)+ percent mtf mqt stopwords mindf maxdf+ minwl maxwl boostTerms boost analyzer) =+ object [ fieldName .= omitNulls base ]+ where base = [ "like_text" .= text+ , "percent_terms_to_match" .= percent+ , "min_term_freq" .= mtf+ , "max_query_terms" .= mqt+ , "stop_words" .= stopwords+ , "min_doc_freq" .= mindf+ , "max_doc_freq" .= maxdf+ , "min_word_length" .= minwl+ , "max_word_length" .= maxwl+ , "boost_terms" .= boostTerms+ , "boost" .= boost+ , "analyzer" .= analyzer ]++instance FromJSON MoreLikeThisFieldQuery where+ parseJSON = withObject "MoreLikeThisFieldQuery" parse+ where parse = fieldTagged $ \fn o ->+ MoreLikeThisFieldQuery+ <$> o .: "like_text"+ <*> pure fn+ <*> o .:? "percent_terms_to_match"+ <*> o .:? "min_term_freq"+ <*> o .:? "max_query_terms"+ -- <*> (optionalNE =<< o .:? "stop_words")+ <*> o .:? "stop_words"+ <*> o .:? "min_doc_freq"+ <*> o .:? "max_doc_freq"+ <*> o .:? "min_word_length"+ <*> o .:? "max_word_length"+ <*> o .:? "boost_terms"+ <*> o .:? "boost"+ <*> o .:? "analyzer"+ -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)++data MoreLikeThisQuery =+ MoreLikeThisQuery+ { moreLikeThisText :: Text+ , moreLikeThisFields :: Maybe (NonEmpty FieldName)+ -- default 0.3 (30%)+ , moreLikeThisPercentMatch :: Maybe PercentMatch+ , moreLikeThisMinimumTermFreq :: Maybe MinimumTermFrequency+ , moreLikeThisMaxQueryTerms :: Maybe MaxQueryTerms+ , moreLikeThisStopWords :: Maybe (NonEmpty StopWord)+ , moreLikeThisMinDocFrequency :: Maybe MinDocFrequency+ , moreLikeThisMaxDocFrequency :: Maybe MaxDocFrequency+ , moreLikeThisMinWordLength :: Maybe MinWordLength+ , moreLikeThisMaxWordLength :: Maybe MaxWordLength+ , moreLikeThisBoostTerms :: Maybe BoostTerms+ , moreLikeThisBoost :: Maybe Boost+ , moreLikeThisAnalyzer :: Maybe Analyzer+ } deriving (Eq, Show)+++instance ToJSON MoreLikeThisQuery where+ toJSON (MoreLikeThisQuery text fields percent+ mtf mqt stopwords mindf maxdf+ minwl maxwl boostTerms boost analyzer) =+ omitNulls base+ where base = [ "like_text" .= text+ , "fields" .= fields+ , "percent_terms_to_match" .= percent+ , "min_term_freq" .= mtf+ , "max_query_terms" .= mqt+ , "stop_words" .= stopwords+ , "min_doc_freq" .= mindf+ , "max_doc_freq" .= maxdf+ , "min_word_length" .= minwl+ , "max_word_length" .= maxwl+ , "boost_terms" .= boostTerms+ , "boost" .= boost+ , "analyzer" .= analyzer ]++instance FromJSON MoreLikeThisQuery where+ parseJSON = withObject "MoreLikeThisQuery" parse+ where parse o = MoreLikeThisQuery+ <$> o .: "like_text"+ -- <*> (optionalNE =<< o .:? "fields")+ <*> o .:? "fields"+ <*> o .:? "percent_terms_to_match"+ <*> o .:? "min_term_freq"+ <*> o .:? "max_query_terms"+ -- <*> (optionalNE =<< o .:? "stop_words")+ <*> o .:? "stop_words"+ <*> o .:? "min_doc_freq"+ <*> o .:? "max_doc_freq"+ <*> o .:? "min_word_length"+ <*> o .:? "max_word_length"+ <*> o .:? "boost_terms"+ <*> o .:? "boost"+ <*> o .:? "analyzer"+ -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)++data IndicesQuery =+ IndicesQuery+ { indicesQueryIndices :: [IndexName]+ , indicesQuery :: Query+ -- default "all"+ , indicesQueryNoMatch :: Maybe Query } deriving (Eq, Show)+++instance ToJSON IndicesQuery where+ toJSON (IndicesQuery indices query noMatch) =+ omitNulls [ "indices" .= indices+ , "no_match_query" .= noMatch+ , "query" .= query ]++instance FromJSON IndicesQuery where+ parseJSON = withObject "IndicesQuery" parse+ where parse o = IndicesQuery+ <$> o .:? "indices" .!= []+ <*> o .: "query"+ <*> o .:? "no_match_query"++data HasParentQuery =+ HasParentQuery+ { hasParentQueryType :: RelationName+ , hasParentQuery :: Query+ , hasParentQueryScore :: Maybe AggregateParentScore+ , hasParentIgnoreUnmapped :: Maybe IgnoreUnmapped+ } deriving (Eq, Show)++instance ToJSON HasParentQuery where+ toJSON (HasParentQuery queryType query scoreType ignoreUnmapped) =+ omitNulls [ "parent_type" .= queryType+ , "score" .= scoreType+ , "query" .= query+ , "ignore_unmapped" .= ignoreUnmapped+ ]++instance FromJSON HasParentQuery where+ parseJSON = withObject "HasParentQuery" parse+ where parse o = HasParentQuery+ <$> o .: "parent_type"+ <*> o .: "query"+ <*> o .:? "score"+ <*> o .:? "ignore_unmapped"++data HasChildQuery =+ HasChildQuery+ { hasChildQueryType :: RelationName+ , hasChildQuery :: Query+ , hasChildQueryScoreType :: Maybe ScoreType+ , hasChildIgnoreUnmappped :: Maybe IgnoreUnmapped+ , hasChildMinChildren :: Maybe MinChildren+ , hasChildMaxChildren :: Maybe MaxChildren+ } deriving (Eq, Show)++instance ToJSON HasChildQuery where+ toJSON (HasChildQuery queryType query scoreType ignoreUnmapped minChildren maxChildren) =+ omitNulls [ "query" .= query+ , "score_mode" .= scoreType+ , "type" .= queryType+ , "min_children" .= minChildren+ , "max_children" .= maxChildren+ , "ignore_unmapped" .= ignoreUnmapped+ ]++instance FromJSON HasChildQuery where+ parseJSON = withObject "HasChildQuery" parse+ where parse o = HasChildQuery+ <$> o .: "type"+ <*> o .: "query"+ <*> o .:? "score_mode"+ <*> o .:? "ignore_unmapped"+ <*> o .:? "min_children"+ <*> o .:? "max_children"++data ScoreType =+ ScoreTypeMax+ | ScoreTypeSum+ | ScoreTypeAvg+ | ScoreTypeNone deriving (Eq, Show)++instance ToJSON ScoreType where+ toJSON ScoreTypeMax = "max"+ toJSON ScoreTypeAvg = "avg"+ toJSON ScoreTypeSum = "sum"+ toJSON ScoreTypeNone = "none"++instance FromJSON ScoreType where+ parseJSON = withText "ScoreType" parse+ where parse "max" = pure ScoreTypeMax+ parse "avg" = pure ScoreTypeAvg+ parse "sum" = pure ScoreTypeSum+ parse "none" = pure ScoreTypeNone+ parse t = fail ("Unexpected ScoreType: " <> show t)++data FuzzyQuery =+ FuzzyQuery { fuzzyQueryField :: FieldName+ , fuzzyQueryValue :: Text+ , fuzzyQueryPrefixLength :: PrefixLength+ , fuzzyQueryMaxExpansions :: MaxExpansions+ , fuzzyQueryFuzziness :: Fuzziness+ , fuzzyQueryBoost :: Maybe Boost+ } deriving (Eq, Show)+++instance ToJSON FuzzyQuery where+ toJSON (FuzzyQuery (FieldName fieldName) queryText+ prefixLength maxEx fuzziness boost) =+ object [ fieldName .= omitNulls base ]+ where base = [ "value" .= queryText+ , "fuzziness" .= fuzziness+ , "prefix_length" .= prefixLength+ , "boost" .= boost+ , "max_expansions" .= maxEx ]++instance FromJSON FuzzyQuery where+ parseJSON = withObject "FuzzyQuery" parse+ where parse = fieldTagged $ \fn o ->+ FuzzyQuery fn+ <$> o .: "value"+ <*> o .: "prefix_length"+ <*> o .: "max_expansions"+ <*> o .: "fuzziness"+ <*> o .:? "boost"++data FuzzyLikeFieldQuery =+ FuzzyLikeFieldQuery+ { fuzzyLikeField :: FieldName+ -- anaphora is good for the soul.+ , fuzzyLikeFieldText :: Text+ , fuzzyLikeFieldMaxQueryTerms :: MaxQueryTerms+ , fuzzyLikeFieldIgnoreTermFrequency :: IgnoreTermFrequency+ , fuzzyLikeFieldFuzziness :: Fuzziness+ , fuzzyLikeFieldPrefixLength :: PrefixLength+ , fuzzyLikeFieldBoost :: Boost+ , fuzzyLikeFieldAnalyzer :: Maybe Analyzer+ } deriving (Eq, Show)+++instance ToJSON FuzzyLikeFieldQuery where+ toJSON (FuzzyLikeFieldQuery (FieldName fieldName)+ fieldText maxTerms ignoreFreq fuzziness prefixLength+ boost analyzer) =+ object [ fieldName .=+ omitNulls [ "like_text" .= fieldText+ , "max_query_terms" .= maxTerms+ , "ignore_tf" .= ignoreFreq+ , "fuzziness" .= fuzziness+ , "prefix_length" .= prefixLength+ , "analyzer" .= analyzer+ , "boost" .= boost ]]++instance FromJSON FuzzyLikeFieldQuery where+ parseJSON = withObject "FuzzyLikeFieldQuery" parse+ where parse = fieldTagged $ \fn o ->+ FuzzyLikeFieldQuery fn+ <$> o .: "like_text"+ <*> o .: "max_query_terms"+ <*> o .: "ignore_tf"+ <*> o .: "fuzziness"+ <*> o .: "prefix_length"+ <*> o .: "boost"+ <*> o .:? "analyzer"++data FuzzyLikeThisQuery =+ FuzzyLikeThisQuery+ { fuzzyLikeFields :: [FieldName]+ , fuzzyLikeText :: Text+ , fuzzyLikeMaxQueryTerms :: MaxQueryTerms+ , fuzzyLikeIgnoreTermFrequency :: IgnoreTermFrequency+ , fuzzyLikeFuzziness :: Fuzziness+ , fuzzyLikePrefixLength :: PrefixLength+ , fuzzyLikeBoost :: Boost+ , fuzzyLikeAnalyzer :: Maybe Analyzer+ } deriving (Eq, Show)+++instance ToJSON FuzzyLikeThisQuery where+ toJSON (FuzzyLikeThisQuery fields text maxTerms+ ignoreFreq fuzziness prefixLength boost analyzer) =+ omitNulls base+ where base = [ "fields" .= fields+ , "like_text" .= text+ , "max_query_terms" .= maxTerms+ , "ignore_tf" .= ignoreFreq+ , "fuzziness" .= fuzziness+ , "prefix_length" .= prefixLength+ , "analyzer" .= analyzer+ , "boost" .= boost ]++instance FromJSON FuzzyLikeThisQuery where+ parseJSON = withObject "FuzzyLikeThisQuery" parse+ where parse o = FuzzyLikeThisQuery+ <$> o .:? "fields" .!= []+ <*> o .: "like_text"+ <*> o .: "max_query_terms"+ <*> o .: "ignore_tf"+ <*> o .: "fuzziness"+ <*> o .: "prefix_length"+ <*> o .: "boost"+ <*> o .:? "analyzer"++data DisMaxQuery =+ DisMaxQuery { disMaxQueries :: [Query]+ -- default 0.0+ , disMaxTiebreaker :: Tiebreaker+ , disMaxBoost :: Maybe Boost+ } deriving (Eq, Show)+++instance ToJSON DisMaxQuery where+ toJSON (DisMaxQuery queries tiebreaker boost) =+ omitNulls base+ where base = [ "queries" .= queries+ , "boost" .= boost+ , "tie_breaker" .= tiebreaker ]++instance FromJSON DisMaxQuery where+ parseJSON = withObject "DisMaxQuery" parse+ where parse o = DisMaxQuery+ <$> o .:? "queries" .!= []+ <*> o .: "tie_breaker"+ <*> o .:? "boost"++data MatchQuery = MatchQuery+ { matchQueryField :: FieldName+ , matchQueryQueryString :: QueryString+ , matchQueryOperator :: BooleanOperator+ , matchQueryZeroTerms :: ZeroTermsQuery+ , matchQueryCutoffFrequency :: Maybe CutoffFrequency+ , matchQueryMatchType :: Maybe MatchQueryType+ , matchQueryAnalyzer :: Maybe Analyzer+ , matchQueryMaxExpansions :: Maybe MaxExpansions+ , matchQueryLenient :: Maybe Lenient+ , matchQueryBoost :: Maybe Boost+ , matchQueryMinimumShouldMatch :: Maybe Text+ , matchQueryFuzziness :: Maybe Fuzziness+ } deriving (Eq, Show)+++instance ToJSON MatchQuery where+ toJSON (MatchQuery (FieldName fieldName)+ (QueryString mqQueryString) booleanOperator+ zeroTermsQuery cutoffFrequency matchQueryType+ analyzer maxExpansions lenient boost+ minShouldMatch mqFuzziness+ ) =+ object [ fieldName .= omitNulls base ]+ where base = [ "query" .= mqQueryString+ , "operator" .= booleanOperator+ , "zero_terms_query" .= zeroTermsQuery+ , "cutoff_frequency" .= cutoffFrequency+ , "type" .= matchQueryType+ , "analyzer" .= analyzer+ , "max_expansions" .= maxExpansions+ , "lenient" .= lenient+ , "boost" .= boost+ , "minimum_should_match" .= minShouldMatch+ , "fuzziness" .= mqFuzziness+ ]++instance FromJSON MatchQuery where+ parseJSON = withObject "MatchQuery" parse+ where parse = fieldTagged $ \fn o ->+ MatchQuery fn+ <$> o .: "query"+ <*> o .: "operator"+ <*> o .: "zero_terms_query"+ <*> o .:? "cutoff_frequency"+ <*> o .:? "type"+ <*> o .:? "analyzer"+ <*> o .:? "max_expansions"+ <*> o .:? "lenient"+ <*> o .:? "boost"+ <*> o .:? "minimum_should_match"+ <*> o .:? "fuzziness"++{-| 'mkMatchQuery' is a convenience function that defaults the less common parameters,+ enabling you to provide only the 'FieldName' and 'QueryString' to make a 'MatchQuery'+-}+mkMatchQuery :: FieldName -> QueryString -> MatchQuery+mkMatchQuery field query = MatchQuery field query Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing++data MatchQueryType =+ MatchPhrase+ | MatchPhrasePrefix deriving (Eq, Show)++instance ToJSON MatchQueryType where+ toJSON MatchPhrase = "phrase"+ toJSON MatchPhrasePrefix = "phrase_prefix"++instance FromJSON MatchQueryType where+ parseJSON = withText "MatchQueryType" parse+ where parse "phrase" = pure MatchPhrase+ parse "phrase_prefix" = pure MatchPhrasePrefix+ parse t = fail ("Unexpected MatchQueryType: " <> show t)++data MultiMatchQuery = MultiMatchQuery+ { multiMatchQueryFields :: [FieldName]+ , multiMatchQueryString :: QueryString+ , multiMatchQueryOperator :: BooleanOperator+ , multiMatchQueryZeroTerms :: ZeroTermsQuery+ , multiMatchQueryTiebreaker :: Maybe Tiebreaker+ , multiMatchQueryType :: Maybe MultiMatchQueryType+ , multiMatchQueryCutoffFrequency :: Maybe CutoffFrequency+ , multiMatchQueryAnalyzer :: Maybe Analyzer+ , multiMatchQueryMaxExpansions :: Maybe MaxExpansions+ , multiMatchQueryLenient :: Maybe Lenient+ } deriving (Eq, Show)++instance ToJSON MultiMatchQuery where+ toJSON (MultiMatchQuery fields (QueryString query) boolOp+ ztQ tb mmqt cf analyzer maxEx lenient) =+ object ["multi_match" .= omitNulls base]+ where base = [ "fields" .= fmap toJSON fields+ , "query" .= query+ , "operator" .= boolOp+ , "zero_terms_query" .= ztQ+ , "tie_breaker" .= tb+ , "type" .= mmqt+ , "cutoff_frequency" .= cf+ , "analyzer" .= analyzer+ , "max_expansions" .= maxEx+ , "lenient" .= lenient ]++instance FromJSON MultiMatchQuery where+ parseJSON = withObject "MultiMatchQuery" parse+ where parse raw = do o <- raw .: "multi_match"+ MultiMatchQuery+ <$> o .:? "fields" .!= []+ <*> o .: "query"+ <*> o .: "operator"+ <*> o .: "zero_terms_query"+ <*> o .:? "tie_breaker"+ <*> o .:? "type"+ <*> o .:? "cutoff_frequency"+ <*> o .:? "analyzer"+ <*> o .:? "max_expansions"+ <*> o .:? "lenient"++{-| 'mkMultiMatchQuery' is a convenience function that defaults the less common parameters,+ enabling you to provide only the list of 'FieldName's and 'QueryString' to+ make a 'MultiMatchQuery'.+-}++mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery+mkMultiMatchQuery matchFields query =+ MultiMatchQuery matchFields query+ Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing++data MultiMatchQueryType =+ MultiMatchBestFields+ | MultiMatchMostFields+ | MultiMatchCrossFields+ | MultiMatchPhrase+ | MultiMatchPhrasePrefix deriving (Eq, Show)++instance ToJSON MultiMatchQueryType where+ toJSON MultiMatchBestFields = "best_fields"+ toJSON MultiMatchMostFields = "most_fields"+ toJSON MultiMatchCrossFields = "cross_fields"+ toJSON MultiMatchPhrase = "phrase"+ toJSON MultiMatchPhrasePrefix = "phrase_prefix"++instance FromJSON MultiMatchQueryType where+ parseJSON = withText "MultiMatchPhrasePrefix" parse+ where parse "best_fields" = pure MultiMatchBestFields+ parse "most_fields" = pure MultiMatchMostFields+ parse "cross_fields" = pure MultiMatchCrossFields+ parse "phrase" = pure MultiMatchPhrase+ parse "phrase_prefix" = pure MultiMatchPhrasePrefix+ parse t = fail ("Unexpected MultiMatchPhrasePrefix: " <> show t)++data BoolQuery =+ BoolQuery { boolQueryMustMatch :: [Query]+ , boolQueryFilter :: [Filter]+ , boolQueryMustNotMatch :: [Query]+ , boolQueryShouldMatch :: [Query]+ , boolQueryMinimumShouldMatch :: Maybe MinimumMatch+ , boolQueryBoost :: Maybe Boost+ , boolQueryDisableCoord :: Maybe DisableCoord+ } deriving (Eq, Show)+++instance ToJSON BoolQuery where+ toJSON (BoolQuery mustM filterM' notM shouldM bqMin boost disableCoord) =+ omitNulls base+ where base = [ "must" .= mustM+ , "filter" .= filterM'+ , "must_not" .= notM+ , "should" .= shouldM+ , "minimum_should_match" .= bqMin+ , "boost" .= boost+ , "disable_coord" .= disableCoord ]++instance FromJSON BoolQuery where+ parseJSON = withObject "BoolQuery" parse+ where parse o = BoolQuery+ <$> o .:? "must" .!= []+ <*> o .:? "filter" .!= []+ <*> o .:? "must_not" .!= []+ <*> o .:? "should" .!= []+ <*> o .:? "minimum_should_match"+ <*> o .:? "boost"+ <*> o .:? "disable_coord"++mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery+mkBoolQuery must filt mustNot should =+ BoolQuery must filt mustNot should Nothing Nothing Nothing++data BoostingQuery =+ BoostingQuery { positiveQuery :: Query+ , negativeQuery :: Query+ , negativeBoost :: Boost } deriving (Eq, Show)++instance ToJSON BoostingQuery where+ toJSON (BoostingQuery bqPositiveQuery bqNegativeQuery bqNegativeBoost) =+ object [ "positive" .= bqPositiveQuery+ , "negative" .= bqNegativeQuery+ , "negative_boost" .= bqNegativeBoost ]++instance FromJSON BoostingQuery where+ parseJSON = withObject "BoostingQuery" parse+ where parse o = BoostingQuery+ <$> o .: "positive"+ <*> o .: "negative"+ <*> o .: "negative_boost"++data CommonTermsQuery =+ CommonTermsQuery { commonField :: FieldName+ , commonQuery :: QueryString+ , commonCutoffFrequency :: CutoffFrequency+ , commonLowFreqOperator :: BooleanOperator+ , commonHighFreqOperator :: BooleanOperator+ , commonMinimumShouldMatch :: Maybe CommonMinimumMatch+ , commonBoost :: Maybe Boost+ , commonAnalyzer :: Maybe Analyzer+ , commonDisableCoord :: Maybe DisableCoord+ } deriving (Eq, Show)+++instance ToJSON CommonTermsQuery where+ toJSON (CommonTermsQuery (FieldName fieldName)+ (QueryString query) cf lfo hfo msm+ boost analyzer disableCoord) =+ object [fieldName .= omitNulls base ]+ where base = [ "query" .= query+ , "cutoff_frequency" .= cf+ , "low_freq_operator" .= lfo+ , "minimum_should_match" .= msm+ , "boost" .= boost+ , "analyzer" .= analyzer+ , "disable_coord" .= disableCoord+ , "high_freq_operator" .= hfo ]++instance FromJSON CommonTermsQuery where+ parseJSON = withObject "CommonTermsQuery" parse+ where parse = fieldTagged $ \fn o ->+ CommonTermsQuery fn+ <$> o .: "query"+ <*> o .: "cutoff_frequency"+ <*> o .: "low_freq_operator"+ <*> o .: "high_freq_operator"+ <*> o .:? "minimum_should_match"+ <*> o .:? "boost"+ <*> o .:? "analyzer"+ <*> o .:? "disable_coord"++data CommonMinimumMatch =+ CommonMinimumMatchHighLow MinimumMatchHighLow+ | CommonMinimumMatch MinimumMatch+ deriving (Eq, Show)+++instance ToJSON CommonMinimumMatch where+ toJSON (CommonMinimumMatch mm) = toJSON mm+ toJSON (CommonMinimumMatchHighLow (MinimumMatchHighLow lowF highF)) =+ object [ "low_freq" .= lowF+ , "high_freq" .= highF ]++instance FromJSON CommonMinimumMatch where+ parseJSON v = parseMinimum v+ <|> parseMinimumHighLow v+ where parseMinimum = fmap CommonMinimumMatch . parseJSON+ parseMinimumHighLow = fmap CommonMinimumMatchHighLow . withObject "CommonMinimumMatchHighLow" (\o ->+ MinimumMatchHighLow+ <$> o .: "low_freq"+ <*> o .: "high_freq")++data MinimumMatchHighLow =+ MinimumMatchHighLow { lowFreq :: MinimumMatch+ , highFreq :: MinimumMatch } deriving (Eq, Show)++data ZeroTermsQuery =+ ZeroTermsNone+ | ZeroTermsAll deriving (Eq, Show)++instance ToJSON ZeroTermsQuery where+ toJSON ZeroTermsNone = String "none"+ toJSON ZeroTermsAll = String "all"++instance FromJSON ZeroTermsQuery where+ parseJSON = withText "ZeroTermsQuery" parse+ where parse "none" = pure ZeroTermsNone+ parse "all" = pure ZeroTermsAll+ parse q = fail ("Unexpected ZeroTermsQuery: " <> show q)++data RangeExecution = RangeExecutionIndex+ | RangeExecutionFielddata deriving (Eq, Show)++-- index for smaller ranges, fielddata for longer ranges+instance ToJSON RangeExecution where+ toJSON RangeExecutionIndex = "index"+ toJSON RangeExecutionFielddata = "fielddata"+++instance FromJSON RangeExecution where+ parseJSON = withText "RangeExecution" parse+ where parse "index" = pure RangeExecutionIndex+ parse "fielddata" = pure RangeExecutionFielddata+ parse t = error ("Unrecognized RangeExecution " <> show t)++newtype Regexp = Regexp Text deriving (Eq, Show, FromJSON)++data RegexpFlags = AllRegexpFlags+ | NoRegexpFlags+ | SomeRegexpFlags (NonEmpty RegexpFlag) deriving (Eq, Show)++instance ToJSON RegexpFlags where+ toJSON AllRegexpFlags = String "ALL"+ toJSON NoRegexpFlags = String "NONE"+ toJSON (SomeRegexpFlags (h :| fs)) = String $ T.intercalate "|" flagStrs+ where flagStrs = map flagStr . nub $ h:fs+ flagStr AnyString = "ANYSTRING"+ flagStr Automaton = "AUTOMATON"+ flagStr Complement = "COMPLEMENT"+ flagStr Empty = "EMPTY"+ flagStr Intersection = "INTERSECTION"+ flagStr Interval = "INTERVAL"++instance FromJSON RegexpFlags where+ parseJSON = withText "RegexpFlags" parse+ where parse "ALL" = pure AllRegexpFlags+ parse "NONE" = pure NoRegexpFlags+ parse t = SomeRegexpFlags <$> parseNEJSON (String <$> T.splitOn "|" t)++data RegexpFlag = AnyString+ | Automaton+ | Complement+ | Empty+ | Intersection+ | Interval deriving (Eq, Show)++instance FromJSON RegexpFlag where+ parseJSON = withText "RegexpFlag" parse+ where parse "ANYSTRING" = pure AnyString+ parse "AUTOMATON" = pure Automaton+ parse "COMPLEMENT" = pure Complement+ parse "EMPTY" = pure Empty+ parse "INTERSECTION" = pure Intersection+ parse "INTERVAL" = pure Interval+ parse f = fail ("Unknown RegexpFlag: " <> show f)++newtype LessThan = LessThan Double deriving (Eq, Show)+newtype LessThanEq = LessThanEq Double deriving (Eq, Show)+newtype GreaterThan = GreaterThan Double deriving (Eq, Show)+newtype GreaterThanEq = GreaterThanEq Double deriving (Eq, Show)++newtype LessThanD = LessThanD UTCTime deriving (Eq, Show)+newtype LessThanEqD = LessThanEqD UTCTime deriving (Eq, Show)+newtype GreaterThanD = GreaterThanD UTCTime deriving (Eq, Show)+newtype GreaterThanEqD = GreaterThanEqD UTCTime deriving (Eq, Show)++data RangeValue = RangeDateLte LessThanEqD+ | RangeDateLt LessThanD+ | RangeDateGte GreaterThanEqD+ | RangeDateGt GreaterThanD+ | RangeDateGtLt GreaterThanD LessThanD+ | RangeDateGteLte GreaterThanEqD LessThanEqD+ | RangeDateGteLt GreaterThanEqD LessThanD+ | RangeDateGtLte GreaterThanD LessThanEqD+ | RangeDoubleLte LessThanEq+ | RangeDoubleLt LessThan+ | RangeDoubleGte GreaterThanEq+ | RangeDoubleGt GreaterThan+ | RangeDoubleGtLt GreaterThan LessThan+ | RangeDoubleGteLte GreaterThanEq LessThanEq+ | RangeDoubleGteLt GreaterThanEq LessThan+ | RangeDoubleGtLte GreaterThan LessThanEq+ deriving (Eq, Show)+++parseRangeValue :: ( FromJSON t4+ , FromJSON t3+ , FromJSON t2+ , FromJSON t1+ )+ => (t3 -> t5)+ -> (t1 -> t6)+ -> (t4 -> t7)+ -> (t2 -> t8)+ -> (t5 -> t6 -> b)+ -> (t7 -> t6 -> b)+ -> (t5 -> t8 -> b)+ -> (t7 -> t8 -> b)+ -> (t5 -> b)+ -> (t6 -> b)+ -> (t7 -> b)+ -> (t8 -> b)+ -> Parser b+ -> Object+ -> Parser b+parseRangeValue mkGt mkLt mkGte mkLte+ fGtLt fGteLt fGtLte fGteLte+ fGt fLt fGte fLte nada o = do+ lt <- o .:? "lt"+ lte <- o .:? "lte"+ gt <- o .:? "gt"+ gte <- o .:? "gte"+ case (lt, lte, gt, gte) of+ (Just a, _, Just b, _) ->+ return (fGtLt (mkGt b) (mkLt a))+ (Just a, _, _, Just b) ->+ return (fGteLt (mkGte b) (mkLt a))+ (_, Just a, Just b, _) ->+ return (fGtLte (mkGt b) (mkLte a))+ (_, Just a, _, Just b) ->+ return (fGteLte (mkGte b) (mkLte a))+ (_, _, Just a, _) ->+ return (fGt (mkGt a))+ (Just a, _, _, _) ->+ return (fLt (mkLt a))+ (_, _, _, Just a) ->+ return (fGte (mkGte a))+ (_, Just a, _, _) ->+ return (fLte (mkLte a))+ (Nothing, Nothing, Nothing, Nothing) ->+ nada+++instance FromJSON RangeValue where+ parseJSON = withObject "RangeValue" parse+ where parse o = parseDate o+ <|> parseDouble o+ parseDate o =+ parseRangeValue+ GreaterThanD LessThanD+ GreaterThanEqD LessThanEqD+ RangeDateGtLt RangeDateGteLt+ RangeDateGtLte RangeDateGteLte+ RangeDateGt RangeDateLt+ RangeDateGte RangeDateLte+ mzero o+ parseDouble o =+ parseRangeValue+ GreaterThan LessThan+ GreaterThanEq LessThanEq+ RangeDoubleGtLt RangeDoubleGteLt+ RangeDoubleGtLte RangeDoubleGteLte+ RangeDoubleGt RangeDoubleLt+ RangeDoubleGte RangeDoubleLte+ mzero o++rangeValueToPair :: RangeValue -> [Pair]+rangeValueToPair rv = case rv of+ RangeDateLte (LessThanEqD t) -> ["lte" .= t]+ RangeDateGte (GreaterThanEqD t) -> ["gte" .= t]+ RangeDateLt (LessThanD t) -> ["lt" .= t]+ RangeDateGt (GreaterThanD t) -> ["gt" .= t]+ RangeDateGteLte (GreaterThanEqD l) (LessThanEqD g) -> ["gte" .= l, "lte" .= g]+ RangeDateGtLte (GreaterThanD l) (LessThanEqD g) -> ["gt" .= l, "lte" .= g]+ RangeDateGteLt (GreaterThanEqD l) (LessThanD g) -> ["gte" .= l, "lt" .= g]+ RangeDateGtLt (GreaterThanD l) (LessThanD g) -> ["gt" .= l, "lt" .= g]+ RangeDoubleLte (LessThanEq t) -> ["lte" .= t]+ RangeDoubleGte (GreaterThanEq t) -> ["gte" .= t]+ RangeDoubleLt (LessThan t) -> ["lt" .= t]+ RangeDoubleGt (GreaterThan t) -> ["gt" .= t]+ RangeDoubleGteLte (GreaterThanEq l) (LessThanEq g) -> ["gte" .= l, "lte" .= g]+ RangeDoubleGtLte (GreaterThan l) (LessThanEq g) -> ["gt" .= l, "lte" .= g]+ RangeDoubleGteLt (GreaterThanEq l) (LessThan g) -> ["gte" .= l, "lt" .= g]+ RangeDoubleGtLt (GreaterThan l) (LessThan g) -> ["gt" .= l, "lt" .= g]++data Term = Term { termField :: Text+ , termValue :: Text } deriving (Eq, Show)++instance ToJSON Term where+ toJSON (Term field value) = object ["term" .= object+ [field .= value]]++instance FromJSON Term where+ parseJSON = withObject "Term" parse+ where parse o = do termObj <- o .: "term"+ case HM.toList termObj of+ [(fn, v)] -> Term fn <$> parseJSON v+ _ -> fail "Expected object with 1 field-named key"++data BoolMatch = MustMatch Term Cache+ | MustNotMatch Term Cache+ | ShouldMatch [Term] Cache deriving (Eq, Show)+++instance ToJSON BoolMatch where+ toJSON (MustMatch term cache) = object ["must" .= term,+ "_cache" .= cache]+ toJSON (MustNotMatch term cache) = object ["must_not" .= term,+ "_cache" .= cache]+ toJSON (ShouldMatch terms cache) = object ["should" .= fmap toJSON terms,+ "_cache" .= cache]++instance FromJSON BoolMatch where+ parseJSON = withObject "BoolMatch" parse+ where parse o = mustMatch `taggedWith` "must"+ <|> mustNotMatch `taggedWith` "must_not"+ <|> shouldMatch `taggedWith` "should"+ where taggedWith parser k = parser =<< o .: k+ mustMatch t = MustMatch t <$> o .:? "_cache" .!= defaultCache+ mustNotMatch t = MustNotMatch t <$> o .:? "_cache" .!= defaultCache+ shouldMatch t = ShouldMatch t <$> o .:? "_cache" .!= defaultCache++-- "memory" or "indexed"+data GeoFilterType = GeoFilterMemory+ | GeoFilterIndexed deriving (Eq, Show)++instance ToJSON GeoFilterType where+ toJSON GeoFilterMemory = String "memory"+ toJSON GeoFilterIndexed = String "indexed"++instance FromJSON GeoFilterType where+ parseJSON = withText "GeoFilterType" parse+ where parse "memory" = pure GeoFilterMemory+ parse "indexed" = pure GeoFilterIndexed+ parse t = fail ("Unrecognized GeoFilterType: " <> show t)++data LatLon = LatLon { lat :: Double+ , lon :: Double } deriving (Eq, Show)++instance ToJSON LatLon where+ toJSON (LatLon lLat lLon) =+ object ["lat" .= lLat+ , "lon" .= lLon]++instance FromJSON LatLon where+ parseJSON = withObject "LatLon" parse+ where parse o = LatLon <$> o .: "lat"+ <*> o .: "lon"++data GeoBoundingBox =+ GeoBoundingBox { topLeft :: LatLon+ , bottomRight :: LatLon } deriving (Eq, Show)++instance ToJSON GeoBoundingBox where+ toJSON (GeoBoundingBox gbbTopLeft gbbBottomRight) =+ object ["top_left" .= gbbTopLeft+ , "bottom_right" .= gbbBottomRight]++instance FromJSON GeoBoundingBox where+ parseJSON = withObject "GeoBoundingBox" parse+ where parse o = GeoBoundingBox+ <$> o .: "top_left"+ <*> o .: "bottom_right"++data GeoBoundingBoxConstraint =+ GeoBoundingBoxConstraint { geoBBField :: FieldName+ , constraintBox :: GeoBoundingBox+ , bbConstraintcache :: Cache+ , geoType :: GeoFilterType+ } deriving (Eq, Show)++instance ToJSON GeoBoundingBoxConstraint where+ toJSON (GeoBoundingBoxConstraint+ (FieldName gbbcGeoBBField) gbbcConstraintBox cache type') =+ object [gbbcGeoBBField .= gbbcConstraintBox+ , "_cache" .= cache+ , "type" .= type']++instance FromJSON GeoBoundingBoxConstraint where+ parseJSON = withObject "GeoBoundingBoxConstraint" parse+ where parse o = case HM.toList (deleteSeveral ["type", "_cache"] o) of+ [(fn, v)] -> GeoBoundingBoxConstraint (FieldName fn)+ <$> parseJSON v+ <*> o .:? "_cache" .!= defaultCache+ <*> o .: "type"+ _ -> fail "Could not find field name for GeoBoundingBoxConstraint"++data GeoPoint =+ GeoPoint { geoField :: FieldName+ , latLon :: LatLon} deriving (Eq, Show)++instance ToJSON GeoPoint where+ toJSON (GeoPoint (FieldName geoPointField) geoPointLatLon) =+ object [ geoPointField .= geoPointLatLon ]++data DistanceUnit = Miles+ | Yards+ | Feet+ | Inches+ | Kilometers+ | Meters+ | Centimeters+ | Millimeters+ | NauticalMiles deriving (Eq, Show)++instance ToJSON DistanceUnit where+ toJSON Miles = String "mi"+ toJSON Yards = String "yd"+ toJSON Feet = String "ft"+ toJSON Inches = String "in"+ toJSON Kilometers = String "km"+ toJSON Meters = String "m"+ toJSON Centimeters = String "cm"+ toJSON Millimeters = String "mm"+ toJSON NauticalMiles = String "nmi"++instance FromJSON DistanceUnit where+ parseJSON = withText "DistanceUnit" parse+ where parse "mi" = pure Miles+ parse "yd" = pure Yards+ parse "ft" = pure Feet+ parse "in" = pure Inches+ parse "km" = pure Kilometers+ parse "m" = pure Meters+ parse "cm" = pure Centimeters+ parse "mm" = pure Millimeters+ parse "nmi" = pure NauticalMiles+ parse u = fail ("Unrecognized DistanceUnit: " <> show u)++data DistanceType = Arc+ | SloppyArc -- doesn't exist <1.0+ | Plane deriving (Eq, Show)++instance ToJSON DistanceType where+ toJSON Arc = String "arc"+ toJSON SloppyArc = String "sloppy_arc"+ toJSON Plane = String "plane"++instance FromJSON DistanceType where+ parseJSON = withText "DistanceType" parse+ where parse "arc" = pure Arc+ parse "sloppy_arc" = pure SloppyArc+ parse "plane" = pure Plane+ parse t = fail ("Unrecognized DistanceType: " <> show t)++data OptimizeBbox = OptimizeGeoFilterType GeoFilterType+ | NoOptimizeBbox deriving (Eq, Show)+++instance ToJSON OptimizeBbox where+ toJSON NoOptimizeBbox = String "none"+ toJSON (OptimizeGeoFilterType gft) = toJSON gft++instance FromJSON OptimizeBbox where+ parseJSON v = withText "NoOptimizeBbox" parseNoOptimize v+ <|> parseOptimize v+ where parseNoOptimize "none" = pure NoOptimizeBbox+ parseNoOptimize _ = mzero+ parseOptimize = fmap OptimizeGeoFilterType . parseJSON++data Distance =+ Distance { coefficient :: Double+ , unit :: DistanceUnit } deriving (Eq, Show)+++instance ToJSON Distance where+ toJSON (Distance dCoefficient dUnit) =+ String boltedTogether where+ coefText = showText dCoefficient+ (String unitText) = toJSON dUnit+ boltedTogether = mappend coefText unitText++instance FromJSON Distance where+ parseJSON = withText "Distance" parse+ where parse t = Distance <$> parseCoeff nT+ <*> parseJSON (String unitT)+ where (nT, unitT) = T.span validForNumber t+ -- may be a better way to do this+ validForNumber '-' = True+ validForNumber '.' = True+ validForNumber 'e' = True+ validForNumber c = isNumber c+ parseCoeff "" = fail "Empty string cannot be parsed as number"+ parseCoeff s = return (read (T.unpack s))++data DistanceRange =+ DistanceRange { distanceFrom :: Distance+ , distanceTo :: Distance } deriving (Eq, Show)++type TemplateQueryKey = Text+type TemplateQueryValue = Text++newtype TemplateQueryKeyValuePairs =+ TemplateQueryKeyValuePairs (HM.HashMap TemplateQueryKey TemplateQueryValue)+ deriving (Eq, Show)++instance ToJSON TemplateQueryKeyValuePairs where+ toJSON (TemplateQueryKeyValuePairs x) =+ Object $ HM.map toJSON x++instance FromJSON TemplateQueryKeyValuePairs where+ parseJSON (Object o) =+ pure . TemplateQueryKeyValuePairs $ HM.mapMaybe getValue o+ where getValue (String x) = Just x+ getValue _ = Nothing+ parseJSON _ =+ fail "error parsing TemplateQueryKeyValuePairs"++{-| 'BooleanOperator' is the usual And/Or operators with an ES compatible+ JSON encoding baked in. Used all over the place.+-}+data BooleanOperator = And | Or deriving (Eq, Show)++instance ToJSON BooleanOperator where+ toJSON And = String "and"+ toJSON Or = String "or"++instance FromJSON BooleanOperator where+ parseJSON = withText "BooleanOperator" parse+ where parse "and" = pure And+ parse "or" = pure Or+ parse o = fail ("Unexpected BooleanOperator: " <> show o)++{-| 'Cache' is for telling ES whether it should cache a 'Filter' not.+ 'Query's cannot be cached.+-}+type Cache = Bool -- caching on/off+defaultCache :: Cache+defaultCache = False+++data FunctionScoreQuery =+ FunctionScoreQuery { functionScoreQuery :: Maybe Query+ , functionScoreBoost :: Maybe Boost+ , functionScoreFunctions :: FunctionScoreFunctions+ , functionScoreMaxBoost :: Maybe Boost+ , functionScoreBoostMode :: Maybe BoostMode+ , functionScoreMinScore :: Score+ , functionScoreScoreMode :: Maybe ScoreMode+ } deriving (Eq, Show)++instance ToJSON FunctionScoreQuery where+ toJSON (FunctionScoreQuery query boost fns maxBoost boostMode minScore scoreMode) =+ omitNulls base+ where base = functionScoreFunctionsPair fns :+ [ "query" .= query+ , "boost" .= boost+ , "max_boost" .= maxBoost+ , "boost_mode" .= boostMode+ , "min_score" .= minScore+ , "score_mode" .= scoreMode ]++instance FromJSON FunctionScoreQuery where+ parseJSON = withObject "FunctionScoreQuery" parse+ where parse o = FunctionScoreQuery+ <$> o .:? "query"+ <*> o .:? "boost"+ <*> (singleFunction o+ <|> multipleFunctions `taggedWith` "functions")+ <*> o .:? "max_boost"+ <*> o .:? "boost_mode"+ <*> o .:? "min_score"+ <*> o .:? "score_mode"+ where taggedWith parser k = parser =<< o .: k+ singleFunction = fmap FunctionScoreSingle . parseFunctionScoreFunction+ multipleFunctions = pure . FunctionScoreMultiple++data FunctionScoreFunctions =+ FunctionScoreSingle FunctionScoreFunction+ | FunctionScoreMultiple (NonEmpty ComponentFunctionScoreFunction) deriving (Eq, Show)++data ComponentFunctionScoreFunction =+ ComponentFunctionScoreFunction { componentScoreFunctionFilter :: Maybe Filter+ , componentScoreFunction :: FunctionScoreFunction+ , componentScoreFunctionWeight :: Maybe Weight+ } deriving (Eq, Show)++instance ToJSON ComponentFunctionScoreFunction where+ toJSON (ComponentFunctionScoreFunction filter' fn weight) =+ omitNulls base+ where base = functionScoreFunctionPair fn :+ [ "filter" .= filter'+ , "weight" .= weight ]++instance FromJSON ComponentFunctionScoreFunction where+ parseJSON = withObject "ComponentFunctionScoreFunction" parse+ where parse o = ComponentFunctionScoreFunction+ <$> o .:? "filter"+ <*> parseFunctionScoreFunction o+ <*> o .:? "weight"++functionScoreFunctionsPair :: FunctionScoreFunctions -> (Text, Value)+functionScoreFunctionsPair (FunctionScoreSingle fn)+ = functionScoreFunctionPair fn+functionScoreFunctionsPair (FunctionScoreMultiple componentFns) =+ ("functions", toJSON componentFns)++fieldTagged :: (Monad m, MonadFail m)=> (FieldName -> Object -> m a) -> Object -> m a+fieldTagged f o = case HM.toList o of+ [(k, Object o')] -> f (FieldName k) o'+ _ -> fail "Expected object with 1 field-named key"++-- | Fuzziness value as a number or 'AUTO'.+-- See:+-- https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#fuzziness+data Fuzziness = Fuzziness Double | FuzzinessAuto+ deriving (Eq, Show)++instance ToJSON Fuzziness where+ toJSON (Fuzziness n) = toJSON n+ toJSON FuzzinessAuto = String "AUTO"++instance FromJSON Fuzziness where+ parseJSON (String "AUTO") = return FuzzinessAuto+ parseJSON v = Fuzziness <$> parseJSON v
+ src/Database/Bloodhound/Internal/Sort.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++module Database.Bloodhound.Internal.Sort where++import Bloodhound.Import++import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query++{-| 'SortMode' prescribes how to handle sorting array/multi-valued fields.++http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_sort_mode_option+-}+data SortMode = SortMin+ | SortMax+ | SortSum+ | SortAvg deriving (Eq, Show)++instance ToJSON SortMode where+ toJSON SortMin = String "min"+ toJSON SortMax = String "max"+ toJSON SortSum = String "sum"+ toJSON SortAvg = String "avg"++{-| 'mkSort' defaults everything but the 'FieldName' and the 'SortOrder' so+ that you can concisely describe the usual kind of 'SortSpec's you want.+-}+mkSort :: FieldName -> SortOrder -> DefaultSort+mkSort fieldName sOrder = DefaultSort fieldName sOrder Nothing Nothing Nothing Nothing++{-| 'Sort' is a synonym for a list of 'SortSpec's. Sort behavior is order+ dependent with later sorts acting as tie-breakers for earlier sorts.+-}+type Sort = [SortSpec]++{-| The two main kinds of 'SortSpec' are 'DefaultSortSpec' and+ 'GeoDistanceSortSpec'. The latter takes a 'SortOrder', 'GeoPoint', and+ 'DistanceUnit' to express "nearness" to a single geographical point as a+ sort specification.++<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>+-}+data SortSpec =+ DefaultSortSpec DefaultSort+ | GeoDistanceSortSpec SortOrder GeoPoint DistanceUnit+ deriving (Eq, Show)++instance ToJSON SortSpec where+ toJSON (DefaultSortSpec+ (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped+ dsSortMode dsMissingSort dsNestedFilter)) =+ object [dsSortFieldName .= omitNulls base] where+ base = [ "order" .= dsSortOrder+ , "unmapped_type" .= dsIgnoreUnmapped+ , "mode" .= dsSortMode+ , "missing" .= dsMissingSort+ , "nested_filter" .= dsNestedFilter ]++ toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =+ object [ "unit" .= units+ , field .= gdsLatLon+ , "order" .= gdsSortOrder ]++{-| 'DefaultSort' is usually the kind of 'SortSpec' you'll want. There's a+ 'mkSort' convenience function for when you want to specify only the most+ common parameters.++ The `ignoreUnmapped`, when `Just` field is used to set the elastic 'unmapped_type'++<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>+-}+data DefaultSort =+ DefaultSort { sortFieldName :: FieldName+ , sortOrder :: SortOrder+ -- default False+ , ignoreUnmapped :: Maybe Text+ , sortMode :: Maybe SortMode+ , missingSort :: Maybe Missing+ , nestedFilter :: Maybe Filter } deriving (Eq, Show)++{-| 'SortOrder' is 'Ascending' or 'Descending', as you might expect. These get+ encoded into "asc" or "desc" when turned into JSON.++<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>+-}+data SortOrder = Ascending+ | Descending deriving (Eq, Show)++instance ToJSON SortOrder where+ toJSON Ascending = String "asc"+ toJSON Descending = String "desc"++{-| 'Missing' prescribes how to handle missing fields. A missing field can be+ sorted last, first, or using a custom value as a substitute.++<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_missing_values>+-}+data Missing = LastMissing+ | FirstMissing+ | CustomMissing Text deriving (Eq, Show)++instance ToJSON Missing where+ toJSON LastMissing = String "_last"+ toJSON FirstMissing = String "_first"+ toJSON (CustomMissing txt) = String txt
+ src/Database/Bloodhound/Internal/StringlyTyped.hs view
@@ -0,0 +1,51 @@+{-# LANGUAGE OverloadedStrings #-}++module Database.Bloodhound.Internal.StringlyTyped where++import Bloodhound.Import++import qualified Data.Text as T+++-- This whole module is a sin bucket to deal with Elasticsearch badness.+newtype StringlyTypedDouble = StringlyTypedDouble+ { unStringlyTypedDouble :: Double }++instance FromJSON StringlyTypedDouble where+ parseJSON =+ fmap StringlyTypedDouble+ . parseJSON+ . unStringlyTypeJSON++newtype StringlyTypedInt = StringlyTypedInt+ { unStringlyTypedInt :: Int }++instance FromJSON StringlyTypedInt where+ parseJSON =+ fmap StringlyTypedInt+ . parseJSON+ . unStringlyTypeJSON++newtype StringlyTypedBool = StringlyTypedBool { unStringlyTypedBool :: Bool }++instance FromJSON StringlyTypedBool where+ parseJSON =+ fmap StringlyTypedBool+ . parseJSON+ . unStringlyTypeJSON++-- | For some reason in several settings APIs, all leaf values get returned+-- as strings. This function attempts to recover from this for all+-- non-recursive JSON types. If nothing can be done, the value is left alone.+unStringlyTypeJSON :: Value -> Value+unStringlyTypeJSON (String "true") =+ Bool True+unStringlyTypeJSON (String "false") =+ Bool False+unStringlyTypeJSON (String "null") =+ Null+unStringlyTypeJSON v@(String t) =+ case readMay (T.unpack t) of+ Just n -> Number n+ Nothing -> v+unStringlyTypeJSON v = v
+ src/Database/Bloodhound/Internal/Suggest.hs view
@@ -0,0 +1,270 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE OverloadedStrings #-}++module Database.Bloodhound.Internal.Suggest where++import Bloodhound.Import++import qualified Data.HashMap.Strict as HM++import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query (Query, TemplateQueryKeyValuePairs)++data Suggest = Suggest+ { suggestText :: Text+ , suggestName :: Text+ , suggestType :: SuggestType+ } deriving (Eq, Show)++instance ToJSON Suggest where+ toJSON Suggest{..} =+ object [ "text" .= suggestText+ , suggestName .= suggestType+ ]++instance FromJSON Suggest where+ parseJSON (Object o) = do+ suggestText' <- o .: "text"+ let dropTextList =+ HM.toList+ $ HM.filterWithKey (\x _ -> x /= "text") o+ suggestName' <-+ case dropTextList of+ [(x, _)] -> return x+ _ -> fail "error parsing Suggest field name"+ suggestType' <- o .: suggestName'+ return $ Suggest suggestText' suggestName' suggestType'+ parseJSON x = typeMismatch "Suggest" x++data SuggestType =+ SuggestTypePhraseSuggester PhraseSuggester+ deriving (Eq, Show)++instance ToJSON SuggestType where+ toJSON (SuggestTypePhraseSuggester x) =+ object [ "phrase" .= x ]++instance FromJSON SuggestType where+ parseJSON = withObject "SuggestType" parse+ where parse o = phraseSuggester `taggedWith` "phrase"+ where taggedWith parser k = parser =<< o .: k+ phraseSuggester = pure . SuggestTypePhraseSuggester++data PhraseSuggester = PhraseSuggester+ { phraseSuggesterField :: FieldName+ , phraseSuggesterGramSize :: Maybe Int+ , phraseSuggesterRealWordErrorLikelihood :: Maybe Int+ , phraseSuggesterConfidence :: Maybe Int+ , phraseSuggesterMaxErrors :: Maybe Int+ , phraseSuggesterSeparator :: Maybe Text+ , phraseSuggesterSize :: Maybe Size+ , phraseSuggesterAnalyzer :: Maybe Analyzer+ , phraseSuggesterShardSize :: Maybe Int+ , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter+ , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate+ , phraseSuggesterCandidateGenerators :: [DirectGenerators]+ } deriving (Eq, Show)++instance ToJSON PhraseSuggester where+ toJSON PhraseSuggester{..} =+ omitNulls [ "field" .= phraseSuggesterField+ , "gram_size" .= phraseSuggesterGramSize+ , "real_word_error_likelihood" .=+ phraseSuggesterRealWordErrorLikelihood+ , "confidence" .= phraseSuggesterConfidence+ , "max_errors" .= phraseSuggesterMaxErrors+ , "separator" .= phraseSuggesterSeparator+ , "size" .= phraseSuggesterSize+ , "analyzer" .= phraseSuggesterAnalyzer+ , "shard_size" .= phraseSuggesterShardSize+ , "highlight" .= phraseSuggesterHighlight+ , "collate" .= phraseSuggesterCollate+ , "direct_generator" .=+ phraseSuggesterCandidateGenerators+ ]++instance FromJSON PhraseSuggester where+ parseJSON = withObject "PhraseSuggester" parse+ where parse o = PhraseSuggester+ <$> o .: "field"+ <*> o .:? "gram_size"+ <*> o .:? "real_word_error_likelihood"+ <*> o .:? "confidence"+ <*> o .:? "max_errors"+ <*> o .:? "separator"+ <*> o .:? "size"+ <*> o .:? "analyzer"+ <*> o .:? "shard_size"+ <*> o .:? "highlight"+ <*> o .:? "collate"+ <*> o .:? "direct_generator" .!= []++mkPhraseSuggester :: FieldName -> PhraseSuggester+mkPhraseSuggester fName =+ PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing+ Nothing Nothing Nothing Nothing []++data PhraseSuggesterHighlighter =+ PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text+ , phraseSuggesterHighlighterPostTag :: Text+ }+ deriving (Eq, Show)++instance ToJSON PhraseSuggesterHighlighter where+ toJSON PhraseSuggesterHighlighter{..} =+ object [ "pre_tag" .= phraseSuggesterHighlighterPreTag+ , "post_tag" .= phraseSuggesterHighlighterPostTag+ ]++instance FromJSON PhraseSuggesterHighlighter where+ parseJSON = withObject "PhraseSuggesterHighlighter" parse+ where parse o = PhraseSuggesterHighlighter+ <$> o .: "pre_tag"+ <*> o .: "post_tag"++data PhraseSuggesterCollate = PhraseSuggesterCollate+ { phraseSuggesterCollateTemplateQuery :: Query+ , phraseSuggesterCollateParams :: TemplateQueryKeyValuePairs+ , phraseSuggesterCollatePrune :: Bool+ } deriving (Eq, Show)++instance ToJSON PhraseSuggesterCollate where+ toJSON PhraseSuggesterCollate{..} =+ object [ "query" .= object+ [ "source" .= phraseSuggesterCollateTemplateQuery+ ]+ , "params" .= phraseSuggesterCollateParams+ , "prune" .= phraseSuggesterCollatePrune+ ]++instance FromJSON PhraseSuggesterCollate where+ parseJSON (Object o) = do+ query' <- o .: "query"+ inline' <- query' .: "source"+ params' <- o .: "params"+ prune' <- o .:? "prune" .!= False+ return $ PhraseSuggesterCollate inline' params' prune'+ parseJSON x = typeMismatch "PhraseSuggesterCollate" x++data SuggestOptions =+ SuggestOptions { suggestOptionsText :: Text+ , suggestOptionsScore :: Double+ , suggestOptionsFreq :: Maybe Int+ , suggestOptionsHighlighted :: Maybe Text+ }+ deriving (Eq, Read, Show)++instance FromJSON SuggestOptions where+ parseJSON = withObject "SuggestOptions" parse+ where+ parse o = SuggestOptions+ <$> o .: "text"+ <*> o .: "score"+ <*> o .:? "freq"+ <*> o .:? "highlighted"++data SuggestResponse =+ SuggestResponse { suggestResponseText :: Text+ , suggestResponseOffset :: Int+ , suggestResponseLength :: Int+ , suggestResponseOptions :: [SuggestOptions]+ }+ deriving (Eq, Read, Show)++instance FromJSON SuggestResponse where+ parseJSON = withObject "SuggestResponse" parse+ where parse o = SuggestResponse+ <$> o .: "text"+ <*> o .: "offset"+ <*> o .: "length"+ <*> o .: "options"++data NamedSuggestionResponse = NamedSuggestionResponse+ { nsrName :: Text+ , nsrResponses :: [SuggestResponse]+ } deriving (Eq, Read, Show)++instance FromJSON NamedSuggestionResponse where+ parseJSON (Object o) = do+ suggestionName' <- case HM.toList o of+ [(x, _)] -> return x+ _ -> fail "error parsing NamedSuggestionResponse name"+ suggestionResponses' <- o .: suggestionName'+ return $ NamedSuggestionResponse suggestionName' suggestionResponses'++ parseJSON x = typeMismatch "NamedSuggestionResponse" x++data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing+ | DirectGeneratorSuggestModePopular+ | DirectGeneratorSuggestModeAlways+ deriving (Eq, Show)++instance ToJSON DirectGeneratorSuggestModeTypes where+ toJSON DirectGeneratorSuggestModeMissing = "missing"+ toJSON DirectGeneratorSuggestModePopular = "popular"+ toJSON DirectGeneratorSuggestModeAlways = "always"++instance FromJSON DirectGeneratorSuggestModeTypes where+ parseJSON = withText "DirectGeneratorSuggestModeTypes" parse+ where+ parse "missing" =+ pure DirectGeneratorSuggestModeMissing+ parse "popular" =+ pure DirectGeneratorSuggestModePopular+ parse "always" =+ pure DirectGeneratorSuggestModeAlways+ parse f =+ fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)++data DirectGenerators = DirectGenerators+ { directGeneratorsField :: FieldName+ , directGeneratorsSize :: Maybe Int+ , directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes+ , directGeneratorMaxEdits :: Maybe Double+ , directGeneratorPrefixLength :: Maybe Int+ , directGeneratorMinWordLength :: Maybe Int+ , directGeneratorMaxInspections :: Maybe Int+ , directGeneratorMinDocFreq :: Maybe Double+ , directGeneratorMaxTermFreq :: Maybe Double+ , directGeneratorPreFilter :: Maybe Text+ , directGeneratorPostFilter :: Maybe Text+ } deriving (Eq, Show)++instance ToJSON DirectGenerators where+ toJSON DirectGenerators{..} =+ omitNulls [ "field" .= directGeneratorsField+ , "size" .= directGeneratorsSize+ , "suggest_mode" .= directGeneratorSuggestMode+ , "max_edits" .= directGeneratorMaxEdits+ , "prefix_length" .= directGeneratorPrefixLength+ , "min_word_length" .= directGeneratorMinWordLength+ , "max_inspections" .= directGeneratorMaxInspections+ , "min_doc_freq" .= directGeneratorMinDocFreq+ , "max_term_freq" .= directGeneratorMaxTermFreq+ , "pre_filter" .= directGeneratorPreFilter+ , "post_filter" .= directGeneratorPostFilter+ ]++instance FromJSON DirectGenerators where+ parseJSON = withObject "DirectGenerators" parse+ where parse o = DirectGenerators+ <$> o .: "field"+ <*> o .:? "size"+ <*> o .: "suggest_mode"+ <*> o .:? "max_edits"+ <*> o .:? "prefix_length"+ <*> o .:? "min_word_length"+ <*> o .:? "max_inspections"+ <*> o .:? "min_doc_freq"+ <*> o .:? "max_term_freq"+ <*> o .:? "pre_filter"+ <*> o .:? "post_filter"++mkDirectGenerators :: FieldName -> DirectGenerators+mkDirectGenerators fn =+ DirectGenerators+ fn+ Nothing+ DirectGeneratorSuggestModeMissing+ Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
+ src/Database/Bloodhound/Types.hs view
@@ -0,0 +1,663 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE UndecidableInstances #-}++-------------------------------------------------------------------------------+-- |+-- Module : Database.Bloodhound.Types+-- Copyright : (C) 2014, 2018 Chris Allen+-- License : BSD-style (see the file LICENSE)+-- Maintainer : Chris Allen <cma@bitemyapp.com+-- Stability : provisional+-- Portability : RecordWildCards+--+-- Data types for describing actions and data structures performed to interact+-- with Elasticsearch. The two main buckets your queries against Elasticsearch+-- will fall into are 'Query's and 'Filter's. 'Filter's are more like+-- traditional database constraints and often have preferable performance+-- properties. 'Query's support human-written textual queries, such as fuzzy+-- queries.+-------------------------------------------------------------------------------++++module Database.Bloodhound.Types+ ( defaultCache+ , defaultIndexSettings+ , defaultIndexDocumentSettings+ , mkSort+ , showText+ , unpackId+ , mkMatchQuery+ , mkMultiMatchQuery+ , mkBoolQuery+ , mkRangeQuery+ , mkQueryStringQuery+ , mkAggregations+ , mkTermsAggregation+ , mkTermsScriptAggregation+ , mkDateHistogram+ , mkCardinalityAggregation+ , mkDocVersion+ , mkStatsAggregation+ , mkExtendedStatsAggregation+ , docVersionNumber+ , toMissing+ , toTerms+ , toDateHistogram+ , toTopHits+ , omitNulls+ , BH(..)+ , runBH+ , BHEnv+ , bhServer+ , bhManager+ , bhRequestHook+ , mkBHEnv+ , MonadBH(..)+ , Version(..)+ , VersionNumber(..)+ , MaybeNA(..)+ , BuildHash(..)+ , Status(..)+ , Existence(..)+ , NullValue(..)+ , IndexSettings(..)+ , UpdatableIndexSetting(..)+ , IndexSettingsSummary(..)+ , AllocationPolicy(..)+ , Compression(..)+ , ReplicaBounds(..)+ , Bytes(..)+ , gigabytes+ , megabytes+ , kilobytes+ , FSType(..)+ , InitialShardCount(..)+ , NodeAttrFilter(..)+ , NodeAttrName(..)+ , CompoundFormat(..)+ , IndexTemplate(..)+ , Server(..)+ , Reply+ , EsResult(..)+ , EsResultFound(..)+ , EsError(..)+ , EsProtocolException(..)+ , IndexAlias(..)+ , IndexAliasName(..)+ , IndexAliasAction(..)+ , IndexAliasCreate(..)+ , IndexAliasSummary(..)+ , IndexAliasesSummary(..)+ , AliasRouting(..)+ , SearchAliasRouting(..)+ , IndexAliasRouting(..)+ , RoutingValue(..)+ , DocVersion+ , ExternalDocVersion(..)+ , VersionControl(..)+ , JoinRelation(..)+ , IndexDocumentSettings(..)+ , Query(..)+ , Search(..)+ , SearchType(..)+ , SearchResult(..)+ , ScrollId(..)+ , HitsTotalRelation(..)+ , HitsTotal(..)+ , SearchHits(..)+ , TrackSortScores+ , From(..)+ , Size(..)+ , Source(..)+ , PatternOrPatterns(..)+ , Include(..)+ , Exclude(..)+ , Pattern(..)+ , ShardResult(..)+ , Hit(..)+ , HitFields(..)+ , Filter(..)+ , BoolMatch(..)+ , Term(..)+ , GeoPoint(..)+ , GeoBoundingBoxConstraint(..)+ , GeoBoundingBox(..)+ , GeoFilterType(..)+ , Distance(..)+ , DistanceUnit(..)+ , DistanceType(..)+ , DistanceRange(..)+ , OptimizeBbox(..)+ , LatLon(..)+ , RangeValue(..)+ , RangeExecution(..)+ , LessThan(..)+ , LessThanEq(..)+ , GreaterThan(..)+ , GreaterThanEq(..)+ , LessThanD(..)+ , LessThanEqD(..)+ , GreaterThanD(..)+ , GreaterThanEqD(..)+ , Regexp(..)+ , RegexpFlags(..)+ , RegexpFlag(..)+ , FieldName(..)+ , ScriptFields(..)+ , ScriptFieldName+ , ScriptFieldValue+ , Script(..)+ , ScriptLanguage(..)+ , ScriptSource(..)+ , ScriptParams(..)+ , ScriptParamName+ , ScriptParamValue+ , IndexName(..)+ , IndexSelection(..)+ , NodeSelection(..)+ , NodeSelector(..)+ , ForceMergeIndexSettings(..)+ , defaultForceMergeIndexSettings+ , TemplateName(..)+ , IndexPattern(..)+ , DocId(..)+ , CacheName(..)+ , CacheKey(..)+ , BulkOperation(..)+ , ReplicaCount(..)+ , ShardCount(..)+ , Sort+ , SortMode(..)+ , SortOrder(..)+ , SortSpec(..)+ , DefaultSort(..)+ , Missing(..)+ , OpenCloseIndex(..)+ , Method+ , Boost(..)+ , MatchQuery(..)+ , MultiMatchQuery(..)+ , BoolQuery(..)+ , BoostingQuery(..)+ , CommonTermsQuery(..)+ , FunctionScoreQuery(..)+ , BoostMode(..)+ , ScoreMode(..)+ , FunctionScoreFunctions(..)+ , ComponentFunctionScoreFunction(..)+ , FunctionScoreFunction(..)+ , Weight(..)+ , Seed(..)+ , FieldValueFactor(..)+ , Factor(..)+ , FactorModifier(..)+ , FactorMissingFieldValue(..)+ , DisMaxQuery(..)+ , FuzzyLikeThisQuery(..)+ , FuzzyLikeFieldQuery(..)+ , FuzzyQuery(..)+ , HasChildQuery(..)+ , HasParentQuery(..)+ , IndicesQuery(..)+ , MoreLikeThisQuery(..)+ , MoreLikeThisFieldQuery(..)+ , NestedQuery(..)+ , PrefixQuery(..)+ , QueryStringQuery(..)+ , SimpleQueryStringQuery(..)+ , RangeQuery(..)+ , RegexpQuery(..)+ , QueryString(..)+ , SearchTemplateId(..)+ , SearchTemplateSource(..)+ , SearchTemplate(..)+ , GetTemplateScript(..)+ , TemplateQueryKeyValuePairs(..)+ , WildcardQuery(..)+ , BooleanOperator(..)+ , ZeroTermsQuery(..)+ , CutoffFrequency(..)+ , Analyzer(..)+ , Tokenizer(..)+ , TokenFilter(..)+ , CharFilter(..)+ , MaxExpansions(..)+ , Lenient(..)+ , MatchQueryType(..)+ , MultiMatchQueryType(..)+ , Tiebreaker(..)+ , MinimumMatch(..)+ , DisableCoord(..)+ , CommonMinimumMatch(..)+ , MinimumMatchHighLow(..)+ , PrefixLength(..)+ , Fuzziness(..)+ , IgnoreTermFrequency(..)+ , MaxQueryTerms(..)+ , AggregateParentScore(..)+ , IgnoreUnmapped(..)+ , MinChildren(..)+ , MaxChildren(..)+ , ScoreType(..)+ , Score+ , Cache+ , RelationName(..)+ , BoostTerms(..)+ , MaxWordLength(..)+ , MinWordLength(..)+ , MaxDocFrequency(..)+ , MinDocFrequency(..)+ , PhraseSlop(..)+ , StopWord(..)+ , QueryPath(..)+ , MinimumTermFrequency(..)+ , PercentMatch(..)+ , FieldDefinition(..)+ , MappingField(..)+ , Mapping(..)+ , UpsertActionMetadata(..)+ , buildUpsertActionMetadata+ , UpsertPayload(..)+ , AllowLeadingWildcard(..)+ , LowercaseExpanded(..)+ , GeneratePhraseQueries(..)+ , Locale(..)+ , AnalyzeWildcard(..)+ , EnablePositionIncrements(..)+ , SimpleQueryFlag(..)+ , FieldOrFields(..)+ , Monoid(..)+ , ToJSON(..)+ , Interval(..)+ , TimeInterval(..)+ , ExecutionHint(..)+ , CollectionMode(..)+ , TermOrder(..)+ , TermInclusion(..)+ , SnapshotRepoSelection(..)+ , GenericSnapshotRepo(..)+ , SnapshotRepo(..)+ , SnapshotRepoConversionError(..)+ , SnapshotRepoType(..)+ , GenericSnapshotRepoSettings(..)+ , SnapshotRepoUpdateSettings(..)+ , defaultSnapshotRepoUpdateSettings+ , SnapshotRepoName(..)+ , SnapshotRepoPattern(..)+ , SnapshotVerification(..)+ , SnapshotNodeVerification(..)+ , FullNodeId(..)+ , NodeName(..)+ , ClusterName(..)+ , NodesInfo(..)+ , NodesStats(..)+ , NodeStats(..)+ , NodeBreakersStats(..)+ , NodeBreakerStats(..)+ , NodeHTTPStats(..)+ , NodeTransportStats(..)+ , NodeFSStats(..)+ , NodeDataPathStats(..)+ , NodeFSTotalStats(..)+ , NodeNetworkStats(..)+ , NodeThreadPoolStats(..)+ , NodeJVMStats(..)+ , JVMBufferPoolStats(..)+ , JVMGCStats(..)+ , JVMPoolStats(..)+ , NodeProcessStats(..)+ , NodeOSStats(..)+ , LoadAvgs(..)+ , NodeIndicesStats(..)+ , EsAddress(..)+ , PluginName(..)+ , NodeInfo(..)+ , NodePluginInfo(..)+ , NodeHTTPInfo(..)+ , NodeTransportInfo(..)+ , BoundTransportAddress(..)+ , NodeNetworkInfo(..)+ , MacAddress(..)+ , NetworkInterfaceName(..)+ , NodeNetworkInterface(..)+ , NodeThreadPoolInfo(..)+ , ThreadPoolSize(..)+ , ThreadPoolType(..)+ , NodeJVMInfo(..)+ , JVMMemoryPool(..)+ , JVMGCCollector(..)+ , JVMMemoryInfo(..)+ , PID(..)+ , NodeOSInfo(..)+ , CPUInfo(..)+ , NodeProcessInfo(..)+ , FsSnapshotRepo(..)+ , SnapshotCreateSettings(..)+ , defaultSnapshotCreateSettings+ , SnapshotSelection(..)+ , SnapshotPattern(..)+ , SnapshotInfo(..)+ , SnapshotShardFailure(..)+ , ShardId(..)+ , SnapshotName(..)+ , SnapshotState(..)+ , SnapshotRestoreSettings(..)+ , defaultSnapshotRestoreSettings+ , RestoreRenamePattern(..)+ , RestoreRenameToken(..)+ , RRGroupRefNum+ , rrGroupRefNum+ , mkRRGroupRefNum+ , RestoreIndexSettings(..)+ , Suggest(..)+ , SuggestType(..)+ , PhraseSuggester(..)+ , PhraseSuggesterHighlighter(..)+ , PhraseSuggesterCollate(..)+ , mkPhraseSuggester+ , SuggestOptions(..)+ , SuggestResponse(..)+ , NamedSuggestionResponse(..)+ , DirectGenerators(..)+ , mkDirectGenerators+ , DirectGeneratorSuggestModeTypes (..)++ , Aggregation(..)+ , Aggregations+ , AggregationResults+ , BucketValue(..)+ , Bucket(..)+ , BucketAggregation(..)+ , TermsAggregation(..)+ , MissingAggregation(..)+ , ValueCountAggregation(..)+ , FilterAggregation(..)+ , CardinalityAggregation(..)+ , DateHistogramAggregation(..)+ , DateRangeAggregation(..)+ , DateRangeAggRange(..)+ , DateMathExpr(..)+ , DateMathAnchor(..)+ , DateMathModifier(..)+ , DateMathUnit(..)+ , TopHitsAggregation(..)+ , StatisticsAggregation(..)+ , SearchAfterKey+ , CountQuery (..)+ , CountResponse (..)+ , CountShards (..)++ , Highlights(..)+ , FieldHighlight(..)+ , HighlightSettings(..)+ , PlainHighlight(..)+ , PostingsHighlight(..)+ , FastVectorHighlight(..)+ , CommonHighlight(..)+ , NonPostings(..)+ , HighlightEncoder(..)+ , HighlightTag(..)+ , HitHighlight++ , MissingResult(..)+ , TermsResult(..)+ , DateHistogramResult(..)+ , DateRangeResult(..)+ , TopHitResult(..)++ , EsUsername(..)+ , EsPassword(..)++ , Analysis(..)+ , AnalyzerDefinition(..)+ , TokenizerDefinition(..)+ , TokenFilterDefinition(..)+ , CharFilterDefinition(..)+ , Ngram(..)+ , TokenChar(..)+ , Shingle(..)+ , Language(..)+ ) where++import Bloodhound.Import++import Database.Bloodhound.Internal.Aggregation+import Database.Bloodhound.Internal.Analysis+import Database.Bloodhound.Internal.Client+import Database.Bloodhound.Internal.Count+import Database.Bloodhound.Internal.Highlight+import Database.Bloodhound.Internal.Newtypes+import Database.Bloodhound.Internal.Query+import Database.Bloodhound.Internal.Sort+import Database.Bloodhound.Internal.Suggest+import qualified Data.HashMap.Strict as HM++{-| 'unpackId' is a silly convenience function that gets used once.+-}+unpackId :: DocId -> Text+unpackId (DocId docId) = docId++type TrackSortScores = Bool++data Search = Search { queryBody :: Maybe Query+ , filterBody :: Maybe Filter+ , sortBody :: Maybe Sort+ , aggBody :: Maybe Aggregations+ , highlight :: Maybe Highlights+ -- default False+ , trackSortScores :: TrackSortScores+ , from :: From+ , size :: Size+ , searchType :: SearchType+ , searchAfterKey :: Maybe SearchAfterKey+ , fields :: Maybe [FieldName]+ , scriptFields :: Maybe ScriptFields+ , source :: Maybe Source+ , suggestBody :: Maybe Suggest -- ^ Only one Suggestion request / response per Search is supported.+ } deriving (Eq, Show)+++instance ToJSON Search where+ toJSON (Search mquery sFilter sort searchAggs+ highlight sTrackSortScores sFrom sSize _ sAfter sFields+ sScriptFields sSource sSuggest) =+ omitNulls [ "query" .= query'+ , "sort" .= sort+ , "aggregations" .= searchAggs+ , "highlight" .= highlight+ , "from" .= sFrom+ , "size" .= sSize+ , "track_scores" .= sTrackSortScores+ , "search_after" .= sAfter+ , "fields" .= sFields+ , "script_fields" .= sScriptFields+ , "_source" .= sSource+ , "suggest" .= sSuggest]++ where query' = case sFilter of+ Nothing -> mquery+ Just x ->+ Just+ . QueryBoolQuery+ $ mkBoolQuery (maybeToList mquery)+ [x] [] []++data SearchType = SearchTypeQueryThenFetch+ | SearchTypeDfsQueryThenFetch+ deriving (Eq, Show)++instance ToJSON SearchType where+ toJSON SearchTypeQueryThenFetch = String "query_then_fetch"+ toJSON SearchTypeDfsQueryThenFetch = String "dfs_query_then_fetch"++instance FromJSON SearchType where+ parseJSON (String "query_then_fetch") = pure $ SearchTypeQueryThenFetch+ parseJSON (String "dfs_query_then_fetch") = pure $ SearchTypeDfsQueryThenFetch+ parseJSON _ = empty++data Source =+ NoSource+ | SourcePatterns PatternOrPatterns+ | SourceIncludeExclude Include Exclude+ deriving (Eq, Show)++instance ToJSON Source where+ toJSON NoSource = toJSON False+ toJSON (SourcePatterns patterns) = toJSON patterns+ toJSON (SourceIncludeExclude incl excl) = object [ "includes" .= incl, "excludes" .= excl ]++data PatternOrPatterns = PopPattern Pattern+ | PopPatterns [Pattern] deriving (Eq, Read, Show)++instance ToJSON PatternOrPatterns where+ toJSON (PopPattern pattern) = toJSON pattern+ toJSON (PopPatterns patterns) = toJSON patterns++data Include = Include [Pattern] deriving (Eq, Read, Show)+data Exclude = Exclude [Pattern] deriving (Eq, Read, Show)++instance ToJSON Include where+ toJSON (Include patterns) = toJSON patterns++instance ToJSON Exclude where+ toJSON (Exclude patterns) = toJSON patterns++newtype Pattern = Pattern Text deriving (Eq, Read, Show)++instance ToJSON Pattern where+ toJSON (Pattern pattern) = toJSON pattern++data SearchResult a =+ SearchResult { took :: Int+ , timedOut :: Bool+ , shards :: ShardResult+ , searchHits :: SearchHits a+ , aggregations :: Maybe AggregationResults+ , scrollId :: Maybe ScrollId+ -- ^ Only one Suggestion request / response per+ -- Search is supported.+ , suggest :: Maybe NamedSuggestionResponse+ }+ deriving (Eq, Show)++instance (FromJSON a) => FromJSON (SearchResult a) where+ parseJSON (Object v) = SearchResult <$>+ v .: "took" <*>+ v .: "timed_out" <*>+ v .: "_shards" <*>+ v .: "hits" <*>+ v .:? "aggregations" <*>+ v .:? "_scroll_id" <*>+ v .:? "suggest"+ parseJSON _ = empty++newtype ScrollId =+ ScrollId Text+ deriving (Eq, Show, Ord, ToJSON, FromJSON)++newtype SearchTemplateId = SearchTemplateId Text deriving (Eq, Show)++instance ToJSON SearchTemplateId where+ toJSON (SearchTemplateId x) = toJSON x++newtype SearchTemplateSource = SearchTemplateSource Text deriving (Eq, Show)++instance ToJSON SearchTemplateSource where+ toJSON (SearchTemplateSource x) = toJSON x++instance FromJSON SearchTemplateSource where+ parseJSON (String s) = pure $ SearchTemplateSource s+ parseJSON _ = empty++data ExpandWildcards = ExpandWildcardsAll+ | ExpandWildcardsOpen+ | ExpandWildcardsClosed+ | ExpandWildcardsNone+ deriving (Eq, Show)++instance ToJSON ExpandWildcards where+ toJSON ExpandWildcardsAll = String "all"+ toJSON ExpandWildcardsOpen = String "open"+ toJSON ExpandWildcardsClosed = String "closed"+ toJSON ExpandWildcardsNone = String "none"++instance FromJSON ExpandWildcards where+ parseJSON (String "all") = pure $ ExpandWildcardsAll+ parseJSON (String "open") = pure $ ExpandWildcardsOpen+ parseJSON (String "closed") = pure $ ExpandWildcardsClosed+ parseJSON (String "none") = pure $ ExpandWildcardsNone+ parseJSON _ = empty++data TimeUnits = TimeUnitDays + | TimeUnitHours+ | TimeUnitMinutes+ | TimeUnitSeconds+ | TimeUnitMilliseconds+ | TimeUnitMicroseconds+ | TimeUnitNanoseconds+ deriving (Eq, Show)++instance ToJSON TimeUnits where+ toJSON TimeUnitDays = String "d"+ toJSON TimeUnitHours = String "h"+ toJSON TimeUnitMinutes = String "m"+ toJSON TimeUnitSeconds = String "s"+ toJSON TimeUnitMilliseconds = String "ms"+ toJSON TimeUnitMicroseconds = String "micros"+ toJSON TimeUnitNanoseconds = String "nanos"++instance FromJSON TimeUnits where+ parseJSON (String "d") = pure $ TimeUnitDays+ parseJSON (String "h") = pure $ TimeUnitHours+ parseJSON ( String "m") = pure $ TimeUnitMinutes+ parseJSON (String "s") = pure $ TimeUnitSeconds+ parseJSON (String "ms") = pure $ TimeUnitMilliseconds+ parseJSON (String "micros") = pure $ TimeUnitMicroseconds+ parseJSON (String "nanos") = pure $ TimeUnitNanoseconds+ parseJSON _ = empty++data SearchTemplate = SearchTemplate {+ searchTemplate :: Either SearchTemplateId SearchTemplateSource+ , params :: TemplateQueryKeyValuePairs+ , explainSearchTemplate :: Maybe Bool+ , profileSearchTemplate :: Maybe Bool+ } deriving (Eq, Show)++instance ToJSON SearchTemplate where+ toJSON SearchTemplate{..} = omitNulls [ + either ("id" .=) ("source" .=) searchTemplate+ , "params" .= params+ , "explain" .= explainSearchTemplate+ , "profile" .= profileSearchTemplate+ ]++data GetTemplateScript = GetTemplateScript {+ getTemplateScriptLang :: Maybe Text+ , getTemplateScriptSource :: Maybe SearchTemplateSource+ , getTemplateScriptOptions :: Maybe (HM.HashMap Text Text)+ , getTemplateScriptId :: Text+ , getTemplateScriptFound :: Bool+ } deriving (Eq, Show)++instance FromJSON GetTemplateScript where+ parseJSON (Object v) = do+ script <- v .:? "script"+ maybe+ (GetTemplateScript Nothing Nothing Nothing <$> v .: "_id" <*> v .: "found")+ (\s -> GetTemplateScript <$>+ s .:? "lang" <*>+ s .:? "source" <*>+ s .:? "options" <*>+ v .: "_id" <*>+ v .: "found"+ )+ script+ parseJSON _ = empty+
− src/Database/V1/Bloodhound.hs
@@ -1,10 +0,0 @@-module Database.V1.Bloodhound- ( -- module Data.Aeson.Types- -- , - module Database.V1.Bloodhound.Client- , module Database.V1.Bloodhound.Types- ) where---- import Data.Aeson.Types-import Database.V1.Bloodhound.Client-import Database.V1.Bloodhound.Types
− src/Database/V1/Bloodhound/Client.hs
@@ -1,927 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}------------------------------------------------------------------------------------ |--- Module : Database.Bloodhound.Client--- Copyright : (C) 2014 Chris Allen--- License : BSD-style (see the file LICENSE)--- Maintainer : Chris Allen <cma@bitemyapp.com--- Stability : provisional--- Portability : OverloadedStrings------ Client side functions for talking to Elasticsearch servers.-------------------------------------------------------------------------------------module Database.V1.Bloodhound.Client- ( -- * Bloodhound client functions- -- | The examples in this module assume the following code has been run.- -- The :{ and :} will only work in GHCi. You'll only need the data types- -- and typeclass instances for the functions that make use of them.-- -- $setup- withBH- -- ** Indices- , createIndex- , deleteIndex- , updateIndexSettings- , getIndexSettings- , optimizeIndex- , indexExists- , openIndex- , closeIndex- , listIndices- , waitForYellowIndex- -- *** Index Aliases- , updateIndexAliases- , getIndexAliases- -- *** Index Templates- , putTemplate- , templateExists- , deleteTemplate- -- ** Mapping- , putMapping- , deleteMapping- -- ** Documents- , indexDocument- , updateDocument- , getDocument- , documentExists- , deleteDocument- -- ** Searching- , searchAll- , searchByIndex- , searchByType- , scanSearch- , getInitialScroll- , advanceScroll- , refreshIndex- , mkSearch- , mkAggregateSearch- , mkHighlightSearch- , bulk- , pageSearch- , mkShardCount- , mkReplicaCount- , getStatus- -- ** Snapshot/Restore- -- *** Snapshot Repos- , getSnapshotRepos- , updateSnapshotRepo- , verifySnapshotRepo- , deleteSnapshotRepo- -- *** Snapshots- , createSnapshot- , getSnapshots- , deleteSnapshot- -- *** Restoring Snapshots- , restoreSnapshot- -- ** Nodes- , getNodesInfo- , getNodesStats- -- ** Request Utilities- , encodeBulkOperations- , encodeBulkOperation- -- * Authentication- , basicAuthHook- -- * Reply-handling tools- , isVersionConflict- , isSuccess- , isCreated- , parseEsResponse- )- where--import qualified Blaze.ByteString.Builder as BB-import Control.Applicative as A-import Control.Monad-import Control.Monad.Catch-import Control.Monad.IO.Class-import Data.Aeson-import Data.ByteString.Lazy.Builder-import qualified Data.ByteString.Lazy.Char8 as L-import Data.Foldable (toList)-import qualified Data.HashMap.Strict as HM-import Data.Ix-import qualified Data.List as LS (filter, foldl')-import Data.List.NonEmpty (NonEmpty (..))-import Data.Maybe (catMaybes, fromMaybe, isJust)-import Data.Monoid-import Data.Text (Text)-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import Data.Time.Clock-import qualified Data.Vector as V-import Network.HTTP.Client-import qualified Network.HTTP.Types.Method as NHTM-import qualified Network.HTTP.Types.Status as NHTS-import qualified Network.HTTP.Types.URI as NHTU-import qualified Network.URI as URI-import Prelude hiding (filter, head)--import Database.V1.Bloodhound.Types---- | 'mkShardCount' is a straight-forward smart constructor for 'ShardCount'--- which rejects 'Int' values below 1 and above 1000.-mkShardCount :: Int -> Maybe ShardCount-mkShardCount n- | n < 1 = Nothing- | n > 1000 = Nothing- | otherwise = Just (ShardCount n)---- | 'mkReplicaCount' is a straight-forward smart constructor for 'ReplicaCount'--- which rejects 'Int' values below 0 and above 1000.-mkReplicaCount :: Int -> Maybe ReplicaCount-mkReplicaCount n- | n < 0 = Nothing- | n > 1000 = Nothing -- ...- | otherwise = Just (ReplicaCount n)--emptyBody :: L.ByteString-emptyBody = L.pack ""--dispatch :: MonadBH m- => Method- -> Text- -> Maybe L.ByteString- -> m Reply-dispatch dMethod url body = do- initReq <- liftIO $ parseUrl' url- reqHook <- bhRequestHook A.<$> getBHEnv- let reqBody = RequestBodyLBS $ fromMaybe emptyBody body- req <- liftIO- $ reqHook- $ setRequestIgnoreStatus- $ initReq { method = dMethod- , requestBody = reqBody }- mgr <- bhManager <$> getBHEnv- liftIO $ httpLbs req mgr--joinPath' :: [Text] -> Text-joinPath' = T.intercalate "/"--joinPath :: MonadBH m => [Text] -> m Text-joinPath ps = do- Server s <- bhServer <$> getBHEnv- return $ joinPath' (s:ps)--appendSearchTypeParam :: Text -> SearchType -> Text-appendSearchTypeParam originalUrl st = addQuery params originalUrl- where stText = "search_type"- params- | st == SearchTypeDfsQueryThenFetch = [(stText, Just "dfs_query_then_fetch")]- | st == SearchTypeCount = [(stText, Just "count")]- | st == SearchTypeScan = [(stText, Just "scan"), ("scroll", Just "1m")]- | st == SearchTypeQueryAndFetch = [(stText, Just "query_and_fetch")]- | st == SearchTypeDfsQueryAndFetch = [(stText, Just "dfs_query_and_fetch")]- -- used to catch 'SearchTypeQueryThenFetch', which is also the default- | otherwise = [(stText, Just "query_then_fetch")]---- | Severely dumbed down query renderer. Assumes your data doesn't--- need any encoding-addQuery :: [(Text, Maybe Text)] -> Text -> Text-addQuery q u = u <> rendered- where- rendered =- T.decodeUtf8 $ BB.toByteString $ NHTU.renderQueryText prependQuestionMark q- prependQuestionMark = True--bindM2 :: (Applicative m, Monad m) => (a -> b -> m c) -> m a -> m b -> m c-bindM2 f ma mb = join (f <$> ma <*> mb)---- | Convenience function that sets up a manager and BHEnv and runs--- the given set of bloodhound operations. Connections will be--- pipelined automatically in accordance with the given manager--- settings in IO. If you've got your own monad transformer stack, you--- should use 'runBH' directly.-withBH :: ManagerSettings -> Server -> BH IO a -> IO a-withBH ms s f = do- mgr <- newManager ms- let env = mkBHEnv s mgr- runBH env f---- Shortcut functions for HTTP methods-delete :: MonadBH m => Text -> m Reply-delete = flip (dispatch NHTM.methodDelete) Nothing-get :: MonadBH m => Text -> m Reply-get = flip (dispatch NHTM.methodGet) Nothing-head :: MonadBH m => Text -> m Reply-head = flip (dispatch NHTM.methodHead) Nothing-put :: MonadBH m => Text -> Maybe L.ByteString -> m Reply-put = dispatch NHTM.methodPut-post :: MonadBH m => Text -> Maybe L.ByteString -> m Reply-post = dispatch NHTM.methodPost---- indexDocument s ix name doc = put (root </> s </> ix </> name </> doc) (Just encode doc)--- http://hackage.haskell.org/package/http-client-lens-0.1.0/docs/Network-HTTP-Client-Lens.html--- https://github.com/supki/libjenkins/blob/master/src/Jenkins/Rest/Internal.hs---- | 'getStatus' fetches the 'Status' of a 'Server'-getStatus :: MonadBH m => m (Maybe Status)-getStatus = do- response <- get =<< url- return $ decode (responseBody response)- where- url = joinPath []---- | 'getSnapshotRepos' gets the definitions of a subset of the--- defined snapshot repos.-getSnapshotRepos- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoSelection- -> m (Either EsError [GenericSnapshotRepo])-getSnapshotRepos sel = fmap (fmap unGSRs) . parseEsResponse =<< get =<< url- where- url = joinPath ["_snapshot", selectorSeg]- selectorSeg = case sel of- AllSnapshotRepos -> "_all"- SnapshotRepoList (p :| ps) -> T.intercalate "," (renderPat <$> (p:ps))- renderPat (RepoPattern t) = t- renderPat (ExactRepo (SnapshotRepoName t)) = t----- | Wrapper to extract the list of 'GenericSnapshotRepo' in the--- format they're returned in-newtype GSRs = GSRs { unGSRs :: [GenericSnapshotRepo] }---instance FromJSON GSRs where- parseJSON = withObject "Collection of GenericSnapshotRepo" parse- where- parse = fmap GSRs . mapM (uncurry go) . HM.toList- go rawName = withObject "GenericSnapshotRepo" $ \o ->- GenericSnapshotRepo (SnapshotRepoName rawName) <$> o .: "type"- <*> o .: "settings"----- | Create or update a snapshot repo-updateSnapshotRepo- :: ( MonadBH m- , SnapshotRepo repo- )- => SnapshotRepoUpdateSettings- -- ^ Use 'defaultSnapshotRepoUpdateSettings' if unsure- -> repo- -> m Reply-updateSnapshotRepo SnapshotRepoUpdateSettings {..} repo =- bindM2 put url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", snapshotRepoName gSnapshotRepoName]- params- | repoUpdateVerify = []- | otherwise = [("verify", Just "false")]- body = encode $ object [ "type" .= gSnapshotRepoType- , "settings" .= gSnapshotRepoSettings- ]- GenericSnapshotRepo {..} = toGSnapshotRepo repo------ | Verify if a snapshot repo is working. __NOTE:__ this API did not--- make it into Elasticsearch until 1.4. If you use an older version,--- you will get an error here.-verifySnapshotRepo- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoName- -> m (Either EsError SnapshotVerification)-verifySnapshotRepo (SnapshotRepoName n) =- parseEsResponse =<< bindM2 post url (return Nothing)- where- url = joinPath ["_snapshot", n, "_verify"]---deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply-deleteSnapshotRepo (SnapshotRepoName n) = delete =<< url- where- url = joinPath ["_snapshot", n]----- | Create and start a snapshot-createSnapshot- :: (MonadBH m)- => SnapshotRepoName- -> SnapshotName- -> SnapshotCreateSettings- -> m Reply-createSnapshot (SnapshotRepoName repoName)- (SnapshotName snapName)- SnapshotCreateSettings {..} =- bindM2 put url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", repoName, snapName]- params = [("wait_for_completion", Just (boolQP snapWaitForCompletion))]- body = encode $ object prs- prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapIndices- , Just ("ignore_unavailable" .= snapIgnoreUnavailable)- , Just ("ignore_global_state" .= snapIncludeGlobalState)- , Just ("partial" .= snapPartial)- ]---indexSelectionName :: IndexSelection -> Text-indexSelectionName AllIndexes = "_all"-indexSelectionName (IndexList (i :| is)) = T.intercalate "," (renderIndex <$> (i:is))- where- renderIndex (IndexName n) = n----- | Get info about known snapshots given a pattern and repo name.-getSnapshots- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoName- -> SnapshotSelection- -> m (Either EsError [SnapshotInfo])-getSnapshots (SnapshotRepoName repoName) sel =- fmap (fmap unSIs) . parseEsResponse =<< get =<< url- where- url = joinPath ["_snapshot", repoName, snapPath]- snapPath = case sel of- AllSnapshots -> "_all"- SnapshotList (s :| ss) -> T.intercalate "," (renderPath <$> (s:ss))- renderPath (SnapPattern t) = t- renderPath (ExactSnap (SnapshotName t)) = t---newtype SIs = SIs { unSIs :: [SnapshotInfo] }---instance FromJSON SIs where- parseJSON = withObject "Collection of SnapshotInfo" parse- where- parse o = SIs <$> o .: "snapshots"----- | Delete a snapshot. Cancels if it is running.-deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply-deleteSnapshot (SnapshotRepoName repoName) (SnapshotName snapName) =- delete =<< url- where- url = joinPath ["_snapshot", repoName, snapName]----- | Restore a snapshot to the cluster See--- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/modules-snapshots.html#_restore>--- for more details.-restoreSnapshot- :: MonadBH m- => SnapshotRepoName- -> SnapshotName- -> SnapshotRestoreSettings- -- ^ Start with 'defaultSnapshotRestoreSettings' and customize- -- from there for reasonable defaults.- -> m Reply-restoreSnapshot (SnapshotRepoName repoName)- (SnapshotName snapName)- SnapshotRestoreSettings {..} = bindM2 post url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", repoName, snapName, "_restore"]- params = [("wait_for_completion", Just (boolQP snapRestoreWaitForCompletion))]- body = encode (object prs)--- prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapRestoreIndices- , Just ("ignore_unavailable" .= snapRestoreIgnoreUnavailable)- , Just ("include_global_state" .= snapRestoreIncludeGlobalState)- , ("rename_pattern" .=) <$> snapRestoreRenamePattern- , ("rename_replacement" .=) . renderTokens <$> snapRestoreRenameReplacement- , Just ("include_aliases" .= snapRestoreIncludeAliases)- , ("index_settings" .= ) <$> snapRestoreIndexSettingsOverrides- , ("ignore_index_settings" .= ) <$> snapRestoreIgnoreIndexSettings- ]- renderTokens (t :| ts) = mconcat (renderToken <$> (t:ts))- renderToken (RRTLit t) = t- renderToken RRSubWholeMatch = "$0"- renderToken (RRSubGroup g) = T.pack (show (rrGroupRefNum g))---getNodesInfo- :: ( MonadBH m- , MonadThrow m- )- => NodeSelection- -> m (Either EsError NodesInfo)-getNodesInfo sel = parseEsResponse =<< get =<< url- where- url = joinPath ["_nodes", selectionSeg]- selectionSeg = case sel of- LocalNode -> "_local"- NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))- AllNodes -> "_all"- selToSeg (NodeByName (NodeName n)) = n- selToSeg (NodeByFullNodeId (FullNodeId i)) = i- selToSeg (NodeByHost (Server s)) = s- selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v--getNodesStats- :: ( MonadBH m- , MonadThrow m- )- => NodeSelection- -> m (Either EsError NodesStats)-getNodesStats sel = parseEsResponse =<< get =<< url- where- url = joinPath ["_nodes", selectionSeg, "stats"]- selectionSeg = case sel of- LocalNode -> "_local"- NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))- AllNodes -> "_all"- selToSeg (NodeByName (NodeName n)) = n- selToSeg (NodeByFullNodeId (FullNodeId i)) = i- selToSeg (NodeByHost (Server s)) = s- selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v---- | 'createIndex' will create an index given a 'Server', 'IndexSettings', and an 'IndexName'.-createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply-createIndex indexSettings (IndexName indexName) =- bindM2 put url (return body)- where url = joinPath [indexName]- body = Just $ encode indexSettings----- | 'deleteIndex' will delete an index given a 'Server', and an 'IndexName'.-deleteIndex :: MonadBH m => IndexName -> m Reply-deleteIndex (IndexName indexName) =- delete =<< joinPath [indexName]---- | 'updateIndexSettings' will apply a non-empty list of setting updates to an index-updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply-updateIndexSettings updates (IndexName indexName) =- bindM2 put url (return body)- where- url = joinPath [indexName, "_settings"]- body = Just (encode jsonBody)- jsonBody = Object (deepMerge [u | Object u <- toJSON <$> toList updates])---getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName- -> m (Either EsError IndexSettingsSummary)-getIndexSettings (IndexName indexName) =- parseEsResponse =<< get =<< url- where- url = joinPath [indexName, "_settings"]----- | 'optimizeIndex' will optimize a single index, list of indexes or--- all indexes. Note that this call will block until finishing but--- will continue even if the request times out. Concurrent requests to--- optimize an index while another is performing will block until the--- previous one finishes. For more information see--- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-optimize.html>. Nothing--- worthwhile comes back in the reply body, so matching on the status--- should suffice.------ 'optimizeIndex' with a maxNumSegments of 1 and onlyExpungeDeletes--- to True is the main way to release disk space back to the OS being--- held by deleted documents.------ Note that this API was deprecated in Elasticsearch 2.1 for the--- almost completely identical forcemerge API. Adding support to that--- API would be trivial but due to the significant breaking changes,--- this library cannot currently be used with >= 2.0, so that feature was omitted.-optimizeIndex :: MonadBH m => IndexSelection -> IndexOptimizationSettings -> m Reply-optimizeIndex ixs IndexOptimizationSettings {..} =- bindM2 post url (return body)- where url = addQuery params <$> joinPath [indexName, "_optimize"]- params = catMaybes [ ("max_num_segments",) . Just . showText <$> maxNumSegments- , Just ("only_expunge_deletes", Just (boolQP onlyExpungeDeletes))- , Just ("flush", Just (boolQP flushAfterOptimize))- ]- indexName = indexSelectionName ixs- body = Nothing---deepMerge :: [Object] -> Object-deepMerge = LS.foldl' go mempty- where go acc = LS.foldl' go' acc . HM.toList- go' acc (k, v) = HM.insertWith merge k v acc- merge (Object a) (Object b) = Object (deepMerge [a, b])- merge _ b = b---statusCodeIs :: (Int, Int) -> Reply -> Bool-statusCodeIs r resp = inRange r $ NHTS.statusCode (responseStatus resp)--respIsTwoHunna :: Reply -> Bool-respIsTwoHunna = statusCodeIs (200, 299)--existentialQuery :: MonadBH m => Text -> m (Reply, Bool)-existentialQuery url = do- reply <- head url- return (reply, respIsTwoHunna reply)----- | Tries to parse a response body as the expected type @a@ and--- failing that tries to parse it as an EsError. All well-formed, JSON--- responses from elasticsearch should fall into these two--- categories. If they don't, a 'EsProtocolException' will be--- thrown. If you encounter this, please report the full body it--- reports along with your Elasticsearch verison.-parseEsResponse :: (MonadThrow m, FromJSON a) => Reply- -> m (Either EsError a)-parseEsResponse reply- | respIsTwoHunna reply = case eitherDecode body of- Right a -> return (Right a)- Left _ -> tryParseError- | otherwise = tryParseError- where body = responseBody reply- tryParseError = case eitherDecode body of- Right e -> return (Left e)- -- this case should not be possible- Left _ -> explode- explode = throwM (EsProtocolException body)---- | 'indexExists' enables you to check if an index exists. Returns 'Bool'--- in IO-indexExists :: MonadBH m => IndexName -> m Bool-indexExists (IndexName indexName) = do- (_, exists) <- existentialQuery =<< joinPath [indexName]- return exists---- | 'refreshIndex' will force a refresh on an index. You must--- do this if you want to read what you wrote.-refreshIndex :: MonadBH m => IndexName -> m Reply-refreshIndex (IndexName indexName) =- bindM2 post url (return Nothing)- where url = joinPath [indexName, "_refresh"]---- | Block until the index becomes available for indexing--- documents. This is useful for integration tests in which--- indices are rapidly created and deleted.-waitForYellowIndex :: MonadBH m => IndexName -> m Reply-waitForYellowIndex (IndexName indexName) = get =<< url- where url = addQuery q <$> joinPath ["_cluster","health",indexName]- q = [("wait_for_status",Just "yellow"),("timeout",Just "10s")]--stringifyOCIndex :: OpenCloseIndex -> Text-stringifyOCIndex oci = case oci of- OpenIndex -> "_open"- CloseIndex -> "_close"--openOrCloseIndexes :: MonadBH m => OpenCloseIndex -> IndexName -> m Reply-openOrCloseIndexes oci (IndexName indexName) =- bindM2 post url (return Nothing)- where ociString = stringifyOCIndex oci- url = joinPath [indexName, ociString]---- | 'openIndex' opens an index given a 'Server' and an 'IndexName'. Explained in further detail at--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>-openIndex :: MonadBH m => IndexName -> m Reply-openIndex = openOrCloseIndexes OpenIndex---- | 'closeIndex' closes an index given a 'Server' and an 'IndexName'. Explained in further detail at--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>-closeIndex :: MonadBH m => IndexName -> m Reply-closeIndex = openOrCloseIndexes CloseIndex---- | 'listIndices' returns a list of all index names on a given 'Server'-listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]-listIndices =- parse . responseBody =<< get =<< url- where- url = joinPath ["_cat/indices?format=json"]- parse body = maybe (throwM (EsProtocolException body)) return $ do- vals <- decode body- forM vals $ \val ->- case val of- Object obj -> do- indexVal <- HM.lookup "index" obj- case indexVal of- String txt -> Just (IndexName txt)- _ -> Nothing- _ -> Nothing---- | 'updateIndexAliases' updates the server's index alias--- table. Operations are atomic. Explained in further detail at--- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html>-updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply-updateIndexAliases actions = bindM2 post url (return body)- where url = joinPath ["_aliases"]- body = Just (encode bodyJSON)- bodyJSON = object [ "actions" .= toList actions]---- | Get all aliases configured on the server.-getIndexAliases :: (MonadBH m, MonadThrow m)- => m (Either EsError IndexAliasesSummary)-getIndexAliases = parseEsResponse =<< get =<< url- where url = joinPath ["_aliases"]---- | 'putTemplate' creates a template given an 'IndexTemplate' and a 'TemplateName'.--- Explained in further detail at--- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html>-putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply-putTemplate indexTemplate (TemplateName templateName) =- bindM2 put url (return body)- where url = joinPath ["_template", templateName]- body = Just $ encode indexTemplate---- | 'templateExists' checks to see if a template exists.-templateExists :: MonadBH m => TemplateName -> m Bool-templateExists (TemplateName templateName) = do- (_, exists) <- existentialQuery =<< joinPath ["_template", templateName]- return exists---- | 'deleteTemplate' is an HTTP DELETE and deletes a template.-deleteTemplate :: MonadBH m => TemplateName -> m Reply-deleteTemplate (TemplateName templateName) =- delete =<< joinPath ["_template", templateName]---- | 'putMapping' is an HTTP PUT and has upsert semantics. Mappings are schemas--- for documents in indexes.-putMapping :: (MonadBH m, ToJSON a) => IndexName- -> MappingName -> a -> m Reply-putMapping (IndexName indexName) (MappingName mappingName) mapping =- bindM2 put url (return body)- where url = joinPath [indexName, "_mapping", mappingName]- -- "_mapping" and mappingName above were originally transposed- -- erroneously. The correct API call is: "/INDEX/_mapping/MAPPING_NAME"- body = Just $ encode mapping---- | 'deleteMapping' is an HTTP DELETE and deletes a mapping for a given index.--- Mappings are schemas for documents in indexes.-deleteMapping :: MonadBH m => IndexName -> MappingName -> m Reply-deleteMapping (IndexName indexName)- (MappingName mappingName) =- -- "_mapping" and mappingName below were originally transposed- -- erroneously. The correct API call is: "/INDEX/_mapping/MAPPING_NAME"- delete =<< joinPath [indexName, "_mapping", mappingName]--versionCtlParams :: IndexDocumentSettings -> [(Text, Maybe Text)]-versionCtlParams cfg =- case idsVersionControl cfg of- NoVersionControl -> []- InternalVersion v -> versionParams v "internal"- ExternalGT (ExternalDocVersion v) -> versionParams v "external_gt"- ExternalGTE (ExternalDocVersion v) -> versionParams v "external_gte"- ForceVersion (ExternalDocVersion v) -> versionParams v "force"- where- vt = showText . docVersionNumber- versionParams v t = [ ("version", Just $ vt v)- , ("version_type", Just t)- ]---- | 'indexDocument' is the primary way to save a single document in--- Elasticsearch. The document itself is simply something we can--- convert into a JSON 'Value'. The 'DocId' will function as the--- primary key for the document.-indexDocument :: (ToJSON doc, MonadBH m) => IndexName -> MappingName- -> IndexDocumentSettings -> doc -> DocId -> m Reply-indexDocument (IndexName indexName)- (MappingName mappingName) cfg document (DocId docId) =- bindM2 put url (return body)- where url = addQuery params <$> joinPath [indexName, mappingName, docId]- parentParams = case idsParent cfg of- Nothing -> []- Just (DocumentParent (DocId p)) -> [ ("parent", Just p) ]- params = versionCtlParams cfg ++ parentParams- body = Just (encode document)---- | 'updateDocument' provides a way to perform an partial update of a--- an already indexed document.-updateDocument :: (ToJSON patch, MonadBH m) => IndexName -> MappingName- -> IndexDocumentSettings -> patch -> DocId -> m Reply-updateDocument (IndexName indexName)- (MappingName mappingName) cfg patch (DocId docId) =- bindM2 post url (return body)- where url = addQuery (versionCtlParams cfg) <$>- joinPath [indexName, mappingName, docId, "_update"]- body = Just (encode $ object ["doc" .= toJSON patch])---- | 'deleteDocument' is the primary way to delete a single document.-deleteDocument :: MonadBH m => IndexName -> MappingName- -> DocId -> m Reply-deleteDocument (IndexName indexName)- (MappingName mappingName) (DocId docId) =- delete =<< joinPath [indexName, mappingName, docId]---- | 'bulk' uses--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html Elasticsearch's bulk API>--- to perform bulk operations. The 'BulkOperation' data type encodes the--- index\/update\/delete\/create operations. You pass a 'V.Vector' of 'BulkOperation's--- and a 'Server' to 'bulk' in order to send those operations up to your Elasticsearch--- server to be performed. I changed from [BulkOperation] to a Vector due to memory overhead.-bulk :: MonadBH m => V.Vector BulkOperation -> m Reply-bulk bulkOps = bindM2 post url (return body)- where url = joinPath ["_bulk"]- body = Just $ encodeBulkOperations bulkOps---- | 'encodeBulkOperations' is a convenience function for dumping a vector of 'BulkOperation'--- into an 'L.ByteString'-encodeBulkOperations :: V.Vector BulkOperation -> L.ByteString-encodeBulkOperations stream = collapsed where- blobs = fmap encodeBulkOperation stream- mashedTaters = mash (mempty :: Builder) blobs- collapsed = toLazyByteString $ mappend mashedTaters (byteString "\n")--mash :: Builder -> V.Vector L.ByteString -> Builder-mash =- V.foldl' (\b x -> b <> byteString "\n" <> lazyByteString x)--mkBulkStreamValue :: Text -> Text -> Text -> Text -> Value-mkBulkStreamValue operation indexName mappingName docId =- object [operation .=- object [ "_index" .= indexName- , "_type" .= mappingName- , "_id" .= docId]]---- | 'encodeBulkOperation' is a convenience function for dumping a single 'BulkOperation'--- into an 'L.ByteString'-encodeBulkOperation :: BulkOperation -> L.ByteString-encodeBulkOperation (BulkIndex (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "index" indexName mappingName docId- blob = encode metadata `mappend` "\n" `mappend` encode value--encodeBulkOperation (BulkCreate (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "create" indexName mappingName docId- blob = encode metadata `mappend` "\n" `mappend` encode value--encodeBulkOperation (BulkDelete (IndexName indexName)- (MappingName mappingName)- (DocId docId)) = blob- where metadata = mkBulkStreamValue "delete" indexName mappingName docId- blob = encode metadata--encodeBulkOperation (BulkUpdate (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "update" indexName mappingName docId- doc = object ["doc" .= value]- blob = encode metadata `mappend` "\n" `mappend` encode doc---- | 'getDocument' is a straight-forward way to fetch a single document from--- Elasticsearch using a 'Server', 'IndexName', 'MappingName', and a 'DocId'.--- The 'DocId' is the primary key for your Elasticsearch document.-getDocument :: MonadBH m => IndexName -> MappingName- -> DocId -> m Reply-getDocument (IndexName indexName)- (MappingName mappingName) (DocId docId) =- get =<< joinPath [indexName, mappingName, docId]---- | 'documentExists' enables you to check if a document exists. Returns 'Bool'--- in IO-documentExists :: MonadBH m => IndexName -> MappingName- -> Maybe DocumentParent -> DocId -> m Bool-documentExists (IndexName indexName) (MappingName mappingName)- parent (DocId docId) = do- (_, exists) <- existentialQuery =<< url- return exists- where url = addQuery params <$> joinPath [indexName, mappingName, docId]- parentParam = fmap (\(DocumentParent (DocId p)) -> p) parent- params = LS.filter (\(_, v) -> isJust v) [("parent", parentParam)]--dispatchSearch :: MonadBH m => Text -> Search -> m Reply-dispatchSearch url search = post url' (Just (encode search))- where url' = appendSearchTypeParam url (searchType search)---- | 'searchAll', given a 'Search', will perform that search against all indexes--- on an Elasticsearch server. Try to avoid doing this if it can be helped.-searchAll :: MonadBH m => Search -> m Reply-searchAll = bindM2 dispatchSearch url . return- where url = joinPath ["_search"]---- | 'searchByIndex', given a 'Search' and an 'IndexName', will perform that search--- against all mappings within an index on an Elasticsearch server.-searchByIndex :: MonadBH m => IndexName -> Search -> m Reply-searchByIndex (IndexName indexName) = bindM2 dispatchSearch url . return- where url = joinPath [indexName, "_search"]---- | 'searchByType', given a 'Search', 'IndexName', and 'MappingName', will perform that--- search against a specific mapping within an index on an Elasticsearch server.-searchByType :: MonadBH m => IndexName -> MappingName -> Search- -> m Reply-searchByType (IndexName indexName)- (MappingName mappingName) = bindM2 dispatchSearch url . return- where url = joinPath [indexName, mappingName, "_search"]---- | For a given search, request a scroll for efficient streaming of--- search results. Note that the search is put into 'SearchTypeScan'--- mode and thus results will not be sorted. Combine this with--- 'advanceScroll' to efficiently stream through the full result set-getInitialScroll :: MonadBH m => IndexName -> MappingName -> Search -> m (Maybe ScrollId)-getInitialScroll (IndexName indexName) (MappingName mappingName) search = do- let url = joinPath [indexName, mappingName, "_search"]- search' = search { searchType = SearchTypeScan }- resp' <- bindM2 dispatchSearch url (return search')- let msr = decode' $ responseBody resp' :: Maybe (SearchResult ())- msid = maybe Nothing scrollId msr- return msid--scroll' :: (FromJSON a, MonadBH m, MonadThrow m) => Maybe ScrollId -> m ([Hit a], Maybe ScrollId)-scroll' Nothing = return ([], Nothing)-scroll' (Just sid) = do- res <- advanceScroll sid 60- case res of- Right SearchResult {..} -> return (hits searchHits, scrollId)- Left _ -> return ([], Nothing)---- | Use the given scroll to fetch the next page of documents. If there are no--- further pages, 'SearchResult.searchHits.hits' will be '[]'.-advanceScroll- :: ( FromJSON a- , MonadBH m- , MonadThrow m- )- => ScrollId- -> NominalDiffTime- -- ^ How long should the snapshot of data be kept around? This timeout is updated every time 'advanceScroll' is used, so don't feel the need to set it to the entire duration of your search processing. Note that durations < 1s will be rounded up. Also note that 'NominalDiffTime' is an instance of Num so literals like 60 will be interpreted as seconds. 60s is a reasonable default.- -> m (Either EsError (SearchResult a))-advanceScroll (ScrollId sid) scroll = do- url <- joinPath ["_search/scroll?scroll=" <> scrollTime]- parseEsResponse =<< post url (Just . L.fromStrict $ T.encodeUtf8 sid)- where scrollTime = showText secs <> "s"- secs :: Integer- secs = round scroll--simpleAccumulator :: (FromJSON a, MonadBH m, MonadThrow m) => [Hit a] -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)-simpleAccumulator oldHits (newHits, Nothing) = return (oldHits ++ newHits, Nothing)-simpleAccumulator oldHits ([], _) = return (oldHits, Nothing)-simpleAccumulator oldHits (newHits, msid) = do- (newHits', msid') <- scroll' msid- simpleAccumulator (oldHits ++ newHits) (newHits', msid')---- | 'scanSearch' uses the 'scan&scroll' API of elastic,--- for a given 'IndexName' and 'MappingName'. Note that this will--- consume the entire search result set and will be doing O(n) list--- appends so this may not be suitable for large result sets. In that--- case, 'getInitialScroll' and 'advanceScroll' are good low level--- tools. You should be able to hook them up trivially to conduit,--- pipes, or your favorite streaming IO abstraction of choice. Note--- that ordering on the search would destroy performance and thus is--- ignored.-scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName -> MappingName -> Search -> m [Hit a]-scanSearch indexName mappingName search = do- msid <- getInitialScroll indexName mappingName search- (hits, msid') <- scroll' msid- (totalHits, _) <- simpleAccumulator [] (hits, msid')- return totalHits---- | 'mkSearch' is a helper function for defaulting additional fields of a 'Search'--- to Nothing in case you only care about your 'Query' and 'Filter'. Use record update--- syntax if you want to add things like aggregations or highlights while still using--- this helper function.-mkSearch :: Maybe Query -> Maybe Filter -> Search-mkSearch query filter = Search query filter Nothing Nothing Nothing False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing---- | 'mkAggregateSearch' is a helper function that defaults everything in a 'Search' except for--- the 'Query' and the 'Aggregation'.-mkAggregateSearch :: Maybe Query -> Aggregations -> Search-mkAggregateSearch query mkSearchAggs = Search query Nothing Nothing (Just mkSearchAggs) Nothing False (From 0) (Size 0) SearchTypeQueryThenFetch Nothing Nothing Nothing---- | 'mkHighlightSearch' is a helper function that defaults everything in a 'Search' except for--- the 'Query' and the 'Aggregation'.-mkHighlightSearch :: Maybe Query -> Highlights -> Search-mkHighlightSearch query searchHighlights = Search query Nothing Nothing Nothing (Just searchHighlights) False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing---- | 'pageSearch' is a helper function that takes a search and assigns the from--- and size fields for the search. The from parameter defines the offset--- from the first result you want to fetch. The size parameter allows you to--- configure the maximum amount of hits to be returned.-pageSearch :: From -- ^ The result offset- -> Size -- ^ The number of results to return- -> Search -- ^ The current seach- -> Search -- ^ The paged search-pageSearch resultOffset pageSize search = search { from = resultOffset, size = pageSize }--parseUrl' :: MonadThrow m => Text -> m Request-parseUrl' t = parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack t))---- | Was there an optimistic concurrency control conflict when--- indexing a document?-isVersionConflict :: Reply -> Bool-isVersionConflict = statusCheck (== 409)--isSuccess :: Reply -> Bool-isSuccess = statusCheck (inRange (200, 299))--isCreated :: Reply -> Bool-isCreated = statusCheck (== 201)--statusCheck :: (Int -> Bool) -> Reply -> Bool-statusCheck prd = prd . NHTS.statusCode . responseStatus---- | This is a hook that can be set via the 'bhRequestHook' function--- that will authenticate all requests using an HTTP Basic--- Authentication header. Note that it is *strongly* recommended that--- this option only be used over an SSL connection.------ >> (mkBHEnv myServer myManager) { bhRequestHook = basicAuthHook (EsUsername "myuser") (EsPassword "mypass") }-basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request-basicAuthHook (EsUsername u) (EsPassword p) = return . applyBasicAuth u' p'- where u' = T.encodeUtf8 u- p' = T.encodeUtf8 p---boolQP :: Bool -> Text-boolQP True = "true"-boolQP False = "false"
− src/Database/V1/Bloodhound/Internal/Aggregation.hs
@@ -1,416 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V1.Bloodhound.Internal.Aggregation where--import Bloodhound.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.Map.Strict as M-import qualified Data.Text as T--import Database.V1.Bloodhound.Internal.Client-import Database.V1.Bloodhound.Internal.Highlight (HitHighlight)-import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query-import Database.V1.Bloodhound.Internal.Sort---type Aggregations = M.Map Text Aggregation--emptyAggregations :: Aggregations-emptyAggregations = M.empty--mkAggregations :: Text -> Aggregation -> Aggregations-mkAggregations name aggregation = M.insert name aggregation emptyAggregations--data Aggregation = TermsAgg TermsAggregation- | CardinalityAgg CardinalityAggregation- | DateHistogramAgg DateHistogramAggregation- | ValueCountAgg ValueCountAggregation- | FilterAgg FilterAggregation- | DateRangeAgg DateRangeAggregation- | MissingAgg MissingAggregation- | TopHitsAgg TopHitsAggregation- deriving (Eq, Show)---instance ToJSON Aggregation where- toJSON (TermsAgg (TermsAggregation term include exclude order minDocCount size shardSize collectMode executionHint termAggs)) =- omitNulls ["terms" .= omitNulls [ toJSON' term,- "include" .= include,- "exclude" .= exclude,- "order" .= order,- "min_doc_count" .= minDocCount,- "size" .= size,- "shard_size" .= shardSize,- "collect_mode" .= collectMode,- "execution_hint" .= executionHint- ],- "aggs" .= termAggs ]- where- toJSON' x = case x of { Left y -> "field" .= y; Right y -> "script" .= y }-- toJSON (CardinalityAgg (CardinalityAggregation field precisionThreshold)) =- object ["cardinality" .= omitNulls [ "field" .= field,- "precisionThreshold" .= precisionThreshold- ]- ]-- toJSON (DateHistogramAgg (DateHistogramAggregation field interval format preZone postZone preOffset postOffset dateHistoAggs)) =- omitNulls ["date_histogram" .= omitNulls [ "field" .= field,- "interval" .= interval,- "format" .= format,- "pre_zone" .= preZone,- "post_zone" .= postZone,- "pre_offset" .= preOffset,- "post_offset" .= postOffset- ],- "aggs" .= dateHistoAggs ]- toJSON (ValueCountAgg a) = object ["value_count" .= v]- where v = case a of- (FieldValueCount (FieldName n)) -> object ["field" .= n]- (ScriptValueCount (Script s)) -> object ["script" .= s]- toJSON (FilterAgg (FilterAggregation filt ags)) =- omitNulls [ "filter" .= filt- , "aggs" .= ags]- toJSON (DateRangeAgg a) = object [ "date_range" .= a- ]- toJSON (MissingAgg (MissingAggregation{..})) =- object ["missing" .= object ["field" .= maField]]-- toJSON (TopHitsAgg (TopHitsAggregation mfrom msize msort)) =- omitNulls ["top_hits" .= omitNulls [ "size" .= msize- , "from" .= mfrom- , "sort" .= msort- ]- ]--data TopHitsAggregation = TopHitsAggregation- { taFrom :: Maybe From- , taSize :: Maybe Size- , taSort :: Maybe Sort- } deriving (Eq, Show)--data MissingAggregation = MissingAggregation- { maField :: Text- } deriving (Eq, Show)--data TermsAggregation = TermsAggregation { term :: Either Text Text- , termInclude :: Maybe TermInclusion- , termExclude :: Maybe TermInclusion- , termOrder :: Maybe TermOrder- , termMinDocCount :: Maybe Int- , termSize :: Maybe Int- , termShardSize :: Maybe Int- , termCollectMode :: Maybe CollectionMode- , termExecutionHint :: Maybe ExecutionHint- , termAggs :: Maybe Aggregations- } deriving (Eq, Show)--data CardinalityAggregation = CardinalityAggregation { cardinalityField :: FieldName,- precisionThreshold :: Maybe Int- } deriving (Eq, Show)--data DateHistogramAggregation = DateHistogramAggregation { dateField :: FieldName- , dateInterval :: Interval- , dateFormat :: Maybe Text- -- pre and post deprecated in 1.5- , datePreZone :: Maybe Text- , datePostZone :: Maybe Text- , datePreOffset :: Maybe Text- , datePostOffset :: Maybe Text- , dateAggs :: Maybe Aggregations- } deriving (Eq, Show)---data DateRangeAggregation = DateRangeAggregation { draField :: FieldName- , draFormat :: Maybe Text- , draRanges :: NonEmpty DateRangeAggRange- } deriving (Eq, Show)--data DateRangeAggRange = DateRangeFrom DateMathExpr- | DateRangeTo DateMathExpr- | DateRangeFromAndTo DateMathExpr DateMathExpr deriving (Eq, Show)---- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html> for more information.-data ValueCountAggregation = FieldValueCount FieldName- | ScriptValueCount Script deriving (Eq, Show)---- | Single-bucket filter aggregations. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html#search-aggregations-bucket-filter-aggregation> for more information.-data FilterAggregation = FilterAggregation { faFilter :: Filter- , faAggs :: Maybe Aggregations} deriving (Eq, Show)--mkTermsAggregation :: Text -> TermsAggregation-mkTermsAggregation t = TermsAggregation (Left t) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing--mkTermsScriptAggregation :: Text -> TermsAggregation-mkTermsScriptAggregation t = TermsAggregation (Right t) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing--mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation-mkDateHistogram t i = DateHistogramAggregation t i Nothing Nothing Nothing Nothing Nothing Nothing--mkCardinalityAggregation :: FieldName -> CardinalityAggregation-mkCardinalityAggregation t = CardinalityAggregation t Nothing--data TermInclusion = TermInclusion Text- | TermPattern Text Text deriving (Eq, Show)--instance ToJSON TermInclusion where- toJSON (TermInclusion x) = toJSON x- toJSON (TermPattern pattern flags) =- omitNulls [ "pattern" .= pattern- , "flags" .= flags]--data TermOrder = TermOrder- { termSortField :: Text- , termSortOrder :: SortOrder } deriving (Eq, Show)--instance ToJSON TermOrder where- toJSON (TermOrder termSortField termSortOrder) =- object [termSortField .= termSortOrder]---data ExecutionHint = Ordinals- | GlobalOrdinals- | GlobalOrdinalsHash- | GlobalOrdinalsLowCardinality- | Map deriving (Eq, Show)--instance ToJSON ExecutionHint where- toJSON Ordinals = "ordinals"- toJSON GlobalOrdinals = "global_ordinals"- toJSON GlobalOrdinalsHash = "global_ordinals_hash"- toJSON GlobalOrdinalsLowCardinality = "global_ordinals_low_cardinality"- toJSON Map = "map"----- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math> for more information.-data DateMathExpr =- DateMathExpr DateMathAnchor [DateMathModifier]- deriving (Eq, Show)--instance ToJSON DateMathExpr where- toJSON (DateMathExpr a mods) = String (fmtA a <> mconcat (fmtMod <$> mods))- where fmtA DMNow = "now"- fmtA (DMDate date) = (T.pack $ showGregorian date) <> "||"- fmtMod (AddTime n u) = "+" <> showText n <> fmtU u- fmtMod (SubtractTime n u) = "-" <> showText n <> fmtU u- fmtMod (RoundDownTo u) = "/" <> fmtU u- fmtU DMYear = "y"- fmtU DMMonth = "M"- fmtU DMWeek = "w"- fmtU DMDay = "d"- fmtU DMHour = "h"- fmtU DMMinute = "m"- fmtU DMSecond = "s"---- | Starting point for a date range. This along with the 'DateMathModifiers' gets you the date ES will start from.-data DateMathAnchor =- DMNow- | DMDate Day- deriving (Eq, Show)--data DateMathModifier =- AddTime Int DateMathUnit- | SubtractTime Int DateMathUnit- | RoundDownTo DateMathUnit- deriving (Eq, Show)--data DateMathUnit =- DMYear- | DMMonth- | DMWeek- | DMDay- | DMHour- | DMMinute- | DMSecond- deriving (Eq, Show)--data CollectionMode = BreadthFirst- | DepthFirst deriving (Eq, Show)--type AggregationResults = M.Map Text Value--class BucketAggregation a where- key :: a -> BucketValue- docCount :: a -> Int- aggs :: a -> Maybe AggregationResults--data BucketValue = TextValue Text- | ScientificValue Scientific- | BoolValue Bool deriving (Show)--data Bucket a = Bucket { buckets :: [a]} deriving (Show)--data TermsResult = TermsResult { termKey :: BucketValue- , termsDocCount :: Int- , termsAggs :: Maybe AggregationResults } deriving (Show)--data DateHistogramResult = DateHistogramResult { dateKey :: Int- , dateKeyStr :: Maybe Text- , dateDocCount :: Int- , dateHistogramAggs :: Maybe AggregationResults } deriving (Show)--data DateRangeResult = DateRangeResult { dateRangeKey :: Text- , dateRangeFrom :: Maybe UTCTime- , dateRangeFromAsString :: Maybe Text- , dateRangeTo :: Maybe UTCTime- , dateRangeToAsString :: Maybe Text- , dateRangeDocCount :: Int- , dateRangeAggs :: Maybe AggregationResults } deriving (Show, Eq)--toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)-toTerms = toAggResult--toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)-toDateHistogram = toAggResult--toMissing :: Text -> AggregationResults -> Maybe MissingResult-toMissing = toAggResult--toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)-toTopHits = toAggResult--toAggResult :: (FromJSON a) => Text -> AggregationResults -> Maybe a-toAggResult t a = M.lookup t a >>= deserialize- where deserialize = parseMaybe parseJSON--instance BucketAggregation TermsResult where- key = termKey- docCount = termsDocCount- aggs = termsAggs--instance BucketAggregation DateHistogramResult where- key = TextValue . showText . dateKey- docCount = dateDocCount- aggs = dateHistogramAggs--instance BucketAggregation DateRangeResult where- key = TextValue . dateRangeKey- docCount = dateRangeDocCount- aggs = dateRangeAggs--instance (FromJSON a) => FromJSON (Bucket a) where- parseJSON (Object v) = Bucket <$>- v .: "buckets"- parseJSON _ = mempty--instance FromJSON BucketValue where- parseJSON (String t) = return $ TextValue t- parseJSON (Number s) = return $ ScientificValue s- parseJSON (Bool b) = return $ BoolValue b- parseJSON _ = mempty--instance FromJSON MissingResult where- parseJSON = withObject "MissingResult" parse- where parse v = MissingResult <$> v .: "doc_count"--instance FromJSON TermsResult where- parseJSON (Object v) = TermsResult <$>- v .: "key" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v ["key", "doc_count"])- parseJSON _ = mempty--instance FromJSON DateHistogramResult where- parseJSON (Object v) = DateHistogramResult <$>- v .: "key" <*>- v .:? "key_as_string" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v [ "key"- , "doc_count"- , "key_as_string"- ]- )- parseJSON _ = mempty--instance FromJSON DateRangeResult where- parseJSON = withObject "DateRangeResult" parse- where parse v = DateRangeResult <$>- v .: "key" <*>- (fmap posixMS <$> v .:? "from") <*>- v .:? "from_as_string" <*>- (fmap posixMS <$> v .:? "to") <*>- v .:? "to_as_string" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v [ "key"- , "from"- , "from_as_string"- , "to"- , "to_as_string"- , "doc_count"- ]- )--instance (FromJSON a) => FromJSON (TopHitResult a) where- parseJSON (Object v) = TopHitResult <$>- v .: "hits"- parseJSON _ = fail "Failure in FromJSON (TopHitResult a)"--data MissingResult = MissingResult { missingDocCount :: Int } deriving (Show)--data TopHitResult a = TopHitResult { tarHits :: (SearchHits a)- } deriving Show--data SearchHits a =- SearchHits { hitsTotal :: Int- , maxScore :: Score- , hits :: [Hit a] } deriving (Eq, Show)--instance Semigroup (SearchHits a) where- (SearchHits ta ma ha) <> (SearchHits tb mb hb) = SearchHits (ta + tb) (max ma mb) (ha <> hb)--instance Monoid (SearchHits a) where- mempty = SearchHits 0 Nothing mempty- mappend = (<>)--data Hit a =- Hit { hitIndex :: IndexName- , hitType :: MappingName- , hitDocId :: DocId- , hitScore :: Score- , hitSource :: Maybe a- , hitHighlight :: Maybe HitHighlight } deriving (Eq, Show)---- Try to get an AggregationResults when we don't know the--- field name. We filter out the known keys to try to minimize the noise.-getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults-getNamedSubAgg o knownKeys = maggRes- where unknownKeys = HM.filterWithKey (\k _ -> k `notElem` knownKeys) o- maggRes- | HM.null unknownKeys = Nothing- | otherwise = Just . M.fromList $ HM.toList unknownKeys--instance ToJSON CollectionMode where- toJSON BreadthFirst = "breadth_first"- toJSON DepthFirst = "depth_first"--instance ToJSON DateRangeAggregation where- toJSON DateRangeAggregation {..} =- omitNulls [ "field" .= draField- , "format" .= draFormat- , "ranges" .= toList draRanges- ]--instance (FromJSON a) => FromJSON (SearchHits a) where- parseJSON (Object v) = SearchHits <$>- v .: "total" <*>- v .: "max_score" <*>- v .: "hits"- parseJSON _ = empty--instance ToJSON DateRangeAggRange where- toJSON (DateRangeFrom e) = object [ "from" .= e ]- toJSON (DateRangeTo e) = object [ "to" .= e ]- toJSON (DateRangeFromAndTo f t) = object [ "from" .= f, "to" .= t ]--instance (FromJSON a) => FromJSON (Hit a) where- parseJSON (Object v) = Hit <$>- v .: "_index" <*>- v .: "_type" <*>- v .: "_id" <*>- v .: "_score" <*>- v .:? "_source" <*>- v .:? "highlight"- parseJSON _ = empty
− src/Database/V1/Bloodhound/Internal/Client.hs
@@ -1,2341 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE UndecidableInstances #-}--module Database.V1.Bloodhound.Internal.Client where--import Bloodhound.Import--import Control.Applicative as A-import qualified Data.HashMap.Strict as HM-import Data.Text (Text)-import qualified Data.Text as T-import qualified Data.Traversable as DT-import qualified Data.Vector as V-import qualified Data.Version as Vers-import GHC.Enum-import Network.HTTP.Client-import qualified Text.ParserCombinators.ReadP as RP-import Text.Read (Read (..))-import qualified Text.Read as TR--import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query-import Database.V1.Bloodhound.Internal.StringlyTyped---{-| Common environment for Elasticsearch calls. Connections will be- pipelined according to the provided HTTP connection manager.--}-data BHEnv = BHEnv { bhServer :: Server- , bhManager :: Manager- , bhRequestHook :: Request -> IO Request- -- ^ Low-level hook that is run before every request is sent. Used to implement custom authentication strategies. Defaults to 'return' with 'mkBHEnv'.- }--instance (Functor m, Applicative m, MonadIO m) => MonadBH (ReaderT BHEnv m) where- getBHEnv = ask--{-| 'Server' is used with the client functions to point at the ES instance--}-newtype Server = Server Text deriving (Eq, Show, FromJSON)--{-| All API calls to Elasticsearch operate within- MonadBH- . The idea is that it can be easily embedded in your- own monad transformer stack. A default instance for a ReaderT and- alias 'BH' is provided for the simple case.--}-class (Functor m, A.Applicative m, MonadIO m) => MonadBH m where- getBHEnv :: m BHEnv---- $setup--- >>> :set -XOverloadedStrings--- >>> import Data.Aeson--- >>> import Database.V1.Bloodhound--- >>> let testServer = (Server "http://localhost:9200")--- >>> let testIndex = IndexName "twitter"--- >>> let testMapping = MappingName "tweet"--- >>> let defaultIndexSettings = IndexSettings (ShardCount 3) (ReplicaCount 2)---- defaultIndexSettings is exported by Database.Bloodhound as well--- no trailing slashes in servers, library handles building the path.---- | Create a 'BHEnv' with all optional fields defaulted. HTTP hook--- will be a noop. You can use the exported fields to customize it further, e.g.:------ >> (mkBHEnv myServer myManager) { bhRequestHook = customHook }-mkBHEnv :: Server -> Manager -> BHEnv-mkBHEnv s m = BHEnv s m return--newtype BH m a = BH {- unBH :: ReaderT BHEnv m a- } deriving ( Functor- , A.Applicative- , Monad- , MonadIO- , MonadState s- , MonadWriter w- , MonadError e- , Alternative- , MonadPlus- , MonadFix- , MonadThrow- , MonadCatch- , MonadMask)--instance MonadTrans BH where- lift = BH . lift--instance (MonadReader r m) => MonadReader r (BH m) where- ask = lift ask- local f (BH (ReaderT m)) = BH $ ReaderT $ \r ->- local f (m r)--instance (Functor m, Applicative m, MonadIO m) => MonadBH (BH m) where- getBHEnv = BH getBHEnv--runBH :: BHEnv -> BH m a -> m a-runBH e f = runReaderT (unBH f) e--{-| 'Version' is embedded in 'Status' -}-data Version = Version { number :: VersionNumber- , build_hash :: BuildHash- , build_timestamp :: UTCTime- , build_snapshot :: Bool- , lucene_version :: VersionNumber } deriving (Eq, Show)--instance ToJSON Version where- toJSON Version {..} = object ["number" .= number- ,"build_hash" .= build_hash- ,"build_timestamp" .= build_timestamp- ,"build_snapshot" .= build_snapshot- ,"lucene_version" .= lucene_version]--instance FromJSON Version where- parseJSON = withObject "Version" parse- where parse o = Version- <$> o .: "number"- <*> o .: "build_hash"- <*> o .: "build_timestamp"- <*> o .: "build_snapshot"- <*> o .: "lucene_version"---- | Traditional software versioning number-newtype VersionNumber = VersionNumber { versionNumber :: Vers.Version- } deriving (Eq, Show, Ord)--{-| 'Status' is a data type for describing the JSON body returned by- Elasticsearch when you query its status. This was deprecated in 1.2.0.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-status.html#indices-status>--}--data Status = Status { ok :: Maybe Bool- , status :: Int- , name :: Text- , version :: Version- , tagline :: Text } deriving (Eq, Show)--instance FromJSON Status where- parseJSON (Object v) = Status <$>- v .:? "ok" <*>- (v .:? "status" .!= 200) <*>- v .: "name" <*>- v .: "version" <*>- v .: "tagline"- parseJSON _ = empty--{-| 'IndexSettings' is used to configure the shards and replicas when you create- an Elasticsearch Index.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>--}--data IndexSettings =- IndexSettings { indexShards :: ShardCount- , indexReplicas :: ReplicaCount } deriving (Eq, Show)--{-| 'defaultIndexSettings' is an 'IndexSettings' with 3 shards and 2 replicas. -}-defaultIndexSettings :: IndexSettings-defaultIndexSettings = IndexSettings (ShardCount 3) (ReplicaCount 2)---{-| 'IndexOptimizationSettings' is used to configure index optimization. See- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-optimize.html>- for more info.--}-data IndexOptimizationSettings =- IndexOptimizationSettings { maxNumSegments :: Maybe Int- -- ^ Number of segments to optimize to. 1 will fully optimize the index. If omitted, the default behavior is to only optimize if the server deems it necessary.- , onlyExpungeDeletes :: Bool- -- ^ Should the optimize process only expunge segments with deletes in them? If the purpose of the optimization is to free disk space, this should be set to True.- , flushAfterOptimize :: Bool- -- ^ Should a flush be performed after the optimize.- } deriving (Eq, Show)---{-| 'defaultIndexOptimizationSettings' implements the default settings that- Elasticsearch uses for index optimization. 'maxNumSegments' is Nothing,- 'onlyExpungeDeletes' is False, and flushAfterOptimize is True.--}-defaultIndexOptimizationSettings :: IndexOptimizationSettings-defaultIndexOptimizationSettings = IndexOptimizationSettings Nothing False True--{-| 'UpdatableIndexSetting' are settings which may be updated after an index is created.-- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html>--}-data UpdatableIndexSetting = NumberOfReplicas ReplicaCount- -- ^ The number of replicas each shard has.- | AutoExpandReplicas ReplicaBounds- | BlocksReadOnly Bool- -- ^ Set to True to have the index read only. False to allow writes and metadata changes.- | BlocksRead Bool- -- ^ Set to True to disable read operations against the index.- | BlocksWrite Bool- -- ^ Set to True to disable write operations against the index.- | BlocksMetaData Bool- -- ^ Set to True to disable metadata operations against the index.- | RefreshInterval NominalDiffTime- -- ^ The async refresh interval of a shard- | IndexConcurrency Int- | FailOnMergeFailure Bool- | TranslogFlushThresholdOps Int- -- ^ When to flush on operations.- | TranslogFlushThresholdSize Bytes- -- ^ When to flush based on translog (bytes) size.- | TranslogFlushThresholdPeriod NominalDiffTime- -- ^ When to flush based on a period of not flushing.- | TranslogDisableFlush Bool- -- ^ Disables flushing. Note, should be set for a short interval and then enabled.- | CacheFilterMaxSize (Maybe Bytes)- -- ^ The maximum size of filter cache (per segment in shard).- | CacheFilterExpire (Maybe NominalDiffTime)- -- ^ The expire after access time for filter cache.- | GatewaySnapshotInterval NominalDiffTime- -- ^ The gateway snapshot interval (only applies to shared gateways).- | RoutingAllocationInclude (NonEmpty NodeAttrFilter)- -- ^ A node matching any rule will be allowed to host shards from the index.- | RoutingAllocationExclude (NonEmpty NodeAttrFilter)- -- ^ A node matching any rule will NOT be allowed to host shards from the index.- | RoutingAllocationRequire (NonEmpty NodeAttrFilter)- -- ^ Only nodes matching all rules will be allowed to host shards from the index.- | RoutingAllocationEnable AllocationPolicy- -- ^ Enables shard allocation for a specific index.- | RoutingAllocationShardsPerNode ShardCount- -- ^ Controls the total number of shards (replicas and primaries) allowed to be allocated on a single node.- | RecoveryInitialShards InitialShardCount- -- ^ When using local gateway a particular shard is recovered only if there can be allocated quorum shards in the cluster.- | GCDeletes NominalDiffTime- | TTLDisablePurge Bool- -- ^ Disables temporarily the purge of expired docs.- | TranslogFSType FSType- | IndexCompoundFormat CompoundFormat- | IndexCompoundOnFlush Bool- | WarmerEnabled Bool- deriving (Eq, Show)--data AllocationPolicy = AllocAll- -- ^ Allows shard allocation for all shards.- | AllocPrimaries- -- ^ Allows shard allocation only for primary shards.- | AllocNewPrimaries- -- ^ Allows shard allocation only for primary shards for new indices.- | AllocNone- -- ^ No shard allocation is allowed- deriving (Eq, Show)--data ReplicaBounds = ReplicasBounded Int Int- | ReplicasLowerBounded Int- | ReplicasUnbounded- deriving (Eq, Show)---- | A measure of bytes used for various configurations. You may want--- to use smart constructors like 'gigabytes' for larger values.------ >>> gigabytes 9--- Bytes 9000000000------ >>> megabytes 9--- Bytes 9000000------ >>> kilobytes 9--- Bytes 9000-newtype Bytes = Bytes Int deriving (Eq, Show, Ord, ToJSON, FromJSON)--gigabytes :: Int -> Bytes-gigabytes n = megabytes (1000 * n)---megabytes :: Int -> Bytes-megabytes n = kilobytes (1000 * n)---kilobytes :: Int -> Bytes-kilobytes n = Bytes (1000 * n)--data Interval = Year- | Quarter- | Month- | Week- | Day- | Hour- | Minute- | Second- | FractionalInterval Float TimeInterval deriving (Eq, Show)--data TimeInterval = Weeks- | Days- | Hours- | Minutes- | Seconds deriving Eq--instance Show TimeInterval where- show Weeks = "w"- show Days = "d"- show Hours = "h"- show Minutes = "m"- show Seconds = "s"--instance Read TimeInterval where- readPrec = f =<< TR.get- where- f 'w' = return Weeks- f 'd' = return Days- f 'h' = return Hours- f 'm' = return Minutes- f 's' = return Seconds- f _ = fail "TimeInterval expected one of w, d, h, m, s"---- | Typically a 7 character hex string.-newtype BuildHash = BuildHash { buildHash :: Text }- deriving (Eq, Ord, Show, FromJSON, ToJSON)--data NodeAttrFilter = NodeAttrFilter- { nodeAttrFilterName :: NodeAttrName- , nodeAttrFilterValues :: NonEmpty Text }- deriving (Eq, Ord, Show)--newtype NodeAttrName = NodeAttrName Text deriving (Eq, Ord, Show)--data InitialShardCount = QuorumShards- | QuorumMinus1Shards- | FullShards- | FullMinus1Shards- | ExplicitShards Int- deriving (Eq, Show)--instance FromJSON InitialShardCount where- parseJSON v = withText "InitialShardCount" parseText v- <|> ExplicitShards <$> parseJSON v- where parseText "quorum" = pure QuorumShards- parseText "quorum-1" = pure QuorumMinus1Shards- parseText "full" = pure FullShards- parseText "full-1" = pure FullMinus1Shards- parseText _ = mzero--instance ToJSON InitialShardCount where- toJSON QuorumShards = String "quorum"- toJSON QuorumMinus1Shards = String "quorum-1"- toJSON FullShards = String "full"- toJSON FullMinus1Shards = String "full-1"- toJSON (ExplicitShards x) = toJSON x--data FSType = FSSimple- | FSBuffered deriving (Eq, Show)--instance ToJSON FSType where- toJSON FSSimple = "simple"- toJSON FSBuffered = "buffered"--instance FromJSON FSType where- parseJSON = withText "FSType" parse- where parse "simple" = pure FSSimple- parse "buffered" = pure FSBuffered- parse t = fail ("Invalid FSType: " <> show t)--data CompoundFormat = CompoundFileFormat Bool- | MergeSegmentVsTotalIndex Double- -- ^ percentage between 0 and 1 where 0 is false, 1 is true- deriving (Eq, Show)--attrFilterJSON :: NonEmpty NodeAttrFilter -> Value-attrFilterJSON fs = object [ n .= T.intercalate "," (toList vs)- | NodeAttrFilter (NodeAttrName n) vs <- toList fs]--parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)-parseAttrFilter = withObject "NonEmpty NodeAttrFilter" parse- where parse o = case HM.toList o of- [] -> fail "Expected non-empty list of NodeAttrFilters"- x:xs -> DT.mapM (uncurry parse') (x :| xs)- parse' n = withText "Text" $ \t ->- case T.splitOn "," t of- fv:fvs -> return (NodeAttrFilter (NodeAttrName n) (fv :| fvs))- [] -> fail "Expected non-empty list of filter values"--newtype NominalDiffTimeJSON = NominalDiffTimeJSON { ndtJSON :: NominalDiffTime }--data IndexSettingsSummary = IndexSettingsSummary { sSummaryIndexName :: IndexName- , sSummaryFixedSettings :: IndexSettings- , sSummaryUpdateable :: [UpdatableIndexSetting]}- deriving (Eq, Show)--parseSettings :: Object -> Parser [UpdatableIndexSetting]-parseSettings o = do- o' <- o .: "index"- -- slice the index object into singleton hashmaps and try to parse each- parses <- forM (HM.toList o') $ \(k, v) -> do- -- blocks are now nested into the "index" key, which is not how they're serialized- let atRoot = Object (HM.singleton k v)- let atIndex = Object (HM.singleton "index" atRoot)- optional (parseJSON atRoot <|> parseJSON atIndex)- return (catMaybes parses)--{-| 'OpenCloseIndex' is a sum type for opening and closing indices.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>--}-data OpenCloseIndex = OpenIndex | CloseIndex deriving (Eq, Show)--data FieldType = GeoPointType- | GeoShapeType- | FloatType- | IntegerType- | LongType- | ShortType- | ByteType deriving (Eq, Show)--data FieldDefinition =- FieldDefinition { fieldType :: FieldType } deriving (Eq, Show)--{-| An 'IndexTemplate' defines a template that will automatically be- applied to new indices created. The templates include both- 'IndexSettings' and mappings, and a simple 'TemplatePattern' that- controls if the template will be applied to the index created.- Specify mappings as follows: @[toJSON TweetMapping, ...]@-- https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html--}-data IndexTemplate =- IndexTemplate { templatePattern :: TemplatePattern- , templateSettings :: Maybe IndexSettings- , templateMappings :: [Value]- }--data MappingField =- MappingField { mappingFieldName :: FieldName- , fieldDefinition :: FieldDefinition } deriving (Eq, Show)--{-| Support for type reification of 'Mapping's is currently incomplete, for- now the mapping API verbiage expects a 'ToJSON'able blob.-- Indexes have mappings, mappings are schemas for the documents contained in the- index. I'd recommend having only one mapping per index, always having a mapping,- and keeping different kinds of documents separated if possible.--}-data Mapping = Mapping { typeName :: TypeName- , mappingFields :: [MappingField] } deriving (Eq, Show)--{-| 'BulkOperation' is a sum type for expressing the four kinds of bulk- operation index, create, delete, and update. 'BulkIndex' behaves like an- "upsert", 'BulkCreate' will fail if a document already exists at the DocId.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html#docs-bulk>--}-data BulkOperation =- BulkIndex IndexName MappingName DocId Value- | BulkCreate IndexName MappingName DocId Value- | BulkDelete IndexName MappingName DocId- | BulkUpdate IndexName MappingName DocId Value deriving (Eq, Show)--{-| 'EsResult' describes the standard wrapper JSON document that you see in- successful Elasticsearch lookups or lookups that couldn't find the document.--}-data EsResult a = EsResult { _index :: Text- , _type :: Text- , _id :: Text- , foundResult :: Maybe (EsResultFound a)} deriving (Eq, Show)--instance (FromJSON a) => FromJSON (EsResult a) where- parseJSON jsonVal@(Object v) = do- found <- v .:? "found" .!= False- fr <- if found- then parseJSON jsonVal- else return Nothing- EsResult <$> v .: "_index" <*>- v .: "_type" <*>- v .: "_id" <*>- pure fr- parseJSON _ = empty--{-| 'EsResultFound' contains the document and its metadata inside of an- 'EsResult' when the document was successfully found.--}-data EsResultFound a = EsResultFound { _version :: DocVersion- , _source :: a } deriving (Eq, Show)--instance (FromJSON a) => FromJSON (EsResultFound a) where- parseJSON (Object v) = EsResultFound <$>- v .: "_version" <*>- v .: "_source"- parseJSON _ = empty--{-| 'EsError' is the generic type that will be returned when there was a- problem. If you can't parse the expected response, its a good idea to- try parsing this.--}-data EsError = EsError { errorStatus :: Int- , errorMessage :: Text } deriving (Eq, Show)--{-| 'EsProtocolException' will be thrown if Bloodhound cannot parse a response-returned by the Elasticsearch server. If you encounter this error, please-verify that your domain data types and FromJSON instances are working properly-(for example, the 'a' of '[Hit a]' in 'SearchResult.searchHits.hits'). If you're-sure that your mappings are correct, then this error may be an indication of an-incompatibility between Bloodhound and Elasticsearch. Please open a bug report-and be sure to include the exception body.--}-data EsProtocolException = EsProtocolException { esProtoExBody :: LByteString }- deriving (Eq, Show)--instance Exception EsProtocolException--data IndexAlias = IndexAlias { srcIndex :: IndexName- , indexAlias :: IndexAliasName } deriving (Eq, Show)--{-| 'DocVersion' is an integer version number for a document between 1-and 9.2e+18 used for <<https://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html optimistic concurrency control>>.--}-newtype DocVersion = DocVersion {- docVersionNumber :: Int- } deriving (Eq, Show, Ord, ToJSON)--instance FromJSON DocVersion where- parseJSON v = do- i <- parseJSON v- maybe (fail "DocVersion out of range") return $ mkDocVersion i---- | Smart constructor for in-range doc version-mkDocVersion :: Int -> Maybe DocVersion-mkDocVersion i- | i >= (docVersionNumber minBound) && i <= (docVersionNumber maxBound) =- Just $ DocVersion i- | otherwise = Nothing--data IndexAliasAction = AddAlias IndexAlias IndexAliasCreate- | RemoveAlias IndexAlias deriving (Show, Eq)--data IndexAliasCreate = IndexAliasCreate { aliasCreateRouting :: Maybe AliasRouting- , aliasCreateFilter :: Maybe Filter}- deriving (Show, Eq)--data AliasRouting = AllAliasRouting RoutingValue- | GranularAliasRouting (Maybe SearchAliasRouting) (Maybe IndexAliasRouting)- deriving (Show, Eq)--newtype SearchAliasRouting = SearchAliasRouting (NonEmpty RoutingValue) deriving (Show, Eq)--newtype IndexAliasRouting = IndexAliasRouting RoutingValue deriving (Show, Eq, ToJSON, FromJSON)--newtype RoutingValue = RoutingValue { routingValue :: Text } deriving (Show, Eq, ToJSON, FromJSON)--newtype IndexAliasesSummary = IndexAliasesSummary { indexAliasesSummary :: [IndexAliasSummary] } deriving (Show, Eq)--{-| 'IndexAliasSummary' is a summary of an index alias configured for a server. -}-data IndexAliasSummary = IndexAliasSummary { indexAliasSummaryAlias :: IndexAlias- , indexAliasSummaryCreate :: IndexAliasCreate} deriving (Show, Eq)--{-| 'ExternalDocVersion' is a convenience wrapper if your code uses its-own version numbers instead of ones from ES.--}-newtype ExternalDocVersion = ExternalDocVersion DocVersion- deriving (Eq, Show, Ord, Bounded, Enum, ToJSON)--{-| 'VersionControl' is specified when indexing documents as a-optimistic concurrency control.--}-data VersionControl = NoVersionControl- -- ^ Don't send a version. This is a pure overwrite.- | InternalVersion DocVersion- -- ^ Use the default ES versioning scheme. Only- -- index the document if the version is the same- -- as the one specified. Only applicable to- -- updates, as you should be getting Version from- -- a search result.- | ExternalGT ExternalDocVersion- -- ^ Use your own version numbering. Only index- -- the document if the version is strictly higher- -- OR the document doesn't exist. The given- -- version will be used as the new version number- -- for the stored document. N.B. All updates must- -- increment this number, meaning there is some- -- global, external ordering of updates.- | ExternalGTE ExternalDocVersion- -- ^ Use your own version numbering. Only index- -- the document if the version is equal or higher- -- than the stored version. Will succeed if there- -- is no existing document. The given version will- -- be used as the new version number for the- -- stored document. Use with care, as this could- -- result in data loss.- | ForceVersion ExternalDocVersion- -- ^ The document will always be indexed and the- -- given version will be the new version. This is- -- typically used for correcting errors. Use with- -- care, as this could result in data loss.- deriving (Show, Eq, Ord)--{-| 'DocumentParent' is used to specify a parent document.--}-newtype DocumentParent = DocumentParent DocId- deriving (Eq, Show)--{-| 'IndexDocumentSettings' are special settings supplied when indexing-a document. For the best backwards compatiblity when new fields are-added, you should probably prefer to start with 'defaultIndexDocumentSettings'--}-data IndexDocumentSettings =- IndexDocumentSettings { idsVersionControl :: VersionControl- , idsParent :: Maybe DocumentParent- } deriving (Eq, Show)--{-| Reasonable default settings. Chooses no version control and no parent.--}-defaultIndexDocumentSettings :: IndexDocumentSettings-defaultIndexDocumentSettings = IndexDocumentSettings NoVersionControl Nothing--{-| 'IndexSelection' is used for APIs which take a single index, a list of- indexes, or the special @_all@ index.--}---TODO: this does not fully support <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/multi-index.html multi-index syntax>. It wouldn't be too hard to implement but you'd have to add the optional parameters (ignore_unavailable, allow_no_indices, expand_wildcards) to any APIs using it. Also would be a breaking API.-data IndexSelection = IndexList (NonEmpty IndexName)- | AllIndexes deriving (Eq, Show)--{-| 'NodeSelection' is used for most cluster APIs. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes here> for more details.--}-data NodeSelection = LocalNode- -- ^ Whatever node receives this request- | NodeList (NonEmpty NodeSelector)- | AllNodes deriving (Eq, Show)----- | An exact match or pattern to identify a node. Note that All of--- these options support wildcarding, so your node name, server, attr--- name can all contain * characters to be a fuzzy match.-data NodeSelector = NodeByName NodeName- | NodeByFullNodeId FullNodeId- | NodeByHost Server- -- ^ e.g. 10.0.0.1 or even 10.0.0.*- | NodeByAttribute NodeAttrName Text- -- ^ NodeAttrName can be a pattern, e.g. rack*. The value can too.- deriving (Eq, Show)---- | A human-readable node name that is supplied by the user in the--- node config or automatically generated by Elasticsearch.-newtype NodeName = NodeName { nodeName :: Text }- deriving (Eq, Ord, Show, FromJSON)---- | Unique, automatically-generated name assigned to nodes that are--- usually returned in node-oriented APIs.-newtype FullNodeId = FullNodeId { fullNodeId :: Text }- deriving (Eq, Ord, Show, FromJSON)---- | Username type used for HTTP Basic authentication. See 'basicAuthHook'.-newtype EsUsername = EsUsername { esUsername :: Text } deriving (Show, Eq)---- | Password type used for HTTP Basic authentication. See 'basicAuthHook'.-newtype EsPassword = EsPassword { esPassword :: Text } deriving (Show, Eq)--data SnapshotRepoSelection = SnapshotRepoList (NonEmpty SnapshotRepoPattern)- | AllSnapshotRepos deriving (Eq, Show)----- | Either specifies an exact repo name or one with globs in it,--- e.g. @RepoPattern "foo*"@ __NOTE__: Patterns are not supported on ES < 1.7-data SnapshotRepoPattern = ExactRepo SnapshotRepoName- | RepoPattern Text- deriving (Eq, Show)---- | The unique name of a snapshot repository.-newtype SnapshotRepoName = SnapshotRepoName { snapshotRepoName :: Text }- deriving (Eq, Ord, Show, ToJSON, FromJSON)----- | A generic representation of a snapshot repo. This is what gets--- sent to and parsed from the server. For repo types enabled by--- plugins that aren't exported by this library, consider making a--- custom type which implements 'SnapshotRepo'. If it is a common repo--- type, consider submitting a pull request to have it included in the--- library proper-data GenericSnapshotRepo = GenericSnapshotRepo {- gSnapshotRepoName :: SnapshotRepoName- , gSnapshotRepoType :: SnapshotRepoType- , gSnapshotRepoSettings :: GenericSnapshotRepoSettings- } deriving (Eq, Show)---- | Law: fromGSnapshotRepo (toGSnapshotRepo r) == Right r-class SnapshotRepo r where- toGSnapshotRepo :: r -> GenericSnapshotRepo- fromGSnapshotRepo :: GenericSnapshotRepo -> Either SnapshotRepoConversionError r--data SnapshotRepoConversionError = RepoTypeMismatch SnapshotRepoType SnapshotRepoType- -- ^ Expected type and actual type- | OtherRepoConversionError Text- deriving (Show, Eq)--instance SnapshotRepo GenericSnapshotRepo where- toGSnapshotRepo = id- fromGSnapshotRepo = Right---newtype SnapshotRepoType = SnapshotRepoType { snapshotRepoType :: Text }- deriving (Eq, Ord, Show, ToJSON, FromJSON)----- | Opaque representation of snapshot repo settings. Instances of--- 'SnapshotRepo' will produce this.-newtype GenericSnapshotRepoSettings = GenericSnapshotRepoSettings { gSnapshotRepoSettingsObject :: Object }- deriving (Eq, Show, ToJSON)--- -- Regardless of whether you send strongly typed json, my version of- -- ES sends back stringly typed json in the settings, e.g. booleans- -- as strings, so we'll try to convert them.-instance FromJSON GenericSnapshotRepoSettings where- parseJSON = fmap (GenericSnapshotRepoSettings . fmap unStringlyTypeJSON). parseJSON---- | The result of running 'verifySnapshotRepo'.-newtype SnapshotVerification = SnapshotVerification { snapshotNodeVerifications :: [SnapshotNodeVerification] }- deriving (Eq, Show)---instance FromJSON SnapshotVerification where- parseJSON = withObject "SnapshotVerification" parse- where- parse o = do- o2 <- o .: "nodes"- SnapshotVerification <$> mapM (uncurry parse') (HM.toList o2)- parse' rawFullId = withObject "SnapshotNodeVerification" $ \o ->- SnapshotNodeVerification (FullNodeId rawFullId) <$> o .: "name"----- | A node that has verified a snapshot-data SnapshotNodeVerification = SnapshotNodeVerification {- snvFullId :: FullNodeId- , snvNodeName :: NodeName- } deriving (Eq, Show)--newtype ClusterName = ClusterName { clusterName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data NodesInfo = NodesInfo {- nodesInfo :: [NodeInfo]- , nodesClusterName :: ClusterName- } deriving (Eq, Show)--instance FromJSON NodesInfo where- parseJSON = withObject "NodesInfo" parse- where- parse o = do- nodes <- o .: "nodes"- infos <- forM (HM.toList nodes) $ \(fullNID, v) -> do- node <- parseJSON v- parseNodeInfo (FullNodeId fullNID) node- cn <- o .: "cluster_name"- return (NodesInfo infos cn)--data NodesStats = NodesStats {- nodesStats :: [NodeStats]- , nodesStatsClusterName :: ClusterName- } deriving (Eq, Show)--data NodeStats = NodeStats {- nodeStatsName :: NodeName- , nodeStatsFullId :: FullNodeId- , nodeStatsBreakersStats :: Maybe NodeBreakersStats- , nodeStatsHTTP :: NodeHTTPStats- , nodeStatsTransport :: NodeTransportStats- , nodeStatsFS :: NodeFSStats- , nodeStatsNetwork :: NodeNetworkStats- , nodeStatsThreadPool :: NodeThreadPoolsStats- , nodeStatsJVM :: NodeJVMStats- , nodeStatsProcess :: NodeProcessStats- , nodeStatsOS :: NodeOSStats- , nodeStatsIndices :: NodeIndicesStats- } deriving (Eq, Show)--data NodeBreakersStats = NodeBreakersStats {- nodeStatsParentBreaker :: NodeBreakerStats- , nodeStatsRequestBreaker :: NodeBreakerStats- , nodeStatsFieldDataBreaker :: NodeBreakerStats- } deriving (Eq, Show)--data NodeBreakerStats = NodeBreakerStats {- nodeBreakersTripped :: Int- , nodeBreakersOverhead :: Double- , nodeBreakersEstSize :: Bytes- , nodeBreakersLimitSize :: Bytes- } deriving (Eq, Show)--data NodeHTTPStats = NodeHTTPStats {- nodeHTTPTotalOpened :: Int- , nodeHTTPCurrentOpen :: Int- } deriving (Eq, Show)--data NodeTransportStats = NodeTransportStats {- nodeTransportTXSize :: Bytes- , nodeTransportCount :: Int- , nodeTransportRXSize :: Bytes- , nodeTransportRXCount :: Int- , nodeTransportServerOpen :: Int- } deriving (Eq, Show)--data NodeFSStats = NodeFSStats {- nodeFSDataPaths :: [NodeDataPathStats]- , nodeFSTotal :: NodeFSTotalStats- , nodeFSTimestamp :: UTCTime- } deriving (Eq, Show)--data NodeDataPathStats = NodeDataPathStats {- nodeDataPathDiskServiceTime :: Maybe Double- , nodeDataPathDiskQueue :: Maybe Double- , nodeDataPathIOSize :: Maybe Bytes- , nodeDataPathWriteSize :: Maybe Bytes- , nodeDataPathReadSize :: Maybe Bytes- , nodeDataPathIOOps :: Maybe Int- , nodeDataPathWrites :: Maybe Int- , nodeDataPathReads :: Maybe Int- , nodeDataPathAvailable :: Bytes- , nodeDataPathFree :: Bytes- , nodeDataPathTotal :: Bytes- , nodeDataPathType :: Maybe Text- , nodeDataPathDevice :: Text- , nodeDataPathMount :: Text- , nodeDataPathPath :: Text- } deriving (Eq, Show)--data NodeFSTotalStats = NodeFSTotalStats {- nodeFSTotalDiskServiceTime :: Maybe Double- , nodeFSTotalDiskQueue :: Maybe Double- , nodeFSTotalIOSize :: Maybe Bytes- , nodeFSTotalWriteSize :: Maybe Bytes- , nodeFSTotalReadSize :: Maybe Bytes- , nodeFSTotalIOOps :: Maybe Int- , nodeFSTotalWrites :: Maybe Int- , nodeFSTotalReads :: Maybe Int- , nodeFSTotalAvailable :: Bytes- , nodeFSTotalFree :: Bytes- , nodeFSTotalTotal :: Bytes- } deriving (Eq, Show)--data NodeNetworkStats = NodeNetworkStats {- nodeNetTCPOutRSTs :: Int- , nodeNetTCPInErrs :: Int- , nodeNetTCPAttemptFails :: Int- , nodeNetTCPEstabResets :: Int- , nodeNetTCPRetransSegs :: Int- , nodeNetTCPOutSegs :: Int- , nodeNetTCPInSegs :: Int- , nodeNetTCPCurrEstab :: Int- , nodeNetTCPPassiveOpens :: Int- , nodeNetTCPActiveOpens :: Int- } deriving (Eq, Show)--data NodeThreadPoolsStats = NodeThreadPoolsStats {- nodeThreadPoolsStatsSnapshot :: NodeThreadPoolStats- , nodeThreadPoolsStatsBulk :: NodeThreadPoolStats- , nodeThreadPoolsStatsMerge :: NodeThreadPoolStats- , nodeThreadPoolsStatsGet :: NodeThreadPoolStats- , nodeThreadPoolsStatsManagement :: NodeThreadPoolStats- , nodeThreadPoolsStatsFetchShardStore :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsOptimize :: NodeThreadPoolStats- , nodeThreadPoolsStatsFlush :: NodeThreadPoolStats- , nodeThreadPoolsStatsSearch :: NodeThreadPoolStats- , nodeThreadPoolsStatsWarmer :: NodeThreadPoolStats- , nodeThreadPoolsStatsGeneric :: NodeThreadPoolStats- , nodeThreadPoolsStatsSuggest :: NodeThreadPoolStats- , nodeThreadPoolsStatsRefresh :: NodeThreadPoolStats- , nodeThreadPoolsStatsIndex :: NodeThreadPoolStats- , nodeThreadPoolsStatsListener :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsFetchShardStarted :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsPercolate :: NodeThreadPoolStats- } deriving (Eq, Show)--data NodeThreadPoolStats = NodeThreadPoolStats {- nodeThreadPoolCompleted :: Int- , nodeThreadPoolLargest :: Int- , nodeThreadPoolRejected :: Int- , nodeThreadPoolActive :: Int- , nodeThreadPoolQueue :: Int- , nodeThreadPoolThreads :: Int- } deriving (Eq, Show)--data NodeJVMStats = NodeJVMStats {- nodeJVMStatsMappedBufferPool :: JVMBufferPoolStats- , nodeJVMStatsDirectBufferPool :: JVMBufferPoolStats- , nodeJVMStatsGCOldCollector :: JVMGCStats- , nodeJVMStatsGCYoungCollector :: JVMGCStats- , nodeJVMStatsPeakThreadsCount :: Int- , nodeJVMStatsThreadsCount :: Int- , nodeJVMStatsOldPool :: JVMPoolStats- , nodeJVMStatsSurvivorPool :: JVMPoolStats- , nodeJVMStatsYoungPool :: JVMPoolStats- , nodeJVMStatsNonHeapCommitted :: Bytes- , nodeJVMStatsNonHeapUsed :: Bytes- , nodeJVMStatsHeapMax :: Bytes- , nodeJVMStatsHeapCommitted :: Bytes- , nodeJVMStatsHeapUsedPercent :: Int- , nodeJVMStatsHeapUsed :: Bytes- , nodeJVMStatsUptime :: NominalDiffTime- , nodeJVMStatsTimestamp :: UTCTime- } deriving (Eq, Show)--data JVMBufferPoolStats = JVMBufferPoolStats {- jvmBufferPoolStatsTotalCapacity :: Bytes- , jvmBufferPoolStatsUsed :: Bytes- , jvmBufferPoolStatsCount :: Int- } deriving (Eq, Show)--data JVMGCStats = JVMGCStats {- jvmGCStatsCollectionTime :: NominalDiffTime- , jvmGCStatsCollectionCount :: Int- } deriving (Eq, Show)--data JVMPoolStats = JVMPoolStats {- jvmPoolStatsPeakMax :: Bytes- , jvmPoolStatsPeakUsed :: Bytes- , jvmPoolStatsMax :: Bytes- , jvmPoolStatsUsed :: Bytes- } deriving (Eq, Show)--data NodeProcessStats = NodeProcessStats {- nodeProcessMemTotalVirtual :: Bytes- , nodeProcessMemShare :: Bytes- , nodeProcessMemResident :: Bytes- , nodeProcessCPUTotal :: NominalDiffTime- , nodeProcessCPUUser :: NominalDiffTime- , nodeProcessCPUSys :: NominalDiffTime- , nodeProcessCPUPercent :: Int- , nodeProcessOpenFDs :: Int- , nodeProcessTimestamp :: UTCTime- } deriving (Eq, Show)--data NodeOSStats = NodeOSStats {- nodeOSSwapFree :: Bytes- , nodeOSSwapUsed :: Bytes- , nodeOSMemActualUsed :: Bytes- , nodeOSMemActualFree :: Bytes- , nodeOSMemUsedPercent :: Int- , nodeOSMemFreePercent :: Int- , nodeOSMemUsed :: Bytes- , nodeOSMemFree :: Bytes- , nodeOSCPUStolen :: Int- , nodeOSCPUUsage :: Int- , nodeOSCPUIdle :: Int- , nodeOSCPUUser :: Int- , nodeOSCPUSys :: Int- , nodeOSLoad :: Maybe LoadAvgs- , nodeOSUptime :: NominalDiffTime- , nodeOSTimestamp :: UTCTime- } deriving (Eq, Show)--data LoadAvgs = LoadAvgs {- loadAvg1Min :: Double- , loadAvg5Min :: Double- , loadAvg15Min :: Double- } deriving (Eq, Show)--data NodeIndicesStats = NodeIndicesStats {- nodeIndicesStatsRecoveryThrottleTime :: Maybe NominalDiffTime- , nodeIndicesStatsRecoveryCurrentAsTarget :: Maybe Int- , nodeIndicesStatsRecoveryCurrentAsSource :: Maybe Int- , nodeIndicesStatsQueryCacheMisses :: Maybe Int- , nodeIndicesStatsQueryCacheHits :: Maybe Int- , nodeIndicesStatsQueryCacheEvictions :: Maybe Int- , nodeIndicesStatsQueryCacheSize :: Maybe Bytes- , nodeIndicesStatsSuggestCurrent :: Int- , nodeIndicesStatsSuggestTime :: NominalDiffTime- , nodeIndicesStatsSuggestTotal :: Int- , nodeIndicesStatsTranslogSize :: Bytes- , nodeIndicesStatsTranslogOps :: Int- , nodeIndicesStatsSegFixedBitSetMemory :: Maybe Bytes- , nodeIndicesStatsSegVersionMapMemory :: Bytes- , nodeIndicesStatsSegIndexWriterMaxMemory :: Maybe Bytes- , nodeIndicesStatsSegIndexWriterMemory :: Bytes- , nodeIndicesStatsSegMemory :: Bytes- , nodeIndicesStatsSegCount :: Int- , nodeIndicesStatsCompletionSize :: Bytes- , nodeIndicesStatsPercolateQueries :: Int- , nodeIndicesStatsPercolateMemory :: Bytes- , nodeIndicesStatsPercolateCurrent :: Int- , nodeIndicesStatsPercolateTime :: NominalDiffTime- , nodeIndicesStatsPercolateTotal :: Int- , nodeIndicesStatsFieldDataEvictions :: Int- , nodeIndicesStatsFieldDataMemory :: Bytes- , nodeIndicesStatsIDCacheMemory :: Bytes- , nodeIndicesStatsFilterCacheEvictions :: Int- , nodeIndicesStatsFilterCacheMemory :: Bytes- , nodeIndicesStatsWarmerTotalTime :: NominalDiffTime- , nodeIndicesStatsWarmerTotal :: Int- , nodeIndicesStatsWarmerCurrent :: Int- , nodeIndicesStatsFlushTotalTime :: NominalDiffTime- , nodeIndicesStatsFlushTotal :: Int- , nodeIndicesStatsRefreshTotalTime :: NominalDiffTime- , nodeIndicesStatsRefreshTotal :: Int- , nodeIndicesStatsMergesTotalSize :: Bytes- , nodeIndicesStatsMergesTotalDocs :: Int- , nodeIndicesStatsMergesTotalTime :: NominalDiffTime- , nodeIndicesStatsMergesTotal :: Int- , nodeIndicesStatsMergesCurrentSize :: Bytes- , nodeIndicesStatsMergesCurrentDocs :: Int- , nodeIndicesStatsMergesCurrent :: Int- , nodeIndicesStatsSearchFetchCurrent :: Int- , nodeIndicesStatsSearchFetchTime :: NominalDiffTime- , nodeIndicesStatsSearchFetchTotal :: Int- , nodeIndicesStatsSearchQueryCurrent :: Int- , nodeIndicesStatsSearchQueryTime :: NominalDiffTime- , nodeIndicesStatsSearchQueryTotal :: Int- , nodeIndicesStatsSearchOpenContexts :: Int- , nodeIndicesStatsGetCurrent :: Int- , nodeIndicesStatsGetMissingTime :: NominalDiffTime- , nodeIndicesStatsGetMissingTotal :: Int- , nodeIndicesStatsGetExistsTime :: NominalDiffTime- , nodeIndicesStatsGetExistsTotal :: Int- , nodeIndicesStatsGetTime :: NominalDiffTime- , nodeIndicesStatsGetTotal :: Int- , nodeIndicesStatsIndexingThrottleTime :: Maybe NominalDiffTime- , nodeIndicesStatsIndexingIsThrottled :: Maybe Bool- , nodeIndicesStatsIndexingNoopUpdateTotal :: Maybe Int- , nodeIndicesStatsIndexingDeleteCurrent :: Int- , nodeIndicesStatsIndexingDeleteTime :: NominalDiffTime- , nodeIndicesStatsIndexingDeleteTotal :: Int- , nodeIndicesStatsIndexingIndexCurrent :: Int- , nodeIndicesStatsIndexingIndexTime :: NominalDiffTime- , nodeIndicesStatsIndexingTotal :: Int- , nodeIndicesStatsStoreThrottleTime :: NominalDiffTime- , nodeIndicesStatsStoreSize :: Bytes- , nodeIndicesStatsDocsDeleted :: Int- , nodeIndicesStatsDocsCount :: Int- } deriving (Eq, Show)--data NodeInfo = NodeInfo {- nodeInfoHTTPAddress :: EsAddress- , nodeInfoBuild :: BuildHash- , nodeInfoESVersion :: VersionNumber- , nodeInfoIP :: Server- , nodeInfoHost :: Server- , nodeInfoTransportAddress :: EsAddress- , nodeInfoName :: NodeName- , nodeInfoFullId :: FullNodeId- , nodeInfoPlugins :: [NodePluginInfo]- , nodeInfoHTTP :: NodeHTTPInfo- , nodeInfoTransport :: NodeTransportInfo- , nodeInfoNetwork :: NodeNetworkInfo- , nodeInfoThreadPool :: NodeThreadPoolsInfo- , nodeInfoJVM :: NodeJVMInfo- , nodeInfoProcess :: NodeProcessInfo- , nodeInfoOS :: NodeOSInfo- , nodeInfoSettings :: Object- -- ^ The members of the settings objects are not consistent,- -- dependent on plugins, etc.- } deriving (Eq, Show)--data NodePluginInfo = NodePluginInfo {- nodePluginSite :: Bool- -- ^ Is this a site plugin?- , nodePluginJVM :: Bool- -- ^ Is this plugin running on the JVM- , nodePluginDescription :: Text- , nodePluginVersion :: MaybeNA VersionNumber- , nodePluginName :: PluginName- } deriving (Eq, Show)--data NodeHTTPInfo = NodeHTTPInfo {- nodeHTTPMaxContentLength :: Bytes- , nodeHTTPTransportAddress :: BoundTransportAddress- } deriving (Eq, Show)--data NodeTransportInfo = NodeTransportInfo {- nodeTransportProfiles :: [BoundTransportAddress]- , nodeTransportAddress :: BoundTransportAddress- } deriving (Eq, Show)--data BoundTransportAddress = BoundTransportAddress {- publishAddress :: EsAddress- , boundAddress :: EsAddress- } deriving (Eq, Show)--data NodeNetworkInfo = NodeNetworkInfo {- nodeNetworkPrimaryInterface :: NodeNetworkInterface- , nodeNetworkRefreshInterval :: NominalDiffTime- } deriving (Eq, Show)--newtype MacAddress = MacAddress { macAddress :: Text }- deriving (Eq, Ord, Show, FromJSON)--newtype NetworkInterfaceName = NetworkInterfaceName { networkInterfaceName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data NodeNetworkInterface = NodeNetworkInterface {- nodeNetIfaceMacAddress :: MacAddress- , nodeNetIfaceName :: NetworkInterfaceName- , nodeNetIfaceAddress :: Server- } deriving (Eq, Show)--data NodeThreadPoolsInfo = NodeThreadPoolsInfo {- nodeThreadPoolsRefresh :: NodeThreadPoolInfo- , nodeThreadPoolsManagement :: NodeThreadPoolInfo- , nodeThreadPoolsPercolate :: NodeThreadPoolInfo- , nodeThreadPoolsListener :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsFetchShardStarted :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsSearch :: NodeThreadPoolInfo- , nodeThreadPoolsFlush :: NodeThreadPoolInfo- , nodeThreadPoolsWarmer :: NodeThreadPoolInfo- , nodeThreadPoolsOptimize :: NodeThreadPoolInfo- , nodeThreadPoolsBulk :: NodeThreadPoolInfo- , nodeThreadPoolsSuggest :: NodeThreadPoolInfo- , nodeThreadPoolsMerge :: NodeThreadPoolInfo- , nodeThreadPoolsSnapshot :: NodeThreadPoolInfo- , nodeThreadPoolsGet :: NodeThreadPoolInfo- , nodeThreadPoolsFetchShardStore :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsIndex :: NodeThreadPoolInfo- , nodeThreadPoolsGeneric :: NodeThreadPoolInfo- } deriving (Eq, Show)--data NodeThreadPoolInfo = NodeThreadPoolInfo {- nodeThreadPoolQueueSize :: ThreadPoolSize- , nodeThreadPoolKeepalive :: Maybe NominalDiffTime- , nodeThreadPoolMin :: Maybe Int- , nodeThreadPoolMax :: Maybe Int- , nodeThreadPoolType :: ThreadPoolType- } deriving (Eq, Show)--data ThreadPoolSize = ThreadPoolBounded Int- | ThreadPoolUnbounded- deriving (Eq, Show)--data ThreadPoolType = ThreadPoolScaling- | ThreadPoolFixed- | ThreadPoolCached- deriving (Eq, Show)--data NodeJVMInfo = NodeJVMInfo {- nodeJVMInfoMemoryPools :: [JVMMemoryPool]- , nodeJVMInfoMemoryPoolsGCCollectors :: [JVMGCCollector]- , nodeJVMInfoMemoryInfo :: JVMMemoryInfo- , nodeJVMInfoStartTime :: UTCTime- , nodeJVMInfoVMVendor :: Text- , nodeJVMVMVersion :: VersionNumber- -- ^ JVM doesn't seme to follow normal version conventions- , nodeJVMVMName :: Text- , nodeJVMVersion :: VersionNumber- , nodeJVMPID :: PID- } deriving (Eq, Show)---- | Handles quirks in the way JVM versions are rendered (1.7.0_101 -> 1.7.0.101)-newtype JVMVersion = JVMVersion { unJVMVersion :: VersionNumber }--data JVMMemoryInfo = JVMMemoryInfo {- jvmMemoryInfoDirectMax :: Bytes- , jvmMemoryInfoNonHeapMax :: Bytes- , jvmMemoryInfoNonHeapInit :: Bytes- , jvmMemoryInfoHeapMax :: Bytes- , jvmMemoryInfoHeapInit :: Bytes- } deriving (Eq, Show)--newtype JVMMemoryPool = JVMMemoryPool {- jvmMemoryPool :: Text- } deriving (Eq, Show, FromJSON)--newtype JVMGCCollector = JVMGCCollector {- jvmGCCollector :: Text- } deriving (Eq, Show, FromJSON)--newtype PID = PID {- pid :: Int- } deriving (Eq, Show, FromJSON)--data NodeOSInfo = NodeOSInfo {- nodeOSSwap :: Bytes- , nodeOSMem :: Bytes- , nodeOSCPUInfo :: CPUInfo- , nodeOSAvailableProcessors :: Int- , nodeOSRefreshInterval :: NominalDiffTime- } deriving (Eq, Show)--data CPUInfo = CPUInfo {- cpuCacheSize :: Bytes- , cpuCoresPerSocket :: Int- , cpuTotalSockets :: Int- , cpuTotalCores :: Int- , cpuMHZ :: Int- , cpuModel :: Text- , cpuVendor :: Text- } deriving (Eq, Show)--data NodeProcessInfo = NodeProcessInfo {- nodeProcessMLockAll :: Bool- -- ^ See <https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>- , nodeProcessMaxFileDescriptors :: Int- , nodeProcessId :: PID- , nodeProcessRefreshInterval :: NominalDiffTime- } deriving (Eq, Show)---- | A quirky address format used throughout Elasticsearch. An example--- would be inet[/1.1.1.1:9200]. inet may be a placeholder for a--- <https://en.wikipedia.org/wiki/Fully_qualified_domain_name FQDN>.-newtype EsAddress = EsAddress { esAddress :: Text }- deriving (Eq, Ord, Show, FromJSON)--newtype PluginName = PluginName { pluginName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data ShardResult =- ShardResult { shardTotal :: Int- , shardsSuccessful :: Int- , shardsFailed :: Int } deriving (Eq, Show)--data SnapshotState = SnapshotInit- | SnapshotStarted- | SnapshotSuccess- | SnapshotFailed- | SnapshotAborted- | SnapshotMissing- | SnapshotWaiting- deriving (Show, Eq)--instance FromJSON SnapshotState where- parseJSON = withText "SnapshotState" parse- where- parse "INIT" = return SnapshotInit- parse "STARTED" = return SnapshotStarted- parse "SUCCESS" = return SnapshotSuccess- parse "FAILED" = return SnapshotFailed- parse "ABORTED" = return SnapshotAborted- parse "MISSING" = return SnapshotMissing- parse "WAITING" = return SnapshotWaiting- parse t = fail ("Invalid snapshot state " <> T.unpack t)--data SnapshotRestoreSettings = SnapshotRestoreSettings {- snapRestoreWaitForCompletion :: Bool- -- ^ Should the API call return immediately after initializing- -- the restore or wait until completed? Note that if this is- -- enabled, it could wait a long time, so you should adjust your- -- 'ManagerSettings' accordingly to set long timeouts or- -- explicitly handle timeouts.- , snapRestoreIndices :: Maybe IndexSelection- -- ^ Nothing will restore all indices in the snapshot. Just [] is- -- permissable and will essentially be a no-op restore.- , snapRestoreIgnoreUnavailable :: Bool- -- ^ If set to True, any indices that do not exist will be ignored- -- during snapshot rather than failing the restore.- , snapRestoreIncludeGlobalState :: Bool- -- ^ If set to false, will ignore any global state in the snapshot- -- and will not restore it.- , snapRestoreRenamePattern :: Maybe RestoreRenamePattern- -- ^ A regex pattern for matching indices. Used with- -- 'snapRestoreRenameReplacement', the restore can reference the- -- matched index and create a new index name upon restore.- , snapRestoreRenameReplacement :: Maybe (NonEmpty RestoreRenameToken)- -- ^ Expression of how index renames should be constructed.- , snapRestorePartial :: Bool- -- ^ If some indices fail to restore, should the process proceed?- , snapRestoreIncludeAliases :: Bool- -- ^ Should the restore also restore the aliases captured in the- -- snapshot.- , snapRestoreIndexSettingsOverrides :: Maybe RestoreIndexSettings- -- ^ Settings to apply during the restore process. __NOTE:__ This- -- option is not supported in ES < 1.5 and should be set to- -- Nothing in that case.- , snapRestoreIgnoreIndexSettings :: Maybe (NonEmpty Text)- -- ^ This type could be more rich but it isn't clear which- -- settings are allowed to be ignored during restore, so we're- -- going with including this feature in a basic form rather than- -- omitting it. One example here would be- -- "index.refresh_interval". Any setting specified here will- -- revert back to the server default during the restore process.- } deriving (Eq, Show)---- | Regex-stype pattern, e.g. "index_(.+)" to match index names-newtype RestoreRenamePattern = RestoreRenamePattern { rrPattern :: Text }- deriving (Show, Eq, Ord, ToJSON)----- | A single token in a index renaming scheme for a restore. These--- are concatenated into a string before being sent to--- Elasticsearch. Check out these Java--- <https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html docs> to find out more if you're into that sort of thing.-data RestoreRenameToken = RRTLit Text- -- ^ Just a literal string of characters- | RRSubWholeMatch- -- ^ Equivalent to $0. The entire matched pattern, not any subgroup- | RRSubGroup RRGroupRefNum- -- ^ A specific reference to a group number- deriving (Show, Eq)----- | A group number for regex matching. Only values from 1-9 are--- supported. Construct with 'mkRRGroupRefNum'-newtype RRGroupRefNum = RRGroupRefNum { rrGroupRefNum :: Int }- deriving (Show, Eq, Ord)--instance Bounded RRGroupRefNum where- minBound = RRGroupRefNum 1- maxBound = RRGroupRefNum 9----- | Only allows valid group number references (1-9).-mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum-mkRRGroupRefNum i- | i >= (rrGroupRefNum minBound) && i <= (rrGroupRefNum maxBound) =- Just $ RRGroupRefNum i- | otherwise = Nothing---- | Index settings that can be overridden. The docs only mention you--- can update number of replicas, but there may be more. You--- definitely cannot override shard count.-data RestoreIndexSettings = RestoreIndexSettings {- restoreOverrideReplicas :: Maybe ReplicaCount- } deriving (Show, Eq)--instance ToJSON RestoreIndexSettings where- toJSON RestoreIndexSettings {..} = object prs- where- prs = catMaybes [("index.number_of_replicas" .=) <$> restoreOverrideReplicas]--data SnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings {- repoUpdateVerify :: Bool- -- ^ After creation/update, synchronously check that nodes can- -- write to this repo. Defaults to True. You may use False if you- -- need a faster response and plan on verifying manually later- -- with 'verifySnapshotRepo'.- } deriving (Eq, Show)---- | Reasonable defaults for repo creation/update------ * repoUpdateVerify True-defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings-defaultSnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings True---- | A filesystem-based snapshot repo that ships with--- Elasticsearch. This is an instance of 'SnapshotRepo' so it can be--- used with 'updateSnapshotRepo'-data FsSnapshotRepo = FsSnapshotRepo {- fsrName :: SnapshotRepoName- , fsrLocation :: FilePath- , fsrCompressMetadata :: Bool- , fsrChunkSize :: Maybe Bytes- -- ^ Size by which to split large files during snapshotting.- , fsrMaxRestoreBytesPerSec :: Maybe Bytes- -- ^ Throttle node restore rate. If not supplied, defaults to 40mb/sec- , fsrMaxSnapshotBytesPerSec :: Maybe Bytes- -- ^ Throttle node snapshot rate. If not supplied, defaults to 40mb/sec- } deriving (Eq, Show)--instance SnapshotRepo FsSnapshotRepo where- toGSnapshotRepo FsSnapshotRepo {..} =- GenericSnapshotRepo fsrName fsRepoType (GenericSnapshotRepoSettings settings)- where- Object settings = object $ [ "location" .= fsrLocation- , "compress" .= fsrCompressMetadata- ] ++ optionalPairs- optionalPairs = catMaybes [ ("chunk_size" .=) <$> fsrChunkSize- , ("max_restore_bytes_per_sec" .=) <$> fsrMaxRestoreBytesPerSec- , ("max_snapshot_bytes_per_sec" .=) <$> fsrMaxSnapshotBytesPerSec- ]- fromGSnapshotRepo GenericSnapshotRepo {..}- | gSnapshotRepoType == fsRepoType = do- let o = gSnapshotRepoSettingsObject gSnapshotRepoSettings- parseRepo $ do- FsSnapshotRepo gSnapshotRepoName <$> o .: "location"- <*> o .:? "compress" .!= False- <*> o .:? "chunk_size"- <*> o .:? "max_restore_bytes_per_sec"- <*> o .:? "max_snapshot_bytes_per_sec"- | otherwise = Left (RepoTypeMismatch fsRepoType gSnapshotRepoType)--data SnapshotCreateSettings = SnapshotCreateSettings {- snapWaitForCompletion :: Bool- -- ^ Should the API call return immediately after initializing- -- the snapshot or wait until completed? Note that if this is- -- enabled it could wait a long time, so you should adjust your- -- 'ManagerSettings' accordingly to set long timeouts or- -- explicitly handle timeouts.- , snapIndices :: Maybe IndexSelection- -- ^ Nothing will snapshot all indices. Just [] is permissable and- -- will essentially be a no-op snapshot.- , snapIgnoreUnavailable :: Bool- -- ^ If set to True, any matched indices that don't exist will be- -- ignored. Otherwise it will be an error and fail.- , snapIncludeGlobalState :: Bool- , snapPartial :: Bool- -- ^ If some indices failed to snapshot (e.g. if not all primary- -- shards are available), should the process proceed?- } deriving (Eq, Show)---- | Reasonable defaults for snapshot creation------ * snapWaitForCompletion False--- * snapIndices Nothing--- * snapIgnoreUnavailable False--- * snapIncludeGlobalState True--- * snapPartial False-defaultSnapshotCreateSettings :: SnapshotCreateSettings-defaultSnapshotCreateSettings = SnapshotCreateSettings {- snapWaitForCompletion = False- , snapIndices = Nothing- , snapIgnoreUnavailable = False- , snapIncludeGlobalState = True- , snapPartial = False- }---data SnapshotSelection = SnapshotList (NonEmpty SnapshotPattern)- | AllSnapshots deriving (Eq, Show)----- | Either specifies an exact snapshot name or one with globs in it,--- e.g. @SnapPattern "foo*"@ __NOTE__: Patterns are not supported on--- ES < 1.7-data SnapshotPattern = ExactSnap SnapshotName- | SnapPattern Text- deriving (Eq, Show)----- | General information about the state of a snapshot. Has some--- redundancies with 'SnapshotStatus'-data SnapshotInfo = SnapshotInfo {- snapInfoShards :: ShardResult- , snapInfoFailures :: [SnapshotShardFailure]- , snapInfoDuration :: NominalDiffTime- , snapInfoEndTime :: UTCTime- , snapInfoStartTime :: UTCTime- , snapInfoState :: SnapshotState- , snapInfoIndices :: [IndexName]- , snapInfoName :: SnapshotName- } deriving (Eq, Show)---instance FromJSON SnapshotInfo where- parseJSON = withObject "SnapshotInfo" parse- where- parse o = SnapshotInfo <$> o .: "shards"- <*> o .: "failures"- <*> (unMS <$> o .: "duration_in_millis")- <*> (posixMS <$> o .: "end_time_in_millis")- <*> (posixMS <$> o .: "start_time_in_millis")- <*> o .: "state"- <*> o .: "indices"- <*> o .: "snapshot"--data SnapshotShardFailure = SnapshotShardFailure {- snapShardFailureIndex :: IndexName- , snapShardFailureNodeId :: Maybe NodeName -- I'm not 100% sure this isn't actually 'FullNodeId'- , snapShardFailureReason :: Text- , snapShardFailureShardId :: ShardId- } deriving (Eq, Show)---instance FromJSON SnapshotShardFailure where- parseJSON = withObject "SnapshotShardFailure" parse- where- parse o = SnapshotShardFailure <$> o .: "index"- <*> o .:? "node_id"- <*> o .: "reason"- <*> o .: "shard_id"--parseRepo :: Parser a -> Either SnapshotRepoConversionError a-parseRepo parser = case parseEither (const parser) () of- Left e -> Left (OtherRepoConversionError (T.pack e))- Right a -> Right a--parseNodeStats :: FullNodeId -> Object -> Parser NodeStats-parseNodeStats fnid o = do- NodeStats <$> o .: "name"- <*> pure fnid- <*> o .:? "breakers"- <*> o .: "http"- <*> o .: "transport"- <*> o .: "fs"- <*> o .: "network"- <*> o .: "thread_pool"- <*> o .: "jvm"- <*> o .: "process"- <*> o .: "os"- <*> o .: "indices"--parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo-parseNodeInfo nid o =- NodeInfo <$> o .: "http_address"- <*> o .: "build"- <*> o .: "version"- <*> o .: "ip"- <*> o .: "host"- <*> o .: "transport_address"- <*> o .: "name"- <*> pure nid- <*> o .: "plugins"- <*> o .: "http"- <*> o .: "transport"- <*> o .: "network"- <*> o .: "thread_pool"- <*> o .: "jvm"- <*> o .: "process"- <*> o .: "os"- <*> o .: "settings"---- | Reasonable defaults for snapshot restores------ * snapRestoreWaitForCompletion False--- * snapRestoreIndices Nothing--- * snapRestoreIgnoreUnavailable False--- * snapRestoreIncludeGlobalState True--- * snapRestoreRenamePattern Nothing--- * snapRestoreRenameReplacement Nothing--- * snapRestorePartial False--- * snapRestoreIncludeAliases True--- * snapRestoreIndexSettingsOverrides Nothing--- * snapRestoreIgnoreIndexSettings Nothing-defaultSnapshotRestoreSettings :: SnapshotRestoreSettings-defaultSnapshotRestoreSettings = SnapshotRestoreSettings {- snapRestoreWaitForCompletion = False- , snapRestoreIndices = Nothing- , snapRestoreIgnoreUnavailable = False- , snapRestoreIncludeGlobalState = True- , snapRestoreRenamePattern = Nothing- , snapRestoreRenameReplacement = Nothing- , snapRestorePartial = False- , snapRestoreIncludeAliases = True- , snapRestoreIndexSettingsOverrides = Nothing- , snapRestoreIgnoreIndexSettings = Nothing- }--fsRepoType :: SnapshotRepoType-fsRepoType = SnapshotRepoType "fs"--{-| 'Reply' and 'Method' are type synonyms from 'Network.HTTP.Types.Method.Method' -}-type Reply = Network.HTTP.Client.Response LByteString--instance FromJSON IndexSettingsSummary where- parseJSON = withObject "IndexSettingsSummary" parse- where parse o = case HM.toList o of- [(ixn, v@(Object o'))] -> IndexSettingsSummary (IndexName ixn)- <$> parseJSON v- <*> (fmap (filter (not . redundant)) . parseSettings =<< o' .: "settings")- _ -> fail "Expected single-key object with index name"- redundant (NumberOfReplicas _) = True- redundant _ = False--instance ToJSON VersionNumber where- toJSON = toJSON . Vers.showVersion . versionNumber--instance FromJSON VersionNumber where- parseJSON = withText "VersionNumber" (parse . T.unpack)- where- parse s = case filter (null . snd)(RP.readP_to_S Vers.parseVersion s) of- [(v, _)] -> pure (VersionNumber v)- [] -> fail ("Invalid version string " ++ s)- xs -> fail ("Ambiguous version string " ++ s ++ " (" ++ intercalate ", " (Vers.showVersion . fst <$> xs) ++ ")")--instance ToJSON Interval where- toJSON Year = "year"- toJSON Quarter = "quarter"- toJSON Month = "month"- toJSON Week = "week"- toJSON Day = "day"- toJSON Hour = "hour"- toJSON Minute = "minute"- toJSON Second = "second"- toJSON (FractionalInterval fraction interval) = toJSON $ show fraction ++ show interval--parseStringInterval :: (Monad m) => String -> m NominalDiffTime-parseStringInterval s = case span isNumber s of- ("", _) -> fail "Invalid interval"- (nS, unitS) -> case (readMay nS, readMay unitS) of- (Just n, Just unit) -> return (fromInteger (n * unitNDT unit))- (Nothing, _) -> fail "Invalid interval number"- (_, Nothing) -> fail "Invalid interval unit"- where- unitNDT Seconds = 1- unitNDT Minutes = 60- unitNDT Hours = 60 * 60- unitNDT Days = 24 * 60 * 60- unitNDT Weeks = 7 * 24 * 60 * 60--instance ToJSON IndexSettings where- toJSON (IndexSettings s r) = object ["settings" .=- object ["index" .=- object ["number_of_shards" .= s, "number_of_replicas" .= r]- ]- ]--instance FromJSON IndexSettings where- parseJSON = withObject "IndexSettings" parse- where parse o = do s <- o .: "settings"- i <- s .: "index"- IndexSettings <$> i .: "number_of_shards"- <*> i .: "number_of_replicas"--instance Bounded DocVersion where- minBound = DocVersion 1- maxBound = DocVersion 9200000000000000000 -- 9.2e+18--instance Enum DocVersion where- succ x- | x /= maxBound = DocVersion (succ $ docVersionNumber x)- | otherwise = succError "DocVersion"- pred x- | x /= minBound = DocVersion (pred $ docVersionNumber x)- | otherwise = predError "DocVersion"- toEnum i =- fromMaybe (error $ show i ++ " out of DocVersion range") $ mkDocVersion i- fromEnum = docVersionNumber- enumFrom = boundedEnumFrom- enumFromThen = boundedEnumFromThen--instance FromJSON ShardResult where- parseJSON (Object v) = ShardResult <$>- v .: "total" <*>- v .: "successful" <*>- v .: "failed"- parseJSON _ = empty--instance FromJSON NodeBreakerStats where- parseJSON = withObject "NodeBreakerStats" parse- where- parse o = NodeBreakerStats <$> o .: "tripped"- <*> o .: "overhead"- <*> o .: "estimated_size_in_bytes"- <*> o .: "limit_size_in_bytes"--instance FromJSON NodeHTTPStats where- parseJSON = withObject "NodeHTTPStats" parse- where- parse o = NodeHTTPStats <$> o .: "total_opened"- <*> o .: "current_open"--instance FromJSON NodeTransportStats where- parseJSON = withObject "NodeTransportStats" parse- where- parse o = NodeTransportStats <$> o .: "tx_size_in_bytes"- <*> o .: "tx_count"- <*> o .: "rx_size_in_bytes"- <*> o .: "rx_count"- <*> o .: "server_open"--instance FromJSON NodeFSStats where- parseJSON = withObject "NodeFSStats" parse- where- parse o = NodeFSStats <$> o .: "data"- <*> o .: "total"- <*> (posixMS <$> o .: "timestamp")--instance FromJSON NodeDataPathStats where- parseJSON = withObject "NodeDataPathStats" parse- where- parse o =- NodeDataPathStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")- <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")- <*> o .:? "disk_io_size_in_bytes"- <*> o .:? "disk_write_size_in_bytes"- <*> o .:? "disk_read_size_in_bytes"- <*> o .:? "disk_io_op"- <*> o .:? "disk_writes"- <*> o .:? "disk_reads"- <*> o .: "available_in_bytes"- <*> o .: "free_in_bytes"- <*> o .: "total_in_bytes"- <*> o .:? "type"- <*> o .: "dev"- <*> o .: "mount"- <*> o .: "path"--instance FromJSON NodeNetworkStats where- parseJSON = withObject "NodeNetworkStats" parse- where- parse o = do- tcp <- o .: "tcp"- NodeNetworkStats <$> tcp .: "out_rsts"- <*> tcp .: "in_errs"- <*> tcp .: "attempt_fails"- <*> tcp .: "estab_resets"- <*> tcp .: "retrans_segs"- <*> tcp .: "out_segs"- <*> tcp .: "in_segs"- <*> tcp .: "curr_estab"- <*> tcp .: "passive_opens"- <*> tcp .: "active_opens"--instance FromJSON NodeThreadPoolsStats where- parseJSON = withObject "NodeThreadPoolsStats" parse- where- parse o = NodeThreadPoolsStats <$> o .: "snapshot"- <*> o .: "bulk"- <*> o .: "merge"- <*> o .: "get"- <*> o .: "management"- <*> o .:? "fetch_shard_store"- <*> o .: "optimize"- <*> o .: "flush"- <*> o .: "search"- <*> o .: "warmer"- <*> o .: "generic"- <*> o .: "suggest"- <*> o .: "refresh"- <*> o .: "index"- <*> o .:? "listener"- <*> o .:? "fetch_shard_started"- <*> o .: "percolate"-instance FromJSON NodeThreadPoolStats where- parseJSON = withObject "NodeThreadPoolStats" parse- where- parse o = NodeThreadPoolStats <$> o .: "completed"- <*> o .: "largest"- <*> o .: "rejected"- <*> o .: "active"- <*> o .: "queue"- <*> o .: "threads"--instance FromJSON NodeJVMStats where- parseJSON = withObject "NodeJVMStats" parse- where- parse o = do- bufferPools <- o .: "buffer_pools"- mapped <- bufferPools .: "mapped"- direct <- bufferPools .: "direct"- gc <- o .: "gc"- collectors <- gc .: "collectors"- oldC <- collectors .: "old"- youngC <- collectors .: "young"- threads <- o .: "threads"- mem <- o .: "mem"- pools <- mem .: "pools"- oldM <- pools .: "old"- survivorM <- pools .: "survivor"- youngM <- pools .: "young"- NodeJVMStats <$> pure mapped- <*> pure direct- <*> pure oldC- <*> pure youngC- <*> threads .: "peak_count"- <*> threads .: "count"- <*> pure oldM- <*> pure survivorM- <*> pure youngM- <*> mem .: "non_heap_committed_in_bytes"- <*> mem .: "non_heap_used_in_bytes"- <*> mem .: "heap_max_in_bytes"- <*> mem .: "heap_committed_in_bytes"- <*> mem .: "heap_used_percent"- <*> mem .: "heap_used_in_bytes"- <*> (unMS <$> o .: "uptime_in_millis")- <*> (posixMS <$> o .: "timestamp")--instance FromJSON JVMBufferPoolStats where- parseJSON = withObject "JVMBufferPoolStats" parse- where- parse o = JVMBufferPoolStats <$> o .: "total_capacity_in_bytes"- <*> o .: "used_in_bytes"- <*> o .: "count"--instance FromJSON JVMGCStats where- parseJSON = withObject "JVMGCStats" parse- where- parse o = JVMGCStats <$> (unMS <$> o .: "collection_time_in_millis")- <*> o .: "collection_count"--instance FromJSON JVMPoolStats where- parseJSON = withObject "JVMPoolStats" parse- where- parse o = JVMPoolStats <$> o .: "peak_max_in_bytes"- <*> o .: "peak_used_in_bytes"- <*> o .: "max_in_bytes"- <*> o .: "used_in_bytes"--instance FromJSON NodeProcessStats where- parseJSON = withObject "NodeProcessStats" parse- where- parse o = do- mem <- o .: "mem"- cpu <- o .: "cpu"- NodeProcessStats <$> mem .: "total_virtual_in_bytes"- <*> mem .: "share_in_bytes"- <*> mem .: "resident_in_bytes"- <*> (unMS <$> cpu .: "total_in_millis")- <*> (unMS <$> cpu .: "user_in_millis")- <*> (unMS <$> cpu .: "sys_in_millis")- <*> cpu .: "percent"- <*> o .: "open_file_descriptors"- <*> (posixMS <$> o .: "timestamp")--instance FromJSON NodeOSStats where- parseJSON = withObject "NodeOSStats" parse- where- parse o = do- swap <- o .: "swap"- mem <- o .: "mem"- cpu <- o .: "cpu"- load <- o .:? "load_average"- NodeOSStats <$> swap .: "free_in_bytes"- <*> swap .: "used_in_bytes"- <*> mem .: "actual_used_in_bytes"- <*> mem .: "actual_free_in_bytes"- <*> mem .: "used_percent"- <*> mem .: "free_percent"- <*> mem .: "used_in_bytes"- <*> mem .: "free_in_bytes"- <*> cpu .: "stolen"- <*> cpu .: "usage"- <*> cpu .: "idle"- <*> cpu .: "user"- <*> cpu .: "sys"- <*> pure load- <*> (unMS <$> o .: "uptime_in_millis")- <*> (posixMS <$> o .: "timestamp")--instance FromJSON LoadAvgs where- parseJSON = withArray "LoadAvgs" parse- where- parse v = case V.toList v of- [one, five, fifteen] -> LoadAvgs <$> parseJSON one- <*> parseJSON five- <*> parseJSON fifteen- _ -> fail "Expecting a triple of Doubles"--instance FromJSON NodeIndicesStats where- parseJSON = withObject "NodeIndicesStats" parse- where- parse o = do- let (.::) mv k = case mv of- Just v -> Just <$> v .: k- Nothing -> pure Nothing- mRecovery <- o .:? "recovery"- mQueryCache <- o .:? "query_cache"- suggest <- o .: "suggest"- translog <- o .: "translog"- segments <- o .: "segments"- completion <- o .: "completion"- percolate <- o .: "percolate"- fielddata <- o .: "fielddata"- idCache <- o .: "id_cache"- filterCache <- o .: "filter_cache"- warmer <- o .: "warmer"- flush <- o .: "flush"- refresh <- o .: "refresh"- merges <- o .: "merges"- search <- o .: "search"- getStats <- o .: "get"- indexing <- o .: "indexing"- store <- o .: "store"- docs <- o .: "docs"- NodeIndicesStats <$> (fmap unMS <$> mRecovery .:: "throttle_time_in_millis")- <*> mRecovery .:: "current_as_target"- <*> mRecovery .:: "current_as_source"- <*> mQueryCache .:: "miss_count"- <*> mQueryCache .:: "hit_count"- <*> mQueryCache .:: "evictions"- <*> mQueryCache .:: "memory_size_in_bytes"- <*> suggest .: "current"- <*> (unMS <$> suggest .: "time_in_millis")- <*> suggest .: "total"- <*> translog .: "size_in_bytes"- <*> translog .: "operations"- <*> segments .:? "fixed_bit_set_memory_in_bytes"- <*> segments .: "version_map_memory_in_bytes"- <*> segments .:? "index_writer_max_memory_in_bytes"- <*> segments .: "index_writer_memory_in_bytes"- <*> segments .: "memory_in_bytes"- <*> segments .: "count"- <*> completion .: "size_in_bytes"- <*> percolate .: "queries"- <*> percolate .: "memory_size_in_bytes"- <*> percolate .: "current"- <*> (unMS <$> percolate .: "time_in_millis")- <*> percolate .: "total"- <*> fielddata .: "evictions"- <*> fielddata .: "memory_size_in_bytes"- <*> idCache .: "memory_size_in_bytes"- <*> filterCache .: "evictions"- <*> filterCache .: "memory_size_in_bytes"- <*> (unMS <$> warmer .: "total_time_in_millis")- <*> warmer .: "total"- <*> warmer .: "current"- <*> (unMS <$> flush .: "total_time_in_millis")- <*> flush .: "total"- <*> (unMS <$> refresh .: "total_time_in_millis")- <*> refresh .: "total"- <*> merges .: "total_size_in_bytes"- <*> merges .: "total_docs"- <*> (unMS <$> merges .: "total_time_in_millis")- <*> merges .: "total"- <*> merges .: "current_size_in_bytes"- <*> merges .: "current_docs"- <*> merges .: "current"- <*> search .: "fetch_current"- <*> (unMS <$> search .: "fetch_time_in_millis")- <*> search .: "fetch_total"- <*> search .: "query_current"- <*> (unMS <$> search .: "query_time_in_millis")- <*> search .: "query_total"- <*> search .: "open_contexts"- <*> getStats .: "current"- <*> (unMS <$> getStats .: "missing_time_in_millis")- <*> getStats .: "missing_total"- <*> (unMS <$> getStats .: "exists_time_in_millis")- <*> getStats .: "exists_total"- <*> (unMS <$> getStats .: "time_in_millis")- <*> getStats .: "total"- <*> (fmap unMS <$> indexing .:? "throttle_time_in_millis")- <*> indexing .:? "is_throttled"- <*> indexing .:? "noop_update_total"- <*> indexing .: "delete_current"- <*> (unMS <$> indexing .: "delete_time_in_millis")- <*> indexing .: "delete_total"- <*> indexing .: "index_current"- <*> (unMS <$> indexing .: "index_time_in_millis")- <*> indexing .: "index_total"- <*> (unMS <$> store .: "throttle_time_in_millis")- <*> store .: "size_in_bytes"- <*> docs .: "deleted"- <*> docs .: "count"--instance FromJSON NodeBreakersStats where- parseJSON = withObject "NodeBreakersStats" parse- where- parse o = NodeBreakersStats <$> o .: "parent"- <*> o .: "request"- <*> o .: "fielddata"--instance FromJSON NodePluginInfo where- parseJSON = withObject "NodePluginInfo" parse- where- parse o = NodePluginInfo <$> o .: "site"- <*> o .: "jvm"- <*> o .: "description"- <*> o .: "version"- <*> o .: "name"--instance FromJSON NodeHTTPInfo where- parseJSON = withObject "NodeHTTPInfo" parse- where- parse o = NodeHTTPInfo <$> o .: "max_content_length_in_bytes"- <*> parseJSON (Object o)--instance FromJSON NodeTransportInfo where- parseJSON = withObject "NodeTransportInfo" parse- where- parse o = NodeTransportInfo <$> (maybe (return mempty) parseProfiles =<< o .:? "profiles")- <*> parseJSON (Object o)- parseProfiles (Object o) | HM.null o = return []- parseProfiles v@(Array _) = parseJSON v- parseProfiles Null = return []- parseProfiles _ = fail "Could not parse profiles"--instance FromJSON NodeNetworkInfo where- parseJSON = withObject "NodeNetworkInfo" parse- where- parse o = NodeNetworkInfo <$> o .: "primary_interface"- <*> (unMS <$> o .: "refresh_interval_in_millis")--instance FromJSON NodeNetworkInterface where- parseJSON = withObject "NodeNetworkInterface" parse- where- parse o = NodeNetworkInterface <$> o .: "mac_address"- <*> o .: "name"- <*> o .: "address"--instance FromJSON NodeJVMInfo where- parseJSON = withObject "NodeJVMInfo" parse- where- parse o = NodeJVMInfo <$> o .: "memory_pools"- <*> o .: "gc_collectors"- <*> o .: "mem"- <*> (posixMS <$> o .: "start_time_in_millis")- <*> o .: "vm_vendor"- <*> o .: "vm_version"- <*> o .: "vm_name"- <*> (unJVMVersion <$> o .: "version")- <*> o .: "pid"--instance FromJSON NodeThreadPoolsInfo where- parseJSON = withObject "NodeThreadPoolsInfo" parse- where- parse o = NodeThreadPoolsInfo <$> o .: "refresh"- <*> o .: "management"- <*> o .: "percolate"- <*> o .:? "listener"- <*> o .:? "fetch_shard_started"- <*> o .: "search"- <*> o .: "flush"- <*> o .: "warmer"- <*> o .: "optimize"- <*> o .: "bulk"- <*> o .: "suggest"- <*> o .: "merge"- <*> o .: "snapshot"- <*> o .: "get"- <*> o .:? "fetch_shard_store"- <*> o .: "index"- <*> o .: "generic"--instance FromJSON NodeProcessInfo where- parseJSON = withObject "NodeProcessInfo" parse- where- parse o = NodeProcessInfo <$> o .: "mlockall"- <*> o .: "max_file_descriptors"- <*> o .: "id"- <*> (unMS <$> o .: "refresh_interval_in_millis")--instance FromJSON NodeOSInfo where- parseJSON = withObject "NodeOSInfo" parse- where- parse o = do- swap <- o .: "swap"- mem <- o .: "mem"- NodeOSInfo <$> swap .: "total_in_bytes"- <*> mem .: "total_in_bytes"- <*> o .: "cpu"- <*> o .: "available_processors"- <*> (unMS <$> o .: "refresh_interval_in_millis")--instance FromJSON ReplicaBounds where- parseJSON v = withText "ReplicaBounds" parseText v- <|> withBool "ReplicaBounds" parseBool v- where parseText t = case T.splitOn "-" t of- [a, "all"] -> ReplicasLowerBounded <$> parseReadText a- [a, b] -> ReplicasBounded <$> parseReadText a- <*> parseReadText b- _ -> fail ("Could not parse ReplicaBounds: " <> show t)- parseBool False = pure ReplicasUnbounded- parseBool _ = fail "ReplicasUnbounded cannot be represented with True"--instance FromJSON NominalDiffTimeJSON where- parseJSON = withText "NominalDiffTime" parse- where parse t = case T.takeEnd 1 t of- "s" -> NominalDiffTimeJSON . fromInteger <$> parseReadText (T.dropEnd 1 t)- _ -> fail "Invalid or missing NominalDiffTime unit (expected s)"--instance FromJSON AllocationPolicy where- parseJSON = withText "AllocationPolicy" parse- where parse "all" = pure AllocAll- parse "primaries" = pure AllocPrimaries- parse "new_primaries" = pure AllocNewPrimaries- parse "none" = pure AllocNone- parse t = fail ("Invlaid AllocationPolicy: " <> show t)--instance ToJSON CompoundFormat where- toJSON (CompoundFileFormat x) = Bool x- toJSON (MergeSegmentVsTotalIndex x) = toJSON x--instance FromJSON CompoundFormat where- parseJSON v = CompoundFileFormat <$> parseJSON v- <|> MergeSegmentVsTotalIndex <$> parseJSON v--instance FromJSON NodeFSTotalStats where- parseJSON = withObject "NodeFSTotalStats" parse- where- parse o = NodeFSTotalStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")- <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")- <*> o .:? "disk_io_size_in_bytes"- <*> o .:? "disk_write_size_in_bytes"- <*> o .:? "disk_read_size_in_bytes"- <*> o .:? "disk_io_op"- <*> o .:? "disk_writes"- <*> o .:? "disk_reads"- <*> o .: "available_in_bytes"- <*> o .: "free_in_bytes"- <*> o .: "total_in_bytes"--instance FromJSON BoundTransportAddress where- parseJSON = withObject "BoundTransportAddress" parse- where- parse o = BoundTransportAddress <$> o .: "publish_address"- <*> o .: "bound_address"--instance FromJSON JVMMemoryInfo where- parseJSON = withObject "JVMMemoryInfo" parse- where- parse o = JVMMemoryInfo <$> o .: "direct_max_in_bytes"- <*> o .: "non_heap_max_in_bytes"- <*> o .: "non_heap_init_in_bytes"- <*> o .: "heap_max_in_bytes"- <*> o .: "heap_init_in_bytes"--instance FromJSON JVMVersion where- parseJSON (String t) =- JVMVersion <$> parseJSON (String (T.replace "_" "." t))- parseJSON v = JVMVersion <$> parseJSON v--instance FromJSON NodeThreadPoolInfo where- parseJSON = withObject "NodeThreadPoolInfo" parse- where- parse o = do- ka <- maybe (return Nothing) (fmap Just . parseStringInterval) =<< o .:? "keep_alive"- NodeThreadPoolInfo <$> (parseJSON . unStringlyTypeJSON =<< o .: "queue_size")- <*> pure ka- <*> o .:? "min"- <*> o .:? "max"- <*> o .: "type"--instance FromJSON CPUInfo where- parseJSON = withObject "CPUInfo" parse- where- parse o = CPUInfo <$> o .: "cache_size_in_bytes"- <*> o .: "cores_per_socket"- <*> o .: "total_sockets"- <*> o .: "total_cores"- <*> o .: "mhz"- <*> o .: "model"- <*> o .: "vendor"--instance FromJSON ThreadPoolSize where- parseJSON v = parseAsNumber v <|> parseAsString v- where- parseAsNumber = parseAsInt <=< parseJSON- parseAsInt (-1) = return ThreadPoolUnbounded- parseAsInt n- | n >= 0 = return (ThreadPoolBounded n)- | otherwise = fail "Thread pool size must be >= -1."- parseAsString = withText "ThreadPoolSize" $ \t ->- case first (readMay . T.unpack) (T.span isNumber t) of- (Just n, "k") -> return (ThreadPoolBounded (n * 1000))- (Just n, "") -> return (ThreadPoolBounded n)- _ -> fail ("Invalid thread pool size " <> T.unpack t)--instance FromJSON ThreadPoolType where- parseJSON = withText "ThreadPoolType" parse- where- parse "scaling" = return ThreadPoolScaling- parse "fixed" = return ThreadPoolFixed- parse "cached" = return ThreadPoolCached- parse e = fail ("Unexpected thread pool type" <> T.unpack e)--data Source =- NoSource- | SourcePatterns PatternOrPatterns- | SourceIncludeExclude Include Exclude- deriving (Show, Eq)--instance ToJSON Source where- toJSON NoSource = toJSON False- toJSON (SourcePatterns patterns) = toJSON patterns- toJSON (SourceIncludeExclude incl excl) = object [ "include" .= incl, "exclude" .= excl ]--data PatternOrPatterns =- PopPattern Pattern- | PopPatterns [Pattern]- deriving (Eq, Show)--data Include = Include [Pattern] deriving (Eq, Show)-data Exclude = Exclude [Pattern] deriving (Eq, Show)--newtype Pattern = Pattern Text deriving (Eq, Show)--newtype ScrollId = ScrollId Text deriving (Eq, Show, Ord, ToJSON, FromJSON)--instance ToJSON PatternOrPatterns where- toJSON (PopPattern pattern) = toJSON pattern- toJSON (PopPatterns patterns) = toJSON patterns--instance ToJSON Include where- toJSON (Include patterns) = toJSON patterns--instance ToJSON Exclude where- toJSON (Exclude patterns) = toJSON patterns--instance ToJSON Pattern where- toJSON (Pattern pattern) = toJSON pattern--instance FromJSON NodesStats where- parseJSON = withObject "NodesStats" parse- where- parse o = do- nodes <- o .: "nodes"- stats <- forM (HM.toList nodes) $ \(fullNID, v) -> do- node <- parseJSON v- parseNodeStats (FullNodeId fullNID) node- cn <- o .: "cluster_name"- return (NodesStats stats cn)--instance ToJSON UpdatableIndexSetting where- toJSON (NumberOfReplicas x) = oPath ("index" :| ["number_of_replicas"]) x- toJSON (AutoExpandReplicas x) = oPath ("index" :| ["auto_expand_replicas"]) x- toJSON (RefreshInterval x) = oPath ("index" :| ["refresh_interval"]) (NominalDiffTimeJSON x)- toJSON (IndexConcurrency x) = oPath ("index" :| ["concurrency"]) x- toJSON (FailOnMergeFailure x) = oPath ("index" :| ["fail_on_merge_failure"]) x- toJSON (TranslogFlushThresholdOps x) = oPath ("index" :| ["translog", "flush_threshold_ops"]) x- toJSON (TranslogFlushThresholdSize x) = oPath ("index" :| ["translog", "flush_threshold_size"]) x- toJSON (TranslogFlushThresholdPeriod x) = oPath ("index" :| ["translog", "flush_threshold_period"]) (NominalDiffTimeJSON x)- toJSON (TranslogDisableFlush x) = oPath ("index" :| ["translog", "disable_flush"]) x- toJSON (CacheFilterMaxSize x) = oPath ("index" :| ["cache", "filter", "max_size"]) x- toJSON (CacheFilterExpire x) = oPath ("index" :| ["cache", "filter", "expire"]) (NominalDiffTimeJSON <$> x)- toJSON (GatewaySnapshotInterval x) = oPath ("index" :| ["gateway", "snapshot_interval"]) (NominalDiffTimeJSON x)- toJSON (RoutingAllocationInclude fs) = oPath ("index" :| ["routing", "allocation", "include"]) (attrFilterJSON fs)- toJSON (RoutingAllocationExclude fs) = oPath ("index" :| ["routing", "allocation", "exclude"]) (attrFilterJSON fs)- toJSON (RoutingAllocationRequire fs) = oPath ("index" :| ["routing", "allocation", "require"]) (attrFilterJSON fs)- toJSON (RoutingAllocationEnable x) = oPath ("index" :| ["routing", "allocation", "enable"]) x- toJSON (RoutingAllocationShardsPerNode x) = oPath ("index" :| ["routing", "allocation", "total_shards_per_node"]) x- toJSON (RecoveryInitialShards x) = oPath ("index" :| ["recovery", "initial_shards"]) x- toJSON (GCDeletes x) = oPath ("index" :| ["gc_deletes"]) (NominalDiffTimeJSON x)- toJSON (TTLDisablePurge x) = oPath ("index" :| ["ttl", "disable_purge"]) x- toJSON (TranslogFSType x) = oPath ("index" :| ["translog", "fs", "type"]) x- toJSON (IndexCompoundFormat x) = oPath ("index" :| ["compound_format"]) x- toJSON (IndexCompoundOnFlush x) = oPath ("index" :| ["compound_on_flush"]) x- toJSON (WarmerEnabled x) = oPath ("index" :| ["warmer", "enabled"]) x- toJSON (BlocksReadOnly x) = oPath ("blocks" :| ["read_only"]) x- toJSON (BlocksRead x) = oPath ("blocks" :| ["read"]) x- toJSON (BlocksWrite x) = oPath ("blocks" :| ["write"]) x- toJSON (BlocksMetaData x) = oPath ("blocks" :| ["metadata"]) x--instance FromJSON UpdatableIndexSetting where- parseJSON = withObject "UpdatableIndexSetting" parse- where parse o = numberOfReplicas `taggedAt` ["index", "number_of_replicas"]- <|> autoExpandReplicas `taggedAt` ["index", "auto_expand_replicas"]- <|> refreshInterval `taggedAt` ["index", "refresh_interval"]- <|> indexConcurrency `taggedAt` ["index", "concurrency"]- <|> failOnMergeFailure `taggedAt` ["index", "fail_on_merge_failure"]- <|> translogFlushThresholdOps `taggedAt` ["index", "translog", "flush_threshold_ops"]- <|> translogFlushThresholdSize `taggedAt` ["index", "translog", "flush_threshold_size"]- <|> translogFlushThresholdPeriod `taggedAt` ["index", "translog", "flush_threshold_period"]- <|> translogDisableFlush `taggedAt` ["index", "translog", "disable_flush"]- <|> cacheFilterMaxSize `taggedAt` ["index", "cache", "filter", "max_size"]- <|> cacheFilterExpire `taggedAt` ["index", "cache", "filter", "expire"]- <|> gatewaySnapshotInterval `taggedAt` ["index", "gateway", "snapshot_interval"]- <|> routingAllocationInclude `taggedAt` ["index", "routing", "allocation", "include"]- <|> routingAllocationExclude `taggedAt` ["index", "routing", "allocation", "exclude"]- <|> routingAllocationRequire `taggedAt` ["index", "routing", "allocation", "require"]- <|> routingAllocationEnable `taggedAt` ["index", "routing", "allocation", "enable"]- <|> routingAllocationShardsPerNode `taggedAt` ["index", "routing", "allocation", "total_shards_per_node"]- <|> recoveryInitialShards `taggedAt` ["index", "recovery", "initial_shards"]- <|> gcDeletes `taggedAt` ["index", "gc_deletes"]- <|> ttlDisablePurge `taggedAt` ["index", "ttl", "disable_purge"]- <|> translogFSType `taggedAt` ["index", "translog", "fs", "type"]- <|> compoundFormat `taggedAt` ["index", "compound_format"]- <|> compoundOnFlush `taggedAt` ["index", "compound_on_flush"]- <|> warmerEnabled `taggedAt` ["index", "warmer", "enabled"]- <|> blocksReadOnly `taggedAt` ["blocks", "read_only"]- <|> blocksRead `taggedAt` ["blocks", "read"]- <|> blocksWrite `taggedAt` ["blocks", "write"]- <|> blocksMetaData `taggedAt` ["blocks", "metadata"]- where taggedAt f ks = taggedAt' f (Object o) ks- taggedAt' f v [] = f =<< (parseJSON v <|> (parseJSON (unStringlyTypeJSON v)))- taggedAt' f v (k:ks) = withObject "Object" (\o -> do v' <- o .: k- taggedAt' f v' ks) v- numberOfReplicas = pure . NumberOfReplicas- autoExpandReplicas = pure . AutoExpandReplicas- refreshInterval = pure . RefreshInterval . ndtJSON- indexConcurrency = pure . IndexConcurrency- failOnMergeFailure = pure . FailOnMergeFailure- translogFlushThresholdOps = pure . TranslogFlushThresholdOps- translogFlushThresholdSize = pure . TranslogFlushThresholdSize- translogFlushThresholdPeriod = pure . TranslogFlushThresholdPeriod . ndtJSON- translogDisableFlush = pure . TranslogDisableFlush- cacheFilterMaxSize = pure . CacheFilterMaxSize- cacheFilterExpire = pure . CacheFilterExpire . fmap ndtJSON- gatewaySnapshotInterval = pure . GatewaySnapshotInterval . ndtJSON- routingAllocationInclude = fmap RoutingAllocationInclude . parseAttrFilter- routingAllocationExclude = fmap RoutingAllocationExclude . parseAttrFilter- routingAllocationRequire = fmap RoutingAllocationRequire . parseAttrFilter- routingAllocationEnable = pure . RoutingAllocationEnable- routingAllocationShardsPerNode = pure . RoutingAllocationShardsPerNode- recoveryInitialShards = pure . RecoveryInitialShards- gcDeletes = pure . GCDeletes . ndtJSON- ttlDisablePurge = pure . TTLDisablePurge- translogFSType = pure . TranslogFSType- compoundFormat = pure . IndexCompoundFormat- compoundOnFlush = pure . IndexCompoundOnFlush- warmerEnabled = pure . WarmerEnabled- blocksReadOnly = pure . BlocksReadOnly- blocksRead = pure . BlocksRead- blocksWrite = pure . BlocksWrite- blocksMetaData = pure . BlocksMetaData--instance ToJSON ReplicaBounds where- toJSON (ReplicasBounded a b) = String (showText a <> "-" <> showText b)- toJSON (ReplicasLowerBounded a) = String (showText a <> "-all")- toJSON ReplicasUnbounded = Bool False--instance ToJSON NominalDiffTimeJSON where- toJSON (NominalDiffTimeJSON t) = String (showText (round t :: Integer) <> "s")--instance ToJSON AllocationPolicy where- toJSON AllocAll = String "all"- toJSON AllocPrimaries = String "primaries"- toJSON AllocNewPrimaries = String "new_primaries"- toJSON AllocNone = String "none"--instance ToJSON IndexTemplate where- toJSON (IndexTemplate p s m) = merge- (object [ "template" .= p- , "mappings" .= foldl' merge (object []) m- ])- (toJSON s)- where- merge (Object o1) (Object o2) = toJSON $ HM.union o1 o2- merge o Null = o- merge _ _ = undefined--instance FromJSON IndexAliasesSummary where- parseJSON = withObject "IndexAliasesSummary" parse- where parse o = IndexAliasesSummary . mconcat <$> mapM (uncurry go) (HM.toList o)- go ixn = withObject "index aliases" $ \ia -> do- aliases <- ia .:? "aliases" .!= mempty- forM (HM.toList aliases) $ \(aName, v) -> do- let indexAlias = IndexAlias (IndexName ixn) (IndexAliasName (IndexName aName))- IndexAliasSummary indexAlias <$> parseJSON v--instance ToJSON IndexAliasAction where- toJSON (AddAlias ia opts) = object ["add" .= (iaObj <> optsObj)]- where Object iaObj = toJSON ia- Object optsObj = toJSON opts- toJSON (RemoveAlias ia) = object ["remove" .= iaObj]- where Object iaObj = toJSON ia--instance ToJSON IndexAlias where- toJSON IndexAlias {..} = object ["index" .= srcIndex- , "alias" .= indexAlias- ]--instance FromJSON AliasRouting where- parseJSON = withObject "AliasRouting" parse- where parse o = parseAll o <|> parseGranular o- parseAll o = AllAliasRouting <$> o .: "routing"- parseGranular o = do- sr <- o .:? "search_routing"- ir <- o .:? "index_routing"- if isNothing sr && isNothing ir- then fail "Both search_routing and index_routing can't be blank"- else return (GranularAliasRouting sr ir)--instance FromJSON IndexAliasCreate where- parseJSON v = withObject "IndexAliasCreate" parse v- where parse o = IndexAliasCreate <$> optional (parseJSON v)- <*> o .:? "filter"--instance ToJSON IndexAliasCreate where- toJSON IndexAliasCreate {..} = Object (filterObj <> routingObj)- where filterObj = maybe mempty (HM.singleton "filter" . toJSON) aliasCreateFilter- Object routingObj = maybe (Object mempty) toJSON aliasCreateRouting--instance ToJSON AliasRouting where- toJSON (AllAliasRouting v) = object ["routing" .= v]- toJSON (GranularAliasRouting srch idx) = object (catMaybes prs)- where prs = [("search_routing" .=) <$> srch- ,("index_routing" .=) <$> idx]--instance ToJSON SearchAliasRouting where- toJSON (SearchAliasRouting rvs) = toJSON (T.intercalate "," (routingValue <$> toList rvs))--instance FromJSON SearchAliasRouting where- parseJSON = withText "SearchAliasRouting" parse- where parse t = SearchAliasRouting <$> parseNEJSON (String <$> T.splitOn "," t)--instance FromJSON EsError where- parseJSON (Object v) = EsError <$>- v .: "status" <*>- (v .: "error" <|> (v .: "error" >>= (.: "reason")))- parseJSON _ = empty
− src/Database/V1/Bloodhound/Internal/Highlight.hs
@@ -1,144 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Database.V1.Bloodhound.Internal.Highlight where---import Bloodhound.Import--import qualified Data.Map as M--import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query--type HitHighlight = M.Map Text [Text]--data Highlights = Highlights { globalsettings :: Maybe HighlightSettings- , highlightFields :: [FieldHighlight]- } deriving (Show, Eq)--instance ToJSON Highlights where- toJSON (Highlights global fields) =- omitNulls (("fields" .= fields)- : highlightSettingsPairs global)--data HighlightSettings = Plain PlainHighlight- | Postings PostingsHighlight- | FastVector FastVectorHighlight- deriving (Show, Eq)--data FieldHighlight = FieldHighlight FieldName (Maybe HighlightSettings)- deriving (Show, Eq)--data PlainHighlight =- PlainHighlight { plainCommon :: Maybe CommonHighlight- , plainNonPost :: Maybe NonPostings } deriving (Show, Eq)-- -- This requires that index_options are set to 'offset' in the mapping.-data PostingsHighlight = PostingsHighlight (Maybe CommonHighlight) deriving (Show, Eq)---- This requires that term_vector is set to 'with_positions_offsets' in the mapping.-data FastVectorHighlight =- FastVectorHighlight { fvCommon :: Maybe CommonHighlight- , fvNonPostSettings :: Maybe NonPostings- , boundaryChars :: Maybe Text- , boundaryMaxScan :: Maybe Int- , fragmentOffset :: Maybe Int- , matchedFields :: [Text]- , phraseLimit :: Maybe Int- } deriving (Show, Eq)--data CommonHighlight =- CommonHighlight { order :: Maybe Text- , forceSource :: Maybe Bool- , tag :: Maybe HighlightTag- , encoder :: Maybe HighlightEncoder- , noMatchSize :: Maybe Int- , highlightQuery :: Maybe Query- , requireFieldMatch :: Maybe Bool- } deriving (Show, Eq)---- Settings that are only applicable to FastVector and Plain highlighters.-data NonPostings =- NonPostings { fragmentSize :: Maybe Int- , numberOfFragments :: Maybe Int} deriving (Show, Eq)--data HighlightEncoder = DefaultEncoder- | HTMLEncoder- deriving (Show, Eq)---- NOTE: Should the tags use some kind of HTML type, rather than Text?-data HighlightTag = TagSchema Text- | CustomTags ([Text], [Text]) -- Only uses more than the first value in the lists if fvh- deriving (Show, Eq)--highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]-highlightSettingsPairs Nothing = []-highlightSettingsPairs (Just (Plain plh)) = plainHighPairs (Just plh)-highlightSettingsPairs (Just (Postings ph)) = postHighPairs (Just ph)-highlightSettingsPairs (Just (FastVector fvh)) = fastVectorHighPairs (Just fvh)--plainHighPairs :: Maybe PlainHighlight -> [Pair]-plainHighPairs Nothing = []-plainHighPairs (Just (PlainHighlight plCom plNonPost)) =- [ "type" .= String "plain"]- ++ commonHighlightPairs plCom- ++ nonPostingsToPairs plNonPost--postHighPairs :: Maybe PostingsHighlight -> [Pair]-postHighPairs Nothing = []-postHighPairs (Just (PostingsHighlight pCom)) =- ("type" .= String "postings")- : commonHighlightPairs pCom--fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]-fastVectorHighPairs Nothing = []-fastVectorHighPairs (Just- (FastVectorHighlight fvCom fvNonPostSettings' fvBoundChars- fvBoundMaxScan fvFragOff fvMatchedFields- fvPhraseLim)) =- [ "type" .= String "fvh"- , "boundary_chars" .= fvBoundChars- , "boundary_max_scan" .= fvBoundMaxScan- , "fragment_offset" .= fvFragOff- , "matched_fields" .= fvMatchedFields- , "phraseLimit" .= fvPhraseLim]- ++ commonHighlightPairs fvCom- ++ nonPostingsToPairs fvNonPostSettings'--commonHighlightPairs :: Maybe CommonHighlight -> [Pair]-commonHighlightPairs Nothing = []-commonHighlightPairs (Just (CommonHighlight chScore chForceSource chTag chEncoder- chNoMatchSize chHighlightQuery- chRequireFieldMatch)) =- [ "order" .= chScore- , "force_source" .= chForceSource- , "encoder" .= chEncoder- , "no_match_size" .= chNoMatchSize- , "highlight_query" .= chHighlightQuery- , "require_fieldMatch" .= chRequireFieldMatch]- ++ highlightTagToPairs chTag--nonPostingsToPairs :: Maybe NonPostings -> [Pair]-nonPostingsToPairs Nothing = []-nonPostingsToPairs (Just (NonPostings npFragSize npNumOfFrags)) =- [ "fragment_size" .= npFragSize- , "number_of_fragments" .= npNumOfFrags]--highlightTagToPairs :: Maybe HighlightTag -> [Pair]-highlightTagToPairs (Just (TagSchema _)) = [ "scheme" .= String "default"]-highlightTagToPairs (Just (CustomTags (pre, post))) = [ "pre_tags" .= pre- , "post_tags" .= post]-highlightTagToPairs Nothing = []--instance ToJSON FieldHighlight where- toJSON (FieldHighlight (FieldName fName) (Just fSettings)) =- object [ fName .= fSettings ]- toJSON (FieldHighlight (FieldName fName) Nothing) =- object [ fName .= emptyObject ]--instance ToJSON HighlightSettings where- toJSON hs = omitNulls (highlightSettingsPairs (Just hs))--instance ToJSON HighlightEncoder where- toJSON DefaultEncoder = String "default"- toJSON HTMLEncoder = String "html"
− src/Database/V1/Bloodhound/Internal/Newtypes.hs
@@ -1,211 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}--module Database.V1.Bloodhound.Internal.Newtypes where--import Bloodhound.Import--newtype From = From Int deriving (Eq, Show, ToJSON)-newtype Size = Size Int deriving (Eq, Show, ToJSON, FromJSON)---{-| 'FieldName' is used all over the place wherever a specific field within- a document needs to be specified, usually in 'Query's or 'Filter's.--}-newtype FieldName =- FieldName Text- deriving (Eq, Show, ToJSON, FromJSON)--newtype Boost =- Boost Double- deriving (Eq, Show, ToJSON, FromJSON)--newtype BoostTerms =- BoostTerms Double- deriving (Eq, Show, ToJSON, FromJSON)--{-| 'ReplicaCount' is part of 'IndexSettings' -}-newtype ReplicaCount =- ReplicaCount Int- deriving (Eq, Show, ToJSON)--{-| 'ShardCount' is part of 'IndexSettings' -}-newtype ShardCount =- ShardCount Int- deriving (Eq, Show, ToJSON)---{-| 'TemplateName' is used to describe which template to query/create/delete--}-newtype TemplateName = TemplateName Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'TemplatePattern' represents a pattern which is matched against index names--}-newtype TemplatePattern = TemplatePattern Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'MappingName' is part of mappings which are how ES describes and schematizes- the data in the indices.--}-newtype MappingName = MappingName Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'DocId' is a generic wrapper value for expressing unique Document IDs.- Can be set by the user or created by ES itself. Often used in client- functions for poking at specific documents.--}-newtype DocId = DocId Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'QueryString' is used to wrap query text bodies, be they human written or not.--}-newtype QueryString = QueryString Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'Script' is often used in place of 'FieldName' to specify more-complex ways of extracting a value from a document.--}-newtype Script = Script { scriptText :: Text } deriving (Eq, Show)--{-| 'CacheName' is used in 'RegexpFilter' for describing the- 'CacheKey' keyed caching behavior.--}-newtype CacheName = CacheName Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'CacheKey' is used in 'RegexpFilter' to key regex caching.--}-newtype CacheKey =- CacheKey Text deriving (Eq, Show, ToJSON, FromJSON)-newtype Existence =- Existence Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype NullValue =- NullValue Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype CutoffFrequency =- CutoffFrequency Double deriving (Eq, Show, ToJSON, FromJSON)-newtype Analyzer =- Analyzer Text deriving (Eq, Show, ToJSON, FromJSON)-newtype MaxExpansions =- MaxExpansions Int deriving (Eq, Show, ToJSON, FromJSON)--{-| 'Lenient', if set to true, will cause format based failures to be- ignored. I don't know what the bloody default is, Elasticsearch- documentation didn't say what it was. Let me know if you figure it out.--}-newtype Lenient =- Lenient Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype Tiebreaker =- Tiebreaker Double deriving (Eq, Show, ToJSON, FromJSON)--{-| 'MinimumMatch' controls how many should clauses in the bool query should- match. Can be an absolute value (2) or a percentage (30%) or a- combination of both.--}-newtype MinimumMatch =- MinimumMatch Int deriving (Eq, Show, ToJSON, FromJSON)-newtype DisableCoord =- DisableCoord Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype IgnoreTermFrequency =- IgnoreTermFrequency Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype MinimumTermFrequency =- MinimumTermFrequency Int deriving (Eq, Show, ToJSON, FromJSON)-newtype MaxQueryTerms =- MaxQueryTerms Int deriving (Eq, Show, ToJSON, FromJSON)-newtype Fuzziness =- Fuzziness Double deriving (Eq, Show, ToJSON, FromJSON)--{-| 'PrefixLength' is the prefix length used in queries, defaults to 0. -}-newtype PrefixLength =- PrefixLength Int deriving (Eq, Show, ToJSON, FromJSON)-newtype TypeName =- TypeName Text deriving (Eq, Show, ToJSON, FromJSON)-newtype PercentMatch =- PercentMatch Double deriving (Eq, Show, ToJSON, FromJSON)-newtype StopWord =- StopWord Text deriving (Eq, Show, ToJSON, FromJSON)-newtype QueryPath =- QueryPath Text deriving (Eq, Show, ToJSON, FromJSON)--{-| Allowing a wildcard at the beginning of a word (eg "*ing") is particularly- heavy, because all terms in the index need to be examined, just in case- they match. Leading wildcards can be disabled by setting- 'AllowLeadingWildcard' to false. -}-newtype AllowLeadingWildcard =- AllowLeadingWildcard Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype LowercaseExpanded =- LowercaseExpanded Bool deriving (Eq, Show, ToJSON, FromJSON)-newtype EnablePositionIncrements =- EnablePositionIncrements Bool deriving (Eq, Show, ToJSON, FromJSON)--{-| By default, wildcard terms in a query are not analyzed.- Setting 'AnalyzeWildcard' to true enables best-effort analysis.--}-newtype AnalyzeWildcard = AnalyzeWildcard Bool deriving (Eq, Show, ToJSON, FromJSON)--{-| 'GeneratePhraseQueries' defaults to false.--}-newtype GeneratePhraseQueries =- GeneratePhraseQueries Bool deriving (Eq, Show, ToJSON, FromJSON)--{-| 'Locale' is used for string conversions - defaults to ROOT.--}-newtype Locale = Locale Text deriving (Eq, Show, ToJSON, FromJSON)-newtype MaxWordLength = MaxWordLength Int deriving (Eq, Show, ToJSON, FromJSON)-newtype MinWordLength = MinWordLength Int deriving (Eq, Show, ToJSON, FromJSON)--{-| 'PhraseSlop' sets the default slop for phrases, 0 means exact- phrase matches. Default is 0.--}-newtype PhraseSlop = PhraseSlop Int deriving (Eq, Show, ToJSON, FromJSON)-newtype MinDocFrequency = MinDocFrequency Int deriving (Eq, Show, ToJSON, FromJSON)-newtype MaxDocFrequency = MaxDocFrequency Int deriving (Eq, Show, ToJSON, FromJSON)---- | Newtype wrapper to parse ES's concerning tendency to in some APIs return a floating point number of milliseconds since epoch ಠ_ಠ-newtype POSIXMS = POSIXMS { posixMS :: UTCTime }--instance FromJSON POSIXMS where- parseJSON = withScientific "POSIXMS" (return . parse)- where parse n = let n' = truncate n :: Integer- in POSIXMS (posixSecondsToUTCTime (fromInteger (n' `div` 1000)))--{-| 'IndexName' is used to describe which index to query/create/delete--}-newtype IndexName = IndexName Text deriving (Eq, Show, ToJSON, FromJSON)--newtype IndexAliasName = IndexAliasName { indexAliasName :: IndexName } deriving (Eq, Show, ToJSON)--type Score = Maybe Double--newtype ShardId = ShardId { shardId :: Int }- deriving (Eq, Show, FromJSON)---- | Milliseconds-newtype MS = MS NominalDiffTime----- keeps the unexported constructor warnings at bay-unMS :: MS -> NominalDiffTime-unMS (MS t) = t--instance FromJSON MS where- parseJSON = withScientific "MS" (return . MS . parse)- where- parse n = fromInteger ((truncate n) * 1000)--newtype MaybeNA a = MaybeNA { unMaybeNA :: Maybe a }- deriving (Show, Eq)--instance FromJSON a => FromJSON (MaybeNA a) where- parseJSON (String "NA") = pure $ MaybeNA Nothing- parseJSON o = MaybeNA . Just <$> parseJSON o--newtype SnapshotName = SnapshotName { snapshotName :: Text }- deriving (Show, Eq, Ord, ToJSON, FromJSON)--instance FromJSON ShardCount where- parseJSON v = parseAsInt v- <|> parseAsString v- where parseAsInt = fmap ShardCount . parseJSON- parseAsString = withText "ShardCount" (fmap ShardCount . parseReadText)---instance FromJSON ReplicaCount where- parseJSON v = parseAsInt v- <|> parseAsString v- where parseAsInt = fmap ReplicaCount . parseJSON- parseAsString = withText "ReplicaCount" (fmap ReplicaCount . parseReadText)
− src/Database/V1/Bloodhound/Internal/Query.hs
@@ -1,1689 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V1.Bloodhound.Internal.Query where---import Bloodhound.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.Text as T--import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Types.Class---data GeoPoint =- GeoPoint { geoField :: FieldName- , latLon :: LatLon} deriving (Eq, Show)--instance ToJSON GeoPoint where- toJSON (GeoPoint (FieldName geoPointField) geoPointLatLon) =- object [ geoPointField .= geoPointLatLon ]---data LatLon = LatLon { lat :: Double- , lon :: Double } deriving (Eq, Show)--instance ToJSON LatLon where- toJSON (LatLon lLat lLon) =- object ["lat" .= lLat- , "lon" .= lLon]--instance FromJSON LatLon where- parseJSON = withObject "LatLon" parse- where parse o = LatLon <$> o .: "lat"- <*> o .: "lon"--data DistanceUnit = Miles- | Yards- | Feet- | Inches- | Kilometers- | Meters- | Centimeters- | Millimeters- | NauticalMiles deriving (Eq, Show)--instance ToJSON DistanceUnit where- toJSON Miles = String "mi"- toJSON Yards = String "yd"- toJSON Feet = String "ft"- toJSON Inches = String "in"- toJSON Kilometers = String "km"- toJSON Meters = String "m"- toJSON Centimeters = String "cm"- toJSON Millimeters = String "mm"- toJSON NauticalMiles = String "nmi"--instance FromJSON DistanceUnit where- parseJSON = withText "DistanceUnit" parse- where parse "mi" = pure Miles- parse "yd" = pure Yards- parse "ft" = pure Feet- parse "in" = pure Inches- parse "km" = pure Kilometers- parse "m" = pure Meters- parse "cm" = pure Centimeters- parse "mm" = pure Millimeters- parse "nmi" = pure NauticalMiles- parse u = fail ("Unrecognized DistanceUnit: " <> show u)--{-| 'Cache' is for telling ES whether it should cache a 'Filter' not.- 'Query's cannot be cached.--}-type Cache = Bool -- caching on/off---data Filter = AndFilter [Filter] Cache- | OrFilter [Filter] Cache- | NotFilter Filter Cache- | IdentityFilter- | BoolFilter BoolMatch- | ExistsFilter FieldName -- always cached- | GeoBoundingBoxFilter GeoBoundingBoxConstraint- | GeoDistanceFilter GeoPoint Distance DistanceType OptimizeBbox Cache- | GeoDistanceRangeFilter GeoPoint DistanceRange- | GeoPolygonFilter FieldName [LatLon]- | IdsFilter MappingName [DocId]- | LimitFilter Int- | MissingFilter FieldName Existence NullValue- | PrefixFilter FieldName PrefixValue Cache- | QueryFilter Query Cache- | RangeFilter FieldName RangeValue RangeExecution Cache- | RegexpFilter FieldName Regexp RegexpFlags CacheName Cache CacheKey- | TermFilter Term Cache- deriving (Eq, Show)--instance Semigroup Filter where- a <> b = AndFilter [a, b] defaultCache--instance Monoid Filter where- mempty = IdentityFilter- mappend = (<>)--instance Seminearring Filter where- a <||> b = OrFilter [a, b] defaultCache--data BoolMatch = MustMatch Term Cache- | MustNotMatch Term Cache- | ShouldMatch [Term] Cache deriving (Eq, Show)--data Term = Term { termField :: Text- , termValue :: Text } deriving (Eq, Show)---data OptimizeBbox = OptimizeGeoFilterType GeoFilterType- | NoOptimizeBbox deriving (Eq, Show)---data Distance =- Distance { coefficient :: Double- , unit :: DistanceUnit } deriving (Eq, Show)--data DistanceRange =- DistanceRange { distanceFrom :: Distance- , distanceTo :: Distance } deriving (Eq, Show)---- "memory" or "indexed"-data GeoFilterType = GeoFilterMemory- | GeoFilterIndexed deriving (Eq, Show)--data GeoBoundingBoxConstraint =- GeoBoundingBoxConstraint { geoBBField :: FieldName- , constraintBox :: GeoBoundingBox- , bbConstraintcache :: Cache- , geoType :: GeoFilterType- } deriving (Eq, Show)---data DistanceType = Arc- | SloppyArc -- doesn't exist <1.0- | Plane deriving (Eq, Show)--data GeoBoundingBox =- GeoBoundingBox { topLeft :: LatLon- , bottomRight :: LatLon } deriving (Eq, Show)--{-| 'PrefixValue' is used in 'PrefixQuery' as the main query component.--}-type PrefixValue = Text---data RangeValue = RangeDateLte LessThanEqD- | RangeDateLt LessThanD- | RangeDateGte GreaterThanEqD- | RangeDateGt GreaterThanD- | RangeDateGtLt GreaterThanD LessThanD- | RangeDateGteLte GreaterThanEqD LessThanEqD- | RangeDateGteLt GreaterThanEqD LessThanD- | RangeDateGtLte GreaterThanD LessThanEqD- | RangeDoubleLte LessThanEq- | RangeDoubleLt LessThan- | RangeDoubleGte GreaterThanEq- | RangeDoubleGt GreaterThan- | RangeDoubleGtLt GreaterThan LessThan- | RangeDoubleGteLte GreaterThanEq LessThanEq- | RangeDoubleGteLt GreaterThanEq LessThan- | RangeDoubleGtLte GreaterThan LessThanEq- deriving (Eq, Show)---newtype LessThan = LessThan Double deriving (Eq, Show)-newtype LessThanEq = LessThanEq Double deriving (Eq, Show)-newtype GreaterThan = GreaterThan Double deriving (Eq, Show)-newtype GreaterThanEq = GreaterThanEq Double deriving (Eq, Show)--newtype LessThanD = LessThanD UTCTime deriving (Eq, Show)-newtype LessThanEqD = LessThanEqD UTCTime deriving (Eq, Show)-newtype GreaterThanD = GreaterThanD UTCTime deriving (Eq, Show)-newtype GreaterThanEqD = GreaterThanEqD UTCTime deriving (Eq, Show)---data Query =- TermQuery Term (Maybe Boost)- | TermsQuery Text (NonEmpty Text)- | QueryMatchQuery MatchQuery- | QueryMultiMatchQuery MultiMatchQuery- | QueryBoolQuery BoolQuery- | QueryBoostingQuery BoostingQuery- | QueryCommonTermsQuery CommonTermsQuery- | ConstantScoreFilter Filter Boost- | ConstantScoreQuery Query Boost- | QueryDisMaxQuery DisMaxQuery- | QueryFilteredQuery FilteredQuery- | QueryFuzzyLikeThisQuery FuzzyLikeThisQuery- | QueryFuzzyLikeFieldQuery FuzzyLikeFieldQuery- | QueryFuzzyQuery FuzzyQuery- | QueryHasChildQuery HasChildQuery- | QueryHasParentQuery HasParentQuery- | IdsQuery MappingName [DocId]- | QueryIndicesQuery IndicesQuery- | MatchAllQuery (Maybe Boost)- | QueryMoreLikeThisQuery MoreLikeThisQuery- | QueryMoreLikeThisFieldQuery MoreLikeThisFieldQuery- | QueryNestedQuery NestedQuery- | QueryPrefixQuery PrefixQuery- | QueryQueryStringQuery QueryStringQuery- | QuerySimpleQueryStringQuery SimpleQueryStringQuery- | QueryRangeQuery RangeQuery- | QueryRegexpQuery RegexpQuery- | QueryTemplateQueryInline TemplateQueryInline- deriving (Eq, Show)--data RegexpQuery =- RegexpQuery { regexpQueryField :: FieldName- , regexpQuery :: Regexp- , regexpQueryFlags :: RegexpFlags- , regexpQueryBoost :: Maybe Boost- } deriving (Eq, Show)--data RangeQuery =- RangeQuery { rangeQueryField :: FieldName- , rangeQueryRange :: RangeValue- , rangeQueryBoost :: Boost } deriving (Eq, Show)--mkRangeQuery :: FieldName -> RangeValue -> RangeQuery-mkRangeQuery f r = RangeQuery f r (Boost 1.0)--data SimpleQueryStringQuery =- SimpleQueryStringQuery- { simpleQueryStringQuery :: QueryString- , simpleQueryStringField :: Maybe FieldOrFields- , simpleQueryStringOperator :: Maybe BooleanOperator- , simpleQueryStringAnalyzer :: Maybe Analyzer- , simpleQueryStringFlags :: Maybe (NonEmpty SimpleQueryFlag)- , simpleQueryStringLowercaseExpanded :: Maybe LowercaseExpanded- , simpleQueryStringLocale :: Maybe Locale- } deriving (Eq, Show)--data SimpleQueryFlag =- SimpleQueryAll- | SimpleQueryNone- | SimpleQueryAnd- | SimpleQueryOr- | SimpleQueryPrefix- | SimpleQueryPhrase- | SimpleQueryPrecedence- | SimpleQueryEscape- | SimpleQueryWhitespace- | SimpleQueryFuzzy- | SimpleQueryNear- | SimpleQuerySlop deriving (Eq, Show)---- use_dis_max and tie_breaker when fields are plural?-data QueryStringQuery =- QueryStringQuery- { queryStringQuery :: QueryString- , queryStringDefaultField :: Maybe FieldName- , queryStringOperator :: Maybe BooleanOperator- , queryStringAnalyzer :: Maybe Analyzer- , queryStringAllowLeadingWildcard :: Maybe AllowLeadingWildcard- , queryStringLowercaseExpanded :: Maybe LowercaseExpanded- , queryStringEnablePositionIncrements :: Maybe EnablePositionIncrements- , queryStringFuzzyMaxExpansions :: Maybe MaxExpansions- , queryStringFuzziness :: Maybe Fuzziness- , queryStringFuzzyPrefixLength :: Maybe PrefixLength- , queryStringPhraseSlop :: Maybe PhraseSlop- , queryStringBoost :: Maybe Boost- , queryStringAnalyzeWildcard :: Maybe AnalyzeWildcard- , queryStringGeneratePhraseQueries :: Maybe GeneratePhraseQueries- , queryStringMinimumShouldMatch :: Maybe MinimumMatch- , queryStringLenient :: Maybe Lenient- , queryStringLocale :: Maybe Locale- } deriving (Eq, Show)--mkQueryStringQuery :: QueryString -> QueryStringQuery-mkQueryStringQuery qs =- QueryStringQuery qs Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing--data FieldOrFields = FofField FieldName- | FofFields (NonEmpty FieldName) deriving (Eq, Show)--data PrefixQuery =- PrefixQuery- { prefixQueryField :: FieldName- , prefixQueryPrefixValue :: Text- , prefixQueryBoost :: Maybe Boost } deriving (Eq, Show)--data NestedQuery =- NestedQuery- { nestedQueryPath :: QueryPath- , nestedQueryScoreType :: ScoreType- , nestedQuery :: Query } deriving (Eq, Show)--data MoreLikeThisFieldQuery =- MoreLikeThisFieldQuery- { moreLikeThisFieldText :: Text- , moreLikeThisFieldFields :: FieldName- -- default 0.3 (30%)- , moreLikeThisFieldPercentMatch :: Maybe PercentMatch- , moreLikeThisFieldMinimumTermFreq :: Maybe MinimumTermFrequency- , moreLikeThisFieldMaxQueryTerms :: Maybe MaxQueryTerms- , moreLikeThisFieldStopWords :: Maybe (NonEmpty StopWord)- , moreLikeThisFieldMinDocFrequency :: Maybe MinDocFrequency- , moreLikeThisFieldMaxDocFrequency :: Maybe MaxDocFrequency- , moreLikeThisFieldMinWordLength :: Maybe MinWordLength- , moreLikeThisFieldMaxWordLength :: Maybe MaxWordLength- , moreLikeThisFieldBoostTerms :: Maybe BoostTerms- , moreLikeThisFieldBoost :: Maybe Boost- , moreLikeThisFieldAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)--data MoreLikeThisQuery =- MoreLikeThisQuery- { moreLikeThisText :: Text- , moreLikeThisFields :: Maybe (NonEmpty FieldName)- -- default 0.3 (30%)- , moreLikeThisPercentMatch :: Maybe PercentMatch- , moreLikeThisMinimumTermFreq :: Maybe MinimumTermFrequency- , moreLikeThisMaxQueryTerms :: Maybe MaxQueryTerms- , moreLikeThisStopWords :: Maybe (NonEmpty StopWord)- , moreLikeThisMinDocFrequency :: Maybe MinDocFrequency- , moreLikeThisMaxDocFrequency :: Maybe MaxDocFrequency- , moreLikeThisMinWordLength :: Maybe MinWordLength- , moreLikeThisMaxWordLength :: Maybe MaxWordLength- , moreLikeThisBoostTerms :: Maybe BoostTerms- , moreLikeThisBoost :: Maybe Boost- , moreLikeThisAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)--data IndicesQuery =- IndicesQuery- { indicesQueryIndices :: [IndexName]- , indicesQuery :: Query- -- default "all"- , indicesQueryNoMatch :: Maybe Query } deriving (Eq, Show)--data HasParentQuery =- HasParentQuery- { hasParentQueryType :: TypeName- , hasParentQuery :: Query- , hasParentQueryScoreType :: Maybe ScoreType } deriving (Eq, Show)--data HasChildQuery =- HasChildQuery- { hasChildQueryType :: TypeName- , hasChildQuery :: Query- , hasChildQueryScoreType :: Maybe ScoreType } deriving (Eq, Show)--data ScoreType =- ScoreTypeMax- | ScoreTypeSum- | ScoreTypeAvg- | ScoreTypeNone deriving (Eq, Show)--data FuzzyQuery =- FuzzyQuery { fuzzyQueryField :: FieldName- , fuzzyQueryValue :: Text- , fuzzyQueryPrefixLength :: PrefixLength- , fuzzyQueryMaxExpansions :: MaxExpansions- , fuzzyQueryFuzziness :: Fuzziness- , fuzzyQueryBoost :: Maybe Boost- } deriving (Eq, Show)--data FuzzyLikeFieldQuery =- FuzzyLikeFieldQuery- { fuzzyLikeField :: FieldName- -- anaphora is good for the soul.- , fuzzyLikeFieldText :: Text- , fuzzyLikeFieldMaxQueryTerms :: MaxQueryTerms- , fuzzyLikeFieldIgnoreTermFrequency :: IgnoreTermFrequency- , fuzzyLikeFieldFuzziness :: Fuzziness- , fuzzyLikeFieldPrefixLength :: PrefixLength- , fuzzyLikeFieldBoost :: Boost- , fuzzyLikeFieldAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)--data FuzzyLikeThisQuery =- FuzzyLikeThisQuery- { fuzzyLikeFields :: [FieldName]- , fuzzyLikeText :: Text- , fuzzyLikeMaxQueryTerms :: MaxQueryTerms- , fuzzyLikeIgnoreTermFrequency :: IgnoreTermFrequency- , fuzzyLikeFuzziness :: Fuzziness- , fuzzyLikePrefixLength :: PrefixLength- , fuzzyLikeBoost :: Boost- , fuzzyLikeAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)--data FilteredQuery =- FilteredQuery- { filteredQuery :: Query- , filteredFilter :: Filter } deriving (Eq, Show)--data DisMaxQuery =- DisMaxQuery { disMaxQueries :: [Query]- -- default 0.0- , disMaxTiebreaker :: Tiebreaker- , disMaxBoost :: Maybe Boost- } deriving (Eq, Show)--data MatchQuery =- MatchQuery { matchQueryField :: FieldName- , matchQueryQueryString :: QueryString- , matchQueryOperator :: BooleanOperator- , matchQueryZeroTerms :: ZeroTermsQuery- , matchQueryCutoffFrequency :: Maybe CutoffFrequency- , matchQueryMatchType :: Maybe MatchQueryType- , matchQueryAnalyzer :: Maybe Analyzer- , matchQueryMaxExpansions :: Maybe MaxExpansions- , matchQueryLenient :: Maybe Lenient- , matchQueryBoost :: Maybe Boost } deriving (Eq, Show)--{-| 'mkMatchQuery' is a convenience function that defaults the less common parameters,- enabling you to provide only the 'FieldName' and 'QueryString' to make a 'MatchQuery'--}-mkMatchQuery :: FieldName -> QueryString -> MatchQuery-mkMatchQuery field query = MatchQuery field query Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing--data MatchQueryType =- MatchPhrase- | MatchPhrasePrefix deriving (Eq, Show)--data MultiMatchQuery =- MultiMatchQuery { multiMatchQueryFields :: [FieldName]- , multiMatchQueryString :: QueryString- , multiMatchQueryOperator :: BooleanOperator- , multiMatchQueryZeroTerms :: ZeroTermsQuery- , multiMatchQueryTiebreaker :: Maybe Tiebreaker- , multiMatchQueryType :: Maybe MultiMatchQueryType- , multiMatchQueryCutoffFrequency :: Maybe CutoffFrequency- , multiMatchQueryAnalyzer :: Maybe Analyzer- , multiMatchQueryMaxExpansions :: Maybe MaxExpansions- , multiMatchQueryLenient :: Maybe Lenient } deriving (Eq, Show)--{-| 'mkMultiMatchQuery' is a convenience function that defaults the less common parameters,- enabling you to provide only the list of 'FieldName's and 'QueryString' to- make a 'MultiMatchQuery'.--}--mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery-mkMultiMatchQuery matchFields query =- MultiMatchQuery matchFields query- Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing--data MultiMatchQueryType =- MultiMatchBestFields- | MultiMatchMostFields- | MultiMatchCrossFields- | MultiMatchPhrase- | MultiMatchPhrasePrefix deriving (Eq, Show)--data BoolQuery =- BoolQuery { boolQueryMustMatch :: [Query]- , boolQueryMustNotMatch :: [Query]- , boolQueryShouldMatch :: [Query]- , boolQueryMinimumShouldMatch :: Maybe MinimumMatch- , boolQueryBoost :: Maybe Boost- , boolQueryDisableCoord :: Maybe DisableCoord- } deriving (Eq, Show)--mkBoolQuery :: [Query] -> [Query] -> [Query] -> BoolQuery-mkBoolQuery must mustNot should =- BoolQuery must mustNot should Nothing Nothing Nothing--data BoostingQuery =- BoostingQuery { positiveQuery :: Query- , negativeQuery :: Query- , negativeBoost :: Boost } deriving (Eq, Show)--data CommonTermsQuery =- CommonTermsQuery { commonField :: FieldName- , commonQuery :: QueryString- , commonCutoffFrequency :: CutoffFrequency- , commonLowFreqOperator :: BooleanOperator- , commonHighFreqOperator :: BooleanOperator- , commonMinimumShouldMatch :: Maybe CommonMinimumMatch- , commonBoost :: Maybe Boost- , commonAnalyzer :: Maybe Analyzer- , commonDisableCoord :: Maybe DisableCoord- } deriving (Eq, Show)--data CommonMinimumMatch =- CommonMinimumMatchHighLow MinimumMatchHighLow- | CommonMinimumMatch MinimumMatch- deriving (Eq, Show)--data MinimumMatchHighLow =- MinimumMatchHighLow { lowFreq :: MinimumMatch- , highFreq :: MinimumMatch } deriving (Eq, Show)---data TemplateQueryInline =- TemplateQueryInline { inline :: Query- , params :: TemplateQueryKeyValuePairs- }- deriving (Eq, Show)--instance ToJSON TemplateQueryInline where- toJSON TemplateQueryInline{..} = object [ "query" .= inline- , "params" .= params- ]--instance FromJSON TemplateQueryInline where- parseJSON = withObject "TemplateQueryInline" parse- where parse o = TemplateQueryInline- <$> o .: "query"- <*> o .: "params"--{-| 'BooleanOperator' is the usual And/Or operators with an ES compatible- JSON encoding baked in. Used all over the place.--}-data BooleanOperator = And | Or deriving (Eq, Show)--type TemplateQueryKey = Text-type TemplateQueryValue = Text--newtype TemplateQueryKeyValuePairs = TemplateQueryKeyValuePairs (HM.HashMap TemplateQueryKey TemplateQueryValue)- deriving (Eq, Show)--instance ToJSON TemplateQueryKeyValuePairs where- toJSON (TemplateQueryKeyValuePairs x) = Object $ HM.map toJSON x--instance FromJSON TemplateQueryKeyValuePairs where- parseJSON (Object o) = pure . TemplateQueryKeyValuePairs $ HM.mapMaybe getValue o- where getValue (String x) = Just x- getValue _ = Nothing- parseJSON _ = fail "error parsing TemplateQueryKeyValuePairs"--newtype Regexp = Regexp Text deriving (Eq, Show, FromJSON)--data RegexpFlags = AllRegexpFlags- | NoRegexpFlags- | SomeRegexpFlags (NonEmpty RegexpFlag) deriving (Eq, Show)--data RegexpFlag = AnyString- | Automaton- | Complement- | Empty- | Intersection- | Interval deriving (Eq, Show)--data RangeExecution = RangeExecutionIndex- | RangeExecutionFielddata deriving (Eq, Show)--data ZeroTermsQuery = ZeroTermsNone- | ZeroTermsAll deriving (Eq, Show)--instance ToJSON Query where- toJSON (TermQuery (Term termQueryField termQueryValue) boost) =- object [ "term" .=- object [termQueryField .= object merged]]- where- base = [ "value" .= termQueryValue ]- boosted = maybe [] (return . ("boost" .=)) boost- merged = mappend base boosted-- toJSON (TermsQuery fieldName terms) =- object [ "terms" .= object conjoined ]- where conjoined = [fieldName .= terms]-- toJSON (IdsQuery idsQueryMappingName docIds) =- object [ "ids" .= object conjoined ]- where conjoined = [ "type" .= idsQueryMappingName- , "values" .= fmap toJSON docIds ]-- toJSON (QueryQueryStringQuery qQueryStringQuery) =- object [ "query_string" .= qQueryStringQuery ]-- toJSON (QueryMatchQuery matchQuery) =- object [ "match" .= matchQuery ]-- toJSON (QueryMultiMatchQuery multiMatchQuery) =- toJSON multiMatchQuery-- toJSON (QueryBoolQuery boolQuery) =- object [ "bool" .= boolQuery ]-- toJSON (QueryBoostingQuery boostingQuery) =- object [ "boosting" .= boostingQuery ]-- toJSON (QueryCommonTermsQuery commonTermsQuery) =- object [ "common" .= commonTermsQuery ]-- toJSON (ConstantScoreFilter csFilter boost) =- object ["constant_score" .= object ["filter" .= csFilter- , "boost" .= boost]]-- toJSON (ConstantScoreQuery query boost) =- object ["constant_score" .= object ["query" .= query- , "boost" .= boost]]-- toJSON (QueryDisMaxQuery disMaxQuery) =- object [ "dis_max" .= disMaxQuery ]-- toJSON (QueryFilteredQuery qFilteredQuery) =- object [ "filtered" .= qFilteredQuery ]-- toJSON (QueryFuzzyLikeThisQuery fuzzyQuery) =- object [ "fuzzy_like_this" .= fuzzyQuery ]-- toJSON (QueryFuzzyLikeFieldQuery fuzzyFieldQuery) =- object [ "fuzzy_like_this_field" .= fuzzyFieldQuery ]-- toJSON (QueryFuzzyQuery fuzzyQuery) =- object [ "fuzzy" .= fuzzyQuery ]-- toJSON (QueryHasChildQuery childQuery) =- object [ "has_child" .= childQuery ]-- toJSON (QueryHasParentQuery parentQuery) =- object [ "has_parent" .= parentQuery ]-- toJSON (QueryIndicesQuery qIndicesQuery) =- object [ "indices" .= qIndicesQuery ]-- toJSON (MatchAllQuery boost) =- object [ "match_all" .= omitNulls [ "boost" .= boost ] ]-- toJSON (QueryMoreLikeThisQuery query) =- object [ "more_like_this" .= query ]-- toJSON (QueryMoreLikeThisFieldQuery query) =- object [ "more_like_this_field" .= query ]-- toJSON (QueryNestedQuery query) =- object [ "nested" .= query ]-- toJSON (QueryPrefixQuery query) =- object [ "prefix" .= query ]-- toJSON (QueryRangeQuery query) =- object [ "range" .= query ]-- toJSON (QueryRegexpQuery query) =- object [ "regexp" .= query ]-- toJSON (QuerySimpleQueryStringQuery query) =- object [ "simple_query_string" .= query ]-- toJSON (QueryTemplateQueryInline templateQuery) =- object [ "template" .= templateQuery ]--instance FromJSON Query where- parseJSON v = withObject "Query" parse v- where parse o = termQuery `taggedWith` "term"- <|> termsQuery `taggedWith` "terms"- <|> idsQuery `taggedWith` "ids"- <|> queryQueryStringQuery `taggedWith` "query_string"- <|> queryMatchQuery `taggedWith` "match"- <|> queryMultiMatchQuery- <|> queryBoolQuery `taggedWith` "bool"- <|> queryBoostingQuery `taggedWith` "boosting"- <|> queryCommonTermsQuery `taggedWith` "common"- <|> constantScoreFilter `taggedWith` "constant_score"- <|> constantScoreQuery `taggedWith` "constant_score"- <|> queryDisMaxQuery `taggedWith` "dis_max"- <|> queryFilteredQuery `taggedWith` "filtered"- <|> queryFuzzyLikeThisQuery `taggedWith` "fuzzy_like_this"- <|> queryFuzzyLikeFieldQuery `taggedWith` "fuzzy_like_this_field"- <|> queryFuzzyQuery `taggedWith` "fuzzy"- <|> queryHasChildQuery `taggedWith` "has_child"- <|> queryHasParentQuery `taggedWith` "has_parent"- <|> queryIndicesQuery `taggedWith` "indices"- <|> matchAllQuery `taggedWith` "match_all"- <|> queryMoreLikeThisQuery `taggedWith` "more_like_this"- <|> queryMoreLikeThisFieldQuery `taggedWith` "more_like_this_field"- <|> queryNestedQuery `taggedWith` "nested"- <|> queryPrefixQuery `taggedWith` "prefix"- <|> queryRangeQuery `taggedWith` "range"- <|> queryRegexpQuery `taggedWith` "regexp"- <|> querySimpleQueryStringQuery `taggedWith` "simple_query_string"- <|> queryTemplateQueryInline `taggedWith` "template"- where taggedWith parser k = parser =<< o .: k- termQuery = fieldTagged $ \(FieldName fn) o ->- TermQuery <$> (Term fn <$> o .: "value") <*> o .:? "boost"- termsQuery o = case HM.toList o of- [(fn, vs)] -> do vals <- parseJSON vs- case vals of- x:xs -> return (TermsQuery fn (x :| xs))- _ -> fail "Expected non empty list of values"- _ -> fail "Expected object with 1 field-named key"- idsQuery o = IdsQuery <$> o .: "type"- <*> o .: "values"- queryQueryStringQuery = pure . QueryQueryStringQuery- queryMatchQuery = pure . QueryMatchQuery- queryMultiMatchQuery = QueryMultiMatchQuery <$> parseJSON v- queryBoolQuery = pure . QueryBoolQuery- queryBoostingQuery = pure . QueryBoostingQuery- queryCommonTermsQuery = pure . QueryCommonTermsQuery- constantScoreFilter o = case HM.lookup "filter" o of- Just x -> ConstantScoreFilter <$> parseJSON x- <*> o .: "boost"- _ -> fail "Does not appear to be a ConstantScoreFilter"- constantScoreQuery o = case HM.lookup "query" o of- Just x -> ConstantScoreQuery <$> parseJSON x- <*> o .: "boost"- _ -> fail "Does not appear to be a ConstantScoreQuery"- queryDisMaxQuery = pure . QueryDisMaxQuery- queryFilteredQuery = pure . QueryFilteredQuery- queryFuzzyLikeThisQuery = pure . QueryFuzzyLikeThisQuery- queryFuzzyLikeFieldQuery = pure . QueryFuzzyLikeFieldQuery- queryFuzzyQuery = pure . QueryFuzzyQuery- queryHasChildQuery = pure . QueryHasChildQuery- queryHasParentQuery = pure . QueryHasParentQuery- queryIndicesQuery = pure . QueryIndicesQuery- matchAllQuery o = MatchAllQuery <$> o .:? "boost"- queryMoreLikeThisQuery = pure . QueryMoreLikeThisQuery- queryMoreLikeThisFieldQuery = pure . QueryMoreLikeThisFieldQuery- queryNestedQuery = pure . QueryNestedQuery- queryPrefixQuery = pure . QueryPrefixQuery- queryRangeQuery = pure . QueryRangeQuery- queryRegexpQuery = pure . QueryRegexpQuery- querySimpleQueryStringQuery = pure . QuerySimpleQueryStringQuery- queryTemplateQueryInline = pure . QueryTemplateQueryInline--instance ToJSON SimpleQueryStringQuery where- toJSON SimpleQueryStringQuery {..} =- omitNulls (base ++ maybeAdd)- where base = [ "query" .= simpleQueryStringQuery ]- maybeAdd = [ "fields" .= simpleQueryStringField- , "default_operator" .= simpleQueryStringOperator- , "analyzer" .= simpleQueryStringAnalyzer- , "flags" .= simpleQueryStringFlags- , "lowercase_expanded_terms" .= simpleQueryStringLowercaseExpanded- , "locale" .= simpleQueryStringLocale ]--instance FromJSON SimpleQueryStringQuery where- parseJSON = withObject "SimpleQueryStringQuery" parse- where parse o = SimpleQueryStringQuery <$> o .: "query"- <*> o .:? "fields"- <*> o .:? "default_operator"- <*> o .:? "analyzer"- <*> (parseFlags <$> o .:? "flags")- <*> o .:? "lowercase_expanded_terms"- <*> o .:? "locale"- parseFlags (Just (x:xs)) = Just (x :| xs)- parseFlags _ = Nothing--instance ToJSON FieldOrFields where- toJSON (FofField fieldName) =- toJSON fieldName- toJSON (FofFields fieldNames) =- toJSON fieldNames--instance FromJSON FieldOrFields where- parseJSON v = FofField <$> parseJSON v- <|> FofFields <$> (parseNEJSON =<< parseJSON v)--instance ToJSON SimpleQueryFlag where- toJSON SimpleQueryAll = "ALL"- toJSON SimpleQueryNone = "NONE"- toJSON SimpleQueryAnd = "AND"- toJSON SimpleQueryOr = "OR"- toJSON SimpleQueryPrefix = "PREFIX"- toJSON SimpleQueryPhrase = "PHRASE"- toJSON SimpleQueryPrecedence = "PRECEDENCE"- toJSON SimpleQueryEscape = "ESCAPE"- toJSON SimpleQueryWhitespace = "WHITESPACE"- toJSON SimpleQueryFuzzy = "FUZZY"- toJSON SimpleQueryNear = "NEAR"- toJSON SimpleQuerySlop = "SLOP"--instance FromJSON SimpleQueryFlag where- parseJSON = withText "SimpleQueryFlag" parse- where parse "ALL" = pure SimpleQueryAll- parse "NONE" = pure SimpleQueryNone- parse "AND" = pure SimpleQueryAnd- parse "OR" = pure SimpleQueryOr- parse "PREFIX" = pure SimpleQueryPrefix- parse "PHRASE" = pure SimpleQueryPhrase- parse "PRECEDENCE" = pure SimpleQueryPrecedence- parse "ESCAPE" = pure SimpleQueryEscape- parse "WHITESPACE" = pure SimpleQueryWhitespace- parse "FUZZY" = pure SimpleQueryFuzzy- parse "NEAR" = pure SimpleQueryNear- parse "SLOP" = pure SimpleQuerySlop- parse f = fail ("Unexpected SimpleQueryFlag: " <> show f)--instance ToJSON RegexpQuery where- toJSON (RegexpQuery (FieldName rqQueryField)- (Regexp regexpQueryQuery) rqQueryFlags- rqQueryBoost) =- object [ rqQueryField .= omitNulls base ]- where base = [ "value" .= regexpQueryQuery- , "flags" .= rqQueryFlags- , "boost" .= rqQueryBoost ]--instance FromJSON RegexpQuery where- parseJSON = withObject "RegexpQuery" parse- where parse = fieldTagged $ \fn o ->- RegexpQuery fn- <$> o .: "value"- <*> o .: "flags"- <*> o .:? "boost"--instance ToJSON QueryStringQuery where- toJSON (QueryStringQuery qsQueryString- qsDefaultField qsOperator- qsAnalyzer qsAllowWildcard- qsLowercaseExpanded qsEnablePositionIncrements- qsFuzzyMaxExpansions qsFuzziness- qsFuzzyPrefixLength qsPhraseSlop- qsBoost qsAnalyzeWildcard- qsGeneratePhraseQueries qsMinimumShouldMatch- qsLenient qsLocale) =- omitNulls base- where- base = [ "query" .= qsQueryString- , "default_field" .= qsDefaultField- , "default_operator" .= qsOperator- , "analyzer" .= qsAnalyzer- , "allow_leading_wildcard" .= qsAllowWildcard- , "lowercase_expanded_terms" .= qsLowercaseExpanded- , "enable_position_increments" .= qsEnablePositionIncrements- , "fuzzy_max_expansions" .= qsFuzzyMaxExpansions- , "fuzziness" .= qsFuzziness- , "fuzzy_prefix_length" .= qsFuzzyPrefixLength- , "phrase_slop" .= qsPhraseSlop- , "boost" .= qsBoost- , "analyze_wildcard" .= qsAnalyzeWildcard- , "auto_generate_phrase_queries" .= qsGeneratePhraseQueries- , "minimum_should_match" .= qsMinimumShouldMatch- , "lenient" .= qsLenient- , "locale" .= qsLocale ]--instance FromJSON QueryStringQuery where- parseJSON = withObject "QueryStringQuery" parse- where parse o = QueryStringQuery- <$> o .: "query"- <*> o .:? "default_field"- <*> o .:? "default_operator"- <*> o .:? "analyzer"- <*> o .:? "allow_leading_wildcard"- <*> o .:? "lowercase_expanded_terms"- <*> o .:? "enable_position_increments"- <*> o .:? "fuzzy_max_expansions"- <*> o .:? "fuzziness"- <*> o .:? "fuzzy_prefix_length"- <*> o .:? "phrase_slop"- <*> o .:? "boost"- <*> o .:? "analyze_wildcard"- <*> o .:? "auto_generate_phrase_queries"- <*> o .:? "minimum_should_match"- <*> o .:? "lenient"- <*> o .:? "locale"--instance ToJSON RangeQuery where- toJSON (RangeQuery (FieldName fieldName) range boost) =- object [ fieldName .= object conjoined ]- where conjoined = [ "boost" .= boost ] ++ (rangeValueToPair range)--instance FromJSON RangeQuery where- parseJSON = withObject "RangeQuery" parse- where parse = fieldTagged $ \fn o ->- RangeQuery fn- <$> parseJSON (Object o)- <*> o .: "boost"--instance FromJSON RangeValue where- parseJSON = withObject "RangeValue" parse- where parse o = parseDate o- <|> parseDouble o- parseDate o = do lt <- o .:? "lt"- lte <- o .:? "lte"- gt <- o .:? "gt"- gte <- o .:? "gte"- case (lt, lte, gt, gte) of- (Just a, _, Just b, _) -> return (RangeDateGtLt (GreaterThanD b) (LessThanD a))- (Just a, _, _, Just b)-> return (RangeDateGteLt (GreaterThanEqD b) (LessThanD a))- (_, Just a, Just b, _)-> return (RangeDateGtLte (GreaterThanD b) (LessThanEqD a))- (_, Just a, _, Just b)-> return (RangeDateGteLte (GreaterThanEqD b) (LessThanEqD a))- (_, _, Just a, _)-> return (RangeDateGt (GreaterThanD a))- (Just a, _, _, _)-> return (RangeDateLt (LessThanD a))- (_, _, _, Just a)-> return (RangeDateGte (GreaterThanEqD a))- (_, Just a, _, _)-> return (RangeDateLte (LessThanEqD a))- (Nothing, Nothing, Nothing, Nothing) -> mzero- parseDouble o = do lt <- o .:? "lt"- lte <- o .:? "lte"- gt <- o .:? "gt"- gte <- o .:? "gte"- case (lt, lte, gt, gte) of- (Just a, _, Just b, _) -> return (RangeDoubleGtLt (GreaterThan b) (LessThan a))- (Just a, _, _, Just b)-> return (RangeDoubleGteLt (GreaterThanEq b) (LessThan a))- (_, Just a, Just b, _)-> return (RangeDoubleGtLte (GreaterThan b) (LessThanEq a))- (_, Just a, _, Just b)-> return (RangeDoubleGteLte (GreaterThanEq b) (LessThanEq a))- (_, _, Just a, _)-> return (RangeDoubleGt (GreaterThan a))- (Just a, _, _, _)-> return (RangeDoubleLt (LessThan a))- (_, _, _, Just a)-> return (RangeDoubleGte (GreaterThanEq a))- (_, Just a, _, _)-> return (RangeDoubleLte (LessThanEq a))- (Nothing, Nothing, Nothing, Nothing) -> mzero--instance ToJSON PrefixQuery where- toJSON (PrefixQuery (FieldName fieldName) queryValue boost) =- object [ fieldName .= omitNulls base ]- where base = [ "value" .= queryValue- , "boost" .= boost ]--instance FromJSON PrefixQuery where- parseJSON = withObject "PrefixQuery" parse- where parse = fieldTagged $ \fn o ->- PrefixQuery fn- <$> o .: "value"- <*> o .:? "boost"--instance ToJSON NestedQuery where- toJSON (NestedQuery nqPath nqScoreType nqQuery) =- object [ "path" .= nqPath- , "score_mode" .= nqScoreType- , "query" .= nqQuery ]--instance FromJSON NestedQuery where- parseJSON = withObject "NestedQuery" parse- where parse o = NestedQuery- <$> o .: "path"- <*> o .: "score_mode"- <*> o .: "query"--instance ToJSON MoreLikeThisFieldQuery where- toJSON (MoreLikeThisFieldQuery text (FieldName fieldName)- percent mtf mqt stopwords mindf maxdf- minwl maxwl boostTerms boost analyzer) =- object [ fieldName .= omitNulls base ]- where base = [ "like_text" .= text- , "percent_terms_to_match" .= percent- , "min_term_freq" .= mtf- , "max_query_terms" .= mqt- , "stop_words" .= stopwords- , "min_doc_freq" .= mindf- , "max_doc_freq" .= maxdf- , "min_word_length" .= minwl- , "max_word_length" .= maxwl- , "boost_terms" .= boostTerms- , "boost" .= boost- , "analyzer" .= analyzer ]--instance FromJSON MoreLikeThisFieldQuery where- parseJSON = withObject "MoreLikeThisFieldQuery" parse- where parse = fieldTagged $ \fn o ->- MoreLikeThisFieldQuery- <$> o .: "like_text"- <*> pure fn- <*> o .:? "percent_terms_to_match"- <*> o .:? "min_term_freq"- <*> o .:? "max_query_terms"- -- <*> (optionalNE =<< o .:? "stop_words")- <*> o .:? "stop_words"- <*> o .:? "min_doc_freq"- <*> o .:? "max_doc_freq"- <*> o .:? "min_word_length"- <*> o .:? "max_word_length"- <*> o .:? "boost_terms"- <*> o .:? "boost"- <*> o .:? "analyzer"- -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)--instance ToJSON MoreLikeThisQuery where- toJSON (MoreLikeThisQuery text fields percent- mtf mqt stopwords mindf maxdf- minwl maxwl boostTerms boost analyzer) =- omitNulls base- where base = [ "like_text" .= text- , "fields" .= fields- , "percent_terms_to_match" .= percent- , "min_term_freq" .= mtf- , "max_query_terms" .= mqt- , "stop_words" .= stopwords- , "min_doc_freq" .= mindf- , "max_doc_freq" .= maxdf- , "min_word_length" .= minwl- , "max_word_length" .= maxwl- , "boost_terms" .= boostTerms- , "boost" .= boost- , "analyzer" .= analyzer ]--instance FromJSON MoreLikeThisQuery where- parseJSON = withObject "MoreLikeThisQuery" parse- where parse o = MoreLikeThisQuery- <$> o .: "like_text"- -- <*> (optionalNE =<< o .:? "fields")- <*> o .:? "fields"- <*> o .:? "percent_terms_to_match"- <*> o .:? "min_term_freq"- <*> o .:? "max_query_terms"- -- <*> (optionalNE =<< o .:? "stop_words")- <*> o .:? "stop_words"- <*> o .:? "min_doc_freq"- <*> o .:? "max_doc_freq"- <*> o .:? "min_word_length"- <*> o .:? "max_word_length"- <*> o .:? "boost_terms"- <*> o .:? "boost"- <*> o .:? "analyzer"- -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)--instance ToJSON IndicesQuery where- toJSON (IndicesQuery indices query noMatch) =- omitNulls [ "indices" .= indices- , "no_match_query" .= noMatch- , "query" .= query ]--instance FromJSON IndicesQuery where- parseJSON = withObject "IndicesQuery" parse- where parse o = IndicesQuery- <$> o .:? "indices" .!= []- <*> o .: "query"- <*> o .:? "no_match_query"--instance ToJSON HasParentQuery where- toJSON (HasParentQuery queryType query scoreType) =- omitNulls [ "parent_type" .= queryType- , "score_type" .= scoreType- , "query" .= query ]--instance FromJSON HasParentQuery where- parseJSON = withObject "HasParentQuery" parse- where parse o = HasParentQuery- <$> o .: "parent_type"- <*> o .: "query"- <*> o .:? "score_type"--instance ToJSON HasChildQuery where- toJSON (HasChildQuery queryType query scoreType) =- omitNulls [ "query" .= query- , "score_type" .= scoreType- , "type" .= queryType ]--instance FromJSON HasChildQuery where- parseJSON = withObject "HasChildQuery" parse- where parse o = HasChildQuery- <$> o .: "type"- <*> o .: "query"- <*> o .:? "score_type"--instance ToJSON FuzzyQuery where- toJSON (FuzzyQuery (FieldName fieldName) queryText- prefixLength maxEx fuzziness boost) =- object [ fieldName .= omitNulls base ]- where base = [ "value" .= queryText- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "boost" .= boost- , "max_expansions" .= maxEx ]--instance FromJSON FuzzyQuery where- parseJSON = withObject "FuzzyQuery" parse- where parse = fieldTagged $ \fn o ->- FuzzyQuery fn- <$> o .: "value"- <*> o .: "prefix_length"- <*> o .: "max_expansions"- <*> o .: "fuzziness"- <*> o .:? "boost"--instance ToJSON FuzzyLikeFieldQuery where- toJSON (FuzzyLikeFieldQuery (FieldName fieldName)- fieldText maxTerms ignoreFreq fuzziness prefixLength- boost analyzer) =- object [ fieldName .=- omitNulls [ "like_text" .= fieldText- , "max_query_terms" .= maxTerms- , "ignore_tf" .= ignoreFreq- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "analyzer" .= analyzer- , "boost" .= boost ]]--instance FromJSON FuzzyLikeFieldQuery where- parseJSON = withObject "FuzzyLikeFieldQuery" parse- where parse = fieldTagged $ \fn o ->- FuzzyLikeFieldQuery fn- <$> o .: "like_text"- <*> o .: "max_query_terms"- <*> o .: "ignore_tf"- <*> o .: "fuzziness"- <*> o .: "prefix_length"- <*> o .: "boost"- <*> o .:? "analyzer"--instance ToJSON FuzzyLikeThisQuery where- toJSON (FuzzyLikeThisQuery fields text maxTerms- ignoreFreq fuzziness prefixLength boost analyzer) =- omitNulls base- where base = [ "fields" .= fields- , "like_text" .= text- , "max_query_terms" .= maxTerms- , "ignore_tf" .= ignoreFreq- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "analyzer" .= analyzer- , "boost" .= boost ]--instance FromJSON FuzzyLikeThisQuery where- parseJSON = withObject "FuzzyLikeThisQuery" parse- where parse o = FuzzyLikeThisQuery- <$> o .:? "fields" .!= []- <*> o .: "like_text"- <*> o .: "max_query_terms"- <*> o .: "ignore_tf"- <*> o .: "fuzziness"- <*> o .: "prefix_length"- <*> o .: "boost"- <*> o .:? "analyzer"--instance ToJSON FilteredQuery where- toJSON (FilteredQuery query fFilter) =- object [ "query" .= query- , "filter" .= fFilter ]--instance FromJSON FilteredQuery where- parseJSON = withObject "FilteredQuery" parse- where parse o = FilteredQuery- <$> o .: "query"- <*> o .: "filter"--instance ToJSON DisMaxQuery where- toJSON (DisMaxQuery queries tiebreaker boost) =- omitNulls base- where base = [ "queries" .= queries- , "boost" .= boost- , "tie_breaker" .= tiebreaker ]--instance FromJSON DisMaxQuery where- parseJSON = withObject "DisMaxQuery" parse- where parse o = DisMaxQuery- <$> o .:? "queries" .!= []- <*> o .: "tie_breaker"- <*> o .:? "boost"--instance ToJSON CommonTermsQuery where- toJSON (CommonTermsQuery (FieldName fieldName)- (QueryString query) cf lfo hfo msm- boost analyzer disableCoord) =- object [fieldName .= omitNulls base ]- where base = [ "query" .= query- , "cutoff_frequency" .= cf- , "low_freq_operator" .= lfo- , "minimum_should_match" .= msm- , "boost" .= boost- , "analyzer" .= analyzer- , "disable_coord" .= disableCoord- , "high_freq_operator" .= hfo ]--instance FromJSON CommonTermsQuery where- parseJSON = withObject "CommonTermsQuery" parse- where parse = fieldTagged $ \fn o ->- CommonTermsQuery fn- <$> o .: "query"- <*> o .: "cutoff_frequency"- <*> o .: "low_freq_operator"- <*> o .: "high_freq_operator"- <*> o .:? "minimum_should_match"- <*> o .:? "boost"- <*> o .:? "analyzer"- <*> o .:? "disable_coord"--instance ToJSON CommonMinimumMatch where- toJSON (CommonMinimumMatch mm) = toJSON mm- toJSON (CommonMinimumMatchHighLow (MinimumMatchHighLow lowF highF)) =- object [ "low_freq" .= lowF- , "high_freq" .= highF ]--instance FromJSON CommonMinimumMatch where- parseJSON v = parseMinimum v- <|> parseMinimumHighLow v- where parseMinimum = fmap CommonMinimumMatch . parseJSON- parseMinimumHighLow = fmap CommonMinimumMatchHighLow . withObject "CommonMinimumMatchHighLow" (\o ->- MinimumMatchHighLow- <$> o .: "low_freq"- <*> o .: "high_freq")---instance ToJSON BoostingQuery where- toJSON (BoostingQuery bqPositiveQuery bqNegativeQuery bqNegativeBoost) =- object [ "positive" .= bqPositiveQuery- , "negative" .= bqNegativeQuery- , "negative_boost" .= bqNegativeBoost ]--instance FromJSON BoostingQuery where- parseJSON = withObject "BoostingQuery" parse- where parse o = BoostingQuery- <$> o .: "positive"- <*> o .: "negative"- <*> o .: "negative_boost"--instance ToJSON BoolQuery where- toJSON (BoolQuery mustM notM shouldM bqMin boost disableCoord) =- omitNulls base- where base = [ "must" .= mustM- , "must_not" .= notM- , "should" .= shouldM- , "minimum_should_match" .= bqMin- , "boost" .= boost- , "disable_coord" .= disableCoord ]--instance FromJSON BoolQuery where- parseJSON = withObject "BoolQuery" parse- where parse o = BoolQuery- <$> o .:? "must" .!= []- <*> o .:? "must_not" .!= []- <*> o .:? "should" .!= []- <*> o .:? "minimum_should_match"- <*> o .:? "boost"- <*> o .:? "disable_coord"--instance ToJSON MatchQuery where- toJSON (MatchQuery (FieldName fieldName)- (QueryString mqQueryString) booleanOperator- zeroTermsQuery cutoffFrequency matchQueryType- analyzer maxExpansions lenient boost) =- object [ fieldName .= omitNulls base ]- where base = [ "query" .= mqQueryString- , "operator" .= booleanOperator- , "zero_terms_query" .= zeroTermsQuery- , "cutoff_frequency" .= cutoffFrequency- , "type" .= matchQueryType- , "analyzer" .= analyzer- , "max_expansions" .= maxExpansions- , "lenient" .= lenient- , "boost" .= boost ]--instance FromJSON MatchQuery where- parseJSON = withObject "MatchQuery" parse- where parse = fieldTagged $ \fn o ->- MatchQuery fn- <$> o .: "query"- <*> o .: "operator"- <*> o .: "zero_terms_query"- <*> o .:? "cutoff_frequency"- <*> o .:? "type"- <*> o .:? "analyzer"- <*> o .:? "max_expansions"- <*> o .:? "lenient"- <*> o .:? "boost"--instance ToJSON MultiMatchQuery where- toJSON (MultiMatchQuery fields (QueryString query) boolOp- ztQ tb mmqt cf analyzer maxEx lenient) =- object ["multi_match" .= omitNulls base]- where base = [ "fields" .= fmap toJSON fields- , "query" .= query- , "operator" .= boolOp- , "zero_terms_query" .= ztQ- , "tie_breaker" .= tb- , "type" .= mmqt- , "cutoff_frequency" .= cf- , "analyzer" .= analyzer- , "max_expansions" .= maxEx- , "lenient" .= lenient ]--instance FromJSON MultiMatchQuery where- parseJSON = withObject "MultiMatchQuery" parse- where parse raw = do o <- raw .: "multi_match"- MultiMatchQuery- <$> o .:? "fields" .!= []- <*> o .: "query"- <*> o .: "operator"- <*> o .: "zero_terms_query"- <*> o .:? "tie_breaker"- <*> o .:? "type"- <*> o .:? "cutoff_frequency"- <*> o .:? "analyzer"- <*> o .:? "max_expansions"- <*> o .:? "lenient"--instance ToJSON Filter where- toJSON (AndFilter filters cache) =- object ["and" .=- object [ "filters" .= fmap toJSON filters- , "_cache" .= cache]]-- toJSON (OrFilter filters cache) =- object ["or" .=- object [ "filters" .= fmap toJSON filters- , "_cache" .= cache]]-- toJSON (NotFilter notFilter cache) =- object ["not" .=- object ["filter" .= notFilter- , "_cache" .= cache]]-- toJSON (IdentityFilter) =- object ["match_all" .= object []]-- toJSON (TermFilter (Term termFilterField termFilterValue) cache) =- object ["term" .= object base]- where base = [termFilterField .= termFilterValue,- "_cache" .= cache]-- toJSON (ExistsFilter (FieldName fieldName)) =- object ["exists" .= object- ["field" .= fieldName]]-- toJSON (BoolFilter boolMatch) =- object ["bool" .= boolMatch]-- toJSON (GeoBoundingBoxFilter bbConstraint) =- object ["geo_bounding_box" .= bbConstraint]-- toJSON (GeoDistanceFilter (GeoPoint (FieldName distanceGeoField) geoDistLatLon)- distance distanceType optimizeBbox cache) =- object ["geo_distance" .=- object ["distance" .= distance- , "distance_type" .= distanceType- , "optimize_bbox" .= optimizeBbox- , distanceGeoField .= geoDistLatLon- , "_cache" .= cache]]-- toJSON (GeoDistanceRangeFilter (GeoPoint (FieldName gddrField) drLatLon)- (DistanceRange geoDistRangeDistFrom drDistanceTo)) =- object ["geo_distance_range" .=- object ["from" .= geoDistRangeDistFrom- , "to" .= drDistanceTo- , gddrField .= drLatLon]]-- toJSON (GeoPolygonFilter (FieldName geoPolygonFilterField) latLons) =- object ["geo_polygon" .=- object [geoPolygonFilterField .=- object ["points" .= fmap toJSON latLons]]]-- toJSON (IdsFilter (MappingName mappingName) values) =- object ["ids" .=- object ["type" .= mappingName- , "values" .= fmap unpackId values]]-- toJSON (LimitFilter limit) =- object ["limit" .= object ["value" .= limit]]-- toJSON (MissingFilter (FieldName fieldName) (Existence existence) (NullValue nullValue)) =- object ["missing" .=- object [ "field" .= fieldName- , "existence" .= existence- , "null_value" .= nullValue]]-- toJSON (PrefixFilter (FieldName fieldName) fieldValue cache) =- object ["prefix" .=- object [fieldName .= fieldValue- , "_cache" .= cache]]-- toJSON (QueryFilter query False) =- object ["query" .= toJSON query ]- toJSON (QueryFilter query True) =- object ["fquery" .=- object [ "query" .= toJSON query- , "_cache" .= True ]]-- toJSON (RangeFilter (FieldName fieldName) rangeValue rangeExecution cache) =- object ["range" .=- object [ fieldName .= object (rangeValueToPair rangeValue)- , "execution" .= rangeExecution- , "_cache" .= cache]]-- toJSON (RegexpFilter (FieldName fieldName)- (Regexp regexText) flags (CacheName cacheName) cache (CacheKey cacheKey)) =- object ["regexp" .=- object [fieldName .=- object ["value" .= regexText- , "flags" .= flags]- , "_name" .= cacheName- , "_cache" .= cache- , "_cache_key" .= cacheKey]]--instance FromJSON Filter where- parseJSON = withObject "Filter" parse- where parse o = andFilter `taggedWith` "and"- <|> orFilter `taggedWith` "or"- <|> notFilter `taggedWith` "not"- <|> identityFilter `taggedWith` "match_all"- <|> boolFilter `taggedWith` "bool"- <|> existsFilter `taggedWith` "exists"- <|> geoBoundingBoxFilter `taggedWith` "geo_bounding_box"- <|> geoDistanceFilter `taggedWith` "geo_distance"- <|> geoDistanceRangeFilter `taggedWith` "geo_distance_range"- <|> geoPolygonFilter `taggedWith` "geo_polygon"- <|> idsFilter `taggedWith` "ids"- <|> limitFilter `taggedWith` "limit"- <|> missingFilter `taggedWith` "missing"- <|> prefixFilter `taggedWith` "prefix"- <|> queryFilter `taggedWith` "query"- <|> fqueryFilter `taggedWith` "fquery"- <|> rangeFilter `taggedWith` "range"- <|> regexpFilter `taggedWith` "regexp"- <|> termFilter `taggedWith` "term"- where taggedWith parser k = parser =<< o .: k- andFilter o = AndFilter <$> o .: "filters"- <*> o .:? "_cache" .!= defaultCache- orFilter o = OrFilter <$> o .: "filters"- <*> o .:? "_cache" .!= defaultCache- notFilter o = NotFilter <$> o .: "filter"- <*> o .: "_cache" .!= defaultCache- identityFilter :: Object -> Parser Filter- identityFilter m- | HM.null m = pure IdentityFilter- | otherwise = fail ("Identityfilter expected empty object but got " <> show m)- boolFilter = pure . BoolFilter- existsFilter o = ExistsFilter <$> o .: "field"- geoBoundingBoxFilter = pure . GeoBoundingBoxFilter- geoDistanceFilter o = do- case HM.toList (deleteSeveral ["distance", "distance_type", "optimize_bbox", "_cache"] o) of- [(fn, v)] -> do- gp <- GeoPoint (FieldName fn) <$> parseJSON v- GeoDistanceFilter gp <$> o .: "distance"- <*> o .: "distance_type"- <*> o .: "optimize_bbox"- <*> o .:? "_cache" .!= defaultCache- _ -> fail "Could not find GeoDistanceFilter field name"- geoDistanceRangeFilter o = do- case HM.toList (deleteSeveral ["from", "to"] o) of- [(fn, v)] -> do- gp <- GeoPoint (FieldName fn) <$> parseJSON v- rng <- DistanceRange <$> o .: "from" <*> o .: "to"- return (GeoDistanceRangeFilter gp rng)- _ -> fail "Could not find GeoDistanceRangeFilter field name"- geoPolygonFilter = fieldTagged $ \fn o -> GeoPolygonFilter fn <$> o .: "points"- idsFilter o = IdsFilter <$> o .: "type"- <*> o .: "values"- limitFilter o = LimitFilter <$> o .: "value"- missingFilter o = MissingFilter <$> o .: "field"- <*> o .: "existence"- <*> o .: "null_value"- prefixFilter o = case HM.toList (HM.delete "_cache" o) of- [(fn, String v)] -> PrefixFilter (FieldName fn) v <$> o .:? "_cache" .!= defaultCache- _ -> fail "Could not parse PrefixFilter"-- queryFilter q = pure (QueryFilter q False)- fqueryFilter o = QueryFilter <$> o .: "query" <*> pure True- rangeFilter o = case HM.toList (deleteSeveral ["execution", "_cache"] o) of- [(fn, v)] -> RangeFilter (FieldName fn)- <$> parseJSON v- <*> o .: "execution"- <*> o .:? "_cache" .!= defaultCache- _ -> fail "Could not find field name for RangeFilter"- regexpFilter o = case HM.toList (deleteSeveral ["_name", "_cache", "_cache_key"] o) of- [(fn, Object o')] -> RegexpFilter (FieldName fn)- <$> o' .: "value"- <*> o' .: "flags"- <*> o .: "_name"- <*> o .:? "_cache" .!= defaultCache- <*> o .: "_cache_key"- _ -> fail "Could not find field name for RegexpFilter"- termFilter o = case HM.toList (HM.delete "_cache" o) of- [(termField, String termVal)] -> TermFilter (Term termField termVal)- <$> o .:? "_cache" .!= defaultCache- _ -> fail "Could not find term field for TermFilter"--instance ToJSON BooleanOperator where- toJSON And = String "and"- toJSON Or = String "or"--instance FromJSON BooleanOperator where- parseJSON = withText "BooleanOperator" parse- where parse "and" = pure And- parse "or" = pure Or- parse o = fail ("Unexpected BooleanOperator: " <> show o)--instance ToJSON ZeroTermsQuery where- toJSON ZeroTermsNone = String "none"- toJSON ZeroTermsAll = String "all"--instance FromJSON ZeroTermsQuery where- parseJSON = withText "ZeroTermsQuery" parse- where parse "none" = pure ZeroTermsNone- parse "all" = pure ZeroTermsAll- parse q = fail ("Unexpected ZeroTermsQuery: " <> show q)--fieldTagged :: Monad m => (FieldName -> Object -> m a) -> Object -> m a-fieldTagged f o = case HM.toList o of- [(k, Object o')] -> f (FieldName k) o'- _ -> fail "Expected object with 1 field-named key"--instance ToJSON RangeExecution where- toJSON RangeExecutionIndex = "index"- toJSON RangeExecutionFielddata = "fielddata"---instance FromJSON RangeExecution where- parseJSON = withText "RangeExecution" parse- where parse "index" = pure RangeExecutionIndex- parse "fielddata" = pure RangeExecutionFielddata- parse t = error ("Unrecognized RangeExecution " <> show t)--instance ToJSON RegexpFlags where- toJSON AllRegexpFlags = String "ALL"- toJSON NoRegexpFlags = String "NONE"- toJSON (SomeRegexpFlags (h :| fs)) = String $ T.intercalate "|" flagStrs- where flagStrs = map flagStr . nub $ h:fs- flagStr AnyString = "ANYSTRING"- flagStr Automaton = "AUTOMATON"- flagStr Complement = "COMPLEMENT"- flagStr Empty = "EMPTY"- flagStr Intersection = "INTERSECTION"- flagStr Interval = "INTERVAL"--instance FromJSON RegexpFlags where- parseJSON = withText "RegexpFlags" parse- where parse "ALL" = pure AllRegexpFlags- parse "NONE" = pure NoRegexpFlags- parse t = SomeRegexpFlags <$> parseNEJSON (String <$> T.splitOn "|" t)--instance FromJSON RegexpFlag where- parseJSON = withText "RegexpFlag" parse- where parse "ANYSTRING" = pure AnyString- parse "AUTOMATON" = pure Automaton- parse "COMPLEMENT" = pure Complement- parse "EMPTY" = pure Empty- parse "INTERSECTION" = pure Intersection- parse "INTERVAL" = pure Interval- parse f = fail ("Unknown RegexpFlag: " <> show f)--rangeValueToPair :: RangeValue -> [Pair]-rangeValueToPair rv = case rv of- RangeDateLte (LessThanEqD t) -> ["lte" .= t]- RangeDateGte (GreaterThanEqD t) -> ["gte" .= t]- RangeDateLt (LessThanD t) -> ["lt" .= t]- RangeDateGt (GreaterThanD t) -> ["gt" .= t]- RangeDateGteLte (GreaterThanEqD l) (LessThanEqD g) -> ["gte" .= l, "lte" .= g]- RangeDateGtLte (GreaterThanD l) (LessThanEqD g) -> ["gt" .= l, "lte" .= g]- RangeDateGteLt (GreaterThanEqD l) (LessThanD g) -> ["gte" .= l, "lt" .= g]- RangeDateGtLt (GreaterThanD l) (LessThanD g) -> ["gt" .= l, "lt" .= g]- RangeDoubleLte (LessThanEq t) -> ["lte" .= t]- RangeDoubleGte (GreaterThanEq t) -> ["gte" .= t]- RangeDoubleLt (LessThan t) -> ["lt" .= t]- RangeDoubleGt (GreaterThan t) -> ["gt" .= t]- RangeDoubleGteLte (GreaterThanEq l) (LessThanEq g) -> ["gte" .= l, "lte" .= g]- RangeDoubleGtLte (GreaterThan l) (LessThanEq g) -> ["gt" .= l, "lte" .= g]- RangeDoubleGteLt (GreaterThanEq l) (LessThan g) -> ["gte" .= l, "lt" .= g]- RangeDoubleGtLt (GreaterThan l) (LessThan g) -> ["gt" .= l, "lt" .= g]--instance ToJSON ScoreType where- toJSON ScoreTypeMax = "max"- toJSON ScoreTypeAvg = "avg"- toJSON ScoreTypeSum = "sum"- toJSON ScoreTypeNone = "none"--instance FromJSON ScoreType where- parseJSON = withText "ScoreType" parse- where parse "max" = pure ScoreTypeMax- parse "avg" = pure ScoreTypeAvg- parse "sum" = pure ScoreTypeSum- parse "none" = pure ScoreTypeNone- parse t = fail ("Unexpected ScoreType: " <> show t)--instance ToJSON MatchQueryType where- toJSON MatchPhrase = "phrase"- toJSON MatchPhrasePrefix = "phrase_prefix"--instance FromJSON MatchQueryType where- parseJSON = withText "MatchQueryType" parse- where parse "phrase" = pure MatchPhrase- parse "phrase_prefix" = pure MatchPhrasePrefix- parse t = fail ("Unexpected MatchQueryType: " <> show t)--instance ToJSON MultiMatchQueryType where- toJSON MultiMatchBestFields = "best_fields"- toJSON MultiMatchMostFields = "most_fields"- toJSON MultiMatchCrossFields = "cross_fields"- toJSON MultiMatchPhrase = "phrase"- toJSON MultiMatchPhrasePrefix = "phrase_prefix"--instance FromJSON MultiMatchQueryType where- parseJSON = withText "MultiMatchPhrasePrefix" parse- where parse "best_fields" = pure MultiMatchBestFields- parse "most_fields" = pure MultiMatchMostFields- parse "cross_fields" = pure MultiMatchCrossFields- parse "phrase" = pure MultiMatchPhrase- parse "phrase_prefix" = pure MultiMatchPhrasePrefix- parse t = fail ("Unexpected MultiMatchPhrasePrefix: " <> show t)--defaultCache :: Cache-defaultCache = False--instance ToJSON BoolMatch where- toJSON (MustMatch term cache) = object ["must" .= term,- "_cache" .= cache]- toJSON (MustNotMatch term cache) = object ["must_not" .= term,- "_cache" .= cache]- toJSON (ShouldMatch terms cache) = object ["should" .= fmap toJSON terms,- "_cache" .= cache]--instance FromJSON BoolMatch where- parseJSON = withObject "BoolMatch" parse- where parse o = mustMatch `taggedWith` "must"- <|> mustNotMatch `taggedWith` "must_not"- <|> shouldMatch `taggedWith` "should"- where taggedWith parser k = parser =<< o .: k- mustMatch t = MustMatch t <$> o .:? "_cache" .!= defaultCache- mustNotMatch t = MustNotMatch t <$> o .:? "_cache" .!= defaultCache- shouldMatch t = ShouldMatch t <$> o .:? "_cache" .!= defaultCache--instance ToJSON GeoBoundingBoxConstraint where- toJSON (GeoBoundingBoxConstraint- (FieldName gbbcGeoBBField) gbbcConstraintBox cache type') =- object [gbbcGeoBBField .= gbbcConstraintBox- , "_cache" .= cache- , "type" .= type']--instance FromJSON GeoBoundingBoxConstraint where- parseJSON = withObject "GeoBoundingBoxConstraint" parse- where parse o = case HM.toList (deleteSeveral ["type", "_cache"] o) of- [(fn, v)] -> GeoBoundingBoxConstraint (FieldName fn)- <$> parseJSON v- <*> o .:? "_cache" .!= defaultCache- <*> o .: "type"- _ -> fail "Could not find field name for GeoBoundingBoxConstraint"--instance ToJSON Distance where- toJSON (Distance dCoefficient dUnit) =- String boltedTogether where- coefText = showText dCoefficient- (String unitText) = toJSON dUnit- boltedTogether = mappend coefText unitText--instance FromJSON Distance where- parseJSON = withText "Distance" parse- where parse t = Distance <$> parseCoeff nT- <*> parseJSON (String unitT)- where (nT, unitT) = T.span validForNumber t- -- may be a better way to do this- validForNumber '-' = True- validForNumber '.' = True- validForNumber 'e' = True- validForNumber c = isNumber c- parseCoeff "" = fail "Empty string cannot be parsed as number"- parseCoeff s = return (read (T.unpack s))--instance ToJSON DistanceType where- toJSON Arc = String "arc"- toJSON SloppyArc = String "sloppy_arc"- toJSON Plane = String "plane"--instance FromJSON DistanceType where- parseJSON = withText "DistanceType" parse- where parse "arc" = pure Arc- parse "sloppy_arc" = pure SloppyArc- parse "plane" = pure Plane- parse t = fail ("Unrecognized DistanceType: " <> show t)--instance ToJSON OptimizeBbox where- toJSON NoOptimizeBbox = String "none"- toJSON (OptimizeGeoFilterType gft) = toJSON gft--instance FromJSON OptimizeBbox where- parseJSON v = withText "NoOptimizeBbox" parseNoOptimize v- <|> parseOptimize v- where parseNoOptimize "none" = pure NoOptimizeBbox- parseNoOptimize _ = mzero- parseOptimize = fmap OptimizeGeoFilterType . parseJSON--instance ToJSON Term where- toJSON (Term field value) = object ["term" .= object- [field .= value]]--instance FromJSON Term where- parseJSON = withObject "Term" parse- where parse o = do termObj <- o .: "term"- case HM.toList termObj of- [(fn, v)] -> Term fn <$> parseJSON v- _ -> fail "Expected object with 1 field-named key"--instance ToJSON GeoBoundingBox where- toJSON (GeoBoundingBox gbbTopLeft gbbBottomRight) =- object ["top_left" .= gbbTopLeft- , "bottom_right" .= gbbBottomRight]--instance FromJSON GeoBoundingBox where- parseJSON = withObject "GeoBoundingBox" parse- where parse o = GeoBoundingBox- <$> o .: "top_left"- <*> o .: "bottom_right"--instance ToJSON GeoFilterType where- toJSON GeoFilterMemory = String "memory"- toJSON GeoFilterIndexed = String "indexed"--instance FromJSON GeoFilterType where- parseJSON = withText "GeoFilterType" parse- where parse "memory" = pure GeoFilterMemory- parse "indexed" = pure GeoFilterIndexed- parse t = fail ("Unrecognized GeoFilterType: " <> show t)--{-| 'unpackId' is a silly convenience function that gets used once.--}-unpackId :: DocId -> Text-unpackId (DocId docId) = docId
− src/Database/V1/Bloodhound/Internal/Sort.hs
@@ -1,106 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Database.V1.Bloodhound.Internal.Sort where---import Bloodhound.Import--import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query---{-| 'Sort' is a synonym for a list of 'SortSpec's. Sort behavior is order- dependent with later sorts acting as tie-breakers for earlier sorts.--}-type Sort = [SortSpec]---{-| The two main kinds of 'SortSpec' are 'DefaultSortSpec' and- 'GeoDistanceSortSpec'. The latter takes a 'SortOrder', 'GeoPoint', and- 'DistanceUnit' to express "nearness" to a single geographical point as a- sort specification.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data SortSpec = DefaultSortSpec DefaultSort- | GeoDistanceSortSpec SortOrder GeoPoint DistanceUnit deriving (Eq, Show)--instance ToJSON SortSpec where- toJSON (DefaultSortSpec- (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped- dsSortMode dsMissingSort dsNestedFilter)) =- object [dsSortFieldName .= omitNulls base] where- base = [ "order" .= dsSortOrder- , "ignore_unmapped" .= dsIgnoreUnmapped- , "mode" .= dsSortMode- , "missing" .= dsMissingSort- , "nested_filter" .= dsNestedFilter ]-- toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =- object [ "unit" .= units- , field .= gdsLatLon- , "order" .= gdsSortOrder ]--{-| 'DefaultSort' is usually the kind of 'SortSpec' you'll want. There's a- 'mkSort' convenience function for when you want to specify only the most- common parameters.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data DefaultSort =- DefaultSort { sortFieldName :: FieldName- , sortOrder :: SortOrder- -- default False- , ignoreUnmapped :: Bool- , sortMode :: Maybe SortMode- , missingSort :: Maybe Missing- , nestedFilter :: Maybe Filter } deriving (Eq, Show)--{-| 'SortOrder' is 'Ascending' or 'Descending', as you might expect. These get- encoded into "asc" or "desc" when turned into JSON.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data SortOrder = Ascending- | Descending deriving (Eq, Show)---instance ToJSON SortOrder where- toJSON Ascending = String "asc"- toJSON Descending = String "desc"--{-| 'SortMode' prescribes how to handle sorting array/multi-valued fields.--http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_sort_mode_option--}-data SortMode = SortMin- | SortMax- | SortSum- | SortAvg deriving (Eq, Show)--instance ToJSON SortMode where- toJSON SortMin = String "min"- toJSON SortMax = String "max"- toJSON SortSum = String "sum"- toJSON SortAvg = String "avg"--{-| 'Missing' prescribes how to handle missing fields. A missing field can be- sorted last, first, or using a custom value as a substitute.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_missing_values>--}-data Missing = LastMissing- | FirstMissing- | CustomMissing Text deriving (Eq, Show)--instance ToJSON Missing where- toJSON LastMissing = String "_last"- toJSON FirstMissing = String "_first"- toJSON (CustomMissing txt) = String txt---- {-| 'mkSort' defaults everything but the 'FieldName' and the 'SortOrder' so--- that you can concisely describe the usual kind of 'SortSpec's you want.--- -}-mkSort :: FieldName -> SortOrder -> DefaultSort-mkSort fieldName sOrder = DefaultSort fieldName sOrder False Nothing Nothing Nothing-
− src/Database/V1/Bloodhound/Internal/StringlyTyped.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Database.V1.Bloodhound.Internal.StringlyTyped where--import Bloodhound.Import--import qualified Data.Text as T--newtype StringlyTypedDouble = StringlyTypedDouble { unStringlyTypedDouble :: Double }---instance FromJSON StringlyTypedDouble where- parseJSON = fmap StringlyTypedDouble . parseJSON . unStringlyTypeJSON----- | For some reason in several settings APIs, all leaf values get returned--- as strings. This function attepmts to recover from this for all--- non-recursive JSON types. If nothing can be done, the value is left alone.-unStringlyTypeJSON :: Value -> Value-unStringlyTypeJSON (String "true") = Bool True-unStringlyTypeJSON (String "false") = Bool False-unStringlyTypeJSON (String "null") = Null-unStringlyTypeJSON v@(String t) = case readMay (T.unpack t) of- Just n -> Number n- Nothing -> v-unStringlyTypeJSON v = v
− src/Database/V1/Bloodhound/Internal/Suggest.hs
@@ -1,252 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V1.Bloodhound.Internal.Suggest where---import Bloodhound.Import--import qualified Data.HashMap.Strict as HM--import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query--data Suggest = Suggest { suggestText :: Text- , suggestName :: Text- , suggestType :: SuggestType- }- deriving (Show, Eq)--instance ToJSON Suggest where- toJSON Suggest{..} = object [ "text" .= suggestText- , suggestName .= suggestType- ]--instance FromJSON Suggest where- parseJSON (Object o) = do- suggestText' <- o .: "text"- let dropTextList = HM.toList $ HM.filterWithKey (\x _ -> x /= "text") o- suggestName' <- case dropTextList of- [(x, _)] -> return x- _ -> fail "error parsing Suggest field name"- suggestType' <- o .: suggestName'- return $ Suggest suggestText' suggestName' suggestType'- parseJSON x = typeMismatch "Suggest" x--data SuggestType = SuggestTypePhraseSuggester PhraseSuggester- deriving (Show, Eq)--instance ToJSON SuggestType where- toJSON (SuggestTypePhraseSuggester x) = object ["phrase" .= x]--instance FromJSON SuggestType where- parseJSON = withObject "SuggestType" parse- where parse o = phraseSuggester `taggedWith` "phrase"- where taggedWith parser k = parser =<< o .: k- phraseSuggester = pure . SuggestTypePhraseSuggester--data PhraseSuggester =- PhraseSuggester { phraseSuggesterField :: FieldName- , phraseSuggesterGramSize :: Maybe Int- , phraseSuggesterRealWordErrorLikelihood :: Maybe Int- , phraseSuggesterConfidence :: Maybe Int- , phraseSuggesterMaxErrors :: Maybe Int- , phraseSuggesterSeparator :: Maybe Text- , phraseSuggesterSize :: Maybe Size- , phraseSuggesterAnalyzer :: Maybe Analyzer- , phraseSuggesterShardSize :: Maybe Int- , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter- , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate- , phraseSuggesterCandidateGenerators :: [DirectGenerators]- }- deriving (Show, Eq)--instance ToJSON PhraseSuggester where- toJSON PhraseSuggester{..} = omitNulls [ "field" .= phraseSuggesterField- , "gram_size" .= phraseSuggesterGramSize- , "real_word_error_likelihood" .= phraseSuggesterRealWordErrorLikelihood- , "confidence" .= phraseSuggesterConfidence- , "max_errors" .= phraseSuggesterMaxErrors- , "separator" .= phraseSuggesterSeparator- , "size" .= phraseSuggesterSize- , "analyzer" .= phraseSuggesterAnalyzer- , "shard_size" .= phraseSuggesterShardSize- , "highlight" .= phraseSuggesterHighlight- , "collate" .= phraseSuggesterCollate- , "direct_generator" .= phraseSuggesterCandidateGenerators- ]--instance FromJSON PhraseSuggester where- parseJSON = withObject "PhraseSuggester" parse- where parse o = PhraseSuggester- <$> o .: "field"- <*> o .:? "gram_size"- <*> o .:? "real_word_error_likelihood"- <*> o .:? "confidence"- <*> o .:? "max_errors"- <*> o .:? "separator"- <*> o .:? "size"- <*> o .:? "analyzer"- <*> o .:? "shard_size"- <*> o .:? "highlight"- <*> o .:? "collate"- <*> o .:? "direct_generator" .!= []--mkPhraseSuggester :: FieldName -> PhraseSuggester-mkPhraseSuggester fName =- PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing []--data PhraseSuggesterHighlighter =- PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text- , phraseSuggesterHighlighterPostTag :: Text- }- deriving (Show, Eq)--instance ToJSON PhraseSuggesterHighlighter where- toJSON PhraseSuggesterHighlighter{..} =- object [ "pre_tag" .= phraseSuggesterHighlighterPreTag- , "post_tag" .= phraseSuggesterHighlighterPostTag- ]--instance FromJSON PhraseSuggesterHighlighter where- parseJSON = withObject "PhraseSuggesterHighlighter" parse- where parse o = PhraseSuggesterHighlighter- <$> o .: "pre_tag"- <*> o .: "post_tag"--data PhraseSuggesterCollate =- PhraseSuggesterCollate { phraseSuggesterCollateTemplateQuery :: TemplateQueryInline- , phraseSuggesterCollatePrune :: Bool- }- deriving (Show, Eq)--instance ToJSON PhraseSuggesterCollate where- toJSON PhraseSuggesterCollate{..} = object [ "query" .= object- [ "inline" .= (inline phraseSuggesterCollateTemplateQuery)- ]- , "params" .= (params phraseSuggesterCollateTemplateQuery)- , "prune" .= phraseSuggesterCollatePrune- ]--instance FromJSON PhraseSuggesterCollate where- parseJSON (Object o) = do- query' <- o .: "query"- inline' <- query' .: "inline"- params' <- o .: "params"- prune' <- o .:? "prune" .!= False- return $ PhraseSuggesterCollate (TemplateQueryInline inline' params') prune'- parseJSON x = typeMismatch "PhraseSuggesterCollate" x--data DirectGenerators = DirectGenerators- { directGeneratorsField :: FieldName- , directGeneratorsSize :: Maybe Int- , directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes- , directGeneratorMaxEdits :: Maybe Double- , directGeneratorPrefixLength :: Maybe Int- , directGeneratorMinWordLength :: Maybe Int- , directGeneratorMaxInspections :: Maybe Int- , directGeneratorMinDocFreq :: Maybe Double- , directGeneratorMaxTermFreq :: Maybe Double- , directGeneratorPreFilter :: Maybe Text- , directGeneratorPostFilter :: Maybe Text- }- deriving (Show, Eq)---instance ToJSON DirectGenerators where- toJSON DirectGenerators{..} = omitNulls [ "field" .= directGeneratorsField- , "size" .= directGeneratorsSize- , "suggest_mode" .= directGeneratorSuggestMode- , "max_edits" .= directGeneratorMaxEdits- , "prefix_length" .= directGeneratorPrefixLength- , "min_word_length" .= directGeneratorMinWordLength- , "max_inspections" .= directGeneratorMaxInspections- , "min_doc_freq" .= directGeneratorMinDocFreq- , "max_term_freq" .= directGeneratorMaxTermFreq- , "pre_filter" .= directGeneratorPreFilter- , "post_filter" .= directGeneratorPostFilter- ]--instance FromJSON DirectGenerators where- parseJSON = withObject "DirectGenerators" parse- where parse o = DirectGenerators- <$> o .: "field"- <*> o .:? "size"- <*> o .: "suggest_mode"- <*> o .:? "max_edits"- <*> o .:? "prefix_length"- <*> o .:? "min_word_length"- <*> o .:? "max_inspections"- <*> o .:? "min_doc_freq"- <*> o .:? "max_term_freq"- <*> o .:? "pre_filter"- <*> o .:? "post_filter"--mkDirectGenerators :: FieldName -> DirectGenerators-mkDirectGenerators fn = DirectGenerators fn Nothing DirectGeneratorSuggestModeMissing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing--data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing- | DirectGeneratorSuggestModePopular- | DirectGeneratorSuggestModeAlways- deriving (Show, Eq)--instance ToJSON DirectGeneratorSuggestModeTypes where- toJSON DirectGeneratorSuggestModeMissing = "missing"- toJSON DirectGeneratorSuggestModePopular = "popular"- toJSON DirectGeneratorSuggestModeAlways = "always"--instance FromJSON DirectGeneratorSuggestModeTypes where- parseJSON = withText "DirectGeneratorSuggestModeTypes" parse- where parse "missing" = pure DirectGeneratorSuggestModeMissing- parse "popular" = pure DirectGeneratorSuggestModePopular- parse "always" = pure DirectGeneratorSuggestModeAlways- parse f = fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)--data SuggestOptions =- SuggestOptions { suggestOptionsText :: Text- , suggestOptionsScore :: Double- , suggestOptionsFreq :: Maybe Int- , suggestOptionsHighlighted :: Maybe Text- }- deriving (Eq, Show)--instance FromJSON SuggestOptions where- parseJSON = withObject "SuggestOptions" parse- where parse o = SuggestOptions- <$> o .: "text"- <*> o .: "score"- <*> o .:? "freq"- <*> o .:? "highlighted"--data SuggestResponse =- SuggestResponse { suggestResponseText :: Text- , suggestResponseOffset :: Int- , suggestResponseLength :: Int- , suggestResponseOptions :: [SuggestOptions]- }- deriving (Eq, Show)--instance FromJSON SuggestResponse where- parseJSON = withObject "SuggestResponse" parse- where parse o = SuggestResponse- <$> o .: "text"- <*> o .: "offset"- <*> o .: "length"- <*> o .: "options"--data NamedSuggestionResponse =- NamedSuggestionResponse { nsrName :: Text- , nsrResponses :: [SuggestResponse]- }- deriving (Eq, Show)--instance FromJSON NamedSuggestionResponse where- parseJSON (Object o) = do- suggestionName' <- case HM.toList o of- [(x, _)] -> return x- _ -> fail "error parsing NamedSuggestionResponse name"- suggestionResponses' <- o .: suggestionName'- return $ NamedSuggestionResponse suggestionName' suggestionResponses'-- parseJSON x = typeMismatch "NamedSuggestionResponse" x
− src/Database/V1/Bloodhound/Types.hs
@@ -1,452 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE UndecidableInstances #-}------------------------------------------------------------------------------------ |--- Module : Database.Bloodhound.Types--- Copyright : (C) 2014, 2015, 2016 Chris Allen--- License : BSD-style (see the file LICENSE)--- Maintainer : Chris Allen <cma@bitemyapp.com--- Stability : provisional--- Portability : DeriveGeneric, RecordWildCards------ Data types for describing actions and data structures performed to interact--- with Elasticsearch. The two main buckets your queries against Elasticsearch--- will fall into are 'Query's and 'Filter's. 'Filter's are more like--- traditional database constraints and often have preferable performance--- properties. 'Query's support human-written textual queries, such as fuzzy--- queries.------------------------------------------------------------------------------------module Database.V1.Bloodhound.Types- ( defaultCache- , defaultIndexSettings- , defaultIndexDocumentSettings- , mkSort- , showText- , unpackId- , mkMatchQuery- , mkMultiMatchQuery- , mkBoolQuery- , mkRangeQuery- , mkQueryStringQuery- , mkAggregations- , mkTermsAggregation- , mkTermsScriptAggregation- , mkDateHistogram- , mkCardinalityAggregation- , mkDocVersion- , docVersionNumber- , toMissing- , toTerms- , toDateHistogram- , toTopHits- , omitNulls- , BH(..)- , runBH- , BHEnv- , bhServer- , bhManager- , bhRequestHook- , mkBHEnv- , MonadBH(..)- , Version(..)- , VersionNumber(..)- , MaybeNA(..)- , BuildHash(..)- , Status(..)- , Existence(..)- , NullValue(..)- , IndexSettings(..)- , UpdatableIndexSetting(..)- , IndexSettingsSummary(..)- , AllocationPolicy(..)- , ReplicaBounds(..)- , Bytes(..)- , gigabytes- , megabytes- , kilobytes- , FSType(..)- , InitialShardCount(..)- , NodeAttrFilter(..)- , NodeAttrName(..)- , CompoundFormat(..)- , IndexTemplate(..)- , Server(..)- , Reply- , EsResult(..)- , EsResultFound(..)- , EsError(..)- , EsProtocolException(..)- , IndexAlias(..)- , IndexAliasName(..)- , IndexAliasAction(..)- , IndexAliasCreate(..)- , IndexAliasSummary(..)- , IndexAliasesSummary(..)- , AliasRouting(..)- , SearchAliasRouting(..)- , IndexAliasRouting(..)- , RoutingValue(..)- , DocVersion- , ExternalDocVersion(..)- , VersionControl(..)- , DocumentParent(..)- , IndexDocumentSettings(..)- , Query(..)- , Search(..)- , SearchType(..)- , SearchResult(..)- , ScrollId(..)- , SearchHits(..)- , TrackSortScores- , From(..)- , Size(..)- , Source(..)- , PatternOrPatterns(..)- , Include(..)- , Exclude(..)- , Pattern(..)- , ShardResult(..)- , Hit(..)- , Filter(..)- , Seminearring(..)- , BoolMatch(..)- , Term(..)- , GeoPoint(..)- , GeoBoundingBoxConstraint(..)- , GeoBoundingBox(..)- , GeoFilterType(..)- , Distance(..)- , DistanceUnit(..)- , DistanceType(..)- , DistanceRange(..)- , OptimizeBbox(..)- , LatLon(..)- , RangeValue(..)- , RangeExecution(..)- , LessThan(..)- , LessThanEq(..)- , GreaterThan(..)- , GreaterThanEq(..)- , LessThanD(..)- , LessThanEqD(..)- , GreaterThanD(..)- , GreaterThanEqD(..)- , Regexp(..)- , RegexpFlags(..)- , RegexpFlag(..)- , FieldName(..)- , Script(..)- , IndexName(..)- , IndexSelection(..)- , NodeSelection(..)- , NodeSelector(..)- , IndexOptimizationSettings(..)- , defaultIndexOptimizationSettings- , TemplateName(..)- , TemplatePattern(..)- , MappingName(..)- , DocId(..)- , CacheName(..)- , CacheKey(..)- , BulkOperation(..)- , ReplicaCount(..)- , ShardCount(..)- , Sort- , SortMode(..)- , SortOrder(..)- , SortSpec(..)- , DefaultSort(..)- , Missing(..)- , OpenCloseIndex(..)- , Method- , Boost(..)- , MatchQuery(..)- , MultiMatchQuery(..)- , BoolQuery(..)- , BoostingQuery(..)- , CommonTermsQuery(..)- , DisMaxQuery(..)- , FilteredQuery(..)- , FuzzyLikeThisQuery(..)- , FuzzyLikeFieldQuery(..)- , FuzzyQuery(..)- , HasChildQuery(..)- , HasParentQuery(..)- , IndicesQuery(..)- , MoreLikeThisQuery(..)- , MoreLikeThisFieldQuery(..)- , NestedQuery(..)- , PrefixQuery(..)- , QueryStringQuery(..)- , SimpleQueryStringQuery(..)- , RangeQuery(..)- , RegexpQuery(..)- , QueryString(..)- , TemplateQueryInline(..)- , TemplateQueryKeyValuePairs(..)- , BooleanOperator(..)- , ZeroTermsQuery(..)- , CutoffFrequency(..)- , Analyzer(..)- , MaxExpansions(..)- , Lenient(..)- , MatchQueryType(..)- , MultiMatchQueryType(..)- , Tiebreaker(..)- , MinimumMatch(..)- , DisableCoord(..)- , CommonMinimumMatch(..)- , MinimumMatchHighLow(..)- , PrefixLength(..)- , Fuzziness(..)- , IgnoreTermFrequency(..)- , MaxQueryTerms(..)- , ScoreType(..)- , Score- , Cache- , TypeName(..)- , BoostTerms(..)- , MaxWordLength(..)- , MinWordLength(..)- , MaxDocFrequency(..)- , MinDocFrequency(..)- , PhraseSlop(..)- , StopWord(..)- , QueryPath(..)- , MinimumTermFrequency(..)- , PercentMatch(..)- , FieldDefinition(..)- , MappingField(..)- , Mapping(..)- , AllowLeadingWildcard(..)- , LowercaseExpanded(..)- , GeneratePhraseQueries(..)- , Locale(..)- , AnalyzeWildcard(..)- , EnablePositionIncrements(..)- , SimpleQueryFlag(..)- , FieldOrFields(..)- , Monoid(..)- , ToJSON(..)- , Interval(..)- , TimeInterval(..)- , ExecutionHint(..)- , CollectionMode(..)- , TermOrder(..)- , TermInclusion(..)- , SnapshotRepoSelection(..)- , GenericSnapshotRepo(..)- , SnapshotRepo(..)- , SnapshotRepoConversionError(..)- , SnapshotRepoType(..)- , GenericSnapshotRepoSettings(..)- , SnapshotRepoUpdateSettings(..)- , defaultSnapshotRepoUpdateSettings- , SnapshotRepoName(..)- , SnapshotRepoPattern(..)- , SnapshotVerification(..)- , SnapshotNodeVerification(..)- , FullNodeId(..)- , NodeName(..)- , ClusterName(..)- , NodesInfo(..)- , NodesStats(..)- , NodeStats(..)- , NodeBreakersStats(..)- , NodeBreakerStats(..)- , NodeHTTPStats(..)- , NodeTransportStats(..)- , NodeFSStats(..)- , NodeDataPathStats(..)- , NodeFSTotalStats(..)- , NodeNetworkStats(..)- , NodeThreadPoolsStats(..)- , NodeThreadPoolStats(..)- , NodeJVMStats(..)- , JVMBufferPoolStats(..)- , JVMGCStats(..)- , JVMPoolStats(..)- , NodeProcessStats(..)- , NodeOSStats(..)- , LoadAvgs(..)- , NodeIndicesStats(..)- , EsAddress(..)- , PluginName(..)- , NodeInfo(..)- , NodePluginInfo(..)- , NodeHTTPInfo(..)- , NodeTransportInfo(..)- , BoundTransportAddress(..)- , NodeNetworkInfo(..)- , MacAddress(..)- , NetworkInterfaceName(..)- , NodeNetworkInterface(..)- , NodeThreadPoolsInfo(..)- , NodeThreadPoolInfo(..)- , ThreadPoolSize(..)- , ThreadPoolType(..)- , NodeJVMInfo(..)- , JVMMemoryPool(..)- , JVMGCCollector(..)- , JVMMemoryInfo(..)- , PID(..)- , NodeOSInfo(..)- , CPUInfo(..)- , NodeProcessInfo(..)- , FsSnapshotRepo(..)- , SnapshotCreateSettings(..)- , defaultSnapshotCreateSettings- , SnapshotSelection(..)- , SnapshotPattern(..)- , SnapshotInfo(..)- , SnapshotShardFailure(..)- , ShardId(..)- , SnapshotName(..)- , SnapshotState(..)- , SnapshotRestoreSettings(..)- , defaultSnapshotRestoreSettings- , RestoreRenamePattern(..)- , RestoreRenameToken(..)- , RRGroupRefNum- , rrGroupRefNum- , mkRRGroupRefNum- , RestoreIndexSettings(..)- , Suggest(..)- , SuggestType(..)- , PhraseSuggester(..)- , PhraseSuggesterHighlighter(..)- , PhraseSuggesterCollate(..)- , mkPhraseSuggester- , SuggestOptions(..)- , SuggestResponse(..)- , NamedSuggestionResponse(..)- , DirectGenerators(..)- , mkDirectGenerators- , DirectGeneratorSuggestModeTypes (..)-- , Aggregation(..)- , Aggregations- , AggregationResults- , BucketValue(..)- , Bucket(..)- , BucketAggregation(..)- , TermsAggregation(..)- , MissingAggregation(..)- , ValueCountAggregation(..)- , FilterAggregation(..)- , CardinalityAggregation(..)- , DateHistogramAggregation(..)- , DateRangeAggregation(..)- , DateRangeAggRange(..)- , DateMathExpr(..)- , DateMathAnchor(..)- , DateMathModifier(..)- , DateMathUnit(..)- , TopHitsAggregation(..)-- , Highlights(..)- , FieldHighlight(..)- , HighlightSettings(..)- , PlainHighlight(..)- , PostingsHighlight(..)- , FastVectorHighlight(..)- , CommonHighlight(..)- , NonPostings(..)- , HighlightEncoder(..)- , HighlightTag(..)- , HitHighlight-- , MissingResult(..)- , TermsResult(..)- , DateHistogramResult(..)- , DateRangeResult(..)- , TopHitResult(..)-- , EsUsername(..)- , EsPassword(..)- ) where--import Bloodhound.Import--import Database.V1.Bloodhound.Types.Class-import Database.V1.Bloodhound.Internal.Aggregation-import Database.V1.Bloodhound.Internal.Client-import Database.V1.Bloodhound.Internal.Highlight-import Database.V1.Bloodhound.Internal.Newtypes-import Database.V1.Bloodhound.Internal.Query-import Database.V1.Bloodhound.Internal.Sort-import Database.V1.Bloodhound.Internal.Suggest--data SearchResult a =- SearchResult { took :: Int- , timedOut :: Bool- , shards :: ShardResult- , searchHits :: SearchHits a- , aggregations :: Maybe AggregationResults- , scrollId :: Maybe ScrollId- , suggest :: Maybe NamedSuggestionResponse -- ^ Only one Suggestion request / response per Search is supported.- }- deriving (Eq, Show)--type TrackSortScores = Bool--data Search = Search { queryBody :: Maybe Query- , filterBody :: Maybe Filter- , sortBody :: Maybe Sort- , aggBody :: Maybe Aggregations- , highlight :: Maybe Highlights- -- default False- , trackSortScores :: TrackSortScores- , from :: From- , size :: Size- , searchType :: SearchType- , fields :: Maybe [FieldName]- , source :: Maybe Source- , suggestBody :: Maybe Suggest -- ^ Only one Suggestion request / response per Search is supported.- } deriving (Eq, Show)--data SearchType = SearchTypeQueryThenFetch- | SearchTypeDfsQueryThenFetch- | SearchTypeCount- | SearchTypeScan- | SearchTypeQueryAndFetch- | SearchTypeDfsQueryAndFetch- deriving (Eq, Show)--instance ToJSON Search where- toJSON (Search query sFilter sort searchAggs highlight sTrackSortScores sFrom sSize _ sFields sSource sSuggest) =- omitNulls [ "query" .= query- , "filter" .= sFilter- , "sort" .= sort- , "aggregations" .= searchAggs- , "highlight" .= highlight- , "from" .= sFrom- , "size" .= sSize- , "track_scores" .= sTrackSortScores- , "fields" .= sFields- , "_source" .= sSource- , "suggest" .= sSuggest]---instance (FromJSON a) => FromJSON (SearchResult a) where- parseJSON (Object v) = SearchResult <$>- v .: "took" <*>- v .: "timed_out" <*>- v .: "_shards" <*>- v .: "hits" <*>- v .:? "aggregations" <*>- v .:? "_scroll_id" <*>- v .:? "suggest"- parseJSON _ = empty
− src/Database/V1/Bloodhound/Types/Class.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE CPP #-}-module Database.V1.Bloodhound.Types.Class- ( Seminearring(..) )- where--#if !MIN_VERSION_base(4,8,0)-import Data.Monoid-#endif--class Monoid a => Seminearring a where- -- 0, +, *- (<||>) :: a -> a -> a- (<&&>) :: a -> a -> a- (<&&>) = mappend--infixr 5 <||>-infixr 5 <&&>
− src/Database/V5/Bloodhound.hs
@@ -1,10 +0,0 @@-module Database.V5.Bloodhound- ( -- module Data.Aeson.Types- -- , - module Database.V5.Bloodhound.Client- , module Database.V5.Bloodhound.Types- ) where---- import Data.Aeson.Types-import Database.V5.Bloodhound.Client-import Database.V5.Bloodhound.Types
− src/Database/V5/Bloodhound/Client.hs
@@ -1,1208 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}------------------------------------------------------------------------------------ |--- Module : Database.Bloodhound.Client--- Copyright : (C) 2014, 2018 Chris Allen--- License : BSD-style (see the file LICENSE)--- Maintainer : Chris Allen <cma@bitemyapp.com>--- Stability : provisional--- Portability : OverloadedStrings------ Client side functions for talking to Elasticsearch servers.-------------------------------------------------------------------------------------module Database.V5.Bloodhound.Client- ( -- * Bloodhound client functions- -- | The examples in this module assume the following code has been run.- -- The :{ and :} will only work in GHCi. You'll only need the data types- -- and typeclass instances for the functions that make use of them.-- -- $setup- withBH- -- ** Indices- , createIndex- , createIndexWith- , flushIndex- , deleteIndex- , updateIndexSettings- , getIndexSettings- , forceMergeIndex- , indexExists- , openIndex- , closeIndex- , listIndices- , waitForYellowIndex- -- *** Index Aliases- , updateIndexAliases- , getIndexAliases- , deleteIndexAlias- -- *** Index Templates- , putTemplate- , templateExists- , deleteTemplate- -- ** Mapping- , putMapping- -- ** Documents- , indexDocument- , updateDocument- , getDocument- , documentExists- , deleteDocument- -- ** Searching- , searchAll- , searchByIndex- , searchByIndices- , searchByType- , scanSearch- , getInitialScroll- , getInitialSortedScroll- , advanceScroll- , refreshIndex- , mkSearch- , mkAggregateSearch- , mkHighlightSearch- , bulk- , pageSearch- , mkShardCount- , mkReplicaCount- , getStatus- -- ** Snapshot/Restore- -- *** Snapshot Repos- , getSnapshotRepos- , updateSnapshotRepo- , verifySnapshotRepo- , deleteSnapshotRepo- -- *** Snapshots- , createSnapshot- , getSnapshots- , deleteSnapshot- -- *** Restoring Snapshots- , restoreSnapshot- -- ** Nodes- , getNodesInfo- , getNodesStats- -- ** Request Utilities- , encodeBulkOperations- , encodeBulkOperation- -- * Authentication- , basicAuthHook- -- * Reply-handling tools- , isVersionConflict- , isSuccess- , isCreated- , parseEsResponse- )- where--import qualified Blaze.ByteString.Builder as BB-import Control.Applicative as A-import Control.Monad-import Control.Monad.Catch-import Control.Monad.IO.Class-import Data.Aeson-import Data.ByteString.Lazy.Builder-import qualified Data.ByteString.Lazy.Char8 as L-import Data.Foldable (toList)-import qualified Data.HashMap.Strict as HM-import Data.Ix-import qualified Data.List as LS (filter, foldl')-import Data.List.NonEmpty (NonEmpty (..))-import Data.Maybe (catMaybes, fromMaybe, isJust)-import Data.Monoid-import Data.Text (Text)-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import Data.Time.Clock-import qualified Data.Vector as V-import Network.HTTP.Client-import qualified Network.HTTP.Types.Method as NHTM-import qualified Network.HTTP.Types.Status as NHTS-import qualified Network.HTTP.Types.URI as NHTU-import qualified Network.URI as URI-import Prelude hiding (filter, head)--import Database.V5.Bloodhound.Types---- $setup--- >>> :set -XOverloadedStrings--- >>> :set -XDeriveGeneric--- >>> import Database.V5.Bloodhound--- >>> import Network.HTTP.Client--- >>> let testServer = (Server "http://localhost:9200")--- >>> let runBH' = withBH defaultManagerSettings testServer--- >>> let testIndex = IndexName "twitter"--- >>> let testMapping = MappingName "tweet"--- >>> let defaultIndexSettings = IndexSettings (ShardCount 1) (ReplicaCount 0)--- >>> data TweetMapping = TweetMapping deriving (Eq, Show)--- >>> _ <- runBH' $ deleteIndex testIndex--- >>> _ <- runBH' $ deleteIndex (IndexName "didimakeanindex")--- >>> import GHC.Generics--- >>> import Data.Time.Calendar (Day (..))--- >>> import Data.Time.Clock (UTCTime (..), secondsToDiffTime)--- >>> :{---instance ToJSON TweetMapping where--- toJSON TweetMapping =--- object ["properties" .=--- object ["location" .=--- object ["type" .= ("geo_point" :: Text)]]]---data Location = Location { lat :: Double--- , lon :: Double } deriving (Eq, Generic, Show)---data Tweet = Tweet { user :: Text--- , postDate :: UTCTime--- , message :: Text--- , age :: Int--- , location :: Location } deriving (Eq, Generic, Show)---exampleTweet = Tweet { user = "bitemyapp"--- , postDate = UTCTime--- (ModifiedJulianDay 55000)--- (secondsToDiffTime 10)--- , message = "Use haskell!"--- , age = 10000--- , location = Location 40.12 (-71.34) }---instance ToJSON Tweet where--- toJSON = genericToJSON defaultOptions---instance FromJSON Tweet where--- parseJSON = genericParseJSON defaultOptions---instance ToJSON Location where--- toJSON = genericToJSON defaultOptions---instance FromJSON Location where--- parseJSON = genericParseJSON defaultOptions---data BulkTest = BulkTest { name :: Text } deriving (Eq, Generic, Show)---instance FromJSON BulkTest where--- parseJSON = genericParseJSON defaultOptions---instance ToJSON BulkTest where--- toJSON = genericToJSON defaultOptions--- :}---- | 'mkShardCount' is a straight-forward smart constructor for 'ShardCount'--- which rejects 'Int' values below 1 and above 1000.------ >>> mkShardCount 10--- Just (ShardCount 10)-mkShardCount :: Int -> Maybe ShardCount-mkShardCount n- | n < 1 = Nothing- | n > 1000 = Nothing- | otherwise = Just (ShardCount n)---- | 'mkReplicaCount' is a straight-forward smart constructor for 'ReplicaCount'--- which rejects 'Int' values below 0 and above 1000.------ >>> mkReplicaCount 10--- Just (ReplicaCount 10)-mkReplicaCount :: Int -> Maybe ReplicaCount-mkReplicaCount n- | n < 0 = Nothing- | n > 1000 = Nothing -- ...- | otherwise = Just (ReplicaCount n)--emptyBody :: L.ByteString-emptyBody = L.pack ""--dispatch :: MonadBH m- => Method- -> Text- -> Maybe L.ByteString- -> m Reply-dispatch dMethod url body = do- initReq <- liftIO $ parseUrl' url- reqHook <- bhRequestHook A.<$> getBHEnv- let reqBody = RequestBodyLBS $ fromMaybe emptyBody body- req <- liftIO- $ reqHook- $ setRequestIgnoreStatus- $ initReq { method = dMethod- , requestHeaders =- -- "application/x-ndjson" for bulk- ("Content-Type", "application/json") : requestHeaders initReq- , requestBody = reqBody }- -- req <- liftIO $ reqHook $ setRequestIgnoreStatus $ initReq { method = dMethod- -- , requestBody = reqBody }- mgr <- bhManager <$> getBHEnv- liftIO $ httpLbs req mgr--joinPath' :: [Text] -> Text-joinPath' = T.intercalate "/"--joinPath :: MonadBH m => [Text] -> m Text-joinPath ps = do- Server s <- bhServer <$> getBHEnv- return $ joinPath' (s:ps)--appendSearchTypeParam :: Text -> SearchType -> Text-appendSearchTypeParam originalUrl st = addQuery params originalUrl- where stText = "search_type"- params- | st == SearchTypeDfsQueryThenFetch = [(stText, Just "dfs_query_then_fetch")]- -- used to catch 'SearchTypeQueryThenFetch', which is also the default- | otherwise = []---- | Severely dumbed down query renderer. Assumes your data doesn't--- need any encoding-addQuery :: [(Text, Maybe Text)] -> Text -> Text-addQuery q u = u <> rendered- where- rendered =- T.decodeUtf8 $ BB.toByteString $ NHTU.renderQueryText prependQuestionMark q- prependQuestionMark = True--bindM2 :: (Applicative m, Monad m) => (a -> b -> m c) -> m a -> m b -> m c-bindM2 f ma mb = join (f <$> ma <*> mb)---- | Convenience function that sets up a manager and BHEnv and runs--- the given set of bloodhound operations. Connections will be--- pipelined automatically in accordance with the given manager--- settings in IO. If you've got your own monad transformer stack, you--- should use 'runBH' directly.-withBH :: ManagerSettings -> Server -> BH IO a -> IO a-withBH ms s f = do- mgr <- newManager ms- let env = mkBHEnv s mgr- runBH env f---- Shortcut functions for HTTP methods-delete :: MonadBH m => Text -> m Reply-delete = flip (dispatch NHTM.methodDelete) Nothing-get :: MonadBH m => Text -> m Reply-get = flip (dispatch NHTM.methodGet) Nothing-head :: MonadBH m => Text -> m Reply-head = flip (dispatch NHTM.methodHead) Nothing-put :: MonadBH m => Text -> Maybe L.ByteString -> m Reply-put = dispatch NHTM.methodPut-post :: MonadBH m => Text -> Maybe L.ByteString -> m Reply-post = dispatch NHTM.methodPost---- indexDocument s ix name doc = put (root </> s </> ix </> name </> doc) (Just encode doc)--- http://hackage.haskell.org/package/http-client-lens-0.1.0/docs/Network-HTTP-Client-Lens.html--- https://github.com/supki/libjenkins/blob/master/src/Jenkins/Rest/Internal.hs---- | 'getStatus' fetches the 'Status' of a 'Server'------ >>> serverStatus <- runBH' getStatus--- >>> fmap tagline (serverStatus)--- Just "You Know, for Search"-getStatus :: MonadBH m => m (Maybe Status)-getStatus = do- response <- get =<< url- return $ decode (responseBody response)- where url = joinPath []---- | 'getSnapshotRepos' gets the definitions of a subset of the--- defined snapshot repos.-getSnapshotRepos- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoSelection- -> m (Either EsError [GenericSnapshotRepo])-getSnapshotRepos sel = fmap (fmap unGSRs) . parseEsResponse =<< get =<< url- where- url = joinPath ["_snapshot", selectorSeg]- selectorSeg = case sel of- AllSnapshotRepos -> "_all"- SnapshotRepoList (p :| ps) -> T.intercalate "," (renderPat <$> (p:ps))- renderPat (RepoPattern t) = t- renderPat (ExactRepo (SnapshotRepoName t)) = t----- | Wrapper to extract the list of 'GenericSnapshotRepo' in the--- format they're returned in-newtype GSRs = GSRs { unGSRs :: [GenericSnapshotRepo] }---instance FromJSON GSRs where- parseJSON = withObject "Collection of GenericSnapshotRepo" parse- where- parse = fmap GSRs . mapM (uncurry go) . HM.toList- go rawName = withObject "GenericSnapshotRepo" $ \o ->- GenericSnapshotRepo (SnapshotRepoName rawName) <$> o .: "type"- <*> o .: "settings"----- | Create or update a snapshot repo-updateSnapshotRepo- :: ( MonadBH m- , SnapshotRepo repo- )- => SnapshotRepoUpdateSettings- -- ^ Use 'defaultSnapshotRepoUpdateSettings' if unsure- -> repo- -> m Reply-updateSnapshotRepo SnapshotRepoUpdateSettings {..} repo =- bindM2 put url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", snapshotRepoName gSnapshotRepoName]- params- | repoUpdateVerify = []- | otherwise = [("verify", Just "false")]- body = encode $ object [ "type" .= gSnapshotRepoType- , "settings" .= gSnapshotRepoSettings- ]- GenericSnapshotRepo {..} = toGSnapshotRepo repo------ | Verify if a snapshot repo is working. __NOTE:__ this API did not--- make it into Elasticsearch until 1.4. If you use an older version,--- you will get an error here.-verifySnapshotRepo- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoName- -> m (Either EsError SnapshotVerification)-verifySnapshotRepo (SnapshotRepoName n) =- parseEsResponse =<< bindM2 post url (return Nothing)- where- url = joinPath ["_snapshot", n, "_verify"]---deleteSnapshotRepo :: MonadBH m => SnapshotRepoName -> m Reply-deleteSnapshotRepo (SnapshotRepoName n) = delete =<< url- where- url = joinPath ["_snapshot", n]----- | Create and start a snapshot-createSnapshot- :: (MonadBH m)- => SnapshotRepoName- -> SnapshotName- -> SnapshotCreateSettings- -> m Reply-createSnapshot (SnapshotRepoName repoName)- (SnapshotName snapName)- SnapshotCreateSettings {..} =- bindM2 put url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", repoName, snapName]- params = [("wait_for_completion", Just (boolQP snapWaitForCompletion))]- body = encode $ object prs- prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapIndices- , Just ("ignore_unavailable" .= snapIgnoreUnavailable)- , Just ("ignore_global_state" .= snapIncludeGlobalState)- , Just ("partial" .= snapPartial)- ]---indexSelectionName :: IndexSelection -> Text-indexSelectionName AllIndexes = "_all"-indexSelectionName (IndexList (i :| is)) = T.intercalate "," (renderIndex <$> (i:is))- where- renderIndex (IndexName n) = n----- | Get info about known snapshots given a pattern and repo name.-getSnapshots- :: ( MonadBH m- , MonadThrow m- )- => SnapshotRepoName- -> SnapshotSelection- -> m (Either EsError [SnapshotInfo])-getSnapshots (SnapshotRepoName repoName) sel =- fmap (fmap unSIs) . parseEsResponse =<< get =<< url- where- url = joinPath ["_snapshot", repoName, snapPath]- snapPath = case sel of- AllSnapshots -> "_all"- SnapshotList (s :| ss) -> T.intercalate "," (renderPath <$> (s:ss))- renderPath (SnapPattern t) = t- renderPath (ExactSnap (SnapshotName t)) = t---newtype SIs = SIs { unSIs :: [SnapshotInfo] }---instance FromJSON SIs where- parseJSON = withObject "Collection of SnapshotInfo" parse- where- parse o = SIs <$> o .: "snapshots"----- | Delete a snapshot. Cancels if it is running.-deleteSnapshot :: MonadBH m => SnapshotRepoName -> SnapshotName -> m Reply-deleteSnapshot (SnapshotRepoName repoName) (SnapshotName snapName) =- delete =<< url- where- url = joinPath ["_snapshot", repoName, snapName]----- | Restore a snapshot to the cluster See--- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/modules-snapshots.html#_restore>--- for more details.-restoreSnapshot- :: MonadBH m- => SnapshotRepoName- -> SnapshotName- -> SnapshotRestoreSettings- -- ^ Start with 'defaultSnapshotRestoreSettings' and customize- -- from there for reasonable defaults.- -> m Reply-restoreSnapshot (SnapshotRepoName repoName)- (SnapshotName snapName)- SnapshotRestoreSettings {..} = bindM2 post url (return (Just body))- where- url = addQuery params <$> joinPath ["_snapshot", repoName, snapName, "_restore"]- params = [("wait_for_completion", Just (boolQP snapRestoreWaitForCompletion))]- body = encode (object prs)--- prs = catMaybes [ ("indices" .=) . indexSelectionName <$> snapRestoreIndices- , Just ("ignore_unavailable" .= snapRestoreIgnoreUnavailable)- , Just ("include_global_state" .= snapRestoreIncludeGlobalState)- , ("rename_pattern" .=) <$> snapRestoreRenamePattern- , ("rename_replacement" .=) . renderTokens <$> snapRestoreRenameReplacement- , Just ("include_aliases" .= snapRestoreIncludeAliases)- , ("index_settings" .= ) <$> snapRestoreIndexSettingsOverrides- , ("ignore_index_settings" .= ) <$> snapRestoreIgnoreIndexSettings- ]- renderTokens (t :| ts) = mconcat (renderToken <$> (t:ts))- renderToken (RRTLit t) = t- renderToken RRSubWholeMatch = "$0"- renderToken (RRSubGroup g) = T.pack (show (rrGroupRefNum g))---getNodesInfo- :: ( MonadBH m- , MonadThrow m- )- => NodeSelection- -> m (Either EsError NodesInfo)-getNodesInfo sel = parseEsResponse =<< get =<< url- where- url = joinPath ["_nodes", selectionSeg]- selectionSeg = case sel of- LocalNode -> "_local"- NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))- AllNodes -> "_all"- selToSeg (NodeByName (NodeName n)) = n- selToSeg (NodeByFullNodeId (FullNodeId i)) = i- selToSeg (NodeByHost (Server s)) = s- selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v--getNodesStats- :: ( MonadBH m- , MonadThrow m- )- => NodeSelection- -> m (Either EsError NodesStats)-getNodesStats sel = parseEsResponse =<< get =<< url- where- url = joinPath ["_nodes", selectionSeg, "stats"]- selectionSeg = case sel of- LocalNode -> "_local"- NodeList (l :| ls) -> T.intercalate "," (selToSeg <$> (l:ls))- AllNodes -> "_all"- selToSeg (NodeByName (NodeName n)) = n- selToSeg (NodeByFullNodeId (FullNodeId i)) = i- selToSeg (NodeByHost (Server s)) = s- selToSeg (NodeByAttribute (NodeAttrName a) v) = a <> ":" <> v---- | 'createIndex' will create an index given a 'Server', 'IndexSettings', and an 'IndexName'.------ >>> response <- runBH' $ createIndex defaultIndexSettings (IndexName "didimakeanindex")--- >>> respIsTwoHunna response--- True--- >>> runBH' $ indexExists (IndexName "didimakeanindex")--- True-createIndex :: MonadBH m => IndexSettings -> IndexName -> m Reply-createIndex indexSettings (IndexName indexName) =- bindM2 put url (return body)- where url = joinPath [indexName]- body = Just $ encode indexSettings---- | Create an index, providing it with any number of settings. This--- is more expressive than 'createIndex' but makes is more verbose--- for the common case of configuring only the shard count and--- replica count.-createIndexWith :: MonadBH m- => [UpdatableIndexSetting]- -> Int -- ^ shard count- -> IndexName - -> m Reply-createIndexWith updates shards (IndexName indexName) =- bindM2 put url (return (Just body))- where url = joinPath [indexName]- body = encode $ object- ["settings" .= deepMerge - ( HM.singleton "index.number_of_shards" (toJSON shards) :- [u | Object u <- toJSON <$> updates]- )- ]---- | 'flushIndex' will flush an index given a 'Server' and an 'IndexName'.-flushIndex :: MonadBH m => IndexName -> m Reply-flushIndex (IndexName indexName) = do- path <- joinPath [indexName, "_flush"]- post path Nothing---- | 'deleteIndex' will delete an index given a 'Server' and an 'IndexName'.------ >>> _ <- runBH' $ createIndex defaultIndexSettings (IndexName "didimakeanindex")--- >>> response <- runBH' $ deleteIndex (IndexName "didimakeanindex")--- >>> respIsTwoHunna response--- True--- >>> runBH' $ indexExists (IndexName "didimakeanindex")--- False-deleteIndex :: MonadBH m => IndexName -> m Reply-deleteIndex (IndexName indexName) =- delete =<< joinPath [indexName]---- | 'updateIndexSettings' will apply a non-empty list of setting updates to an index------ >>> _ <- runBH' $ createIndex defaultIndexSettings (IndexName "unconfiguredindex")--- >>> response <- runBH' $ updateIndexSettings (BlocksWrite False :| []) (IndexName "unconfiguredindex")--- >>> respIsTwoHunna response--- True-updateIndexSettings :: MonadBH m => NonEmpty UpdatableIndexSetting -> IndexName -> m Reply-updateIndexSettings updates (IndexName indexName) =- bindM2 put url (return body)- where- url = joinPath [indexName, "_settings"]- body = Just (encode jsonBody)- jsonBody = Object (deepMerge [u | Object u <- toJSON <$> toList updates])---getIndexSettings :: (MonadBH m, MonadThrow m) => IndexName- -> m (Either EsError IndexSettingsSummary)-getIndexSettings (IndexName indexName) =- parseEsResponse =<< get =<< url- where- url = joinPath [indexName, "_settings"]---- | 'forceMergeIndex' --- --- The force merge API allows to force merging of one or more indices through--- an API. The merge relates to the number of segments a Lucene index holds--- within each shard. The force merge operation allows to reduce the number of--- segments by merging them.------ This call will block until the merge is complete. If the http connection is--- lost, the request will continue in the background, and any new requests will--- block until the previous force merge is complete.---- For more information see--- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html#indices-forcemerge>.--- Nothing--- worthwhile comes back in the reply body, so matching on the status--- should suffice.------ 'forceMergeIndex' with a maxNumSegments of 1 and onlyExpungeDeletes--- to True is the main way to release disk space back to the OS being--- held by deleted documents.------ >>> let ixn = IndexName "unoptimizedindex"--- >>> _ <- runBH' $ deleteIndex ixn >> createIndex defaultIndexSettings ixn--- >>> response <- runBH' $ forceMergeIndex (IndexList (ixn :| [])) (defaultIndexOptimizationSettings { maxNumSegments = Just 1, onlyExpungeDeletes = True })--- >>> respIsTwoHunna response--- True-forceMergeIndex :: MonadBH m => IndexSelection -> ForceMergeIndexSettings -> m Reply-forceMergeIndex ixs ForceMergeIndexSettings {..} =- bindM2 post url (return body)- where url = addQuery params <$> joinPath [indexName, "_forcemerge"]- params = catMaybes [ ("max_num_segments",) . Just . showText <$> maxNumSegments- , Just ("only_expunge_deletes", Just (boolQP onlyExpungeDeletes))- , Just ("flush", Just (boolQP flushAfterOptimize))- ]- indexName = indexSelectionName ixs- body = Nothing---deepMerge :: [Object] -> Object-deepMerge = LS.foldl' go mempty- where go acc = LS.foldl' go' acc . HM.toList- go' acc (k, v) = HM.insertWith merge k v acc- merge (Object a) (Object b) = Object (deepMerge [a, b])- merge _ b = b---statusCodeIs :: (Int, Int) -> Reply -> Bool-statusCodeIs r resp = inRange r $ NHTS.statusCode (responseStatus resp)--respIsTwoHunna :: Reply -> Bool-respIsTwoHunna = statusCodeIs (200, 299)--existentialQuery :: MonadBH m => Text -> m (Reply, Bool)-existentialQuery url = do- reply <- head url- return (reply, respIsTwoHunna reply)----- | Tries to parse a response body as the expected type @a@ and--- failing that tries to parse it as an EsError. All well-formed, JSON--- responses from elasticsearch should fall into these two--- categories. If they don't, a 'EsProtocolException' will be--- thrown. If you encounter this, please report the full body it--- reports along with your Elasticsearch verison.-parseEsResponse :: ( MonadThrow m- , FromJSON a- )- => Reply- -> m (Either EsError a)-parseEsResponse reply- | respIsTwoHunna reply = case eitherDecode body of- Right a -> return (Right a)- Left err ->- tryParseError err- | otherwise = tryParseError "Non-200 status code"- where body = responseBody reply- tryParseError originalError- = case eitherDecode body of- Right e -> return (Left e)- -- Failed to parse the error message.- Left err -> explode ("Original error was: " <> originalError <> " Error parse failure was: " <> err)- explode errorMsg = throwM (EsProtocolException (T.pack errorMsg) body)---- | 'indexExists' enables you to check if an index exists. Returns 'Bool'--- in IO------ >>> exists <- runBH' $ indexExists testIndex-indexExists :: MonadBH m => IndexName -> m Bool-indexExists (IndexName indexName) = do- (_, exists) <- existentialQuery =<< joinPath [indexName]- return exists---- | 'refreshIndex' will force a refresh on an index. You must--- do this if you want to read what you wrote.------ >>> _ <- runBH' $ createIndex defaultIndexSettings testIndex--- >>> _ <- runBH' $ refreshIndex testIndex-refreshIndex :: MonadBH m => IndexName -> m Reply-refreshIndex (IndexName indexName) =- bindM2 post url (return Nothing)- where url = joinPath [indexName, "_refresh"]---- | Block until the index becomes available for indexing--- documents. This is useful for integration tests in which--- indices are rapidly created and deleted.-waitForYellowIndex :: MonadBH m => IndexName -> m Reply-waitForYellowIndex (IndexName indexName) = get =<< url- where url = addQuery q <$> joinPath ["_cluster","health",indexName]- q = [("wait_for_status",Just "yellow"),("timeout",Just "10s")]--stringifyOCIndex :: OpenCloseIndex -> Text-stringifyOCIndex oci = case oci of- OpenIndex -> "_open"- CloseIndex -> "_close"--openOrCloseIndexes :: MonadBH m => OpenCloseIndex -> IndexName -> m Reply-openOrCloseIndexes oci (IndexName indexName) =- bindM2 post url (return Nothing)- where ociString = stringifyOCIndex oci- url = joinPath [indexName, ociString]---- | 'openIndex' opens an index given a 'Server' and an 'IndexName'. Explained in further detail at--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>------ >>> reply <- runBH' $ openIndex testIndex-openIndex :: MonadBH m => IndexName -> m Reply-openIndex = openOrCloseIndexes OpenIndex---- | 'closeIndex' closes an index given a 'Server' and an 'IndexName'. Explained in further detail at--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>------ >>> reply <- runBH' $ closeIndex testIndex-closeIndex :: MonadBH m => IndexName -> m Reply-closeIndex = openOrCloseIndexes CloseIndex---- | 'listIndices' returns a list of all index names on a given 'Server'-listIndices :: (MonadThrow m, MonadBH m) => m [IndexName]-listIndices =- parse . responseBody =<< get =<< url- where- url = joinPath ["_cat/indices?format=json"]- parse body = either (\msg -> (throwM (EsProtocolException (T.pack msg) body))) return $ do- vals <- eitherDecode body- forM vals $ \val ->- case val of- Object obj ->- case HM.lookup "index" obj of- (Just (String txt)) -> Right (IndexName txt)- v -> Left $ "indexVal in listIndices failed on non-string, was: " <> show v- v -> Left $ "One of the values parsed in listIndices wasn't an object, it was: " <> show v---- | 'updateIndexAliases' updates the server's index alias--- table. Operations are atomic. Explained in further detail at--- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html>------ >>> let src = IndexName "a-real-index"--- >>> let aliasName = IndexName "an-alias"--- >>> let iAlias = IndexAlias src (IndexAliasName aliasName)--- >>> let aliasCreate = IndexAliasCreate Nothing Nothing--- >>> _ <- runBH' $ deleteIndex src--- >>> respIsTwoHunna <$> runBH' (createIndex defaultIndexSettings src)--- True--- >>> runBH' $ indexExists src--- True--- >>> respIsTwoHunna <$> runBH' (updateIndexAliases (AddAlias iAlias aliasCreate :| []))--- True--- >>> runBH' $ indexExists aliasName--- True-updateIndexAliases :: MonadBH m => NonEmpty IndexAliasAction -> m Reply-updateIndexAliases actions = bindM2 post url (return body)- where url = joinPath ["_aliases"]- body = Just (encode bodyJSON)- bodyJSON = object [ "actions" .= toList actions]---- | Get all aliases configured on the server.-getIndexAliases :: (MonadBH m, MonadThrow m)- => m (Either EsError IndexAliasesSummary)-getIndexAliases = parseEsResponse =<< get =<< url- where url = joinPath ["_aliases"]---- | Delete a single alias, removing it from all indices it--- is currently associated with.-deleteIndexAlias :: MonadBH m => IndexAliasName -> m Reply-deleteIndexAlias (IndexAliasName (IndexName name)) = delete =<< url- where url = joinPath ["_all","_alias",name]---- | 'putTemplate' creates a template given an 'IndexTemplate' and a 'TemplateName'.--- Explained in further detail at--- <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html>------ >>> let idxTpl = IndexTemplate (TemplatePattern "tweet-*") (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]--- >>> resp <- runBH' $ putTemplate idxTpl (TemplateName "tweet-tpl")-putTemplate :: MonadBH m => IndexTemplate -> TemplateName -> m Reply-putTemplate indexTemplate (TemplateName templateName) =- bindM2 put url (return body)- where url = joinPath ["_template", templateName]- body = Just $ encode indexTemplate---- | 'templateExists' checks to see if a template exists.------ >>> exists <- runBH' $ templateExists (TemplateName "tweet-tpl")-templateExists :: MonadBH m => TemplateName -> m Bool-templateExists (TemplateName templateName) = do- (_, exists) <- existentialQuery =<< joinPath ["_template", templateName]- return exists---- | 'deleteTemplate' is an HTTP DELETE and deletes a template.------ >>> let idxTpl = IndexTemplate (TemplatePattern "tweet-*") (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]--- >>> _ <- runBH' $ putTemplate idxTpl (TemplateName "tweet-tpl")--- >>> resp <- runBH' $ deleteTemplate (TemplateName "tweet-tpl")-deleteTemplate :: MonadBH m => TemplateName -> m Reply-deleteTemplate (TemplateName templateName) =- delete =<< joinPath ["_template", templateName]---- | 'putMapping' is an HTTP PUT and has upsert semantics. Mappings are schemas--- for documents in indexes.------ >>> _ <- runBH' $ createIndex defaultIndexSettings testIndex--- >>> resp <- runBH' $ putMapping testIndex testMapping TweetMapping--- >>> print resp--- Response {responseStatus = Status {statusCode = 200, statusMessage = "OK"}, responseVersion = HTTP/1.1, responseHeaders = [("content-type","application/json; charset=UTF-8"),("content-encoding","gzip"),("transfer-encoding","chunked")], responseBody = "{\"acknowledged\":true}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}-putMapping :: (MonadBH m, ToJSON a) => IndexName- -> MappingName -> a -> m Reply-putMapping (IndexName indexName) (MappingName mappingName) mapping =- bindM2 put url (return body)- where url = joinPath [indexName, "_mapping", mappingName]- -- "_mapping" and mappingName above were originally transposed- -- erroneously. The correct API call is: "/INDEX/_mapping/MAPPING_NAME"- body = Just $ encode mapping--versionCtlParams :: IndexDocumentSettings -> [(Text, Maybe Text)]-versionCtlParams cfg =- case idsVersionControl cfg of- NoVersionControl -> []- InternalVersion v -> versionParams v "internal"- ExternalGT (ExternalDocVersion v) -> versionParams v "external_gt"- ExternalGTE (ExternalDocVersion v) -> versionParams v "external_gte"- ForceVersion (ExternalDocVersion v) -> versionParams v "force"- where- vt = showText . docVersionNumber- versionParams v t = [ ("version", Just $ vt v)- , ("version_type", Just t)- ]---- | 'indexDocument' is the primary way to save a single document in--- Elasticsearch. The document itself is simply something we can--- convert into a JSON 'Value'. The 'DocId' will function as the--- primary key for the document. You are encouraged to generate--- your own id's and not rely on Elasticsearch's automatic id--- generation. Read more about it here:--- https://github.com/bitemyapp/bloodhound/issues/107------ >>> resp <- runBH' $ indexDocument testIndex testMapping defaultIndexDocumentSettings exampleTweet (DocId "1")--- >>> print resp--- Response {responseStatus = Status {statusCode = 201, statusMessage = "Created"}, responseVersion = HTTP/1.1, responseHeaders = [("Location","/twitter/tweet/1"),("content-type","application/json; charset=UTF-8"),("content-encoding","gzip"),("transfer-encoding","chunked")], responseBody = "{\"_index\":\"twitter\",\"_type\":\"tweet\",\"_id\":\"1\",\"_version\":1,\"result\":\"created\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0},\"created\":true}", responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}-indexDocument :: (ToJSON doc, MonadBH m) => IndexName -> MappingName- -> IndexDocumentSettings -> doc -> DocId -> m Reply-indexDocument (IndexName indexName)- (MappingName mappingName) cfg document (DocId docId) =- bindM2 put url (return body)- where url = addQuery params <$> joinPath [indexName, mappingName, docId]- parentParams = case idsParent cfg of- Nothing -> []- Just (DocumentParent (DocId p)) -> [ ("parent", Just p) ]- params = versionCtlParams cfg ++ parentParams- body = Just (encode document)---- | 'updateDocument' provides a way to perform an partial update of a--- an already indexed document.-updateDocument :: (ToJSON patch, MonadBH m) => IndexName -> MappingName- -> IndexDocumentSettings -> patch -> DocId -> m Reply-updateDocument (IndexName indexName)- (MappingName mappingName) cfg patch (DocId docId) =- bindM2 post url (return body)- where url = addQuery (versionCtlParams cfg) <$>- joinPath [indexName, mappingName, docId, "_update"]- body = Just (encode $ object ["doc" .= toJSON patch])---- | 'deleteDocument' is the primary way to delete a single document.------ >>> _ <- runBH' $ deleteDocument testIndex testMapping (DocId "1")-deleteDocument :: MonadBH m => IndexName -> MappingName- -> DocId -> m Reply-deleteDocument (IndexName indexName)- (MappingName mappingName) (DocId docId) =- delete =<< joinPath [indexName, mappingName, docId]---- | 'bulk' uses--- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html Elasticsearch's bulk API>--- to perform bulk operations. The 'BulkOperation' data type encodes the--- index\/update\/delete\/create operations. You pass a 'V.Vector' of 'BulkOperation's--- and a 'Server' to 'bulk' in order to send those operations up to your Elasticsearch--- server to be performed. I changed from [BulkOperation] to a Vector due to memory overhead.------ >>> let stream = V.fromList [BulkIndex testIndex testMapping (DocId "2") (toJSON (BulkTest "blah"))]--- >>> _ <- runBH' $ bulk stream--- >>> _ <- runBH' $ refreshIndex testIndex-bulk :: MonadBH m => V.Vector BulkOperation -> m Reply-bulk bulkOps =- bindM2 post url (return body)- where- url = joinPath ["_bulk"]- body = Just $ encodeBulkOperations bulkOps---- | 'encodeBulkOperations' is a convenience function for dumping a vector of 'BulkOperation'--- into an 'L.ByteString'------ >>> let bulkOps = V.fromList [BulkIndex testIndex testMapping (DocId "2") (toJSON (BulkTest "blah"))]--- >>> encodeBulkOperations bulkOps--- "\n{\"index\":{\"_type\":\"tweet\",\"_id\":\"2\",\"_index\":\"twitter\"}}\n{\"name\":\"blah\"}\n"-encodeBulkOperations :: V.Vector BulkOperation -> L.ByteString-encodeBulkOperations stream = collapsed where- blobs =- fmap encodeBulkOperation stream- mashedTaters =- mash (mempty :: Builder) blobs- collapsed =- toLazyByteString $ mappend mashedTaters (byteString "\n")--mash :: Builder -> V.Vector L.ByteString -> Builder-mash = V.foldl' (\b x -> b <> byteString "\n" <> lazyByteString x)--mkBulkStreamValue :: Text -> Text -> Text -> Text -> Value-mkBulkStreamValue operation indexName mappingName docId =- object [operation .=- object [ "_index" .= indexName- , "_type" .= mappingName- , "_id" .= docId]]--mkBulkStreamValueAuto :: Text -> Text -> Text -> Value-mkBulkStreamValueAuto operation indexName mappingName =- object [operation .=- object [ "_index" .= indexName- , "_type" .= mappingName]]---- | 'encodeBulkOperation' is a convenience function for dumping a single 'BulkOperation'--- into an 'L.ByteString'------ >>> let bulkOp = BulkIndex testIndex testMapping (DocId "2") (toJSON (BulkTest "blah"))--- >>> encodeBulkOperation bulkOp--- "{\"index\":{\"_type\":\"tweet\",\"_id\":\"2\",\"_index\":\"twitter\"}}\n{\"name\":\"blah\"}"-encodeBulkOperation :: BulkOperation -> L.ByteString-encodeBulkOperation (BulkIndex (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "index" indexName mappingName docId- blob = encode metadata `mappend` "\n" `mappend` encode value--encodeBulkOperation (BulkIndexAuto (IndexName indexName)- (MappingName mappingName)- value) = blob- where metadata = mkBulkStreamValueAuto "index" indexName mappingName- blob = encode metadata `mappend` "\n" `mappend` encode value--encodeBulkOperation (BulkIndexEncodingAuto (IndexName indexName)- (MappingName mappingName)- encoding) = toLazyByteString blob- where metadata = toEncoding (mkBulkStreamValueAuto "index" indexName mappingName)- blob = fromEncoding metadata <> "\n" <> fromEncoding encoding--encodeBulkOperation (BulkCreate (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "create" indexName mappingName docId- blob = encode metadata `mappend` "\n" `mappend` encode value--encodeBulkOperation (BulkDelete (IndexName indexName)- (MappingName mappingName)- (DocId docId)) = blob- where metadata = mkBulkStreamValue "delete" indexName mappingName docId- blob = encode metadata--encodeBulkOperation (BulkUpdate (IndexName indexName)- (MappingName mappingName)- (DocId docId) value) = blob- where metadata = mkBulkStreamValue "update" indexName mappingName docId- doc = object ["doc" .= value]- blob = encode metadata `mappend` "\n" `mappend` encode doc--encodeBulkOperation (BulkCreateEncoding (IndexName indexName)- (MappingName mappingName)- (DocId docId) encoding) = toLazyByteString blob- where metadata = toEncoding (mkBulkStreamValue "create" indexName mappingName docId)- blob = fromEncoding metadata <> "\n" <> fromEncoding encoding---- | 'getDocument' is a straight-forward way to fetch a single document from--- Elasticsearch using a 'Server', 'IndexName', 'MappingName', and a 'DocId'.--- The 'DocId' is the primary key for your Elasticsearch document.------ >>> yourDoc <- runBH' $ getDocument testIndex testMapping (DocId "1")-getDocument :: MonadBH m => IndexName -> MappingName- -> DocId -> m Reply-getDocument (IndexName indexName)- (MappingName mappingName) (DocId docId) =- get =<< joinPath [indexName, mappingName, docId]---- | 'documentExists' enables you to check if a document exists. Returns 'Bool'--- in IO------ >>> exists <- runBH' $ documentExists testIndex testMapping Nothing (DocId "1")-documentExists :: MonadBH m => IndexName -> MappingName- -> Maybe DocumentParent -> DocId -> m Bool-documentExists (IndexName indexName) (MappingName mappingName)- parent (DocId docId) = do- (_, exists) <- existentialQuery =<< url- return exists- where url = addQuery params <$> joinPath [indexName, mappingName, docId]- parentParam = fmap (\(DocumentParent (DocId p)) -> p) parent- params = LS.filter (\(_, v) -> isJust v) [("parent", parentParam)]--dispatchSearch :: MonadBH m => Text -> Search -> m Reply-dispatchSearch url search = post url' (Just (encode search))- where url' = appendSearchTypeParam url (searchType search)---- | 'searchAll', given a 'Search', will perform that search against all indexes--- on an Elasticsearch server. Try to avoid doing this if it can be helped.------ >>> let query = TermQuery (Term "user" "bitemyapp") Nothing--- >>> let search = mkSearch (Just query) Nothing--- >>> reply <- runBH' $ searchAll search-searchAll :: MonadBH m => Search -> m Reply-searchAll = bindM2 dispatchSearch url . return- where url = joinPath ["_search"]---- | 'searchByIndex', given a 'Search' and an 'IndexName', will perform that search--- against all mappings within an index on an Elasticsearch server.------ >>> let query = TermQuery (Term "user" "bitemyapp") Nothing--- >>> let search = mkSearch (Just query) Nothing--- >>> reply <- runBH' $ searchByIndex testIndex search-searchByIndex :: MonadBH m => IndexName -> Search -> m Reply-searchByIndex (IndexName indexName) = bindM2 dispatchSearch url . return- where url = joinPath [indexName, "_search"]---- | 'searchByIndices' is a variant of 'searchByIndex' that executes a--- 'Search' over many indices. This is much faster than using--- 'mapM' to 'searchByIndex' over a collection since it only--- causes a single HTTP request to be emitted.-searchByIndices :: MonadBH m => NonEmpty IndexName -> Search -> m Reply-searchByIndices ixs = bindM2 dispatchSearch url . return- where url = joinPath [renderedIxs, "_search"]- renderedIxs = T.intercalate (T.singleton ',') (map (\(IndexName t) -> t) (toList ixs))---- | 'searchByType', given a 'Search', 'IndexName', and 'MappingName', will perform that--- search against a specific mapping within an index on an Elasticsearch server.------ >>> let query = TermQuery (Term "user" "bitemyapp") Nothing--- >>> let search = mkSearch (Just query) Nothing--- >>> reply <- runBH' $ searchByType testIndex testMapping search-searchByType :: MonadBH m => IndexName -> MappingName -> Search- -> m Reply-searchByType (IndexName indexName)- (MappingName mappingName) = bindM2 dispatchSearch url . return- where url = joinPath [indexName, mappingName, "_search"]---- | For a given search, request a scroll for efficient streaming of--- search results. Note that the search is put into 'SearchTypeScan'--- mode and thus results will not be sorted. Combine this with--- 'advanceScroll' to efficiently stream through the full result set-getInitialScroll :: - (FromJSON a, MonadThrow m, MonadBH m) => IndexName -> - MappingName -> - Search -> - m (Either EsError (SearchResult a))-getInitialScroll (IndexName indexName) (MappingName mappingName) search' = do- let url = addQuery params <$> joinPath [indexName, mappingName, "_search"]- params = [("scroll", Just "1m")]- sorting = Just [DefaultSortSpec $ mkSort (FieldName "_doc") Descending]- search = search' { sortBody = sorting }- resp' <- bindM2 dispatchSearch url (return search)- parseEsResponse resp'---- | For a given search, request a scroll for efficient streaming of--- search results. Combine this with 'advanceScroll' to efficiently--- stream through the full result set. Note that this search respects--- sorting and may be less efficient than 'getInitialScroll'.-getInitialSortedScroll ::- (FromJSON a, MonadThrow m, MonadBH m) => IndexName ->- MappingName ->- Search ->- m (Either EsError (SearchResult a))-getInitialSortedScroll (IndexName indexName) (MappingName mappingName) search = do- let url = addQuery params <$> joinPath [indexName, mappingName, "_search"]- params = [("scroll", Just "1m")]- resp' <- bindM2 dispatchSearch url (return search)- parseEsResponse resp'--scroll' :: (FromJSON a, MonadBH m, MonadThrow m) => Maybe ScrollId -> - m ([Hit a], Maybe ScrollId)-scroll' Nothing = return ([], Nothing)-scroll' (Just sid) = do- res <- advanceScroll sid 60- case res of- Right SearchResult {..} -> return (hits searchHits, scrollId)- Left _ -> return ([], Nothing)---- | Use the given scroll to fetch the next page of documents. If there are no--- further pages, 'SearchResult.searchHits.hits' will be '[]'.-advanceScroll- :: ( FromJSON a- , MonadBH m- , MonadThrow m- )- => ScrollId- -> NominalDiffTime- -- ^ How long should the snapshot of data be kept around? This timeout is updated every time 'advanceScroll' is used, so don't feel the need to set it to the entire duration of your search processing. Note that durations < 1s will be rounded up. Also note that 'NominalDiffTime' is an instance of Num so literals like 60 will be interpreted as seconds. 60s is a reasonable default.- -> m (Either EsError (SearchResult a))-advanceScroll (ScrollId sid) scroll = do- url <- joinPath ["_search", "scroll"]- resp <- post url (Just $ encode scrollObject)- parseEsResponse resp- where scrollTime = showText secs <> "s"- secs :: Integer- secs = round scroll- - scrollObject = object [ "scroll" .= scrollTime- , "scroll_id" .= sid- ]--simpleAccumulator :: - (FromJSON a, MonadBH m, MonadThrow m) => - [Hit a] ->- ([Hit a], Maybe ScrollId) ->- m ([Hit a], Maybe ScrollId)-simpleAccumulator oldHits (newHits, Nothing) = return (oldHits ++ newHits, Nothing)-simpleAccumulator oldHits ([], _) = return (oldHits, Nothing)-simpleAccumulator oldHits (newHits, msid) = do- (newHits', msid') <- scroll' msid- simpleAccumulator (oldHits ++ newHits) (newHits', msid')---- | 'scanSearch' uses the 'scroll' API of elastic,--- for a given 'IndexName' and 'MappingName'. Note that this will--- consume the entire search result set and will be doing O(n) list--- appends so this may not be suitable for large result sets. In that--- case, 'getInitialScroll' and 'advanceScroll' are good low level--- tools. You should be able to hook them up trivially to conduit,--- pipes, or your favorite streaming IO abstraction of choice. Note--- that ordering on the search would destroy performance and thus is--- ignored.-scanSearch :: (FromJSON a, MonadBH m, MonadThrow m) => IndexName- -> MappingName- -> Search- -> m [Hit a]-scanSearch indexName mappingName search = do- initialSearchResult <- getInitialScroll indexName mappingName search- let (hits', josh) = case initialSearchResult of- Right SearchResult {..} -> (hits searchHits, scrollId)- Left _ -> ([], Nothing)- (totalHits, _) <- simpleAccumulator [] (hits', josh)- return totalHits---- | 'mkSearch' is a helper function for defaulting additional fields of a 'Search'--- to Nothing in case you only care about your 'Query' and 'Filter'. Use record update--- syntax if you want to add things like aggregations or highlights while still using--- this helper function.------ >>> let query = TermQuery (Term "user" "bitemyapp") Nothing--- >>> mkSearch (Just query) Nothing--- Search {queryBody = Just (TermQuery (Term {termField = "user", termValue = "bitemyapp"}) Nothing), filterBody = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 0, size = Size 10, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}-mkSearch :: Maybe Query -> Maybe Filter -> Search-mkSearch query filter = Search query filter Nothing Nothing Nothing False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing---- | 'mkAggregateSearch' is a helper function that defaults everything in a 'Search' except for--- the 'Query' and the 'Aggregation'.------ >>> let terms = TermsAgg $ (mkTermsAggregation "user") { termCollectMode = Just BreadthFirst }--- >>> terms--- TermsAgg (TermsAggregation {term = Left "user", termInclude = Nothing, termExclude = Nothing, termOrder = Nothing, termMinDocCount = Nothing, termSize = Nothing, termShardSize = Nothing, termCollectMode = Just BreadthFirst, termExecutionHint = Nothing, termAggs = Nothing})--- >>> let myAggregation = mkAggregateSearch Nothing $ mkAggregations "users" terms-mkAggregateSearch :: Maybe Query -> Aggregations -> Search-mkAggregateSearch query mkSearchAggs = Search query Nothing Nothing (Just mkSearchAggs) Nothing False (From 0) (Size 0) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing---- | 'mkHighlightSearch' is a helper function that defaults everything in a 'Search' except for--- the 'Query' and the 'Aggregation'.------ >>> let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")--- >>> let testHighlight = Highlights Nothing [FieldHighlight (FieldName "message") Nothing]--- >>> let search = mkHighlightSearch (Just query) testHighlight-mkHighlightSearch :: Maybe Query -> Highlights -> Search-mkHighlightSearch query searchHighlights = Search query Nothing Nothing Nothing (Just searchHighlights) False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing Nothing---- | 'pageSearch' is a helper function that takes a search and assigns the from--- and size fields for the search. The from parameter defines the offset--- from the first result you want to fetch. The size parameter allows you to--- configure the maximum amount of hits to be returned.------ >>> let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")--- >>> let search = mkSearch (Just query) Nothing--- >>> search--- Search {queryBody = Just (QueryMatchQuery (MatchQuery {matchQueryField = FieldName "_all", matchQueryQueryString = QueryString "haskell", matchQueryOperator = Or, matchQueryZeroTerms = ZeroTermsNone, matchQueryCutoffFrequency = Nothing, matchQueryMatchType = Nothing, matchQueryAnalyzer = Nothing, matchQueryMaxExpansions = Nothing, matchQueryLenient = Nothing, matchQueryBoost = Nothing})), filterBody = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 0, size = Size 10, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}--- >>> pageSearch (From 10) (Size 100) search--- Search {queryBody = Just (QueryMatchQuery (MatchQuery {matchQueryField = FieldName "_all", matchQueryQueryString = QueryString "haskell", matchQueryOperator = Or, matchQueryZeroTerms = ZeroTermsNone, matchQueryCutoffFrequency = Nothing, matchQueryMatchType = Nothing, matchQueryAnalyzer = Nothing, matchQueryMaxExpansions = Nothing, matchQueryLenient = Nothing, matchQueryBoost = Nothing})), filterBody = Nothing, sortBody = Nothing, aggBody = Nothing, highlight = Nothing, trackSortScores = False, from = From 10, size = Size 100, searchType = SearchTypeQueryThenFetch, fields = Nothing, source = Nothing}-pageSearch :: From -- ^ The result offset- -> Size -- ^ The number of results to return- -> Search -- ^ The current seach- -> Search -- ^ The paged search-pageSearch resultOffset pageSize search = search { from = resultOffset, size = pageSize }--parseUrl' :: MonadThrow m => Text -> m Request-parseUrl' t = parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack t))---- | Was there an optimistic concurrency control conflict when--- indexing a document?-isVersionConflict :: Reply -> Bool-isVersionConflict = statusCheck (== 409)--isSuccess :: Reply -> Bool-isSuccess = statusCheck (inRange (200, 299))--isCreated :: Reply -> Bool-isCreated = statusCheck (== 201)--statusCheck :: (Int -> Bool) -> Reply -> Bool-statusCheck prd = prd . NHTS.statusCode . responseStatus---- | This is a hook that can be set via the 'bhRequestHook' function--- that will authenticate all requests using an HTTP Basic--- Authentication header. Note that it is *strongly* recommended that--- this option only be used over an SSL connection.------ >> (mkBHEnv myServer myManager) { bhRequestHook = basicAuthHook (EsUsername "myuser") (EsPassword "mypass") }-basicAuthHook :: Monad m => EsUsername -> EsPassword -> Request -> m Request-basicAuthHook (EsUsername u) (EsPassword p) = return . applyBasicAuth u' p'- where u' = T.encodeUtf8 u- p' = T.encodeUtf8 p---boolQP :: Bool -> Text-boolQP True = "true"-boolQP False = "false"
− src/Database/V5/Bloodhound/Internal/Aggregation.hs
@@ -1,467 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V5.Bloodhound.Internal.Aggregation where--import Bloodhound.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.Map.Strict as M-import qualified Data.Text as T--import Database.V5.Bloodhound.Internal.Client-import Database.V5.Bloodhound.Internal.Highlight (HitHighlight)-import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query-import Database.V5.Bloodhound.Internal.Sort--type Aggregations = M.Map Text Aggregation--emptyAggregations :: Aggregations-emptyAggregations = M.empty--mkAggregations :: Text -> Aggregation -> Aggregations-mkAggregations name aggregation = M.insert name aggregation emptyAggregations--data Aggregation = TermsAgg TermsAggregation- | CardinalityAgg CardinalityAggregation- | DateHistogramAgg DateHistogramAggregation- | ValueCountAgg ValueCountAggregation- | FilterAgg FilterAggregation- | DateRangeAgg DateRangeAggregation- | MissingAgg MissingAggregation- | TopHitsAgg TopHitsAggregation- | StatsAgg StatisticsAggregation- deriving (Eq, Show)--instance ToJSON Aggregation where- toJSON (TermsAgg (TermsAggregation term include exclude order minDocCount size shardSize collectMode executionHint termAggs)) =- omitNulls ["terms" .= omitNulls [ toJSON' term,- "include" .= include,- "exclude" .= exclude,- "order" .= order,- "min_doc_count" .= minDocCount,- "size" .= size,- "shard_size" .= shardSize,- "collect_mode" .= collectMode,- "execution_hint" .= executionHint- ],- "aggs" .= termAggs ]- where- toJSON' x = case x of { Left y -> "field" .= y; Right y -> "script" .= y }-- toJSON (CardinalityAgg (CardinalityAggregation field precisionThreshold)) =- object ["cardinality" .= omitNulls [ "field" .= field,- "precisionThreshold" .= precisionThreshold- ]- ]-- toJSON (DateHistogramAgg- (DateHistogramAggregation field interval format- preZone postZone preOffset postOffset dateHistoAggs)) =- omitNulls ["date_histogram" .= omitNulls [ "field" .= field,- "interval" .= interval,- "format" .= format,- "pre_zone" .= preZone,- "post_zone" .= postZone,- "pre_offset" .= preOffset,- "post_offset" .= postOffset- ],- "aggs" .= dateHistoAggs ]- toJSON (ValueCountAgg a) = object ["value_count" .= v]- where v = case a of- (FieldValueCount (FieldName n)) ->- object ["field" .= n]- (ScriptValueCount s) ->- object ["script" .= s]- toJSON (FilterAgg (FilterAggregation filt ags)) =- omitNulls [ "filter" .= filt- , "aggs" .= ags]- toJSON (DateRangeAgg a) = object [ "date_range" .= a- ]- toJSON (MissingAgg (MissingAggregation{..})) =- object ["missing" .= object ["field" .= maField]]-- toJSON (TopHitsAgg (TopHitsAggregation mfrom msize msort)) =- omitNulls ["top_hits" .= omitNulls [ "size" .= msize- , "from" .= mfrom- , "sort" .= msort- ]- ]-- toJSON (StatsAgg (StatisticsAggregation typ field)) =- object [stType .= omitNulls [ "field" .= field ]]- where- stType | typ == Basic = "stats"- | otherwise = "extended_stats"--data TopHitsAggregation = TopHitsAggregation- { taFrom :: Maybe From- , taSize :: Maybe Size- , taSort :: Maybe Sort- } deriving (Eq, Show)--data MissingAggregation = MissingAggregation- { maField :: Text- } deriving (Eq, Show)--data TermsAggregation = TermsAggregation- { term :: Either Text Text- , termInclude :: Maybe TermInclusion- , termExclude :: Maybe TermInclusion- , termOrder :: Maybe TermOrder- , termMinDocCount :: Maybe Int- , termSize :: Maybe Int- , termShardSize :: Maybe Int- , termCollectMode :: Maybe CollectionMode- , termExecutionHint :: Maybe ExecutionHint- , termAggs :: Maybe Aggregations- } deriving (Eq, Show)--data CardinalityAggregation = CardinalityAggregation- { cardinalityField :: FieldName,- precisionThreshold :: Maybe Int- } deriving (Eq, Show)--data DateHistogramAggregation = DateHistogramAggregation- { dateField :: FieldName- , dateInterval :: Interval- , dateFormat :: Maybe Text- -- pre and post deprecated in 1.5- , datePreZone :: Maybe Text- , datePostZone :: Maybe Text- , datePreOffset :: Maybe Text- , datePostOffset :: Maybe Text- , dateAggs :: Maybe Aggregations- } deriving (Eq, Show)--data DateRangeAggregation = DateRangeAggregation- { draField :: FieldName- , draFormat :: Maybe Text- , draRanges :: NonEmpty DateRangeAggRange- } deriving (Eq, Show)--instance ToJSON DateRangeAggregation where- toJSON DateRangeAggregation {..} =- omitNulls [ "field" .= draField- , "format" .= draFormat- , "ranges" .= toList draRanges- ]--data DateRangeAggRange =- DateRangeFrom DateMathExpr- | DateRangeTo DateMathExpr- | DateRangeFromAndTo DateMathExpr DateMathExpr- deriving (Eq, Show)--instance ToJSON DateRangeAggRange where- toJSON (DateRangeFrom e) = object [ "from" .= e ]- toJSON (DateRangeTo e) = object [ "to" .= e ]- toJSON (DateRangeFromAndTo f t) = object [ "from" .= f, "to" .= t ]---- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html> for more information.-data ValueCountAggregation =- FieldValueCount FieldName- | ScriptValueCount Script- deriving (Eq, Show)---- | Single-bucket filter aggregations. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html#search-aggregations-bucket-filter-aggregation> for more information.-data FilterAggregation = FilterAggregation- { faFilter :: Filter- , faAggs :: Maybe Aggregations }- deriving (Eq, Show)--data StatisticsAggregation = StatisticsAggregation- { statsType :: StatsType- , statsField :: FieldName }- deriving (Eq, Show)--data StatsType- = Basic- | Extended- deriving (Eq, Show)--mkTermsAggregation :: Text -> TermsAggregation-mkTermsAggregation t =- TermsAggregation (Left t)- Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing--mkTermsScriptAggregation :: Text -> TermsAggregation-mkTermsScriptAggregation t = TermsAggregation (Right t) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing--mkDateHistogram :: FieldName -> Interval -> DateHistogramAggregation-mkDateHistogram t i = DateHistogramAggregation t i Nothing Nothing Nothing Nothing Nothing Nothing--mkCardinalityAggregation :: FieldName -> CardinalityAggregation-mkCardinalityAggregation t = CardinalityAggregation t Nothing--mkStatsAggregation :: FieldName -> StatisticsAggregation-mkStatsAggregation = StatisticsAggregation Basic--mkExtendedStatsAggregation :: FieldName -> StatisticsAggregation-mkExtendedStatsAggregation = StatisticsAggregation Extended--type AggregationResults = M.Map Text Value--class BucketAggregation a where- key :: a -> BucketValue- docCount :: a -> Int- aggs :: a -> Maybe AggregationResults--data Bucket a = Bucket- { buckets :: [a]- } deriving (Read, Show)--instance (FromJSON a) => FromJSON (Bucket a) where- parseJSON (Object v) = Bucket <$>- v .: "buckets"- parseJSON _ = mempty--data BucketValue = TextValue Text- | ScientificValue Scientific- | BoolValue Bool deriving (Read, Show)--instance FromJSON BucketValue where- parseJSON (String t) = return $ TextValue t- parseJSON (Number s) = return $ ScientificValue s- parseJSON (Bool b) = return $ BoolValue b- parseJSON _ = mempty--data TermInclusion = TermInclusion Text- | TermPattern Text Text deriving (Eq, Show)--instance ToJSON TermInclusion where- toJSON (TermInclusion x) = toJSON x- toJSON (TermPattern pattern flags) =- omitNulls [ "pattern" .= pattern- , "flags" .= flags]--data TermOrder = TermOrder- { termSortField :: Text- , termSortOrder :: SortOrder } deriving (Eq, Show)--instance ToJSON TermOrder where- toJSON (TermOrder termSortField termSortOrder) =- object [termSortField .= termSortOrder]--data CollectionMode = BreadthFirst- | DepthFirst deriving (Eq, Show)--instance ToJSON CollectionMode where- toJSON BreadthFirst = "breadth_first"- toJSON DepthFirst = "depth_first"--data ExecutionHint = Ordinals- | GlobalOrdinals- | GlobalOrdinalsHash- | GlobalOrdinalsLowCardinality- | Map deriving (Eq, Show)--instance ToJSON ExecutionHint where- toJSON Ordinals = "ordinals"- toJSON GlobalOrdinals = "global_ordinals"- toJSON GlobalOrdinalsHash = "global_ordinals_hash"- toJSON GlobalOrdinalsLowCardinality = "global_ordinals_low_cardinality"- toJSON Map = "map"---- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math> for more information.-data DateMathExpr =- DateMathExpr DateMathAnchor [DateMathModifier]- deriving (Eq, Show)--instance ToJSON DateMathExpr where- toJSON (DateMathExpr a mods) = String (fmtA a <> mconcat (fmtMod <$> mods))- where fmtA DMNow = "now"- fmtA (DMDate date) = (T.pack $ showGregorian date) <> "||"- fmtMod (AddTime n u) = "+" <> showText n <> fmtU u- fmtMod (SubtractTime n u) = "-" <> showText n <> fmtU u- fmtMod (RoundDownTo u) = "/" <> fmtU u- fmtU DMYear = "y"- fmtU DMMonth = "M"- fmtU DMWeek = "w"- fmtU DMDay = "d"- fmtU DMHour = "h"- fmtU DMMinute = "m"- fmtU DMSecond = "s"---- | Starting point for a date range. This along with the 'DateMathModifiers' gets you the date ES will start from.-data DateMathAnchor =- DMNow- | DMDate Day- deriving (Eq, Show)--data DateMathModifier =- AddTime Int DateMathUnit- | SubtractTime Int DateMathUnit- | RoundDownTo DateMathUnit- deriving (Eq, Show)--data DateMathUnit =- DMYear- | DMMonth- | DMWeek- | DMDay- | DMHour- | DMMinute- | DMSecond- deriving (Eq, Show)--data TermsResult = TermsResult- { termKey :: BucketValue- , termsDocCount :: Int- , termsAggs :: Maybe AggregationResults- } deriving (Read, Show)--instance FromJSON TermsResult where- parseJSON (Object v) = TermsResult <$>- v .: "key" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v ["key", "doc_count"])- parseJSON _ = mempty--instance BucketAggregation TermsResult where- key = termKey- docCount = termsDocCount- aggs = termsAggs--data DateHistogramResult = DateHistogramResult- { dateKey :: Int- , dateKeyStr :: Maybe Text- , dateDocCount :: Int- , dateHistogramAggs :: Maybe AggregationResults- } deriving (Show)--instance FromJSON DateHistogramResult where- parseJSON (Object v) = DateHistogramResult <$>- v .: "key" <*>- v .:? "key_as_string" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v [ "key"- , "doc_count"- , "key_as_string"- ]- )- parseJSON _ = mempty--instance BucketAggregation DateHistogramResult where- key = TextValue . showText . dateKey- docCount = dateDocCount- aggs = dateHistogramAggs--data DateRangeResult = DateRangeResult- { dateRangeKey :: Text- , dateRangeFrom :: Maybe UTCTime- , dateRangeFromAsString :: Maybe Text- , dateRangeTo :: Maybe UTCTime- , dateRangeToAsString :: Maybe Text- , dateRangeDocCount :: Int- , dateRangeAggs :: Maybe AggregationResults- } deriving (Eq, Show)--instance FromJSON DateRangeResult where- parseJSON = withObject "DateRangeResult" parse- where parse v = DateRangeResult <$>- v .: "key" <*>- (fmap posixMS <$> v .:? "from") <*>- v .:? "from_as_string" <*>- (fmap posixMS <$> v .:? "to") <*>- v .:? "to_as_string" <*>- v .: "doc_count" <*>- (pure $ getNamedSubAgg v [ "key"- , "from"- , "from_as_string"- , "to"- , "to_as_string"- , "doc_count"- ]- )--instance BucketAggregation DateRangeResult where- key = TextValue . dateRangeKey- docCount = dateRangeDocCount- aggs = dateRangeAggs--toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)-toTerms = toAggResult--toDateHistogram :: Text -> AggregationResults -> Maybe (Bucket DateHistogramResult)-toDateHistogram = toAggResult--toMissing :: Text -> AggregationResults -> Maybe MissingResult-toMissing = toAggResult--toTopHits :: (FromJSON a) => Text -> AggregationResults -> Maybe (TopHitResult a)-toTopHits = toAggResult--toAggResult :: (FromJSON a) => Text -> AggregationResults -> Maybe a-toAggResult t a = M.lookup t a >>= deserialize- where deserialize = parseMaybe parseJSON---- Try to get an AggregationResults when we don't know the--- field name. We filter out the known keys to try to minimize the noise.-getNamedSubAgg :: Object -> [Text] -> Maybe AggregationResults-getNamedSubAgg o knownKeys = maggRes- where unknownKeys = HM.filterWithKey (\k _ -> k `notElem` knownKeys) o- maggRes- | HM.null unknownKeys = Nothing- | otherwise = Just . M.fromList $ HM.toList unknownKeys--data MissingResult = MissingResult- { missingDocCount :: Int- } deriving (Show)--instance FromJSON MissingResult where- parseJSON = withObject "MissingResult" parse- where parse v = MissingResult <$> v .: "doc_count"--data TopHitResult a = TopHitResult- { tarHits :: (SearchHits a)- } deriving Show--instance (FromJSON a) => FromJSON (TopHitResult a) where- parseJSON (Object v) = TopHitResult <$>- v .: "hits"- parseJSON _ = fail "Failure in FromJSON (TopHitResult a)"--data SearchHits a =- SearchHits { hitsTotal :: Int- , maxScore :: Score- , hits :: [Hit a] } deriving (Eq, Show)---instance (FromJSON a) => FromJSON (SearchHits a) where- parseJSON (Object v) = SearchHits <$>- v .: "total" <*>- v .: "max_score" <*>- v .: "hits"- parseJSON _ = empty--instance Semigroup (SearchHits a) where- (SearchHits ta ma ha) <> (SearchHits tb mb hb) =- SearchHits (ta + tb) (max ma mb) (ha <> hb)--instance Monoid (SearchHits a) where- mempty = SearchHits 0 Nothing mempty- mappend = (<>)---data Hit a =- Hit { hitIndex :: IndexName- , hitType :: MappingName- , hitDocId :: DocId- , hitScore :: Score- , hitSource :: Maybe a- , hitFields :: Maybe HitFields- , hitHighlight :: Maybe HitHighlight } deriving (Eq, Show)--instance (FromJSON a) => FromJSON (Hit a) where- parseJSON (Object v) = Hit <$>- v .: "_index" <*>- v .: "_type" <*>- v .: "_id" <*>- v .: "_score" <*>- v .:? "_source" <*>- v .:? "fields" <*>- v .:? "highlight"- parseJSON _ = empty
− src/Database/V5/Bloodhound/Internal/Analysis.hs
@@ -1,380 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}--module Database.V5.Bloodhound.Internal.Analysis where--import Bloodhound.Import--import qualified Data.Map.Strict as M-import Data.String-import qualified Data.Text as T--import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.StringlyTyped--data Analysis = Analysis- { analysisAnalyzer :: M.Map Text AnalyzerDefinition- , analysisTokenizer :: M.Map Text TokenizerDefinition- , analysisTokenFilter :: M.Map Text TokenFilterDefinition- , analysisCharFilter :: M.Map Text CharFilterDefinition- } deriving (Eq, Show)--instance ToJSON Analysis where- toJSON (Analysis analyzer tokenizer tokenFilter charFilter) = object- [ "analyzer" .= analyzer- , "tokenizer" .= tokenizer- , "filter" .= tokenFilter- , "char_filter" .= charFilter- ]--instance FromJSON Analysis where- parseJSON = withObject "Analysis" $ \m -> Analysis- <$> m .: "analyzer"- <*> m .:? "tokenizer" .!= M.empty- <*> m .:? "filter" .!= M.empty- <*> m .:? "char_filter" .!= M.empty--newtype Tokenizer =- Tokenizer Text- deriving (Eq, Show, ToJSON, FromJSON)--data AnalyzerDefinition = AnalyzerDefinition- { analyzerDefinitionTokenizer :: Maybe Tokenizer- , analyzerDefinitionFilter :: [TokenFilter]- , analyzerDefinitionCharFilter :: [CharFilter]- } deriving (Eq,Show)--instance ToJSON AnalyzerDefinition where- toJSON (AnalyzerDefinition tokenizer tokenFilter charFilter) =- object $ catMaybes- [ fmap ("tokenizer" .=) tokenizer- , Just $ "filter" .= tokenFilter- , Just $ "char_filter" .= charFilter- ]--instance FromJSON AnalyzerDefinition where- parseJSON = withObject "AnalyzerDefinition" $ \m -> AnalyzerDefinition- <$> m .:? "tokenizer"- <*> m .:? "filter" .!= []- <*> m .:? "char_filter" .!= []---- | Character filters are used to preprocess the stream of characters--- before it is passed to the tokenizer.-data CharFilterDefinition- = CharFilterDefinitionMapping (M.Map Text Text)- | CharFilterDefinitionPatternReplace- { charFilterDefinitionPatternReplacePattern :: Text- , charFilterDefinitionPatternReplaceReplacement :: Text- , charFilterDefinitionPatternReplaceFlags :: Maybe Text- }- deriving (Eq, Show)--instance ToJSON CharFilterDefinition where- toJSON (CharFilterDefinitionMapping ms) = object- [ "type" .= ("mapping" :: Text)- , "mappings" .= [a <> " => " <> b | (a, b) <- M.toList ms] ]- toJSON (CharFilterDefinitionPatternReplace pat repl flags) = object $- [ "type" .= ("pattern_replace" :: Text)- , "pattern" .= pat- , "replacement" .= repl- ] ++ maybe [] (\f -> ["flags" .= f]) flags--instance FromJSON CharFilterDefinition where- parseJSON = withObject "CharFilterDefinition" $ \m -> do- t <- m .: "type"- case (t :: Text) of- "mapping" -> CharFilterDefinitionMapping . M.fromList <$> ms- where- ms = m .: "mappings" >>= mapM parseMapping- parseMapping kv = case T.splitOn "=>" kv of- (k:vs) -> pure (T.strip k, T.strip $ T.concat vs)- _ -> fail "mapping is not of the format key => value"- "pattern_replace" -> CharFilterDefinitionPatternReplace- <$> m .: "pattern" <*> m .: "replacement" <*> m .:? "flags"- _ -> fail ("unrecognized character filter type: " ++ T.unpack t)--newtype TokenizerDefinition =- TokenizerDefinitionNgram Ngram- deriving (Eq,Show)--instance ToJSON TokenizerDefinition where- toJSON x = case x of- TokenizerDefinitionNgram (Ngram minGram maxGram tokenChars) -> object- [ "type" .= ("ngram" :: Text)- , "min_gram" .= minGram- , "max_gram" .= maxGram- , "token_chars" .= tokenChars- ]--instance FromJSON TokenizerDefinition where- parseJSON = withObject "TokenizerDefinition" $ \m -> do- typ <- m .: "type" :: Parser Text- case typ of- "ngram" -> fmap TokenizerDefinitionNgram $ Ngram- <$> fmap unStringlyTypedInt (m .: "min_gram")- <*> fmap unStringlyTypedInt (m .: "max_gram")- <*> m .: "token_chars"- _ -> fail "invalid TokenizerDefinition"--data Ngram = Ngram- { ngramMinGram :: Int- , ngramMaxGram :: Int- , ngramTokenChars :: [TokenChar]- } deriving (Eq,Show)--data TokenChar =- TokenLetter- | TokenDigit- | TokenWhitespace- | TokenPunctuation- | TokenSymbol- deriving (Eq,Show)--instance ToJSON TokenChar where- toJSON t = String $ case t of- TokenLetter -> "letter"- TokenDigit -> "digit"- TokenWhitespace -> "whitespace"- TokenPunctuation -> "punctuation"- TokenSymbol -> "symbol"--instance FromJSON TokenChar where- parseJSON = withText "TokenChar" $ \t -> case t of- "letter" -> return TokenLetter- "digit" -> return TokenDigit- "whitespace" -> return TokenWhitespace- "punctuation" -> return TokenPunctuation- "symbol" -> return TokenSymbol- _ -> fail "invalid TokenChar"---- | Token filters are used to create custom analyzers.-data TokenFilterDefinition- = TokenFilterDefinitionLowercase (Maybe Language)- | TokenFilterDefinitionUppercase (Maybe Language)- | TokenFilterDefinitionApostrophe- | TokenFilterDefinitionReverse- | TokenFilterDefinitionSnowball Language- | TokenFilterDefinitionShingle Shingle- | TokenFilterDefinitionStemmer Language- | TokenFilterDefinitionStop (Either Language [StopWord])- deriving (Eq, Show)--instance ToJSON TokenFilterDefinition where- toJSON x = case x of- TokenFilterDefinitionLowercase mlang -> object $ catMaybes- [ Just $ "type" .= ("lowercase" :: Text)- , fmap (\lang -> "language" .= languageToText lang) mlang- ]- TokenFilterDefinitionUppercase mlang -> object $ catMaybes- [ Just $ "type" .= ("uppercase" :: Text)- , fmap (\lang -> "language" .= languageToText lang) mlang- ]- TokenFilterDefinitionApostrophe -> object- [ "type" .= ("apostrophe" :: Text)- ]- TokenFilterDefinitionReverse -> object- [ "type" .= ("reverse" :: Text)- ]- TokenFilterDefinitionSnowball lang -> object- [ "type" .= ("snowball" :: Text)- , "language" .= languageToText lang- ]- TokenFilterDefinitionShingle s -> object- [ "type" .= ("shingle" :: Text)- , "max_shingle_size" .= shingleMaxSize s- , "min_shingle_size" .= shingleMinSize s- , "output_unigrams" .= shingleOutputUnigrams s- , "output_unigrams_if_no_shingles" .= shingleOutputUnigramsIfNoShingles s- , "token_separator" .= shingleTokenSeparator s- , "filler_token" .= shingleFillerToken s- ]- TokenFilterDefinitionStemmer lang -> object- [ "type" .= ("stemmer" :: Text)- , "language" .= languageToText lang- ]- TokenFilterDefinitionStop stop -> object- [ "type" .= ("stop" :: Text)- , "stopwords" .= case stop of- Left lang -> String $ "_" <> languageToText lang <> "_"- Right stops -> toJSON stops- ]--instance FromJSON TokenFilterDefinition where- parseJSON = withObject "TokenFilterDefinition" $ \m -> do- t <- m .: "type"- case (t :: Text) of- "reverse" -> return TokenFilterDefinitionReverse- "apostrophe" -> return TokenFilterDefinitionApostrophe- "lowercase" -> TokenFilterDefinitionLowercase- <$> m .:? "language"- "uppercase" -> TokenFilterDefinitionUppercase- <$> m .:? "language"- "snowball" -> TokenFilterDefinitionSnowball- <$> m .: "language"- "shingle" -> fmap TokenFilterDefinitionShingle $ Shingle- <$> (fmap.fmap) unStringlyTypedInt (m .:? "max_shingle_size") .!= 2- <*> (fmap.fmap) unStringlyTypedInt (m .:? "min_shingle_size") .!= 2- <*> (fmap.fmap) unStringlyTypedBool (m .:? "output_unigrams") .!= True- <*> (fmap.fmap) unStringlyTypedBool (m .:? "output_unigrams_if_no_shingles") .!= False- <*> m .:? "token_separator" .!= " "- <*> m .:? "filler_token" .!= "_"- "stemmer" -> TokenFilterDefinitionStemmer- <$> m .: "language"- "stop" -> do- stop <- m .: "stopwords"- stop' <- case stop of- String lang ->- fmap Left- . parseJSON- . String- . T.drop 1- . T.dropEnd 1 $ lang- _ -> Right <$> parseJSON stop- return (TokenFilterDefinitionStop stop')- _ -> fail ("unrecognized token filter type: " ++ T.unpack t)---- | The set of languages that can be passed to various analyzers,--- filters, etc. in Elasticsearch. Most data types in this module--- that have a 'Language' field are actually only actually to--- handle a subset of these languages. Consult the official--- Elasticsearch documentation to see what is actually supported.-data Language- = Arabic- | Armenian- | Basque- | Bengali- | Brazilian- | Bulgarian- | Catalan- | Cjk- | Czech- | Danish- | Dutch- | English- | Finnish- | French- | Galician- | German- | German2- | Greek- | Hindi- | Hungarian- | Indonesian- | Irish- | Italian- | Kp- | Latvian- | Lithuanian- | Lovins- | Norwegian- | Persian- | Porter- | Portuguese- | Romanian- | Russian- | Sorani- | Spanish- | Swedish- | Thai- | Turkish- deriving (Eq, Show)--instance ToJSON Language where- toJSON = String . languageToText--instance FromJSON Language where- parseJSON = withText "Language" $ \t -> case languageFromText t of- Nothing -> fail "not a supported Elasticsearch language"- Just lang -> return lang--languageToText :: Language -> Text-languageToText x = case x of- Arabic -> "arabic"- Armenian -> "armenian"- Basque -> "basque"- Bengali -> "bengali"- Brazilian -> "brazilian"- Bulgarian -> "bulgarian"- Catalan -> "catalan"- Cjk -> "cjk"- Czech -> "czech"- Danish -> "danish"- Dutch -> "dutch"- English -> "english"- Finnish -> "finnish"- French -> "french"- Galician -> "galician"- German -> "german"- German2 -> "german2"- Greek -> "greek"- Hindi -> "hindi"- Hungarian -> "hungarian"- Indonesian -> "indonesian"- Irish -> "irish"- Italian -> "italian"- Kp -> "kp"- Latvian -> "latvian"- Lithuanian -> "lithuanian"- Lovins -> "lovins"- Norwegian -> "norwegian"- Persian -> "persian"- Porter -> "porter"- Portuguese -> "portuguese"- Romanian -> "romanian"- Russian -> "russian"- Sorani -> "sorani"- Spanish -> "spanish"- Swedish -> "swedish"- Thai -> "thai"- Turkish -> "turkish"--languageFromText :: Text -> Maybe Language-languageFromText x = case x of- "arabic" -> Just Arabic- "armenian" -> Just Armenian- "basque" -> Just Basque- "bengali" -> Just Bengali- "brazilian" -> Just Brazilian- "bulgarian" -> Just Bulgarian- "catalan" -> Just Catalan- "cjk" -> Just Cjk- "czech" -> Just Czech- "danish" -> Just Danish- "dutch" -> Just Dutch- "english" -> Just English- "finnish" -> Just Finnish- "french" -> Just French- "galician" -> Just Galician- "german" -> Just German- "german2" -> Just German2- "greek" -> Just Greek- "hindi" -> Just Hindi- "hungarian" -> Just Hungarian- "indonesian" -> Just Indonesian- "irish" -> Just Irish- "italian" -> Just Italian- "kp" -> Just Kp- "latvian" -> Just Latvian- "lithuanian" -> Just Lithuanian- "lovins" -> Just Lovins- "norwegian" -> Just Norwegian- "persian" -> Just Persian- "porter" -> Just Porter- "portuguese" -> Just Portuguese- "romanian" -> Just Romanian- "russian" -> Just Russian- "sorani" -> Just Sorani- "spanish" -> Just Spanish- "swedish" -> Just Swedish- "thai" -> Just Thai- "turkish" -> Just Turkish- _ -> Nothing--data Shingle = Shingle- { shingleMaxSize :: Int- , shingleMinSize :: Int- , shingleOutputUnigrams :: Bool- , shingleOutputUnigramsIfNoShingles :: Bool- , shingleTokenSeparator :: Text- , shingleFillerToken :: Text- } deriving (Eq, Show)
− src/Database/V5/Bloodhound/Internal/Client.hs
@@ -1,2420 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE UndecidableInstances #-}--module Database.V5.Bloodhound.Internal.Client where--import Bloodhound.Import--import qualified Data.Text as T-import qualified Data.Traversable as DT-import qualified Data.HashMap.Strict as HM-import qualified Data.SemVer as SemVer-import qualified Data.Vector as V-import GHC.Enum-import Network.HTTP.Client-import Text.Read (Read(..))-import qualified Text.Read as TR--import Database.V5.Bloodhound.Internal.Analysis-import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query-import Database.V5.Bloodhound.Internal.StringlyTyped--{-| Common environment for Elasticsearch calls. Connections will be- pipelined according to the provided HTTP connection manager.--}-data BHEnv = BHEnv { bhServer :: Server- , bhManager :: Manager- , bhRequestHook :: Request -> IO Request- -- ^ Low-level hook that is run before every request is sent. Used to implement custom authentication strategies. Defaults to 'return' with 'mkBHEnv'.- }--instance (Functor m, Applicative m, MonadIO m) => MonadBH (ReaderT BHEnv m) where- getBHEnv = ask--{-| 'Server' is used with the client functions to point at the ES instance--}-newtype Server = Server Text deriving (Eq, Show, FromJSON)--{-| All API calls to Elasticsearch operate within- MonadBH- . The idea is that it can be easily embedded in your- own monad transformer stack. A default instance for a ReaderT and- alias 'BH' is provided for the simple case.--}-class (Functor m, Applicative m, MonadIO m) => MonadBH m where- getBHEnv :: m BHEnv---- | Create a 'BHEnv' with all optional fields defaulted. HTTP hook--- will be a noop. You can use the exported fields to customize--- it further, e.g.:------ >> (mkBHEnv myServer myManager) { bhRequestHook = customHook }-mkBHEnv :: Server -> Manager -> BHEnv-mkBHEnv s m = BHEnv s m return--newtype BH m a = BH {- unBH :: ReaderT BHEnv m a- } deriving ( Functor- , Applicative- , Monad- , MonadIO- , MonadState s- , MonadWriter w- , MonadError e- , Alternative- , MonadPlus- , MonadFix- , MonadThrow- , MonadCatch- , MonadMask)--instance MonadTrans BH where- lift = BH . lift--instance (MonadReader r m) => MonadReader r (BH m) where- ask = lift ask- local f (BH (ReaderT m)) = BH $ ReaderT $ \r ->- local f (m r)--instance (Functor m, Applicative m, MonadIO m) => MonadBH (BH m) where- getBHEnv = BH getBHEnv--runBH :: BHEnv -> BH m a -> m a-runBH e f = runReaderT (unBH f) e--{-| 'Version' is embedded in 'Status' -}-data Version = Version { number :: VersionNumber- , build_hash :: BuildHash- , build_date :: UTCTime- , build_snapshot :: Bool- , lucene_version :: VersionNumber }- deriving (Eq, Show)---- | Traditional software versioning number-newtype VersionNumber = VersionNumber- { versionNumber :: SemVer.Version }- deriving (Eq, Ord, Show)--{-| 'Status' is a data type for describing the JSON body returned by- Elasticsearch when you query its status. This was deprecated in 1.2.0.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-status.html#indices-status>--}--data Status = Status- { name :: Text- , cluster_name :: Text- , cluster_uuid :: Text- , version :: Version- , tagline :: Text }- deriving (Eq, Show)--instance FromJSON Status where- parseJSON (Object v) = Status <$>- v .: "name" <*>- v .: "cluster_name" <*>- v .: "cluster_uuid" <*>- v .: "version" <*>- v .: "tagline"- parseJSON _ = empty--{-| 'IndexSettings' is used to configure the shards and replicas when- you create an Elasticsearch Index.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html>--}--data IndexSettings = IndexSettings- { indexShards :: ShardCount- , indexReplicas :: ReplicaCount }- deriving (Eq, Show)--instance ToJSON IndexSettings where- toJSON (IndexSettings s r) = object ["settings" .=- object ["index" .=- object ["number_of_shards" .= s, "number_of_replicas" .= r]- ]- ]--instance FromJSON IndexSettings where- parseJSON = withObject "IndexSettings" parse- where parse o = do s <- o .: "settings"- i <- s .: "index"- IndexSettings <$> i .: "number_of_shards"- <*> i .: "number_of_replicas"--{-| 'defaultIndexSettings' is an 'IndexSettings' with 3 shards and- 2 replicas. -}-defaultIndexSettings :: IndexSettings-defaultIndexSettings = IndexSettings (ShardCount 3) (ReplicaCount 2)--- defaultIndexSettings is exported by Database.Bloodhound as well--- no trailing slashes in servers, library handles building the path.---{-| 'ForceMergeIndexSettings' is used to configure index optimization. See- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html>- for more info.--}-data ForceMergeIndexSettings =- ForceMergeIndexSettings { maxNumSegments :: Maybe Int- -- ^ Number of segments to optimize to. 1 will fully optimize the index. If omitted, the default behavior is to only optimize if the server deems it necessary.- , onlyExpungeDeletes :: Bool- -- ^ Should the optimize process only expunge segments with deletes in them? If the purpose of the optimization is to free disk space, this should be set to True.- , flushAfterOptimize :: Bool- -- ^ Should a flush be performed after the optimize.- } deriving (Eq, Show)---{-| 'defaultForceMergeIndexSettings' implements the default settings that- Elasticsearch uses for index optimization. 'maxNumSegments' is Nothing,- 'onlyExpungeDeletes' is False, and flushAfterOptimize is True.--}-defaultForceMergeIndexSettings :: ForceMergeIndexSettings-defaultForceMergeIndexSettings = ForceMergeIndexSettings Nothing False True--{-| 'UpdatableIndexSetting' are settings which may be updated after an index is created.-- <https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html>--}-data UpdatableIndexSetting = NumberOfReplicas ReplicaCount- -- ^ The number of replicas each shard has.- | AutoExpandReplicas ReplicaBounds- | BlocksReadOnly Bool- -- ^ Set to True to have the index read only. False to allow writes and metadata changes.- | BlocksRead Bool- -- ^ Set to True to disable read operations against the index.- | BlocksWrite Bool- -- ^ Set to True to disable write operations against the index.- | BlocksMetaData Bool- -- ^ Set to True to disable metadata operations against the index.- | RefreshInterval NominalDiffTime- -- ^ The async refresh interval of a shard- | IndexConcurrency Int- | FailOnMergeFailure Bool- | TranslogFlushThresholdOps Int- -- ^ When to flush on operations.- | TranslogFlushThresholdSize Bytes- -- ^ When to flush based on translog (bytes) size.- | TranslogFlushThresholdPeriod NominalDiffTime- -- ^ When to flush based on a period of not flushing.- | TranslogDisableFlush Bool- -- ^ Disables flushing. Note, should be set for a short interval and then enabled.- | CacheFilterMaxSize (Maybe Bytes)- -- ^ The maximum size of filter cache (per segment in shard).- | CacheFilterExpire (Maybe NominalDiffTime)- -- ^ The expire after access time for filter cache.- | GatewaySnapshotInterval NominalDiffTime- -- ^ The gateway snapshot interval (only applies to shared gateways).- | RoutingAllocationInclude (NonEmpty NodeAttrFilter)- -- ^ A node matching any rule will be allowed to host shards from the index.- | RoutingAllocationExclude (NonEmpty NodeAttrFilter)- -- ^ A node matching any rule will NOT be allowed to host shards from the index.- | RoutingAllocationRequire (NonEmpty NodeAttrFilter)- -- ^ Only nodes matching all rules will be allowed to host shards from the index.- | RoutingAllocationEnable AllocationPolicy- -- ^ Enables shard allocation for a specific index.- | RoutingAllocationShardsPerNode ShardCount- -- ^ Controls the total number of shards (replicas and primaries) allowed to be allocated on a single node.- | RecoveryInitialShards InitialShardCount- -- ^ When using local gateway a particular shard is recovered only if there can be allocated quorum shards in the cluster.- | GCDeletes NominalDiffTime- | TTLDisablePurge Bool- -- ^ Disables temporarily the purge of expired docs.- | TranslogFSType FSType- | CompressionSetting Compression- | IndexCompoundFormat CompoundFormat- | IndexCompoundOnFlush Bool- | WarmerEnabled Bool- | MappingTotalFieldsLimit Int- | AnalysisSetting Analysis- -- ^ Analysis is not a dynamic setting and can only be performed on a closed index.- deriving (Eq, Show)--attrFilterJSON :: NonEmpty NodeAttrFilter -> Value-attrFilterJSON fs = object [ n .= T.intercalate "," (toList vs)- | NodeAttrFilter (NodeAttrName n) vs <- toList fs]--parseAttrFilter :: Value -> Parser (NonEmpty NodeAttrFilter)-parseAttrFilter = withObject "NonEmpty NodeAttrFilter" parse- where parse o = case HM.toList o of- [] -> fail "Expected non-empty list of NodeAttrFilters"- x:xs -> DT.mapM (uncurry parse') (x :| xs)- parse' n = withText "Text" $ \t ->- case T.splitOn "," t of- fv:fvs -> return (NodeAttrFilter (NodeAttrName n) (fv :| fvs))- [] -> fail "Expected non-empty list of filter values"--instance ToJSON UpdatableIndexSetting where- toJSON (NumberOfReplicas x) = oPath ("index" :| ["number_of_replicas"]) x- toJSON (AutoExpandReplicas x) = oPath ("index" :| ["auto_expand_replicas"]) x- toJSON (RefreshInterval x) = oPath ("index" :| ["refresh_interval"]) (NominalDiffTimeJSON x)- toJSON (IndexConcurrency x) = oPath ("index" :| ["concurrency"]) x- toJSON (FailOnMergeFailure x) = oPath ("index" :| ["fail_on_merge_failure"]) x- toJSON (TranslogFlushThresholdOps x) = oPath ("index" :| ["translog", "flush_threshold_ops"]) x- toJSON (TranslogFlushThresholdSize x) = oPath ("index" :| ["translog", "flush_threshold_size"]) x- toJSON (TranslogFlushThresholdPeriod x) = oPath ("index" :| ["translog", "flush_threshold_period"]) (NominalDiffTimeJSON x)- toJSON (TranslogDisableFlush x) = oPath ("index" :| ["translog", "disable_flush"]) x- toJSON (CacheFilterMaxSize x) = oPath ("index" :| ["cache", "filter", "max_size"]) x- toJSON (CacheFilterExpire x) = oPath ("index" :| ["cache", "filter", "expire"]) (NominalDiffTimeJSON <$> x)- toJSON (GatewaySnapshotInterval x) = oPath ("index" :| ["gateway", "snapshot_interval"]) (NominalDiffTimeJSON x)- toJSON (RoutingAllocationInclude fs) = oPath ("index" :| ["routing", "allocation", "include"]) (attrFilterJSON fs)- toJSON (RoutingAllocationExclude fs) = oPath ("index" :| ["routing", "allocation", "exclude"]) (attrFilterJSON fs)- toJSON (RoutingAllocationRequire fs) = oPath ("index" :| ["routing", "allocation", "require"]) (attrFilterJSON fs)- toJSON (RoutingAllocationEnable x) = oPath ("index" :| ["routing", "allocation", "enable"]) x- toJSON (RoutingAllocationShardsPerNode x) = oPath ("index" :| ["routing", "allocation", "total_shards_per_node"]) x- toJSON (RecoveryInitialShards x) = oPath ("index" :| ["recovery", "initial_shards"]) x- toJSON (GCDeletes x) = oPath ("index" :| ["gc_deletes"]) (NominalDiffTimeJSON x)- toJSON (TTLDisablePurge x) = oPath ("index" :| ["ttl", "disable_purge"]) x- toJSON (TranslogFSType x) = oPath ("index" :| ["translog", "fs", "type"]) x- toJSON (CompressionSetting x) = oPath ("index" :| ["codec"]) x- toJSON (IndexCompoundFormat x) = oPath ("index" :| ["compound_format"]) x- toJSON (IndexCompoundOnFlush x) = oPath ("index" :| ["compound_on_flush"]) x- toJSON (WarmerEnabled x) = oPath ("index" :| ["warmer", "enabled"]) x- toJSON (BlocksReadOnly x) = oPath ("blocks" :| ["read_only"]) x- toJSON (BlocksRead x) = oPath ("blocks" :| ["read"]) x- toJSON (BlocksWrite x) = oPath ("blocks" :| ["write"]) x- toJSON (BlocksMetaData x) = oPath ("blocks" :| ["metadata"]) x- toJSON (MappingTotalFieldsLimit x) = oPath ("index" :| ["mapping","total_fields","limit"]) x- toJSON (AnalysisSetting x) = oPath ("index" :| ["analysis"]) x--instance FromJSON UpdatableIndexSetting where- parseJSON = withObject "UpdatableIndexSetting" parse- where parse o = numberOfReplicas `taggedAt` ["index", "number_of_replicas"]- <|> autoExpandReplicas `taggedAt` ["index", "auto_expand_replicas"]- <|> refreshInterval `taggedAt` ["index", "refresh_interval"]- <|> indexConcurrency `taggedAt` ["index", "concurrency"]- <|> failOnMergeFailure `taggedAt` ["index", "fail_on_merge_failure"]- <|> translogFlushThresholdOps `taggedAt` ["index", "translog", "flush_threshold_ops"]- <|> translogFlushThresholdSize `taggedAt` ["index", "translog", "flush_threshold_size"]- <|> translogFlushThresholdPeriod `taggedAt` ["index", "translog", "flush_threshold_period"]- <|> translogDisableFlush `taggedAt` ["index", "translog", "disable_flush"]- <|> cacheFilterMaxSize `taggedAt` ["index", "cache", "filter", "max_size"]- <|> cacheFilterExpire `taggedAt` ["index", "cache", "filter", "expire"]- <|> gatewaySnapshotInterval `taggedAt` ["index", "gateway", "snapshot_interval"]- <|> routingAllocationInclude `taggedAt` ["index", "routing", "allocation", "include"]- <|> routingAllocationExclude `taggedAt` ["index", "routing", "allocation", "exclude"]- <|> routingAllocationRequire `taggedAt` ["index", "routing", "allocation", "require"]- <|> routingAllocationEnable `taggedAt` ["index", "routing", "allocation", "enable"]- <|> routingAllocationShardsPerNode `taggedAt` ["index", "routing", "allocation", "total_shards_per_node"]- <|> recoveryInitialShards `taggedAt` ["index", "recovery", "initial_shards"]- <|> gcDeletes `taggedAt` ["index", "gc_deletes"]- <|> ttlDisablePurge `taggedAt` ["index", "ttl", "disable_purge"]- <|> translogFSType `taggedAt` ["index", "translog", "fs", "type"]- <|> compressionSetting `taggedAt` ["index", "codec"]- <|> compoundFormat `taggedAt` ["index", "compound_format"]- <|> compoundOnFlush `taggedAt` ["index", "compound_on_flush"]- <|> warmerEnabled `taggedAt` ["index", "warmer", "enabled"]- <|> blocksReadOnly `taggedAt` ["blocks", "read_only"]- <|> blocksRead `taggedAt` ["blocks", "read"]- <|> blocksWrite `taggedAt` ["blocks", "write"]- <|> blocksMetaData `taggedAt` ["blocks", "metadata"]- <|> mappingTotalFieldsLimit `taggedAt` ["index", "mapping", "total_fields", "limit"]- <|> analysisSetting `taggedAt` ["index", "analysis"]- where taggedAt f ks = taggedAt' f (Object o) ks- taggedAt' f v [] =- f =<< (parseJSON v <|> parseJSON (unStringlyTypeJSON v))- taggedAt' f v (k:ks) =- withObject "Object" (\o -> do v' <- o .: k- taggedAt' f v' ks) v- numberOfReplicas = pure . NumberOfReplicas- autoExpandReplicas = pure . AutoExpandReplicas- refreshInterval = pure . RefreshInterval . ndtJSON- indexConcurrency = pure . IndexConcurrency- failOnMergeFailure = pure . FailOnMergeFailure- translogFlushThresholdOps = pure . TranslogFlushThresholdOps- translogFlushThresholdSize = pure . TranslogFlushThresholdSize- translogFlushThresholdPeriod = pure . TranslogFlushThresholdPeriod . ndtJSON- translogDisableFlush = pure . TranslogDisableFlush- cacheFilterMaxSize = pure . CacheFilterMaxSize- cacheFilterExpire = pure . CacheFilterExpire . fmap ndtJSON- gatewaySnapshotInterval = pure . GatewaySnapshotInterval . ndtJSON- routingAllocationInclude = fmap RoutingAllocationInclude . parseAttrFilter- routingAllocationExclude = fmap RoutingAllocationExclude . parseAttrFilter- routingAllocationRequire = fmap RoutingAllocationRequire . parseAttrFilter- routingAllocationEnable = pure . RoutingAllocationEnable- routingAllocationShardsPerNode = pure . RoutingAllocationShardsPerNode- recoveryInitialShards = pure . RecoveryInitialShards- gcDeletes = pure . GCDeletes . ndtJSON- ttlDisablePurge = pure . TTLDisablePurge- translogFSType = pure . TranslogFSType- compressionSetting = pure . CompressionSetting- compoundFormat = pure . IndexCompoundFormat- compoundOnFlush = pure . IndexCompoundOnFlush- warmerEnabled = pure . WarmerEnabled- blocksReadOnly = pure . BlocksReadOnly- blocksRead = pure . BlocksRead- blocksWrite = pure . BlocksWrite- blocksMetaData = pure . BlocksMetaData- mappingTotalFieldsLimit = pure . MappingTotalFieldsLimit- analysisSetting = pure . AnalysisSetting--data ReplicaBounds = ReplicasBounded Int Int- | ReplicasLowerBounded Int- | ReplicasUnbounded- deriving (Eq, Show)---instance ToJSON ReplicaBounds where- toJSON (ReplicasBounded a b) = String (showText a <> "-" <> showText b)- toJSON (ReplicasLowerBounded a) = String (showText a <> "-all")- toJSON ReplicasUnbounded = Bool False--instance FromJSON ReplicaBounds where- parseJSON v = withText "ReplicaBounds" parseText v- <|> withBool "ReplicaBounds" parseBool v- where parseText t = case T.splitOn "-" t of- [a, "all"] -> ReplicasLowerBounded <$> parseReadText a- [a, b] -> ReplicasBounded <$> parseReadText a- <*> parseReadText b- _ -> fail ("Could not parse ReplicaBounds: " <> show t)- parseBool False = pure ReplicasUnbounded- parseBool _ = fail "ReplicasUnbounded cannot be represented with True"--data Compression- = CompressionDefault- -- ^ Compress with LZ4- | CompressionBest- -- ^ Compress with DEFLATE. Elastic- -- <https://www.elastic.co/blog/elasticsearch-storage-the-true-story-2.0 blogs>- -- that this can reduce disk use by 15%-25%.- deriving (Eq,Show)--instance ToJSON Compression where- toJSON x = case x of- CompressionDefault -> toJSON ("default" :: Text)- CompressionBest -> toJSON ("best_compression" :: Text)--instance FromJSON Compression where- parseJSON = withText "Compression" $ \t -> case t of- "default" -> return CompressionDefault- "best_compression" -> return CompressionBest- _ -> fail "invalid compression codec"---- | A measure of bytes used for various configurations. You may want--- to use smart constructors like 'gigabytes' for larger values.------ >>> gigabytes 9--- Bytes 9000000000------ >>> megabytes 9--- Bytes 9000000------ >>> kilobytes 9--- Bytes 9000-newtype Bytes =- Bytes Int- deriving (Eq, Show, Ord, ToJSON, FromJSON)--gigabytes :: Int -> Bytes-gigabytes n = megabytes (1000 * n)---megabytes :: Int -> Bytes-megabytes n = kilobytes (1000 * n)---kilobytes :: Int -> Bytes-kilobytes n = Bytes (1000 * n)---data FSType = FSSimple- | FSBuffered deriving (Eq, Show)--instance ToJSON FSType where- toJSON FSSimple = "simple"- toJSON FSBuffered = "buffered"--instance FromJSON FSType where- parseJSON = withText "FSType" parse- where parse "simple" = pure FSSimple- parse "buffered" = pure FSBuffered- parse t = fail ("Invalid FSType: " <> show t)--data InitialShardCount = QuorumShards- | QuorumMinus1Shards- | FullShards- | FullMinus1Shards- | ExplicitShards Int- deriving (Eq, Show)--instance FromJSON InitialShardCount where- parseJSON v = withText "InitialShardCount" parseText v- <|> ExplicitShards <$> parseJSON v- where parseText "quorum" = pure QuorumShards- parseText "quorum-1" = pure QuorumMinus1Shards- parseText "full" = pure FullShards- parseText "full-1" = pure FullMinus1Shards- parseText _ = mzero--instance ToJSON InitialShardCount where- toJSON QuorumShards = String "quorum"- toJSON QuorumMinus1Shards = String "quorum-1"- toJSON FullShards = String "full"- toJSON FullMinus1Shards = String "full-1"- toJSON (ExplicitShards x) = toJSON x--data NodeAttrFilter = NodeAttrFilter- { nodeAttrFilterName :: NodeAttrName- , nodeAttrFilterValues :: NonEmpty Text }- deriving (Eq, Ord, Show)--newtype NodeAttrName = NodeAttrName Text deriving (Eq, Ord, Show)--data CompoundFormat = CompoundFileFormat Bool- | MergeSegmentVsTotalIndex Double- -- ^ percentage between 0 and 1 where 0 is false, 1 is true- deriving (Eq, Show)--instance ToJSON CompoundFormat where- toJSON (CompoundFileFormat x) = Bool x- toJSON (MergeSegmentVsTotalIndex x) = toJSON x--instance FromJSON CompoundFormat where- parseJSON v = CompoundFileFormat <$> parseJSON v- <|> MergeSegmentVsTotalIndex <$> parseJSON v--newtype NominalDiffTimeJSON =- NominalDiffTimeJSON { ndtJSON :: NominalDiffTime }--instance ToJSON NominalDiffTimeJSON where- toJSON (NominalDiffTimeJSON t) = String (showText (round t :: Integer) <> "s")--instance FromJSON NominalDiffTimeJSON where- parseJSON = withText "NominalDiffTime" parse- where parse t = case T.takeEnd 1 t of- "s" -> NominalDiffTimeJSON . fromInteger <$> parseReadText (T.dropEnd 1 t)- _ -> fail "Invalid or missing NominalDiffTime unit (expected s)"--data IndexSettingsSummary = IndexSettingsSummary- { sSummaryIndexName :: IndexName- , sSummaryFixedSettings :: IndexSettings- , sSummaryUpdateable :: [UpdatableIndexSetting]}- deriving (Eq, Show)--parseSettings :: Object -> Parser [UpdatableIndexSetting]-parseSettings o = do- o' <- o .: "index"- -- slice the index object into singleton hashmaps and try to parse each- parses <- forM (HM.toList o') $ \(k, v) -> do- -- blocks are now nested into the "index" key, which is not how they're serialized- let atRoot = Object (HM.singleton k v)- let atIndex = Object (HM.singleton "index" atRoot)- optional (parseJSON atRoot <|> parseJSON atIndex)- return (catMaybes parses)--instance FromJSON IndexSettingsSummary where- parseJSON = withObject "IndexSettingsSummary" parse- where parse o = case HM.toList o of- [(ixn, v@(Object o'))] -> IndexSettingsSummary (IndexName ixn)- <$> parseJSON v- <*> (fmap (filter (not . redundant)) . parseSettings =<< o' .: "settings")- _ -> fail "Expected single-key object with index name"- redundant (NumberOfReplicas _) = True- redundant _ = False--{-| 'Reply' and 'Method' are type synonyms from 'Network.HTTP.Types.Method.Method' -}-type Reply = Network.HTTP.Client.Response LByteString--{-| 'OpenCloseIndex' is a sum type for opening and closing indices.-- <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>--}-data OpenCloseIndex = OpenIndex | CloseIndex deriving (Eq, Show)--data FieldType = GeoPointType- | GeoShapeType- | FloatType- | IntegerType- | LongType- | ShortType- | ByteType deriving (Eq, Show)--newtype FieldDefinition = FieldDefinition- { fieldType :: FieldType- } deriving (Eq, Show)--{-| An 'IndexTemplate' defines a template that will automatically be- applied to new indices created. The templates include both- 'IndexSettings' and mappings, and a simple 'TemplatePattern' that- controls if the template will be applied to the index created.- Specify mappings as follows: @[toJSON TweetMapping, ...]@-- https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-templates.html--}-data IndexTemplate =- IndexTemplate { templatePattern :: TemplatePattern- , templateSettings :: Maybe IndexSettings- , templateMappings :: [Value]- }--instance ToJSON IndexTemplate where- toJSON (IndexTemplate p s m) = merge- (object [ "template" .= p- , "mappings" .= foldl' merge (object []) m- ])- (toJSON s)- where- merge (Object o1) (Object o2) = toJSON $ HM.union o1 o2- merge o Null = o- merge _ _ = undefined--data MappingField =- MappingField { mappingFieldName :: FieldName- , fieldDefinition :: FieldDefinition }- deriving (Eq, Show)--{-| Support for type reification of 'Mapping's is currently incomplete, for- now the mapping API verbiage expects a 'ToJSON'able blob.-- Indexes have mappings, mappings are schemas for the documents contained- in the index. I'd recommend having only one mapping per index, always- having a mapping, and keeping different kinds of documents separated- if possible.--}-data Mapping =- Mapping { typeName :: TypeName- , mappingFields :: [MappingField] }- deriving (Eq, Show)--data AllocationPolicy = AllocAll- -- ^ Allows shard allocation for all shards.- | AllocPrimaries- -- ^ Allows shard allocation only for primary shards.- | AllocNewPrimaries- -- ^ Allows shard allocation only for primary shards for new indices.- | AllocNone- -- ^ No shard allocation is allowed- deriving (Eq, Show)--instance ToJSON AllocationPolicy where- toJSON AllocAll = String "all"- toJSON AllocPrimaries = String "primaries"- toJSON AllocNewPrimaries = String "new_primaries"- toJSON AllocNone = String "none"--instance FromJSON AllocationPolicy where- parseJSON = withText "AllocationPolicy" parse- where parse "all" = pure AllocAll- parse "primaries" = pure AllocPrimaries- parse "new_primaries" = pure AllocNewPrimaries- parse "none" = pure AllocNone- parse t = fail ("Invlaid AllocationPolicy: " <> show t)--{-| 'BulkOperation' is a sum type for expressing the four kinds of bulk- operation index, create, delete, and update. 'BulkIndex' behaves like an- "upsert", 'BulkCreate' will fail if a document already exists at the DocId.- Consult the <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html#docs-bulk Bulk API documentation>- for further explanation.- Warning: Bulk operations suffixed with @Auto@ rely on Elasticsearch to- generate the id. Often, people use auto-generated identifiers when- Elasticsearch is the only place that their data is stored. Do not let- Elasticsearch be the only place your data is stored. It does not guarantee- durability, and it may silently discard data.- This <https://github.com/elastic/elasticsearch/issues/10708 issue> is- discussed further on github.--}-data BulkOperation =- BulkIndex IndexName MappingName DocId Value- -- ^ Create the document, replacing it if it already exists.- | BulkIndexAuto IndexName MappingName Value- -- ^ Create a document with an autogenerated id.- | BulkIndexEncodingAuto IndexName MappingName Encoding- -- ^ Create a document with an autogenerated id. Use fast JSON encoding.- | BulkCreate IndexName MappingName DocId Value- -- ^ Create a document, failing if it already exists.- | BulkCreateEncoding IndexName MappingName DocId Encoding- -- ^ Create a document, failing if it already exists. Use fast JSON encoding.- | BulkDelete IndexName MappingName DocId- -- ^ Delete the document- | BulkUpdate IndexName MappingName DocId Value- -- ^ Update the document, merging the new value with the existing one.- deriving (Eq, Show)--{-| 'EsResult' describes the standard wrapper JSON document that you see in- successful Elasticsearch lookups or lookups that couldn't find the document.--}-data EsResult a = EsResult { _index :: Text- , _type :: Text- , _id :: Text- , foundResult :: Maybe (EsResultFound a)} deriving (Eq, Show)--{-| 'EsResultFound' contains the document and its metadata inside of an- 'EsResult' when the document was successfully found.--}-data EsResultFound a =- EsResultFound { _version :: DocVersion- , _source :: a }- deriving (Eq, Show)--instance (FromJSON a) => FromJSON (EsResult a) where- parseJSON jsonVal@(Object v) = do- found <- v .:? "found" .!= False- fr <- if found- then parseJSON jsonVal- else return Nothing- EsResult <$> v .: "_index" <*>- v .: "_type" <*>- v .: "_id" <*>- pure fr- parseJSON _ = empty--instance (FromJSON a) => FromJSON (EsResultFound a) where- parseJSON (Object v) = EsResultFound <$>- v .: "_version" <*>- v .: "_source"- parseJSON _ = empty--{-| 'EsError' is the generic type that will be returned when there was a- problem. If you can't parse the expected response, its a good idea to- try parsing this.--}-data EsError =- EsError { errorStatus :: Int- , errorMessage :: Text }- deriving (Eq, Show)--instance FromJSON EsError where- parseJSON (Object v) = EsError <$>- v .: "status" <*>- (v .: "error" <|> (v .: "error" >>= (.: "reason")))- parseJSON _ = empty--{-| 'EsProtocolException' will be thrown if Bloodhound cannot parse a response-returned by the Elasticsearch server. If you encounter this error, please-verify that your domain data types and FromJSON instances are working properly-(for example, the 'a' of '[Hit a]' in 'SearchResult.searchHits.hits'). If you're-sure that your mappings are correct, then this error may be an indication of an-incompatibility between Bloodhound and Elasticsearch. Please open a bug report-and be sure to include the exception body.--}-data EsProtocolException = EsProtocolException- { esProtoExMessage :: !Text- , esProtoExBody :: !LByteString- } deriving (Eq, Show)--instance Exception EsProtocolException--data IndexAlias = IndexAlias { srcIndex :: IndexName- , indexAlias :: IndexAliasName } deriving (Eq, Show)--data IndexAliasAction =- AddAlias IndexAlias IndexAliasCreate- | RemoveAlias IndexAlias- deriving (Eq, Show)--data IndexAliasCreate =- IndexAliasCreate { aliasCreateRouting :: Maybe AliasRouting- , aliasCreateFilter :: Maybe Filter}- deriving (Eq, Show)--data AliasRouting =- AllAliasRouting RoutingValue- | GranularAliasRouting (Maybe SearchAliasRouting) (Maybe IndexAliasRouting)- deriving (Eq, Show)--newtype SearchAliasRouting =- SearchAliasRouting (NonEmpty RoutingValue)- deriving (Eq, Show)--instance ToJSON SearchAliasRouting where- toJSON (SearchAliasRouting rvs) = toJSON (T.intercalate "," (routingValue <$> toList rvs))--instance FromJSON SearchAliasRouting where- parseJSON = withText "SearchAliasRouting" parse- where parse t = SearchAliasRouting <$> parseNEJSON (String <$> T.splitOn "," t)--newtype IndexAliasRouting =- IndexAliasRouting RoutingValue- deriving (Eq, Show, ToJSON, FromJSON)--newtype RoutingValue =- RoutingValue { routingValue :: Text }- deriving (Eq, Show, ToJSON, FromJSON)--newtype IndexAliasesSummary =- IndexAliasesSummary { indexAliasesSummary :: [IndexAliasSummary] }- deriving (Eq, Show)--instance FromJSON IndexAliasesSummary where- parseJSON = withObject "IndexAliasesSummary" parse- where parse o = IndexAliasesSummary . mconcat <$> mapM (uncurry go) (HM.toList o)- go ixn = withObject "index aliases" $ \ia -> do- aliases <- ia .:? "aliases" .!= mempty- forM (HM.toList aliases) $ \(aName, v) -> do- let indexAlias = IndexAlias (IndexName ixn) (IndexAliasName (IndexName aName))- IndexAliasSummary indexAlias <$> parseJSON v---instance ToJSON IndexAliasAction where- toJSON (AddAlias ia opts) = object ["add" .= (iaObj <> optsObj)]- where Object iaObj = toJSON ia- Object optsObj = toJSON opts- toJSON (RemoveAlias ia) = object ["remove" .= iaObj]- where Object iaObj = toJSON ia--instance ToJSON IndexAlias where- toJSON IndexAlias {..} = object ["index" .= srcIndex- , "alias" .= indexAlias- ]--instance ToJSON IndexAliasCreate where- toJSON IndexAliasCreate {..} = Object (filterObj <> routingObj)- where filterObj = maybe mempty (HM.singleton "filter" . toJSON) aliasCreateFilter- Object routingObj = maybe (Object mempty) toJSON aliasCreateRouting--instance ToJSON AliasRouting where- toJSON (AllAliasRouting v) = object ["routing" .= v]- toJSON (GranularAliasRouting srch idx) = object (catMaybes prs)- where prs = [("search_routing" .=) <$> srch- ,("index_routing" .=) <$> idx]--instance FromJSON AliasRouting where- parseJSON = withObject "AliasRouting" parse- where parse o = parseAll o <|> parseGranular o- parseAll o = AllAliasRouting <$> o .: "routing"- parseGranular o = do- sr <- o .:? "search_routing"- ir <- o .:? "index_routing"- if isNothing sr && isNothing ir- then fail "Both search_routing and index_routing can't be blank"- else return (GranularAliasRouting sr ir)--instance FromJSON IndexAliasCreate where- parseJSON v = withObject "IndexAliasCreate" parse v- where parse o = IndexAliasCreate <$> optional (parseJSON v)- <*> o .:? "filter"--{-| 'IndexAliasSummary' is a summary of an index alias configured for a server. -}-data IndexAliasSummary = IndexAliasSummary- { indexAliasSummaryAlias :: IndexAlias- , indexAliasSummaryCreate :: IndexAliasCreate }- deriving (Eq, Show)--{-| 'DocVersion' is an integer version number for a document between 1-and 9.2e+18 used for <<https://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html optimistic concurrency control>>.--}-newtype DocVersion = DocVersion {- docVersionNumber :: Int- } deriving (Eq, Show, Ord, ToJSON)---- | Smart constructor for in-range doc version-mkDocVersion :: Int -> Maybe DocVersion-mkDocVersion i- | i >= docVersionNumber minBound- && i <= docVersionNumber maxBound =- Just $ DocVersion i- | otherwise = Nothing--instance Bounded DocVersion where- minBound = DocVersion 1- maxBound = DocVersion 9200000000000000000 -- 9.2e+18--instance Enum DocVersion where- succ x- | x /= maxBound = DocVersion (succ $ docVersionNumber x)- | otherwise = succError "DocVersion"- pred x- | x /= minBound = DocVersion (pred $ docVersionNumber x)- | otherwise = predError "DocVersion"- toEnum i =- fromMaybe (error $ show i ++ " out of DocVersion range") $ mkDocVersion i- fromEnum = docVersionNumber- enumFrom = boundedEnumFrom- enumFromThen = boundedEnumFromThen--instance FromJSON DocVersion where- parseJSON v = do- i <- parseJSON v- maybe (fail "DocVersion out of range") return $ mkDocVersion i--{-| 'ExternalDocVersion' is a convenience wrapper if your code uses its-own version numbers instead of ones from ES.--}-newtype ExternalDocVersion = ExternalDocVersion DocVersion- deriving (Eq, Show, Ord, Bounded, Enum, ToJSON)--{-| 'VersionControl' is specified when indexing documents as a-optimistic concurrency control.--}-data VersionControl = NoVersionControl- -- ^ Don't send a version. This is a pure overwrite.- | InternalVersion DocVersion- -- ^ Use the default ES versioning scheme. Only- -- index the document if the version is the same- -- as the one specified. Only applicable to- -- updates, as you should be getting Version from- -- a search result.- | ExternalGT ExternalDocVersion- -- ^ Use your own version numbering. Only index- -- the document if the version is strictly higher- -- OR the document doesn't exist. The given- -- version will be used as the new version number- -- for the stored document. N.B. All updates must- -- increment this number, meaning there is some- -- global, external ordering of updates.- | ExternalGTE ExternalDocVersion- -- ^ Use your own version numbering. Only index- -- the document if the version is equal or higher- -- than the stored version. Will succeed if there- -- is no existing document. The given version will- -- be used as the new version number for the- -- stored document. Use with care, as this could- -- result in data loss.- | ForceVersion ExternalDocVersion- -- ^ The document will always be indexed and the- -- given version will be the new version. This is- -- typically used for correcting errors. Use with- -- care, as this could result in data loss.- deriving (Eq, Show, Ord)--{-| 'DocumentParent' is used to specify a parent document.--}-newtype DocumentParent = DocumentParent DocId- deriving (Eq, Show)--{-| 'IndexDocumentSettings' are special settings supplied when indexing-a document. For the best backwards compatiblity when new fields are-added, you should probably prefer to start with 'defaultIndexDocumentSettings'--}-data IndexDocumentSettings =- IndexDocumentSettings { idsVersionControl :: VersionControl- , idsParent :: Maybe DocumentParent- } deriving (Eq, Show)--{-| Reasonable default settings. Chooses no version control and no parent.--}-defaultIndexDocumentSettings :: IndexDocumentSettings-defaultIndexDocumentSettings = IndexDocumentSettings NoVersionControl Nothing--{-| 'IndexSelection' is used for APIs which take a single index, a list of- indexes, or the special @_all@ index.--}---TODO: this does not fully support <https://www.elastic.co/guide/en/elasticsearch/reference/1.7/multi-index.html multi-index syntax>. It wouldn't be too hard to implement but you'd have to add the optional parameters (ignore_unavailable, allow_no_indices, expand_wildcards) to any APIs using it. Also would be a breaking API.-data IndexSelection =- IndexList (NonEmpty IndexName)- | AllIndexes- deriving (Eq, Show)--{-| 'NodeSelection' is used for most cluster APIs. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes here> for more details.--}-data NodeSelection =- LocalNode- -- ^ Whatever node receives this request- | NodeList (NonEmpty NodeSelector)- | AllNodes- deriving (Eq, Show)----- | An exact match or pattern to identify a node. Note that All of--- these options support wildcarding, so your node name, server, attr--- name can all contain * characters to be a fuzzy match.-data NodeSelector =- NodeByName NodeName- | NodeByFullNodeId FullNodeId- | NodeByHost Server- -- ^ e.g. 10.0.0.1 or even 10.0.0.*- | NodeByAttribute NodeAttrName Text- -- ^ NodeAttrName can be a pattern, e.g. rack*. The value can too.- deriving (Eq, Show)--{-| 'TemplateName' is used to describe which template to query/create/delete--}-newtype TemplateName = TemplateName Text deriving (Eq, Show, ToJSON, FromJSON)--{-| 'TemplatePattern' represents a pattern which is matched against index names--}-newtype TemplatePattern = TemplatePattern Text deriving (Eq, Show, ToJSON, FromJSON)---- | Username type used for HTTP Basic authentication. See 'basicAuthHook'.-newtype EsUsername = EsUsername { esUsername :: Text } deriving (Read, Show, Eq)---- | Password type used for HTTP Basic authentication. See 'basicAuthHook'.-newtype EsPassword = EsPassword { esPassword :: Text } deriving (Read, Show, Eq)---data SnapshotRepoSelection =- SnapshotRepoList (NonEmpty SnapshotRepoPattern)- | AllSnapshotRepos- deriving (Eq, Show)----- | Either specifies an exact repo name or one with globs in it,--- e.g. @RepoPattern "foo*"@ __NOTE__: Patterns are not supported on ES < 1.7-data SnapshotRepoPattern =- ExactRepo SnapshotRepoName- | RepoPattern Text- deriving (Eq, Show)---- | The unique name of a snapshot repository.-newtype SnapshotRepoName =- SnapshotRepoName { snapshotRepoName :: Text }- deriving (Eq, Ord, Show, ToJSON, FromJSON)----- | A generic representation of a snapshot repo. This is what gets--- sent to and parsed from the server. For repo types enabled by--- plugins that aren't exported by this library, consider making a--- custom type which implements 'SnapshotRepo'. If it is a common repo--- type, consider submitting a pull request to have it included in the--- library proper-data GenericSnapshotRepo = GenericSnapshotRepo {- gSnapshotRepoName :: SnapshotRepoName- , gSnapshotRepoType :: SnapshotRepoType- , gSnapshotRepoSettings :: GenericSnapshotRepoSettings- } deriving (Eq, Show)---instance SnapshotRepo GenericSnapshotRepo where- toGSnapshotRepo = id- fromGSnapshotRepo = Right---newtype SnapshotRepoType =- SnapshotRepoType { snapshotRepoType :: Text }- deriving (Eq, Ord, Show, ToJSON, FromJSON)----- | Opaque representation of snapshot repo settings. Instances of--- 'SnapshotRepo' will produce this.-newtype GenericSnapshotRepoSettings =- GenericSnapshotRepoSettings { gSnapshotRepoSettingsObject :: Object }- deriving (Eq, Show, ToJSON)--- -- Regardless of whether you send strongly typed json, my version of- -- ES sends back stringly typed json in the settings, e.g. booleans- -- as strings, so we'll try to convert them.-instance FromJSON GenericSnapshotRepoSettings where- parseJSON = fmap (GenericSnapshotRepoSettings . fmap unStringlyTypeJSON). parseJSON---- | The result of running 'verifySnapshotRepo'.-newtype SnapshotVerification =- SnapshotVerification {- snapshotNodeVerifications :: [SnapshotNodeVerification]- } deriving (Eq, Show)---instance FromJSON SnapshotVerification where- parseJSON = withObject "SnapshotVerification" parse- where- parse o = do- o2 <- o .: "nodes"- SnapshotVerification <$> mapM (uncurry parse') (HM.toList o2)- parse' rawFullId = withObject "SnapshotNodeVerification" $ \o ->- SnapshotNodeVerification (FullNodeId rawFullId) <$> o .: "name"----- | A node that has verified a snapshot-data SnapshotNodeVerification = SnapshotNodeVerification {- snvFullId :: FullNodeId- , snvNodeName :: NodeName- } deriving (Eq, Show)----- | Unique, automatically-generated name assigned to nodes that are--- usually returned in node-oriented APIs.-newtype FullNodeId = FullNodeId { fullNodeId :: Text }- deriving (Eq, Ord, Show, FromJSON)----- | A human-readable node name that is supplied by the user in the--- node config or automatically generated by Elasticsearch.-newtype NodeName = NodeName { nodeName :: Text }- deriving (Eq, Ord, Show, FromJSON)--newtype ClusterName = ClusterName { clusterName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data NodesInfo = NodesInfo {- nodesInfo :: [NodeInfo]- , nodesClusterName :: ClusterName- } deriving (Eq, Show)--data NodesStats = NodesStats {- nodesStats :: [NodeStats]- , nodesStatsClusterName :: ClusterName- } deriving (Eq, Show)--data NodeStats = NodeStats {- nodeStatsName :: NodeName- , nodeStatsFullId :: FullNodeId- , nodeStatsBreakersStats :: Maybe NodeBreakersStats- , nodeStatsHTTP :: NodeHTTPStats- , nodeStatsTransport :: NodeTransportStats- , nodeStatsFS :: NodeFSStats- , nodeStatsNetwork :: Maybe NodeNetworkStats- , nodeStatsThreadPool :: NodeThreadPoolsStats- , nodeStatsJVM :: NodeJVMStats- , nodeStatsProcess :: NodeProcessStats- , nodeStatsOS :: NodeOSStats- , nodeStatsIndices :: NodeIndicesStats- } deriving (Eq, Show)--data NodeBreakersStats = NodeBreakersStats {- nodeStatsParentBreaker :: NodeBreakerStats- , nodeStatsRequestBreaker :: NodeBreakerStats- , nodeStatsFieldDataBreaker :: NodeBreakerStats- } deriving (Eq, Show)--data NodeBreakerStats = NodeBreakerStats {- nodeBreakersTripped :: Int- , nodeBreakersOverhead :: Double- , nodeBreakersEstSize :: Bytes- , nodeBreakersLimitSize :: Bytes- } deriving (Eq, Show)--data NodeHTTPStats = NodeHTTPStats {- nodeHTTPTotalOpened :: Int- , nodeHTTPCurrentOpen :: Int- } deriving (Eq, Show)--data NodeTransportStats = NodeTransportStats {- nodeTransportTXSize :: Bytes- , nodeTransportCount :: Int- , nodeTransportRXSize :: Bytes- , nodeTransportRXCount :: Int- , nodeTransportServerOpen :: Int- } deriving (Eq, Show)--data NodeFSStats = NodeFSStats {- nodeFSDataPaths :: [NodeDataPathStats]- , nodeFSTotal :: NodeFSTotalStats- , nodeFSTimestamp :: UTCTime- } deriving (Eq, Show)--data NodeDataPathStats = NodeDataPathStats {- nodeDataPathDiskServiceTime :: Maybe Double- , nodeDataPathDiskQueue :: Maybe Double- , nodeDataPathIOSize :: Maybe Bytes- , nodeDataPathWriteSize :: Maybe Bytes- , nodeDataPathReadSize :: Maybe Bytes- , nodeDataPathIOOps :: Maybe Int- , nodeDataPathWrites :: Maybe Int- , nodeDataPathReads :: Maybe Int- , nodeDataPathAvailable :: Bytes- , nodeDataPathFree :: Bytes- , nodeDataPathTotal :: Bytes- , nodeDataPathType :: Maybe Text- , nodeDataPathDevice :: Maybe Text- , nodeDataPathMount :: Text- , nodeDataPathPath :: Text- } deriving (Eq, Show)--data NodeFSTotalStats = NodeFSTotalStats {- nodeFSTotalDiskServiceTime :: Maybe Double- , nodeFSTotalDiskQueue :: Maybe Double- , nodeFSTotalIOSize :: Maybe Bytes- , nodeFSTotalWriteSize :: Maybe Bytes- , nodeFSTotalReadSize :: Maybe Bytes- , nodeFSTotalIOOps :: Maybe Int- , nodeFSTotalWrites :: Maybe Int- , nodeFSTotalReads :: Maybe Int- , nodeFSTotalAvailable :: Bytes- , nodeFSTotalFree :: Bytes- , nodeFSTotalTotal :: Bytes- } deriving (Eq, Show)--data NodeNetworkStats = NodeNetworkStats {- nodeNetTCPOutRSTs :: Int- , nodeNetTCPInErrs :: Int- , nodeNetTCPAttemptFails :: Int- , nodeNetTCPEstabResets :: Int- , nodeNetTCPRetransSegs :: Int- , nodeNetTCPOutSegs :: Int- , nodeNetTCPInSegs :: Int- , nodeNetTCPCurrEstab :: Int- , nodeNetTCPPassiveOpens :: Int- , nodeNetTCPActiveOpens :: Int- } deriving (Eq, Show)--data NodeThreadPoolsStats = NodeThreadPoolsStats {- nodeThreadPoolsStatsSnapshot :: NodeThreadPoolStats- , nodeThreadPoolsStatsBulk :: NodeThreadPoolStats- , nodeThreadPoolsStatsMerge :: NodeThreadPoolStats- , nodeThreadPoolsStatsGet :: NodeThreadPoolStats- , nodeThreadPoolsStatsManagement :: NodeThreadPoolStats- , nodeThreadPoolsStatsFetchShardStore :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsOptimize :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsFlush :: NodeThreadPoolStats- , nodeThreadPoolsStatsSearch :: NodeThreadPoolStats- , nodeThreadPoolsStatsWarmer :: NodeThreadPoolStats- , nodeThreadPoolsStatsGeneric :: NodeThreadPoolStats- , nodeThreadPoolsStatsSuggest :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsRefresh :: NodeThreadPoolStats- , nodeThreadPoolsStatsIndex :: NodeThreadPoolStats- , nodeThreadPoolsStatsListener :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsFetchShardStarted :: Maybe NodeThreadPoolStats- , nodeThreadPoolsStatsPercolate :: Maybe NodeThreadPoolStats- } deriving (Eq, Show)--data NodeThreadPoolStats = NodeThreadPoolStats {- nodeThreadPoolCompleted :: Int- , nodeThreadPoolLargest :: Int- , nodeThreadPoolRejected :: Int- , nodeThreadPoolActive :: Int- , nodeThreadPoolQueue :: Int- , nodeThreadPoolThreads :: Int- } deriving (Eq, Show)--data NodeJVMStats = NodeJVMStats {- nodeJVMStatsMappedBufferPool :: JVMBufferPoolStats- , nodeJVMStatsDirectBufferPool :: JVMBufferPoolStats- , nodeJVMStatsGCOldCollector :: JVMGCStats- , nodeJVMStatsGCYoungCollector :: JVMGCStats- , nodeJVMStatsPeakThreadsCount :: Int- , nodeJVMStatsThreadsCount :: Int- , nodeJVMStatsOldPool :: JVMPoolStats- , nodeJVMStatsSurvivorPool :: JVMPoolStats- , nodeJVMStatsYoungPool :: JVMPoolStats- , nodeJVMStatsNonHeapCommitted :: Bytes- , nodeJVMStatsNonHeapUsed :: Bytes- , nodeJVMStatsHeapMax :: Bytes- , nodeJVMStatsHeapCommitted :: Bytes- , nodeJVMStatsHeapUsedPercent :: Int- , nodeJVMStatsHeapUsed :: Bytes- , nodeJVMStatsUptime :: NominalDiffTime- , nodeJVMStatsTimestamp :: UTCTime- } deriving (Eq, Show)--data JVMBufferPoolStats = JVMBufferPoolStats {- jvmBufferPoolStatsTotalCapacity :: Bytes- , jvmBufferPoolStatsUsed :: Bytes- , jvmBufferPoolStatsCount :: Int- } deriving (Eq, Show)--data JVMGCStats = JVMGCStats {- jvmGCStatsCollectionTime :: NominalDiffTime- , jvmGCStatsCollectionCount :: Int- } deriving (Eq, Show)--data JVMPoolStats = JVMPoolStats {- jvmPoolStatsPeakMax :: Bytes- , jvmPoolStatsPeakUsed :: Bytes- , jvmPoolStatsMax :: Bytes- , jvmPoolStatsUsed :: Bytes- } deriving (Eq, Show)--data NodeProcessStats = NodeProcessStats {- nodeProcessTimestamp :: UTCTime- , nodeProcessOpenFDs :: Int- , nodeProcessMaxFDs :: Int- , nodeProcessCPUPercent :: Int- , nodeProcessCPUTotal :: NominalDiffTime- , nodeProcessMemTotalVirtual :: Bytes- } deriving (Eq, Show)--data NodeOSStats = NodeOSStats {- nodeOSTimestamp :: UTCTime- , nodeOSCPUPercent :: Int- , nodeOSLoad :: Maybe LoadAvgs- , nodeOSMemTotal :: Bytes- , nodeOSMemFree :: Bytes- , nodeOSMemFreePercent :: Int- , nodeOSMemUsed :: Bytes- , nodeOSMemUsedPercent :: Int- , nodeOSSwapTotal :: Bytes- , nodeOSSwapFree :: Bytes- , nodeOSSwapUsed :: Bytes- } deriving (Eq, Show)--data LoadAvgs = LoadAvgs {- loadAvg1Min :: Double- , loadAvg5Min :: Double- , loadAvg15Min :: Double- } deriving (Eq, Show)--data NodeIndicesStats = NodeIndicesStats {- nodeIndicesStatsRecoveryThrottleTime :: Maybe NominalDiffTime- , nodeIndicesStatsRecoveryCurrentAsTarget :: Maybe Int- , nodeIndicesStatsRecoveryCurrentAsSource :: Maybe Int- , nodeIndicesStatsQueryCacheMisses :: Maybe Int- , nodeIndicesStatsQueryCacheHits :: Maybe Int- , nodeIndicesStatsQueryCacheEvictions :: Maybe Int- , nodeIndicesStatsQueryCacheSize :: Maybe Bytes- , nodeIndicesStatsSuggestCurrent :: Maybe Int- , nodeIndicesStatsSuggestTime :: Maybe NominalDiffTime- , nodeIndicesStatsSuggestTotal :: Maybe Int- , nodeIndicesStatsTranslogSize :: Bytes- , nodeIndicesStatsTranslogOps :: Int- , nodeIndicesStatsSegFixedBitSetMemory :: Maybe Bytes- , nodeIndicesStatsSegVersionMapMemory :: Bytes- , nodeIndicesStatsSegIndexWriterMaxMemory :: Maybe Bytes- , nodeIndicesStatsSegIndexWriterMemory :: Bytes- , nodeIndicesStatsSegMemory :: Bytes- , nodeIndicesStatsSegCount :: Int- , nodeIndicesStatsCompletionSize :: Bytes- , nodeIndicesStatsPercolateQueries :: Maybe Int- , nodeIndicesStatsPercolateMemory :: Maybe Bytes- , nodeIndicesStatsPercolateCurrent :: Maybe Int- , nodeIndicesStatsPercolateTime :: Maybe NominalDiffTime- , nodeIndicesStatsPercolateTotal :: Maybe Int- , nodeIndicesStatsFieldDataEvictions :: Int- , nodeIndicesStatsFieldDataMemory :: Bytes- , nodeIndicesStatsWarmerTotalTime :: NominalDiffTime- , nodeIndicesStatsWarmerTotal :: Int- , nodeIndicesStatsWarmerCurrent :: Int- , nodeIndicesStatsFlushTotalTime :: NominalDiffTime- , nodeIndicesStatsFlushTotal :: Int- , nodeIndicesStatsRefreshTotalTime :: NominalDiffTime- , nodeIndicesStatsRefreshTotal :: Int- , nodeIndicesStatsMergesTotalSize :: Bytes- , nodeIndicesStatsMergesTotalDocs :: Int- , nodeIndicesStatsMergesTotalTime :: NominalDiffTime- , nodeIndicesStatsMergesTotal :: Int- , nodeIndicesStatsMergesCurrentSize :: Bytes- , nodeIndicesStatsMergesCurrentDocs :: Int- , nodeIndicesStatsMergesCurrent :: Int- , nodeIndicesStatsSearchFetchCurrent :: Int- , nodeIndicesStatsSearchFetchTime :: NominalDiffTime- , nodeIndicesStatsSearchFetchTotal :: Int- , nodeIndicesStatsSearchQueryCurrent :: Int- , nodeIndicesStatsSearchQueryTime :: NominalDiffTime- , nodeIndicesStatsSearchQueryTotal :: Int- , nodeIndicesStatsSearchOpenContexts :: Int- , nodeIndicesStatsGetCurrent :: Int- , nodeIndicesStatsGetMissingTime :: NominalDiffTime- , nodeIndicesStatsGetMissingTotal :: Int- , nodeIndicesStatsGetExistsTime :: NominalDiffTime- , nodeIndicesStatsGetExistsTotal :: Int- , nodeIndicesStatsGetTime :: NominalDiffTime- , nodeIndicesStatsGetTotal :: Int- , nodeIndicesStatsIndexingThrottleTime :: Maybe NominalDiffTime- , nodeIndicesStatsIndexingIsThrottled :: Maybe Bool- , nodeIndicesStatsIndexingNoopUpdateTotal :: Maybe Int- , nodeIndicesStatsIndexingDeleteCurrent :: Int- , nodeIndicesStatsIndexingDeleteTime :: NominalDiffTime- , nodeIndicesStatsIndexingDeleteTotal :: Int- , nodeIndicesStatsIndexingIndexCurrent :: Int- , nodeIndicesStatsIndexingIndexTime :: NominalDiffTime- , nodeIndicesStatsIndexingTotal :: Int- , nodeIndicesStatsStoreThrottleTime :: NominalDiffTime- , nodeIndicesStatsStoreSize :: Bytes- , nodeIndicesStatsDocsDeleted :: Int- , nodeIndicesStatsDocsCount :: Int- } deriving (Eq, Show)---- | A quirky address format used throughout Elasticsearch. An example--- would be inet[/1.1.1.1:9200]. inet may be a placeholder for a--- <https://en.wikipedia.org/wiki/Fully_qualified_domain_name FQDN>.-newtype EsAddress = EsAddress { esAddress :: Text }- deriving (Eq, Ord, Show, FromJSON)---- | Typically a 7 character hex string.-newtype BuildHash = BuildHash { buildHash :: Text }- deriving (Eq, Ord, Show, FromJSON, ToJSON)--newtype PluginName = PluginName { pluginName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data NodeInfo = NodeInfo {- nodeInfoHTTPAddress :: Maybe EsAddress- , nodeInfoBuild :: BuildHash- , nodeInfoESVersion :: VersionNumber- , nodeInfoIP :: Server- , nodeInfoHost :: Server- , nodeInfoTransportAddress :: EsAddress- , nodeInfoName :: NodeName- , nodeInfoFullId :: FullNodeId- , nodeInfoPlugins :: [NodePluginInfo]- , nodeInfoHTTP :: NodeHTTPInfo- , nodeInfoTransport :: NodeTransportInfo- , nodeInfoNetwork :: Maybe NodeNetworkInfo- , nodeInfoThreadPool :: NodeThreadPoolsInfo- , nodeInfoJVM :: NodeJVMInfo- , nodeInfoProcess :: NodeProcessInfo- , nodeInfoOS :: NodeOSInfo- , nodeInfoSettings :: Object- -- ^ The members of the settings objects are not consistent,- -- dependent on plugins, etc.- } deriving (Eq, Show)--data NodePluginInfo = NodePluginInfo {- nodePluginSite :: Maybe Bool- -- ^ Is this a site plugin?- , nodePluginJVM :: Maybe Bool- -- ^ Is this plugin running on the JVM- , nodePluginDescription :: Text- , nodePluginVersion :: MaybeNA VersionNumber- , nodePluginName :: PluginName- } deriving (Eq, Show)--data NodeHTTPInfo = NodeHTTPInfo {- nodeHTTPMaxContentLength :: Bytes- , nodeHTTPTransportAddress :: BoundTransportAddress- } deriving (Eq, Show)--data NodeTransportInfo = NodeTransportInfo {- nodeTransportProfiles :: [BoundTransportAddress]- , nodeTransportAddress :: BoundTransportAddress- } deriving (Eq, Show)--data BoundTransportAddress = BoundTransportAddress {- publishAddress :: EsAddress- , boundAddress :: [EsAddress]- } deriving (Eq, Show)--data NodeNetworkInfo = NodeNetworkInfo {- nodeNetworkPrimaryInterface :: NodeNetworkInterface- , nodeNetworkRefreshInterval :: NominalDiffTime- } deriving (Eq, Show)--newtype MacAddress = MacAddress { macAddress :: Text }- deriving (Eq, Ord, Show, FromJSON)--newtype NetworkInterfaceName = NetworkInterfaceName { networkInterfaceName :: Text }- deriving (Eq, Ord, Show, FromJSON)--data NodeNetworkInterface = NodeNetworkInterface {- nodeNetIfaceMacAddress :: MacAddress- , nodeNetIfaceName :: NetworkInterfaceName- , nodeNetIfaceAddress :: Server- } deriving (Eq, Show)--data NodeThreadPoolsInfo = NodeThreadPoolsInfo {- nodeThreadPoolsRefresh :: NodeThreadPoolInfo- , nodeThreadPoolsManagement :: NodeThreadPoolInfo- , nodeThreadPoolsPercolate :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsListener :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsFetchShardStarted :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsSearch :: NodeThreadPoolInfo- , nodeThreadPoolsFlush :: NodeThreadPoolInfo- , nodeThreadPoolsWarmer :: NodeThreadPoolInfo- , nodeThreadPoolsOptimize :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsBulk :: NodeThreadPoolInfo- , nodeThreadPoolsSuggest :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsMerge :: NodeThreadPoolInfo- , nodeThreadPoolsSnapshot :: NodeThreadPoolInfo- , nodeThreadPoolsGet :: NodeThreadPoolInfo- , nodeThreadPoolsFetchShardStore :: Maybe NodeThreadPoolInfo- , nodeThreadPoolsIndex :: NodeThreadPoolInfo- , nodeThreadPoolsGeneric :: NodeThreadPoolInfo- } deriving (Eq, Show)--data NodeThreadPoolInfo = NodeThreadPoolInfo {- nodeThreadPoolQueueSize :: ThreadPoolSize- , nodeThreadPoolKeepalive :: Maybe NominalDiffTime- , nodeThreadPoolMin :: Maybe Int- , nodeThreadPoolMax :: Maybe Int- , nodeThreadPoolType :: ThreadPoolType- } deriving (Eq, Show)--data ThreadPoolSize = ThreadPoolBounded Int- | ThreadPoolUnbounded- deriving (Eq, Show)--data ThreadPoolType = ThreadPoolScaling- | ThreadPoolFixed- | ThreadPoolCached- deriving (Eq, Show)--data NodeJVMInfo = NodeJVMInfo {- nodeJVMInfoMemoryPools :: [JVMMemoryPool]- , nodeJVMInfoMemoryPoolsGCCollectors :: [JVMGCCollector]- , nodeJVMInfoMemoryInfo :: JVMMemoryInfo- , nodeJVMInfoStartTime :: UTCTime- , nodeJVMInfoVMVendor :: Text- , nodeJVMVMVersion :: VMVersion- -- ^ JVM doesn't seme to follow normal version conventions- , nodeJVMVMName :: Text- , nodeJVMVersion :: JVMVersion- , nodeJVMPID :: PID- } deriving (Eq, Show)---- | We cannot parse JVM version numbers and we're not going to try.-newtype JVMVersion =- JVMVersion { unJVMVersion :: Text }- deriving (Eq, Show)--instance FromJSON JVMVersion where- parseJSON = withText "JVMVersion" (pure . JVMVersion)--data JVMMemoryInfo = JVMMemoryInfo {- jvmMemoryInfoDirectMax :: Bytes- , jvmMemoryInfoNonHeapMax :: Bytes- , jvmMemoryInfoNonHeapInit :: Bytes- , jvmMemoryInfoHeapMax :: Bytes- , jvmMemoryInfoHeapInit :: Bytes- } deriving (Eq, Show)---- VM version numbers don't appear to be SemVer--- so we're special casing this jawn.-newtype VMVersion =- VMVersion { unVMVersion :: Text }- deriving (Eq, Show)--instance ToJSON VMVersion where- toJSON = toJSON . unVMVersion--instance FromJSON VMVersion where- parseJSON = withText "VMVersion" (pure . VMVersion)--newtype JVMMemoryPool = JVMMemoryPool {- jvmMemoryPool :: Text- } deriving (Eq, Show, FromJSON)--newtype JVMGCCollector = JVMGCCollector {- jvmGCCollector :: Text- } deriving (Eq, Show, FromJSON)--newtype PID = PID {- pid :: Int- } deriving (Eq, Show, FromJSON)--data NodeOSInfo = NodeOSInfo {- nodeOSRefreshInterval :: NominalDiffTime- , nodeOSName :: Text- , nodeOSArch :: Text- , nodeOSVersion :: VersionNumber- , nodeOSAvailableProcessors :: Int- , nodeOSAllocatedProcessors :: Int- } deriving (Eq, Show)--data CPUInfo = CPUInfo {- cpuCacheSize :: Bytes- , cpuCoresPerSocket :: Int- , cpuTotalSockets :: Int- , cpuTotalCores :: Int- , cpuMHZ :: Int- , cpuModel :: Text- , cpuVendor :: Text- } deriving (Eq, Show)--data NodeProcessInfo = NodeProcessInfo {- nodeProcessMLockAll :: Bool- -- ^ See <https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>- , nodeProcessMaxFileDescriptors :: Maybe Int- , nodeProcessId :: PID- , nodeProcessRefreshInterval :: NominalDiffTime- } deriving (Eq, Show)--data ShardResult =- ShardResult { shardTotal :: Int- , shardsSuccessful :: Int- , shardsFailed :: Int } deriving (Eq, Show)--instance FromJSON ShardResult where- parseJSON (Object v) = ShardResult <$>- v .: "total" <*>- v .: "successful" <*>- v .: "failed"- parseJSON _ = empty--data SnapshotState = SnapshotInit- | SnapshotStarted- | SnapshotSuccess- | SnapshotFailed- | SnapshotAborted- | SnapshotMissing- | SnapshotWaiting- deriving (Eq, Show)--instance FromJSON SnapshotState where- parseJSON = withText "SnapshotState" parse- where- parse "INIT" = return SnapshotInit- parse "STARTED" = return SnapshotStarted- parse "SUCCESS" = return SnapshotSuccess- parse "FAILED" = return SnapshotFailed- parse "ABORTED" = return SnapshotAborted- parse "MISSING" = return SnapshotMissing- parse "WAITING" = return SnapshotWaiting- parse t = fail ("Invalid snapshot state " <> T.unpack t)---data SnapshotRestoreSettings = SnapshotRestoreSettings {- snapRestoreWaitForCompletion :: Bool- -- ^ Should the API call return immediately after initializing- -- the restore or wait until completed? Note that if this is- -- enabled, it could wait a long time, so you should adjust your- -- 'ManagerSettings' accordingly to set long timeouts or- -- explicitly handle timeouts.- , snapRestoreIndices :: Maybe IndexSelection- -- ^ Nothing will restore all indices in the snapshot. Just [] is- -- permissable and will essentially be a no-op restore.- , snapRestoreIgnoreUnavailable :: Bool- -- ^ If set to True, any indices that do not exist will be ignored- -- during snapshot rather than failing the restore.- , snapRestoreIncludeGlobalState :: Bool- -- ^ If set to false, will ignore any global state in the snapshot- -- and will not restore it.- , snapRestoreRenamePattern :: Maybe RestoreRenamePattern- -- ^ A regex pattern for matching indices. Used with- -- 'snapRestoreRenameReplacement', the restore can reference the- -- matched index and create a new index name upon restore.- , snapRestoreRenameReplacement :: Maybe (NonEmpty RestoreRenameToken)- -- ^ Expression of how index renames should be constructed.- , snapRestorePartial :: Bool- -- ^ If some indices fail to restore, should the process proceed?- , snapRestoreIncludeAliases :: Bool- -- ^ Should the restore also restore the aliases captured in the- -- snapshot.- , snapRestoreIndexSettingsOverrides :: Maybe RestoreIndexSettings- -- ^ Settings to apply during the restore process. __NOTE:__ This- -- option is not supported in ES < 1.5 and should be set to- -- Nothing in that case.- , snapRestoreIgnoreIndexSettings :: Maybe (NonEmpty Text)- -- ^ This type could be more rich but it isn't clear which- -- settings are allowed to be ignored during restore, so we're- -- going with including this feature in a basic form rather than- -- omitting it. One example here would be- -- "index.refresh_interval". Any setting specified here will- -- revert back to the server default during the restore process.- } deriving (Eq, Show)--newtype SnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings- { repoUpdateVerify :: Bool- -- ^ After creation/update, synchronously check that nodes can- -- write to this repo. Defaults to True. You may use False if you- -- need a faster response and plan on verifying manually later- -- with 'verifySnapshotRepo'.- } deriving (Eq, Show)----- | Reasonable defaults for repo creation/update------ * repoUpdateVerify True-defaultSnapshotRepoUpdateSettings :: SnapshotRepoUpdateSettings-defaultSnapshotRepoUpdateSettings = SnapshotRepoUpdateSettings True----- | A filesystem-based snapshot repo that ships with--- Elasticsearch. This is an instance of 'SnapshotRepo' so it can be--- used with 'updateSnapshotRepo'-data FsSnapshotRepo = FsSnapshotRepo {- fsrName :: SnapshotRepoName- , fsrLocation :: FilePath- , fsrCompressMetadata :: Bool- , fsrChunkSize :: Maybe Bytes- -- ^ Size by which to split large files during snapshotting.- , fsrMaxRestoreBytesPerSec :: Maybe Bytes- -- ^ Throttle node restore rate. If not supplied, defaults to 40mb/sec- , fsrMaxSnapshotBytesPerSec :: Maybe Bytes- -- ^ Throttle node snapshot rate. If not supplied, defaults to 40mb/sec- } deriving (Eq, Show)---instance SnapshotRepo FsSnapshotRepo where- toGSnapshotRepo FsSnapshotRepo {..} =- GenericSnapshotRepo fsrName fsRepoType (GenericSnapshotRepoSettings settings)- where- Object settings = object $ [ "location" .= fsrLocation- , "compress" .= fsrCompressMetadata- ] ++ optionalPairs- optionalPairs = catMaybes [ ("chunk_size" .=) <$> fsrChunkSize- , ("max_restore_bytes_per_sec" .=) <$> fsrMaxRestoreBytesPerSec- , ("max_snapshot_bytes_per_sec" .=) <$> fsrMaxSnapshotBytesPerSec- ]- fromGSnapshotRepo GenericSnapshotRepo {..}- | gSnapshotRepoType == fsRepoType = do- let o = gSnapshotRepoSettingsObject gSnapshotRepoSettings- parseRepo $- FsSnapshotRepo gSnapshotRepoName <$> o .: "location"- <*> o .:? "compress" .!= False- <*> o .:? "chunk_size"- <*> o .:? "max_restore_bytes_per_sec"- <*> o .:? "max_snapshot_bytes_per_sec"- | otherwise = Left (RepoTypeMismatch fsRepoType gSnapshotRepoType)---parseRepo :: Parser a -> Either SnapshotRepoConversionError a-parseRepo parser = case parseEither (const parser) () of- Left e -> Left (OtherRepoConversionError (T.pack e))- Right a -> Right a---fsRepoType :: SnapshotRepoType-fsRepoType = SnapshotRepoType "fs"---- | Law: fromGSnapshotRepo (toGSnapshotRepo r) == Right r-class SnapshotRepo r where- toGSnapshotRepo :: r -> GenericSnapshotRepo- fromGSnapshotRepo :: GenericSnapshotRepo -> Either SnapshotRepoConversionError r---data SnapshotRepoConversionError = RepoTypeMismatch SnapshotRepoType SnapshotRepoType- -- ^ Expected type and actual type- | OtherRepoConversionError Text- deriving (Show, Eq)---instance Exception SnapshotRepoConversionError---data SnapshotCreateSettings = SnapshotCreateSettings {- snapWaitForCompletion :: Bool- -- ^ Should the API call return immediately after initializing- -- the snapshot or wait until completed? Note that if this is- -- enabled it could wait a long time, so you should adjust your- -- 'ManagerSettings' accordingly to set long timeouts or- -- explicitly handle timeouts.- , snapIndices :: Maybe IndexSelection- -- ^ Nothing will snapshot all indices. Just [] is permissable and- -- will essentially be a no-op snapshot.- , snapIgnoreUnavailable :: Bool- -- ^ If set to True, any matched indices that don't exist will be- -- ignored. Otherwise it will be an error and fail.- , snapIncludeGlobalState :: Bool- , snapPartial :: Bool- -- ^ If some indices failed to snapshot (e.g. if not all primary- -- shards are available), should the process proceed?- } deriving (Eq, Show)----- | Reasonable defaults for snapshot creation------ * snapWaitForCompletion False--- * snapIndices Nothing--- * snapIgnoreUnavailable False--- * snapIncludeGlobalState True--- * snapPartial False-defaultSnapshotCreateSettings :: SnapshotCreateSettings-defaultSnapshotCreateSettings = SnapshotCreateSettings {- snapWaitForCompletion = False- , snapIndices = Nothing- , snapIgnoreUnavailable = False- , snapIncludeGlobalState = True- , snapPartial = False- }---data SnapshotSelection =- SnapshotList (NonEmpty SnapshotPattern)- | AllSnapshots- deriving (Eq, Show)----- | Either specifies an exact snapshot name or one with globs in it,--- e.g. @SnapPattern "foo*"@ __NOTE__: Patterns are not supported on--- ES < 1.7-data SnapshotPattern =- ExactSnap SnapshotName- | SnapPattern Text- deriving (Eq, Show)----- | General information about the state of a snapshot. Has some--- redundancies with 'SnapshotStatus'-data SnapshotInfo = SnapshotInfo {- snapInfoShards :: ShardResult- , snapInfoFailures :: [SnapshotShardFailure]- , snapInfoDuration :: NominalDiffTime- , snapInfoEndTime :: UTCTime- , snapInfoStartTime :: UTCTime- , snapInfoState :: SnapshotState- , snapInfoIndices :: [IndexName]- , snapInfoName :: SnapshotName- } deriving (Eq, Show)---instance FromJSON SnapshotInfo where- parseJSON = withObject "SnapshotInfo" parse- where- parse o = SnapshotInfo <$> o .: "shards"- <*> o .: "failures"- <*> (unMS <$> o .: "duration_in_millis")- <*> (posixMS <$> o .: "end_time_in_millis")- <*> (posixMS <$> o .: "start_time_in_millis")- <*> o .: "state"- <*> o .: "indices"- <*> o .: "snapshot"--data SnapshotShardFailure = SnapshotShardFailure {- snapShardFailureIndex :: IndexName- , snapShardFailureNodeId :: Maybe NodeName -- I'm not 100% sure this isn't actually 'FullNodeId'- , snapShardFailureReason :: Text- , snapShardFailureShardId :: ShardId- } deriving (Eq, Show)---instance FromJSON SnapshotShardFailure where- parseJSON = withObject "SnapshotShardFailure" parse- where- parse o = SnapshotShardFailure <$> o .: "index"- <*> o .:? "node_id"- <*> o .: "reason"- <*> o .: "shard_id"---- | Regex-stype pattern, e.g. "index_(.+)" to match index names-newtype RestoreRenamePattern =- RestoreRenamePattern { rrPattern :: Text }- deriving (Eq, Show, Ord, ToJSON)----- | A single token in a index renaming scheme for a restore. These--- are concatenated into a string before being sent to--- Elasticsearch. Check out these Java--- <https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html docs> to find out more if you're into that sort of thing.-data RestoreRenameToken = RRTLit Text- -- ^ Just a literal string of characters- | RRSubWholeMatch- -- ^ Equivalent to $0. The entire matched pattern, not any subgroup- | RRSubGroup RRGroupRefNum- -- ^ A specific reference to a group number- deriving (Eq, Show)----- | A group number for regex matching. Only values from 1-9 are--- supported. Construct with 'mkRRGroupRefNum'-newtype RRGroupRefNum =- RRGroupRefNum { rrGroupRefNum :: Int }- deriving (Eq, Ord, Show)--instance Bounded RRGroupRefNum where- minBound = RRGroupRefNum 1- maxBound = RRGroupRefNum 9----- | Only allows valid group number references (1-9).-mkRRGroupRefNum :: Int -> Maybe RRGroupRefNum-mkRRGroupRefNum i- | i >= rrGroupRefNum minBound- && i <= rrGroupRefNum maxBound =- Just $ RRGroupRefNum i- | otherwise = Nothing---- | Reasonable defaults for snapshot restores------ * snapRestoreWaitForCompletion False--- * snapRestoreIndices Nothing--- * snapRestoreIgnoreUnavailable False--- * snapRestoreIncludeGlobalState True--- * snapRestoreRenamePattern Nothing--- * snapRestoreRenameReplacement Nothing--- * snapRestorePartial False--- * snapRestoreIncludeAliases True--- * snapRestoreIndexSettingsOverrides Nothing--- * snapRestoreIgnoreIndexSettings Nothing-defaultSnapshotRestoreSettings :: SnapshotRestoreSettings-defaultSnapshotRestoreSettings = SnapshotRestoreSettings {- snapRestoreWaitForCompletion = False- , snapRestoreIndices = Nothing- , snapRestoreIgnoreUnavailable = False- , snapRestoreIncludeGlobalState = True- , snapRestoreRenamePattern = Nothing- , snapRestoreRenameReplacement = Nothing- , snapRestorePartial = False- , snapRestoreIncludeAliases = True- , snapRestoreIndexSettingsOverrides = Nothing- , snapRestoreIgnoreIndexSettings = Nothing- }----- | Index settings that can be overridden. The docs only mention you--- can update number of replicas, but there may be more. You--- definitely cannot override shard count.-newtype RestoreIndexSettings = RestoreIndexSettings- { restoreOverrideReplicas :: Maybe ReplicaCount- } deriving (Eq, Show)---instance ToJSON RestoreIndexSettings where- toJSON RestoreIndexSettings {..} = object prs- where- prs = catMaybes [("index.number_of_replicas" .=) <$> restoreOverrideReplicas]---instance FromJSON NodesInfo where- parseJSON = withObject "NodesInfo" parse- where- parse o = do- nodes <- o .: "nodes"- infos <- forM (HM.toList nodes) $ \(fullNID, v) -> do- node <- parseJSON v- parseNodeInfo (FullNodeId fullNID) node- cn <- o .: "cluster_name"- return (NodesInfo infos cn)--instance FromJSON NodesStats where- parseJSON = withObject "NodesStats" parse- where- parse o = do- nodes <- o .: "nodes"- stats <- forM (HM.toList nodes) $ \(fullNID, v) -> do- node <- parseJSON v- parseNodeStats (FullNodeId fullNID) node- cn <- o .: "cluster_name"- return (NodesStats stats cn)--instance FromJSON NodeBreakerStats where- parseJSON = withObject "NodeBreakerStats" parse- where- parse o = NodeBreakerStats <$> o .: "tripped"- <*> o .: "overhead"- <*> o .: "estimated_size_in_bytes"- <*> o .: "limit_size_in_bytes"--instance FromJSON NodeHTTPStats where- parseJSON = withObject "NodeHTTPStats" parse- where- parse o = NodeHTTPStats <$> o .: "total_opened"- <*> o .: "current_open"--instance FromJSON NodeTransportStats where- parseJSON = withObject "NodeTransportStats" parse- where- parse o = NodeTransportStats <$> o .: "tx_size_in_bytes"- <*> o .: "tx_count"- <*> o .: "rx_size_in_bytes"- <*> o .: "rx_count"- <*> o .: "server_open"--instance FromJSON NodeFSStats where- parseJSON = withObject "NodeFSStats" parse- where- parse o = NodeFSStats <$> o .: "data"- <*> o .: "total"- <*> (posixMS <$> o .: "timestamp")--instance FromJSON NodeDataPathStats where- parseJSON = withObject "NodeDataPathStats" parse- where- parse o =- NodeDataPathStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")- <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")- <*> o .:? "disk_io_size_in_bytes"- <*> o .:? "disk_write_size_in_bytes"- <*> o .:? "disk_read_size_in_bytes"- <*> o .:? "disk_io_op"- <*> o .:? "disk_writes"- <*> o .:? "disk_reads"- <*> o .: "available_in_bytes"- <*> o .: "free_in_bytes"- <*> o .: "total_in_bytes"- <*> o .:? "type"- <*> o .:? "dev"- <*> o .: "mount"- <*> o .: "path"--instance FromJSON NodeFSTotalStats where- parseJSON = withObject "NodeFSTotalStats" parse- where- parse o = NodeFSTotalStats <$> (fmap unStringlyTypedDouble <$> o .:? "disk_service_time")- <*> (fmap unStringlyTypedDouble <$> o .:? "disk_queue")- <*> o .:? "disk_io_size_in_bytes"- <*> o .:? "disk_write_size_in_bytes"- <*> o .:? "disk_read_size_in_bytes"- <*> o .:? "disk_io_op"- <*> o .:? "disk_writes"- <*> o .:? "disk_reads"- <*> o .: "available_in_bytes"- <*> o .: "free_in_bytes"- <*> o .: "total_in_bytes"--instance FromJSON NodeNetworkStats where- parseJSON = withObject "NodeNetworkStats" parse- where- parse o = do- tcp <- o .: "tcp"- NodeNetworkStats <$> tcp .: "out_rsts"- <*> tcp .: "in_errs"- <*> tcp .: "attempt_fails"- <*> tcp .: "estab_resets"- <*> tcp .: "retrans_segs"- <*> tcp .: "out_segs"- <*> tcp .: "in_segs"- <*> tcp .: "curr_estab"- <*> tcp .: "passive_opens"- <*> tcp .: "active_opens"--instance FromJSON NodeThreadPoolsStats where- parseJSON = withObject "NodeThreadPoolsStats" parse- where- parse o = NodeThreadPoolsStats <$> o .: "snapshot"- <*> o .: "bulk"- <*> o .: "force_merge"- <*> o .: "get"- <*> o .: "management"- <*> o .:? "fetch_shard_store"- <*> o .:? "optimize"- <*> o .: "flush"- <*> o .: "search"- <*> o .: "warmer"- <*> o .: "generic"- <*> o .:? "suggest"- <*> o .: "refresh"- <*> o .: "index"- <*> o .:? "listener"- <*> o .:? "fetch_shard_started"- <*> o .:? "percolate"-instance FromJSON NodeThreadPoolStats where- parseJSON = withObject "NodeThreadPoolStats" parse- where- parse o = NodeThreadPoolStats <$> o .: "completed"- <*> o .: "largest"- <*> o .: "rejected"- <*> o .: "active"- <*> o .: "queue"- <*> o .: "threads"--instance FromJSON NodeJVMStats where- parseJSON = withObject "NodeJVMStats" parse- where- parse o = do- bufferPools <- o .: "buffer_pools"- mapped <- bufferPools .: "mapped"- direct <- bufferPools .: "direct"- gc <- o .: "gc"- collectors <- gc .: "collectors"- oldC <- collectors .: "old"- youngC <- collectors .: "young"- threads <- o .: "threads"- mem <- o .: "mem"- pools <- mem .: "pools"- oldM <- pools .: "old"- survivorM <- pools .: "survivor"- youngM <- pools .: "young"- NodeJVMStats <$> pure mapped- <*> pure direct- <*> pure oldC- <*> pure youngC- <*> threads .: "peak_count"- <*> threads .: "count"- <*> pure oldM- <*> pure survivorM- <*> pure youngM- <*> mem .: "non_heap_committed_in_bytes"- <*> mem .: "non_heap_used_in_bytes"- <*> mem .: "heap_max_in_bytes"- <*> mem .: "heap_committed_in_bytes"- <*> mem .: "heap_used_percent"- <*> mem .: "heap_used_in_bytes"- <*> (unMS <$> o .: "uptime_in_millis")- <*> (posixMS <$> o .: "timestamp")--instance FromJSON JVMBufferPoolStats where- parseJSON = withObject "JVMBufferPoolStats" parse- where- parse o = JVMBufferPoolStats <$> o .: "total_capacity_in_bytes"- <*> o .: "used_in_bytes"- <*> o .: "count"--instance FromJSON JVMGCStats where- parseJSON = withObject "JVMGCStats" parse- where- parse o = JVMGCStats <$> (unMS <$> o .: "collection_time_in_millis")- <*> o .: "collection_count"--instance FromJSON JVMPoolStats where- parseJSON = withObject "JVMPoolStats" parse- where- parse o = JVMPoolStats <$> o .: "peak_max_in_bytes"- <*> o .: "peak_used_in_bytes"- <*> o .: "max_in_bytes"- <*> o .: "used_in_bytes"--instance FromJSON NodeProcessStats where- parseJSON = withObject "NodeProcessStats" parse- where- parse o = do- mem <- o .: "mem"- cpu <- o .: "cpu"- NodeProcessStats <$> (posixMS <$> o .: "timestamp")- <*> o .: "open_file_descriptors"- <*> o .: "max_file_descriptors"- <*> cpu .: "percent"- <*> (unMS <$> cpu .: "total_in_millis")- <*> mem .: "total_virtual_in_bytes"--instance FromJSON NodeOSStats where- parseJSON = withObject "NodeOSStats" parse- where- parse o = do- swap <- o .: "swap"- mem <- o .: "mem"- cpu <- o .: "cpu"- load <- o .:? "load_average"- NodeOSStats <$> (posixMS <$> o .: "timestamp")- <*> cpu .: "percent"- <*> pure load- <*> mem .: "total_in_bytes"- <*> mem .: "free_in_bytes"- <*> mem .: "free_percent"- <*> mem .: "used_in_bytes"- <*> mem .: "used_percent"- <*> swap .: "total_in_bytes"- <*> swap .: "free_in_bytes"- <*> swap .: "used_in_bytes"--instance FromJSON LoadAvgs where- parseJSON = withArray "LoadAvgs" parse- where- parse v = case V.toList v of- [one, five, fifteen] -> LoadAvgs <$> parseJSON one- <*> parseJSON five- <*> parseJSON fifteen- _ -> fail "Expecting a triple of Doubles"--instance FromJSON NodeIndicesStats where- parseJSON = withObject "NodeIndicesStats" parse- where- parse o = do- let (.::) mv k = case mv of- Just v -> Just <$> v .: k- Nothing -> pure Nothing- mRecovery <- o .:? "recovery"- mQueryCache <- o .:? "query_cache"- mSuggest <- o .:? "suggest"- translog <- o .: "translog"- segments <- o .: "segments"- completion <- o .: "completion"- mPercolate <- o .:? "percolate"- fielddata <- o .: "fielddata"- warmer <- o .: "warmer"- flush <- o .: "flush"- refresh <- o .: "refresh"- merges <- o .: "merges"- search <- o .: "search"- getStats <- o .: "get"- indexing <- o .: "indexing"- store <- o .: "store"- docs <- o .: "docs"- NodeIndicesStats <$> (fmap unMS <$> mRecovery .:: "throttle_time_in_millis")- <*> mRecovery .:: "current_as_target"- <*> mRecovery .:: "current_as_source"- <*> mQueryCache .:: "miss_count"- <*> mQueryCache .:: "hit_count"- <*> mQueryCache .:: "evictions"- <*> mQueryCache .:: "memory_size_in_bytes"- <*> mSuggest .:: "current"- <*> (fmap unMS <$> mSuggest .:: "time_in_millis")- <*> mSuggest .:: "total"- <*> translog .: "size_in_bytes"- <*> translog .: "operations"- <*> segments .:? "fixed_bit_set_memory_in_bytes"- <*> segments .: "version_map_memory_in_bytes"- <*> segments .:? "index_writer_max_memory_in_bytes"- <*> segments .: "index_writer_memory_in_bytes"- <*> segments .: "memory_in_bytes"- <*> segments .: "count"- <*> completion .: "size_in_bytes"- <*> mPercolate .:: "queries"- <*> mPercolate .:: "memory_size_in_bytes"- <*> mPercolate .:: "current"- <*> (fmap unMS <$> mPercolate .:: "time_in_millis")- <*> mPercolate .:: "total"- <*> fielddata .: "evictions"- <*> fielddata .: "memory_size_in_bytes"- <*> (unMS <$> warmer .: "total_time_in_millis")- <*> warmer .: "total"- <*> warmer .: "current"- <*> (unMS <$> flush .: "total_time_in_millis")- <*> flush .: "total"- <*> (unMS <$> refresh .: "total_time_in_millis")- <*> refresh .: "total"- <*> merges .: "total_size_in_bytes"- <*> merges .: "total_docs"- <*> (unMS <$> merges .: "total_time_in_millis")- <*> merges .: "total"- <*> merges .: "current_size_in_bytes"- <*> merges .: "current_docs"- <*> merges .: "current"- <*> search .: "fetch_current"- <*> (unMS <$> search .: "fetch_time_in_millis")- <*> search .: "fetch_total"- <*> search .: "query_current"- <*> (unMS <$> search .: "query_time_in_millis")- <*> search .: "query_total"- <*> search .: "open_contexts"- <*> getStats .: "current"- <*> (unMS <$> getStats .: "missing_time_in_millis")- <*> getStats .: "missing_total"- <*> (unMS <$> getStats .: "exists_time_in_millis")- <*> getStats .: "exists_total"- <*> (unMS <$> getStats .: "time_in_millis")- <*> getStats .: "total"- <*> (fmap unMS <$> indexing .:? "throttle_time_in_millis")- <*> indexing .:? "is_throttled"- <*> indexing .:? "noop_update_total"- <*> indexing .: "delete_current"- <*> (unMS <$> indexing .: "delete_time_in_millis")- <*> indexing .: "delete_total"- <*> indexing .: "index_current"- <*> (unMS <$> indexing .: "index_time_in_millis")- <*> indexing .: "index_total"- <*> (unMS <$> store .: "throttle_time_in_millis")- <*> store .: "size_in_bytes"- <*> docs .: "deleted"- <*> docs .: "count"--instance FromJSON NodeBreakersStats where- parseJSON = withObject "NodeBreakersStats" parse- where- parse o = NodeBreakersStats <$> o .: "parent"- <*> o .: "request"- <*> o .: "fielddata"--parseNodeStats :: FullNodeId -> Object -> Parser NodeStats-parseNodeStats fnid o =- NodeStats <$> o .: "name"- <*> pure fnid- <*> o .:? "breakers"- <*> o .: "http"- <*> o .: "transport"- <*> o .: "fs"- <*> o .:? "network"- <*> o .: "thread_pool"- <*> o .: "jvm"- <*> o .: "process"- <*> o .: "os"- <*> o .: "indices"--parseNodeInfo :: FullNodeId -> Object -> Parser NodeInfo-parseNodeInfo nid o =- NodeInfo <$> o .:? "http_address"- <*> o .: "build_hash"- <*> o .: "version"- <*> o .: "ip"- <*> o .: "host"- <*> o .: "transport_address"- <*> o .: "name"- <*> pure nid- <*> o .: "plugins"- <*> o .: "http"- <*> o .: "transport"- <*> o .:? "network"- <*> o .: "thread_pool"- <*> o .: "jvm"- <*> o .: "process"- <*> o .: "os"- <*> o .: "settings"--instance FromJSON NodePluginInfo where- parseJSON = withObject "NodePluginInfo" parse- where- parse o = NodePluginInfo <$> o .:? "site"- <*> o .:? "jvm"- <*> o .: "description"- <*> o .: "version"- <*> o .: "name"--instance FromJSON NodeHTTPInfo where- parseJSON = withObject "NodeHTTPInfo" parse- where- parse o = NodeHTTPInfo <$> o .: "max_content_length_in_bytes"- <*> parseJSON (Object o)--instance FromJSON BoundTransportAddress where- parseJSON = withObject "BoundTransportAddress" parse- where- parse o = BoundTransportAddress <$> o .: "publish_address"- <*> o .: "bound_address"--instance FromJSON NodeOSInfo where- parseJSON = withObject "NodeOSInfo" parse- where- parse o =- NodeOSInfo <$> (unMS <$> o .: "refresh_interval_in_millis")- <*> o .: "name"- <*> o .: "arch"- <*> o .: "version"- <*> o .: "available_processors"- <*> o .: "allocated_processors"---instance FromJSON CPUInfo where- parseJSON = withObject "CPUInfo" parse- where- parse o = CPUInfo <$> o .: "cache_size_in_bytes"- <*> o .: "cores_per_socket"- <*> o .: "total_sockets"- <*> o .: "total_cores"- <*> o .: "mhz"- <*> o .: "model"- <*> o .: "vendor"--instance FromJSON NodeProcessInfo where- parseJSON = withObject "NodeProcessInfo" parse- where- parse o = NodeProcessInfo <$> o .: "mlockall"- <*> o .:? "max_file_descriptors"- <*> o .: "id"- <*> (unMS <$> o .: "refresh_interval_in_millis")--instance FromJSON NodeJVMInfo where- parseJSON = withObject "NodeJVMInfo" parse- where- parse o = NodeJVMInfo <$> o .: "memory_pools"- <*> o .: "gc_collectors"- <*> o .: "mem"- <*> (posixMS <$> o .: "start_time_in_millis")- <*> o .: "vm_vendor"- <*> o .: "vm_version"- <*> o .: "vm_name"- <*> o .: "version"- <*> o .: "pid"--instance FromJSON JVMMemoryInfo where- parseJSON = withObject "JVMMemoryInfo" parse- where- parse o = JVMMemoryInfo <$> o .: "direct_max_in_bytes"- <*> o .: "non_heap_max_in_bytes"- <*> o .: "non_heap_init_in_bytes"- <*> o .: "heap_max_in_bytes"- <*> o .: "heap_init_in_bytes"--instance FromJSON NodeThreadPoolsInfo where- parseJSON = withObject "NodeThreadPoolsInfo" parse- where- parse o = NodeThreadPoolsInfo <$> o .: "refresh"- <*> o .: "management"- <*> o .:? "percolate"- <*> o .:? "listener"- <*> o .:? "fetch_shard_started"- <*> o .: "search"- <*> o .: "flush"- <*> o .: "warmer"- <*> o .:? "optimize"- <*> o .: "bulk"- <*> o .:? "suggest"- <*> o .: "force_merge"- <*> o .: "snapshot"- <*> o .: "get"- <*> o .:? "fetch_shard_store"- <*> o .: "index"- <*> o .: "generic"--instance FromJSON NodeThreadPoolInfo where- parseJSON = withObject "NodeThreadPoolInfo" parse- where- parse o = do- ka <- maybe (return Nothing) (fmap Just . parseStringInterval) =<< o .:? "keep_alive"- NodeThreadPoolInfo <$> (parseJSON . unStringlyTypeJSON =<< o .: "queue_size")- <*> pure ka- <*> o .:? "min"- <*> o .:? "max"- <*> o .: "type"--data TimeInterval = Weeks- | Days- | Hours- | Minutes- | Seconds deriving Eq--instance Show TimeInterval where- show Weeks = "w"- show Days = "d"- show Hours = "h"- show Minutes = "m"- show Seconds = "s"--instance Read TimeInterval where- readPrec = f =<< TR.get- where- f 'w' = return Weeks- f 'd' = return Days- f 'h' = return Hours- f 'm' = return Minutes- f 's' = return Seconds- f _ = fail "TimeInterval expected one of w, d, h, m, s"--data Interval = Year- | Quarter- | Month- | Week- | Day- | Hour- | Minute- | Second deriving (Eq, Show)--instance ToJSON Interval where- toJSON Year = "year"- toJSON Quarter = "quarter"- toJSON Month = "month"- toJSON Week = "week"- toJSON Day = "day"- toJSON Hour = "hour"- toJSON Minute = "minute"- toJSON Second = "second"--parseStringInterval :: (Monad m) => String -> m NominalDiffTime-parseStringInterval s = case span isNumber s of- ("", _) -> fail "Invalid interval"- (nS, unitS) -> case (readMay nS, readMay unitS) of- (Just n, Just unit) -> return (fromInteger (n * unitNDT unit))- (Nothing, _) -> fail "Invalid interval number"- (_, Nothing) -> fail "Invalid interval unit"- where- unitNDT Seconds = 1- unitNDT Minutes = 60- unitNDT Hours = 60 * 60- unitNDT Days = 24 * 60 * 60- unitNDT Weeks = 7 * 24 * 60 * 60--instance FromJSON ThreadPoolSize where- parseJSON v = parseAsNumber v <|> parseAsString v- where- parseAsNumber = parseAsInt <=< parseJSON- parseAsInt (-1) = return ThreadPoolUnbounded- parseAsInt n- | n >= 0 = return (ThreadPoolBounded n)- | otherwise = fail "Thread pool size must be >= -1."- parseAsString = withText "ThreadPoolSize" $ \t ->- case first (readMay . T.unpack) (T.span isNumber t) of- (Just n, "k") -> return (ThreadPoolBounded (n * 1000))- (Just n, "") -> return (ThreadPoolBounded n)- _ -> fail ("Invalid thread pool size " <> T.unpack t)--instance FromJSON ThreadPoolType where- parseJSON = withText "ThreadPoolType" parse- where- parse "scaling" = return ThreadPoolScaling- parse "fixed" = return ThreadPoolFixed- parse "cached" = return ThreadPoolCached- parse e = fail ("Unexpected thread pool type" <> T.unpack e)--instance FromJSON NodeTransportInfo where- parseJSON = withObject "NodeTransportInfo" parse- where- parse o = NodeTransportInfo <$> (maybe (return mempty) parseProfiles =<< o .:? "profiles")- <*> parseJSON (Object o)- parseProfiles (Object o) | HM.null o = return []- parseProfiles v@(Array _) = parseJSON v- parseProfiles Null = return []- parseProfiles _ = fail "Could not parse profiles"--instance FromJSON NodeNetworkInfo where- parseJSON = withObject "NodeNetworkInfo" parse- where- parse o = NodeNetworkInfo <$> o .: "primary_interface"- <*> (unMS <$> o .: "refresh_interval_in_millis")---instance FromJSON NodeNetworkInterface where- parseJSON = withObject "NodeNetworkInterface" parse- where- parse o = NodeNetworkInterface <$> o .: "mac_address"- <*> o .: "name"- <*> o .: "address"---instance ToJSON Version where- toJSON Version {..} = object ["number" .= number- ,"build_hash" .= build_hash- ,"build_date" .= build_date- ,"build_snapshot" .= build_snapshot- ,"lucene_version" .= lucene_version]--instance FromJSON Version where- parseJSON = withObject "Version" parse- where parse o = Version- <$> o .: "number"- <*> o .: "build_hash"- <*> o .: "build_date"- <*> o .: "build_snapshot"- <*> o .: "lucene_version"--instance ToJSON VersionNumber where- toJSON = toJSON . SemVer.toText . versionNumber--instance FromJSON VersionNumber where- parseJSON = withText "VersionNumber" parse- where- parse t =- case SemVer.fromText t of- (Left err) -> fail err- (Right v) -> return (VersionNumber v)
− src/Database/V5/Bloodhound/Internal/Highlight.hs
@@ -1,164 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}--module Database.V5.Bloodhound.Internal.Highlight where--import Bloodhound.Import--import qualified Data.Map.Strict as M--import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query--type HitHighlight = M.Map Text [Text]--data Highlights = Highlights- { globalsettings :: Maybe HighlightSettings- , highlightFields :: [FieldHighlight]- } deriving (Eq, Show)--instance ToJSON Highlights where- toJSON (Highlights global fields) =- omitNulls (("fields" .= fields)- : highlightSettingsPairs global)--data FieldHighlight =- FieldHighlight FieldName (Maybe HighlightSettings)- deriving (Eq, Show)---instance ToJSON FieldHighlight where- toJSON (FieldHighlight (FieldName fName) (Just fSettings)) =- object [ fName .= fSettings ]- toJSON (FieldHighlight (FieldName fName) Nothing) =- object [ fName .= emptyObject ]--data HighlightSettings =- Plain PlainHighlight- | Postings PostingsHighlight- | FastVector FastVectorHighlight- deriving (Eq, Show)---instance ToJSON HighlightSettings where- toJSON hs = omitNulls (highlightSettingsPairs (Just hs))--data PlainHighlight =- PlainHighlight { plainCommon :: Maybe CommonHighlight- , plainNonPost :: Maybe NonPostings }- deriving (Eq, Show)-- -- This requires that index_options are set to 'offset' in the mapping.-data PostingsHighlight =- PostingsHighlight (Maybe CommonHighlight)- deriving (Eq, Show)---- This requires that term_vector is set to 'with_positions_offsets' in the mapping.-data FastVectorHighlight = FastVectorHighlight- { fvCommon :: Maybe CommonHighlight- , fvNonPostSettings :: Maybe NonPostings- , boundaryChars :: Maybe Text- , boundaryMaxScan :: Maybe Int- , fragmentOffset :: Maybe Int- , matchedFields :: [Text]- , phraseLimit :: Maybe Int- } deriving (Eq, Show)--data CommonHighlight = CommonHighlight- { order :: Maybe Text- , forceSource :: Maybe Bool- , tag :: Maybe HighlightTag- , encoder :: Maybe HighlightEncoder- , noMatchSize :: Maybe Int- , highlightQuery :: Maybe Query- , requireFieldMatch :: Maybe Bool- } deriving (Eq, Show)---- Settings that are only applicable to FastVector and Plain highlighters.-data NonPostings =- NonPostings { fragmentSize :: Maybe Int- , numberOfFragments :: Maybe Int- } deriving (Eq, Show)--data HighlightEncoder = DefaultEncoder- | HTMLEncoder- deriving (Eq, Show)--instance ToJSON HighlightEncoder where- toJSON DefaultEncoder = String "default"- toJSON HTMLEncoder = String "html"---- NOTE: Should the tags use some kind of HTML type, rather than Text?-data HighlightTag =- TagSchema Text- -- Only uses more than the first value in the lists if fvh- | CustomTags ([Text], [Text]) - deriving (Eq, Show)--highlightSettingsPairs :: Maybe HighlightSettings -> [Pair]-highlightSettingsPairs Nothing = []-highlightSettingsPairs (Just (Plain plh)) = plainHighPairs (Just plh)-highlightSettingsPairs (Just (Postings ph)) = postHighPairs (Just ph)-highlightSettingsPairs (Just (FastVector fvh)) = fastVectorHighPairs (Just fvh)---plainHighPairs :: Maybe PlainHighlight -> [Pair]-plainHighPairs Nothing = []-plainHighPairs (Just (PlainHighlight plCom plNonPost)) =- [ "type" .= String "plain"]- ++ commonHighlightPairs plCom- ++ nonPostingsToPairs plNonPost--postHighPairs :: Maybe PostingsHighlight -> [Pair]-postHighPairs Nothing = []-postHighPairs (Just (PostingsHighlight pCom)) =- ("type" .= String "postings")- : commonHighlightPairs pCom--fastVectorHighPairs :: Maybe FastVectorHighlight -> [Pair]-fastVectorHighPairs Nothing = []-fastVectorHighPairs- (Just- (FastVectorHighlight fvCom fvNonPostSettings' fvBoundChars- fvBoundMaxScan fvFragOff fvMatchedFields- fvPhraseLim)) =- [ "type" .= String "fvh"- , "boundary_chars" .= fvBoundChars- , "boundary_max_scan" .= fvBoundMaxScan- , "fragment_offset" .= fvFragOff- , "matched_fields" .= fvMatchedFields- , "phraseLimit" .= fvPhraseLim]- ++ commonHighlightPairs fvCom- ++ nonPostingsToPairs fvNonPostSettings'--commonHighlightPairs :: Maybe CommonHighlight -> [Pair]-commonHighlightPairs Nothing = []-commonHighlightPairs (Just (CommonHighlight chScore chForceSource- chTag chEncoder chNoMatchSize- chHighlightQuery chRequireFieldMatch)) =- [ "order" .= chScore- , "force_source" .= chForceSource- , "encoder" .= chEncoder- , "no_match_size" .= chNoMatchSize- , "highlight_query" .= chHighlightQuery- , "require_fieldMatch" .= chRequireFieldMatch- ]- ++ highlightTagToPairs chTag---nonPostingsToPairs :: Maybe NonPostings -> [Pair]-nonPostingsToPairs Nothing = []-nonPostingsToPairs (Just (NonPostings npFragSize npNumOfFrags)) =- [ "fragment_size" .= npFragSize- , "number_of_fragments" .= npNumOfFrags- ]--highlightTagToPairs :: Maybe HighlightTag -> [Pair]-highlightTagToPairs (Just (TagSchema _)) =- [ "scheme" .= String "default"- ]-highlightTagToPairs (Just (CustomTags (pre, post))) =- [ "pre_tags" .= pre- , "post_tags" .= post- ]-highlightTagToPairs Nothing = []
− src/Database/V5/Bloodhound/Internal/Newtypes.hs
@@ -1,239 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}--module Database.V5.Bloodhound.Internal.Newtypes where--import Bloodhound.Import--import qualified Data.Map.Strict as M--newtype From = From Int deriving (Eq, Show, ToJSON)-newtype Size = Size Int deriving (Eq, Show, ToJSON, FromJSON)---- Used with scripts-newtype HitFields =- HitFields (M.Map Text [Value])- deriving (Eq, Show)--instance FromJSON HitFields where- parseJSON x- = HitFields <$> parseJSON x---- Slight misnomer.-type Score = Maybe Double--{-| 'MappingName' is part of mappings which are how ES describes and schematizes- the data in the indices.--}-newtype MappingName =- MappingName Text- deriving (Eq, Show, ToJSON, FromJSON)--newtype ShardId = ShardId { shardId :: Int }- deriving (Eq, Show, FromJSON)--{-| 'DocId' is a generic wrapper value for expressing unique Document IDs.- Can be set by the user or created by ES itself. Often used in client- functions for poking at specific documents.--}-newtype DocId =- DocId Text- deriving (Eq, Show, ToJSON, FromJSON)--{-| 'FieldName' is used all over the place wherever a specific field within- a document needs to be specified, usually in 'Query's or 'Filter's.--}-newtype FieldName =- FieldName Text- deriving (Eq, Read, Show, ToJSON, FromJSON)--newtype TypeName =- TypeName Text- deriving (Eq, Show, ToJSON, FromJSON)--{-| 'QueryString' is used to wrap query text bodies, be they human written or not.--}-newtype QueryString =- QueryString Text- deriving (Eq, Show, ToJSON, FromJSON)----- {-| 'Script' is often used in place of 'FieldName' to specify more--- complex ways of extracting a value from a document.--- -}--- newtype Script =--- Script { scriptText :: Text }--- deriving (Eq, Show)--{-| 'CacheName' is used in 'RegexpFilter' for describing the- 'CacheKey' keyed caching behavior.--}-newtype CacheName =- CacheName Text- deriving (Eq, Show, FromJSON, ToJSON)--{-| 'CacheKey' is used in 'RegexpFilter' to key regex caching.--}-newtype CacheKey =- CacheKey Text deriving (Eq, Show, FromJSON, ToJSON)-newtype Existence =- Existence Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype NullValue =- NullValue Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype CutoffFrequency =- CutoffFrequency Double deriving (Eq, Show, FromJSON, ToJSON)-newtype Analyzer =- Analyzer Text deriving (Eq, Show, FromJSON, ToJSON)-newtype MaxExpansions =- MaxExpansions Int deriving (Eq, Show, FromJSON, ToJSON)--{-| 'Lenient', if set to true, will cause format based failures to be- ignored. I don't know what the bloody default is, Elasticsearch- documentation didn't say what it was. Let me know if you figure it out.--}-newtype Lenient =- Lenient Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype Tiebreaker =- Tiebreaker Double deriving (Eq, Show, FromJSON, ToJSON)--{-| 'MinimumMatch' controls how many should clauses in the bool query should- match. Can be an absolute value (2) or a percentage (30%) or a- combination of both.--}-newtype MinimumMatch =- MinimumMatch Int deriving (Eq, Show, FromJSON, ToJSON)-newtype DisableCoord =- DisableCoord Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype IgnoreTermFrequency =- IgnoreTermFrequency Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype MinimumTermFrequency =- MinimumTermFrequency Int deriving (Eq, Show, FromJSON, ToJSON)-newtype MaxQueryTerms =- MaxQueryTerms Int deriving (Eq, Show, FromJSON, ToJSON)-newtype Fuzziness =- Fuzziness Double deriving (Eq, Show, FromJSON, ToJSON)--{-| 'PrefixLength' is the prefix length used in queries, defaults to 0. -}-newtype PrefixLength =- PrefixLength Int deriving (Eq, Show, FromJSON, ToJSON)-newtype PercentMatch =- PercentMatch Double deriving (Eq, Show, FromJSON, ToJSON)-newtype StopWord =- StopWord Text deriving (Eq, Show, FromJSON, ToJSON)-newtype QueryPath =- QueryPath Text deriving (Eq, Show, FromJSON, ToJSON)--{-| Allowing a wildcard at the beginning of a word (eg "*ing") is particularly- heavy, because all terms in the index need to be examined, just in case- they match. Leading wildcards can be disabled by setting- 'AllowLeadingWildcard' to false. -}-newtype AllowLeadingWildcard =- AllowLeadingWildcard Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype LowercaseExpanded =- LowercaseExpanded Bool deriving (Eq, Show, FromJSON, ToJSON)-newtype EnablePositionIncrements =- EnablePositionIncrements Bool deriving (Eq, Show, FromJSON, ToJSON)--{-| By default, wildcard terms in a query are not analyzed.- Setting 'AnalyzeWildcard' to true enables best-effort analysis.--}-newtype AnalyzeWildcard = AnalyzeWildcard Bool deriving (Eq, Show, FromJSON, ToJSON)--{-| 'GeneratePhraseQueries' defaults to false.--}-newtype GeneratePhraseQueries =- GeneratePhraseQueries Bool deriving (Eq, Show, FromJSON, ToJSON)--{-| 'Locale' is used for string conversions - defaults to ROOT.--}-newtype Locale = Locale Text deriving (Eq, Show, FromJSON, ToJSON)-newtype MaxWordLength = MaxWordLength Int deriving (Eq, Show, FromJSON, ToJSON)-newtype MinWordLength = MinWordLength Int deriving (Eq, Show, FromJSON, ToJSON)--{-| 'PhraseSlop' sets the default slop for phrases, 0 means exact- phrase matches. Default is 0.--}-newtype PhraseSlop = PhraseSlop Int deriving (Eq, Show, FromJSON, ToJSON)-newtype MinDocFrequency = MinDocFrequency Int deriving (Eq, Show, FromJSON, ToJSON)-newtype MaxDocFrequency = MaxDocFrequency Int deriving (Eq, Show, FromJSON, ToJSON)---- | Newtype wrapper to parse ES's concerning tendency to in some APIs return a floating point number of milliseconds since epoch ಠ_ಠ-newtype POSIXMS = POSIXMS { posixMS :: UTCTime }--instance FromJSON POSIXMS where- parseJSON = withScientific "POSIXMS" (return . parse)- where parse n =- let n' = truncate n :: Integer- in POSIXMS (posixSecondsToUTCTime (fromInteger (n' `div` 1000)))--newtype Boost =- Boost Double- deriving (Eq, Show, ToJSON, FromJSON)--newtype BoostTerms =- BoostTerms Double- deriving (Eq, Show, ToJSON, FromJSON)--{-| 'ReplicaCount' is part of 'IndexSettings' -}-newtype ReplicaCount =- ReplicaCount Int- deriving (Eq, Show, ToJSON)--{-| 'ShardCount' is part of 'IndexSettings' -}-newtype ShardCount =- ShardCount Int- deriving (Eq, Show, ToJSON)---- This insanity is because ES *sometimes* returns Replica/Shard counts as strings-instance FromJSON ReplicaCount where- parseJSON v = parseAsInt v- <|> parseAsString v- where parseAsInt = fmap ReplicaCount . parseJSON- parseAsString = withText "ReplicaCount" (fmap ReplicaCount . parseReadText)--instance FromJSON ShardCount where- parseJSON v = parseAsInt v- <|> parseAsString v- where parseAsInt = fmap ShardCount . parseJSON- parseAsString = withText "ShardCount" (fmap ShardCount . parseReadText)--{-| 'IndexName' is used to describe which index to query/create/delete -}-newtype IndexName =- IndexName Text- deriving (Eq, Show, ToJSON, FromJSON)--newtype IndexAliasName =- IndexAliasName { indexAliasName :: IndexName }- deriving (Eq, Show, ToJSON)--newtype MaybeNA a = MaybeNA { unMaybeNA :: Maybe a }- deriving (Show, Eq)--instance FromJSON a => FromJSON (MaybeNA a) where- parseJSON (String "NA") = pure $ MaybeNA Nothing- parseJSON o = MaybeNA . Just <$> parseJSON o--newtype SnapshotName =- SnapshotName { snapshotName :: Text }- deriving (Eq, Show, ToJSON, FromJSON)---- | Milliseconds-newtype MS = MS NominalDiffTime---- keeps the unexported constructor warnings at bay-unMS :: MS -> NominalDiffTime-unMS (MS t) = t---instance FromJSON MS where- parseJSON = withScientific "MS" (return . MS . parse)- where- parse n = fromInteger (truncate n * 1000)--newtype TokenFilter =- TokenFilter Text- deriving (Eq, Show, FromJSON, ToJSON)--newtype CharFilter =- CharFilter Text- deriving (Eq, Show, FromJSON, ToJSON)
− src/Database/V5/Bloodhound/Internal/Query.hs
@@ -1,1623 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V5.Bloodhound.Internal.Query- ( module X- , module Database.V5.Bloodhound.Internal.Query- ) where--import Bloodhound.Import--import Data.Char (isNumber)-import qualified Data.HashMap.Strict as HM-import Data.List (nub)-import qualified Data.Text as T--import Database.Bloodhound.Common.Script as X-import Database.V5.Bloodhound.Internal.Newtypes--data Query =- TermQuery Term (Maybe Boost)- | TermsQuery Text (NonEmpty Text)- | QueryMatchQuery MatchQuery- | QueryMultiMatchQuery MultiMatchQuery- | QueryBoolQuery BoolQuery- | QueryBoostingQuery BoostingQuery- | QueryCommonTermsQuery CommonTermsQuery- | ConstantScoreQuery Query Boost- | QueryFunctionScoreQuery FunctionScoreQuery- | QueryDisMaxQuery DisMaxQuery- | QueryFuzzyLikeThisQuery FuzzyLikeThisQuery- | QueryFuzzyLikeFieldQuery FuzzyLikeFieldQuery- | QueryFuzzyQuery FuzzyQuery- | QueryHasChildQuery HasChildQuery- | QueryHasParentQuery HasParentQuery- | IdsQuery MappingName [DocId]- | QueryIndicesQuery IndicesQuery- | MatchAllQuery (Maybe Boost)- | QueryMoreLikeThisQuery MoreLikeThisQuery- | QueryMoreLikeThisFieldQuery MoreLikeThisFieldQuery- | QueryNestedQuery NestedQuery- | QueryPrefixQuery PrefixQuery- | QueryQueryStringQuery QueryStringQuery- | QuerySimpleQueryStringQuery SimpleQueryStringQuery- | QueryRangeQuery RangeQuery- | QueryRegexpQuery RegexpQuery- | QueryExistsQuery FieldName- | QueryTemplateQueryInline TemplateQueryInline- | QueryMatchNoneQuery- | QueryWildcardQuery WildcardQuery- deriving (Eq, Show)--instance ToJSON Query where- toJSON (TermQuery (Term termQueryField termQueryValue) boost) =- object [ "term" .=- object [termQueryField .= object merged]]- where- base = [ "value" .= termQueryValue ]- boosted = maybe [] (return . ("boost" .=)) boost- merged = mappend base boosted-- toJSON (TermsQuery fieldName terms) =- object [ "terms" .= object conjoined ]- where conjoined = [fieldName .= terms]-- toJSON (IdsQuery idsQueryMappingName docIds) =- object [ "ids" .= object conjoined ]- where conjoined = [ "type" .= idsQueryMappingName- , "values" .= fmap toJSON docIds ]-- toJSON (QueryQueryStringQuery qQueryStringQuery) =- object [ "query_string" .= qQueryStringQuery ]-- toJSON (QueryMatchQuery matchQuery) =- object [ "match" .= matchQuery ]-- toJSON (QueryMultiMatchQuery multiMatchQuery) =- toJSON multiMatchQuery-- toJSON (QueryBoolQuery boolQuery) =- object [ "bool" .= boolQuery ]-- toJSON (QueryBoostingQuery boostingQuery) =- object [ "boosting" .= boostingQuery ]-- toJSON (QueryCommonTermsQuery commonTermsQuery) =- object [ "common" .= commonTermsQuery ]-- toJSON (ConstantScoreQuery query boost) =- object ["constant_score" .= object ["query" .= query- , "boost" .= boost]]-- toJSON (QueryFunctionScoreQuery functionScoreQuery) =- object [ "function_score" .= functionScoreQuery ]-- toJSON (QueryDisMaxQuery disMaxQuery) =- object [ "dis_max" .= disMaxQuery ]-- toJSON (QueryFuzzyLikeThisQuery fuzzyQuery) =- object [ "fuzzy_like_this" .= fuzzyQuery ]-- toJSON (QueryFuzzyLikeFieldQuery fuzzyFieldQuery) =- object [ "fuzzy_like_this_field" .= fuzzyFieldQuery ]-- toJSON (QueryFuzzyQuery fuzzyQuery) =- object [ "fuzzy" .= fuzzyQuery ]-- toJSON (QueryHasChildQuery childQuery) =- object [ "has_child" .= childQuery ]-- toJSON (QueryHasParentQuery parentQuery) =- object [ "has_parent" .= parentQuery ]-- toJSON (QueryIndicesQuery qIndicesQuery) =- object [ "indices" .= qIndicesQuery ]-- toJSON (MatchAllQuery boost) =- object [ "match_all" .= omitNulls [ "boost" .= boost ] ]-- toJSON (QueryMoreLikeThisQuery query) =- object [ "more_like_this" .= query ]-- toJSON (QueryMoreLikeThisFieldQuery query) =- object [ "more_like_this_field" .= query ]-- toJSON (QueryNestedQuery query) =- object [ "nested" .= query ]-- toJSON (QueryPrefixQuery query) =- object [ "prefix" .= query ]-- toJSON (QueryRangeQuery query) =- object [ "range" .= query ]-- toJSON (QueryRegexpQuery query) =- object [ "regexp" .= query ]-- toJSON (QuerySimpleQueryStringQuery query) =- object [ "simple_query_string" .= query ]-- toJSON (QueryExistsQuery (FieldName fieldName)) =- object ["exists" .= object- ["field" .= fieldName]- ]- toJSON QueryMatchNoneQuery =- object ["match_none" .= object []]-- toJSON (QueryTemplateQueryInline templateQuery) =- object [ "template" .= templateQuery ]-- toJSON (QueryWildcardQuery query) =- object [ "wildcard" .= query ]--instance FromJSON Query where- parseJSON v = withObject "Query" parse v- where parse o = termQuery `taggedWith` "term"- <|> termsQuery `taggedWith` "terms"- <|> idsQuery `taggedWith` "ids"- <|> queryQueryStringQuery `taggedWith` "query_string"- <|> queryMatchQuery `taggedWith` "match"- <|> queryMultiMatchQuery- <|> queryBoolQuery `taggedWith` "bool"- <|> queryBoostingQuery `taggedWith` "boosting"- <|> queryCommonTermsQuery `taggedWith` "common"- <|> constantScoreQuery `taggedWith` "constant_score"- <|> queryFunctionScoreQuery `taggedWith` "function_score"- <|> queryDisMaxQuery `taggedWith` "dis_max"- <|> queryFuzzyLikeThisQuery `taggedWith` "fuzzy_like_this"- <|> queryFuzzyLikeFieldQuery `taggedWith` "fuzzy_like_this_field"- <|> queryFuzzyQuery `taggedWith` "fuzzy"- <|> queryHasChildQuery `taggedWith` "has_child"- <|> queryHasParentQuery `taggedWith` "has_parent"- <|> queryIndicesQuery `taggedWith` "indices"- <|> matchAllQuery `taggedWith` "match_all"- <|> queryMoreLikeThisQuery `taggedWith` "more_like_this"- <|> queryMoreLikeThisFieldQuery `taggedWith` "more_like_this_field"- <|> queryNestedQuery `taggedWith` "nested"- <|> queryPrefixQuery `taggedWith` "prefix"- <|> queryRangeQuery `taggedWith` "range"- <|> queryRegexpQuery `taggedWith` "regexp"- <|> querySimpleQueryStringQuery `taggedWith` "simple_query_string"- <|> queryTemplateQueryInline `taggedWith` "template"- <|> queryWildcardQuery `taggedWith` "wildcard"- where taggedWith parser k = parser =<< o .: k- termQuery = fieldTagged $ \(FieldName fn) o ->- TermQuery <$> (Term fn <$> o .: "value") <*> o .:? "boost"- termsQuery o = case HM.toList o of- [(fn, vs)] -> do vals <- parseJSON vs- case vals of- x:xs -> return (TermsQuery fn (x :| xs))- _ -> fail "Expected non empty list of values"- _ -> fail "Expected object with 1 field-named key"- idsQuery o = IdsQuery <$> o .: "type"- <*> o .: "values"- queryQueryStringQuery = pure . QueryQueryStringQuery- queryMatchQuery = pure . QueryMatchQuery- queryMultiMatchQuery = QueryMultiMatchQuery <$> parseJSON v- queryBoolQuery = pure . QueryBoolQuery- queryBoostingQuery = pure . QueryBoostingQuery- queryCommonTermsQuery = pure . QueryCommonTermsQuery- constantScoreQuery o = case HM.lookup "query" o of- Just x -> ConstantScoreQuery <$> parseJSON x- <*> o .: "boost"- _ -> fail "Does not appear to be a ConstantScoreQuery"- queryFunctionScoreQuery = pure . QueryFunctionScoreQuery- queryDisMaxQuery = pure . QueryDisMaxQuery- queryFuzzyLikeThisQuery = pure . QueryFuzzyLikeThisQuery- queryFuzzyLikeFieldQuery = pure . QueryFuzzyLikeFieldQuery- queryFuzzyQuery = pure . QueryFuzzyQuery- queryHasChildQuery = pure . QueryHasChildQuery- queryHasParentQuery = pure . QueryHasParentQuery- queryIndicesQuery = pure . QueryIndicesQuery- matchAllQuery o = MatchAllQuery <$> o .:? "boost"- queryMoreLikeThisQuery = pure . QueryMoreLikeThisQuery- queryMoreLikeThisFieldQuery = pure . QueryMoreLikeThisFieldQuery- queryNestedQuery = pure . QueryNestedQuery- queryPrefixQuery = pure . QueryPrefixQuery- queryRangeQuery = pure . QueryRangeQuery- queryRegexpQuery = pure . QueryRegexpQuery- querySimpleQueryStringQuery = pure . QuerySimpleQueryStringQuery- -- queryExistsQuery o = QueryExistsQuery <$> o .: "field"- queryTemplateQueryInline = pure . QueryTemplateQueryInline- queryWildcardQuery = pure . QueryWildcardQuery---- | As of Elastic 2.0, 'Filters' are just 'Queries' housed in a--- Bool Query, and flagged in a different context.-newtype Filter = Filter { unFilter :: Query }- deriving (Eq, Show)--instance ToJSON Filter where- toJSON = toJSON . unFilter--instance FromJSON Filter where- parseJSON v = Filter <$> parseJSON v--data RegexpQuery =- RegexpQuery { regexpQueryField :: FieldName- , regexpQuery :: Regexp- , regexpQueryFlags :: RegexpFlags- , regexpQueryBoost :: Maybe Boost- } deriving (Eq, Show)--instance ToJSON RegexpQuery where- toJSON (RegexpQuery (FieldName rqQueryField)- (Regexp regexpQueryQuery) rqQueryFlags- rqQueryBoost) =- object [ rqQueryField .= omitNulls base ]- where base = [ "value" .= regexpQueryQuery- , "flags" .= rqQueryFlags- , "boost" .= rqQueryBoost ]--instance FromJSON RegexpQuery where- parseJSON = withObject "RegexpQuery" parse- where parse = fieldTagged $ \fn o ->- RegexpQuery fn- <$> o .: "value"- <*> o .: "flags"- <*> o .:? "boost"--data WildcardQuery =- WildcardQuery { wildcardQueryField :: FieldName- , wildcardQuery :: Text- , wildcardQueryBoost :: Maybe Boost- } deriving (Eq, Show)--instance ToJSON WildcardQuery where- toJSON (WildcardQuery (FieldName wcQueryField)- (wcQueryQuery) wcQueryBoost) =- object [ wcQueryField .= omitNulls base ]- where base = [ "value" .= wcQueryQuery- , "boost" .= wcQueryBoost ]--instance FromJSON WildcardQuery where- parseJSON = withObject "WildcardQuery" parse- where parse = fieldTagged $ \fn o ->- WildcardQuery fn- <$> o .: "value"- <*> o .:? "boost"--data RangeQuery =- RangeQuery { rangeQueryField :: FieldName- , rangeQueryRange :: RangeValue- , rangeQueryBoost :: Boost } deriving (Eq, Show)--instance ToJSON RangeQuery where- toJSON (RangeQuery (FieldName fieldName) range boost) =- object [ fieldName .= object conjoined ]- where- conjoined = ("boost" .= boost) : rangeValueToPair range--instance FromJSON RangeQuery where- parseJSON = withObject "RangeQuery" parse- where parse = fieldTagged $ \fn o ->- RangeQuery fn- <$> parseJSON (Object o)- <*> o .: "boost"--mkRangeQuery :: FieldName -> RangeValue -> RangeQuery-mkRangeQuery f r = RangeQuery f r (Boost 1.0)--data SimpleQueryStringQuery =- SimpleQueryStringQuery- { simpleQueryStringQuery :: QueryString- , simpleQueryStringField :: Maybe FieldOrFields- , simpleQueryStringOperator :: Maybe BooleanOperator- , simpleQueryStringAnalyzer :: Maybe Analyzer- , simpleQueryStringFlags :: Maybe (NonEmpty SimpleQueryFlag)- , simpleQueryStringLowercaseExpanded :: Maybe LowercaseExpanded- , simpleQueryStringLocale :: Maybe Locale- } deriving (Eq, Show)---instance ToJSON SimpleQueryStringQuery where- toJSON SimpleQueryStringQuery {..} =- omitNulls (base ++ maybeAdd)- where base = [ "query" .= simpleQueryStringQuery ]- maybeAdd = [ "fields" .= simpleQueryStringField- , "default_operator" .= simpleQueryStringOperator- , "analyzer" .= simpleQueryStringAnalyzer- , "flags" .= simpleQueryStringFlags- , "lowercase_expanded_terms" .= simpleQueryStringLowercaseExpanded- , "locale" .= simpleQueryStringLocale ]--instance FromJSON SimpleQueryStringQuery where- parseJSON = withObject "SimpleQueryStringQuery" parse- where parse o = SimpleQueryStringQuery <$> o .: "query"- <*> o .:? "fields"- <*> o .:? "default_operator"- <*> o .:? "analyzer"- <*> (parseFlags <$> o .:? "flags")- <*> o .:? "lowercase_expanded_terms"- <*> o .:? "locale"- parseFlags (Just (x:xs)) = Just (x :| xs)- parseFlags _ = Nothing--data SimpleQueryFlag =- SimpleQueryAll- | SimpleQueryNone- | SimpleQueryAnd- | SimpleQueryOr- | SimpleQueryPrefix- | SimpleQueryPhrase- | SimpleQueryPrecedence- | SimpleQueryEscape- | SimpleQueryWhitespace- | SimpleQueryFuzzy- | SimpleQueryNear- | SimpleQuerySlop deriving (Eq, Show)--instance ToJSON SimpleQueryFlag where- toJSON SimpleQueryAll = "ALL"- toJSON SimpleQueryNone = "NONE"- toJSON SimpleQueryAnd = "AND"- toJSON SimpleQueryOr = "OR"- toJSON SimpleQueryPrefix = "PREFIX"- toJSON SimpleQueryPhrase = "PHRASE"- toJSON SimpleQueryPrecedence = "PRECEDENCE"- toJSON SimpleQueryEscape = "ESCAPE"- toJSON SimpleQueryWhitespace = "WHITESPACE"- toJSON SimpleQueryFuzzy = "FUZZY"- toJSON SimpleQueryNear = "NEAR"- toJSON SimpleQuerySlop = "SLOP"--instance FromJSON SimpleQueryFlag where- parseJSON = withText "SimpleQueryFlag" parse- where parse "ALL" = pure SimpleQueryAll- parse "NONE" = pure SimpleQueryNone- parse "AND" = pure SimpleQueryAnd- parse "OR" = pure SimpleQueryOr- parse "PREFIX" = pure SimpleQueryPrefix- parse "PHRASE" = pure SimpleQueryPhrase- parse "PRECEDENCE" = pure SimpleQueryPrecedence- parse "ESCAPE" = pure SimpleQueryEscape- parse "WHITESPACE" = pure SimpleQueryWhitespace- parse "FUZZY" = pure SimpleQueryFuzzy- parse "NEAR" = pure SimpleQueryNear- parse "SLOP" = pure SimpleQuerySlop- parse f = fail ("Unexpected SimpleQueryFlag: " <> show f)---- use_dis_max and tie_breaker when fields are plural?-data QueryStringQuery =- QueryStringQuery- { queryStringQuery :: QueryString- , queryStringDefaultField :: Maybe FieldName- , queryStringOperator :: Maybe BooleanOperator- , queryStringAnalyzer :: Maybe Analyzer- , queryStringAllowLeadingWildcard :: Maybe AllowLeadingWildcard- , queryStringLowercaseExpanded :: Maybe LowercaseExpanded- , queryStringEnablePositionIncrements :: Maybe EnablePositionIncrements- , queryStringFuzzyMaxExpansions :: Maybe MaxExpansions- , queryStringFuzziness :: Maybe Fuzziness- , queryStringFuzzyPrefixLength :: Maybe PrefixLength- , queryStringPhraseSlop :: Maybe PhraseSlop- , queryStringBoost :: Maybe Boost- , queryStringAnalyzeWildcard :: Maybe AnalyzeWildcard- , queryStringGeneratePhraseQueries :: Maybe GeneratePhraseQueries- , queryStringMinimumShouldMatch :: Maybe MinimumMatch- , queryStringLenient :: Maybe Lenient- , queryStringLocale :: Maybe Locale- } deriving (Eq, Show)---instance ToJSON QueryStringQuery where- toJSON (QueryStringQuery qsQueryString- qsDefaultField qsOperator- qsAnalyzer qsAllowWildcard- qsLowercaseExpanded qsEnablePositionIncrements- qsFuzzyMaxExpansions qsFuzziness- qsFuzzyPrefixLength qsPhraseSlop- qsBoost qsAnalyzeWildcard- qsGeneratePhraseQueries qsMinimumShouldMatch- qsLenient qsLocale) =- omitNulls base- where- base = [ "query" .= qsQueryString- , "default_field" .= qsDefaultField- , "default_operator" .= qsOperator- , "analyzer" .= qsAnalyzer- , "allow_leading_wildcard" .= qsAllowWildcard- , "lowercase_expanded_terms" .= qsLowercaseExpanded- , "enable_position_increments" .= qsEnablePositionIncrements- , "fuzzy_max_expansions" .= qsFuzzyMaxExpansions- , "fuzziness" .= qsFuzziness- , "fuzzy_prefix_length" .= qsFuzzyPrefixLength- , "phrase_slop" .= qsPhraseSlop- , "boost" .= qsBoost- , "analyze_wildcard" .= qsAnalyzeWildcard- , "auto_generate_phrase_queries" .= qsGeneratePhraseQueries- , "minimum_should_match" .= qsMinimumShouldMatch- , "lenient" .= qsLenient- , "locale" .= qsLocale ]--instance FromJSON QueryStringQuery where- parseJSON = withObject "QueryStringQuery" parse- where parse o = QueryStringQuery- <$> o .: "query"- <*> o .:? "default_field"- <*> o .:? "default_operator"- <*> o .:? "analyzer"- <*> o .:? "allow_leading_wildcard"- <*> o .:? "lowercase_expanded_terms"- <*> o .:? "enable_position_increments"- <*> o .:? "fuzzy_max_expansions"- <*> o .:? "fuzziness"- <*> o .:? "fuzzy_prefix_length"- <*> o .:? "phrase_slop"- <*> o .:? "boost"- <*> o .:? "analyze_wildcard"- <*> o .:? "auto_generate_phrase_queries"- <*> o .:? "minimum_should_match"- <*> o .:? "lenient"- <*> o .:? "locale"--mkQueryStringQuery :: QueryString -> QueryStringQuery-mkQueryStringQuery qs =- QueryStringQuery qs Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing- Nothing Nothing--data FieldOrFields = FofField FieldName- | FofFields (NonEmpty FieldName) deriving (Eq, Show)--instance ToJSON FieldOrFields where- toJSON (FofField fieldName) =- toJSON fieldName- toJSON (FofFields fieldNames) =- toJSON fieldNames--instance FromJSON FieldOrFields where- parseJSON v = FofField <$> parseJSON v- <|> FofFields <$> (parseNEJSON =<< parseJSON v)--data PrefixQuery =- PrefixQuery- { prefixQueryField :: FieldName- , prefixQueryPrefixValue :: Text- , prefixQueryBoost :: Maybe Boost } deriving (Eq, Show)--instance ToJSON PrefixQuery where- toJSON (PrefixQuery (FieldName fieldName) queryValue boost) =- object [ fieldName .= omitNulls base ]- where base = [ "value" .= queryValue- , "boost" .= boost ]--instance FromJSON PrefixQuery where- parseJSON = withObject "PrefixQuery" parse- where parse = fieldTagged $ \fn o ->- PrefixQuery fn- <$> o .: "value"- <*> o .:? "boost"--data NestedQuery =- NestedQuery- { nestedQueryPath :: QueryPath- , nestedQueryScoreType :: ScoreType- , nestedQuery :: Query } deriving (Eq, Show)--instance ToJSON NestedQuery where- toJSON (NestedQuery nqPath nqScoreType nqQuery) =- object [ "path" .= nqPath- , "score_mode" .= nqScoreType- , "query" .= nqQuery ]--instance FromJSON NestedQuery where- parseJSON = withObject "NestedQuery" parse- where parse o = NestedQuery- <$> o .: "path"- <*> o .: "score_mode"- <*> o .: "query"--data MoreLikeThisFieldQuery =- MoreLikeThisFieldQuery- { moreLikeThisFieldText :: Text- , moreLikeThisFieldFields :: FieldName- -- default 0.3 (30%)- , moreLikeThisFieldPercentMatch :: Maybe PercentMatch- , moreLikeThisFieldMinimumTermFreq :: Maybe MinimumTermFrequency- , moreLikeThisFieldMaxQueryTerms :: Maybe MaxQueryTerms- , moreLikeThisFieldStopWords :: Maybe (NonEmpty StopWord)- , moreLikeThisFieldMinDocFrequency :: Maybe MinDocFrequency- , moreLikeThisFieldMaxDocFrequency :: Maybe MaxDocFrequency- , moreLikeThisFieldMinWordLength :: Maybe MinWordLength- , moreLikeThisFieldMaxWordLength :: Maybe MaxWordLength- , moreLikeThisFieldBoostTerms :: Maybe BoostTerms- , moreLikeThisFieldBoost :: Maybe Boost- , moreLikeThisFieldAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)---instance ToJSON MoreLikeThisFieldQuery where- toJSON (MoreLikeThisFieldQuery text (FieldName fieldName)- percent mtf mqt stopwords mindf maxdf- minwl maxwl boostTerms boost analyzer) =- object [ fieldName .= omitNulls base ]- where base = [ "like_text" .= text- , "percent_terms_to_match" .= percent- , "min_term_freq" .= mtf- , "max_query_terms" .= mqt- , "stop_words" .= stopwords- , "min_doc_freq" .= mindf- , "max_doc_freq" .= maxdf- , "min_word_length" .= minwl- , "max_word_length" .= maxwl- , "boost_terms" .= boostTerms- , "boost" .= boost- , "analyzer" .= analyzer ]--instance FromJSON MoreLikeThisFieldQuery where- parseJSON = withObject "MoreLikeThisFieldQuery" parse- where parse = fieldTagged $ \fn o ->- MoreLikeThisFieldQuery- <$> o .: "like_text"- <*> pure fn- <*> o .:? "percent_terms_to_match"- <*> o .:? "min_term_freq"- <*> o .:? "max_query_terms"- -- <*> (optionalNE =<< o .:? "stop_words")- <*> o .:? "stop_words"- <*> o .:? "min_doc_freq"- <*> o .:? "max_doc_freq"- <*> o .:? "min_word_length"- <*> o .:? "max_word_length"- <*> o .:? "boost_terms"- <*> o .:? "boost"- <*> o .:? "analyzer"- -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)--data MoreLikeThisQuery =- MoreLikeThisQuery- { moreLikeThisText :: Text- , moreLikeThisFields :: Maybe (NonEmpty FieldName)- -- default 0.3 (30%)- , moreLikeThisPercentMatch :: Maybe PercentMatch- , moreLikeThisMinimumTermFreq :: Maybe MinimumTermFrequency- , moreLikeThisMaxQueryTerms :: Maybe MaxQueryTerms- , moreLikeThisStopWords :: Maybe (NonEmpty StopWord)- , moreLikeThisMinDocFrequency :: Maybe MinDocFrequency- , moreLikeThisMaxDocFrequency :: Maybe MaxDocFrequency- , moreLikeThisMinWordLength :: Maybe MinWordLength- , moreLikeThisMaxWordLength :: Maybe MaxWordLength- , moreLikeThisBoostTerms :: Maybe BoostTerms- , moreLikeThisBoost :: Maybe Boost- , moreLikeThisAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)---instance ToJSON MoreLikeThisQuery where- toJSON (MoreLikeThisQuery text fields percent- mtf mqt stopwords mindf maxdf- minwl maxwl boostTerms boost analyzer) =- omitNulls base- where base = [ "like_text" .= text- , "fields" .= fields- , "percent_terms_to_match" .= percent- , "min_term_freq" .= mtf- , "max_query_terms" .= mqt- , "stop_words" .= stopwords- , "min_doc_freq" .= mindf- , "max_doc_freq" .= maxdf- , "min_word_length" .= minwl- , "max_word_length" .= maxwl- , "boost_terms" .= boostTerms- , "boost" .= boost- , "analyzer" .= analyzer ]--instance FromJSON MoreLikeThisQuery where- parseJSON = withObject "MoreLikeThisQuery" parse- where parse o = MoreLikeThisQuery- <$> o .: "like_text"- -- <*> (optionalNE =<< o .:? "fields")- <*> o .:? "fields"- <*> o .:? "percent_terms_to_match"- <*> o .:? "min_term_freq"- <*> o .:? "max_query_terms"- -- <*> (optionalNE =<< o .:? "stop_words")- <*> o .:? "stop_words"- <*> o .:? "min_doc_freq"- <*> o .:? "max_doc_freq"- <*> o .:? "min_word_length"- <*> o .:? "max_word_length"- <*> o .:? "boost_terms"- <*> o .:? "boost"- <*> o .:? "analyzer"- -- optionalNE = maybe (pure Nothing) (fmap Just . parseNEJSON)--data IndicesQuery =- IndicesQuery- { indicesQueryIndices :: [IndexName]- , indicesQuery :: Query- -- default "all"- , indicesQueryNoMatch :: Maybe Query } deriving (Eq, Show)---instance ToJSON IndicesQuery where- toJSON (IndicesQuery indices query noMatch) =- omitNulls [ "indices" .= indices- , "no_match_query" .= noMatch- , "query" .= query ]--instance FromJSON IndicesQuery where- parseJSON = withObject "IndicesQuery" parse- where parse o = IndicesQuery- <$> o .:? "indices" .!= []- <*> o .: "query"- <*> o .:? "no_match_query"--data HasParentQuery =- HasParentQuery- { hasParentQueryType :: TypeName- , hasParentQuery :: Query- , hasParentQueryScoreType :: Maybe ScoreType } deriving (Eq, Show)--instance ToJSON HasParentQuery where- toJSON (HasParentQuery queryType query scoreType) =- omitNulls [ "parent_type" .= queryType- , "score_type" .= scoreType- , "query" .= query ]--instance FromJSON HasParentQuery where- parseJSON = withObject "HasParentQuery" parse- where parse o = HasParentQuery- <$> o .: "parent_type"- <*> o .: "query"- <*> o .:? "score_type"--data HasChildQuery =- HasChildQuery- { hasChildQueryType :: TypeName- , hasChildQuery :: Query- , hasChildQueryScoreType :: Maybe ScoreType } deriving (Eq, Show)--instance ToJSON HasChildQuery where- toJSON (HasChildQuery queryType query scoreType) =- omitNulls [ "query" .= query- , "score_type" .= scoreType- , "type" .= queryType ]--instance FromJSON HasChildQuery where- parseJSON = withObject "HasChildQuery" parse- where parse o = HasChildQuery- <$> o .: "type"- <*> o .: "query"- <*> o .:? "score_type"--data ScoreType =- ScoreTypeMax- | ScoreTypeSum- | ScoreTypeAvg- | ScoreTypeNone deriving (Eq, Show)--instance ToJSON ScoreType where- toJSON ScoreTypeMax = "max"- toJSON ScoreTypeAvg = "avg"- toJSON ScoreTypeSum = "sum"- toJSON ScoreTypeNone = "none"--instance FromJSON ScoreType where- parseJSON = withText "ScoreType" parse- where parse "max" = pure ScoreTypeMax- parse "avg" = pure ScoreTypeAvg- parse "sum" = pure ScoreTypeSum- parse "none" = pure ScoreTypeNone- parse t = fail ("Unexpected ScoreType: " <> show t)--data FuzzyQuery =- FuzzyQuery { fuzzyQueryField :: FieldName- , fuzzyQueryValue :: Text- , fuzzyQueryPrefixLength :: PrefixLength- , fuzzyQueryMaxExpansions :: MaxExpansions- , fuzzyQueryFuzziness :: Fuzziness- , fuzzyQueryBoost :: Maybe Boost- } deriving (Eq, Show)---instance ToJSON FuzzyQuery where- toJSON (FuzzyQuery (FieldName fieldName) queryText- prefixLength maxEx fuzziness boost) =- object [ fieldName .= omitNulls base ]- where base = [ "value" .= queryText- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "boost" .= boost- , "max_expansions" .= maxEx ]--instance FromJSON FuzzyQuery where- parseJSON = withObject "FuzzyQuery" parse- where parse = fieldTagged $ \fn o ->- FuzzyQuery fn- <$> o .: "value"- <*> o .: "prefix_length"- <*> o .: "max_expansions"- <*> o .: "fuzziness"- <*> o .:? "boost"--data FuzzyLikeFieldQuery =- FuzzyLikeFieldQuery- { fuzzyLikeField :: FieldName- -- anaphora is good for the soul.- , fuzzyLikeFieldText :: Text- , fuzzyLikeFieldMaxQueryTerms :: MaxQueryTerms- , fuzzyLikeFieldIgnoreTermFrequency :: IgnoreTermFrequency- , fuzzyLikeFieldFuzziness :: Fuzziness- , fuzzyLikeFieldPrefixLength :: PrefixLength- , fuzzyLikeFieldBoost :: Boost- , fuzzyLikeFieldAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)---instance ToJSON FuzzyLikeFieldQuery where- toJSON (FuzzyLikeFieldQuery (FieldName fieldName)- fieldText maxTerms ignoreFreq fuzziness prefixLength- boost analyzer) =- object [ fieldName .=- omitNulls [ "like_text" .= fieldText- , "max_query_terms" .= maxTerms- , "ignore_tf" .= ignoreFreq- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "analyzer" .= analyzer- , "boost" .= boost ]]--instance FromJSON FuzzyLikeFieldQuery where- parseJSON = withObject "FuzzyLikeFieldQuery" parse- where parse = fieldTagged $ \fn o ->- FuzzyLikeFieldQuery fn- <$> o .: "like_text"- <*> o .: "max_query_terms"- <*> o .: "ignore_tf"- <*> o .: "fuzziness"- <*> o .: "prefix_length"- <*> o .: "boost"- <*> o .:? "analyzer"--data FuzzyLikeThisQuery =- FuzzyLikeThisQuery- { fuzzyLikeFields :: [FieldName]- , fuzzyLikeText :: Text- , fuzzyLikeMaxQueryTerms :: MaxQueryTerms- , fuzzyLikeIgnoreTermFrequency :: IgnoreTermFrequency- , fuzzyLikeFuzziness :: Fuzziness- , fuzzyLikePrefixLength :: PrefixLength- , fuzzyLikeBoost :: Boost- , fuzzyLikeAnalyzer :: Maybe Analyzer- } deriving (Eq, Show)---instance ToJSON FuzzyLikeThisQuery where- toJSON (FuzzyLikeThisQuery fields text maxTerms- ignoreFreq fuzziness prefixLength boost analyzer) =- omitNulls base- where base = [ "fields" .= fields- , "like_text" .= text- , "max_query_terms" .= maxTerms- , "ignore_tf" .= ignoreFreq- , "fuzziness" .= fuzziness- , "prefix_length" .= prefixLength- , "analyzer" .= analyzer- , "boost" .= boost ]--instance FromJSON FuzzyLikeThisQuery where- parseJSON = withObject "FuzzyLikeThisQuery" parse- where parse o = FuzzyLikeThisQuery- <$> o .:? "fields" .!= []- <*> o .: "like_text"- <*> o .: "max_query_terms"- <*> o .: "ignore_tf"- <*> o .: "fuzziness"- <*> o .: "prefix_length"- <*> o .: "boost"- <*> o .:? "analyzer"--data DisMaxQuery =- DisMaxQuery { disMaxQueries :: [Query]- -- default 0.0- , disMaxTiebreaker :: Tiebreaker- , disMaxBoost :: Maybe Boost- } deriving (Eq, Show)---instance ToJSON DisMaxQuery where- toJSON (DisMaxQuery queries tiebreaker boost) =- omitNulls base- where base = [ "queries" .= queries- , "boost" .= boost- , "tie_breaker" .= tiebreaker ]--instance FromJSON DisMaxQuery where- parseJSON = withObject "DisMaxQuery" parse- where parse o = DisMaxQuery- <$> o .:? "queries" .!= []- <*> o .: "tie_breaker"- <*> o .:? "boost"--data MatchQuery = MatchQuery- { matchQueryField :: FieldName- , matchQueryQueryString :: QueryString- , matchQueryOperator :: BooleanOperator- , matchQueryZeroTerms :: ZeroTermsQuery- , matchQueryCutoffFrequency :: Maybe CutoffFrequency- , matchQueryMatchType :: Maybe MatchQueryType- , matchQueryAnalyzer :: Maybe Analyzer- , matchQueryMaxExpansions :: Maybe MaxExpansions- , matchQueryLenient :: Maybe Lenient- , matchQueryBoost :: Maybe Boost- , matchQueryMinimumShouldMatch :: Maybe Text- } deriving (Eq, Show)---instance ToJSON MatchQuery where- toJSON (MatchQuery (FieldName fieldName)- (QueryString mqQueryString) booleanOperator- zeroTermsQuery cutoffFrequency matchQueryType- analyzer maxExpansions lenient boost- minShouldMatch- ) =- object [ fieldName .= omitNulls base ]- where base = [ "query" .= mqQueryString- , "operator" .= booleanOperator- , "zero_terms_query" .= zeroTermsQuery- , "cutoff_frequency" .= cutoffFrequency- , "type" .= matchQueryType- , "analyzer" .= analyzer- , "max_expansions" .= maxExpansions- , "lenient" .= lenient- , "boost" .= boost- , "minimum_should_match" .= minShouldMatch- ]--instance FromJSON MatchQuery where- parseJSON = withObject "MatchQuery" parse- where parse = fieldTagged $ \fn o ->- MatchQuery fn- <$> o .: "query"- <*> o .: "operator"- <*> o .: "zero_terms_query"- <*> o .:? "cutoff_frequency"- <*> o .:? "type"- <*> o .:? "analyzer"- <*> o .:? "max_expansions"- <*> o .:? "lenient"- <*> o .:? "boost"- <*> o .:? "minimum_should_match"--{-| 'mkMatchQuery' is a convenience function that defaults the less common parameters,- enabling you to provide only the 'FieldName' and 'QueryString' to make a 'MatchQuery'--}-mkMatchQuery :: FieldName -> QueryString -> MatchQuery-mkMatchQuery field query = MatchQuery field query Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing Nothing--data MatchQueryType =- MatchPhrase- | MatchPhrasePrefix deriving (Eq, Show)--instance ToJSON MatchQueryType where- toJSON MatchPhrase = "phrase"- toJSON MatchPhrasePrefix = "phrase_prefix"--instance FromJSON MatchQueryType where- parseJSON = withText "MatchQueryType" parse- where parse "phrase" = pure MatchPhrase- parse "phrase_prefix" = pure MatchPhrasePrefix- parse t = fail ("Unexpected MatchQueryType: " <> show t)--data MultiMatchQuery = MultiMatchQuery- { multiMatchQueryFields :: [FieldName]- , multiMatchQueryString :: QueryString- , multiMatchQueryOperator :: BooleanOperator- , multiMatchQueryZeroTerms :: ZeroTermsQuery- , multiMatchQueryTiebreaker :: Maybe Tiebreaker- , multiMatchQueryType :: Maybe MultiMatchQueryType- , multiMatchQueryCutoffFrequency :: Maybe CutoffFrequency- , multiMatchQueryAnalyzer :: Maybe Analyzer- , multiMatchQueryMaxExpansions :: Maybe MaxExpansions- , multiMatchQueryLenient :: Maybe Lenient- } deriving (Eq, Show)--instance ToJSON MultiMatchQuery where- toJSON (MultiMatchQuery fields (QueryString query) boolOp- ztQ tb mmqt cf analyzer maxEx lenient) =- object ["multi_match" .= omitNulls base]- where base = [ "fields" .= fmap toJSON fields- , "query" .= query- , "operator" .= boolOp- , "zero_terms_query" .= ztQ- , "tie_breaker" .= tb- , "type" .= mmqt- , "cutoff_frequency" .= cf- , "analyzer" .= analyzer- , "max_expansions" .= maxEx- , "lenient" .= lenient ]--instance FromJSON MultiMatchQuery where- parseJSON = withObject "MultiMatchQuery" parse- where parse raw = do o <- raw .: "multi_match"- MultiMatchQuery- <$> o .:? "fields" .!= []- <*> o .: "query"- <*> o .: "operator"- <*> o .: "zero_terms_query"- <*> o .:? "tie_breaker"- <*> o .:? "type"- <*> o .:? "cutoff_frequency"- <*> o .:? "analyzer"- <*> o .:? "max_expansions"- <*> o .:? "lenient"--{-| 'mkMultiMatchQuery' is a convenience function that defaults the less common parameters,- enabling you to provide only the list of 'FieldName's and 'QueryString' to- make a 'MultiMatchQuery'.--}--mkMultiMatchQuery :: [FieldName] -> QueryString -> MultiMatchQuery-mkMultiMatchQuery matchFields query =- MultiMatchQuery matchFields query- Or ZeroTermsNone Nothing Nothing Nothing Nothing Nothing Nothing--data MultiMatchQueryType =- MultiMatchBestFields- | MultiMatchMostFields- | MultiMatchCrossFields- | MultiMatchPhrase- | MultiMatchPhrasePrefix deriving (Eq, Show)--instance ToJSON MultiMatchQueryType where- toJSON MultiMatchBestFields = "best_fields"- toJSON MultiMatchMostFields = "most_fields"- toJSON MultiMatchCrossFields = "cross_fields"- toJSON MultiMatchPhrase = "phrase"- toJSON MultiMatchPhrasePrefix = "phrase_prefix"--instance FromJSON MultiMatchQueryType where- parseJSON = withText "MultiMatchPhrasePrefix" parse- where parse "best_fields" = pure MultiMatchBestFields- parse "most_fields" = pure MultiMatchMostFields- parse "cross_fields" = pure MultiMatchCrossFields- parse "phrase" = pure MultiMatchPhrase- parse "phrase_prefix" = pure MultiMatchPhrasePrefix- parse t = fail ("Unexpected MultiMatchPhrasePrefix: " <> show t)--data BoolQuery =- BoolQuery { boolQueryMustMatch :: [Query]- , boolQueryFilter :: [Filter]- , boolQueryMustNotMatch :: [Query]- , boolQueryShouldMatch :: [Query]- , boolQueryMinimumShouldMatch :: Maybe MinimumMatch- , boolQueryBoost :: Maybe Boost- , boolQueryDisableCoord :: Maybe DisableCoord- } deriving (Eq, Show)---instance ToJSON BoolQuery where- toJSON (BoolQuery mustM filterM' notM shouldM bqMin boost disableCoord) =- omitNulls base- where base = [ "must" .= mustM- , "filter" .= filterM'- , "must_not" .= notM- , "should" .= shouldM- , "minimum_should_match" .= bqMin- , "boost" .= boost- , "disable_coord" .= disableCoord ]--instance FromJSON BoolQuery where- parseJSON = withObject "BoolQuery" parse- where parse o = BoolQuery- <$> o .:? "must" .!= []- <*> o .:? "filter" .!= []- <*> o .:? "must_not" .!= []- <*> o .:? "should" .!= []- <*> o .:? "minimum_should_match"- <*> o .:? "boost"- <*> o .:? "disable_coord"--mkBoolQuery :: [Query] -> [Filter] -> [Query] -> [Query] -> BoolQuery-mkBoolQuery must filt mustNot should =- BoolQuery must filt mustNot should Nothing Nothing Nothing--data BoostingQuery =- BoostingQuery { positiveQuery :: Query- , negativeQuery :: Query- , negativeBoost :: Boost } deriving (Eq, Show)--instance ToJSON BoostingQuery where- toJSON (BoostingQuery bqPositiveQuery bqNegativeQuery bqNegativeBoost) =- object [ "positive" .= bqPositiveQuery- , "negative" .= bqNegativeQuery- , "negative_boost" .= bqNegativeBoost ]--instance FromJSON BoostingQuery where- parseJSON = withObject "BoostingQuery" parse- where parse o = BoostingQuery- <$> o .: "positive"- <*> o .: "negative"- <*> o .: "negative_boost"--data CommonTermsQuery =- CommonTermsQuery { commonField :: FieldName- , commonQuery :: QueryString- , commonCutoffFrequency :: CutoffFrequency- , commonLowFreqOperator :: BooleanOperator- , commonHighFreqOperator :: BooleanOperator- , commonMinimumShouldMatch :: Maybe CommonMinimumMatch- , commonBoost :: Maybe Boost- , commonAnalyzer :: Maybe Analyzer- , commonDisableCoord :: Maybe DisableCoord- } deriving (Eq, Show)---instance ToJSON CommonTermsQuery where- toJSON (CommonTermsQuery (FieldName fieldName)- (QueryString query) cf lfo hfo msm- boost analyzer disableCoord) =- object [fieldName .= omitNulls base ]- where base = [ "query" .= query- , "cutoff_frequency" .= cf- , "low_freq_operator" .= lfo- , "minimum_should_match" .= msm- , "boost" .= boost- , "analyzer" .= analyzer- , "disable_coord" .= disableCoord- , "high_freq_operator" .= hfo ]--instance FromJSON CommonTermsQuery where- parseJSON = withObject "CommonTermsQuery" parse- where parse = fieldTagged $ \fn o ->- CommonTermsQuery fn- <$> o .: "query"- <*> o .: "cutoff_frequency"- <*> o .: "low_freq_operator"- <*> o .: "high_freq_operator"- <*> o .:? "minimum_should_match"- <*> o .:? "boost"- <*> o .:? "analyzer"- <*> o .:? "disable_coord"--data CommonMinimumMatch =- CommonMinimumMatchHighLow MinimumMatchHighLow- | CommonMinimumMatch MinimumMatch- deriving (Eq, Show)---instance ToJSON CommonMinimumMatch where- toJSON (CommonMinimumMatch mm) = toJSON mm- toJSON (CommonMinimumMatchHighLow (MinimumMatchHighLow lowF highF)) =- object [ "low_freq" .= lowF- , "high_freq" .= highF ]--instance FromJSON CommonMinimumMatch where- parseJSON v = parseMinimum v- <|> parseMinimumHighLow v- where parseMinimum = fmap CommonMinimumMatch . parseJSON- parseMinimumHighLow = fmap CommonMinimumMatchHighLow . withObject "CommonMinimumMatchHighLow" (\o ->- MinimumMatchHighLow- <$> o .: "low_freq"- <*> o .: "high_freq")--data MinimumMatchHighLow =- MinimumMatchHighLow { lowFreq :: MinimumMatch- , highFreq :: MinimumMatch } deriving (Eq, Show)--data ZeroTermsQuery =- ZeroTermsNone- | ZeroTermsAll deriving (Eq, Show)--instance ToJSON ZeroTermsQuery where- toJSON ZeroTermsNone = String "none"- toJSON ZeroTermsAll = String "all"--instance FromJSON ZeroTermsQuery where- parseJSON = withText "ZeroTermsQuery" parse- where parse "none" = pure ZeroTermsNone- parse "all" = pure ZeroTermsAll- parse q = fail ("Unexpected ZeroTermsQuery: " <> show q)--data RangeExecution = RangeExecutionIndex- | RangeExecutionFielddata deriving (Eq, Show)---- index for smaller ranges, fielddata for longer ranges-instance ToJSON RangeExecution where- toJSON RangeExecutionIndex = "index"- toJSON RangeExecutionFielddata = "fielddata"---instance FromJSON RangeExecution where- parseJSON = withText "RangeExecution" parse- where parse "index" = pure RangeExecutionIndex- parse "fielddata" = pure RangeExecutionFielddata- parse t = error ("Unrecognized RangeExecution " <> show t)--newtype Regexp = Regexp Text deriving (Eq, Show, FromJSON)--data RegexpFlags = AllRegexpFlags- | NoRegexpFlags- | SomeRegexpFlags (NonEmpty RegexpFlag) deriving (Eq, Show)--instance ToJSON RegexpFlags where- toJSON AllRegexpFlags = String "ALL"- toJSON NoRegexpFlags = String "NONE"- toJSON (SomeRegexpFlags (h :| fs)) = String $ T.intercalate "|" flagStrs- where flagStrs = map flagStr . nub $ h:fs- flagStr AnyString = "ANYSTRING"- flagStr Automaton = "AUTOMATON"- flagStr Complement = "COMPLEMENT"- flagStr Empty = "EMPTY"- flagStr Intersection = "INTERSECTION"- flagStr Interval = "INTERVAL"--instance FromJSON RegexpFlags where- parseJSON = withText "RegexpFlags" parse- where parse "ALL" = pure AllRegexpFlags- parse "NONE" = pure NoRegexpFlags- parse t = SomeRegexpFlags <$> parseNEJSON (String <$> T.splitOn "|" t)--data RegexpFlag = AnyString- | Automaton- | Complement- | Empty- | Intersection- | Interval deriving (Eq, Show)--instance FromJSON RegexpFlag where- parseJSON = withText "RegexpFlag" parse- where parse "ANYSTRING" = pure AnyString- parse "AUTOMATON" = pure Automaton- parse "COMPLEMENT" = pure Complement- parse "EMPTY" = pure Empty- parse "INTERSECTION" = pure Intersection- parse "INTERVAL" = pure Interval- parse f = fail ("Unknown RegexpFlag: " <> show f)--newtype LessThan = LessThan Double deriving (Eq, Show)-newtype LessThanEq = LessThanEq Double deriving (Eq, Show)-newtype GreaterThan = GreaterThan Double deriving (Eq, Show)-newtype GreaterThanEq = GreaterThanEq Double deriving (Eq, Show)--newtype LessThanD = LessThanD UTCTime deriving (Eq, Show)-newtype LessThanEqD = LessThanEqD UTCTime deriving (Eq, Show)-newtype GreaterThanD = GreaterThanD UTCTime deriving (Eq, Show)-newtype GreaterThanEqD = GreaterThanEqD UTCTime deriving (Eq, Show)--data RangeValue = RangeDateLte LessThanEqD- | RangeDateLt LessThanD- | RangeDateGte GreaterThanEqD- | RangeDateGt GreaterThanD- | RangeDateGtLt GreaterThanD LessThanD- | RangeDateGteLte GreaterThanEqD LessThanEqD- | RangeDateGteLt GreaterThanEqD LessThanD- | RangeDateGtLte GreaterThanD LessThanEqD- | RangeDoubleLte LessThanEq- | RangeDoubleLt LessThan- | RangeDoubleGte GreaterThanEq- | RangeDoubleGt GreaterThan- | RangeDoubleGtLt GreaterThan LessThan- | RangeDoubleGteLte GreaterThanEq LessThanEq- | RangeDoubleGteLt GreaterThanEq LessThan- | RangeDoubleGtLte GreaterThan LessThanEq- deriving (Eq, Show)---parseRangeValue :: ( FromJSON t4- , FromJSON t3- , FromJSON t2- , FromJSON t1- )- => (t3 -> t5)- -> (t1 -> t6)- -> (t4 -> t7)- -> (t2 -> t8)- -> (t5 -> t6 -> b)- -> (t7 -> t6 -> b)- -> (t5 -> t8 -> b)- -> (t7 -> t8 -> b)- -> (t5 -> b)- -> (t6 -> b)- -> (t7 -> b)- -> (t8 -> b)- -> Parser b- -> Object- -> Parser b-parseRangeValue mkGt mkLt mkGte mkLte- fGtLt fGteLt fGtLte fGteLte- fGt fLt fGte fLte nada o = do- lt <- o .:? "lt"- lte <- o .:? "lte"- gt <- o .:? "gt"- gte <- o .:? "gte"- case (lt, lte, gt, gte) of- (Just a, _, Just b, _) ->- return (fGtLt (mkGt b) (mkLt a))- (Just a, _, _, Just b) ->- return (fGteLt (mkGte b) (mkLt a))- (_, Just a, Just b, _) ->- return (fGtLte (mkGt b) (mkLte a))- (_, Just a, _, Just b) ->- return (fGteLte (mkGte b) (mkLte a))- (_, _, Just a, _) ->- return (fGt (mkGt a))- (Just a, _, _, _) ->- return (fLt (mkLt a))- (_, _, _, Just a) ->- return (fGte (mkGte a))- (_, Just a, _, _) ->- return (fLte (mkLte a))- (Nothing, Nothing, Nothing, Nothing) ->- nada---instance FromJSON RangeValue where- parseJSON = withObject "RangeValue" parse- where parse o = parseDate o- <|> parseDouble o- parseDate o =- parseRangeValue- GreaterThanD LessThanD- GreaterThanEqD LessThanEqD- RangeDateGtLt RangeDateGteLt- RangeDateGtLte RangeDateGteLte- RangeDateGt RangeDateLt- RangeDateGte RangeDateLte- mzero o- parseDouble o =- parseRangeValue- GreaterThan LessThan- GreaterThanEq LessThanEq- RangeDoubleGtLt RangeDoubleGteLt- RangeDoubleGtLte RangeDoubleGteLte- RangeDoubleGt RangeDoubleLt- RangeDoubleGte RangeDoubleLte- mzero o--rangeValueToPair :: RangeValue -> [Pair]-rangeValueToPair rv = case rv of- RangeDateLte (LessThanEqD t) -> ["lte" .= t]- RangeDateGte (GreaterThanEqD t) -> ["gte" .= t]- RangeDateLt (LessThanD t) -> ["lt" .= t]- RangeDateGt (GreaterThanD t) -> ["gt" .= t]- RangeDateGteLte (GreaterThanEqD l) (LessThanEqD g) -> ["gte" .= l, "lte" .= g]- RangeDateGtLte (GreaterThanD l) (LessThanEqD g) -> ["gt" .= l, "lte" .= g]- RangeDateGteLt (GreaterThanEqD l) (LessThanD g) -> ["gte" .= l, "lt" .= g]- RangeDateGtLt (GreaterThanD l) (LessThanD g) -> ["gt" .= l, "lt" .= g]- RangeDoubleLte (LessThanEq t) -> ["lte" .= t]- RangeDoubleGte (GreaterThanEq t) -> ["gte" .= t]- RangeDoubleLt (LessThan t) -> ["lt" .= t]- RangeDoubleGt (GreaterThan t) -> ["gt" .= t]- RangeDoubleGteLte (GreaterThanEq l) (LessThanEq g) -> ["gte" .= l, "lte" .= g]- RangeDoubleGtLte (GreaterThan l) (LessThanEq g) -> ["gt" .= l, "lte" .= g]- RangeDoubleGteLt (GreaterThanEq l) (LessThan g) -> ["gte" .= l, "lt" .= g]- RangeDoubleGtLt (GreaterThan l) (LessThan g) -> ["gt" .= l, "lt" .= g]--data Term = Term { termField :: Text- , termValue :: Text } deriving (Eq, Show)--instance ToJSON Term where- toJSON (Term field value) = object ["term" .= object- [field .= value]]--instance FromJSON Term where- parseJSON = withObject "Term" parse- where parse o = do termObj <- o .: "term"- case HM.toList termObj of- [(fn, v)] -> Term fn <$> parseJSON v- _ -> fail "Expected object with 1 field-named key"--data BoolMatch = MustMatch Term Cache- | MustNotMatch Term Cache- | ShouldMatch [Term] Cache deriving (Eq, Show)---instance ToJSON BoolMatch where- toJSON (MustMatch term cache) = object ["must" .= term,- "_cache" .= cache]- toJSON (MustNotMatch term cache) = object ["must_not" .= term,- "_cache" .= cache]- toJSON (ShouldMatch terms cache) = object ["should" .= fmap toJSON terms,- "_cache" .= cache]--instance FromJSON BoolMatch where- parseJSON = withObject "BoolMatch" parse- where parse o = mustMatch `taggedWith` "must"- <|> mustNotMatch `taggedWith` "must_not"- <|> shouldMatch `taggedWith` "should"- where taggedWith parser k = parser =<< o .: k- mustMatch t = MustMatch t <$> o .:? "_cache" .!= defaultCache- mustNotMatch t = MustNotMatch t <$> o .:? "_cache" .!= defaultCache- shouldMatch t = ShouldMatch t <$> o .:? "_cache" .!= defaultCache---- "memory" or "indexed"-data GeoFilterType = GeoFilterMemory- | GeoFilterIndexed deriving (Eq, Show)--instance ToJSON GeoFilterType where- toJSON GeoFilterMemory = String "memory"- toJSON GeoFilterIndexed = String "indexed"--instance FromJSON GeoFilterType where- parseJSON = withText "GeoFilterType" parse- where parse "memory" = pure GeoFilterMemory- parse "indexed" = pure GeoFilterIndexed- parse t = fail ("Unrecognized GeoFilterType: " <> show t)--data LatLon = LatLon { lat :: Double- , lon :: Double } deriving (Eq, Show)--instance ToJSON LatLon where- toJSON (LatLon lLat lLon) =- object ["lat" .= lLat- , "lon" .= lLon]--instance FromJSON LatLon where- parseJSON = withObject "LatLon" parse- where parse o = LatLon <$> o .: "lat"- <*> o .: "lon"--data GeoBoundingBox =- GeoBoundingBox { topLeft :: LatLon- , bottomRight :: LatLon } deriving (Eq, Show)--instance ToJSON GeoBoundingBox where- toJSON (GeoBoundingBox gbbTopLeft gbbBottomRight) =- object ["top_left" .= gbbTopLeft- , "bottom_right" .= gbbBottomRight]--instance FromJSON GeoBoundingBox where- parseJSON = withObject "GeoBoundingBox" parse- where parse o = GeoBoundingBox- <$> o .: "top_left"- <*> o .: "bottom_right"--data GeoBoundingBoxConstraint =- GeoBoundingBoxConstraint { geoBBField :: FieldName- , constraintBox :: GeoBoundingBox- , bbConstraintcache :: Cache- , geoType :: GeoFilterType- } deriving (Eq, Show)--instance ToJSON GeoBoundingBoxConstraint where- toJSON (GeoBoundingBoxConstraint- (FieldName gbbcGeoBBField) gbbcConstraintBox cache type') =- object [gbbcGeoBBField .= gbbcConstraintBox- , "_cache" .= cache- , "type" .= type']--instance FromJSON GeoBoundingBoxConstraint where- parseJSON = withObject "GeoBoundingBoxConstraint" parse- where parse o = case HM.toList (deleteSeveral ["type", "_cache"] o) of- [(fn, v)] -> GeoBoundingBoxConstraint (FieldName fn)- <$> parseJSON v- <*> o .:? "_cache" .!= defaultCache- <*> o .: "type"- _ -> fail "Could not find field name for GeoBoundingBoxConstraint"--data GeoPoint =- GeoPoint { geoField :: FieldName- , latLon :: LatLon} deriving (Eq, Show)--instance ToJSON GeoPoint where- toJSON (GeoPoint (FieldName geoPointField) geoPointLatLon) =- object [ geoPointField .= geoPointLatLon ]--data DistanceUnit = Miles- | Yards- | Feet- | Inches- | Kilometers- | Meters- | Centimeters- | Millimeters- | NauticalMiles deriving (Eq, Show)--instance ToJSON DistanceUnit where- toJSON Miles = String "mi"- toJSON Yards = String "yd"- toJSON Feet = String "ft"- toJSON Inches = String "in"- toJSON Kilometers = String "km"- toJSON Meters = String "m"- toJSON Centimeters = String "cm"- toJSON Millimeters = String "mm"- toJSON NauticalMiles = String "nmi"--instance FromJSON DistanceUnit where- parseJSON = withText "DistanceUnit" parse- where parse "mi" = pure Miles- parse "yd" = pure Yards- parse "ft" = pure Feet- parse "in" = pure Inches- parse "km" = pure Kilometers- parse "m" = pure Meters- parse "cm" = pure Centimeters- parse "mm" = pure Millimeters- parse "nmi" = pure NauticalMiles- parse u = fail ("Unrecognized DistanceUnit: " <> show u)--data DistanceType = Arc- | SloppyArc -- doesn't exist <1.0- | Plane deriving (Eq, Show)--instance ToJSON DistanceType where- toJSON Arc = String "arc"- toJSON SloppyArc = String "sloppy_arc"- toJSON Plane = String "plane"--instance FromJSON DistanceType where- parseJSON = withText "DistanceType" parse- where parse "arc" = pure Arc- parse "sloppy_arc" = pure SloppyArc- parse "plane" = pure Plane- parse t = fail ("Unrecognized DistanceType: " <> show t)--data OptimizeBbox = OptimizeGeoFilterType GeoFilterType- | NoOptimizeBbox deriving (Eq, Show)---instance ToJSON OptimizeBbox where- toJSON NoOptimizeBbox = String "none"- toJSON (OptimizeGeoFilterType gft) = toJSON gft--instance FromJSON OptimizeBbox where- parseJSON v = withText "NoOptimizeBbox" parseNoOptimize v- <|> parseOptimize v- where parseNoOptimize "none" = pure NoOptimizeBbox- parseNoOptimize _ = mzero- parseOptimize = fmap OptimizeGeoFilterType . parseJSON--data Distance =- Distance { coefficient :: Double- , unit :: DistanceUnit } deriving (Eq, Show)---instance ToJSON Distance where- toJSON (Distance dCoefficient dUnit) =- String boltedTogether where- coefText = showText dCoefficient- (String unitText) = toJSON dUnit- boltedTogether = mappend coefText unitText--instance FromJSON Distance where- parseJSON = withText "Distance" parse- where parse t = Distance <$> parseCoeff nT- <*> parseJSON (String unitT)- where (nT, unitT) = T.span validForNumber t- -- may be a better way to do this- validForNumber '-' = True- validForNumber '.' = True- validForNumber 'e' = True- validForNumber c = isNumber c- parseCoeff "" = fail "Empty string cannot be parsed as number"- parseCoeff s = return (read (T.unpack s))--data DistanceRange =- DistanceRange { distanceFrom :: Distance- , distanceTo :: Distance } deriving (Eq, Show)--type TemplateQueryKey = Text-type TemplateQueryValue = Text--newtype TemplateQueryKeyValuePairs =- TemplateQueryKeyValuePairs (HM.HashMap TemplateQueryKey TemplateQueryValue)- deriving (Eq, Show)--instance ToJSON TemplateQueryKeyValuePairs where- toJSON (TemplateQueryKeyValuePairs x) =- Object $ HM.map toJSON x--instance FromJSON TemplateQueryKeyValuePairs where- parseJSON (Object o) =- pure . TemplateQueryKeyValuePairs $ HM.mapMaybe getValue o- where getValue (String x) = Just x- getValue _ = Nothing- parseJSON _ =- fail "error parsing TemplateQueryKeyValuePairs"--data TemplateQueryInline =- TemplateQueryInline { inline :: Query- , params :: TemplateQueryKeyValuePairs- }- deriving (Eq, Show)--instance ToJSON TemplateQueryInline where- toJSON TemplateQueryInline{..} = object [ "inline" .= inline- , "params" .= params- ]--instance FromJSON TemplateQueryInline where- parseJSON = withObject "TemplateQueryInline" parse- where parse o = TemplateQueryInline- <$> o .: "inline"- <*> o .: "params"--{-| 'BooleanOperator' is the usual And/Or operators with an ES compatible- JSON encoding baked in. Used all over the place.--}-data BooleanOperator = And | Or deriving (Eq, Show)--instance ToJSON BooleanOperator where- toJSON And = String "and"- toJSON Or = String "or"--instance FromJSON BooleanOperator where- parseJSON = withText "BooleanOperator" parse- where parse "and" = pure And- parse "or" = pure Or- parse o = fail ("Unexpected BooleanOperator: " <> show o)--{-| 'Cache' is for telling ES whether it should cache a 'Filter' not.- 'Query's cannot be cached.--}-type Cache = Bool -- caching on/off-defaultCache :: Cache-defaultCache = False---data FunctionScoreQuery =- FunctionScoreQuery { functionScoreQuery :: Maybe Query- , functionScoreBoost :: Maybe Boost- , functionScoreFunctions :: FunctionScoreFunctions- , functionScoreMaxBoost :: Maybe Boost- , functionScoreBoostMode :: Maybe BoostMode- , functionScoreMinScore :: Score- , functionScoreScoreMode :: Maybe ScoreMode- } deriving (Eq, Show)--instance ToJSON FunctionScoreQuery where- toJSON (FunctionScoreQuery query boost fns maxBoost boostMode minScore scoreMode) =- omitNulls base- where base = functionScoreFunctionsPair fns :- [ "query" .= query- , "boost" .= boost- , "max_boost" .= maxBoost- , "boost_mode" .= boostMode- , "min_score" .= minScore- , "score_mode" .= scoreMode ]--instance FromJSON FunctionScoreQuery where- parseJSON = withObject "FunctionScoreQuery" parse- where parse o = FunctionScoreQuery- <$> o .:? "query"- <*> o .:? "boost"- <*> (singleFunction o- <|> multipleFunctions `taggedWith` "functions")- <*> o .:? "max_boost"- <*> o .:? "boost_mode"- <*> o .:? "min_score"- <*> o .:? "score_mode"- where taggedWith parser k = parser =<< o .: k- singleFunction = fmap FunctionScoreSingle . parseFunctionScoreFunction- multipleFunctions = pure . FunctionScoreMultiple--data FunctionScoreFunctions =- FunctionScoreSingle FunctionScoreFunction- | FunctionScoreMultiple (NonEmpty ComponentFunctionScoreFunction) deriving (Eq, Show)--data ComponentFunctionScoreFunction =- ComponentFunctionScoreFunction { componentScoreFunctionFilter :: Maybe Filter- , componentScoreFunction :: FunctionScoreFunction- , componentScoreFunctionWeight :: Maybe Weight- } deriving (Eq, Show)--instance ToJSON ComponentFunctionScoreFunction where- toJSON (ComponentFunctionScoreFunction filter' fn weight) =- omitNulls base- where base = functionScoreFunctionPair fn :- [ "filter" .= filter'- , "weight" .= weight ]--instance FromJSON ComponentFunctionScoreFunction where- parseJSON = withObject "ComponentFunctionScoreFunction" parse- where parse o = ComponentFunctionScoreFunction- <$> o .:? "filter"- <*> parseFunctionScoreFunction o- <*> o .:? "weight"--functionScoreFunctionsPair :: FunctionScoreFunctions -> (Text, Value)-functionScoreFunctionsPair (FunctionScoreSingle fn)- = functionScoreFunctionPair fn-functionScoreFunctionsPair (FunctionScoreMultiple componentFns) =- ("functions", toJSON componentFns)--fieldTagged :: Monad m => (FieldName -> Object -> m a) -> Object -> m a-fieldTagged f o = case HM.toList o of- [(k, Object o')] -> f (FieldName k) o'- _ -> fail "Expected object with 1 field-named key"
− src/Database/V5/Bloodhound/Internal/Sort.hs
@@ -1,107 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--module Database.V5.Bloodhound.Internal.Sort where--import Bloodhound.Import--import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query--{-| 'SortMode' prescribes how to handle sorting array/multi-valued fields.--http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_sort_mode_option--}-data SortMode = SortMin- | SortMax- | SortSum- | SortAvg deriving (Eq, Show)--instance ToJSON SortMode where- toJSON SortMin = String "min"- toJSON SortMax = String "max"- toJSON SortSum = String "sum"- toJSON SortAvg = String "avg"--{-| 'mkSort' defaults everything but the 'FieldName' and the 'SortOrder' so- that you can concisely describe the usual kind of 'SortSpec's you want.--}-mkSort :: FieldName -> SortOrder -> DefaultSort-mkSort fieldName sOrder = DefaultSort fieldName sOrder Nothing Nothing Nothing Nothing--{-| 'Sort' is a synonym for a list of 'SortSpec's. Sort behavior is order- dependent with later sorts acting as tie-breakers for earlier sorts.--}-type Sort = [SortSpec]--{-| The two main kinds of 'SortSpec' are 'DefaultSortSpec' and- 'GeoDistanceSortSpec'. The latter takes a 'SortOrder', 'GeoPoint', and- 'DistanceUnit' to express "nearness" to a single geographical point as a- sort specification.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data SortSpec =- DefaultSortSpec DefaultSort- | GeoDistanceSortSpec SortOrder GeoPoint DistanceUnit- deriving (Eq, Show)--instance ToJSON SortSpec where- toJSON (DefaultSortSpec- (DefaultSort (FieldName dsSortFieldName) dsSortOrder dsIgnoreUnmapped- dsSortMode dsMissingSort dsNestedFilter)) =- object [dsSortFieldName .= omitNulls base] where- base = [ "order" .= dsSortOrder- , "unmapped_type" .= dsIgnoreUnmapped- , "mode" .= dsSortMode- , "missing" .= dsMissingSort- , "nested_filter" .= dsNestedFilter ]-- toJSON (GeoDistanceSortSpec gdsSortOrder (GeoPoint (FieldName field) gdsLatLon) units) =- object [ "unit" .= units- , field .= gdsLatLon- , "order" .= gdsSortOrder ]--{-| 'DefaultSort' is usually the kind of 'SortSpec' you'll want. There's a- 'mkSort' convenience function for when you want to specify only the most- common parameters.-- The `ignoreUnmapped`, when `Just` field is used to set the elastic 'unmapped_type'--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data DefaultSort =- DefaultSort { sortFieldName :: FieldName- , sortOrder :: SortOrder- -- default False- , ignoreUnmapped :: Maybe Text- , sortMode :: Maybe SortMode- , missingSort :: Maybe Missing- , nestedFilter :: Maybe Filter } deriving (Eq, Show)--{-| 'SortOrder' is 'Ascending' or 'Descending', as you might expect. These get- encoded into "asc" or "desc" when turned into JSON.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>--}-data SortOrder = Ascending- | Descending deriving (Eq, Show)--instance ToJSON SortOrder where- toJSON Ascending = String "asc"- toJSON Descending = String "desc"--{-| 'Missing' prescribes how to handle missing fields. A missing field can be- sorted last, first, or using a custom value as a substitute.--<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#_missing_values>--}-data Missing = LastMissing- | FirstMissing- | CustomMissing Text deriving (Eq, Show)--instance ToJSON Missing where- toJSON LastMissing = String "_last"- toJSON FirstMissing = String "_first"- toJSON (CustomMissing txt) = String txt
− src/Database/V5/Bloodhound/Internal/StringlyTyped.hs
@@ -1,51 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Database.V5.Bloodhound.Internal.StringlyTyped where--import Bloodhound.Import--import qualified Data.Text as T----- This whole module is a sin bucket to deal with Elasticsearch badness.-newtype StringlyTypedDouble = StringlyTypedDouble- { unStringlyTypedDouble :: Double }--instance FromJSON StringlyTypedDouble where- parseJSON =- fmap StringlyTypedDouble- . parseJSON- . unStringlyTypeJSON--newtype StringlyTypedInt = StringlyTypedInt- { unStringlyTypedInt :: Int }--instance FromJSON StringlyTypedInt where- parseJSON =- fmap StringlyTypedInt- . parseJSON- . unStringlyTypeJSON--newtype StringlyTypedBool = StringlyTypedBool { unStringlyTypedBool :: Bool }--instance FromJSON StringlyTypedBool where- parseJSON =- fmap StringlyTypedBool- . parseJSON- . unStringlyTypeJSON---- | For some reason in several settings APIs, all leaf values get returned--- as strings. This function attempts to recover from this for all--- non-recursive JSON types. If nothing can be done, the value is left alone.-unStringlyTypeJSON :: Value -> Value-unStringlyTypeJSON (String "true") =- Bool True-unStringlyTypeJSON (String "false") =- Bool False-unStringlyTypeJSON (String "null") =- Null-unStringlyTypeJSON v@(String t) =- case readMay (T.unpack t) of- Just n -> Number n- Nothing -> v-unStringlyTypeJSON v = v
− src/Database/V5/Bloodhound/Internal/Suggest.hs
@@ -1,270 +0,0 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE OverloadedStrings #-}--module Database.V5.Bloodhound.Internal.Suggest where--import Bloodhound.Import--import qualified Data.HashMap.Strict as HM--import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query (TemplateQueryInline(..), params)--data Suggest = Suggest- { suggestText :: Text- , suggestName :: Text- , suggestType :: SuggestType- } deriving (Eq, Show)--instance ToJSON Suggest where- toJSON Suggest{..} =- object [ "text" .= suggestText- , suggestName .= suggestType- ]--instance FromJSON Suggest where- parseJSON (Object o) = do- suggestText' <- o .: "text"- let dropTextList =- HM.toList- $ HM.filterWithKey (\x _ -> x /= "text") o- suggestName' <-- case dropTextList of- [(x, _)] -> return x- _ -> fail "error parsing Suggest field name"- suggestType' <- o .: suggestName'- return $ Suggest suggestText' suggestName' suggestType'- parseJSON x = typeMismatch "Suggest" x--data SuggestType =- SuggestTypePhraseSuggester PhraseSuggester- deriving (Eq, Show)--instance ToJSON SuggestType where- toJSON (SuggestTypePhraseSuggester x) =- object [ "phrase" .= x ]--instance FromJSON SuggestType where- parseJSON = withObject "SuggestType" parse- where parse o = phraseSuggester `taggedWith` "phrase"- where taggedWith parser k = parser =<< o .: k- phraseSuggester = pure . SuggestTypePhraseSuggester--data PhraseSuggester = PhraseSuggester- { phraseSuggesterField :: FieldName- , phraseSuggesterGramSize :: Maybe Int- , phraseSuggesterRealWordErrorLikelihood :: Maybe Int- , phraseSuggesterConfidence :: Maybe Int- , phraseSuggesterMaxErrors :: Maybe Int- , phraseSuggesterSeparator :: Maybe Text- , phraseSuggesterSize :: Maybe Size- , phraseSuggesterAnalyzer :: Maybe Analyzer- , phraseSuggesterShardSize :: Maybe Int- , phraseSuggesterHighlight :: Maybe PhraseSuggesterHighlighter- , phraseSuggesterCollate :: Maybe PhraseSuggesterCollate- , phraseSuggesterCandidateGenerators :: [DirectGenerators]- } deriving (Eq, Show)--instance ToJSON PhraseSuggester where- toJSON PhraseSuggester{..} =- omitNulls [ "field" .= phraseSuggesterField- , "gram_size" .= phraseSuggesterGramSize- , "real_word_error_likelihood" .=- phraseSuggesterRealWordErrorLikelihood- , "confidence" .= phraseSuggesterConfidence- , "max_errors" .= phraseSuggesterMaxErrors- , "separator" .= phraseSuggesterSeparator- , "size" .= phraseSuggesterSize- , "analyzer" .= phraseSuggesterAnalyzer- , "shard_size" .= phraseSuggesterShardSize- , "highlight" .= phraseSuggesterHighlight- , "collate" .= phraseSuggesterCollate- , "direct_generator" .=- phraseSuggesterCandidateGenerators- ]--instance FromJSON PhraseSuggester where- parseJSON = withObject "PhraseSuggester" parse- where parse o = PhraseSuggester- <$> o .: "field"- <*> o .:? "gram_size"- <*> o .:? "real_word_error_likelihood"- <*> o .:? "confidence"- <*> o .:? "max_errors"- <*> o .:? "separator"- <*> o .:? "size"- <*> o .:? "analyzer"- <*> o .:? "shard_size"- <*> o .:? "highlight"- <*> o .:? "collate"- <*> o .:? "direct_generator" .!= []--mkPhraseSuggester :: FieldName -> PhraseSuggester-mkPhraseSuggester fName =- PhraseSuggester fName Nothing Nothing Nothing Nothing Nothing Nothing- Nothing Nothing Nothing Nothing []--data PhraseSuggesterHighlighter =- PhraseSuggesterHighlighter { phraseSuggesterHighlighterPreTag :: Text- , phraseSuggesterHighlighterPostTag :: Text- }- deriving (Eq, Show)--instance ToJSON PhraseSuggesterHighlighter where- toJSON PhraseSuggesterHighlighter{..} =- object [ "pre_tag" .= phraseSuggesterHighlighterPreTag- , "post_tag" .= phraseSuggesterHighlighterPostTag- ]--instance FromJSON PhraseSuggesterHighlighter where- parseJSON = withObject "PhraseSuggesterHighlighter" parse- where parse o = PhraseSuggesterHighlighter- <$> o .: "pre_tag"- <*> o .: "post_tag"--data PhraseSuggesterCollate = PhraseSuggesterCollate- { phraseSuggesterCollateTemplateQuery :: TemplateQueryInline- , phraseSuggesterCollatePrune :: Bool- } deriving (Eq, Show)--instance ToJSON PhraseSuggesterCollate where- toJSON PhraseSuggesterCollate{..} =- object [ "query" .= object- [ "inline" .= (inline phraseSuggesterCollateTemplateQuery)- ]- , "params" .= (params phraseSuggesterCollateTemplateQuery)- , "prune" .= phraseSuggesterCollatePrune- ]--instance FromJSON PhraseSuggesterCollate where- parseJSON (Object o) = do- query' <- o .: "query"- inline' <- query' .: "inline"- params' <- o .: "params"- prune' <- o .:? "prune" .!= False- return $ PhraseSuggesterCollate- (TemplateQueryInline inline' params') prune'- parseJSON x = typeMismatch "PhraseSuggesterCollate" x--data SuggestOptions =- SuggestOptions { suggestOptionsText :: Text- , suggestOptionsScore :: Double- , suggestOptionsFreq :: Maybe Int- , suggestOptionsHighlighted :: Maybe Text- }- deriving (Eq, Read, Show)--instance FromJSON SuggestOptions where- parseJSON = withObject "SuggestOptions" parse- where- parse o = SuggestOptions- <$> o .: "text"- <*> o .: "score"- <*> o .:? "freq"- <*> o .:? "highlighted"--data SuggestResponse =- SuggestResponse { suggestResponseText :: Text- , suggestResponseOffset :: Int- , suggestResponseLength :: Int- , suggestResponseOptions :: [SuggestOptions]- }- deriving (Eq, Read, Show)--instance FromJSON SuggestResponse where- parseJSON = withObject "SuggestResponse" parse- where parse o = SuggestResponse- <$> o .: "text"- <*> o .: "offset"- <*> o .: "length"- <*> o .: "options"--data NamedSuggestionResponse = NamedSuggestionResponse- { nsrName :: Text- , nsrResponses :: [SuggestResponse]- } deriving (Eq, Read, Show)--instance FromJSON NamedSuggestionResponse where- parseJSON (Object o) = do- suggestionName' <- case HM.toList o of- [(x, _)] -> return x- _ -> fail "error parsing NamedSuggestionResponse name"- suggestionResponses' <- o .: suggestionName'- return $ NamedSuggestionResponse suggestionName' suggestionResponses'-- parseJSON x = typeMismatch "NamedSuggestionResponse" x--data DirectGeneratorSuggestModeTypes = DirectGeneratorSuggestModeMissing- | DirectGeneratorSuggestModePopular- | DirectGeneratorSuggestModeAlways- deriving (Eq, Show)--instance ToJSON DirectGeneratorSuggestModeTypes where- toJSON DirectGeneratorSuggestModeMissing = "missing"- toJSON DirectGeneratorSuggestModePopular = "popular"- toJSON DirectGeneratorSuggestModeAlways = "always"--instance FromJSON DirectGeneratorSuggestModeTypes where- parseJSON = withText "DirectGeneratorSuggestModeTypes" parse- where- parse "missing" =- pure DirectGeneratorSuggestModeMissing- parse "popular" =- pure DirectGeneratorSuggestModePopular- parse "always" =- pure DirectGeneratorSuggestModeAlways- parse f =- fail ("Unexpected DirectGeneratorSuggestModeTypes: " <> show f)--data DirectGenerators = DirectGenerators- { directGeneratorsField :: FieldName- , directGeneratorsSize :: Maybe Int- , directGeneratorSuggestMode :: DirectGeneratorSuggestModeTypes- , directGeneratorMaxEdits :: Maybe Double- , directGeneratorPrefixLength :: Maybe Int- , directGeneratorMinWordLength :: Maybe Int- , directGeneratorMaxInspections :: Maybe Int- , directGeneratorMinDocFreq :: Maybe Double- , directGeneratorMaxTermFreq :: Maybe Double- , directGeneratorPreFilter :: Maybe Text- , directGeneratorPostFilter :: Maybe Text- } deriving (Eq, Show)--instance ToJSON DirectGenerators where- toJSON DirectGenerators{..} =- omitNulls [ "field" .= directGeneratorsField- , "size" .= directGeneratorsSize- , "suggest_mode" .= directGeneratorSuggestMode- , "max_edits" .= directGeneratorMaxEdits- , "prefix_length" .= directGeneratorPrefixLength- , "min_word_length" .= directGeneratorMinWordLength- , "max_inspections" .= directGeneratorMaxInspections- , "min_doc_freq" .= directGeneratorMinDocFreq- , "max_term_freq" .= directGeneratorMaxTermFreq- , "pre_filter" .= directGeneratorPreFilter- , "post_filter" .= directGeneratorPostFilter- ]--instance FromJSON DirectGenerators where- parseJSON = withObject "DirectGenerators" parse- where parse o = DirectGenerators- <$> o .: "field"- <*> o .:? "size"- <*> o .: "suggest_mode"- <*> o .:? "max_edits"- <*> o .:? "prefix_length"- <*> o .:? "min_word_length"- <*> o .:? "max_inspections"- <*> o .:? "min_doc_freq"- <*> o .:? "max_term_freq"- <*> o .:? "pre_filter"- <*> o .:? "post_filter"--mkDirectGenerators :: FieldName -> DirectGenerators-mkDirectGenerators fn =- DirectGenerators- fn- Nothing- DirectGeneratorSuggestModeMissing- Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
− src/Database/V5/Bloodhound/Types.hs
@@ -1,540 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE UndecidableInstances #-}------------------------------------------------------------------------------------ |--- Module : Database.Bloodhound.Types--- Copyright : (C) 2014, 2018 Chris Allen--- License : BSD-style (see the file LICENSE)--- Maintainer : Chris Allen <cma@bitemyapp.com--- Stability : provisional--- Portability : RecordWildCards------ Data types for describing actions and data structures performed to interact--- with Elasticsearch. The two main buckets your queries against Elasticsearch--- will fall into are 'Query's and 'Filter's. 'Filter's are more like--- traditional database constraints and often have preferable performance--- properties. 'Query's support human-written textual queries, such as fuzzy--- queries.------------------------------------------------------------------------------------module Database.V5.Bloodhound.Types- ( defaultCache- , defaultIndexSettings- , defaultIndexDocumentSettings- , mkSort- , showText- , unpackId- , mkMatchQuery- , mkMultiMatchQuery- , mkBoolQuery- , mkRangeQuery- , mkQueryStringQuery- , mkAggregations- , mkTermsAggregation- , mkTermsScriptAggregation- , mkDateHistogram- , mkCardinalityAggregation- , mkDocVersion- , mkStatsAggregation- , mkExtendedStatsAggregation- , docVersionNumber- , toMissing- , toTerms- , toDateHistogram- , toTopHits- , omitNulls- , BH(..)- , runBH- , BHEnv- , bhServer- , bhManager- , bhRequestHook- , mkBHEnv- , MonadBH(..)- , Version(..)- , VersionNumber(..)- , MaybeNA(..)- , BuildHash(..)- , Status(..)- , Existence(..)- , NullValue(..)- , IndexSettings(..)- , UpdatableIndexSetting(..)- , IndexSettingsSummary(..)- , AllocationPolicy(..)- , Compression(..)- , ReplicaBounds(..)- , Bytes(..)- , gigabytes- , megabytes- , kilobytes- , FSType(..)- , InitialShardCount(..)- , NodeAttrFilter(..)- , NodeAttrName(..)- , CompoundFormat(..)- , IndexTemplate(..)- , Server(..)- , Reply- , EsResult(..)- , EsResultFound(..)- , EsError(..)- , EsProtocolException(..)- , IndexAlias(..)- , IndexAliasName(..)- , IndexAliasAction(..)- , IndexAliasCreate(..)- , IndexAliasSummary(..)- , IndexAliasesSummary(..)- , AliasRouting(..)- , SearchAliasRouting(..)- , IndexAliasRouting(..)- , RoutingValue(..)- , DocVersion- , ExternalDocVersion(..)- , VersionControl(..)- , DocumentParent(..)- , IndexDocumentSettings(..)- , Query(..)- , Search(..)- , SearchType(..)- , SearchResult(..)- , ScrollId(..)- , SearchHits(..)- , TrackSortScores- , From(..)- , Size(..)- , Source(..)- , PatternOrPatterns(..)- , Include(..)- , Exclude(..)- , Pattern(..)- , ShardResult(..)- , Hit(..)- , HitFields(..)- , Filter(..)- , Seminearring(..)- , BoolMatch(..)- , Term(..)- , GeoPoint(..)- , GeoBoundingBoxConstraint(..)- , GeoBoundingBox(..)- , GeoFilterType(..)- , Distance(..)- , DistanceUnit(..)- , DistanceType(..)- , DistanceRange(..)- , OptimizeBbox(..)- , LatLon(..)- , RangeValue(..)- , RangeExecution(..)- , LessThan(..)- , LessThanEq(..)- , GreaterThan(..)- , GreaterThanEq(..)- , LessThanD(..)- , LessThanEqD(..)- , GreaterThanD(..)- , GreaterThanEqD(..)- , Regexp(..)- , RegexpFlags(..)- , RegexpFlag(..)- , FieldName(..)- , ScriptFields(..)- , ScriptFieldName- , ScriptFieldValue- , Script(..)- , ScriptLanguage(..)- , ScriptInline(..)- , ScriptId(..)- , ScriptParams(..)- , ScriptParamName- , ScriptParamValue- , IndexName(..)- , IndexSelection(..)- , NodeSelection(..)- , NodeSelector(..)- , ForceMergeIndexSettings(..)- , defaultForceMergeIndexSettings- , TemplateName(..)- , TemplatePattern(..)- , MappingName(..)- , DocId(..)- , CacheName(..)- , CacheKey(..)- , BulkOperation(..)- , ReplicaCount(..)- , ShardCount(..)- , Sort- , SortMode(..)- , SortOrder(..)- , SortSpec(..)- , DefaultSort(..)- , Missing(..)- , OpenCloseIndex(..)- , Method- , Boost(..)- , MatchQuery(..)- , MultiMatchQuery(..)- , BoolQuery(..)- , BoostingQuery(..)- , CommonTermsQuery(..)- , FunctionScoreQuery(..)- , BoostMode(..)- , ScoreMode(..)- , FunctionScoreFunctions(..)- , ComponentFunctionScoreFunction(..)- , FunctionScoreFunction(..)- , Weight(..)- , Seed(..)- , FieldValueFactor(..)- , Factor(..)- , FactorModifier(..)- , FactorMissingFieldValue(..)- , DisMaxQuery(..)- , FuzzyLikeThisQuery(..)- , FuzzyLikeFieldQuery(..)- , FuzzyQuery(..)- , HasChildQuery(..)- , HasParentQuery(..)- , IndicesQuery(..)- , MoreLikeThisQuery(..)- , MoreLikeThisFieldQuery(..)- , NestedQuery(..)- , PrefixQuery(..)- , QueryStringQuery(..)- , SimpleQueryStringQuery(..)- , RangeQuery(..)- , RegexpQuery(..)- , QueryString(..)- , TemplateQueryInline(..)- , TemplateQueryKeyValuePairs(..)- , WildcardQuery(..)- , BooleanOperator(..)- , ZeroTermsQuery(..)- , CutoffFrequency(..)- , Analyzer(..)- , Tokenizer(..)- , TokenFilter(..)- , CharFilter(..)- , MaxExpansions(..)- , Lenient(..)- , MatchQueryType(..)- , MultiMatchQueryType(..)- , Tiebreaker(..)- , MinimumMatch(..)- , DisableCoord(..)- , CommonMinimumMatch(..)- , MinimumMatchHighLow(..)- , PrefixLength(..)- , Fuzziness(..)- , IgnoreTermFrequency(..)- , MaxQueryTerms(..)- , ScoreType(..)- , Score- , Cache- , TypeName(..)- , BoostTerms(..)- , MaxWordLength(..)- , MinWordLength(..)- , MaxDocFrequency(..)- , MinDocFrequency(..)- , PhraseSlop(..)- , StopWord(..)- , QueryPath(..)- , MinimumTermFrequency(..)- , PercentMatch(..)- , FieldDefinition(..)- , MappingField(..)- , Mapping(..)- , AllowLeadingWildcard(..)- , LowercaseExpanded(..)- , GeneratePhraseQueries(..)- , Locale(..)- , AnalyzeWildcard(..)- , EnablePositionIncrements(..)- , SimpleQueryFlag(..)- , FieldOrFields(..)- , Monoid(..)- , ToJSON(..)- , Interval(..)- , TimeInterval(..)- , ExecutionHint(..)- , CollectionMode(..)- , TermOrder(..)- , TermInclusion(..)- , SnapshotRepoSelection(..)- , GenericSnapshotRepo(..)- , SnapshotRepo(..)- , SnapshotRepoConversionError(..)- , SnapshotRepoType(..)- , GenericSnapshotRepoSettings(..)- , SnapshotRepoUpdateSettings(..)- , defaultSnapshotRepoUpdateSettings- , SnapshotRepoName(..)- , SnapshotRepoPattern(..)- , SnapshotVerification(..)- , SnapshotNodeVerification(..)- , FullNodeId(..)- , NodeName(..)- , ClusterName(..)- , NodesInfo(..)- , NodesStats(..)- , NodeStats(..)- , NodeBreakersStats(..)- , NodeBreakerStats(..)- , NodeHTTPStats(..)- , NodeTransportStats(..)- , NodeFSStats(..)- , NodeDataPathStats(..)- , NodeFSTotalStats(..)- , NodeNetworkStats(..)- , NodeThreadPoolsStats(..)- , NodeThreadPoolStats(..)- , NodeJVMStats(..)- , JVMBufferPoolStats(..)- , JVMGCStats(..)- , JVMPoolStats(..)- , NodeProcessStats(..)- , NodeOSStats(..)- , LoadAvgs(..)- , NodeIndicesStats(..)- , EsAddress(..)- , PluginName(..)- , NodeInfo(..)- , NodePluginInfo(..)- , NodeHTTPInfo(..)- , NodeTransportInfo(..)- , BoundTransportAddress(..)- , NodeNetworkInfo(..)- , MacAddress(..)- , NetworkInterfaceName(..)- , NodeNetworkInterface(..)- , NodeThreadPoolsInfo(..)- , NodeThreadPoolInfo(..)- , ThreadPoolSize(..)- , ThreadPoolType(..)- , NodeJVMInfo(..)- , JVMMemoryPool(..)- , JVMGCCollector(..)- , JVMMemoryInfo(..)- , PID(..)- , NodeOSInfo(..)- , CPUInfo(..)- , NodeProcessInfo(..)- , FsSnapshotRepo(..)- , SnapshotCreateSettings(..)- , defaultSnapshotCreateSettings- , SnapshotSelection(..)- , SnapshotPattern(..)- , SnapshotInfo(..)- , SnapshotShardFailure(..)- , ShardId(..)- , SnapshotName(..)- , SnapshotState(..)- , SnapshotRestoreSettings(..)- , defaultSnapshotRestoreSettings- , RestoreRenamePattern(..)- , RestoreRenameToken(..)- , RRGroupRefNum- , rrGroupRefNum- , mkRRGroupRefNum- , RestoreIndexSettings(..)- , Suggest(..)- , SuggestType(..)- , PhraseSuggester(..)- , PhraseSuggesterHighlighter(..)- , PhraseSuggesterCollate(..)- , mkPhraseSuggester- , SuggestOptions(..)- , SuggestResponse(..)- , NamedSuggestionResponse(..)- , DirectGenerators(..)- , mkDirectGenerators- , DirectGeneratorSuggestModeTypes (..)-- , Aggregation(..)- , Aggregations- , AggregationResults- , BucketValue(..)- , Bucket(..)- , BucketAggregation(..)- , TermsAggregation(..)- , MissingAggregation(..)- , ValueCountAggregation(..)- , FilterAggregation(..)- , CardinalityAggregation(..)- , DateHistogramAggregation(..)- , DateRangeAggregation(..)- , DateRangeAggRange(..)- , DateMathExpr(..)- , DateMathAnchor(..)- , DateMathModifier(..)- , DateMathUnit(..)- , TopHitsAggregation(..)- , StatisticsAggregation(..)-- , Highlights(..)- , FieldHighlight(..)- , HighlightSettings(..)- , PlainHighlight(..)- , PostingsHighlight(..)- , FastVectorHighlight(..)- , CommonHighlight(..)- , NonPostings(..)- , HighlightEncoder(..)- , HighlightTag(..)- , HitHighlight-- , MissingResult(..)- , TermsResult(..)- , DateHistogramResult(..)- , DateRangeResult(..)- , TopHitResult(..)-- , EsUsername(..)- , EsPassword(..)-- , Analysis(..)- , AnalyzerDefinition(..)- , TokenizerDefinition(..)- , TokenFilterDefinition(..)- , CharFilterDefinition(..)- , Ngram(..)- , TokenChar(..)- , Shingle(..)- , Language(..)- ) where--import Bloodhound.Import--import Database.V5.Bloodhound.Types.Class-import Database.V5.Bloodhound.Internal.Analysis-import Database.V5.Bloodhound.Internal.Aggregation-import Database.V5.Bloodhound.Internal.Client-import Database.V5.Bloodhound.Internal.Highlight-import Database.V5.Bloodhound.Internal.Newtypes-import Database.V5.Bloodhound.Internal.Query-import Database.V5.Bloodhound.Internal.Sort-import Database.V5.Bloodhound.Internal.Suggest--{-| 'unpackId' is a silly convenience function that gets used once.--}-unpackId :: DocId -> Text-unpackId (DocId docId) = docId--type TrackSortScores = Bool--data Search = Search { queryBody :: Maybe Query- , filterBody :: Maybe Filter- , sortBody :: Maybe Sort- , aggBody :: Maybe Aggregations- , highlight :: Maybe Highlights- -- default False- , trackSortScores :: TrackSortScores- , from :: From- , size :: Size- , searchType :: SearchType- , fields :: Maybe [FieldName]- , scriptFields :: Maybe ScriptFields- , source :: Maybe Source- , suggestBody :: Maybe Suggest -- ^ Only one Suggestion request / response per Search is supported.- } deriving (Eq, Show)---instance ToJSON Search where- toJSON (Search mquery sFilter sort searchAggs- highlight sTrackSortScores sFrom sSize _ sFields- sScriptFields sSource sSuggest) =- omitNulls [ "query" .= query'- , "sort" .= sort- , "aggregations" .= searchAggs- , "highlight" .= highlight- , "from" .= sFrom- , "size" .= sSize- , "track_scores" .= sTrackSortScores- , "fields" .= sFields- , "script_fields" .= sScriptFields- , "_source" .= sSource- , "suggest" .= sSuggest]-- where query' = case sFilter of- Nothing -> mquery- Just x ->- Just- . QueryBoolQuery- $ mkBoolQuery (maybeToList mquery)- [x] [] []--data SearchType = SearchTypeQueryThenFetch- | SearchTypeDfsQueryThenFetch- deriving (Eq, Show)--data Source =- NoSource- | SourcePatterns PatternOrPatterns- | SourceIncludeExclude Include Exclude- deriving (Eq, Show)--instance ToJSON Source where- toJSON NoSource = toJSON False- toJSON (SourcePatterns patterns) = toJSON patterns- toJSON (SourceIncludeExclude incl excl) = object [ "includes" .= incl, "excludes" .= excl ]--data PatternOrPatterns = PopPattern Pattern- | PopPatterns [Pattern] deriving (Eq, Read, Show)--instance ToJSON PatternOrPatterns where- toJSON (PopPattern pattern) = toJSON pattern- toJSON (PopPatterns patterns) = toJSON patterns--data Include = Include [Pattern] deriving (Eq, Read, Show)-data Exclude = Exclude [Pattern] deriving (Eq, Read, Show)--instance ToJSON Include where- toJSON (Include patterns) = toJSON patterns--instance ToJSON Exclude where- toJSON (Exclude patterns) = toJSON patterns--newtype Pattern = Pattern Text deriving (Eq, Read, Show)--instance ToJSON Pattern where- toJSON (Pattern pattern) = toJSON pattern--data SearchResult a =- SearchResult { took :: Int- , timedOut :: Bool- , shards :: ShardResult- , searchHits :: SearchHits a- , aggregations :: Maybe AggregationResults- , scrollId :: Maybe ScrollId- -- ^ Only one Suggestion request / response per- -- Search is supported.- , suggest :: Maybe NamedSuggestionResponse- }- deriving (Eq, Show)--instance (FromJSON a) => FromJSON (SearchResult a) where- parseJSON (Object v) = SearchResult <$>- v .: "took" <*>- v .: "timed_out" <*>- v .: "_shards" <*>- v .: "hits" <*>- v .:? "aggregations" <*>- v .:? "_scroll_id" <*>- v .:? "suggest"- parseJSON _ = empty--newtype ScrollId =- ScrollId Text- deriving (Eq, Show, Ord, ToJSON, FromJSON)
− src/Database/V5/Bloodhound/Types/Class.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE CPP #-}-module Database.V5.Bloodhound.Types.Class- ( Seminearring(..) )- where--#if !MIN_VERSION_base(4,8,0)-import Data.Monoid-#endif--class Monoid a => Seminearring a where- -- 0, +, *- (<||>) :: a -> a -> a- (<&&>) :: a -> a -> a- (<&&>) = mappend--infixr 5 <||>-infixr 5 <&&>
+ tests/Test/Aggregation.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Aggregation (spec) where++import Test.Common+import Test.Import++import Control.Error (fmapL, note)+import qualified Data.Map as M+import qualified Database.Bloodhound++spec :: Spec+spec =+ describe "Aggregation API" $ do+ it "returns term aggregation results" $ withTestEnv $ do+ _ <- insertData+ let terms = TermsAgg $ mkTermsAggregation "user"+ let search = mkAggregateSearch Nothing $ mkAggregations "users" terms+ searchExpectAggs search+ searchValidBucketAgg search "users" toTerms++ it "return sub-aggregation results" $ withTestEnv $ do+ _ <- insertData+ let subaggs = mkAggregations "age_agg" . TermsAgg $ mkTermsAggregation "age"+ agg = TermsAgg $ (mkTermsAggregation "user") { termAggs = Just subaggs}+ search = mkAggregateSearch Nothing $ mkAggregations "users" agg+ reply <- searchByIndex testIndex search+ let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)+ usersAggResults = result >>= aggregations >>= toTerms "users"+ subAggResults = usersAggResults >>= (listToMaybe . buckets) >>= termsAggs >>= toTerms "age_agg"+ subAddResultsExists = isJust subAggResults+ liftIO $ subAddResultsExists `shouldBe` True++ it "returns cardinality aggregation results" $ withTestEnv $ do+ _ <- insertData+ let cardinality = CardinalityAgg $ mkCardinalityAggregation $ FieldName "user"+ let search = mkAggregateSearch Nothing $ mkAggregations "users" cardinality+ let search' = search { Database.Bloodhound.from = From 0, size = Size 0 }+ searchExpectAggs search'+ let docCountPair k n = (k, object ["value" .= Number n])+ res <- searchTweets search'+ liftIO $+ fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "users" 1]))++ it "returns stats aggregation results" $ withTestEnv $ do+ _ <- insertData+ let stats = StatsAgg $ mkStatsAggregation $ FieldName "age"+ let search = mkAggregateSearch Nothing $ mkAggregations "users" stats+ let search' = search { Database.Bloodhound.from = From 0, size = Size 0 }+ searchExpectAggs search'+ let statsAggRes k n = (k, object [ "max" .= Number n+ , "avg" .= Number n+ , "count" .= Number 1+ , "min" .= Number n+ , "sum" .= Number n])+ res <- searchTweets search'+ liftIO $+ fmap aggregations res `shouldBe` Right (Just (M.fromList [ statsAggRes "users" 10000]))++ it "can give collection hint parameters to term aggregations" $ withTestEnv $ do+ _ <- insertData+ let terms = TermsAgg $ (mkTermsAggregation "user") { termCollectMode = Just BreadthFirst }+ let search = mkAggregateSearch Nothing $ mkAggregations "users" terms+ searchExpectAggs search+ searchValidBucketAgg search "users" toTerms++ it "can give execution hint parameters to term aggregations" $ withTestEnv $ do+ _ <- insertData+ searchTermsAggHint [GlobalOrdinals, Map]+ -- One of the above.++ it "can execute value_count aggregations" $ withTestEnv $ do+ _ <- insertData+ _ <- insertOther+ let ags = mkAggregations "user_count" (ValueCountAgg (FieldValueCount (FieldName "user"))) <>+ mkAggregations "bogus_count" (ValueCountAgg (FieldValueCount (FieldName "bogus")))+ let search = mkAggregateSearch Nothing ags+ let docCountPair k n = (k, object ["value" .= Number n])+ res <- searchTweets search+ liftIO $+ fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "user_count" 2+ , docCountPair "bogus_count" 0+ ]))++ it "can execute date_range aggregations" $ withTestEnv $ do+ let now = fromGregorian 2015 3 14+ let ltAMonthAgo = UTCTime (fromGregorian 2015 3 1) 0+ let ltAWeekAgo = UTCTime (fromGregorian 2015 3 10) 0+ let oldDoc = exampleTweet { postDate = ltAMonthAgo }+ let newDoc = exampleTweet { postDate = ltAWeekAgo }+ _ <- indexDocument testIndex defaultIndexDocumentSettings oldDoc (DocId "1")+ _ <- indexDocument testIndex defaultIndexDocumentSettings newDoc (DocId "2")+ _ <- refreshIndex testIndex+ let thisMonth = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMMonth])+ let thisWeek = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMWeek])+ let agg = DateRangeAggregation (FieldName "postDate") Nothing (thisMonth :| [thisWeek])+ let ags = mkAggregations "date_ranges" (DateRangeAgg agg)+ let search = mkAggregateSearch Nothing ags+ res <- searchTweets search+ liftIO $ hitsTotal . searchHits <$> res `shouldBe` Right (HitsTotal 2 HTR_EQ)+ let bucks = do magrs <- fmapL show (aggregations <$> res)+ agrs <- note "no aggregations returned" magrs+ rawBucks <- note "no date_ranges aggregation" $ M.lookup "date_ranges" agrs+ parseEither parseJSON rawBucks+ let fromMonthT = UTCTime (fromGregorian 2015 2 14) 0+ let fromWeekT = UTCTime (fromGregorian 2015 3 7) 0+ liftIO $ buckets <$> bucks `shouldBe` Right [ DateRangeResult "2015-02-14T00:00:00.000Z-*"+ (Just fromMonthT)+ (Just "2015-02-14T00:00:00.000Z")+ Nothing+ Nothing+ 2+ Nothing+ , DateRangeResult "2015-03-07T00:00:00.000Z-*"+ (Just fromWeekT)+ (Just "2015-03-07T00:00:00.000Z")+ Nothing+ Nothing+ 1+ Nothing+ ]++ it "returns date histogram aggregation results" $ withTestEnv $ do+ _ <- insertData+ let histogram = DateHistogramAgg $ mkDateHistogram (FieldName "postDate") Minute+ let search = mkAggregateSearch Nothing (mkAggregations "byDate" histogram)+ searchExpectAggs search+ searchValidBucketAgg search "byDate" toDateHistogram++ it "can execute missing aggregations" $ withTestEnv $ do+ _ <- insertData+ _ <- insertExtra+ let ags = mkAggregations "missing_agg" (MissingAgg (MissingAggregation "extra"))+ let search = mkAggregateSearch Nothing ags+ let docCountPair k n = (k, object ["doc_count" .= Number n])+ res <- searchTweets search+ liftIO $+ fmap aggregations res `shouldBe` Right (Just (M.fromList [docCountPair "missing_agg" 1]))
+ tests/Test/ApproxEq.hs view
@@ -0,0 +1,63 @@+{-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE OverloadedStrings #-}++module Test.ApproxEq where++import Database.Bloodhound++import Test.Import++import qualified Data.List.NonEmpty as NE++-- | Typeclass for "equal where it matters". Use this to specify+-- less-strict equivalence for things such as lists that can wind up+-- in an unpredictable order+class ApproxEq a where+ (=~) :: a -> a -> Bool++ showApproxEq :: a -> String+ default showApproxEq :: (Show a) => a -> String+ showApproxEq = show++(==~) :: (ApproxEq a) => a -> a -> Property+a ==~ b = counterexample (showApproxEq a ++ " !=~ " ++ showApproxEq b) (a =~ b)++instance ApproxEq NominalDiffTime where (=~) = (==)+instance ApproxEq Bool where (=~) = (==)+instance ApproxEq Int where (=~) = (==)+instance (Eq a, Show a) => ApproxEq (Maybe a) where (=~) = (==)+instance ApproxEq Char where+ (=~) = (==)++instance ApproxEq NodeAttrFilter where (=~) = (==)+instance ApproxEq NodeAttrName where (=~) = (==)+instance (Eq a, Show a) => ApproxEq (NonEmpty a) where (=~) = (==)+instance (ApproxEq l, Show l, ApproxEq r, Show r) => ApproxEq (Either l r) where+ Left a =~ Left b = a =~ b+ Right a =~ Right b = a =~ b+ _ =~ _ = False+ showApproxEq (Left x) = "Left " <> showApproxEq x+ showApproxEq (Right x) = "Right " <> showApproxEq x+instance (ApproxEq a, Show a) => ApproxEq [a] where+ as =~ bs = and (zipWith (=~) as bs)+instance ApproxEq ReplicaCount where (=~) = (==)+instance ApproxEq ReplicaBounds where (=~) = (==)+instance ApproxEq Bytes where (=~) = (==)+instance ApproxEq AllocationPolicy where (=~) = (==)+instance ApproxEq InitialShardCount where (=~) = (==)+instance ApproxEq FSType where (=~) = (==)++-- | Due to the way nodeattrfilters get serialized here, they may come+-- out in a different order, but they are morally equivalent+instance ApproxEq UpdatableIndexSetting where+ RoutingAllocationInclude a =~ RoutingAllocationInclude b =+ NE.sort a =~ NE.sort b+ RoutingAllocationExclude a =~ RoutingAllocationExclude b =+ NE.sort a =~ NE.sort b+ RoutingAllocationRequire a =~ RoutingAllocationRequire b =+ NE.sort a =~ NE.sort b+ a =~ b = a == b+ showApproxEq (RoutingAllocationInclude xs) = show (RoutingAllocationInclude (NE.sort xs))+ showApproxEq (RoutingAllocationExclude xs) = show (RoutingAllocationExclude (NE.sort xs))+ showApproxEq (RoutingAllocationRequire xs) = show (RoutingAllocationRequire (NE.sort xs))+ showApproxEq x = show x
+ tests/Test/BulkAPI.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-}++module Test.BulkAPI (spec) where++import Data.Function ((&))+#if MIN_VERSION_base(4,11,0)+import Data.Functor ((<&>))+#endif++import Test.Common+import Test.Import++import qualified Data.HashMap.Strict as HM+import qualified Data.Vector as V+import qualified Lens.Micro.Aeson as LMA++newtype BulkTest =+ BulkTest Text+ deriving (Eq, Show)++instance ToJSON BulkTest where+ toJSON (BulkTest name') =+ object ["name" .= name']++instance FromJSON BulkTest where+ parseJSON = withObject "BulkTest" parse+ where+ parse o = do+ t <- o .: "name"+ BulkTest <$> parseJSON t++data BulkScriptTest = BulkScriptTest+ { bstName :: Text+ , bstCounter :: Int+ }+ deriving (Eq, Show)++instance ToJSON BulkScriptTest where+ toJSON (BulkScriptTest name' count) =+ object ["name" .= name', "counter" .= count]++instance FromJSON BulkScriptTest where+ parseJSON = withObject "BulkScriptTest" $ \v -> BulkScriptTest+ <$> v.: "name"+ <*> v .: "counter"++assertDocs :: (FromJSON a, Show a, Eq a) => [(DocId, a)] -> BH IO ()+assertDocs as = do+ let (ids, docs) = unzip as+ res <- ids & traverse (getDocument testIndex)+ <&> traverse (fmap getSource . eitherDecode . responseBody)++ liftIO $ res `shouldBe` Right (Just <$> docs)++upsertDocs :: (ToJSON a, Show a, Eq a)+ => (Value -> UpsertPayload)+ -> [(DocId, a)]+ -> BH IO ()+upsertDocs f as = do+ let batch = as <&> (\(id_, doc) -> BulkUpsert testIndex id_ (f $ toJSON doc) []) & V.fromList+ bulk batch >> refreshIndex testIndex >> pure ()++spec :: Spec+spec =+ describe "Bulk API" $ do+ it "upsert operations" $ withTestEnv $ do+ _ <- insertData++ -- Upserting in a to a fresh index should insert+ let toInsert = [(DocId "3", BulkTest "stringer"), (DocId "5", BulkTest "sobotka"), (DocId "7", BulkTest "snoop")]+ upsertDocs UpsertDoc toInsert+ assertDocs toInsert++ -- Upserting existing documents should update+ let toUpsert = [(DocId "3", BulkTest "bell"), (DocId "5", BulkTest "frank"), (DocId "7", BulkTest "snoop")]+ upsertDocs UpsertDoc toUpsert+ assertDocs toUpsert++ it "upsert with a script" $ withTestEnv $ do+ _ <- insertData++ -- first insert the batch+ let batch = [(DocId "3", BulkScriptTest "stringer" 0), (DocId "5", BulkScriptTest "sobotka" 3)]+ upsertDocs UpsertDoc batch++ -- then upsert with the script++ let script = Script+ { scriptLanguage = Just $ ScriptLanguage "painless"+ , scriptSource = ScriptInline "ctx._source.counter += params.count"+ , scriptParams = Just $ ScriptParams $ HM.fromList [("count", Number 2)]+ }++ upsertDocs (UpsertScript False script) batch+ assertDocs (batch <&> (\(i, v) -> (i, v { bstCounter = bstCounter v + 2 })))++ it "script upsert without scripted_upsert" $ withTestEnv $ do+ _ <- insertData++ let batch = [(DocId "3", BulkScriptTest "stringer" 0), (DocId "5", BulkScriptTest "sobotka" 3)]++ let script = Script+ { scriptLanguage = Just $ ScriptLanguage "painless"+ , scriptSource = ScriptInline "ctx._source.counter += params.count"+ , scriptParams = Just $ ScriptParams $ HM.fromList [("count", Number 2)]+ }++ -- Without "script_upsert" flag new documents are simply inserted and are not handled by the script+ upsertDocs (UpsertScript False script) batch+ assertDocs batch++ it "script upsert with scripted_upsert -- will fail if a bug on elasticsearch is fix, delete patch line" $ withTestEnv $ do+ _ <- insertData++ let batch = [(DocId "3", BulkScriptTest "stringer" 0), (DocId "5", BulkScriptTest "sobotka" 3)]++ let script = Script+ { scriptLanguage = Just $ ScriptLanguage "painless"+ , scriptSource = ScriptInline "ctx._source.counter += params.count"+ , scriptParams = Just $ ScriptParams $ HM.fromList [("count", Number 2)]+ }++ -- Without "script_upsert" flag new documents are simply inserted and are not handled by the script+ upsertDocs (UpsertScript True script) batch++ -- if this test fails due to a bug in ES7: https://github.com/elastic/elasticsearch/issues/48670, delete next line when it is solved.+ let batch = [(DocId "3", BulkScriptTest "stringer" 2), (DocId "5", BulkScriptTest "sobotka" 3)]+ assertDocs (batch <&> (\(i, v) -> (i, v { bstCounter = bstCounter v + 2 })))++ it "inserts all documents we request" $ withTestEnv $ do+ _ <- insertData+ let firstTest = BulkTest "blah"+ let secondTest = BulkTest "bloo"+ let thirdTest = BulkTest "graffle"+ let fourthTest = BulkTest "garabadoo"+ let fifthTest = BulkTest "serenity"+ let firstDoc = BulkIndex testIndex (DocId "2") (toJSON firstTest)+ let secondDoc = BulkCreate testIndex (DocId "3") (toJSON secondTest)+ let thirdDoc = BulkCreateEncoding testIndex (DocId "4") (toEncoding thirdTest)+ let fourthDoc = BulkIndexAuto testIndex (toJSON fourthTest)+ let fifthDoc = BulkIndexEncodingAuto testIndex (toEncoding fifthTest)+ let stream = V.fromList [firstDoc, secondDoc, thirdDoc, fourthDoc, fifthDoc]+ _ <- bulk stream+ -- liftIO $ pPrint bulkResp+ _ <- refreshIndex testIndex+ -- liftIO $ pPrint refreshResp+ fDoc <- getDocument testIndex (DocId "2")+ sDoc <- getDocument testIndex (DocId "3")+ tDoc <- getDocument testIndex (DocId "4")+ -- note that we cannot query for fourthDoc and fifthDoc since we+ -- do not know their autogenerated ids.+ let maybeFirst =+ eitherDecode+ $ responseBody fDoc+ :: Either String (EsResult BulkTest)+ let maybeSecond =+ eitherDecode+ $ responseBody sDoc+ :: Either String (EsResult BulkTest)+ let maybeThird =+ eitherDecode+ $ responseBody tDoc+ :: Either String (EsResult BulkTest)+ -- liftIO $ pPrint [maybeFirst, maybeSecond, maybeThird]+ liftIO $ do+ fmap getSource maybeFirst `shouldBe` Right (Just firstTest)+ fmap getSource maybeSecond `shouldBe` Right (Just secondTest)+ fmap getSource maybeThird `shouldBe` Right (Just thirdTest)+ -- Since we can't get the docs by doc id, we check for their existence in+ -- a match all query.+ let query = MatchAllQuery Nothing+ let search = mkSearch (Just query) Nothing+ resp <- searchByIndex testIndex search+ parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))+ case parsed of+ Left e ->+ liftIO $ expectationFailure ("Expected a script-transformed result but got: " <> show e)+ (Right sr) -> do+ liftIO $+ hitsTotal (searchHits sr) `shouldBe` HitsTotal 6 HTR_EQ+ let nameList :: [Text]+ nameList =+ hits (searchHits sr)+ ^.. traverse+ . to hitSource+ . _Just+ . LMA.key "name"+ . _String+ liftIO $+ nameList+ `shouldBe` ["blah","bloo","graffle","garabadoo","serenity"]
+ tests/Test/Common.hs view
@@ -0,0 +1,250 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}++module Test.Common where++import Test.Import++import qualified Data.Map as M+import qualified Data.SemVer as SemVer+import qualified Network.HTTP.Types.Status as NHTS++testServer :: Server+testServer = Server "http://localhost:9200"+testIndex :: IndexName+testIndex = IndexName "bloodhound-tests-twitter-1"++withTestEnv :: BH IO a -> IO a+withTestEnv = withBH defaultManagerSettings testServer++data Location = Location { lat :: Double+ , lon :: Double } deriving (Eq, Show)++data Tweet = Tweet { user :: Text+ , postDate :: UTCTime+ , message :: Text+ , age :: Int+ , location :: Location+ , extra :: Maybe Text }+ deriving (Eq, Show)++$(deriveJSON defaultOptions ''Location)+$(deriveJSON defaultOptions ''Tweet)++data ConversationMapping = ConversationMapping deriving (Eq, Show)++instance ToJSON ConversationMapping where+ toJSON ConversationMapping =+ object ["properties" .=+ object ["reply_join" .= object [ "type" .= ("join" :: Text)+ , "relations" .= object [ "message" .= ("reply" :: Text) ]+ ]+ , "user" .= object [ "type" .= ("text" :: Text)+ , "fielddata" .= True+ ]+ -- Serializing the date as a date is breaking other tests, mysteriously.+ -- , "postDate" .= object [ "type" .= ("date" :: Text)+ -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]+ , "message" .= object ["type" .= ("text" :: Text)]+ , "age" .= object ["type" .= ("integer" :: Text)]+ , "location" .= object ["type" .= ("geo_point" :: Text)]+ , "extra" .= object ["type" .= ("keyword" :: Text)]+ ]]++getServerVersion :: IO (Maybe SemVer.Version)+getServerVersion = fmap extractVersion <$> withTestEnv getStatus+ where+ extractVersion = versionNumber . number . version++createExampleIndex :: (MonadBH m) => m Reply+createExampleIndex =+ createIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) testIndex++deleteExampleIndex :: (MonadBH m) => m Reply+deleteExampleIndex =+ deleteIndex testIndex++validateStatus :: Show body => Response body -> Int -> Expectation+validateStatus resp expected =+ if actual == expected+ then return ()+ else expectationFailure ("Expected " <> show expected <> " but got " <> show actual <> ": " <> show body)+ where+ actual = NHTS.statusCode (responseStatus resp)+ body = responseBody resp++data TweetMapping = TweetMapping deriving (Eq, Show)++instance ToJSON TweetMapping where+ toJSON TweetMapping =+ object ["properties" .=+ object [ "user" .= object [ "type" .= ("text" :: Text)+ , "fielddata" .= True+ ]+ -- Serializing the date as a date is breaking other tests, mysteriously.+ -- , "postDate" .= object [ "type" .= ("date" :: Text)+ -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]+ , "message" .= object ["type" .= ("text" :: Text)]+ , "age" .= object ["type" .= ("integer" :: Text)]+ , "location" .= object ["type" .= ("geo_point" :: Text)]+ , "extra" .= object ["type" .= ("keyword" :: Text)]+ ]]++exampleTweet :: Tweet+exampleTweet = Tweet { user = "bitemyapp"+ , postDate = UTCTime+ (ModifiedJulianDay 55000)+ (secondsToDiffTime 10)+ , message = "Use haskell!"+ , age = 10000+ , location = Location 40.12 (-71.34)+ , extra = Nothing }++tweetWithExtra :: Tweet+tweetWithExtra = Tweet { user = "bitemyapp"+ , postDate = UTCTime+ (ModifiedJulianDay 55000)+ (secondsToDiffTime 10)+ , message = "Use haskell!"+ , age = 10000+ , location = Location 40.12 (-71.34)+ , extra = Just "blah blah" }++newAge :: Int+newAge = 31337++newUser :: Text+newUser = "someotherapp"++tweetPatch :: Value+tweetPatch =+ object [ "age" .= newAge+ , "user" .= newUser+ ]++patchedTweet :: Tweet+patchedTweet = exampleTweet{age = newAge, user = newUser}++otherTweet :: Tweet+otherTweet = Tweet { user = "notmyapp"+ , postDate = UTCTime+ (ModifiedJulianDay 55000)+ (secondsToDiffTime 11)+ , message = "Use haskell!"+ , age = 1000+ , location = Location 40.12 (-71.34)+ , extra = Nothing }++resetIndex :: BH IO ()+resetIndex = do+ _ <- deleteExampleIndex+ _ <- createExampleIndex+ _ <- putMapping testIndex TweetMapping+ return ()++insertData :: BH IO Reply+insertData = do+ resetIndex+ insertData' defaultIndexDocumentSettings++insertData' :: IndexDocumentSettings -> BH IO Reply+insertData' ids = do+ r <- indexDocument testIndex ids exampleTweet (DocId "1")+ _ <- refreshIndex testIndex+ return r++updateData :: BH IO Reply+updateData = do+ r <- updateDocument testIndex defaultIndexDocumentSettings tweetPatch (DocId "1")+ _ <- refreshIndex testIndex+ return r++insertOther :: BH IO ()+insertOther = do+ _ <- indexDocument testIndex defaultIndexDocumentSettings otherTweet (DocId "2")+ _ <- refreshIndex testIndex+ return ()++insertExtra :: BH IO ()+insertExtra = do+ _ <- indexDocument testIndex defaultIndexDocumentSettings tweetWithExtra (DocId "4")+ _ <- refreshIndex testIndex+ return ()++insertWithSpaceInId :: BH IO ()+insertWithSpaceInId = do+ _ <- indexDocument testIndex defaultIndexDocumentSettings exampleTweet (DocId "Hello World")+ _ <- refreshIndex testIndex+ return ()++searchTweet :: Search -> BH IO (Either EsError Tweet)+searchTweet search = do+ result <- searchTweets search+ let myTweet :: Either EsError Tweet+ myTweet = grabFirst result+ return myTweet++searchTweets :: Search -> BH IO (Either EsError (SearchResult Tweet))+searchTweets search = parseEsResponse =<< searchByIndex testIndex search++searchExpectNoResults :: Search -> BH IO ()+searchExpectNoResults search = do+ result <- searchTweets search+ let emptyHits = fmap (hits . searchHits) result+ liftIO $+ emptyHits `shouldBe` Right []++searchExpectAggs :: Search -> BH IO ()+searchExpectAggs search = do+ reply <- searchByIndex testIndex search+ let isEmpty x = return (M.null x)+ let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)+ liftIO $+ (result >>= aggregations >>= isEmpty) `shouldBe` Just False++searchValidBucketAgg :: (BucketAggregation a, FromJSON a, Show a) =>+ Search -> Text -> (Text -> AggregationResults -> Maybe (Bucket a)) -> BH IO ()+searchValidBucketAgg search aggKey extractor = do+ reply <- searchByIndex testIndex search+ let bucketDocs = docCount . head . buckets+ let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)+ let count = result >>= aggregations >>= extractor aggKey >>= \x -> return (bucketDocs x)+ liftIO $+ count `shouldBe` Just 1++searchTermsAggHint :: [ExecutionHint] -> BH IO ()+searchTermsAggHint hints = do+ let terms hint = TermsAgg $ (mkTermsAggregation "user.keyword") { termExecutionHint = Just hint }+ let search hint = mkAggregateSearch Nothing $ mkAggregations "users" $ terms hint+ forM_ hints $ searchExpectAggs . search+ -- forM_ hints (\x -> searchValidBucketAgg (search x) "users" toTerms)++searchTweetHighlight :: Search+ -> BH IO (Either EsError (Maybe HitHighlight))+searchTweetHighlight search = do+ result <- searchTweets search+ let tweetHit :: Either EsError (Maybe (Hit Tweet))+ tweetHit = fmap (headMay . hits . searchHits) result+ myHighlight :: Either EsError (Maybe HitHighlight)+ myHighlight = (join . fmap hitHighlight) <$> tweetHit+ return myHighlight++searchExpectSource :: Source -> Either EsError Value -> BH IO ()+searchExpectSource src expected = do+ _ <- insertData+ let query = QueryMatchQuery $ mkMatchQuery (FieldName "message") (QueryString "haskell")+ let search = (mkSearch (Just query) Nothing) { source = Just src }+ reply <- searchByIndex testIndex search+ result <- parseEsResponse reply+ let value = grabFirst result+ liftIO $+ value `shouldBe` expected++atleast :: SemVer.Version -> IO Bool+atleast v = getServerVersion >>= \x -> return $ x >= Just v++atmost :: SemVer.Version -> IO Bool+atmost v = getServerVersion >>= \x -> return $ x <= Just v++is :: SemVer.Version -> IO Bool+is v = getServerVersion >>= \x -> return $ x == Just v
+ tests/Test/Count.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Count (spec) where++import Test.Common+import Test.Import++spec :: Spec+spec =+ describe "Count" $+ it "returns count of a query" $ withTestEnv $ do+ _ <- insertData+ let query = MatchAllQuery Nothing+ count = CountQuery query+ c <- countByIndex testIndex count+ liftIO $ (crCount <$> c) `shouldBe` (Right 1)
+ tests/Test/Documents.hs view
@@ -0,0 +1,59 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Documents where++import Test.Common+import Test.Import++spec :: Spec+spec =+ describe "document API" $ do+ it "indexes, updates, gets, and then deletes the generated document" $ withTestEnv $ do+ _ <- insertData+ _ <- updateData+ docInserted <- getDocument testIndex (DocId "1")+ let newTweet = eitherDecode+ (responseBody docInserted) :: Either String (EsResult Tweet)+ liftIO $ fmap getSource newTweet `shouldBe` Right (Just patchedTweet)++ it "indexes, gets, and then deletes the generated document with a DocId containing a space" $ withTestEnv $ do+ _ <- insertWithSpaceInId+ docInserted <- getDocument testIndex (DocId "Hello World")+ let newTweet = eitherDecode+ (responseBody docInserted) :: Either String (EsResult Tweet)+ liftIO $ fmap getSource newTweet `shouldBe` Right (Just exampleTweet)++ it "produces a parseable result when looking up a bogus document" $ withTestEnv $ do+ doc <- getDocument testIndex (DocId "bogus")+ let noTweet = eitherDecode+ (responseBody doc) :: Either String (EsResult Tweet)+ liftIO $ fmap foundResult noTweet `shouldBe` Right Nothing++ it "can use optimistic concurrency control" $ withTestEnv $ do+ let ev = ExternalDocVersion minBound+ let cfg = defaultIndexDocumentSettings { idsVersionControl = ExternalGT ev }+ resetIndex+ res <- insertData' cfg+ liftIO $ isCreated res `shouldBe` True+ res' <- insertData' cfg+ liftIO $ isVersionConflict res' `shouldBe` True++ it "indexes two documents in a parent/child relationship and checks that the child exists" $ withTestEnv $ do+ resetIndex+ _ <- putMapping testIndex ConversationMapping++ let parentSettings = defaultIndexDocumentSettings { idsJoinRelation = Just (ParentDocument (FieldName "reply_join") (RelationName "message")) }+ let childSettings = defaultIndexDocumentSettings { idsJoinRelation = Just (ChildDocument (FieldName "reply_join") (RelationName "reply") (DocId "1")) }++ _ <- indexDocument testIndex parentSettings exampleTweet (DocId "1")+ _ <- indexDocument testIndex childSettings otherTweet (DocId "2")++ _ <- refreshIndex testIndex++ let query = QueryHasParentQuery $ HasParentQuery (RelationName "message") (MatchAllQuery Nothing) Nothing Nothing+ let search = mkSearch (Just query) Nothing++ resp <- searchByIndex testIndex search+ parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))++ liftIO $ fmap (hitsTotal . searchHits) parsed `shouldBe` Right (HitsTotal 1 HTR_EQ)
+ tests/Test/Generators.hs view
@@ -0,0 +1,572 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}++module Test.Generators where++import Database.Bloodhound++import Test.Import++import qualified Data.HashMap.Strict as HM+import qualified Data.List as L+import qualified Data.List.NonEmpty as NE+import qualified Data.Map as M+import qualified Data.Text as T+import qualified Data.SemVer as SemVer+import Test.QuickCheck.TH.Generators++import Test.ApproxEq++instance Arbitrary NominalDiffTime where+ arbitrary = fromInteger <$> arbitrary++#if !MIN_VERSION_QuickCheck(2,8,0)+instance (Arbitrary k, Ord k, Arbitrary v) => Arbitrary (M.Map k v) where+ arbitrary = M.fromList <$> arbitrary+#endif++instance Arbitrary Text where+ arbitrary = T.pack <$> arbitrary++instance Arbitrary UTCTime where+ arbitrary = UTCTime+ <$> arbitrary+ <*> (fromRational . toRational <$> choose (0::Double, 86400))++instance Arbitrary Day where+ arbitrary =+ ModifiedJulianDay . (2000 +) <$> arbitrary+ shrink =+ (ModifiedJulianDay <$>) . shrink . toModifiedJulianDay++#if !MIN_VERSION_QuickCheck(2,9,0)+instance Arbitrary a => Arbitrary (NonEmpty a) where+ arbitrary = liftA2 (:|) arbitrary arbitrary+#endif++arbitraryScore :: Gen Score+arbitraryScore = fmap getPositive <$> arbitrary++instance (Arbitrary a, Typeable a) => Arbitrary (Hit a) where+ arbitrary = Hit <$> arbitrary+ <*> arbitrary+ <*> arbitraryScore+ <*> arbitrary+ <*> return Nothing+ <*> arbitrary+ <*> arbitrary++instance Arbitrary HitFields where+ arbitrary = pure (HitFields M.empty)+ shrink = const []++instance Arbitrary HitsTotalRelation where+ arbitrary = oneof [pure HTR_EQ, pure HTR_GTE]++instance Arbitrary HitsTotal where+ arbitrary = do+ tot <- getPositive <$> arbitrary+ relation <- arbitrary+ return $ HitsTotal tot relation++instance (Arbitrary a, Typeable a) => Arbitrary (SearchHits a) where+ arbitrary = reduceSize $ do+ tot <- arbitrary+ score <- arbitraryScore+ hs <- arbitrary+ return $ SearchHits tot score hs+++reduceSize :: Gen a -> Gen a+reduceSize f = sized $ \n -> resize (n `div` 2) f++arbitraryAlphaNum :: Gen Char+arbitraryAlphaNum = oneof [choose ('a', 'z')+ ,choose ('A','Z')+ , choose ('0', '9')]++instance Arbitrary RoutingValue where+ arbitrary = RoutingValue . T.pack <$> listOf1 arbitraryAlphaNum++instance Arbitrary AliasRouting where+ arbitrary = oneof [allAlias+ ,one+ ,theOther+ ,both']+ where one = GranularAliasRouting+ <$> (Just <$> arbitrary)+ <*> pure Nothing+ theOther = GranularAliasRouting Nothing+ <$> (Just <$> arbitrary)+ both' = GranularAliasRouting+ <$> (Just <$> arbitrary)+ <*> (Just <$> arbitrary)+ allAlias = AllAliasRouting <$> arbitrary++++instance Arbitrary FieldName where+ arbitrary =+ FieldName+ . T.pack+ <$> listOf1 arbitraryAlphaNum+++#if MIN_VERSION_base(4,10,0)+-- Test.QuickCheck.Modifiers++qcNonEmptyToNonEmpty :: NonEmptyList a -> NonEmpty a+qcNonEmptyToNonEmpty (NonEmpty (a : xs)) = (a :| xs)+qcNonEmptyToNonEmpty (NonEmpty []) = error "NonEmpty was empty!"++instance Arbitrary a => Arbitrary (NonEmpty a) where+ arbitrary =+ qcNonEmptyToNonEmpty+ <$> arbitrary+#endif+instance Arbitrary ScriptFields where+ arbitrary =+ pure $ ScriptFields $+ HM.fromList []++ shrink = const []++instance Arbitrary ScriptParams where+ arbitrary =+ pure $ ScriptParams $+ HM.fromList [ ("a", Number 42)+ , ("b", String "forty two")+ ]++ shrink = const []++instance Arbitrary RegexpFlags where+ arbitrary = oneof [ pure AllRegexpFlags+ , pure NoRegexpFlags+ , SomeRegexpFlags <$> genUniqueFlags+ ]+ where genUniqueFlags =+ NE.fromList . L.nub+ <$> listOf1 arbitrary++instance Arbitrary IndexAliasCreate where+ arbitrary =+ IndexAliasCreate+ <$> arbitrary+ <*> reduceSize arbitrary++instance Arbitrary Query where+ arbitrary =+ reduceSize+ $ oneof [ TermQuery <$> arbitrary <*> arbitrary+ , TermsQuery <$> arbitrary <*> arbitrary+ , QueryMatchQuery <$> arbitrary+ , QueryMultiMatchQuery <$> arbitrary+ , QueryBoolQuery <$> arbitrary+ , QueryBoostingQuery <$> arbitrary+ , QueryCommonTermsQuery <$> arbitrary+ , ConstantScoreQuery <$> arbitrary <*> arbitrary+ , QueryDisMaxQuery <$> arbitrary+ , QueryFuzzyLikeThisQuery <$> arbitrary+ , QueryFuzzyLikeFieldQuery <$> arbitrary+ , QueryFuzzyQuery <$> arbitrary+ , QueryHasChildQuery <$> arbitrary+ , QueryHasParentQuery <$> arbitrary+ , IdsQuery <$> arbitrary+ , QueryIndicesQuery <$> arbitrary+ , MatchAllQuery <$> arbitrary+ , QueryMoreLikeThisQuery <$> arbitrary+ , QueryMoreLikeThisFieldQuery <$> arbitrary+ , QueryNestedQuery <$> arbitrary+ , QueryPrefixQuery <$> arbitrary+ , QueryQueryStringQuery <$> arbitrary+ , QuerySimpleQueryStringQuery <$> arbitrary+ , QueryRangeQuery <$> arbitrary+ , QueryRegexpQuery <$> arbitrary+ ]+ -- TODO: Implement shrink+ -- shrink = genericShrink++instance Arbitrary Filter where+ arbitrary =+ Filter <$> arbitrary+ shrink (Filter q) =+ Filter <$> shrink q++instance Arbitrary ReplicaBounds where+ arbitrary = oneof [ replicasBounded+ , replicasLowerBounded+ , pure ReplicasUnbounded+ ]+ where replicasBounded = do+ Positive a <- arbitrary+ Positive b <- arbitrary+ return (ReplicasBounded a b)+ replicasLowerBounded = do+ Positive a <- arbitrary+ return (ReplicasLowerBounded a)++instance Arbitrary NodeAttrName where+ arbitrary =+ NodeAttrName+ . T.pack+ <$> listOf1 arbitraryAlphaNum+++instance Arbitrary NodeAttrFilter where+ arbitrary = do+ n <- arbitrary+ xs <- listOf1 (listOf1 arbitraryAlphaNum)+ let (s, ss) = unpackConsPartial xs+ ts = T.pack <$> s :| ss+ return (NodeAttrFilter n ts)+ where -- listOf1 means this shouldn't blow up.+ unpackConsPartial (x : xs) = (x, xs)+ unpackConsPartial _ = error "unpackConsPartial failed but shouldn't have"++instance Arbitrary VersionNumber where+ arbitrary = do+ major <- posInt+ minor <- posInt+ patch <- posInt+ return $ VersionNumber $ SemVer.version major minor patch [] []+ where+ posInt = getPositive <$> arbitrary++instance Arbitrary TemplateQueryKeyValuePairs where+ arbitrary = TemplateQueryKeyValuePairs . HM.fromList <$> arbitrary+ shrink (TemplateQueryKeyValuePairs x) = map (TemplateQueryKeyValuePairs . HM.fromList) . shrink $ HM.toList x++makeArbitrary ''IndexName+instance Arbitrary IndexName where arbitrary = arbitraryIndexName+makeArbitrary ''DocId+instance Arbitrary DocId where arbitrary = arbitraryDocId+makeArbitrary ''Version+instance Arbitrary Version where arbitrary = arbitraryVersion+makeArbitrary ''BuildHash+instance Arbitrary BuildHash where arbitrary = arbitraryBuildHash+makeArbitrary ''IndexAliasRouting+instance Arbitrary IndexAliasRouting where arbitrary = arbitraryIndexAliasRouting+makeArbitrary ''ShardCount+instance Arbitrary ShardCount where arbitrary = arbitraryShardCount+makeArbitrary ''ReplicaCount+instance Arbitrary ReplicaCount where arbitrary = arbitraryReplicaCount+makeArbitrary ''TemplateName+instance Arbitrary TemplateName where arbitrary = arbitraryTemplateName+makeArbitrary ''IndexPattern+instance Arbitrary IndexPattern where arbitrary = arbitraryIndexPattern+makeArbitrary ''QueryString+instance Arbitrary QueryString where arbitrary = arbitraryQueryString+makeArbitrary ''CacheName+instance Arbitrary CacheName where arbitrary = arbitraryCacheName+makeArbitrary ''CacheKey+instance Arbitrary CacheKey where arbitrary = arbitraryCacheKey+makeArbitrary ''Existence+instance Arbitrary Existence where arbitrary = arbitraryExistence+makeArbitrary ''CutoffFrequency+instance Arbitrary CutoffFrequency where arbitrary = arbitraryCutoffFrequency+makeArbitrary ''Analyzer+instance Arbitrary Analyzer where arbitrary = arbitraryAnalyzer+makeArbitrary ''MaxExpansions+instance Arbitrary MaxExpansions where arbitrary = arbitraryMaxExpansions+makeArbitrary ''Lenient+instance Arbitrary Lenient where arbitrary = arbitraryLenient+makeArbitrary ''Tiebreaker+instance Arbitrary Tiebreaker where arbitrary = arbitraryTiebreaker+makeArbitrary ''Boost+instance Arbitrary Boost where arbitrary = arbitraryBoost+makeArbitrary ''BoostTerms+instance Arbitrary BoostTerms where arbitrary = arbitraryBoostTerms+makeArbitrary ''MinimumMatch+instance Arbitrary MinimumMatch where arbitrary = arbitraryMinimumMatch+makeArbitrary ''DisableCoord+instance Arbitrary DisableCoord where arbitrary = arbitraryDisableCoord+makeArbitrary ''IgnoreTermFrequency+instance Arbitrary IgnoreTermFrequency where arbitrary = arbitraryIgnoreTermFrequency+makeArbitrary ''MinimumTermFrequency+instance Arbitrary MinimumTermFrequency where arbitrary = arbitraryMinimumTermFrequency+makeArbitrary ''MaxQueryTerms+instance Arbitrary MaxQueryTerms where arbitrary = arbitraryMaxQueryTerms+makeArbitrary ''Fuzziness+instance Arbitrary Fuzziness where arbitrary = arbitraryFuzziness+makeArbitrary ''PrefixLength+instance Arbitrary PrefixLength where arbitrary = arbitraryPrefixLength+makeArbitrary ''RelationName+instance Arbitrary RelationName where arbitrary = arbitraryRelationName+makeArbitrary ''PercentMatch+instance Arbitrary PercentMatch where arbitrary = arbitraryPercentMatch+makeArbitrary ''StopWord+instance Arbitrary StopWord where arbitrary = arbitraryStopWord+makeArbitrary ''QueryPath+instance Arbitrary QueryPath where arbitrary = arbitraryQueryPath+makeArbitrary ''AllowLeadingWildcard+instance Arbitrary AllowLeadingWildcard where arbitrary = arbitraryAllowLeadingWildcard+makeArbitrary ''LowercaseExpanded+instance Arbitrary LowercaseExpanded where arbitrary = arbitraryLowercaseExpanded+makeArbitrary ''EnablePositionIncrements+instance Arbitrary EnablePositionIncrements where arbitrary = arbitraryEnablePositionIncrements+makeArbitrary ''AnalyzeWildcard+instance Arbitrary AnalyzeWildcard where arbitrary = arbitraryAnalyzeWildcard+makeArbitrary ''GeneratePhraseQueries+instance Arbitrary GeneratePhraseQueries where arbitrary = arbitraryGeneratePhraseQueries+makeArbitrary ''Locale+instance Arbitrary Locale where arbitrary = arbitraryLocale+makeArbitrary ''MaxWordLength+instance Arbitrary MaxWordLength where arbitrary = arbitraryMaxWordLength+makeArbitrary ''MinWordLength+instance Arbitrary MinWordLength where arbitrary = arbitraryMinWordLength+makeArbitrary ''PhraseSlop+instance Arbitrary PhraseSlop where arbitrary = arbitraryPhraseSlop+makeArbitrary ''MinDocFrequency+instance Arbitrary MinDocFrequency where arbitrary = arbitraryMinDocFrequency+makeArbitrary ''MaxDocFrequency+instance Arbitrary MaxDocFrequency where arbitrary = arbitraryMaxDocFrequency+makeArbitrary ''Regexp+instance Arbitrary Regexp where arbitrary = arbitraryRegexp+makeArbitrary ''SimpleQueryStringQuery+instance Arbitrary SimpleQueryStringQuery where arbitrary = arbitrarySimpleQueryStringQuery+makeArbitrary ''FieldOrFields+instance Arbitrary FieldOrFields where arbitrary = arbitraryFieldOrFields+makeArbitrary ''SimpleQueryFlag+instance Arbitrary SimpleQueryFlag where arbitrary = arbitrarySimpleQueryFlag+makeArbitrary ''RegexpQuery+instance Arbitrary RegexpQuery where arbitrary = arbitraryRegexpQuery+makeArbitrary ''QueryStringQuery+instance Arbitrary QueryStringQuery where arbitrary = arbitraryQueryStringQuery+makeArbitrary ''RangeQuery+instance Arbitrary RangeQuery where arbitrary = arbitraryRangeQuery+makeArbitrary ''RangeValue+instance Arbitrary RangeValue where arbitrary = arbitraryRangeValue+makeArbitrary ''PrefixQuery+instance Arbitrary PrefixQuery where arbitrary = arbitraryPrefixQuery+makeArbitrary ''NestedQuery+instance Arbitrary NestedQuery where arbitrary = arbitraryNestedQuery+makeArbitrary ''MoreLikeThisFieldQuery+instance Arbitrary MoreLikeThisFieldQuery where arbitrary = arbitraryMoreLikeThisFieldQuery+makeArbitrary ''MoreLikeThisQuery+instance Arbitrary MoreLikeThisQuery where arbitrary = arbitraryMoreLikeThisQuery+makeArbitrary ''IndicesQuery+instance Arbitrary IndicesQuery where arbitrary = arbitraryIndicesQuery+makeArbitrary ''IgnoreUnmapped+instance Arbitrary IgnoreUnmapped where arbitrary = arbitraryIgnoreUnmapped+makeArbitrary ''MinChildren+instance Arbitrary MinChildren where arbitrary = arbitraryMinChildren+makeArbitrary ''MaxChildren+instance Arbitrary MaxChildren where arbitrary = arbitraryMaxChildren+makeArbitrary ''AggregateParentScore+instance Arbitrary AggregateParentScore where arbitrary = arbitraryAggregateParentScore+makeArbitrary ''HasParentQuery+instance Arbitrary HasParentQuery where arbitrary = arbitraryHasParentQuery+makeArbitrary ''HasChildQuery+instance Arbitrary HasChildQuery where arbitrary = arbitraryHasChildQuery+makeArbitrary ''FuzzyQuery+instance Arbitrary FuzzyQuery where arbitrary = arbitraryFuzzyQuery+makeArbitrary ''FuzzyLikeFieldQuery+instance Arbitrary FuzzyLikeFieldQuery where arbitrary = arbitraryFuzzyLikeFieldQuery+makeArbitrary ''FuzzyLikeThisQuery+instance Arbitrary FuzzyLikeThisQuery where arbitrary = arbitraryFuzzyLikeThisQuery+makeArbitrary ''DisMaxQuery+instance Arbitrary DisMaxQuery where arbitrary = arbitraryDisMaxQuery+makeArbitrary ''CommonTermsQuery+instance Arbitrary CommonTermsQuery where arbitrary = arbitraryCommonTermsQuery+makeArbitrary ''DistanceRange+instance Arbitrary DistanceRange where arbitrary = arbitraryDistanceRange+makeArbitrary ''MultiMatchQuery+instance Arbitrary MultiMatchQuery where arbitrary = arbitraryMultiMatchQuery+makeArbitrary ''LessThanD+instance Arbitrary LessThanD where arbitrary = arbitraryLessThanD+makeArbitrary ''LessThanEqD+instance Arbitrary LessThanEqD where arbitrary = arbitraryLessThanEqD+makeArbitrary ''GreaterThanD+instance Arbitrary GreaterThanD where arbitrary = arbitraryGreaterThanD+makeArbitrary ''GreaterThanEqD+instance Arbitrary GreaterThanEqD where arbitrary = arbitraryGreaterThanEqD+makeArbitrary ''LessThan+instance Arbitrary LessThan where arbitrary = arbitraryLessThan+makeArbitrary ''LessThanEq+instance Arbitrary LessThanEq where arbitrary = arbitraryLessThanEq+makeArbitrary ''GreaterThan+instance Arbitrary GreaterThan where arbitrary = arbitraryGreaterThan+makeArbitrary ''GreaterThanEq+instance Arbitrary GreaterThanEq where arbitrary = arbitraryGreaterThanEq+makeArbitrary ''GeoPoint+instance Arbitrary GeoPoint where arbitrary = arbitraryGeoPoint+makeArbitrary ''NullValue+instance Arbitrary NullValue where arbitrary = arbitraryNullValue+makeArbitrary ''MinimumMatchHighLow+instance Arbitrary MinimumMatchHighLow where arbitrary = arbitraryMinimumMatchHighLow+makeArbitrary ''CommonMinimumMatch+instance Arbitrary CommonMinimumMatch where arbitrary = arbitraryCommonMinimumMatch+makeArbitrary ''BoostingQuery+instance Arbitrary BoostingQuery where arbitrary = arbitraryBoostingQuery+makeArbitrary ''BoolQuery+instance Arbitrary BoolQuery where arbitrary = arbitraryBoolQuery+makeArbitrary ''MatchQuery+instance Arbitrary MatchQuery where arbitrary = arbitraryMatchQuery+makeArbitrary ''MultiMatchQueryType+instance Arbitrary MultiMatchQueryType where arbitrary = arbitraryMultiMatchQueryType+makeArbitrary ''BooleanOperator+instance Arbitrary BooleanOperator where arbitrary = arbitraryBooleanOperator+makeArbitrary ''ZeroTermsQuery+instance Arbitrary ZeroTermsQuery where arbitrary = arbitraryZeroTermsQuery+makeArbitrary ''MatchQueryType+instance Arbitrary MatchQueryType where arbitrary = arbitraryMatchQueryType+makeArbitrary ''SearchAliasRouting+instance Arbitrary SearchAliasRouting where arbitrary = arbitrarySearchAliasRouting+makeArbitrary ''ScoreType+instance Arbitrary ScoreType where arbitrary = arbitraryScoreType+makeArbitrary ''Distance+instance Arbitrary Distance where arbitrary = arbitraryDistance+makeArbitrary ''DistanceUnit+instance Arbitrary DistanceUnit where arbitrary = arbitraryDistanceUnit+makeArbitrary ''DistanceType+instance Arbitrary DistanceType where arbitrary = arbitraryDistanceType+makeArbitrary ''OptimizeBbox+instance Arbitrary OptimizeBbox where arbitrary = arbitraryOptimizeBbox+makeArbitrary ''GeoBoundingBoxConstraint+instance Arbitrary GeoBoundingBoxConstraint where arbitrary = arbitraryGeoBoundingBoxConstraint+makeArbitrary ''GeoFilterType+instance Arbitrary GeoFilterType where arbitrary = arbitraryGeoFilterType+makeArbitrary ''GeoBoundingBox+instance Arbitrary GeoBoundingBox where arbitrary = arbitraryGeoBoundingBox+makeArbitrary ''LatLon+instance Arbitrary LatLon where arbitrary = arbitraryLatLon+makeArbitrary ''RangeExecution+instance Arbitrary RangeExecution where arbitrary = arbitraryRangeExecution+makeArbitrary ''RegexpFlag+instance Arbitrary RegexpFlag where arbitrary = arbitraryRegexpFlag+makeArbitrary ''BoolMatch+instance Arbitrary BoolMatch where arbitrary = arbitraryBoolMatch+makeArbitrary ''Term+instance Arbitrary Term where arbitrary = arbitraryTerm+makeArbitrary ''IndexSettings+instance Arbitrary IndexSettings where arbitrary = arbitraryIndexSettings+makeArbitrary ''TokenChar+instance Arbitrary TokenChar where arbitrary = arbitraryTokenChar+makeArbitrary ''Ngram+instance Arbitrary Ngram where arbitrary = arbitraryNgram+makeArbitrary ''TokenizerDefinition+instance Arbitrary TokenizerDefinition where arbitrary = arbitraryTokenizerDefinition+makeArbitrary ''TokenFilter+instance Arbitrary TokenFilter where arbitrary = arbitraryTokenFilter+makeArbitrary ''TokenFilterDefinition+instance Arbitrary TokenFilterDefinition where arbitrary = arbitraryTokenFilterDefinition+makeArbitrary ''Language+instance Arbitrary Language where arbitrary = arbitraryLanguage+makeArbitrary ''Shingle+instance Arbitrary Shingle where arbitrary = arbitraryShingle++makeArbitrary ''CharFilter+instance Arbitrary CharFilter where arbitrary = arbitraryCharFilter+makeArbitrary ''AnalyzerDefinition+instance Arbitrary AnalyzerDefinition where arbitrary = arbitraryAnalyzerDefinition++-- TODO: This should have a proper generator that doesn't+-- create garbage that has to be filtered out.+instance Arbitrary CharFilterDefinition where+ arbitrary =+ oneof [ CharFilterDefinitionMapping+ . chomp <$> arbitrary+ , CharFilterDefinitionPatternReplace+ <$> arbitrary <*> arbitrary <*> arbitrary+ ]+ where chomp =+ M.map T.strip+ . M.mapKeys (T.replace "=>" "" . T.strip)++makeArbitrary ''Analysis+instance Arbitrary Analysis where arbitrary = arbitraryAnalysis+makeArbitrary ''Tokenizer+instance Arbitrary Tokenizer where arbitrary = arbitraryTokenizer+makeArbitrary ''Compression+instance Arbitrary Compression where arbitrary = arbitraryCompression+makeArbitrary ''Bytes+instance Arbitrary Bytes where arbitrary = arbitraryBytes+makeArbitrary ''AllocationPolicy+instance Arbitrary AllocationPolicy where arbitrary = arbitraryAllocationPolicy+makeArbitrary ''InitialShardCount+instance Arbitrary InitialShardCount where arbitrary = arbitraryInitialShardCount+makeArbitrary ''FSType+instance Arbitrary FSType where arbitrary = arbitraryFSType+makeArbitrary ''CompoundFormat+instance Arbitrary CompoundFormat where arbitrary = arbitraryCompoundFormat+makeArbitrary ''FsSnapshotRepo+instance Arbitrary FsSnapshotRepo where arbitrary = arbitraryFsSnapshotRepo+makeArbitrary ''SnapshotRepoName+instance Arbitrary SnapshotRepoName where arbitrary = arbitrarySnapshotRepoName+makeArbitrary ''DirectGeneratorSuggestModeTypes+instance Arbitrary DirectGeneratorSuggestModeTypes where arbitrary = arbitraryDirectGeneratorSuggestModeTypes+makeArbitrary ''DirectGenerators+instance Arbitrary DirectGenerators where arbitrary = arbitraryDirectGenerators+makeArbitrary ''PhraseSuggesterCollate+instance Arbitrary PhraseSuggesterCollate where arbitrary = arbitraryPhraseSuggesterCollate+makeArbitrary ''PhraseSuggesterHighlighter+instance Arbitrary PhraseSuggesterHighlighter where arbitrary = arbitraryPhraseSuggesterHighlighter+makeArbitrary ''Size+instance Arbitrary Size where arbitrary = arbitrarySize+makeArbitrary ''PhraseSuggester+instance Arbitrary PhraseSuggester where arbitrary = arbitraryPhraseSuggester+makeArbitrary ''SuggestType+instance Arbitrary SuggestType where arbitrary = arbitrarySuggestType+makeArbitrary ''Suggest+instance Arbitrary Suggest where arbitrary = arbitrarySuggest++makeArbitrary ''FunctionScoreQuery+instance Arbitrary FunctionScoreQuery where arbitrary = arbitraryFunctionScoreQuery++makeArbitrary ''FunctionScoreFunction+instance Arbitrary FunctionScoreFunction where arbitrary = arbitraryFunctionScoreFunction+makeArbitrary ''FunctionScoreFunctions+instance Arbitrary FunctionScoreFunctions where arbitrary = arbitraryFunctionScoreFunctions+makeArbitrary ''ComponentFunctionScoreFunction+instance Arbitrary ComponentFunctionScoreFunction where arbitrary = arbitraryComponentFunctionScoreFunction+makeArbitrary ''Script+instance Arbitrary Script where arbitrary = arbitraryScript+makeArbitrary ''ScriptLanguage+instance Arbitrary ScriptLanguage where arbitrary = arbitraryScriptLanguage+makeArbitrary ''ScriptSource+instance Arbitrary ScriptSource where arbitrary = arbitraryScriptSource+makeArbitrary ''ScoreMode+instance Arbitrary ScoreMode where arbitrary = arbitraryScoreMode+makeArbitrary ''BoostMode+instance Arbitrary BoostMode where arbitrary = arbitraryBoostMode+makeArbitrary ''Seed+instance Arbitrary Seed where arbitrary = arbitrarySeed+makeArbitrary ''FieldValueFactor+instance Arbitrary FieldValueFactor where arbitrary = arbitraryFieldValueFactor+makeArbitrary ''Weight+instance Arbitrary Weight where arbitrary = arbitraryWeight+makeArbitrary ''Factor+instance Arbitrary Factor where arbitrary = arbitraryFactor+makeArbitrary ''FactorMissingFieldValue+instance Arbitrary FactorMissingFieldValue where arbitrary = arbitraryFactorMissingFieldValue+makeArbitrary ''FactorModifier+instance Arbitrary FactorModifier where arbitrary = arbitraryFactorModifier++makeArbitrary ''UpdatableIndexSetting+instance Arbitrary UpdatableIndexSetting where+ arbitrary = resize 10 arbitraryUpdatableIndexSetting++newtype UpdatableIndexSetting' =+ UpdatableIndexSetting' UpdatableIndexSetting+ deriving (Show, Eq, ToJSON, FromJSON, ApproxEq, Typeable)++instance Arbitrary UpdatableIndexSetting' where+ arbitrary = do+ settings <- arbitrary+ return $ UpdatableIndexSetting' $ case settings of+ RoutingAllocationInclude xs ->+ RoutingAllocationInclude (dropDuplicateAttrNames xs)+ RoutingAllocationExclude xs ->+ RoutingAllocationExclude (dropDuplicateAttrNames xs)+ RoutingAllocationRequire xs ->+ RoutingAllocationRequire (dropDuplicateAttrNames xs)+ x -> x+ where+ dropDuplicateAttrNames =+ NE.fromList . L.nubBy sameAttrName . NE.toList+ sameAttrName a b =+ nodeAttrFilterName a == nodeAttrFilterName b+ shrink (UpdatableIndexSetting' x) = map UpdatableIndexSetting' (shrink x)
+ tests/Test/Highlights.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Highlights where++import Test.Common+import Test.Import++import qualified Data.Map as M++initHighlights :: Text -> BH IO (Either EsError (Maybe HitHighlight))+initHighlights fieldName = do+ _ <- insertData+ _ <- insertOther+ let query = QueryMatchQuery $ mkMatchQuery (FieldName fieldName) (QueryString "haskell")+ let testHighlight = Highlights Nothing [FieldHighlight (FieldName fieldName) Nothing]+ let search = mkHighlightSearch (Just query) testHighlight+ searchTweetHighlight search++spec :: Spec+spec =+ describe "Highlights API" $ do+ it "returns highlight from query when there should be one" $ withTestEnv $ do+ myHighlight <- initHighlights "message"+ liftIO $+ myHighlight `shouldBe`+ Right (Just (M.fromList [("message", ["Use <em>haskell</em>!"])]))++ it "doesn't return highlight from a query when it shouldn't" $ withTestEnv $ do+ myHighlight <- initHighlights "user"+ liftIO $+ myHighlight `shouldBe`+ Right Nothing
+ tests/Test/Import.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Import+ ( module X+ , module Test.Import+ ) where+++import Control.Applicative as X+import Control.Exception as X (evaluate)+import Control.Monad as X+import Control.Monad.Catch as X+import Control.Monad.Reader as X+import Data.Aeson as X+import Data.Aeson.TH as X+import Data.Aeson.Types as X (parseEither)+import Data.Maybe as X+import Data.List.NonEmpty as X (NonEmpty(..))+import Data.Monoid as X+import Data.Ord as X (comparing)+import Data.Proxy as X+import Data.Text as X (Text)+import Data.Time.Calendar as X (Day(..), fromGregorian)+import Data.Time.Clock as X+import Data.Typeable as X+import Database.Bloodhound as X hiding (key)+import Lens.Micro as X+import Lens.Micro.Aeson as X+import Network.HTTP.Client as X hiding (Proxy, fileSize)+import System.IO.Temp as X+import System.PosixCompat.Files as X+import Test.Hspec as X+import Test.Hspec.QuickCheck as X (prop)+import Test.QuickCheck as X hiding (Result, Success, isSuccess)+import Test.QuickCheck.Property.Monoid as X (T (..), eq, prop_Monoid)+import Text.Pretty.Simple as X (pPrint)++import qualified Data.List as L++noDuplicates :: Eq a => [a] -> Bool+noDuplicates xs = L.nub xs == xs++getSource :: EsResult a -> Maybe a+getSource = fmap _source . foundResult++grabFirst :: Either EsError (SearchResult a) -> Either EsError a+grabFirst r =+ case fmap (hitSource . head . hits . searchHits) r of+ (Left e) -> Left e+ (Right Nothing) -> Left (EsError 500 "Source was missing")+ (Right (Just x)) -> Right x++when' :: Monad m => m Bool -> m () -> m ()+when' b f = b >>= \x -> when x f++headMay :: [a] -> Maybe a+headMay (x : _) = Just x+headMay _ = Nothing
+ tests/Test/Indices.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Indices where++import Test.Common+import Test.Import++import qualified Data.List as L+import qualified Data.List.NonEmpty as NE+import qualified Data.Map as M+spec :: Spec+spec = do+ describe "Index create/delete API" $ do+ it "creates and then deletes the requested index" $ withTestEnv $ do+ -- priming state.+ _ <- deleteExampleIndex+ resp <- createExampleIndex+ deleteResp <- deleteExampleIndex+ liftIO $ do+ validateStatus resp 200+ validateStatus deleteResp 200++ describe "Index aliases" $ do+ let aname = IndexAliasName (IndexName "bloodhound-tests-twitter-1-alias")+ let alias = IndexAlias (testIndex) aname+ let create = IndexAliasCreate Nothing Nothing+ let action = AddAlias alias create+ it "handles the simple case of aliasing an existing index" $ do+ withTestEnv $ do+ resetIndex+ resp <- updateIndexAliases (action :| [])+ liftIO $ validateStatus resp 200+ let cleanup = withTestEnv (updateIndexAliases (RemoveAlias alias :| []))+ (do aliases <- withTestEnv getIndexAliases+ let expected = IndexAliasSummary alias create+ case aliases of+ Right (IndexAliasesSummary summs) ->+ L.find ((== alias) . indexAliasSummaryAlias) summs `shouldBe` Just expected+ Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)) `finally` cleanup+ it "allows alias deletion" $ do+ aliases <- withTestEnv $ do+ resetIndex+ resp <- updateIndexAliases (action :| [])+ liftIO $ validateStatus resp 200+ _ <- deleteIndexAlias aname+ getIndexAliases+ -- let expected = IndexAliasSummary alias create+ case aliases of+ Right (IndexAliasesSummary summs) ->+ L.find ( (== aname)+ . indexAlias+ . indexAliasSummaryAlias+ ) summs+ `shouldBe` Nothing+ Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)++ describe "Index Listing" $ do+ it "returns a list of index names" $ withTestEnv $ do+ _ <- createExampleIndex+ ixns <- listIndices+ liftIO (ixns `shouldContain` [testIndex])++ describe "Index Settings" $ do+ it "persists settings" $ withTestEnv $ do+ _ <- deleteExampleIndex+ _ <- createExampleIndex+ let updates = BlocksWrite False :| []+ updateResp <- updateIndexSettings updates testIndex+ liftIO $ validateStatus updateResp 200+ getResp <- getIndexSettings testIndex+ liftIO $+ getResp `shouldBe` Right (IndexSettingsSummary+ testIndex+ (IndexSettings (ShardCount 1) (ReplicaCount 0))+ (NE.toList updates))++ it "allows total fields to be set" $ withTestEnv $ do+ _ <- deleteExampleIndex+ _ <- createExampleIndex+ let updates = MappingTotalFieldsLimit 2500 :| []+ updateResp <- updateIndexSettings updates testIndex+ liftIO $ validateStatus updateResp 200+ getResp <- getIndexSettings testIndex+ liftIO $+ getResp `shouldBe` Right (IndexSettingsSummary+ testIndex+ (IndexSettings (ShardCount 1) (ReplicaCount 0))+ (NE.toList updates))++ it "allows unassigned.node_left.delayed_timeout to be set" $ withTestEnv $ do+ _ <- deleteExampleIndex+ _ <- createExampleIndex+ let updates = UnassignedNodeLeftDelayedTimeout 10 :| []+ updateResp <- updateIndexSettings updates testIndex+ liftIO $ validateStatus updateResp 200+ getResp <- getIndexSettings testIndex+ liftIO $+ getResp `shouldBe` Right (IndexSettingsSummary+ testIndex+ (IndexSettings (ShardCount 1) (ReplicaCount 0))+ (NE.toList updates))++ it "accepts customer analyzers" $ withTestEnv $ do+ _ <- deleteExampleIndex+ let analysis = Analysis+ (M.singleton "ex_analyzer"+ ( AnalyzerDefinition+ (Just (Tokenizer "ex_tokenizer"))+ (map TokenFilter+ [ "ex_filter_lowercase","ex_filter_uppercase","ex_filter_apostrophe"+ , "ex_filter_reverse","ex_filter_snowball"+ , "ex_filter_shingle"+ ]+ )+ (map CharFilter+ ["html_strip", "ex_mapping", "ex_pattern_replace"]+ )+ )+ )+ (M.singleton "ex_tokenizer"+ ( TokenizerDefinitionNgram+ ( Ngram 3 4 [TokenLetter,TokenDigit])+ )+ )+ (M.fromList+ [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase (Just Greek))+ , ("ex_filter_uppercase",TokenFilterDefinitionUppercase Nothing)+ , ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)+ , ("ex_filter_reverse",TokenFilterDefinitionReverse)+ , ("ex_filter_snowball",TokenFilterDefinitionSnowball English)+ , ("ex_filter_shingle",TokenFilterDefinitionShingle (Shingle 3 3 True False " " "_"))+ , ("ex_filter_stemmer",TokenFilterDefinitionStemmer German)+ , ("ex_filter_stop1", TokenFilterDefinitionStop (Left French))+ , ("ex_filter_stop2",+ TokenFilterDefinitionStop+ (Right+ $ map StopWord ["a", "is", "the"]))+ ]+ )+ (M.fromList+ [ ("ex_mapping", CharFilterDefinitionMapping (M.singleton "١" "1"))+ , ("ex_pattern_replace", CharFilterDefinitionPatternReplace "(\\d+)-(?=\\d)" "$1_" Nothing)+ ]+ )+ updates = [AnalysisSetting analysis]+ createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex+ liftIO $ validateStatus createResp 200+ getResp <- getIndexSettings testIndex+ liftIO $+ getResp `shouldBe` Right (IndexSettingsSummary+ testIndex+ (IndexSettings (ShardCount 1) (ReplicaCount 0))+ updates+ )++ it "accepts default compression codec" $ withTestEnv $ do+ _ <- deleteExampleIndex+ let updates = [CompressionSetting CompressionDefault]+ createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex+ liftIO $ validateStatus createResp 200+ getResp <- getIndexSettings testIndex+ liftIO $ getResp `shouldBe` Right+ (IndexSettingsSummary testIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) updates)++ it "accepts best compression codec" $ withTestEnv $ do+ _ <- deleteExampleIndex+ let updates = [CompressionSetting CompressionBest]+ createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex+ liftIO $ validateStatus createResp 200+ getResp <- getIndexSettings testIndex+ liftIO $ getResp `shouldBe` Right+ (IndexSettingsSummary testIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) updates)+++ describe "Index Optimization" $ do+ it "returns a successful response upon completion" $ withTestEnv $ do+ _ <- createExampleIndex+ resp <- forceMergeIndex (IndexList (testIndex :| [])) defaultForceMergeIndexSettings+ liftIO $ validateStatus resp 200+++ describe "Index flushing" $ do+ it "returns a successful response upon flushing" $ withTestEnv $ do+ _ <- createExampleIndex+ resp <- flushIndex testIndex+ liftIO $ validateStatus resp 200
+ tests/Test/JSON.hs view
@@ -0,0 +1,213 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Test.JSON (spec) where++import Test.Import++import qualified Data.ByteString.Lazy.Char8 as BL8+import qualified Data.List as L+import Data.List.NonEmpty (NonEmpty(..))+import qualified Data.List.NonEmpty as NE+import qualified Data.HashMap.Strict as HM+import qualified Data.Text as T+import qualified Data.Vector as V++import Test.ApproxEq+import Test.Generators++propJSON :: forall a+ . ( Arbitrary a+ , ToJSON a+ , FromJSON a+ , Show a+ , Eq a+ , Typeable a+ )+ => Proxy a -> Spec+propJSON _ = prop testName $ \(a :: a) ->+ let jsonStr = "via " <> BL8.unpack (encode a)+ in counterexample jsonStr (parseEither parseJSON (toJSON a)+ === Right a)+ where testName = show ty <> " FromJSON/ToJSON roundtrips"+ ty = typeOf (undefined :: a)++propApproxJSON :: forall a+ . ( Arbitrary a+ , ToJSON a+ , FromJSON a+ , Show a+ , ApproxEq a+ , Typeable a+ )+ => Proxy a -> Spec+propApproxJSON _ = prop testName $ \(a :: a) ->+ let jsonStr = "via " <> BL8.unpack (encode a)+ in counterexample jsonStr (parseEither parseJSON (toJSON a)+ ==~ Right a)+ where testName = show ty <> " FromJSON/ToJSON roundtrips"+ ty = typeOf (undefined :: a)++spec :: Spec+spec = do+ describe "ToJSON RegexpFlags" $ do+ it "generates the correct JSON for AllRegexpFlags" $+ toJSON AllRegexpFlags `shouldBe` String "ALL"++ it "generates the correct JSON for NoRegexpFlags" $+ toJSON NoRegexpFlags `shouldBe` String "NONE"++ it "generates the correct JSON for SomeRegexpFlags" $+ let flags = AnyString :| [ Automaton+ , Complement+ , Empty+ , Intersection+ , Interval ]+ in toJSON (SomeRegexpFlags flags) `shouldBe` String "ANYSTRING|AUTOMATON|COMPLEMENT|EMPTY|INTERSECTION|INTERVAL"++ prop "removes duplicates from flags" $ \(flags :: RegexpFlags) ->+ let String str = toJSON flags+ flagStrs = T.splitOn "|" str+ in noDuplicates flagStrs++ describe "omitNulls" $ do+ it "checks that omitNulls drops list elements when it should" $+ let dropped = omitNulls $ [ "test1" .= (toJSON ([] :: [Int]))+ , "test2" .= (toJSON ("some value" :: Text))]+ in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])++ it "checks that omitNulls doesn't drop list elements when it shouldn't" $+ let notDropped = omitNulls $ [ "test1" .= (toJSON ([1] :: [Int]))+ , "test2" .= (toJSON ("some value" :: Text))]+ in notDropped `shouldBe` Object (HM.fromList [ ("test1", Array (V.fromList [Number 1.0]))+ , ("test2", String "some value")])+ it "checks that omitNulls drops non list elements when it should" $+ let dropped = omitNulls $ [ "test1" .= (toJSON Null)+ , "test2" .= (toJSON ("some value" :: Text))]+ in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])+ it "checks that omitNulls doesn't drop non list elements when it shouldn't" $+ let notDropped = omitNulls $ [ "test1" .= (toJSON (1 :: Int))+ , "test2" .= (toJSON ("some value" :: Text))]+ in notDropped `shouldBe` Object (HM.fromList [ ("test1", Number 1.0)+ , ("test2", String "some value")])++ describe "Exact isomorphism JSON instances" $ do+ propJSON (Proxy :: Proxy Version)+ propJSON (Proxy :: Proxy IndexName)+ propJSON (Proxy :: Proxy DocId)+ propJSON (Proxy :: Proxy IndexAliasRouting)+ propJSON (Proxy :: Proxy RoutingValue)+ propJSON (Proxy :: Proxy ShardCount)+ propJSON (Proxy :: Proxy ReplicaCount)+ propJSON (Proxy :: Proxy TemplateName)+ propJSON (Proxy :: Proxy IndexPattern)+ propJSON (Proxy :: Proxy QueryString)+ propJSON (Proxy :: Proxy FieldName)+ propJSON (Proxy :: Proxy Script)+ propJSON (Proxy :: Proxy ScriptLanguage)+ propJSON (Proxy :: Proxy ScriptParams)+ propJSON (Proxy :: Proxy CacheName)+ propJSON (Proxy :: Proxy CacheKey)+ propJSON (Proxy :: Proxy Existence)+ propJSON (Proxy :: Proxy CutoffFrequency)+ propJSON (Proxy :: Proxy Analyzer)+ propJSON (Proxy :: Proxy MaxExpansions)+ propJSON (Proxy :: Proxy Lenient)+ propJSON (Proxy :: Proxy Tiebreaker)+ propJSON (Proxy :: Proxy Boost)+ propJSON (Proxy :: Proxy BoostTerms)+ propJSON (Proxy :: Proxy MinimumMatch)+ propJSON (Proxy :: Proxy DisableCoord)+ propJSON (Proxy :: Proxy IgnoreTermFrequency)+ propJSON (Proxy :: Proxy MinimumTermFrequency)+ propJSON (Proxy :: Proxy MaxQueryTerms)+ propJSON (Proxy :: Proxy Fuzziness)+ propJSON (Proxy :: Proxy PrefixLength)+ propJSON (Proxy :: Proxy RelationName)+ propJSON (Proxy :: Proxy PercentMatch)+ propJSON (Proxy :: Proxy StopWord)+ propJSON (Proxy :: Proxy QueryPath)+ propJSON (Proxy :: Proxy AllowLeadingWildcard)+ propJSON (Proxy :: Proxy LowercaseExpanded)+ propJSON (Proxy :: Proxy EnablePositionIncrements)+ propJSON (Proxy :: Proxy AnalyzeWildcard)+ propJSON (Proxy :: Proxy GeneratePhraseQueries)+ propJSON (Proxy :: Proxy Locale)+ propJSON (Proxy :: Proxy MaxWordLength)+ propJSON (Proxy :: Proxy MinWordLength)+ propJSON (Proxy :: Proxy PhraseSlop)+ propJSON (Proxy :: Proxy MinDocFrequency)+ propJSON (Proxy :: Proxy MaxDocFrequency)+ propJSON (Proxy :: Proxy Filter)+ propJSON (Proxy :: Proxy Query)+ propJSON (Proxy :: Proxy SimpleQueryStringQuery)+ propJSON (Proxy :: Proxy FieldOrFields)+ propJSON (Proxy :: Proxy SimpleQueryFlag)+ propJSON (Proxy :: Proxy RegexpQuery)+ propJSON (Proxy :: Proxy QueryStringQuery)+ propJSON (Proxy :: Proxy RangeQuery)+ propJSON (Proxy :: Proxy PrefixQuery)+ propJSON (Proxy :: Proxy NestedQuery)+ propJSON (Proxy :: Proxy MoreLikeThisFieldQuery)+ propJSON (Proxy :: Proxy MoreLikeThisQuery)+ propJSON (Proxy :: Proxy IndicesQuery)+ propJSON (Proxy :: Proxy IgnoreUnmapped)+ propJSON (Proxy :: Proxy MinChildren)+ propJSON (Proxy :: Proxy MaxChildren)+ propJSON (Proxy :: Proxy AggregateParentScore)+ propJSON (Proxy :: Proxy HasParentQuery)+ propJSON (Proxy :: Proxy HasChildQuery)+ propJSON (Proxy :: Proxy FuzzyQuery)+ propJSON (Proxy :: Proxy FuzzyLikeFieldQuery)+ propJSON (Proxy :: Proxy FuzzyLikeThisQuery)+ propJSON (Proxy :: Proxy FunctionScoreQuery)+ propJSON (Proxy :: Proxy BoostMode)+ propJSON (Proxy :: Proxy ScoreMode)+ propJSON (Proxy :: Proxy ComponentFunctionScoreFunction)+ propJSON (Proxy :: Proxy FieldValueFactor)+ propJSON (Proxy :: Proxy FactorModifier)+ propJSON (Proxy :: Proxy DisMaxQuery)+ propJSON (Proxy :: Proxy CommonTermsQuery)+ propJSON (Proxy :: Proxy CommonMinimumMatch)+ propJSON (Proxy :: Proxy BoostingQuery)+ propJSON (Proxy :: Proxy BoolQuery)+ propJSON (Proxy :: Proxy MatchQuery)+ propJSON (Proxy :: Proxy MultiMatchQueryType)+ propJSON (Proxy :: Proxy BooleanOperator)+ propJSON (Proxy :: Proxy ZeroTermsQuery)+ propJSON (Proxy :: Proxy MatchQueryType)+ propJSON (Proxy :: Proxy AliasRouting)+ propJSON (Proxy :: Proxy IndexAliasCreate)+ propJSON (Proxy :: Proxy SearchAliasRouting)+ propJSON (Proxy :: Proxy ScoreType)+ propJSON (Proxy :: Proxy Distance)+ propJSON (Proxy :: Proxy DistanceUnit)+ propJSON (Proxy :: Proxy DistanceType)+ propJSON (Proxy :: Proxy OptimizeBbox)+ propJSON (Proxy :: Proxy GeoBoundingBoxConstraint)+ propJSON (Proxy :: Proxy GeoFilterType)+ propJSON (Proxy :: Proxy GeoBoundingBox)+ propJSON (Proxy :: Proxy LatLon)+ propJSON (Proxy :: Proxy RangeExecution)+ prop "RegexpFlags FromJSON/ToJSON roundtrips, removing dups " $ \rfs ->+ let expected = case rfs of+ SomeRegexpFlags fs -> SomeRegexpFlags (NE.fromList (L.nub (NE.toList fs)))+ x -> x+ in parseEither parseJSON (toJSON rfs) === Right expected+ propJSON (Proxy :: Proxy BoolMatch)+ propJSON (Proxy :: Proxy Term)+ propJSON (Proxy :: Proxy MultiMatchQuery)+ propJSON (Proxy :: Proxy IndexSettings)+ propJSON (Proxy :: Proxy CompoundFormat)+ propJSON (Proxy :: Proxy Suggest)+ propJSON (Proxy :: Proxy DirectGenerators)+ propJSON (Proxy :: Proxy DirectGeneratorSuggestModeTypes)++ describe "Approximate isomorphism JSON instances" $ do+ propApproxJSON (Proxy :: Proxy UpdatableIndexSetting')+ propApproxJSON (Proxy :: Proxy ReplicaCount)+ propApproxJSON (Proxy :: Proxy ReplicaBounds)+ propApproxJSON (Proxy :: Proxy Bytes)+ propApproxJSON (Proxy :: Proxy AllocationPolicy)+ propApproxJSON (Proxy :: Proxy InitialShardCount)+ propApproxJSON (Proxy :: Proxy FSType)
+ tests/Test/Query.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Query where++import Test.Common+import Test.Import++import qualified Data.HashMap.Strict as HM++spec :: Spec+spec =+ describe "query API" $ do+ it "returns document for term query and identity filter" $ withTestEnv $ do+ _ <- insertData+ let query = TermQuery (Term "user" "bitemyapp") Nothing+ let filter' = Filter $ MatchAllQuery Nothing+ let search = mkSearch (Just query) (Just filter')+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "handles constant score queries" $ withTestEnv $ do+ _ <- insertData+ let query = TermsQuery "user" ("bitemyapp" :| [])+ let cfQuery = ConstantScoreQuery query (Boost 1.0)+ let filter' = Filter $ MatchAllQuery Nothing+ let search = mkSearch (Just cfQuery) (Just filter')+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for terms query and identity filter" $ withTestEnv $ do+ _ <- insertData+ let query = TermsQuery "user" ("bitemyapp" :| [])+ let filter' = Filter $ MatchAllQuery Nothing+ let search = mkSearch (Just query) (Just filter')+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for match query" $ withTestEnv $ do+ _ <- insertData+ let query = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for match query with fuzziness" $ withTestEnv $ do+ _ <- insertData+ let match = mkMatchQuery (FieldName "user") (QueryString "bidemyapp")+ let query = QueryMatchQuery $ match { matchQueryFuzziness = Just FuzzinessAuto }+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for multi-match query" $ withTestEnv $ do+ _ <- insertData+ let flds = [FieldName "user", FieldName "message"]+ let query = QueryMultiMatchQuery $ mkMultiMatchQuery flds (QueryString "bitemyapp")+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for multi-match query with a custom tiebreaker" $ withTestEnv $ do+ _ <- insertData+ let tiebreaker = Just $ Tiebreaker 0.3+ flds = [FieldName "user", FieldName "message"]+ multiQuery' = mkMultiMatchQuery flds (QueryString "bitemyapp")+ query = QueryMultiMatchQuery $ multiQuery' { multiMatchQueryTiebreaker = tiebreaker }+ search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for bool query" $ withTestEnv $ do+ _ <- insertData+ let innerQuery = QueryMatchQuery $+ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")+ let query = QueryBoolQuery $+ mkBoolQuery [innerQuery] [] [] []+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for boosting query" $ withTestEnv $ do+ _ <- insertData+ let posQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")+ let negQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "notmyapp")+ let query = QueryBoostingQuery $ BoostingQuery posQuery negQuery (Boost 0.2)+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for common terms query" $ withTestEnv $ do+ _ <- insertData+ let query = QueryCommonTermsQuery $+ CommonTermsQuery (FieldName "user")+ (QueryString "bitemyapp")+ (CutoffFrequency 0.0001)+ Or Or Nothing Nothing Nothing Nothing+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet++ it "returns document for template query" $ withTestEnv $ do+ _ <- insertData+ let query = SearchTemplateSource "{\"query\": { \"match\" : { \"{{my_field}}\" : \"{{my_value}}\" } } }"+ templateParams = TemplateQueryKeyValuePairs $ HM.fromList+ [ ("my_field", "user")+ , ("my_value", "bitemyapp")+ ]+ search = mkSearchTemplate (Right query) templateParams+ response <- parseEsResponse =<< searchByIndexTemplate testIndex search+ let myTweet = grabFirst response+ liftIO $ myTweet `shouldBe` Right exampleTweet++ it "can save, use, read and delete template queries" $ withTestEnv $ do+ _ <- insertData+ let query = SearchTemplateSource "{\"query\": { \"match\" : { \"{{my_field}}\" : \"{{my_value}}\" } } }"+ templateParams = TemplateQueryKeyValuePairs $ HM.fromList+ [ ("my_field", "user")+ , ("my_value", "bitemyapp")+ ]+ tid = SearchTemplateId "myTemplate"+ search = mkSearchTemplate (Left tid) templateParams+ _ <- storeSearchTemplate tid query+ r1 <- getSearchTemplate tid+ let t1 = eitherDecode $ responseBody r1 :: Either String GetTemplateScript+ liftIO $ t1 `shouldBe` Right (GetTemplateScript {getTemplateScriptLang = Just "mustache", getTemplateScriptSource = Just (SearchTemplateSource "{\"query\": { \"match\" : { \"{{my_field}}\" : \"{{my_value}}\" } } }"), getTemplateScriptOptions = Nothing, getTemplateScriptId = "myTemplate", getTemplateScriptFound = True})+ response <- parseEsResponse =<< searchByIndexTemplate testIndex search+ _ <- deleteSearchTemplate tid+ r2 <- getSearchTemplate tid+ let myTweet = grabFirst response+ t2 = eitherDecode $ responseBody r2 :: Either String GetTemplateScript+ liftIO $ do+ t2 `shouldBe` Right (GetTemplateScript {getTemplateScriptLang = Nothing, getTemplateScriptSource = Nothing, getTemplateScriptOptions = Nothing, getTemplateScriptId = "myTemplate", getTemplateScriptFound = False})+ myTweet `shouldBe` Right exampleTweet++ it "returns document for wildcard query" $ withTestEnv $ do+ _ <- insertData+ let query = QueryWildcardQuery $ WildcardQuery (FieldName "user") "bitemy*" (Nothing)+ let search = mkSearch (Just query) Nothing+ myTweet <- searchTweet search+ liftIO $+ myTweet `shouldBe` Right exampleTweet
+ tests/Test/Script.hs view
@@ -0,0 +1,35 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Script where++import Test.Common+import Test.Import++import qualified Data.HashMap.Strict as HM+import qualified Data.Map as M++spec :: Spec+spec =+ describe "Script" $+ it "returns a transformed document based on the script field" $ withTestEnv $ do+ _ <- insertData+ let query = MatchAllQuery Nothing+ sfv = toJSON $+ Script+ (Just (ScriptLanguage "painless"))+ (ScriptInline "doc['age'].value * 2")+ Nothing+ sf = ScriptFields $+ HM.fromList [("test1", sfv)]+ search' = mkSearch (Just query) Nothing+ search = search' { scriptFields = Just sf }+ resp <- searchByIndex testIndex search+ parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))+ case parsed of+ Left e ->+ liftIO $ expectationFailure ("Expected a script-transformed result but got: " <> show e)+ Right sr -> do+ let Just results =+ hitFields (head (hits (searchHits sr)))+ liftIO $+ results `shouldBe` HitFields (M.fromList [("test1", [Number 20000.0])])
+ tests/Test/Snapshots.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE OverloadedStrings #-}++module Test.Snapshots (spec) where++import Test.Common+import Test.Import++import Data.Maybe (fromMaybe)+import qualified Data.List as L+import qualified Data.HashMap.Strict as HM+import qualified Data.Text as T+import qualified Data.Vector as V+import qualified Network.HTTP.Types.Method as NHTM+import qualified Network.URI as URI++import Test.Generators ()++spec :: Spec+spec = do+ describe "FsSnapshotRepo" $+ prop "SnapshotRepo laws" $ \fsr ->+ fromGSnapshotRepo (toGSnapshotRepo fsr) === Right (fsr :: FsSnapshotRepo)++ describe "Snapshot repos" $ do+ it "always parses all snapshot repos API" $ when' canSnapshot $ withTestEnv $ do+ res <- getSnapshotRepos AllSnapshotRepos+ liftIO $ case res of+ Left e -> expectationFailure ("Expected a right but got Left " <> show e)+ Right _ -> return ()++ it "finds an existing list of repos" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ let r2n = SnapshotRepoName "bloodhound-repo2"+ withSnapshotRepo r1n $ \r1 ->+ withSnapshotRepo r2n $ \r2 -> do+ repos <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| [ExactRepo r2n]))+ liftIO $ case repos of+ Right xs -> do+ let srt = L.sortBy (comparing gSnapshotRepoName)+ srt xs `shouldBe` srt [r1, r2]+ Left e -> expectationFailure (show e)++ it "creates and updates with updateSnapshotRepo" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \r1 -> do+ let Just (String dir) = HM.lookup "location" (gSnapshotRepoSettingsObject (gSnapshotRepoSettings r1))+ let noCompression = FsSnapshotRepo r1n (T.unpack dir) False Nothing Nothing Nothing+ resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings noCompression+ liftIO (validateStatus resp 200)+ Right [roundtrippedNoCompression] <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| []))+ liftIO (roundtrippedNoCompression `shouldBe` toGSnapshotRepo noCompression)++ -- verify came around in 1.4 it seems+ it "can verify existing repos" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \_ -> do+ res <- verifySnapshotRepo r1n+ liftIO $ case res of+ Right (SnapshotVerification vs)+ | null vs -> expectationFailure "Expected nonempty set of verifying nodes"+ | otherwise -> return ()+ Left e -> expectationFailure (show e)++ describe "Snapshots" $ do+ it "always parses all snapshots API" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \_ -> do+ res <- getSnapshots r1n AllSnapshots+ liftIO $ case res of+ Left e -> expectationFailure ("Expected a right but got Left " <> show e)+ Right _ -> return ()++ it "can parse a snapshot that it created" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \_ -> do+ let s1n = SnapshotName "example-snapshot"+ withSnapshot r1n s1n $ do+ res <- getSnapshots r1n (SnapshotList (ExactSnap s1n :| []))+ liftIO $ case res of+ Right [snap]+ | snapInfoState snap == SnapshotSuccess &&+ snapInfoName snap == s1n -> return ()+ | otherwise -> expectationFailure (show snap)+ Right [] -> expectationFailure "There were no snapshots"+ Right snaps -> expectationFailure ("Expected 1 snapshot but got" <> show (length snaps))+ Left e -> expectationFailure (show e)++ describe "Snapshot restore" $ do+ it "can restore a snapshot that we create" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \_ -> do+ let s1n = SnapshotName "example-snapshot"+ withSnapshot r1n s1n $ do+ let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True }+ -- have to close an index to restore it+ resp1 <- closeIndex testIndex+ liftIO (validateStatus resp1 200)+ resp2 <- restoreSnapshot r1n s1n settings+ liftIO (validateStatus resp2 200)++ it "can restore and rename" $ when' canSnapshot $ withTestEnv $ do+ let r1n = SnapshotRepoName "bloodhound-repo1"+ withSnapshotRepo r1n $ \_ -> do+ let s1n = SnapshotName "example-snapshot"+ withSnapshot r1n s1n $ do+ let pat = RestoreRenamePattern "bloodhound-tests-twitter-(\\d+)"+ let replace = RRTLit "restored-" :| [RRSubWholeMatch]+ let expectedIndex = IndexName "restored-bloodhound-tests-twitter-1"+ let overrides = RestoreIndexSettings { restoreOverrideReplicas = Just (ReplicaCount 0) }+ let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True+ , snapRestoreRenamePattern = Just pat+ , snapRestoreRenameReplacement = Just replace+ , snapRestoreIndexSettingsOverrides = Just overrides+ }+ -- have to close an index to restore it+ let go = do+ resp <- restoreSnapshot r1n s1n settings+ liftIO (validateStatus resp 200)+ exists <- indexExists expectedIndex+ liftIO (exists `shouldBe` True)+ go `finally` deleteIndex expectedIndex++-- | Get configured repo paths for snapshotting. Note that by default+-- this is not enabled and if we are over es 1.5, we won't be able to+-- test snapshotting. Note that this can and should be part of the+-- client functionality in a much less ad-hoc incarnation.+getRepoPaths :: IO [FilePath]+getRepoPaths = withTestEnv $ do+ bhe <- getBHEnv+ let Server s = bhServer bhe+ let tUrl = s <> "/" <> "_nodes"+ initReq <- parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack tUrl))+ let req = setRequestIgnoreStatus $ initReq { method = NHTM.methodGet }+ Right (Object o) <- parseEsResponse =<< liftIO (httpLbs req (bhManager bhe))+ return $ fromMaybe mempty $ do+ Object nodes <- HM.lookup "nodes" o+ Object firstNode <- snd <$> headMay (HM.toList nodes)+ Object settings <- HM.lookup "settings" firstNode+ Object path <- HM.lookup "path" settings+ Array repo <- HM.lookup "repo" path+ return [ T.unpack t | String t <- V.toList repo]++-- | 1.5 and earlier don't care about repo paths+canSnapshot :: IO Bool+canSnapshot = do+ repoPaths <- getRepoPaths+ return (not (null repoPaths))++withSnapshotRepo+ :: ( MonadMask m+ , MonadBH m+ )+ => SnapshotRepoName+ -> (GenericSnapshotRepo -> m a)+ -> m a+withSnapshotRepo srn@(SnapshotRepoName n) f = do+ repoPaths <- liftIO getRepoPaths+ -- we'll use the first repo path if available, otherwise system temp+ -- dir. Note that this will fail on ES > 1.6, so be sure you use+ -- @when' canSnapshot@.+ case repoPaths of+ (firstRepoPath:_) -> withTempDirectory firstRepoPath (T.unpack n) $ \dir -> bracket (alloc dir) free f+ [] -> withSystemTempDirectory (T.unpack n) $ \dir -> bracket (alloc dir) free f+ where+ alloc dir = do+ liftIO (setFileMode dir mode)+ let repo = FsSnapshotRepo srn "bloodhound-tests-backups" True Nothing Nothing Nothing+ resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings repo+ liftIO (validateStatus resp 200)+ return (toGSnapshotRepo repo)+ mode = ownerModes `unionFileModes` groupModes `unionFileModes` otherModes+ free GenericSnapshotRepo {..} = do+ resp <- deleteSnapshotRepo gSnapshotRepoName+ liftIO (validateStatus resp 200)+++withSnapshot+ :: ( MonadMask m+ , MonadBH m+ )+ => SnapshotRepoName+ -> SnapshotName+ -> m a+ -> m a+withSnapshot srn sn = bracket_ alloc free+ where+ alloc = do+ resp <- createSnapshot srn sn createSettings+ liftIO (validateStatus resp 200)+ -- We'll make this synchronous for testing purposes+ createSettings = defaultSnapshotCreateSettings { snapWaitForCompletion = True+ , snapIndices = Just (IndexList (testIndex :| []))+ -- We don't actually need to back up any data+ }+ free =+ deleteSnapshot srn sn
+ tests/Test/Sorting.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Sorting where++import Test.Common+import Test.Import++spec :: Spec+spec =+ describe "sorting" $+ it "returns documents in the right order" $ withTestEnv $ do+ _ <- insertData+ _ <- insertOther+ let sortSpec = DefaultSortSpec $ mkSort (FieldName "age") Ascending+ let search = Search Nothing+ Nothing (Just [sortSpec]) Nothing Nothing+ False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing Nothing+ Nothing Nothing+ result <- searchTweets search+ let myTweet = grabFirst result+ liftIO $+ myTweet `shouldBe` Right otherTweet
+ tests/Test/SourceFiltering.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.SourceFiltering where++import Test.Common+import Test.Import++import qualified Data.HashMap.Strict as HM++spec :: Spec+spec =+ describe "Source filtering" $ do++ it "doesn't include source when sources are disabled" $ withTestEnv $+ searchExpectSource+ NoSource+ (Left (EsError 500 "Source was missing"))++ it "includes a source" $ withTestEnv $+ searchExpectSource+ (SourcePatterns (PopPattern (Pattern "message")))+ (Right (Object (HM.fromList [("message", String "Use haskell!")])))++ it "includes sources" $ withTestEnv $+ searchExpectSource+ (SourcePatterns (PopPatterns [Pattern "user", Pattern "message"]))+ (Right (Object (HM.fromList [("user",String "bitemyapp"),("message", String "Use haskell!")])))++ it "includes source patterns" $ withTestEnv $+ searchExpectSource+ (SourcePatterns (PopPattern (Pattern "*ge")))+ (Right (Object (HM.fromList [("age", Number 10000),("message", String "Use haskell!")])))++ it "excludes source patterns" $ withTestEnv $+ searchExpectSource+ (SourceIncludeExclude (Include [])+ (Exclude [Pattern "l*", Pattern "*ge", Pattern "postDate", Pattern "extra"]))+ (Right (Object (HM.fromList [("user",String "bitemyapp")])))
+ tests/Test/Suggest.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Suggest where++import Test.Common+import Test.Import++spec :: Spec+spec =+ describe "Suggest" $+ it "returns a search suggestion using the phrase suggester" $ withTestEnv $ do+ _ <- insertData+ let query = QueryMatchNoneQuery+ phraseSuggester = mkPhraseSuggester (FieldName "message")+ namedSuggester = Suggest "Use haskel" "suggest_name" (SuggestTypePhraseSuggester phraseSuggester)+ search' = mkSearch (Just query) Nothing+ search = search' { suggestBody = Just namedSuggester }+ expectedText = Just "use haskell"+ resp <- searchByIndex testIndex search+ parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Tweet))+ case parsed of+ Left e -> liftIO $ expectationFailure ("Expected an search suggestion but got " <> show e)+ Right sr -> liftIO $ (suggestOptionsText . head . suggestResponseOptions . head . nsrResponses <$> suggest sr) `shouldBe` expectedText
+ tests/Test/Templates.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++module Test.Templates where++import Test.Common+import Test.Import++spec :: Spec+spec =+ describe "template API" $ do+ it "can create a template" $ withTestEnv $ do+ let idxTpl = IndexTemplate [IndexPattern "tweet-*"] (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) (toJSON TweetMapping)+ resp <- putTemplate idxTpl (TemplateName "tweet-tpl")+ liftIO $ validateStatus resp 200++ it "can detect if a template exists" $ withTestEnv $ do+ exists <- templateExists (TemplateName "tweet-tpl")+ liftIO $ exists `shouldBe` True++ it "can delete a template" $ withTestEnv $ do+ resp <- deleteTemplate (TemplateName "tweet-tpl")+ liftIO $ validateStatus resp 200++ it "can detect if a template doesn't exist" $ withTestEnv $ do+ exists <- templateExists (TemplateName "tweet-tpl")+ liftIO $ exists `shouldBe` False
− tests/V1/Test/Aggregation.hs
@@ -1,132 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Aggregation (spec) where--import Test.Common-import Test.Import--import Control.Error (fmapL, note)-import qualified Data.Map as M-import qualified Database.V1.Bloodhound--spec :: Spec-spec =- describe "Aggregation API" $ do- it "returns term aggregation results" $ withTestEnv $ do- _ <- insertData- let terms = TermsAgg $ mkTermsAggregation "user"- let search = mkAggregateSearch Nothing $ mkAggregations "users" terms- searchExpectAggs search- searchValidBucketAgg search "users" toTerms-- it "return sub-aggregation results" $ withTestEnv $ do- _ <- insertData- let subaggs = mkAggregations "age_agg" . TermsAgg $ mkTermsAggregation "age"- agg = TermsAgg $ (mkTermsAggregation "user") { termAggs = Just subaggs}- search = mkAggregateSearch Nothing $ mkAggregations "users" agg- reply <- searchByIndex testIndex search- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- usersAggResults = result >>= aggregations >>= toTerms "users"- subAggResults = usersAggResults >>= (listToMaybe . buckets) >>= termsAggs >>= toTerms "age_agg"- subAddResultsExists = isJust subAggResults- liftIO $ subAddResultsExists `shouldBe` True-- it "returns cardinality aggregation results" $ withTestEnv $ do- _ <- insertData- let cardinality = CardinalityAgg $ mkCardinalityAggregation $ FieldName "user"- let search = mkAggregateSearch Nothing $ mkAggregations "users" cardinality- let search' = search { Database.V1.Bloodhound.from = From 0, size = Size 0 }- searchExpectAggs search'- let docCountPair k n = (k, object ["value" .= Number n])- res <- searchTweets search'- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "users" 1]))-- it "can give collection hint parameters to term aggregations" $ when' (atleast es13) $ withTestEnv $ do- _ <- insertData- let terms = TermsAgg $ (mkTermsAggregation "user") { termCollectMode = Just BreadthFirst }- let search = mkAggregateSearch Nothing $ mkAggregations "users" terms- searchExpectAggs search- searchValidBucketAgg search "users" toTerms-- -- One of these fails with 1.7.3- it "can give execution hint parameters to term aggregations" $ when' (atmost es11) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [Map, Ordinals]-- it "can give execution hint parameters to term aggregations" $ when' (is es12) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [GlobalOrdinals, GlobalOrdinalsHash, GlobalOrdinalsLowCardinality, Map, Ordinals]-- it "can give execution hint parameters to term aggregations" $ when' (atleast es12) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [GlobalOrdinals, GlobalOrdinalsHash, GlobalOrdinalsLowCardinality, Map]- -- One of the above.-- it "can execute value_count aggregations" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let ags = mkAggregations "user_count" (ValueCountAgg (FieldValueCount (FieldName "user"))) <>- mkAggregations "bogus_count" (ValueCountAgg (FieldValueCount (FieldName "bogus")))- let search = mkAggregateSearch Nothing ags- let docCountPair k n = (k, object ["value" .= Number n])- res <- searchTweets search- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "user_count" 2- , docCountPair "bogus_count" 0- ]))-- it "can execute date_range aggregations" $ withTestEnv $ do- let now = fromGregorian 2015 3 14- let ltAMonthAgo = UTCTime (fromGregorian 2015 3 1) 0- let ltAWeekAgo = UTCTime (fromGregorian 2015 3 10) 0- let oldDoc = exampleTweet { postDate = ltAMonthAgo }- let newDoc = exampleTweet { postDate = ltAWeekAgo }- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings oldDoc (DocId "1")- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings newDoc (DocId "2")- _ <- refreshIndex testIndex- let thisMonth = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMMonth])- let thisWeek = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMWeek])- let agg = DateRangeAggregation (FieldName "postDate") Nothing (thisMonth :| [thisWeek])- let ags = mkAggregations "date_ranges" (DateRangeAgg agg)- let search = mkAggregateSearch Nothing ags- res <- searchTweets search- liftIO $ hitsTotal . searchHits <$> res `shouldBe` Right 2- let bucks = do magrs <- fmapL show (aggregations <$> res)- agrs <- note "no aggregations returned" magrs- rawBucks <- note "no date_ranges aggregation" $ M.lookup "date_ranges" agrs- parseEither parseJSON rawBucks- let fromMonthT = UTCTime (fromGregorian 2015 2 14) 0- let fromWeekT = UTCTime (fromGregorian 2015 3 7) 0- liftIO $ buckets <$> bucks `shouldBe` Right [ DateRangeResult "2015-02-14T00:00:00.000Z-*"- (Just fromMonthT)- (Just "2015-02-14T00:00:00.000Z")- Nothing- Nothing- 2- Nothing- , DateRangeResult "2015-03-07T00:00:00.000Z-*"- (Just fromWeekT)- (Just "2015-03-07T00:00:00.000Z")- Nothing- Nothing- 1- Nothing- ]-- it "returns date histogram aggregation results" $ withTestEnv $ do- _ <- insertData- let histogram = DateHistogramAgg $ mkDateHistogram (FieldName "postDate") Minute- let search = mkAggregateSearch Nothing (mkAggregations "byDate" histogram)- searchExpectAggs search- searchValidBucketAgg search "byDate" toDateHistogram-- it "can execute missing aggregations" $ withTestEnv $ do- _ <- insertData- _ <- insertExtra- let ags = mkAggregations "missing_agg" (MissingAgg (MissingAggregation "extra"))- let search = mkAggregateSearch Nothing ags- let docCountPair k n = (k, object ["doc_count" .= Number n])- res <- searchTweets search- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [docCountPair "missing_agg" 1]))
− tests/V1/Test/ApproxEq.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE DefaultSignatures #-}-{-# LANGUAGE OverloadedStrings #-}--module Test.ApproxEq where--import Database.V1.Bloodhound--import Test.Import--import qualified Data.List.NonEmpty as NE---- | Typeclass for "equal where it matters". Use this to specify--- less-strict equivalence for things such as lists that can wind up--- in an unpredictable order-class ApproxEq a where- (=~) :: a -> a -> Bool-- showApproxEq :: a -> String- default showApproxEq :: (Show a) => a -> String- showApproxEq = show--(==~) :: (ApproxEq a) => a -> a -> Property-a ==~ b = counterexample (showApproxEq a ++ " !=~ " ++ showApproxEq b) (a =~ b)--instance ApproxEq NominalDiffTime where (=~) = (==)-instance ApproxEq Bool where (=~) = (==)-instance ApproxEq Int where (=~) = (==)-instance (Eq a, Show a) => ApproxEq (Maybe a) where (=~) = (==)-instance ApproxEq Char where- (=~) = (==)--instance ApproxEq NodeAttrFilter where (=~) = (==)-instance ApproxEq NodeAttrName where (=~) = (==)-instance (Eq a, Show a) => ApproxEq (NonEmpty a) where (=~) = (==)-instance (ApproxEq l, Show l, ApproxEq r, Show r) => ApproxEq (Either l r) where- Left a =~ Left b = a =~ b- Right a =~ Right b = a =~ b- _ =~ _ = False- showApproxEq (Left x) = "Left " <> showApproxEq x- showApproxEq (Right x) = "Right " <> showApproxEq x-instance (ApproxEq a, Show a) => ApproxEq [a] where- as =~ bs = and (zipWith (=~) as bs)-instance ApproxEq ReplicaCount where (=~) = (==)-instance ApproxEq ReplicaBounds where (=~) = (==)-instance ApproxEq Bytes where (=~) = (==)-instance ApproxEq AllocationPolicy where (=~) = (==)-instance ApproxEq InitialShardCount where (=~) = (==)-instance ApproxEq FSType where (=~) = (==)---- | Due to the way nodeattrfilters get serialized here, they may come--- out in a different order, but they are morally equivalent-instance ApproxEq UpdatableIndexSetting where- RoutingAllocationInclude a =~ RoutingAllocationInclude b =- NE.sort a =~ NE.sort b- RoutingAllocationExclude a =~ RoutingAllocationExclude b =- NE.sort a =~ NE.sort b- RoutingAllocationRequire a =~ RoutingAllocationRequire b =- NE.sort a =~ NE.sort b- a =~ b = a == b- showApproxEq (RoutingAllocationInclude xs) = show (RoutingAllocationInclude (NE.sort xs))- showApproxEq (RoutingAllocationExclude xs) = show (RoutingAllocationExclude (NE.sort xs))- showApproxEq (RoutingAllocationRequire xs) = show (RoutingAllocationRequire (NE.sort xs))- showApproxEq x = show x
− tests/V1/Test/BulkAPI.hs
@@ -1,77 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.BulkAPI (spec) where--import Test.Common-import Test.Import--import qualified Data.Vector as V-import qualified Lens.Micro.Aeson as LMA--newtype BulkTest =- BulkTest Text- deriving (Eq, Show)--instance ToJSON BulkTest where- toJSON (BulkTest name') =- object ["name" .= name']--instance FromJSON BulkTest where- parseJSON = withObject "BulkTest" parse- where- parse o = do- t <- o .: "name"- BulkTest <$> parseJSON t--spec :: Spec-spec =- describe "Bulk API" $- it "inserts all documents we request" $ withTestEnv $ do- _ <- insertData- let firstTest = BulkTest "blah"- let secondTest = BulkTest "bloo"- let firstDoc = BulkIndex testIndex- testMapping (DocId "2") (toJSON firstTest)- let secondDoc = BulkCreate testIndex- testMapping (DocId "3") (toJSON secondTest)- let stream = V.fromList [firstDoc, secondDoc]- _ <- bulk stream- _ <- refreshIndex testIndex- fDoc <- getDocument testIndex testMapping (DocId "2")- sDoc <- getDocument testIndex testMapping (DocId "3")- -- note that we cannot query for fourthDoc and fifthDoc since we- -- do not know their autogenerated ids.- let maybeFirst =- eitherDecode- $ responseBody fDoc- :: Either String (EsResult BulkTest)- let maybeSecond =- eitherDecode- $ responseBody sDoc- :: Either String (EsResult BulkTest)- liftIO $ do- fmap getSource maybeFirst `shouldBe` Right (Just firstTest)- fmap getSource maybeSecond `shouldBe` Right (Just secondTest)- -- Since we can't get the docs by doc id, we check for their existence in- -- a match all query.- let query = MatchAllQuery Nothing- let search = mkSearch (Just query) Nothing- resp <- searchByIndex testIndex search- parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))- case parsed of- Left e ->- liftIO $ expectationFailure ("Expected a script-transformed result but got: " <> show e)- (Right sr) -> do- liftIO $- hitsTotal (searchHits sr) `shouldBe` 3- let nameList :: [Text]- nameList =- hits (searchHits sr)- ^.. traverse- . to hitSource- . _Just- . LMA.key "name"- . _String- liftIO $- nameList- `shouldBe` ["blah","bloo"]
− tests/V1/Test/Common.hs
@@ -1,289 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-}--module Test.Common where--import Test.Import--import qualified Data.Map as M-import qualified Data.Version as Vers-import qualified Network.HTTP.Types.Status as NHTS--testServer :: Server-testServer = Server "http://localhost:9200"-testIndex :: IndexName-testIndex = IndexName "bloodhound-tests-twitter-1"-testMapping :: MappingName-testMapping = MappingName "tweet"--withTestEnv :: BH IO a -> IO a-withTestEnv = withBH defaultManagerSettings testServer--data Location = Location { lat :: Double- , lon :: Double } deriving (Eq, Show)--data Tweet = Tweet { user :: Text- , postDate :: UTCTime- , message :: Text- , age :: Int- , location :: Location- , extra :: Maybe Text }- deriving (Eq, Show)--$(deriveJSON defaultOptions ''Location)-$(deriveJSON defaultOptions ''Tweet)--data ParentMapping = ParentMapping deriving (Eq, Show)--instance ToJSON ParentMapping where- toJSON ParentMapping =- object ["properties" .=- object [ "user" .= object ["type" .= ("string" :: Text)- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("string" :: Text), "index" .= ("not_analyzed" :: Text)]- ]]--es13 :: Vers.Version-es13 = Vers.Version [1, 3, 0] []--es12 :: Vers.Version-es12 = Vers.Version [1, 2, 0] []--es11 :: Vers.Version-es11 = Vers.Version [1, 1, 0] []--es14 :: Vers.Version-es14 = Vers.Version [1, 4, 0] []--es15 :: Vers.Version-es15 = Vers.Version [1, 5, 0] []--es16 :: Vers.Version-es16 = Vers.Version [1, 6, 0] []--es20 :: Vers.Version-es20 = Vers.Version [2, 0, 0] []--es50 :: Vers.Version-es50 = Vers.Version [5, 0, 0] []--getServerVersion :: IO (Maybe Vers.Version)-getServerVersion = fmap extractVersion <$> withTestEnv getStatus- where- extractVersion = versionNumber . number . version--createExampleIndex :: (MonadBH m) => m Reply-createExampleIndex =- createIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) testIndex--deleteExampleIndex :: (MonadBH m) => m Reply-deleteExampleIndex =- deleteIndex testIndex--validateStatus :: Show body => Response body -> Int -> Expectation-validateStatus resp expected =- if actual == expected- then return ()- else expectationFailure ("Expected " <> show expected <> " but got " <> show actual <> ": " <> show body)- where- actual = NHTS.statusCode (responseStatus resp)- body = responseBody resp--data ChildMapping = ChildMapping deriving (Eq, Show)--instance ToJSON ChildMapping where- toJSON ChildMapping =- object ["_parent" .= object ["type" .= ("parent" :: Text)]- , "properties" .=- object [ "user" .= object ["type" .= ("string" :: Text)- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("string" :: Text), "index" .= ("not_analyzed" :: Text)]- ]]--data TweetMapping = TweetMapping deriving (Eq, Show)--instance ToJSON TweetMapping where- toJSON TweetMapping =- object ["tweet" .=- object ["properties" .=- object [ "user" .= object [ "type" .= ("string" :: Text)- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("string" :: Text), "index" .= ("not_analyzed" :: Text)]- ]]]--exampleTweet :: Tweet-exampleTweet = Tweet { user = "bitemyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 10)- , message = "Use haskell!"- , age = 10000- , location = Location 40.12 (-71.34)- , extra = Nothing }--tweetWithExtra :: Tweet-tweetWithExtra = Tweet { user = "bitemyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 10)- , message = "Use haskell!"- , age = 10000- , location = Location 40.12 (-71.34)- , extra = Just "blah blah" }--newAge :: Int-newAge = 31337--newUser :: Text-newUser = "someotherapp"--tweetPatch :: Value-tweetPatch =- object [ "age" .= newAge- , "user" .= newUser- ]--patchedTweet :: Tweet-patchedTweet = exampleTweet{age = newAge, user = newUser}--otherTweet :: Tweet-otherTweet = Tweet { user = "notmyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 11)- , message = "Use haskell!"- , age = 1000- , location = Location 40.12 (-71.34)- , extra = Nothing }--resetIndex :: BH IO ()-resetIndex = do- _ <- deleteExampleIndex- _ <- createExampleIndex- _ <- putMapping testIndex testMapping TweetMapping- return ()--insertData :: BH IO Reply-insertData = do- resetIndex- insertData' defaultIndexDocumentSettings--insertData' :: IndexDocumentSettings -> BH IO Reply-insertData' ids = do- r <- indexDocument testIndex testMapping ids exampleTweet (DocId "1")- _ <- refreshIndex testIndex- return r--updateData :: BH IO Reply-updateData = do- r <- updateDocument testIndex testMapping defaultIndexDocumentSettings tweetPatch (DocId "1")- _ <- refreshIndex testIndex- return r--insertOther :: BH IO ()-insertOther = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings otherTweet (DocId "2")- _ <- refreshIndex testIndex- return ()--insertExtra :: BH IO ()-insertExtra = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings tweetWithExtra (DocId "4")- _ <- refreshIndex testIndex- return ()--insertWithSpaceInId :: BH IO ()-insertWithSpaceInId = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings exampleTweet (DocId "Hello World")- _ <- refreshIndex testIndex- return ()--searchTweet :: Search -> BH IO (Either EsError Tweet)-searchTweet search = do- result <- searchTweets search- let myTweet :: Either EsError Tweet- myTweet = grabFirst result- return myTweet--searchTweets :: Search -> BH IO (Either EsError (SearchResult Tweet))-searchTweets search = parseEsResponse =<< searchByIndex testIndex search--searchExpectNoResults :: Search -> BH IO ()-searchExpectNoResults search = do- result <- searchTweets search- let emptyHits = fmap (hits . searchHits) result- liftIO $- emptyHits `shouldBe` Right []--searchExpectAggs :: Search -> BH IO ()-searchExpectAggs search = do- reply <- searchByIndex testIndex search- let isEmpty x = return (M.null x)- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- liftIO $- (result >>= aggregations >>= isEmpty) `shouldBe` Just False--searchValidBucketAgg :: (BucketAggregation a, FromJSON a, Show a) =>- Search -> Text -> (Text -> AggregationResults -> Maybe (Bucket a)) -> BH IO ()-searchValidBucketAgg search aggKey extractor = do- reply <- searchByIndex testIndex search- let bucketDocs = docCount . head . buckets- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- let count = result >>= aggregations >>= extractor aggKey >>= \x -> return (bucketDocs x)- liftIO $- count `shouldBe` Just 1--searchTermsAggHint :: [ExecutionHint] -> BH IO ()-searchTermsAggHint hints = do- let terms hint = TermsAgg $ (mkTermsAggregation "user") { termExecutionHint = Just hint }- let search hint = mkAggregateSearch Nothing $ mkAggregations "users" $ terms hint- forM_ hints $ searchExpectAggs . search- forM_ hints (\x -> searchValidBucketAgg (search x) "users" toTerms)--searchTweetHighlight :: Search- -> BH IO (Either EsError (Maybe HitHighlight))-searchTweetHighlight search = do- result <- searchTweets search- let tweetHit :: Either EsError (Maybe (Hit Tweet))- tweetHit = fmap (headMay . hits . searchHits) result- myHighlight :: Either EsError (Maybe HitHighlight)- myHighlight = (join . fmap hitHighlight) <$> tweetHit- return myHighlight--searchExpectSource :: Source -> Either EsError Value -> BH IO ()-searchExpectSource src expected = do- _ <- insertData- let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")- let search = (mkSearch (Just query) Nothing) { source = Just src }- reply <- searchByIndex testIndex search- result <- parseEsResponse reply- let value = grabFirst result- liftIO $- value `shouldBe` expected--atleast :: Vers.Version -> IO Bool-atleast v = getServerVersion >>= \x -> return $ x >= Just v--atmost :: Vers.Version -> IO Bool-atmost v = getServerVersion >>= \x -> return $ x <= Just v--is :: Vers.Version -> IO Bool-is v = getServerVersion >>= \x -> return $ x == Just v
− tests/V1/Test/Documents.hs
@@ -1,52 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Documents where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "document API" $ do- it "indexes, updates, gets, and then deletes the generated document" $ withTestEnv $ do- _ <- insertData- _ <- updateData- docInserted <- getDocument testIndex testMapping (DocId "1")- let newTweet = eitherDecode- (responseBody docInserted) :: Either String (EsResult Tweet)- liftIO $ fmap getSource newTweet `shouldBe` Right (Just patchedTweet)-- it "indexes, gets, and then deletes the generated document with a DocId containing a space" $ withTestEnv $ do- _ <- insertWithSpaceInId- docInserted <- getDocument testIndex testMapping (DocId "Hello World")- let newTweet = eitherDecode- (responseBody docInserted) :: Either String (EsResult Tweet)- liftIO $ fmap getSource newTweet `shouldBe` Right (Just exampleTweet)-- it "produces a parseable result when looking up a bogus document" $ withTestEnv $ do- doc <- getDocument testIndex testMapping (DocId "bogus")- let noTweet = eitherDecode- (responseBody doc) :: Either String (EsResult Tweet)- liftIO $ fmap foundResult noTweet `shouldBe` Right Nothing-- it "can use optimistic concurrency control" $ withTestEnv $ do- let ev = ExternalDocVersion minBound- let cfg = defaultIndexDocumentSettings { idsVersionControl = ExternalGT ev }- resetIndex- res <- insertData' cfg- liftIO $ isCreated res `shouldBe` True- res' <- insertData' cfg- liftIO $ isVersionConflict res' `shouldBe` True-- it "indexes two documents in a parent/child relationship and checks that the child exists" $ withTestEnv $ do- resetIndex- let validateStatus' stat = liftIO . flip validateStatus stat- _ <- validateStatus' 200 =<< putMapping testIndex (MappingName "child") ChildMapping- _ <- validateStatus' 200 =<< putMapping testIndex (MappingName "parent") ParentMapping- _ <- validateStatus' 201 =<< indexDocument testIndex (MappingName "parent") defaultIndexDocumentSettings exampleTweet (DocId "1")- let parent = (Just . DocumentParent . DocId) "1"- ids = IndexDocumentSettings NoVersionControl parent- _ <- validateStatus' 201 =<< indexDocument testIndex (MappingName "child") ids otherTweet (DocId "2")- _ <- refreshIndex testIndex- exists <- documentExists testIndex (MappingName "child") parent (DocId "2")- liftIO $ exists `shouldBe` True
− tests/V1/Test/Generators.hs
@@ -1,432 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-}--module Test.Generators where--import Database.V1.Bloodhound--import Test.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.List as L-import qualified Data.List.NonEmpty as NE-import qualified Data.Map as M-import qualified Data.Text as T-import qualified Data.Version as Vers-import Test.QuickCheck.TH.Generators--import Test.ApproxEq--instance Arbitrary NominalDiffTime where- arbitrary = fromInteger <$> arbitrary--#if !MIN_VERSION_QuickCheck(2,8,0)-instance (Arbitrary k, Ord k, Arbitrary v) => Arbitrary (M.Map k v) where- arbitrary = M.fromList <$> arbitrary-#endif--instance Arbitrary Text where- arbitrary = T.pack <$> arbitrary--instance Arbitrary UTCTime where- arbitrary = UTCTime- <$> arbitrary- <*> (fromRational . toRational <$> choose (0::Double, 86400))--instance Arbitrary Day where- arbitrary =- ModifiedJulianDay . (2000 +) <$> arbitrary- shrink =- (ModifiedJulianDay <$>) . shrink . toModifiedJulianDay--#if !MIN_VERSION_QuickCheck(2,9,0)-instance Arbitrary a => Arbitrary (NonEmpty a) where- arbitrary = liftA2 (:|) arbitrary arbitrary-#endif--arbitraryScore :: Gen Score-arbitraryScore = fmap getPositive <$> arbitrary--instance (Arbitrary a, Typeable a) => Arbitrary (Hit a) where- arbitrary = Hit <$> arbitrary- <*> arbitrary- <*> arbitrary- <*> arbitraryScore- <*> arbitrary- <*> arbitrary--instance (Arbitrary a, Typeable a) => Arbitrary (SearchHits a) where- arbitrary = reduceSize $ do- tot <- getPositive <$> arbitrary- score <- arbitraryScore- hs <- arbitrary- return $ SearchHits tot score hs---reduceSize :: Gen a -> Gen a-reduceSize f = sized $ \n -> resize (n `div` 2) f--arbitraryAlphaNum :: Gen Char-arbitraryAlphaNum = oneof [choose ('a', 'z')- ,choose ('A','Z')- , choose ('0', '9')]--instance Arbitrary RoutingValue where- arbitrary = RoutingValue . T.pack <$> listOf1 arbitraryAlphaNum--instance Arbitrary AliasRouting where- arbitrary = oneof [allAlias- ,one- ,theOther- ,both']- where one = GranularAliasRouting- <$> (Just <$> arbitrary)- <*> pure Nothing- theOther = GranularAliasRouting Nothing- <$> (Just <$> arbitrary)- both' = GranularAliasRouting- <$> (Just <$> arbitrary)- <*> (Just <$> arbitrary)- allAlias = AllAliasRouting <$> arbitrary----instance Arbitrary FieldName where- arbitrary =- FieldName- . T.pack- <$> listOf1 arbitraryAlphaNum---#if MIN_VERSION_base(4,10,0)--- Test.QuickCheck.Modifiers--qcNonEmptyToNonEmpty :: NonEmptyList a -> NonEmpty a-qcNonEmptyToNonEmpty (NonEmpty (a : xs)) = (a :| xs)-qcNonEmptyToNonEmpty (NonEmpty []) = error "NonEmpty was empty!"--instance Arbitrary a => Arbitrary (NonEmpty a) where- arbitrary =- qcNonEmptyToNonEmpty- <$> arbitrary-#endif--instance Arbitrary RegexpFlags where- arbitrary = oneof [ pure AllRegexpFlags- , pure NoRegexpFlags- , SomeRegexpFlags <$> genUniqueFlags- ]- where genUniqueFlags =- NE.fromList . L.nub- <$> listOf1 arbitrary--instance Arbitrary IndexAliasCreate where- arbitrary =- IndexAliasCreate- <$> arbitrary- <*> reduceSize arbitrary--instance Arbitrary ReplicaBounds where- arbitrary = oneof [ replicasBounded- , replicasLowerBounded- , pure ReplicasUnbounded- ]- where replicasBounded = do- Positive a <- arbitrary- Positive b <- arbitrary- return (ReplicasBounded a b)- replicasLowerBounded = do- Positive a <- arbitrary- return (ReplicasLowerBounded a)--instance Arbitrary NodeAttrName where- arbitrary =- NodeAttrName- . T.pack- <$> listOf1 arbitraryAlphaNum---instance Arbitrary NodeAttrFilter where- arbitrary = do- n <- arbitrary- s:ss <- listOf1 (listOf1 arbitraryAlphaNum)- let ts = T.pack <$> s :| ss- return (NodeAttrFilter n ts)--instance Arbitrary VersionNumber where- arbitrary = mk . fmap getPositive . getNonEmpty <$> arbitrary- where- mk versions = VersionNumber (Vers.Version versions [])--instance Arbitrary TemplateQueryKeyValuePairs where- arbitrary = TemplateQueryKeyValuePairs . HM.fromList <$> arbitrary- shrink (TemplateQueryKeyValuePairs x) = map (TemplateQueryKeyValuePairs . HM.fromList) . shrink $ HM.toList x--makeArbitrary ''FilteredQuery-instance Arbitrary FilteredQuery where arbitrary = reduceSize arbitraryFilteredQuery-makeArbitrary ''Query-instance Arbitrary Query where arbitrary = reduceSize arbitraryQuery-makeArbitrary ''Filter-instance Arbitrary Filter where arbitrary = reduceSize arbitraryFilter-makeArbitrary ''IndexName-instance Arbitrary IndexName where arbitrary = arbitraryIndexName-makeArbitrary ''MappingName-instance Arbitrary MappingName where arbitrary = arbitraryMappingName-makeArbitrary ''DocId-instance Arbitrary DocId where arbitrary = arbitraryDocId-makeArbitrary ''Version-instance Arbitrary Version where arbitrary = arbitraryVersion-makeArbitrary ''BuildHash-instance Arbitrary BuildHash where arbitrary = arbitraryBuildHash-makeArbitrary ''IndexAliasRouting-instance Arbitrary IndexAliasRouting where arbitrary = arbitraryIndexAliasRouting-makeArbitrary ''ShardCount-instance Arbitrary ShardCount where arbitrary = arbitraryShardCount-makeArbitrary ''ReplicaCount-instance Arbitrary ReplicaCount where arbitrary = arbitraryReplicaCount-makeArbitrary ''TemplateName-instance Arbitrary TemplateName where arbitrary = arbitraryTemplateName-makeArbitrary ''TemplatePattern-instance Arbitrary TemplatePattern where arbitrary = arbitraryTemplatePattern-makeArbitrary ''QueryString-instance Arbitrary QueryString where arbitrary = arbitraryQueryString-makeArbitrary ''CacheName-instance Arbitrary CacheName where arbitrary = arbitraryCacheName-makeArbitrary ''CacheKey-instance Arbitrary CacheKey where arbitrary = arbitraryCacheKey-makeArbitrary ''Existence-instance Arbitrary Existence where arbitrary = arbitraryExistence-makeArbitrary ''CutoffFrequency-instance Arbitrary CutoffFrequency where arbitrary = arbitraryCutoffFrequency-makeArbitrary ''Analyzer-instance Arbitrary Analyzer where arbitrary = arbitraryAnalyzer-makeArbitrary ''MaxExpansions-instance Arbitrary MaxExpansions where arbitrary = arbitraryMaxExpansions-makeArbitrary ''Lenient-instance Arbitrary Lenient where arbitrary = arbitraryLenient-makeArbitrary ''Tiebreaker-instance Arbitrary Tiebreaker where arbitrary = arbitraryTiebreaker-makeArbitrary ''Boost-instance Arbitrary Boost where arbitrary = arbitraryBoost-makeArbitrary ''BoostTerms-instance Arbitrary BoostTerms where arbitrary = arbitraryBoostTerms-makeArbitrary ''MinimumMatch-instance Arbitrary MinimumMatch where arbitrary = arbitraryMinimumMatch-makeArbitrary ''DisableCoord-instance Arbitrary DisableCoord where arbitrary = arbitraryDisableCoord-makeArbitrary ''IgnoreTermFrequency-instance Arbitrary IgnoreTermFrequency where arbitrary = arbitraryIgnoreTermFrequency-makeArbitrary ''MinimumTermFrequency-instance Arbitrary MinimumTermFrequency where arbitrary = arbitraryMinimumTermFrequency-makeArbitrary ''MaxQueryTerms-instance Arbitrary MaxQueryTerms where arbitrary = arbitraryMaxQueryTerms-makeArbitrary ''Fuzziness-instance Arbitrary Fuzziness where arbitrary = arbitraryFuzziness-makeArbitrary ''PrefixLength-instance Arbitrary PrefixLength where arbitrary = arbitraryPrefixLength-makeArbitrary ''TypeName-instance Arbitrary TypeName where arbitrary = arbitraryTypeName-makeArbitrary ''PercentMatch-instance Arbitrary PercentMatch where arbitrary = arbitraryPercentMatch-makeArbitrary ''StopWord-instance Arbitrary StopWord where arbitrary = arbitraryStopWord-makeArbitrary ''QueryPath-instance Arbitrary QueryPath where arbitrary = arbitraryQueryPath-makeArbitrary ''AllowLeadingWildcard-instance Arbitrary AllowLeadingWildcard where arbitrary = arbitraryAllowLeadingWildcard-makeArbitrary ''LowercaseExpanded-instance Arbitrary LowercaseExpanded where arbitrary = arbitraryLowercaseExpanded-makeArbitrary ''EnablePositionIncrements-instance Arbitrary EnablePositionIncrements where arbitrary = arbitraryEnablePositionIncrements-makeArbitrary ''AnalyzeWildcard-instance Arbitrary AnalyzeWildcard where arbitrary = arbitraryAnalyzeWildcard-makeArbitrary ''GeneratePhraseQueries-instance Arbitrary GeneratePhraseQueries where arbitrary = arbitraryGeneratePhraseQueries-makeArbitrary ''Locale-instance Arbitrary Locale where arbitrary = arbitraryLocale-makeArbitrary ''MaxWordLength-instance Arbitrary MaxWordLength where arbitrary = arbitraryMaxWordLength-makeArbitrary ''MinWordLength-instance Arbitrary MinWordLength where arbitrary = arbitraryMinWordLength-makeArbitrary ''PhraseSlop-instance Arbitrary PhraseSlop where arbitrary = arbitraryPhraseSlop-makeArbitrary ''MinDocFrequency-instance Arbitrary MinDocFrequency where arbitrary = arbitraryMinDocFrequency-makeArbitrary ''MaxDocFrequency-instance Arbitrary MaxDocFrequency where arbitrary = arbitraryMaxDocFrequency-makeArbitrary ''Regexp-instance Arbitrary Regexp where arbitrary = arbitraryRegexp-makeArbitrary ''SimpleQueryStringQuery-instance Arbitrary SimpleQueryStringQuery where arbitrary = arbitrarySimpleQueryStringQuery-makeArbitrary ''FieldOrFields-instance Arbitrary FieldOrFields where arbitrary = arbitraryFieldOrFields-makeArbitrary ''SimpleQueryFlag-instance Arbitrary SimpleQueryFlag where arbitrary = arbitrarySimpleQueryFlag-makeArbitrary ''RegexpQuery-instance Arbitrary RegexpQuery where arbitrary = arbitraryRegexpQuery-makeArbitrary ''QueryStringQuery-instance Arbitrary QueryStringQuery where arbitrary = arbitraryQueryStringQuery-makeArbitrary ''RangeQuery-instance Arbitrary RangeQuery where arbitrary = arbitraryRangeQuery-makeArbitrary ''RangeValue-instance Arbitrary RangeValue where arbitrary = arbitraryRangeValue-makeArbitrary ''PrefixQuery-instance Arbitrary PrefixQuery where arbitrary = arbitraryPrefixQuery-makeArbitrary ''NestedQuery-instance Arbitrary NestedQuery where arbitrary = arbitraryNestedQuery-makeArbitrary ''MoreLikeThisFieldQuery-instance Arbitrary MoreLikeThisFieldQuery where arbitrary = arbitraryMoreLikeThisFieldQuery-makeArbitrary ''MoreLikeThisQuery-instance Arbitrary MoreLikeThisQuery where arbitrary = arbitraryMoreLikeThisQuery-makeArbitrary ''IndicesQuery-instance Arbitrary IndicesQuery where arbitrary = arbitraryIndicesQuery-makeArbitrary ''HasParentQuery-instance Arbitrary HasParentQuery where arbitrary = arbitraryHasParentQuery-makeArbitrary ''HasChildQuery-instance Arbitrary HasChildQuery where arbitrary = arbitraryHasChildQuery-makeArbitrary ''FuzzyQuery-instance Arbitrary FuzzyQuery where arbitrary = arbitraryFuzzyQuery-makeArbitrary ''FuzzyLikeFieldQuery-instance Arbitrary FuzzyLikeFieldQuery where arbitrary = arbitraryFuzzyLikeFieldQuery-makeArbitrary ''FuzzyLikeThisQuery-instance Arbitrary FuzzyLikeThisQuery where arbitrary = arbitraryFuzzyLikeThisQuery-makeArbitrary ''DisMaxQuery-instance Arbitrary DisMaxQuery where arbitrary = arbitraryDisMaxQuery-makeArbitrary ''CommonTermsQuery-instance Arbitrary CommonTermsQuery where arbitrary = arbitraryCommonTermsQuery-makeArbitrary ''DistanceRange-instance Arbitrary DistanceRange where arbitrary = arbitraryDistanceRange-makeArbitrary ''MultiMatchQuery-instance Arbitrary MultiMatchQuery where arbitrary = arbitraryMultiMatchQuery-makeArbitrary ''LessThanD-instance Arbitrary LessThanD where arbitrary = arbitraryLessThanD-makeArbitrary ''LessThanEqD-instance Arbitrary LessThanEqD where arbitrary = arbitraryLessThanEqD-makeArbitrary ''GreaterThanD-instance Arbitrary GreaterThanD where arbitrary = arbitraryGreaterThanD-makeArbitrary ''GreaterThanEqD-instance Arbitrary GreaterThanEqD where arbitrary = arbitraryGreaterThanEqD-makeArbitrary ''LessThan-instance Arbitrary LessThan where arbitrary = arbitraryLessThan-makeArbitrary ''LessThanEq-instance Arbitrary LessThanEq where arbitrary = arbitraryLessThanEq-makeArbitrary ''GreaterThan-instance Arbitrary GreaterThan where arbitrary = arbitraryGreaterThan-makeArbitrary ''GreaterThanEq-instance Arbitrary GreaterThanEq where arbitrary = arbitraryGreaterThanEq-makeArbitrary ''GeoPoint-instance Arbitrary GeoPoint where arbitrary = arbitraryGeoPoint-makeArbitrary ''NullValue-instance Arbitrary NullValue where arbitrary = arbitraryNullValue-makeArbitrary ''MinimumMatchHighLow-instance Arbitrary MinimumMatchHighLow where arbitrary = arbitraryMinimumMatchHighLow-makeArbitrary ''CommonMinimumMatch-instance Arbitrary CommonMinimumMatch where arbitrary = arbitraryCommonMinimumMatch-makeArbitrary ''BoostingQuery-instance Arbitrary BoostingQuery where arbitrary = arbitraryBoostingQuery-makeArbitrary ''BoolQuery-instance Arbitrary BoolQuery where arbitrary = arbitraryBoolQuery-makeArbitrary ''MatchQuery-instance Arbitrary MatchQuery where arbitrary = arbitraryMatchQuery-makeArbitrary ''MultiMatchQueryType-instance Arbitrary MultiMatchQueryType where arbitrary = arbitraryMultiMatchQueryType-makeArbitrary ''BooleanOperator-instance Arbitrary BooleanOperator where arbitrary = arbitraryBooleanOperator-makeArbitrary ''ZeroTermsQuery-instance Arbitrary ZeroTermsQuery where arbitrary = arbitraryZeroTermsQuery-makeArbitrary ''MatchQueryType-instance Arbitrary MatchQueryType where arbitrary = arbitraryMatchQueryType-makeArbitrary ''SearchAliasRouting-instance Arbitrary SearchAliasRouting where arbitrary = arbitrarySearchAliasRouting-makeArbitrary ''ScoreType-instance Arbitrary ScoreType where arbitrary = arbitraryScoreType-makeArbitrary ''Distance-instance Arbitrary Distance where arbitrary = arbitraryDistance-makeArbitrary ''DistanceUnit-instance Arbitrary DistanceUnit where arbitrary = arbitraryDistanceUnit-makeArbitrary ''DistanceType-instance Arbitrary DistanceType where arbitrary = arbitraryDistanceType-makeArbitrary ''OptimizeBbox-instance Arbitrary OptimizeBbox where arbitrary = arbitraryOptimizeBbox-makeArbitrary ''GeoBoundingBoxConstraint-instance Arbitrary GeoBoundingBoxConstraint where arbitrary = arbitraryGeoBoundingBoxConstraint-makeArbitrary ''GeoFilterType-instance Arbitrary GeoFilterType where arbitrary = arbitraryGeoFilterType-makeArbitrary ''GeoBoundingBox-instance Arbitrary GeoBoundingBox where arbitrary = arbitraryGeoBoundingBox-makeArbitrary ''LatLon-instance Arbitrary LatLon where arbitrary = arbitraryLatLon-makeArbitrary ''RangeExecution-instance Arbitrary RangeExecution where arbitrary = arbitraryRangeExecution-makeArbitrary ''RegexpFlag-instance Arbitrary RegexpFlag where arbitrary = arbitraryRegexpFlag-makeArbitrary ''BoolMatch-instance Arbitrary BoolMatch where arbitrary = arbitraryBoolMatch-makeArbitrary ''Term-instance Arbitrary Term where arbitrary = arbitraryTerm-makeArbitrary ''IndexSettings-instance Arbitrary IndexSettings where arbitrary = arbitraryIndexSettings-makeArbitrary ''UpdatableIndexSetting-instance Arbitrary UpdatableIndexSetting where- arbitrary = arbitraryUpdatableIndexSetting-makeArbitrary ''Bytes-instance Arbitrary Bytes where arbitrary = arbitraryBytes-makeArbitrary ''AllocationPolicy-instance Arbitrary AllocationPolicy where arbitrary = arbitraryAllocationPolicy-makeArbitrary ''InitialShardCount-instance Arbitrary InitialShardCount where arbitrary = arbitraryInitialShardCount-makeArbitrary ''FSType-instance Arbitrary FSType where arbitrary = arbitraryFSType-makeArbitrary ''CompoundFormat-instance Arbitrary CompoundFormat where arbitrary = arbitraryCompoundFormat-makeArbitrary ''FsSnapshotRepo-instance Arbitrary FsSnapshotRepo where arbitrary = arbitraryFsSnapshotRepo-makeArbitrary ''SnapshotRepoName-instance Arbitrary SnapshotRepoName where arbitrary = arbitrarySnapshotRepoName-makeArbitrary ''TemplateQueryInline-instance Arbitrary TemplateQueryInline where arbitrary = arbitraryTemplateQueryInline-makeArbitrary ''DirectGeneratorSuggestModeTypes-instance Arbitrary DirectGeneratorSuggestModeTypes where arbitrary = arbitraryDirectGeneratorSuggestModeTypes-makeArbitrary ''DirectGenerators-instance Arbitrary DirectGenerators where arbitrary = arbitraryDirectGenerators-makeArbitrary ''PhraseSuggesterCollate-instance Arbitrary PhraseSuggesterCollate where arbitrary = arbitraryPhraseSuggesterCollate-makeArbitrary ''PhraseSuggesterHighlighter-instance Arbitrary PhraseSuggesterHighlighter where arbitrary = arbitraryPhraseSuggesterHighlighter-makeArbitrary ''Size-instance Arbitrary Size where arbitrary = arbitrarySize-makeArbitrary ''PhraseSuggester-instance Arbitrary PhraseSuggester where arbitrary = arbitraryPhraseSuggester-makeArbitrary ''SuggestType-instance Arbitrary SuggestType where arbitrary = arbitrarySuggestType-makeArbitrary ''Suggest-instance Arbitrary Suggest where arbitrary = arbitrarySuggest---makeArbitrary ''Script-instance Arbitrary Script where arbitrary = arbitraryScript--newtype UpdatableIndexSetting' =- UpdatableIndexSetting' UpdatableIndexSetting- deriving (Show, Eq, ToJSON, FromJSON, ApproxEq, Typeable)--instance Arbitrary UpdatableIndexSetting' where- arbitrary = do- settings <- arbitrary- return $ UpdatableIndexSetting' $ case settings of- RoutingAllocationInclude xs ->- RoutingAllocationInclude (dropDuplicateAttrNames xs)- RoutingAllocationExclude xs ->- RoutingAllocationExclude (dropDuplicateAttrNames xs)- RoutingAllocationRequire xs ->- RoutingAllocationRequire (dropDuplicateAttrNames xs)- x -> x- where- dropDuplicateAttrNames =- NE.fromList . L.nubBy sameAttrName . NE.toList- sameAttrName a b =- nodeAttrFilterName a == nodeAttrFilterName b- -- shrink (UpdatableIndexSetting' x) = map UpdatableIndexSetting' (shrink x)
− tests/V1/Test/Highlights.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Highlights where--import Test.Common-import Test.Import--import qualified Data.Map as M--initHighlights :: Text -> BH IO (Either EsError (Maybe HitHighlight))-initHighlights fieldName = do- _ <- insertData- _ <- insertOther- let query = QueryMatchQuery $ mkMatchQuery (FieldName fieldName) (QueryString "haskell")- let testHighlight = Highlights Nothing [FieldHighlight (FieldName fieldName) Nothing]- let search = mkHighlightSearch (Just query) testHighlight- searchTweetHighlight search--spec :: Spec-spec =- describe "Highlights API" $ do- it "returns highlight from query when there should be one" $ withTestEnv $ do- myHighlight <- initHighlights "message"- liftIO $- myHighlight `shouldBe`- Right (Just (M.fromList [("message", ["Use <em>haskell</em>!"])]))-- it "doesn't return highlight from a query when it shouldn't" $ withTestEnv $ do- myHighlight <- initHighlights "user"- liftIO $- myHighlight `shouldBe`- Right Nothing
− tests/V1/Test/Import.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Import- ( module X- , module Test.Import- ) where---import Control.Applicative as X-import Control.Exception as X (evaluate)-import Control.Monad as X-import Control.Monad.Catch as X-import Control.Monad.Reader as X-import Data.Aeson as X-import Data.Aeson.TH as X-import Data.Aeson.Types as X (parseEither)-import Data.Maybe as X-import Data.List.NonEmpty as X (NonEmpty(..))-import Data.Monoid as X-import Data.Ord as X (comparing)-import Data.Proxy as X-import Data.Text as X (Text)-import Data.Time.Calendar as X (Day(..), fromGregorian)-import Data.Time.Clock as X-import Data.Typeable as X-import Database.V1.Bloodhound as X hiding (key)-import Lens.Micro as X-import Lens.Micro.Aeson as X-import Network.HTTP.Client as X hiding (Proxy, fileSize)-import System.IO.Temp as X-import System.PosixCompat.Files as X-import Test.Hspec as X-import Test.Hspec.QuickCheck as X (prop)-import Test.QuickCheck as X hiding (Result, Success)-import Test.QuickCheck.Property.Monoid as X (T (..), eq, prop_Monoid)-import Text.Pretty.Simple as X (pPrint)--import qualified Data.List as L--noDuplicates :: Eq a => [a] -> Bool-noDuplicates xs = L.nub xs == xs--getSource :: EsResult a -> Maybe a-getSource = fmap _source . foundResult--grabFirst :: Either EsError (SearchResult a) -> Either EsError a-grabFirst r =- case fmap (hitSource . head . hits . searchHits) r of- (Left e) -> Left e- (Right Nothing) -> Left (EsError 500 "Source was missing")- (Right (Just x)) -> Right x--when' :: Monad m => m Bool -> m () -> m ()-when' b f = b >>= \x -> when x f--headMay :: [a] -> Maybe a-headMay (x : _) = Just x-headMay _ = Nothing
− tests/V1/Test/Indices.hs
@@ -1,78 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Indices where--import Test.Common-import Test.Import--import qualified Data.List as L-import qualified Data.List.NonEmpty as NE--spec :: Spec-spec = do- describe "Index create/delete API" $ do- it "creates and then deletes the requested index" $ withTestEnv $ do- -- priming state.- _ <- deleteExampleIndex- resp <- createExampleIndex- deleteResp <- deleteExampleIndex- liftIO $ do- validateStatus resp 200- validateStatus deleteResp 200-- describe "Index aliases" $ do- let aname = IndexAliasName (IndexName "bloodhound-tests-twitter-1-alias")- let alias = IndexAlias (testIndex) aname- let create = IndexAliasCreate Nothing Nothing- let action = AddAlias alias create- it "handles the simple case of aliasing an existing index" $ do- withTestEnv $ do- resetIndex- resp <- updateIndexAliases (action :| [])- liftIO $ validateStatus resp 200- let cleanup = withTestEnv (updateIndexAliases (RemoveAlias alias :| []))- (do aliases <- withTestEnv getIndexAliases- let expected = IndexAliasSummary alias create- case aliases of- Right (IndexAliasesSummary summs) ->- L.find ((== alias) . indexAliasSummaryAlias) summs `shouldBe` Just expected- Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)) `finally` cleanup-- describe "Index Listing" $ do- it "returns a list of index names" $ withTestEnv $ do- _ <- createExampleIndex- ixns <- listIndices- liftIO (ixns `shouldContain` [testIndex])-- describe "Index Settings" $ do- it "persists settings" $ withTestEnv $ do- _ <- deleteExampleIndex- _ <- createExampleIndex- let updates = BlocksWrite False :| []- updateResp <- updateIndexSettings updates testIndex- liftIO $ validateStatus updateResp 200- getResp <- getIndexSettings testIndex- liftIO $- getResp `shouldBe` Right (IndexSettingsSummary- testIndex- (IndexSettings (ShardCount 1) (ReplicaCount 0))- (NE.toList updates))-- it "allows total fields to be set" $ when' (atleast es50) $ withTestEnv $ do- _ <- deleteExampleIndex- _ <- createExampleIndex- let updates = FailOnMergeFailure True :| []- updateResp <- updateIndexSettings updates testIndex- liftIO $ validateStatus updateResp 200- getResp <- getIndexSettings testIndex- liftIO $- getResp `shouldBe` Right (IndexSettingsSummary- testIndex- (IndexSettings (ShardCount 1) (ReplicaCount 0))- (NE.toList updates))-- describe "Index Optimization" $ do- it "returns a successful response upon completion" $ withTestEnv $ do- _ <- createExampleIndex- resp <- optimizeIndex (IndexList (testIndex :| [])) defaultIndexOptimizationSettings- liftIO $ validateStatus resp 200
− tests/V1/Test/JSON.hs
@@ -1,202 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}--module Test.JSON (spec) where--import Test.Import--import qualified Data.ByteString.Lazy.Char8 as BL8-import qualified Data.List as L-import Data.List.NonEmpty (NonEmpty(..))-import qualified Data.List.NonEmpty as NE-import qualified Data.HashMap.Strict as HM-import qualified Data.Text as T-import qualified Data.Vector as V--import Test.ApproxEq-import Test.Generators--propJSON :: forall a- . ( Arbitrary a- , ToJSON a- , FromJSON a- , Show a- , Eq a- , Typeable a- )- => Proxy a -> Spec-propJSON _ = prop testName $ \(a :: a) ->- let jsonStr = "via " <> BL8.unpack (encode a)- in counterexample jsonStr (parseEither parseJSON (toJSON a)- === Right a)- where testName = show ty <> " FromJSON/ToJSON roundtrips"- ty = typeOf (undefined :: a)--propApproxJSON :: forall a- . ( Arbitrary a- , ToJSON a- , FromJSON a- , Show a- , ApproxEq a- , Typeable a- )- => Proxy a -> Spec-propApproxJSON _ = prop testName $ \(a :: a) ->- let jsonStr = "via " <> BL8.unpack (encode a)- in counterexample jsonStr (parseEither parseJSON (toJSON a)- ==~ Right a)- where testName = show ty <> " FromJSON/ToJSON roundtrips"- ty = typeOf (undefined :: a)--spec :: Spec-spec = do- describe "ToJSON RegexpFlags" $ do- it "generates the correct JSON for AllRegexpFlags" $- toJSON AllRegexpFlags `shouldBe` String "ALL"-- it "generates the correct JSON for NoRegexpFlags" $- toJSON NoRegexpFlags `shouldBe` String "NONE"-- it "generates the correct JSON for SomeRegexpFlags" $- let flags = AnyString :| [ Automaton- , Complement- , Empty- , Intersection- , Interval ]- in toJSON (SomeRegexpFlags flags) `shouldBe` String "ANYSTRING|AUTOMATON|COMPLEMENT|EMPTY|INTERSECTION|INTERVAL"-- prop "removes duplicates from flags" $ \(flags :: RegexpFlags) ->- let String str = toJSON flags- flagStrs = T.splitOn "|" str- in noDuplicates flagStrs-- describe "omitNulls" $ do- it "checks that omitNulls drops list elements when it should" $- let dropped = omitNulls $ [ "test1" .= (toJSON ([] :: [Int]))- , "test2" .= (toJSON ("some value" :: Text))]- in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])-- it "checks that omitNulls doesn't drop list elements when it shouldn't" $- let notDropped = omitNulls $ [ "test1" .= (toJSON ([1] :: [Int]))- , "test2" .= (toJSON ("some value" :: Text))]- in notDropped `shouldBe` Object (HM.fromList [ ("test1", Array (V.fromList [Number 1.0]))- , ("test2", String "some value")])- it "checks that omitNulls drops non list elements when it should" $- let dropped = omitNulls $ [ "test1" .= (toJSON Null)- , "test2" .= (toJSON ("some value" :: Text))]- in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])- it "checks that omitNulls doesn't drop non list elements when it shouldn't" $- let notDropped = omitNulls $ [ "test1" .= (toJSON (1 :: Int))- , "test2" .= (toJSON ("some value" :: Text))]- in notDropped `shouldBe` Object (HM.fromList [ ("test1", Number 1.0)- , ("test2", String "some value")])-- describe "Exact isomorphism JSON instances" $ do- propJSON (Proxy :: Proxy Version)- propJSON (Proxy :: Proxy IndexName)- propJSON (Proxy :: Proxy MappingName)- propJSON (Proxy :: Proxy DocId)- propJSON (Proxy :: Proxy IndexAliasRouting)- propJSON (Proxy :: Proxy RoutingValue)- propJSON (Proxy :: Proxy ShardCount)- propJSON (Proxy :: Proxy ReplicaCount)- propJSON (Proxy :: Proxy TemplateName)- propJSON (Proxy :: Proxy TemplatePattern)- propJSON (Proxy :: Proxy QueryString)- propJSON (Proxy :: Proxy FieldName)- propJSON (Proxy :: Proxy CacheName)- propJSON (Proxy :: Proxy CacheKey)- propJSON (Proxy :: Proxy Existence)- propJSON (Proxy :: Proxy CutoffFrequency)- propJSON (Proxy :: Proxy Analyzer)- propJSON (Proxy :: Proxy MaxExpansions)- propJSON (Proxy :: Proxy Lenient)- propJSON (Proxy :: Proxy Tiebreaker)- propJSON (Proxy :: Proxy Boost)- propJSON (Proxy :: Proxy BoostTerms)- propJSON (Proxy :: Proxy MinimumMatch)- propJSON (Proxy :: Proxy DisableCoord)- propJSON (Proxy :: Proxy IgnoreTermFrequency)- propJSON (Proxy :: Proxy MinimumTermFrequency)- propJSON (Proxy :: Proxy MaxQueryTerms)- propJSON (Proxy :: Proxy Fuzziness)- propJSON (Proxy :: Proxy PrefixLength)- propJSON (Proxy :: Proxy TypeName)- propJSON (Proxy :: Proxy PercentMatch)- propJSON (Proxy :: Proxy StopWord)- propJSON (Proxy :: Proxy QueryPath)- propJSON (Proxy :: Proxy AllowLeadingWildcard)- propJSON (Proxy :: Proxy LowercaseExpanded)- propJSON (Proxy :: Proxy EnablePositionIncrements)- propJSON (Proxy :: Proxy AnalyzeWildcard)- propJSON (Proxy :: Proxy GeneratePhraseQueries)- propJSON (Proxy :: Proxy Locale)- propJSON (Proxy :: Proxy MaxWordLength)- propJSON (Proxy :: Proxy MinWordLength)- propJSON (Proxy :: Proxy PhraseSlop)- propJSON (Proxy :: Proxy MinDocFrequency)- propJSON (Proxy :: Proxy MaxDocFrequency)- propJSON (Proxy :: Proxy Filter)- propJSON (Proxy :: Proxy Query)- propJSON (Proxy :: Proxy SimpleQueryStringQuery)- propJSON (Proxy :: Proxy FieldOrFields)- propJSON (Proxy :: Proxy SimpleQueryFlag)- propJSON (Proxy :: Proxy RegexpQuery)- propJSON (Proxy :: Proxy QueryStringQuery)- propJSON (Proxy :: Proxy RangeQuery)- propJSON (Proxy :: Proxy PrefixQuery)- propJSON (Proxy :: Proxy NestedQuery)- propJSON (Proxy :: Proxy MoreLikeThisFieldQuery)- propJSON (Proxy :: Proxy MoreLikeThisQuery)- propJSON (Proxy :: Proxy IndicesQuery)- propJSON (Proxy :: Proxy HasParentQuery)- propJSON (Proxy :: Proxy HasChildQuery)- propJSON (Proxy :: Proxy FuzzyQuery)- propJSON (Proxy :: Proxy FuzzyLikeFieldQuery)- propJSON (Proxy :: Proxy FuzzyLikeThisQuery)- propJSON (Proxy :: Proxy DisMaxQuery)- propJSON (Proxy :: Proxy CommonTermsQuery)- propJSON (Proxy :: Proxy CommonMinimumMatch)- propJSON (Proxy :: Proxy BoostingQuery)- propJSON (Proxy :: Proxy BoolQuery)- propJSON (Proxy :: Proxy MatchQuery)- propJSON (Proxy :: Proxy MultiMatchQueryType)- propJSON (Proxy :: Proxy BooleanOperator)- propJSON (Proxy :: Proxy ZeroTermsQuery)- propJSON (Proxy :: Proxy MatchQueryType)- propJSON (Proxy :: Proxy AliasRouting)- propJSON (Proxy :: Proxy IndexAliasCreate)- propJSON (Proxy :: Proxy SearchAliasRouting)- propJSON (Proxy :: Proxy ScoreType)- propJSON (Proxy :: Proxy Distance)- propJSON (Proxy :: Proxy DistanceUnit)- propJSON (Proxy :: Proxy DistanceType)- propJSON (Proxy :: Proxy OptimizeBbox)- propJSON (Proxy :: Proxy GeoBoundingBoxConstraint)- propJSON (Proxy :: Proxy GeoFilterType)- propJSON (Proxy :: Proxy GeoBoundingBox)- propJSON (Proxy :: Proxy LatLon)- propJSON (Proxy :: Proxy RangeExecution)- prop "RegexpFlags FromJSON/ToJSON roundtrips, removing dups " $ \rfs ->- let expected = case rfs of- SomeRegexpFlags fs -> SomeRegexpFlags (NE.fromList (L.nub (NE.toList fs)))- x -> x- in parseEither parseJSON (toJSON rfs) === Right expected- propJSON (Proxy :: Proxy BoolMatch)- propJSON (Proxy :: Proxy Term)- propJSON (Proxy :: Proxy MultiMatchQuery)- propJSON (Proxy :: Proxy IndexSettings)- propJSON (Proxy :: Proxy CompoundFormat)- propJSON (Proxy :: Proxy TemplateQueryInline)- propJSON (Proxy :: Proxy Suggest)- propJSON (Proxy :: Proxy DirectGenerators)- propJSON (Proxy :: Proxy DirectGeneratorSuggestModeTypes)-- describe "Approximate isomorphism JSON instances" $ do- propApproxJSON (Proxy :: Proxy UpdatableIndexSetting')- propApproxJSON (Proxy :: Proxy ReplicaCount)- propApproxJSON (Proxy :: Proxy ReplicaBounds)- propApproxJSON (Proxy :: Proxy Bytes)- propApproxJSON (Proxy :: Proxy AllocationPolicy)- propApproxJSON (Proxy :: Proxy InitialShardCount)- propApproxJSON (Proxy :: Proxy FSType)
− tests/V1/Test/Query.hs
@@ -1,115 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Query where--import Test.Common-import Test.Import--import qualified Data.HashMap.Strict as HM--spec :: Spec-spec =- describe "query API" $ do- it "returns document for term query and identity filter" $ withTestEnv $ do- _ <- insertData- let query = TermQuery (Term "user" "bitemyapp") Nothing- let filter' = IdentityFilter- let search = mkSearch (Just query) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "handles constant score queries" $ withTestEnv $ do- _ <- insertData- let query = TermsQuery "user" ("bitemyapp" :| [])- let cfQuery = ConstantScoreQuery query (Boost 1.0)- let filter' = IdentityFilter- let search = mkSearch (Just cfQuery) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for terms query and identity filter" $ withTestEnv $ do- _ <- insertData- let query = TermsQuery "user" ("bitemyapp" :| [])- let filter' = IdentityFilter- let search = mkSearch (Just query) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for match query" $ withTestEnv $ do- _ <- insertData- let query = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for multi-match query" $ withTestEnv $ do- _ <- insertData- let flds = [FieldName "user", FieldName "message"]- let query = QueryMultiMatchQuery $ mkMultiMatchQuery flds (QueryString "bitemyapp")- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for multi-match query with a custom tiebreaker" $ withTestEnv $ do- _ <- insertData- let tiebreaker = Just $ Tiebreaker 0.3- flds = [FieldName "user", FieldName "message"]- multiQuery' = mkMultiMatchQuery flds (QueryString "bitemyapp")- query = QueryMultiMatchQuery $ multiQuery' { multiMatchQueryTiebreaker = tiebreaker }- search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for bool query" $ withTestEnv $ do- _ <- insertData- let innerQuery = QueryMatchQuery $- mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let query = QueryBoolQuery $- mkBoolQuery [innerQuery] [] []- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for boosting query" $ withTestEnv $ do- _ <- insertData- let posQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let negQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "notmyapp")- let query = QueryBoostingQuery $ BoostingQuery posQuery negQuery (Boost 0.2)- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for common terms query" $ withTestEnv $ do- _ <- insertData- let query = QueryCommonTermsQuery $- CommonTermsQuery (FieldName "user")- (QueryString "bitemyapp")- (CutoffFrequency 0.0001)- Or Or Nothing Nothing Nothing Nothing- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for for inline template query" $ withTestEnv $ do- _ <- insertData- let innerQuery = QueryMatchQuery $- mkMatchQuery (FieldName "{{userKey}}")- (QueryString "{{bitemyappKey}}")- templateParams = TemplateQueryKeyValuePairs $ HM.fromList- [ ("userKey", "user")- , ("bitemyappKey", "bitemyapp")- ]- templateQuery = QueryTemplateQueryInline $- TemplateQueryInline innerQuery templateParams- search = mkSearch (Just templateQuery) Nothing- myTweet <- searchTweet search- liftIO $ myTweet `shouldBe` Right exampleTweet
− tests/V1/Test/Snapshots.hs
@@ -1,201 +0,0 @@-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE OverloadedStrings #-}--module Test.Snapshots (spec) where--import Test.Common-import Test.Import--import Data.Maybe (fromMaybe)-import qualified Data.List as L-import qualified Data.HashMap.Strict as HM-import qualified Data.Text as T-import qualified Data.Vector as V-import qualified Network.HTTP.Types.Method as NHTM-import qualified Network.URI as URI--import Test.Generators ()--spec :: Spec-spec = do- describe "FsSnapshotRepo" $- prop "SnapshotRepo laws" $ \fsr ->- fromGSnapshotRepo (toGSnapshotRepo fsr) === Right (fsr :: FsSnapshotRepo)-- describe "Snapshot repos" $ do- it "always parses all snapshot repos API" $ when' canSnapshot $ withTestEnv $ do- res <- getSnapshotRepos AllSnapshotRepos- liftIO $ case res of- Left e -> expectationFailure ("Expected a right but got Left " <> show e)- Right _ -> return ()-- it "finds an existing list of repos" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- let r2n = SnapshotRepoName "bloodhound-repo2"- withSnapshotRepo r1n $ \r1 ->- withSnapshotRepo r2n $ \r2 -> do- repos <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| [ExactRepo r2n]))- liftIO $ case repos of- Right xs -> do- let srt = L.sortBy (comparing gSnapshotRepoName)- srt xs `shouldBe` srt [r1, r2]- Left e -> expectationFailure (show e)-- it "creates and updates with updateSnapshotRepo" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \r1 -> do- let Just (String dir) = HM.lookup "location" (gSnapshotRepoSettingsObject (gSnapshotRepoSettings r1))- let noCompression = FsSnapshotRepo r1n (T.unpack dir) False Nothing Nothing Nothing- resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings noCompression- liftIO (validateStatus resp 200)- Right [roundtrippedNoCompression] <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| []))- liftIO (roundtrippedNoCompression `shouldBe` toGSnapshotRepo noCompression)-- -- verify came around in 1.4 it seems- it "can verify existing repos" $ when' canSnapshot $ when' (atleast es14) $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- res <- verifySnapshotRepo r1n- liftIO $ case res of- Right (SnapshotVerification vs)- | null vs -> expectationFailure "Expected nonempty set of verifying nodes"- | otherwise -> return ()- Left e -> expectationFailure (show e)-- describe "Snapshots" $ do- it "always parses all snapshots API" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- res <- getSnapshots r1n AllSnapshots- liftIO $ case res of- Left e -> expectationFailure ("Expected a right but got Left " <> show e)- Right _ -> return ()-- it "can parse a snapshot that it created" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- res <- getSnapshots r1n (SnapshotList (ExactSnap s1n :| []))- liftIO $ case res of- Right [snap]- | snapInfoState snap == SnapshotSuccess &&- snapInfoName snap == s1n -> return ()- | otherwise -> expectationFailure (show snap)- Right [] -> expectationFailure "There were no snapshots"- Right snaps -> expectationFailure ("Expected 1 snapshot but got" <> show (length snaps))- Left e -> expectationFailure (show e)-- describe "Snapshot restore" $ do- it "can restore a snapshot that we create" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True }- -- have to close an index to restore it- resp1 <- closeIndex testIndex- liftIO (validateStatus resp1 200)- resp2 <- restoreSnapshot r1n s1n settings- liftIO (validateStatus resp2 200)-- it "can restore and rename" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- let pat = RestoreRenamePattern "bloodhound-tests-twitter-(\\d+)"- let replace = RRTLit "restored-" :| [RRSubWholeMatch]- let expectedIndex = IndexName "restored-bloodhound-tests-twitter-1"- oldEnoughForOverrides <- liftIO (atleast es15)- let overrides = RestoreIndexSettings { restoreOverrideReplicas = Just (ReplicaCount 0) }- let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True- , snapRestoreRenamePattern = Just pat- , snapRestoreRenameReplacement = Just replace- , snapRestoreIndexSettingsOverrides = if oldEnoughForOverrides- then Just overrides- else Nothing- }- -- have to close an index to restore it- let go = do- resp <- restoreSnapshot r1n s1n settings- liftIO (validateStatus resp 200)- exists <- indexExists expectedIndex- liftIO (exists `shouldBe` True)- go `finally` deleteIndex expectedIndex---- | Get configured repo paths for snapshotting. Note that by default--- this is not enabled and if we are over es 1.5, we won't be able to--- test snapshotting. Note that this can and should be part of the--- client functionality in a much less ad-hoc incarnation.-getRepoPaths :: IO [FilePath]-getRepoPaths = withTestEnv $ do- bhe <- getBHEnv- let Server s = bhServer bhe- let tUrl = s <> "/" <> "_nodes"- initReq <- parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack tUrl))- let req = setRequestIgnoreStatus $ initReq { method = NHTM.methodGet }- Right (Object o) <- parseEsResponse =<< liftIO (httpLbs req (bhManager bhe))- return $ fromMaybe mempty $ do- Object nodes <- HM.lookup "nodes" o- Object firstNode <- snd <$> headMay (HM.toList nodes)- Object settings <- HM.lookup "settings" firstNode- Object path <- HM.lookup "path" settings- Array repo <- HM.lookup "repo" path- return [ T.unpack t | String t <- V.toList repo]---- | 1.5 and earlier don't care about repo paths-canSnapshot :: IO Bool-canSnapshot = do- caresAboutRepos <- atleast es16- repoPaths <- getRepoPaths- return (not caresAboutRepos || not (null repoPaths))--withSnapshotRepo- :: ( MonadMask m- , MonadBH m- )- => SnapshotRepoName- -> (GenericSnapshotRepo -> m a)- -> m a-withSnapshotRepo srn@(SnapshotRepoName n) f = do- repoPaths <- liftIO getRepoPaths- -- we'll use the first repo path if available, otherwise system temp- -- dir. Note that this will fail on ES > 1.6, so be sure you use- -- @when' canSnapshot@.- case repoPaths of- (firstRepoPath:_) -> withTempDirectory firstRepoPath (T.unpack n) $ \dir -> bracket (alloc dir) free f- [] -> withSystemTempDirectory (T.unpack n) $ \dir -> bracket (alloc dir) free f- where- alloc dir = do- liftIO (setFileMode dir mode)- let repo = FsSnapshotRepo srn "bloodhound-tests-backups" True Nothing Nothing Nothing- resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings repo- liftIO (validateStatus resp 200)- return (toGSnapshotRepo repo)- mode = ownerModes `unionFileModes` groupModes `unionFileModes` otherModes- free GenericSnapshotRepo {..} = do- resp <- deleteSnapshotRepo gSnapshotRepoName- liftIO (validateStatus resp 200)---withSnapshot- :: ( MonadMask m- , MonadBH m- )- => SnapshotRepoName- -> SnapshotName- -> m a- -> m a-withSnapshot srn sn = bracket_ alloc free- where- alloc = do- resp <- createSnapshot srn sn createSettings- liftIO (validateStatus resp 200)- -- We'll make this synchronous for testing purposes- createSettings = defaultSnapshotCreateSettings { snapWaitForCompletion = True- , snapIndices = Just (IndexList (testIndex :| []))- -- We don't actually need to back up any data- }- free =- deleteSnapshot srn sn
− tests/V1/Test/Sorting.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Sorting where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "sorting" $- it "returns documents in the right order" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let sortSpec = DefaultSortSpec $ mkSort (FieldName "age") Ascending- let search = Search Nothing- Nothing (Just [sortSpec]) Nothing Nothing- False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing- Nothing- result <- searchTweets search- let myTweet = grabFirst result- liftIO $- myTweet `shouldBe` Right otherTweet
− tests/V1/Test/SourceFiltering.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.SourceFiltering where--import Test.Common-import Test.Import--import qualified Data.HashMap.Strict as HM--spec :: Spec-spec =- describe "Source filtering" $ do-- it "doesn't include source when sources are disabled" $ withTestEnv $- searchExpectSource- NoSource- (Left (EsError 500 "Source was missing"))-- it "includes a source" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPattern (Pattern "message")))- (Right (Object (HM.fromList [("message", String "Use haskell!")])))-- it "includes sources" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPatterns [Pattern "user", Pattern "message"]))- (Right (Object (HM.fromList [("user",String "bitemyapp"),("message", String "Use haskell!")])))-- it "includes source patterns" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPattern (Pattern "*ge")))- (Right (Object (HM.fromList [("age", Number 10000),("message", String "Use haskell!")])))-- it "excludes source patterns" $ withTestEnv $- searchExpectSource- (SourceIncludeExclude (Include [])- (Exclude [Pattern "l*", Pattern "*ge", Pattern "postDate", Pattern "extra"]))- (Right (Object (HM.fromList [("user",String "bitemyapp")])))
− tests/V1/Test/Suggest.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Suggest where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "Suggest" $- it "returns a search suggestion using the phrase suggester" $ withTestEnv $ do- _ <- insertData- let phraseSuggester = mkPhraseSuggester (FieldName "message")- namedSuggester = Suggest "Use haskel" "suggest_name" (SuggestTypePhraseSuggester phraseSuggester)- search' = mkSearch Nothing Nothing- search = search' { suggestBody = Just namedSuggester }- expectedText = Just "use haskell"- resp <- searchByIndex testIndex search- parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Tweet))- case parsed of- Left e -> liftIO $ expectationFailure ("Expected an search suggestion but got " <> show e)- Right sr -> liftIO $ (suggestOptionsText . head . suggestResponseOptions . head . nsrResponses <$> suggest sr) `shouldBe` expectedText
− tests/V1/Test/Templates.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Templates where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "template API" $ do- it "can create a template" $ withTestEnv $ do- let idxTpl = IndexTemplate (TemplatePattern "tweet-*") (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]- resp <- putTemplate idxTpl (TemplateName "tweet-tpl")- liftIO $ validateStatus resp 200-- it "can detect if a template exists" $ withTestEnv $ do- exists <- templateExists (TemplateName "tweet-tpl")- liftIO $ exists `shouldBe` True-- it "can delete a template" $ withTestEnv $ do- resp <- deleteTemplate (TemplateName "tweet-tpl")- liftIO $ validateStatus resp 200-- it "can detect if a template doesn't exist" $ withTestEnv $ do- exists <- templateExists (TemplateName "tweet-tpl")- liftIO $ exists `shouldBe` False
− tests/V1/tests.hs
@@ -1,117 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeOperators #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}-#if __GLASGOW_HASKELL__ < 800-{-# OPTIONS_GHC -fcontext-stack=100 #-}-#endif-#if __GLASGOW_HASKELL__ >= 802-{-# LANGUAGE MonoLocalBinds #-}-#endif-module Main where--import Test.Common-import Test.Import--import Prelude--import qualified Test.Aggregation as Aggregation-import qualified Test.BulkAPI as Bulk-import qualified Test.Documents as Documents-import qualified Test.Highlights as Highlights-import qualified Test.Indices as Indices-import qualified Test.JSON as JSON-import qualified Test.Query as Query-import qualified Test.Snapshots as Snapshots-import qualified Test.Sorting as Sorting-import qualified Test.SourceFiltering as SourceFiltering-import qualified Test.Suggest as Suggest-import qualified Test.Templates as Templates--main :: IO ()-main = hspec $ do- Aggregation.spec- Bulk.spec- Documents.spec- Highlights.spec- Indices.spec- JSON.spec- Query.spec- Snapshots.spec- Sorting.spec- SourceFiltering.spec- Suggest.spec- Templates.spec-- describe "error parsing" $ do- it "can parse EsErrors for < 2.0" $ when' (atmost es16) $ withTestEnv $ do- res <- getDocument (IndexName "bogus") (MappingName "also_bogus") (DocId "bogus_as_well")- let errorResp = eitherDecode (responseBody res)- liftIO (errorResp `shouldBe` Right (EsError 404 "IndexMissingException[[bogus] missing]"))-- it "can parse EsErrors for >= 2.0" $ when' (atleast es20) $ withTestEnv $ do- res <- getDocument (IndexName "bogus") (MappingName "also_bogus") (DocId "bogus_as_well")- let errorResp = eitherDecode (responseBody res)- liftIO (errorResp `shouldBe` Right (EsError 404 "no such index"))-- describe "Monoid (SearchHits a)" $- prop "abides the monoid laws" $ eq $- prop_Monoid (T :: T (SearchHits ()))-- describe "mkDocVersion" $- prop "can never construct an out of range docVersion" $ \i ->- let res = mkDocVersion i- in case res of- Nothing -> property True- Just dv -> (dv >= minBound) .&&.- (dv <= maxBound) .&&.- docVersionNumber dv === i-- describe "getNodesInfo" $- it "fetches the responding node when LocalNode is used" $ withTestEnv $ do- res <- getNodesInfo LocalNode- liftIO $ case res of- -- This is really just a smoke test for response- -- parsing. Node info is so variable, there's not much I can- -- assert here.- Right NodesInfo {..} -> length nodesInfo `shouldBe` 1- Left e -> expectationFailure ("Expected NodesInfo but got " <> show e)-- describe "getNodesStats" $- it "fetches the responding node when LocalNode is used" $ withTestEnv $ do- res <- getNodesStats LocalNode- liftIO $ case res of- -- This is really just a smoke test for response- -- parsing. Node stats is so variable, there's not much I can- -- assert here.- Right NodesStats {..} -> length nodesStats `shouldBe` 1- Left e -> expectationFailure ("Expected NodesStats but got " <> show e)-- describe "Enum DocVersion" $- it "follows the laws of Enum, Bounded" $ do- evaluate (succ maxBound :: DocVersion) `shouldThrow` anyErrorCall- evaluate (pred minBound :: DocVersion) `shouldThrow` anyErrorCall- evaluate (toEnum 0 :: DocVersion) `shouldThrow` anyErrorCall- evaluate (toEnum 9200000000000000001 :: DocVersion) `shouldThrow` anyErrorCall- enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]- enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]- enumFromThen minBound (pred maxBound :: DocVersion) `shouldBe` [minBound, pred maxBound]-- describe "Scan & Scroll API" $- it "returns documents using the scan&scroll API" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let search =- (mkSearch- (Just $ MatchAllQuery Nothing) Nothing)- { size = Size 1 }- regular_search <- searchTweet search- scan_search' <- scanSearch testIndex testMapping search :: BH IO [Hit Tweet]- let scan_search = map hitSource scan_search'- liftIO $- regular_search `shouldBe` Right exampleTweet -- Check that the size restrtiction is being honored- liftIO $- scan_search `shouldMatchList` [Just exampleTweet, Just otherTweet]
− tests/V5/Test/Aggregation.hs
@@ -1,147 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Aggregation (spec) where--import Test.Common-import Test.Import--import Control.Error (fmapL, note)-import qualified Data.Map as M-import qualified Database.V5.Bloodhound--spec :: Spec-spec =- describe "Aggregation API" $ do- it "returns term aggregation results" $ withTestEnv $ do- _ <- insertData- let terms = TermsAgg $ mkTermsAggregation "user"- let search = mkAggregateSearch Nothing $ mkAggregations "users" terms- searchExpectAggs search- searchValidBucketAgg search "users" toTerms-- it "return sub-aggregation results" $ withTestEnv $ do- _ <- insertData- let subaggs = mkAggregations "age_agg" . TermsAgg $ mkTermsAggregation "age"- agg = TermsAgg $ (mkTermsAggregation "user") { termAggs = Just subaggs}- search = mkAggregateSearch Nothing $ mkAggregations "users" agg- reply <- searchByIndex testIndex search- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- usersAggResults = result >>= aggregations >>= toTerms "users"- subAggResults = usersAggResults >>= (listToMaybe . buckets) >>= termsAggs >>= toTerms "age_agg"- subAddResultsExists = isJust subAggResults- liftIO $ subAddResultsExists `shouldBe` True-- it "returns cardinality aggregation results" $ withTestEnv $ do- _ <- insertData- let cardinality = CardinalityAgg $ mkCardinalityAggregation $ FieldName "user"- let search = mkAggregateSearch Nothing $ mkAggregations "users" cardinality- let search' = search { Database.V5.Bloodhound.from = From 0, size = Size 0 }- searchExpectAggs search'- let docCountPair k n = (k, object ["value" .= Number n])- res <- searchTweets search'- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "users" 1]))-- it "returns stats aggregation results" $ withTestEnv $ do- _ <- insertData- let stats = StatsAgg $ mkStatsAggregation $ FieldName "age"- let search = mkAggregateSearch Nothing $ mkAggregations "users" stats- let search' = search { Database.V5.Bloodhound.from = From 0, size = Size 0 }- searchExpectAggs search'- let statsAggRes k n = (k, object [ "max" .= Number n- , "avg" .= Number n- , "count" .= Number 1- , "min" .= Number n- , "sum" .= Number n])- res <- searchTweets search'- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [ statsAggRes "users" 10000]))-- it "can give collection hint parameters to term aggregations" $ when' (atleast es13) $ withTestEnv $ do- _ <- insertData- let terms = TermsAgg $ (mkTermsAggregation "user") { termCollectMode = Just BreadthFirst }- let search = mkAggregateSearch Nothing $ mkAggregations "users" terms- searchExpectAggs search- searchValidBucketAgg search "users" toTerms-- -- One of these fails with 1.7.3- it "can give execution hint parameters to term aggregations" $ when' (atmost es11) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [Map, Ordinals]-- it "can give execution hint parameters to term aggregations" $ when' (is es12) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [GlobalOrdinals, GlobalOrdinalsHash, GlobalOrdinalsLowCardinality, Map, Ordinals]-- it "can give execution hint parameters to term aggregations" $ when' (atleast es12) $ withTestEnv $ do- _ <- insertData- searchTermsAggHint [GlobalOrdinals, GlobalOrdinalsHash, GlobalOrdinalsLowCardinality, Map]- -- One of the above.-- it "can execute value_count aggregations" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let ags = mkAggregations "user_count" (ValueCountAgg (FieldValueCount (FieldName "user"))) <>- mkAggregations "bogus_count" (ValueCountAgg (FieldValueCount (FieldName "bogus")))- let search = mkAggregateSearch Nothing ags- let docCountPair k n = (k, object ["value" .= Number n])- res <- searchTweets search- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [ docCountPair "user_count" 2- , docCountPair "bogus_count" 0- ]))-- it "can execute date_range aggregations" $ withTestEnv $ do- let now = fromGregorian 2015 3 14- let ltAMonthAgo = UTCTime (fromGregorian 2015 3 1) 0- let ltAWeekAgo = UTCTime (fromGregorian 2015 3 10) 0- let oldDoc = exampleTweet { postDate = ltAMonthAgo }- let newDoc = exampleTweet { postDate = ltAWeekAgo }- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings oldDoc (DocId "1")- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings newDoc (DocId "2")- _ <- refreshIndex testIndex- let thisMonth = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMMonth])- let thisWeek = DateRangeFrom (DateMathExpr (DMDate now) [SubtractTime 1 DMWeek])- let agg = DateRangeAggregation (FieldName "postDate") Nothing (thisMonth :| [thisWeek])- let ags = mkAggregations "date_ranges" (DateRangeAgg agg)- let search = mkAggregateSearch Nothing ags- res <- searchTweets search- liftIO $ hitsTotal . searchHits <$> res `shouldBe` Right 2- let bucks = do magrs <- fmapL show (aggregations <$> res)- agrs <- note "no aggregations returned" magrs- rawBucks <- note "no date_ranges aggregation" $ M.lookup "date_ranges" agrs- parseEither parseJSON rawBucks- let fromMonthT = UTCTime (fromGregorian 2015 2 14) 0- let fromWeekT = UTCTime (fromGregorian 2015 3 7) 0- liftIO $ buckets <$> bucks `shouldBe` Right [ DateRangeResult "2015-02-14T00:00:00.000Z-*"- (Just fromMonthT)- (Just "2015-02-14T00:00:00.000Z")- Nothing- Nothing- 2- Nothing- , DateRangeResult "2015-03-07T00:00:00.000Z-*"- (Just fromWeekT)- (Just "2015-03-07T00:00:00.000Z")- Nothing- Nothing- 1- Nothing- ]-- it "returns date histogram aggregation results" $ withTestEnv $ do- _ <- insertData- let histogram = DateHistogramAgg $ mkDateHistogram (FieldName "postDate") Minute- let search = mkAggregateSearch Nothing (mkAggregations "byDate" histogram)- searchExpectAggs search- searchValidBucketAgg search "byDate" toDateHistogram-- it "can execute missing aggregations" $ withTestEnv $ do- _ <- insertData- _ <- insertExtra- let ags = mkAggregations "missing_agg" (MissingAgg (MissingAggregation "extra"))- let search = mkAggregateSearch Nothing ags- let docCountPair k n = (k, object ["doc_count" .= Number n])- res <- searchTweets search- liftIO $- fmap aggregations res `shouldBe` Right (Just (M.fromList [docCountPair "missing_agg" 1]))
− tests/V5/Test/ApproxEq.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE DefaultSignatures #-}-{-# LANGUAGE OverloadedStrings #-}--module Test.ApproxEq where--import Database.V5.Bloodhound--import Test.Import--import qualified Data.List.NonEmpty as NE---- | Typeclass for "equal where it matters". Use this to specify--- less-strict equivalence for things such as lists that can wind up--- in an unpredictable order-class ApproxEq a where- (=~) :: a -> a -> Bool-- showApproxEq :: a -> String- default showApproxEq :: (Show a) => a -> String- showApproxEq = show--(==~) :: (ApproxEq a) => a -> a -> Property-a ==~ b = counterexample (showApproxEq a ++ " !=~ " ++ showApproxEq b) (a =~ b)--instance ApproxEq NominalDiffTime where (=~) = (==)-instance ApproxEq Bool where (=~) = (==)-instance ApproxEq Int where (=~) = (==)-instance (Eq a, Show a) => ApproxEq (Maybe a) where (=~) = (==)-instance ApproxEq Char where- (=~) = (==)--instance ApproxEq NodeAttrFilter where (=~) = (==)-instance ApproxEq NodeAttrName where (=~) = (==)-instance (Eq a, Show a) => ApproxEq (NonEmpty a) where (=~) = (==)-instance (ApproxEq l, Show l, ApproxEq r, Show r) => ApproxEq (Either l r) where- Left a =~ Left b = a =~ b- Right a =~ Right b = a =~ b- _ =~ _ = False- showApproxEq (Left x) = "Left " <> showApproxEq x- showApproxEq (Right x) = "Right " <> showApproxEq x-instance (ApproxEq a, Show a) => ApproxEq [a] where- as =~ bs = and (zipWith (=~) as bs)-instance ApproxEq ReplicaCount where (=~) = (==)-instance ApproxEq ReplicaBounds where (=~) = (==)-instance ApproxEq Bytes where (=~) = (==)-instance ApproxEq AllocationPolicy where (=~) = (==)-instance ApproxEq InitialShardCount where (=~) = (==)-instance ApproxEq FSType where (=~) = (==)---- | Due to the way nodeattrfilters get serialized here, they may come--- out in a different order, but they are morally equivalent-instance ApproxEq UpdatableIndexSetting where- RoutingAllocationInclude a =~ RoutingAllocationInclude b =- NE.sort a =~ NE.sort b- RoutingAllocationExclude a =~ RoutingAllocationExclude b =- NE.sort a =~ NE.sort b- RoutingAllocationRequire a =~ RoutingAllocationRequire b =- NE.sort a =~ NE.sort b- a =~ b = a == b- showApproxEq (RoutingAllocationInclude xs) = show (RoutingAllocationInclude (NE.sort xs))- showApproxEq (RoutingAllocationExclude xs) = show (RoutingAllocationExclude (NE.sort xs))- showApproxEq (RoutingAllocationRequire xs) = show (RoutingAllocationRequire (NE.sort xs))- showApproxEq x = show x
− tests/V5/Test/BulkAPI.hs
@@ -1,95 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.BulkAPI (spec) where--import Test.Common-import Test.Import--import qualified Data.Vector as V-import qualified Lens.Micro.Aeson as LMA--newtype BulkTest =- BulkTest Text- deriving (Eq, Show)--instance ToJSON BulkTest where- toJSON (BulkTest name') =- object ["name" .= name']--instance FromJSON BulkTest where- parseJSON = withObject "BulkTest" parse- where- parse o = do- t <- o .: "name"- BulkTest <$> parseJSON t--spec :: Spec-spec =- describe "Bulk API" $- it "inserts all documents we request" $ withTestEnv $ do- _ <- insertData- let firstTest = BulkTest "blah"- let secondTest = BulkTest "bloo"- let thirdTest = BulkTest "graffle"- let fourthTest = BulkTest "garabadoo"- let fifthTest = BulkTest "serenity"- let firstDoc = BulkIndex testIndex- testMapping (DocId "2") (toJSON firstTest)- let secondDoc = BulkCreate testIndex- testMapping (DocId "3") (toJSON secondTest)- let thirdDoc = BulkCreateEncoding testIndex- testMapping (DocId "4") (toEncoding thirdTest)- let fourthDoc = BulkIndexAuto testIndex- testMapping (toJSON fourthTest)- let fifthDoc = BulkIndexEncodingAuto testIndex- testMapping (toEncoding fifthTest)- let stream = V.fromList [firstDoc, secondDoc, thirdDoc, fourthDoc, fifthDoc]- _ <- bulk stream- -- liftIO $ pPrint bulkResp- _ <- refreshIndex testIndex- -- liftIO $ pPrint refreshResp- fDoc <- getDocument testIndex testMapping (DocId "2")- sDoc <- getDocument testIndex testMapping (DocId "3")- tDoc <- getDocument testIndex testMapping (DocId "4")- -- note that we cannot query for fourthDoc and fifthDoc since we- -- do not know their autogenerated ids.- let maybeFirst =- eitherDecode- $ responseBody fDoc- :: Either String (EsResult BulkTest)- let maybeSecond =- eitherDecode- $ responseBody sDoc- :: Either String (EsResult BulkTest)- let maybeThird =- eitherDecode- $ responseBody tDoc- :: Either String (EsResult BulkTest)- -- liftIO $ pPrint [maybeFirst, maybeSecond, maybeThird]- liftIO $ do- fmap getSource maybeFirst `shouldBe` Right (Just firstTest)- fmap getSource maybeSecond `shouldBe` Right (Just secondTest)- fmap getSource maybeThird `shouldBe` Right (Just thirdTest)- -- Since we can't get the docs by doc id, we check for their existence in- -- a match all query.- let query = MatchAllQuery Nothing- let search = mkSearch (Just query) Nothing- resp <- searchByIndex testIndex search- parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))- case parsed of- Left e ->- liftIO $ expectationFailure ("Expected a script-transformed result but got: " <> show e)- (Right sr) -> do- liftIO $- hitsTotal (searchHits sr) `shouldBe` 6- let nameList :: [Text]- nameList =- hits (searchHits sr)- ^.. traverse- . to hitSource- . _Just- . LMA.key "name"- . _String- liftIO $- nameList- `shouldBe` ["blah","bloo","graffle","garabadoo","serenity"]
− tests/V5/Test/Common.hs
@@ -1,292 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-}--module Test.Common where--import Test.Import--import qualified Data.Map as M-import qualified Data.SemVer as SemVer-import qualified Network.HTTP.Types.Status as NHTS--testServer :: Server-testServer = Server "http://localhost:9200"-testIndex :: IndexName-testIndex = IndexName "bloodhound-tests-twitter-1"-testMapping :: MappingName-testMapping = MappingName "tweet"--withTestEnv :: BH IO a -> IO a-withTestEnv = withBH defaultManagerSettings testServer--data Location = Location { lat :: Double- , lon :: Double } deriving (Eq, Show)--data Tweet = Tweet { user :: Text- , postDate :: UTCTime- , message :: Text- , age :: Int- , location :: Location- , extra :: Maybe Text }- deriving (Eq, Show)--$(deriveJSON defaultOptions ''Location)-$(deriveJSON defaultOptions ''Tweet)--data ParentMapping = ParentMapping deriving (Eq, Show)--instance ToJSON ParentMapping where- toJSON ParentMapping =- object ["properties" .=- object [ "user" .= object ["type" .= ("string" :: Text)- , "fielddata" .= True- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("keyword" :: Text)]- ]]--es11 :: SemVer.Version-es11 = SemVer.version 1 1 0 [] []--es13 :: SemVer.Version-es13 = SemVer.version 1 3 0 [] []--es12 :: SemVer.Version-es12 = SemVer.version 1 2 0 [] []--es14 :: SemVer.Version-es14 = SemVer.version 1 4 0 [] []--es15 :: SemVer.Version-es15 = SemVer.version 1 5 0 [] []--es16 :: SemVer.Version-es16 = SemVer.version 1 6 0 [] []--es20 :: SemVer.Version-es20 = SemVer.version 2 0 0 [] []--es50 :: SemVer.Version-es50 = SemVer.version 5 0 0 [] []--getServerVersion :: IO (Maybe SemVer.Version)-getServerVersion = fmap extractVersion <$> withTestEnv getStatus- where- extractVersion = versionNumber . number . version--createExampleIndex :: (MonadBH m) => m Reply-createExampleIndex =- createIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) testIndex--deleteExampleIndex :: (MonadBH m) => m Reply-deleteExampleIndex =- deleteIndex testIndex--validateStatus :: Show body => Response body -> Int -> Expectation-validateStatus resp expected =- if actual == expected- then return ()- else expectationFailure ("Expected " <> show expected <> " but got " <> show actual <> ": " <> show body)- where- actual = NHTS.statusCode (responseStatus resp)- body = responseBody resp--data ChildMapping = ChildMapping deriving (Eq, Show)--instance ToJSON ChildMapping where- toJSON ChildMapping =- object ["_parent" .= object ["type" .= ("parent" :: Text)]- , "properties" .=- object [ "user" .= object ["type" .= ("string" :: Text)- , "fielddata" .= True- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("keyword" :: Text)]- ]]--data TweetMapping = TweetMapping deriving (Eq, Show)--instance ToJSON TweetMapping where- toJSON TweetMapping =- object ["tweet" .=- object ["properties" .=- object [ "user" .= object [ "type" .= ("string" :: Text)- , "fielddata" .= True- ]- -- Serializing the date as a date is breaking other tests, mysteriously.- -- , "postDate" .= object [ "type" .= ("date" :: Text)- -- , "format" .= ("YYYY-MM-dd`T`HH:mm:ss.SSSZZ" :: Text)]- , "message" .= object ["type" .= ("string" :: Text)]- , "age" .= object ["type" .= ("integer" :: Text)]- , "location" .= object ["type" .= ("geo_point" :: Text)]- , "extra" .= object ["type" .= ("keyword" :: Text)]- ]]]--exampleTweet :: Tweet-exampleTweet = Tweet { user = "bitemyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 10)- , message = "Use haskell!"- , age = 10000- , location = Location 40.12 (-71.34)- , extra = Nothing }--tweetWithExtra :: Tweet-tweetWithExtra = Tweet { user = "bitemyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 10)- , message = "Use haskell!"- , age = 10000- , location = Location 40.12 (-71.34)- , extra = Just "blah blah" }--newAge :: Int-newAge = 31337--newUser :: Text-newUser = "someotherapp"--tweetPatch :: Value-tweetPatch =- object [ "age" .= newAge- , "user" .= newUser- ]--patchedTweet :: Tweet-patchedTweet = exampleTweet{age = newAge, user = newUser}--otherTweet :: Tweet-otherTweet = Tweet { user = "notmyapp"- , postDate = UTCTime- (ModifiedJulianDay 55000)- (secondsToDiffTime 11)- , message = "Use haskell!"- , age = 1000- , location = Location 40.12 (-71.34)- , extra = Nothing }--resetIndex :: BH IO ()-resetIndex = do- _ <- deleteExampleIndex- _ <- createExampleIndex- _ <- putMapping testIndex testMapping TweetMapping- return ()--insertData :: BH IO Reply-insertData = do- resetIndex- insertData' defaultIndexDocumentSettings--insertData' :: IndexDocumentSettings -> BH IO Reply-insertData' ids = do- r <- indexDocument testIndex testMapping ids exampleTweet (DocId "1")- _ <- refreshIndex testIndex- return r--updateData :: BH IO Reply-updateData = do- r <- updateDocument testIndex testMapping defaultIndexDocumentSettings tweetPatch (DocId "1")- _ <- refreshIndex testIndex- return r--insertOther :: BH IO ()-insertOther = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings otherTweet (DocId "2")- _ <- refreshIndex testIndex- return ()--insertExtra :: BH IO ()-insertExtra = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings tweetWithExtra (DocId "4")- _ <- refreshIndex testIndex- return ()--insertWithSpaceInId :: BH IO ()-insertWithSpaceInId = do- _ <- indexDocument testIndex testMapping defaultIndexDocumentSettings exampleTweet (DocId "Hello World")- _ <- refreshIndex testIndex- return ()--searchTweet :: Search -> BH IO (Either EsError Tweet)-searchTweet search = do- result <- searchTweets search- let myTweet :: Either EsError Tweet- myTweet = grabFirst result- return myTweet--searchTweets :: Search -> BH IO (Either EsError (SearchResult Tweet))-searchTweets search = parseEsResponse =<< searchByIndex testIndex search--searchExpectNoResults :: Search -> BH IO ()-searchExpectNoResults search = do- result <- searchTweets search- let emptyHits = fmap (hits . searchHits) result- liftIO $- emptyHits `shouldBe` Right []--searchExpectAggs :: Search -> BH IO ()-searchExpectAggs search = do- reply <- searchByIndex testIndex search- let isEmpty x = return (M.null x)- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- liftIO $- (result >>= aggregations >>= isEmpty) `shouldBe` Just False--searchValidBucketAgg :: (BucketAggregation a, FromJSON a, Show a) =>- Search -> Text -> (Text -> AggregationResults -> Maybe (Bucket a)) -> BH IO ()-searchValidBucketAgg search aggKey extractor = do- reply <- searchByIndex testIndex search- let bucketDocs = docCount . head . buckets- let result = decode (responseBody reply) :: Maybe (SearchResult Tweet)- let count = result >>= aggregations >>= extractor aggKey >>= \x -> return (bucketDocs x)- liftIO $- count `shouldBe` Just 1--searchTermsAggHint :: [ExecutionHint] -> BH IO ()-searchTermsAggHint hints = do- let terms hint = TermsAgg $ (mkTermsAggregation "user") { termExecutionHint = Just hint }- let search hint = mkAggregateSearch Nothing $ mkAggregations "users" $ terms hint- forM_ hints $ searchExpectAggs . search- forM_ hints (\x -> searchValidBucketAgg (search x) "users" toTerms)--searchTweetHighlight :: Search- -> BH IO (Either EsError (Maybe HitHighlight))-searchTweetHighlight search = do- result <- searchTweets search- let tweetHit :: Either EsError (Maybe (Hit Tweet))- tweetHit = fmap (headMay . hits . searchHits) result- myHighlight :: Either EsError (Maybe HitHighlight)- myHighlight = (join . fmap hitHighlight) <$> tweetHit- return myHighlight--searchExpectSource :: Source -> Either EsError Value -> BH IO ()-searchExpectSource src expected = do- _ <- insertData- let query = QueryMatchQuery $ mkMatchQuery (FieldName "_all") (QueryString "haskell")- let search = (mkSearch (Just query) Nothing) { source = Just src }- reply <- searchByIndex testIndex search- result <- parseEsResponse reply- let value = grabFirst result- liftIO $- value `shouldBe` expected--atleast :: SemVer.Version -> IO Bool-atleast v = getServerVersion >>= \x -> return $ x >= Just v--atmost :: SemVer.Version -> IO Bool-atmost v = getServerVersion >>= \x -> return $ x <= Just v--is :: SemVer.Version -> IO Bool-is v = getServerVersion >>= \x -> return $ x == Just v
− tests/V5/Test/Documents.hs
@@ -1,51 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Documents where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "document API" $ do- it "indexes, updates, gets, and then deletes the generated document" $ withTestEnv $ do- _ <- insertData- _ <- updateData- docInserted <- getDocument testIndex testMapping (DocId "1")- let newTweet = eitherDecode- (responseBody docInserted) :: Either String (EsResult Tweet)- liftIO $ fmap getSource newTweet `shouldBe` Right (Just patchedTweet)-- it "indexes, gets, and then deletes the generated document with a DocId containing a space" $ withTestEnv $ do- _ <- insertWithSpaceInId- docInserted <- getDocument testIndex testMapping (DocId "Hello World")- let newTweet = eitherDecode- (responseBody docInserted) :: Either String (EsResult Tweet)- liftIO $ fmap getSource newTweet `shouldBe` Right (Just exampleTweet)-- it "produces a parseable result when looking up a bogus document" $ withTestEnv $ do- doc <- getDocument testIndex testMapping (DocId "bogus")- let noTweet = eitherDecode- (responseBody doc) :: Either String (EsResult Tweet)- liftIO $ fmap foundResult noTweet `shouldBe` Right Nothing-- it "can use optimistic concurrency control" $ withTestEnv $ do- let ev = ExternalDocVersion minBound- let cfg = defaultIndexDocumentSettings { idsVersionControl = ExternalGT ev }- resetIndex- res <- insertData' cfg- liftIO $ isCreated res `shouldBe` True- res' <- insertData' cfg- liftIO $ isVersionConflict res' `shouldBe` True-- it "indexes two documents in a parent/child relationship and checks that the child exists" $ withTestEnv $ do- resetIndex- _ <- putMapping testIndex (MappingName "child") ChildMapping- _ <- putMapping testIndex (MappingName "parent") ParentMapping- _ <- indexDocument testIndex (MappingName "parent") defaultIndexDocumentSettings exampleTweet (DocId "1")- let parent = (Just . DocumentParent . DocId) "1"- ids = IndexDocumentSettings NoVersionControl parent- _ <- indexDocument testIndex (MappingName "child") ids otherTweet (DocId "2")- _ <- refreshIndex testIndex- exists <- documentExists testIndex (MappingName "child") parent (DocId "2")- liftIO $ exists `shouldBe` True
− tests/V5/Test/Generators.hs
@@ -1,558 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-}--module Test.Generators where--import Database.V5.Bloodhound--import Test.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.List as L-import qualified Data.List.NonEmpty as NE-import qualified Data.Map as M-import qualified Data.Text as T-import qualified Data.SemVer as SemVer-import Test.QuickCheck.TH.Generators--import Test.ApproxEq--instance Arbitrary NominalDiffTime where- arbitrary = fromInteger <$> arbitrary--#if !MIN_VERSION_QuickCheck(2,8,0)-instance (Arbitrary k, Ord k, Arbitrary v) => Arbitrary (M.Map k v) where- arbitrary = M.fromList <$> arbitrary-#endif--instance Arbitrary Text where- arbitrary = T.pack <$> arbitrary--instance Arbitrary UTCTime where- arbitrary = UTCTime- <$> arbitrary- <*> (fromRational . toRational <$> choose (0::Double, 86400))--instance Arbitrary Day where- arbitrary =- ModifiedJulianDay . (2000 +) <$> arbitrary- shrink =- (ModifiedJulianDay <$>) . shrink . toModifiedJulianDay--#if !MIN_VERSION_QuickCheck(2,9,0)-instance Arbitrary a => Arbitrary (NonEmpty a) where- arbitrary = liftA2 (:|) arbitrary arbitrary-#endif--arbitraryScore :: Gen Score-arbitraryScore = fmap getPositive <$> arbitrary--instance (Arbitrary a, Typeable a) => Arbitrary (Hit a) where- arbitrary = Hit <$> arbitrary- <*> arbitrary- <*> arbitrary- <*> arbitraryScore- <*> arbitrary- <*> arbitrary- <*> arbitrary--instance Arbitrary HitFields where- arbitrary = pure (HitFields M.empty)- shrink = const []--instance (Arbitrary a, Typeable a) => Arbitrary (SearchHits a) where- arbitrary = reduceSize $ do- tot <- getPositive <$> arbitrary- score <- arbitraryScore- hs <- arbitrary- return $ SearchHits tot score hs---reduceSize :: Gen a -> Gen a-reduceSize f = sized $ \n -> resize (n `div` 2) f--arbitraryAlphaNum :: Gen Char-arbitraryAlphaNum = oneof [choose ('a', 'z')- ,choose ('A','Z')- , choose ('0', '9')]--instance Arbitrary RoutingValue where- arbitrary = RoutingValue . T.pack <$> listOf1 arbitraryAlphaNum--instance Arbitrary AliasRouting where- arbitrary = oneof [allAlias- ,one- ,theOther- ,both']- where one = GranularAliasRouting- <$> (Just <$> arbitrary)- <*> pure Nothing- theOther = GranularAliasRouting Nothing- <$> (Just <$> arbitrary)- both' = GranularAliasRouting- <$> (Just <$> arbitrary)- <*> (Just <$> arbitrary)- allAlias = AllAliasRouting <$> arbitrary----instance Arbitrary FieldName where- arbitrary =- FieldName- . T.pack- <$> listOf1 arbitraryAlphaNum---#if MIN_VERSION_base(4,10,0)--- Test.QuickCheck.Modifiers--qcNonEmptyToNonEmpty :: NonEmptyList a -> NonEmpty a-qcNonEmptyToNonEmpty (NonEmpty (a : xs)) = (a :| xs)-qcNonEmptyToNonEmpty (NonEmpty []) = error "NonEmpty was empty!"--instance Arbitrary a => Arbitrary (NonEmpty a) where- arbitrary =- qcNonEmptyToNonEmpty- <$> arbitrary-#endif-instance Arbitrary ScriptFields where- arbitrary =- pure $ ScriptFields $- HM.fromList []-- shrink = const []--instance Arbitrary ScriptParams where- arbitrary =- pure $ ScriptParams $- HM.fromList [ ("a", Number 42)- , ("b", String "forty two")- ]-- shrink = const []--instance Arbitrary RegexpFlags where- arbitrary = oneof [ pure AllRegexpFlags- , pure NoRegexpFlags- , SomeRegexpFlags <$> genUniqueFlags- ]- where genUniqueFlags =- NE.fromList . L.nub- <$> listOf1 arbitrary--instance Arbitrary IndexAliasCreate where- arbitrary =- IndexAliasCreate- <$> arbitrary- <*> reduceSize arbitrary--instance Arbitrary Query where- arbitrary =- reduceSize- $ oneof [ TermQuery <$> arbitrary <*> arbitrary- , TermsQuery <$> arbitrary <*> arbitrary- , QueryMatchQuery <$> arbitrary- , QueryMultiMatchQuery <$> arbitrary- , QueryBoolQuery <$> arbitrary- , QueryBoostingQuery <$> arbitrary- , QueryCommonTermsQuery <$> arbitrary- , ConstantScoreQuery <$> arbitrary <*> arbitrary- , QueryDisMaxQuery <$> arbitrary- , QueryFuzzyLikeThisQuery <$> arbitrary- , QueryFuzzyLikeFieldQuery <$> arbitrary- , QueryFuzzyQuery <$> arbitrary- , QueryHasChildQuery <$> arbitrary- , QueryHasParentQuery <$> arbitrary- , IdsQuery <$> arbitrary <*> arbitrary- , QueryIndicesQuery <$> arbitrary- , MatchAllQuery <$> arbitrary- , QueryMoreLikeThisQuery <$> arbitrary- , QueryMoreLikeThisFieldQuery <$> arbitrary- , QueryNestedQuery <$> arbitrary- , QueryPrefixQuery <$> arbitrary- , QueryQueryStringQuery <$> arbitrary- , QuerySimpleQueryStringQuery <$> arbitrary- , QueryRangeQuery <$> arbitrary- , QueryRegexpQuery <$> arbitrary- , QueryTemplateQueryInline <$> arbitrary- ]- -- TODO: Implement shrink- -- shrink = genericShrink--instance Arbitrary Filter where- arbitrary =- Filter <$> arbitrary - shrink (Filter q) =- Filter <$> shrink q--instance Arbitrary ReplicaBounds where- arbitrary = oneof [ replicasBounded- , replicasLowerBounded- , pure ReplicasUnbounded- ]- where replicasBounded = do- Positive a <- arbitrary- Positive b <- arbitrary- return (ReplicasBounded a b)- replicasLowerBounded = do- Positive a <- arbitrary- return (ReplicasLowerBounded a)--instance Arbitrary NodeAttrName where- arbitrary =- NodeAttrName- . T.pack- <$> listOf1 arbitraryAlphaNum---instance Arbitrary NodeAttrFilter where- arbitrary = do- n <- arbitrary- s:ss <- listOf1 (listOf1 arbitraryAlphaNum)- let ts = T.pack <$> s :| ss- return (NodeAttrFilter n ts)--instance Arbitrary VersionNumber where- arbitrary = do- major <- posInt- minor <- posInt- patch <- posInt- return $ VersionNumber $ SemVer.version major minor patch [] []- where- posInt = getPositive <$> arbitrary--instance Arbitrary TemplateQueryKeyValuePairs where- arbitrary = TemplateQueryKeyValuePairs . HM.fromList <$> arbitrary- shrink (TemplateQueryKeyValuePairs x) = map (TemplateQueryKeyValuePairs . HM.fromList) . shrink $ HM.toList x--makeArbitrary ''IndexName-instance Arbitrary IndexName where arbitrary = arbitraryIndexName-makeArbitrary ''MappingName-instance Arbitrary MappingName where arbitrary = arbitraryMappingName-makeArbitrary ''DocId-instance Arbitrary DocId where arbitrary = arbitraryDocId-makeArbitrary ''Version-instance Arbitrary Version where arbitrary = arbitraryVersion-makeArbitrary ''BuildHash-instance Arbitrary BuildHash where arbitrary = arbitraryBuildHash-makeArbitrary ''IndexAliasRouting-instance Arbitrary IndexAliasRouting where arbitrary = arbitraryIndexAliasRouting-makeArbitrary ''ShardCount-instance Arbitrary ShardCount where arbitrary = arbitraryShardCount-makeArbitrary ''ReplicaCount-instance Arbitrary ReplicaCount where arbitrary = arbitraryReplicaCount-makeArbitrary ''TemplateName-instance Arbitrary TemplateName where arbitrary = arbitraryTemplateName-makeArbitrary ''TemplatePattern-instance Arbitrary TemplatePattern where arbitrary = arbitraryTemplatePattern-makeArbitrary ''QueryString-instance Arbitrary QueryString where arbitrary = arbitraryQueryString-makeArbitrary ''CacheName-instance Arbitrary CacheName where arbitrary = arbitraryCacheName-makeArbitrary ''CacheKey-instance Arbitrary CacheKey where arbitrary = arbitraryCacheKey-makeArbitrary ''Existence-instance Arbitrary Existence where arbitrary = arbitraryExistence-makeArbitrary ''CutoffFrequency-instance Arbitrary CutoffFrequency where arbitrary = arbitraryCutoffFrequency-makeArbitrary ''Analyzer-instance Arbitrary Analyzer where arbitrary = arbitraryAnalyzer-makeArbitrary ''MaxExpansions-instance Arbitrary MaxExpansions where arbitrary = arbitraryMaxExpansions-makeArbitrary ''Lenient-instance Arbitrary Lenient where arbitrary = arbitraryLenient-makeArbitrary ''Tiebreaker-instance Arbitrary Tiebreaker where arbitrary = arbitraryTiebreaker-makeArbitrary ''Boost-instance Arbitrary Boost where arbitrary = arbitraryBoost-makeArbitrary ''BoostTerms-instance Arbitrary BoostTerms where arbitrary = arbitraryBoostTerms-makeArbitrary ''MinimumMatch-instance Arbitrary MinimumMatch where arbitrary = arbitraryMinimumMatch-makeArbitrary ''DisableCoord-instance Arbitrary DisableCoord where arbitrary = arbitraryDisableCoord-makeArbitrary ''IgnoreTermFrequency-instance Arbitrary IgnoreTermFrequency where arbitrary = arbitraryIgnoreTermFrequency-makeArbitrary ''MinimumTermFrequency-instance Arbitrary MinimumTermFrequency where arbitrary = arbitraryMinimumTermFrequency-makeArbitrary ''MaxQueryTerms-instance Arbitrary MaxQueryTerms where arbitrary = arbitraryMaxQueryTerms-makeArbitrary ''Fuzziness-instance Arbitrary Fuzziness where arbitrary = arbitraryFuzziness-makeArbitrary ''PrefixLength-instance Arbitrary PrefixLength where arbitrary = arbitraryPrefixLength-makeArbitrary ''TypeName-instance Arbitrary TypeName where arbitrary = arbitraryTypeName-makeArbitrary ''PercentMatch-instance Arbitrary PercentMatch where arbitrary = arbitraryPercentMatch-makeArbitrary ''StopWord-instance Arbitrary StopWord where arbitrary = arbitraryStopWord-makeArbitrary ''QueryPath-instance Arbitrary QueryPath where arbitrary = arbitraryQueryPath-makeArbitrary ''AllowLeadingWildcard-instance Arbitrary AllowLeadingWildcard where arbitrary = arbitraryAllowLeadingWildcard-makeArbitrary ''LowercaseExpanded-instance Arbitrary LowercaseExpanded where arbitrary = arbitraryLowercaseExpanded-makeArbitrary ''EnablePositionIncrements-instance Arbitrary EnablePositionIncrements where arbitrary = arbitraryEnablePositionIncrements-makeArbitrary ''AnalyzeWildcard-instance Arbitrary AnalyzeWildcard where arbitrary = arbitraryAnalyzeWildcard-makeArbitrary ''GeneratePhraseQueries-instance Arbitrary GeneratePhraseQueries where arbitrary = arbitraryGeneratePhraseQueries-makeArbitrary ''Locale-instance Arbitrary Locale where arbitrary = arbitraryLocale-makeArbitrary ''MaxWordLength-instance Arbitrary MaxWordLength where arbitrary = arbitraryMaxWordLength-makeArbitrary ''MinWordLength-instance Arbitrary MinWordLength where arbitrary = arbitraryMinWordLength-makeArbitrary ''PhraseSlop-instance Arbitrary PhraseSlop where arbitrary = arbitraryPhraseSlop-makeArbitrary ''MinDocFrequency-instance Arbitrary MinDocFrequency where arbitrary = arbitraryMinDocFrequency-makeArbitrary ''MaxDocFrequency-instance Arbitrary MaxDocFrequency where arbitrary = arbitraryMaxDocFrequency-makeArbitrary ''Regexp-instance Arbitrary Regexp where arbitrary = arbitraryRegexp-makeArbitrary ''SimpleQueryStringQuery-instance Arbitrary SimpleQueryStringQuery where arbitrary = arbitrarySimpleQueryStringQuery-makeArbitrary ''FieldOrFields-instance Arbitrary FieldOrFields where arbitrary = arbitraryFieldOrFields-makeArbitrary ''SimpleQueryFlag-instance Arbitrary SimpleQueryFlag where arbitrary = arbitrarySimpleQueryFlag-makeArbitrary ''RegexpQuery-instance Arbitrary RegexpQuery where arbitrary = arbitraryRegexpQuery-makeArbitrary ''QueryStringQuery-instance Arbitrary QueryStringQuery where arbitrary = arbitraryQueryStringQuery-makeArbitrary ''RangeQuery-instance Arbitrary RangeQuery where arbitrary = arbitraryRangeQuery-makeArbitrary ''RangeValue-instance Arbitrary RangeValue where arbitrary = arbitraryRangeValue-makeArbitrary ''PrefixQuery-instance Arbitrary PrefixQuery where arbitrary = arbitraryPrefixQuery-makeArbitrary ''NestedQuery-instance Arbitrary NestedQuery where arbitrary = arbitraryNestedQuery-makeArbitrary ''MoreLikeThisFieldQuery-instance Arbitrary MoreLikeThisFieldQuery where arbitrary = arbitraryMoreLikeThisFieldQuery-makeArbitrary ''MoreLikeThisQuery-instance Arbitrary MoreLikeThisQuery where arbitrary = arbitraryMoreLikeThisQuery-makeArbitrary ''IndicesQuery-instance Arbitrary IndicesQuery where arbitrary = arbitraryIndicesQuery-makeArbitrary ''HasParentQuery-instance Arbitrary HasParentQuery where arbitrary = arbitraryHasParentQuery-makeArbitrary ''HasChildQuery-instance Arbitrary HasChildQuery where arbitrary = arbitraryHasChildQuery-makeArbitrary ''FuzzyQuery-instance Arbitrary FuzzyQuery where arbitrary = arbitraryFuzzyQuery-makeArbitrary ''FuzzyLikeFieldQuery-instance Arbitrary FuzzyLikeFieldQuery where arbitrary = arbitraryFuzzyLikeFieldQuery-makeArbitrary ''FuzzyLikeThisQuery-instance Arbitrary FuzzyLikeThisQuery where arbitrary = arbitraryFuzzyLikeThisQuery-makeArbitrary ''DisMaxQuery-instance Arbitrary DisMaxQuery where arbitrary = arbitraryDisMaxQuery-makeArbitrary ''CommonTermsQuery-instance Arbitrary CommonTermsQuery where arbitrary = arbitraryCommonTermsQuery-makeArbitrary ''DistanceRange-instance Arbitrary DistanceRange where arbitrary = arbitraryDistanceRange-makeArbitrary ''MultiMatchQuery-instance Arbitrary MultiMatchQuery where arbitrary = arbitraryMultiMatchQuery-makeArbitrary ''LessThanD-instance Arbitrary LessThanD where arbitrary = arbitraryLessThanD-makeArbitrary ''LessThanEqD-instance Arbitrary LessThanEqD where arbitrary = arbitraryLessThanEqD-makeArbitrary ''GreaterThanD-instance Arbitrary GreaterThanD where arbitrary = arbitraryGreaterThanD-makeArbitrary ''GreaterThanEqD-instance Arbitrary GreaterThanEqD where arbitrary = arbitraryGreaterThanEqD-makeArbitrary ''LessThan-instance Arbitrary LessThan where arbitrary = arbitraryLessThan-makeArbitrary ''LessThanEq-instance Arbitrary LessThanEq where arbitrary = arbitraryLessThanEq-makeArbitrary ''GreaterThan-instance Arbitrary GreaterThan where arbitrary = arbitraryGreaterThan-makeArbitrary ''GreaterThanEq-instance Arbitrary GreaterThanEq where arbitrary = arbitraryGreaterThanEq-makeArbitrary ''GeoPoint-instance Arbitrary GeoPoint where arbitrary = arbitraryGeoPoint-makeArbitrary ''NullValue-instance Arbitrary NullValue where arbitrary = arbitraryNullValue-makeArbitrary ''MinimumMatchHighLow-instance Arbitrary MinimumMatchHighLow where arbitrary = arbitraryMinimumMatchHighLow-makeArbitrary ''CommonMinimumMatch-instance Arbitrary CommonMinimumMatch where arbitrary = arbitraryCommonMinimumMatch-makeArbitrary ''BoostingQuery-instance Arbitrary BoostingQuery where arbitrary = arbitraryBoostingQuery-makeArbitrary ''BoolQuery-instance Arbitrary BoolQuery where arbitrary = arbitraryBoolQuery-makeArbitrary ''MatchQuery-instance Arbitrary MatchQuery where arbitrary = arbitraryMatchQuery-makeArbitrary ''MultiMatchQueryType-instance Arbitrary MultiMatchQueryType where arbitrary = arbitraryMultiMatchQueryType-makeArbitrary ''BooleanOperator-instance Arbitrary BooleanOperator where arbitrary = arbitraryBooleanOperator-makeArbitrary ''ZeroTermsQuery-instance Arbitrary ZeroTermsQuery where arbitrary = arbitraryZeroTermsQuery-makeArbitrary ''MatchQueryType-instance Arbitrary MatchQueryType where arbitrary = arbitraryMatchQueryType-makeArbitrary ''SearchAliasRouting-instance Arbitrary SearchAliasRouting where arbitrary = arbitrarySearchAliasRouting-makeArbitrary ''ScoreType-instance Arbitrary ScoreType where arbitrary = arbitraryScoreType-makeArbitrary ''Distance-instance Arbitrary Distance where arbitrary = arbitraryDistance-makeArbitrary ''DistanceUnit-instance Arbitrary DistanceUnit where arbitrary = arbitraryDistanceUnit-makeArbitrary ''DistanceType-instance Arbitrary DistanceType where arbitrary = arbitraryDistanceType-makeArbitrary ''OptimizeBbox-instance Arbitrary OptimizeBbox where arbitrary = arbitraryOptimizeBbox-makeArbitrary ''GeoBoundingBoxConstraint-instance Arbitrary GeoBoundingBoxConstraint where arbitrary = arbitraryGeoBoundingBoxConstraint-makeArbitrary ''GeoFilterType-instance Arbitrary GeoFilterType where arbitrary = arbitraryGeoFilterType-makeArbitrary ''GeoBoundingBox-instance Arbitrary GeoBoundingBox where arbitrary = arbitraryGeoBoundingBox-makeArbitrary ''LatLon-instance Arbitrary LatLon where arbitrary = arbitraryLatLon-makeArbitrary ''RangeExecution-instance Arbitrary RangeExecution where arbitrary = arbitraryRangeExecution-makeArbitrary ''RegexpFlag-instance Arbitrary RegexpFlag where arbitrary = arbitraryRegexpFlag-makeArbitrary ''BoolMatch-instance Arbitrary BoolMatch where arbitrary = arbitraryBoolMatch-makeArbitrary ''Term-instance Arbitrary Term where arbitrary = arbitraryTerm-makeArbitrary ''IndexSettings-instance Arbitrary IndexSettings where arbitrary = arbitraryIndexSettings-makeArbitrary ''TokenChar-instance Arbitrary TokenChar where arbitrary = arbitraryTokenChar-makeArbitrary ''Ngram-instance Arbitrary Ngram where arbitrary = arbitraryNgram-makeArbitrary ''TokenizerDefinition-instance Arbitrary TokenizerDefinition where arbitrary = arbitraryTokenizerDefinition-makeArbitrary ''TokenFilter-instance Arbitrary TokenFilter where arbitrary = arbitraryTokenFilter-makeArbitrary ''TokenFilterDefinition-instance Arbitrary TokenFilterDefinition where arbitrary = arbitraryTokenFilterDefinition-makeArbitrary ''Language-instance Arbitrary Language where arbitrary = arbitraryLanguage-makeArbitrary ''Shingle-instance Arbitrary Shingle where arbitrary = arbitraryShingle--makeArbitrary ''CharFilter-instance Arbitrary CharFilter where arbitrary = arbitraryCharFilter-makeArbitrary ''AnalyzerDefinition-instance Arbitrary AnalyzerDefinition where arbitrary = arbitraryAnalyzerDefinition---- TODO: This should have a proper generator that doesn't--- create garbage that has to be filtered out.-instance Arbitrary CharFilterDefinition where- arbitrary =- oneof [ CharFilterDefinitionMapping- . chomp <$> arbitrary- , CharFilterDefinitionPatternReplace- <$> arbitrary <*> arbitrary <*> arbitrary- ]- where chomp =- M.map T.strip- . M.mapKeys (T.replace "=>" "" . T.strip)--makeArbitrary ''Analysis-instance Arbitrary Analysis where arbitrary = arbitraryAnalysis-makeArbitrary ''Tokenizer-instance Arbitrary Tokenizer where arbitrary = arbitraryTokenizer-makeArbitrary ''Compression-instance Arbitrary Compression where arbitrary = arbitraryCompression-makeArbitrary ''Bytes-instance Arbitrary Bytes where arbitrary = arbitraryBytes-makeArbitrary ''AllocationPolicy-instance Arbitrary AllocationPolicy where arbitrary = arbitraryAllocationPolicy-makeArbitrary ''InitialShardCount-instance Arbitrary InitialShardCount where arbitrary = arbitraryInitialShardCount-makeArbitrary ''FSType-instance Arbitrary FSType where arbitrary = arbitraryFSType-makeArbitrary ''CompoundFormat-instance Arbitrary CompoundFormat where arbitrary = arbitraryCompoundFormat-makeArbitrary ''FsSnapshotRepo-instance Arbitrary FsSnapshotRepo where arbitrary = arbitraryFsSnapshotRepo-makeArbitrary ''SnapshotRepoName-instance Arbitrary SnapshotRepoName where arbitrary = arbitrarySnapshotRepoName-makeArbitrary ''TemplateQueryInline-instance Arbitrary TemplateQueryInline where arbitrary = arbitraryTemplateQueryInline-makeArbitrary ''DirectGeneratorSuggestModeTypes-instance Arbitrary DirectGeneratorSuggestModeTypes where arbitrary = arbitraryDirectGeneratorSuggestModeTypes-makeArbitrary ''DirectGenerators-instance Arbitrary DirectGenerators where arbitrary = arbitraryDirectGenerators-makeArbitrary ''PhraseSuggesterCollate-instance Arbitrary PhraseSuggesterCollate where arbitrary = arbitraryPhraseSuggesterCollate-makeArbitrary ''PhraseSuggesterHighlighter-instance Arbitrary PhraseSuggesterHighlighter where arbitrary = arbitraryPhraseSuggesterHighlighter-makeArbitrary ''Size-instance Arbitrary Size where arbitrary = arbitrarySize-makeArbitrary ''PhraseSuggester-instance Arbitrary PhraseSuggester where arbitrary = arbitraryPhraseSuggester-makeArbitrary ''SuggestType-instance Arbitrary SuggestType where arbitrary = arbitrarySuggestType-makeArbitrary ''Suggest-instance Arbitrary Suggest where arbitrary = arbitrarySuggest--makeArbitrary ''FunctionScoreQuery-instance Arbitrary FunctionScoreQuery where arbitrary = arbitraryFunctionScoreQuery--makeArbitrary ''FunctionScoreFunction-instance Arbitrary FunctionScoreFunction where arbitrary = arbitraryFunctionScoreFunction-makeArbitrary ''FunctionScoreFunctions-instance Arbitrary FunctionScoreFunctions where arbitrary = arbitraryFunctionScoreFunctions-makeArbitrary ''ComponentFunctionScoreFunction-instance Arbitrary ComponentFunctionScoreFunction where arbitrary = arbitraryComponentFunctionScoreFunction-makeArbitrary ''Script-instance Arbitrary Script where arbitrary = arbitraryScript-makeArbitrary ''ScriptLanguage-instance Arbitrary ScriptLanguage where arbitrary = arbitraryScriptLanguage-makeArbitrary ''ScriptInline-instance Arbitrary ScriptInline where arbitrary = arbitraryScriptInline-makeArbitrary ''ScriptId-instance Arbitrary ScriptId where arbitrary = arbitraryScriptId-makeArbitrary ''ScoreMode-instance Arbitrary ScoreMode where arbitrary = arbitraryScoreMode-makeArbitrary ''BoostMode-instance Arbitrary BoostMode where arbitrary = arbitraryBoostMode-makeArbitrary ''Seed-instance Arbitrary Seed where arbitrary = arbitrarySeed-makeArbitrary ''FieldValueFactor-instance Arbitrary FieldValueFactor where arbitrary = arbitraryFieldValueFactor-makeArbitrary ''Weight-instance Arbitrary Weight where arbitrary = arbitraryWeight-makeArbitrary ''Factor-instance Arbitrary Factor where arbitrary = arbitraryFactor-makeArbitrary ''FactorMissingFieldValue-instance Arbitrary FactorMissingFieldValue where arbitrary = arbitraryFactorMissingFieldValue-makeArbitrary ''FactorModifier-instance Arbitrary FactorModifier where arbitrary = arbitraryFactorModifier--makeArbitrary ''UpdatableIndexSetting-instance Arbitrary UpdatableIndexSetting where- arbitrary = resize 10 arbitraryUpdatableIndexSetting--newtype UpdatableIndexSetting' =- UpdatableIndexSetting' UpdatableIndexSetting- deriving (Show, Eq, ToJSON, FromJSON, ApproxEq, Typeable)--instance Arbitrary UpdatableIndexSetting' where- arbitrary = do- settings <- arbitrary- return $ UpdatableIndexSetting' $ case settings of- RoutingAllocationInclude xs ->- RoutingAllocationInclude (dropDuplicateAttrNames xs)- RoutingAllocationExclude xs ->- RoutingAllocationExclude (dropDuplicateAttrNames xs)- RoutingAllocationRequire xs ->- RoutingAllocationRequire (dropDuplicateAttrNames xs)- x -> x- where- dropDuplicateAttrNames =- NE.fromList . L.nubBy sameAttrName . NE.toList- sameAttrName a b =- nodeAttrFilterName a == nodeAttrFilterName b- shrink (UpdatableIndexSetting' x) = map UpdatableIndexSetting' (shrink x)
− tests/V5/Test/Highlights.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Highlights where--import Test.Common-import Test.Import--import qualified Data.Map as M--initHighlights :: Text -> BH IO (Either EsError (Maybe HitHighlight))-initHighlights fieldName = do- _ <- insertData- _ <- insertOther- let query = QueryMatchQuery $ mkMatchQuery (FieldName fieldName) (QueryString "haskell")- let testHighlight = Highlights Nothing [FieldHighlight (FieldName fieldName) Nothing]- let search = mkHighlightSearch (Just query) testHighlight- searchTweetHighlight search--spec :: Spec-spec =- describe "Highlights API" $ do- it "returns highlight from query when there should be one" $ withTestEnv $ do- myHighlight <- initHighlights "message"- liftIO $- myHighlight `shouldBe`- Right (Just (M.fromList [("message", ["Use <em>haskell</em>!"])]))-- it "doesn't return highlight from a query when it shouldn't" $ withTestEnv $ do- myHighlight <- initHighlights "user"- liftIO $- myHighlight `shouldBe`- Right Nothing
− tests/V5/Test/Import.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Import- ( module X- , module Test.Import- ) where---import Control.Applicative as X-import Control.Exception as X (evaluate)-import Control.Monad as X-import Control.Monad.Catch as X-import Control.Monad.Reader as X-import Data.Aeson as X-import Data.Aeson.TH as X-import Data.Aeson.Types as X (parseEither)-import Data.Maybe as X-import Data.List.NonEmpty as X (NonEmpty(..))-import Data.Monoid as X-import Data.Ord as X (comparing)-import Data.Proxy as X-import Data.Text as X (Text)-import Data.Time.Calendar as X (Day(..), fromGregorian)-import Data.Time.Clock as X-import Data.Typeable as X-import Database.V5.Bloodhound as X hiding (key)-import Lens.Micro as X-import Lens.Micro.Aeson as X-import Network.HTTP.Client as X hiding (Proxy, fileSize)-import System.IO.Temp as X-import System.PosixCompat.Files as X-import Test.Hspec as X-import Test.Hspec.QuickCheck as X (prop)-import Test.QuickCheck as X hiding (Result, Success)-import Test.QuickCheck.Property.Monoid as X (T (..), eq, prop_Monoid)-import Text.Pretty.Simple as X (pPrint)--import qualified Data.List as L--noDuplicates :: Eq a => [a] -> Bool-noDuplicates xs = L.nub xs == xs--getSource :: EsResult a -> Maybe a-getSource = fmap _source . foundResult--grabFirst :: Either EsError (SearchResult a) -> Either EsError a-grabFirst r =- case fmap (hitSource . head . hits . searchHits) r of- (Left e) -> Left e- (Right Nothing) -> Left (EsError 500 "Source was missing")- (Right (Just x)) -> Right x--when' :: Monad m => m Bool -> m () -> m ()-when' b f = b >>= \x -> when x f--headMay :: [a] -> Maybe a-headMay (x : _) = Just x-headMay _ = Nothing
− tests/V5/Test/Indices.hs
@@ -1,173 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Indices where--import Test.Common-import Test.Import--import qualified Data.List as L-import qualified Data.List.NonEmpty as NE-import qualified Data.Map as M-spec :: Spec-spec = do- describe "Index create/delete API" $ do- it "creates and then deletes the requested index" $ withTestEnv $ do- -- priming state.- _ <- deleteExampleIndex- resp <- createExampleIndex- deleteResp <- deleteExampleIndex- liftIO $ do- validateStatus resp 200- validateStatus deleteResp 200-- describe "Index aliases" $ do- let aname = IndexAliasName (IndexName "bloodhound-tests-twitter-1-alias")- let alias = IndexAlias (testIndex) aname- let create = IndexAliasCreate Nothing Nothing- let action = AddAlias alias create- it "handles the simple case of aliasing an existing index" $ do- withTestEnv $ do- resetIndex- resp <- updateIndexAliases (action :| [])- liftIO $ validateStatus resp 200- let cleanup = withTestEnv (updateIndexAliases (RemoveAlias alias :| []))- (do aliases <- withTestEnv getIndexAliases- let expected = IndexAliasSummary alias create- case aliases of- Right (IndexAliasesSummary summs) ->- L.find ((== alias) . indexAliasSummaryAlias) summs `shouldBe` Just expected- Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)) `finally` cleanup- it "allows alias deletion" $ do- aliases <- withTestEnv $ do- resetIndex- resp <- updateIndexAliases (action :| [])- liftIO $ validateStatus resp 200- _ <- deleteIndexAlias aname- getIndexAliases- -- let expected = IndexAliasSummary alias create- case aliases of- Right (IndexAliasesSummary summs) ->- L.find ( (== aname)- . indexAlias- . indexAliasSummaryAlias- ) summs- `shouldBe` Nothing- Left e -> expectationFailure ("Expected an IndexAliasesSummary but got " <> show e)-- describe "Index Listing" $ do- it "returns a list of index names" $ withTestEnv $ do- _ <- createExampleIndex- ixns <- listIndices- liftIO (ixns `shouldContain` [testIndex])-- describe "Index Settings" $ do- it "persists settings" $ withTestEnv $ do- _ <- deleteExampleIndex- _ <- createExampleIndex- let updates = BlocksWrite False :| []- updateResp <- updateIndexSettings updates testIndex- liftIO $ validateStatus updateResp 200- getResp <- getIndexSettings testIndex- liftIO $- getResp `shouldBe` Right (IndexSettingsSummary- testIndex- (IndexSettings (ShardCount 1) (ReplicaCount 0))- (NE.toList updates))-- it "allows total fields to be set" $ when' (atleast es50) $ withTestEnv $ do- _ <- deleteExampleIndex- _ <- createExampleIndex- let updates = MappingTotalFieldsLimit 2500 :| []- updateResp <- updateIndexSettings updates testIndex- liftIO $ validateStatus updateResp 200- getResp <- getIndexSettings testIndex- liftIO $- getResp `shouldBe` Right (IndexSettingsSummary- testIndex- (IndexSettings (ShardCount 1) (ReplicaCount 0))- (NE.toList updates))-- it "accepts customer analyzers" $ when' (atleast es50) $ withTestEnv $ do- _ <- deleteExampleIndex- let analysis = Analysis- (M.singleton "ex_analyzer"- ( AnalyzerDefinition- (Just (Tokenizer "ex_tokenizer"))- (map TokenFilter- [ "ex_filter_lowercase","ex_filter_uppercase","ex_filter_apostrophe"- , "ex_filter_reverse","ex_filter_snowball"- , "ex_filter_shingle"- ]- )- (map CharFilter- ["html_strip", "ex_mapping", "ex_pattern_replace"]- )- )- )- (M.singleton "ex_tokenizer"- ( TokenizerDefinitionNgram- ( Ngram 3 4 [TokenLetter,TokenDigit])- )- )- (M.fromList- [ ("ex_filter_lowercase",TokenFilterDefinitionLowercase (Just Greek))- , ("ex_filter_uppercase",TokenFilterDefinitionUppercase Nothing)- , ("ex_filter_apostrophe",TokenFilterDefinitionApostrophe)- , ("ex_filter_reverse",TokenFilterDefinitionReverse)- , ("ex_filter_snowball",TokenFilterDefinitionSnowball English)- , ("ex_filter_shingle",TokenFilterDefinitionShingle (Shingle 3 3 True False " " "_"))- , ("ex_filter_stemmer",TokenFilterDefinitionStemmer German)- , ("ex_filter_stop1", TokenFilterDefinitionStop (Left French))- , ("ex_filter_stop2",- TokenFilterDefinitionStop- (Right- $ map StopWord ["a", "is", "the"]))- ]- )- (M.fromList- [ ("ex_mapping", CharFilterDefinitionMapping (M.singleton "١" "1"))- , ("ex_pattern_replace", CharFilterDefinitionPatternReplace "(\\d+)-(?=\\d)" "$1_" Nothing)- ]- )- updates = [AnalysisSetting analysis]- createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex- liftIO $ validateStatus createResp 200- getResp <- getIndexSettings testIndex- liftIO $- getResp `shouldBe` Right (IndexSettingsSummary- testIndex- (IndexSettings (ShardCount 1) (ReplicaCount 0))- updates- )-- it "accepts default compression codec" $ when' (atleast es50) $ withTestEnv $ do- _ <- deleteExampleIndex- let updates = [CompressionSetting CompressionDefault]- createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex- liftIO $ validateStatus createResp 200- getResp <- getIndexSettings testIndex- liftIO $ getResp `shouldBe` Right- (IndexSettingsSummary testIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) updates)-- it "accepts best compression codec" $ when' (atleast es50) $ withTestEnv $ do- _ <- deleteExampleIndex- let updates = [CompressionSetting CompressionBest]- createResp <- createIndexWith (updates ++ [NumberOfReplicas (ReplicaCount 0)]) 1 testIndex- liftIO $ validateStatus createResp 200- getResp <- getIndexSettings testIndex- liftIO $ getResp `shouldBe` Right- (IndexSettingsSummary testIndex (IndexSettings (ShardCount 1) (ReplicaCount 0)) updates)--- describe "Index Optimization" $ do- it "returns a successful response upon completion" $ withTestEnv $ do- _ <- createExampleIndex- resp <- forceMergeIndex (IndexList (testIndex :| [])) defaultForceMergeIndexSettings- liftIO $ validateStatus resp 200--- describe "Index flushing" $ do- it "returns a successful response upon flushing" $ withTestEnv $ do- _ <- createExampleIndex- resp <- flushIndex testIndex- liftIO $ validateStatus resp 200
− tests/V5/Test/JSON.hs
@@ -1,213 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}--module Test.JSON (spec) where--import Test.Import--import qualified Data.ByteString.Lazy.Char8 as BL8-import qualified Data.List as L-import Data.List.NonEmpty (NonEmpty(..))-import qualified Data.List.NonEmpty as NE-import qualified Data.HashMap.Strict as HM-import qualified Data.Text as T-import qualified Data.Vector as V--import Test.ApproxEq-import Test.Generators--propJSON :: forall a- . ( Arbitrary a- , ToJSON a- , FromJSON a- , Show a- , Eq a- , Typeable a- )- => Proxy a -> Spec-propJSON _ = prop testName $ \(a :: a) ->- let jsonStr = "via " <> BL8.unpack (encode a)- in counterexample jsonStr (parseEither parseJSON (toJSON a)- === Right a)- where testName = show ty <> " FromJSON/ToJSON roundtrips"- ty = typeOf (undefined :: a)--propApproxJSON :: forall a- . ( Arbitrary a- , ToJSON a- , FromJSON a- , Show a- , ApproxEq a- , Typeable a- )- => Proxy a -> Spec-propApproxJSON _ = prop testName $ \(a :: a) ->- let jsonStr = "via " <> BL8.unpack (encode a)- in counterexample jsonStr (parseEither parseJSON (toJSON a)- ==~ Right a)- where testName = show ty <> " FromJSON/ToJSON roundtrips"- ty = typeOf (undefined :: a)--spec :: Spec-spec = do- describe "ToJSON RegexpFlags" $ do- it "generates the correct JSON for AllRegexpFlags" $- toJSON AllRegexpFlags `shouldBe` String "ALL"-- it "generates the correct JSON for NoRegexpFlags" $- toJSON NoRegexpFlags `shouldBe` String "NONE"-- it "generates the correct JSON for SomeRegexpFlags" $- let flags = AnyString :| [ Automaton- , Complement- , Empty- , Intersection- , Interval ]- in toJSON (SomeRegexpFlags flags) `shouldBe` String "ANYSTRING|AUTOMATON|COMPLEMENT|EMPTY|INTERSECTION|INTERVAL"-- prop "removes duplicates from flags" $ \(flags :: RegexpFlags) ->- let String str = toJSON flags- flagStrs = T.splitOn "|" str- in noDuplicates flagStrs-- describe "omitNulls" $ do- it "checks that omitNulls drops list elements when it should" $- let dropped = omitNulls $ [ "test1" .= (toJSON ([] :: [Int]))- , "test2" .= (toJSON ("some value" :: Text))]- in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])-- it "checks that omitNulls doesn't drop list elements when it shouldn't" $- let notDropped = omitNulls $ [ "test1" .= (toJSON ([1] :: [Int]))- , "test2" .= (toJSON ("some value" :: Text))]- in notDropped `shouldBe` Object (HM.fromList [ ("test1", Array (V.fromList [Number 1.0]))- , ("test2", String "some value")])- it "checks that omitNulls drops non list elements when it should" $- let dropped = omitNulls $ [ "test1" .= (toJSON Null)- , "test2" .= (toJSON ("some value" :: Text))]- in dropped `shouldBe` Object (HM.fromList [("test2", String "some value")])- it "checks that omitNulls doesn't drop non list elements when it shouldn't" $- let notDropped = omitNulls $ [ "test1" .= (toJSON (1 :: Int))- , "test2" .= (toJSON ("some value" :: Text))]- in notDropped `shouldBe` Object (HM.fromList [ ("test1", Number 1.0)- , ("test2", String "some value")])-- describe "Exact isomorphism JSON instances" $ do- propJSON (Proxy :: Proxy Version)- propJSON (Proxy :: Proxy IndexName)- propJSON (Proxy :: Proxy MappingName)- propJSON (Proxy :: Proxy DocId)- propJSON (Proxy :: Proxy IndexAliasRouting)- propJSON (Proxy :: Proxy RoutingValue)- propJSON (Proxy :: Proxy ShardCount)- propJSON (Proxy :: Proxy ReplicaCount)- propJSON (Proxy :: Proxy TemplateName)- propJSON (Proxy :: Proxy TemplatePattern)- propJSON (Proxy :: Proxy QueryString)- propJSON (Proxy :: Proxy FieldName)- propJSON (Proxy :: Proxy Script)- propJSON (Proxy :: Proxy ScriptLanguage)- propJSON (Proxy :: Proxy ScriptInline)- propJSON (Proxy :: Proxy ScriptId)- propJSON (Proxy :: Proxy ScriptParams)- propJSON (Proxy :: Proxy CacheName)- propJSON (Proxy :: Proxy CacheKey)- propJSON (Proxy :: Proxy Existence)- propJSON (Proxy :: Proxy CutoffFrequency)- propJSON (Proxy :: Proxy Analyzer)- propJSON (Proxy :: Proxy MaxExpansions)- propJSON (Proxy :: Proxy Lenient)- propJSON (Proxy :: Proxy Tiebreaker)- propJSON (Proxy :: Proxy Boost)- propJSON (Proxy :: Proxy BoostTerms)- propJSON (Proxy :: Proxy MinimumMatch)- propJSON (Proxy :: Proxy DisableCoord)- propJSON (Proxy :: Proxy IgnoreTermFrequency)- propJSON (Proxy :: Proxy MinimumTermFrequency)- propJSON (Proxy :: Proxy MaxQueryTerms)- propJSON (Proxy :: Proxy Fuzziness)- propJSON (Proxy :: Proxy PrefixLength)- propJSON (Proxy :: Proxy TypeName)- propJSON (Proxy :: Proxy PercentMatch)- propJSON (Proxy :: Proxy StopWord)- propJSON (Proxy :: Proxy QueryPath)- propJSON (Proxy :: Proxy AllowLeadingWildcard)- propJSON (Proxy :: Proxy LowercaseExpanded)- propJSON (Proxy :: Proxy EnablePositionIncrements)- propJSON (Proxy :: Proxy AnalyzeWildcard)- propJSON (Proxy :: Proxy GeneratePhraseQueries)- propJSON (Proxy :: Proxy Locale)- propJSON (Proxy :: Proxy MaxWordLength)- propJSON (Proxy :: Proxy MinWordLength)- propJSON (Proxy :: Proxy PhraseSlop)- propJSON (Proxy :: Proxy MinDocFrequency)- propJSON (Proxy :: Proxy MaxDocFrequency)- propJSON (Proxy :: Proxy Filter)- propJSON (Proxy :: Proxy Query)- propJSON (Proxy :: Proxy SimpleQueryStringQuery)- propJSON (Proxy :: Proxy FieldOrFields)- propJSON (Proxy :: Proxy SimpleQueryFlag)- propJSON (Proxy :: Proxy RegexpQuery)- propJSON (Proxy :: Proxy QueryStringQuery)- propJSON (Proxy :: Proxy RangeQuery)- propJSON (Proxy :: Proxy PrefixQuery)- propJSON (Proxy :: Proxy NestedQuery)- propJSON (Proxy :: Proxy MoreLikeThisFieldQuery)- propJSON (Proxy :: Proxy MoreLikeThisQuery)- propJSON (Proxy :: Proxy IndicesQuery)- propJSON (Proxy :: Proxy HasParentQuery)- propJSON (Proxy :: Proxy HasChildQuery)- propJSON (Proxy :: Proxy FuzzyQuery)- propJSON (Proxy :: Proxy FuzzyLikeFieldQuery)- propJSON (Proxy :: Proxy FuzzyLikeThisQuery)- propJSON (Proxy :: Proxy FunctionScoreQuery)- propJSON (Proxy :: Proxy BoostMode)- propJSON (Proxy :: Proxy ScoreMode)- propJSON (Proxy :: Proxy ComponentFunctionScoreFunction)- propJSON (Proxy :: Proxy FieldValueFactor)- propJSON (Proxy :: Proxy FactorModifier)- propJSON (Proxy :: Proxy DisMaxQuery)- propJSON (Proxy :: Proxy CommonTermsQuery)- propJSON (Proxy :: Proxy CommonMinimumMatch)- propJSON (Proxy :: Proxy BoostingQuery)- propJSON (Proxy :: Proxy BoolQuery)- propJSON (Proxy :: Proxy MatchQuery)- propJSON (Proxy :: Proxy MultiMatchQueryType)- propJSON (Proxy :: Proxy BooleanOperator)- propJSON (Proxy :: Proxy ZeroTermsQuery)- propJSON (Proxy :: Proxy MatchQueryType)- propJSON (Proxy :: Proxy AliasRouting)- propJSON (Proxy :: Proxy IndexAliasCreate)- propJSON (Proxy :: Proxy SearchAliasRouting)- propJSON (Proxy :: Proxy ScoreType)- propJSON (Proxy :: Proxy Distance)- propJSON (Proxy :: Proxy DistanceUnit)- propJSON (Proxy :: Proxy DistanceType)- propJSON (Proxy :: Proxy OptimizeBbox)- propJSON (Proxy :: Proxy GeoBoundingBoxConstraint)- propJSON (Proxy :: Proxy GeoFilterType)- propJSON (Proxy :: Proxy GeoBoundingBox)- propJSON (Proxy :: Proxy LatLon)- propJSON (Proxy :: Proxy RangeExecution)- prop "RegexpFlags FromJSON/ToJSON roundtrips, removing dups " $ \rfs ->- let expected = case rfs of- SomeRegexpFlags fs -> SomeRegexpFlags (NE.fromList (L.nub (NE.toList fs)))- x -> x- in parseEither parseJSON (toJSON rfs) === Right expected- propJSON (Proxy :: Proxy BoolMatch)- propJSON (Proxy :: Proxy Term)- propJSON (Proxy :: Proxy MultiMatchQuery)- propJSON (Proxy :: Proxy IndexSettings)- propJSON (Proxy :: Proxy CompoundFormat)- propJSON (Proxy :: Proxy TemplateQueryInline)- propJSON (Proxy :: Proxy Suggest)- propJSON (Proxy :: Proxy DirectGenerators)- propJSON (Proxy :: Proxy DirectGeneratorSuggestModeTypes)-- describe "Approximate isomorphism JSON instances" $ do- propApproxJSON (Proxy :: Proxy UpdatableIndexSetting')- propApproxJSON (Proxy :: Proxy ReplicaCount)- propApproxJSON (Proxy :: Proxy ReplicaBounds)- propApproxJSON (Proxy :: Proxy Bytes)- propApproxJSON (Proxy :: Proxy AllocationPolicy)- propApproxJSON (Proxy :: Proxy InitialShardCount)- propApproxJSON (Proxy :: Proxy FSType)
− tests/V5/Test/Query.hs
@@ -1,123 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Query where--import Test.Common-import Test.Import--import qualified Data.HashMap.Strict as HM--spec :: Spec-spec =- describe "query API" $ do- it "returns document for term query and identity filter" $ withTestEnv $ do- _ <- insertData- let query = TermQuery (Term "user" "bitemyapp") Nothing- let filter' = Filter $ MatchAllQuery Nothing- let search = mkSearch (Just query) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "handles constant score queries" $ withTestEnv $ do- _ <- insertData- let query = TermsQuery "user" ("bitemyapp" :| [])- let cfQuery = ConstantScoreQuery query (Boost 1.0)- let filter' = Filter $ MatchAllQuery Nothing- let search = mkSearch (Just cfQuery) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for terms query and identity filter" $ withTestEnv $ do- _ <- insertData- let query = TermsQuery "user" ("bitemyapp" :| [])- let filter' = Filter $ MatchAllQuery Nothing- let search = mkSearch (Just query) (Just filter')- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for match query" $ withTestEnv $ do- _ <- insertData- let query = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for multi-match query" $ withTestEnv $ do- _ <- insertData- let flds = [FieldName "user", FieldName "message"]- let query = QueryMultiMatchQuery $ mkMultiMatchQuery flds (QueryString "bitemyapp")- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for multi-match query with a custom tiebreaker" $ withTestEnv $ do- _ <- insertData- let tiebreaker = Just $ Tiebreaker 0.3- flds = [FieldName "user", FieldName "message"]- multiQuery' = mkMultiMatchQuery flds (QueryString "bitemyapp")- query = QueryMultiMatchQuery $ multiQuery' { multiMatchQueryTiebreaker = tiebreaker }- search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for bool query" $ withTestEnv $ do- _ <- insertData- let innerQuery = QueryMatchQuery $- mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let query = QueryBoolQuery $- mkBoolQuery [innerQuery] [] [] []- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for boosting query" $ withTestEnv $ do- _ <- insertData- let posQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "bitemyapp")- let negQuery = QueryMatchQuery $ mkMatchQuery (FieldName "user") (QueryString "notmyapp")- let query = QueryBoostingQuery $ BoostingQuery posQuery negQuery (Boost 0.2)- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for common terms query" $ withTestEnv $ do- _ <- insertData- let query = QueryCommonTermsQuery $- CommonTermsQuery (FieldName "user")- (QueryString "bitemyapp")- (CutoffFrequency 0.0001)- Or Or Nothing Nothing Nothing Nothing- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet-- it "returns document for for inline template query" $ withTestEnv $ do- _ <- insertData- let innerQuery = QueryMatchQuery $- mkMatchQuery (FieldName "{{userKey}}")- (QueryString "{{bitemyappKey}}")- templateParams = TemplateQueryKeyValuePairs $ HM.fromList- [ ("userKey", "user")- , ("bitemyappKey", "bitemyapp")- ]- templateQuery = QueryTemplateQueryInline $- TemplateQueryInline innerQuery templateParams- search = mkSearch (Just templateQuery) Nothing- myTweet <- searchTweet search- liftIO $ myTweet `shouldBe` Right exampleTweet-- it "returns document for wildcard query" $ withTestEnv $ do- _ <- insertData- let query = QueryWildcardQuery $ WildcardQuery (FieldName "user") "bitemy*" (Nothing)- let search = mkSearch (Just query) Nothing- myTweet <- searchTweet search- liftIO $- myTweet `shouldBe` Right exampleTweet
− tests/V5/Test/Script.hs
@@ -1,36 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Script where--import Test.Common-import Test.Import--import qualified Data.HashMap.Strict as HM-import qualified Data.Map as M--spec :: Spec-spec =- describe "Script" $- it "returns a transformed document based on the script field" $ withTestEnv $ do- _ <- insertData- let query = MatchAllQuery Nothing- sfv = toJSON $- Script- (Just (ScriptLanguage "painless"))- (Just (ScriptInline "doc['age'].value * 2"))- Nothing- Nothing- sf = ScriptFields $- HM.fromList [("test1", sfv)]- search' = mkSearch (Just query) Nothing- search = search' { scriptFields = Just sf }- resp <- searchByIndex testIndex search- parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Value))- case parsed of- Left e ->- liftIO $ expectationFailure ("Expected a script-transformed result but got: " <> show e)- Right sr -> do- let Just results =- hitFields (head (hits (searchHits sr)))- liftIO $- results `shouldBe` HitFields (M.fromList [("test1", [Number 20000.0])])
− tests/V5/Test/Snapshots.hs
@@ -1,201 +0,0 @@-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE OverloadedStrings #-}--module Test.Snapshots (spec) where--import Test.Common-import Test.Import--import Data.Maybe (fromMaybe)-import qualified Data.List as L-import qualified Data.HashMap.Strict as HM-import qualified Data.Text as T-import qualified Data.Vector as V-import qualified Network.HTTP.Types.Method as NHTM-import qualified Network.URI as URI--import Test.Generators ()--spec :: Spec-spec = do- describe "FsSnapshotRepo" $- prop "SnapshotRepo laws" $ \fsr ->- fromGSnapshotRepo (toGSnapshotRepo fsr) === Right (fsr :: FsSnapshotRepo)-- describe "Snapshot repos" $ do- it "always parses all snapshot repos API" $ when' canSnapshot $ withTestEnv $ do- res <- getSnapshotRepos AllSnapshotRepos- liftIO $ case res of- Left e -> expectationFailure ("Expected a right but got Left " <> show e)- Right _ -> return ()-- it "finds an existing list of repos" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- let r2n = SnapshotRepoName "bloodhound-repo2"- withSnapshotRepo r1n $ \r1 ->- withSnapshotRepo r2n $ \r2 -> do- repos <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| [ExactRepo r2n]))- liftIO $ case repos of- Right xs -> do- let srt = L.sortBy (comparing gSnapshotRepoName)- srt xs `shouldBe` srt [r1, r2]- Left e -> expectationFailure (show e)-- it "creates and updates with updateSnapshotRepo" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \r1 -> do- let Just (String dir) = HM.lookup "location" (gSnapshotRepoSettingsObject (gSnapshotRepoSettings r1))- let noCompression = FsSnapshotRepo r1n (T.unpack dir) False Nothing Nothing Nothing- resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings noCompression- liftIO (validateStatus resp 200)- Right [roundtrippedNoCompression] <- getSnapshotRepos (SnapshotRepoList (ExactRepo r1n :| []))- liftIO (roundtrippedNoCompression `shouldBe` toGSnapshotRepo noCompression)-- -- verify came around in 1.4 it seems- it "can verify existing repos" $ when' canSnapshot $ when' (atleast es14) $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- res <- verifySnapshotRepo r1n- liftIO $ case res of- Right (SnapshotVerification vs)- | null vs -> expectationFailure "Expected nonempty set of verifying nodes"- | otherwise -> return ()- Left e -> expectationFailure (show e)-- describe "Snapshots" $ do- it "always parses all snapshots API" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- res <- getSnapshots r1n AllSnapshots- liftIO $ case res of- Left e -> expectationFailure ("Expected a right but got Left " <> show e)- Right _ -> return ()-- it "can parse a snapshot that it created" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- res <- getSnapshots r1n (SnapshotList (ExactSnap s1n :| []))- liftIO $ case res of- Right [snap]- | snapInfoState snap == SnapshotSuccess &&- snapInfoName snap == s1n -> return ()- | otherwise -> expectationFailure (show snap)- Right [] -> expectationFailure "There were no snapshots"- Right snaps -> expectationFailure ("Expected 1 snapshot but got" <> show (length snaps))- Left e -> expectationFailure (show e)-- describe "Snapshot restore" $ do- it "can restore a snapshot that we create" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True }- -- have to close an index to restore it- resp1 <- closeIndex testIndex- liftIO (validateStatus resp1 200)- resp2 <- restoreSnapshot r1n s1n settings- liftIO (validateStatus resp2 200)-- it "can restore and rename" $ when' canSnapshot $ withTestEnv $ do- let r1n = SnapshotRepoName "bloodhound-repo1"- withSnapshotRepo r1n $ \_ -> do- let s1n = SnapshotName "example-snapshot"- withSnapshot r1n s1n $ do- let pat = RestoreRenamePattern "bloodhound-tests-twitter-(\\d+)"- let replace = RRTLit "restored-" :| [RRSubWholeMatch]- let expectedIndex = IndexName "restored-bloodhound-tests-twitter-1"- oldEnoughForOverrides <- liftIO (atleast es15)- let overrides = RestoreIndexSettings { restoreOverrideReplicas = Just (ReplicaCount 0) }- let settings = defaultSnapshotRestoreSettings { snapRestoreWaitForCompletion = True- , snapRestoreRenamePattern = Just pat- , snapRestoreRenameReplacement = Just replace- , snapRestoreIndexSettingsOverrides = if oldEnoughForOverrides- then Just overrides- else Nothing- }- -- have to close an index to restore it- let go = do- resp <- restoreSnapshot r1n s1n settings- liftIO (validateStatus resp 200)- exists <- indexExists expectedIndex- liftIO (exists `shouldBe` True)- go `finally` deleteIndex expectedIndex---- | Get configured repo paths for snapshotting. Note that by default--- this is not enabled and if we are over es 1.5, we won't be able to--- test snapshotting. Note that this can and should be part of the--- client functionality in a much less ad-hoc incarnation.-getRepoPaths :: IO [FilePath]-getRepoPaths = withTestEnv $ do- bhe <- getBHEnv- let Server s = bhServer bhe- let tUrl = s <> "/" <> "_nodes"- initReq <- parseRequest (URI.escapeURIString URI.isAllowedInURI (T.unpack tUrl))- let req = setRequestIgnoreStatus $ initReq { method = NHTM.methodGet }- Right (Object o) <- parseEsResponse =<< liftIO (httpLbs req (bhManager bhe))- return $ fromMaybe mempty $ do- Object nodes <- HM.lookup "nodes" o- Object firstNode <- snd <$> headMay (HM.toList nodes)- Object settings <- HM.lookup "settings" firstNode- Object path <- HM.lookup "path" settings- Array repo <- HM.lookup "repo" path- return [ T.unpack t | String t <- V.toList repo]---- | 1.5 and earlier don't care about repo paths-canSnapshot :: IO Bool-canSnapshot = do- caresAboutRepos <- atleast es16- repoPaths <- getRepoPaths- return (not caresAboutRepos || not (null repoPaths))--withSnapshotRepo- :: ( MonadMask m- , MonadBH m- )- => SnapshotRepoName- -> (GenericSnapshotRepo -> m a)- -> m a-withSnapshotRepo srn@(SnapshotRepoName n) f = do- repoPaths <- liftIO getRepoPaths- -- we'll use the first repo path if available, otherwise system temp- -- dir. Note that this will fail on ES > 1.6, so be sure you use- -- @when' canSnapshot@.- case repoPaths of- (firstRepoPath:_) -> withTempDirectory firstRepoPath (T.unpack n) $ \dir -> bracket (alloc dir) free f- [] -> withSystemTempDirectory (T.unpack n) $ \dir -> bracket (alloc dir) free f- where- alloc dir = do- liftIO (setFileMode dir mode)- let repo = FsSnapshotRepo srn "bloodhound-tests-backups" True Nothing Nothing Nothing- resp <- updateSnapshotRepo defaultSnapshotRepoUpdateSettings repo- liftIO (validateStatus resp 200)- return (toGSnapshotRepo repo)- mode = ownerModes `unionFileModes` groupModes `unionFileModes` otherModes- free GenericSnapshotRepo {..} = do- resp <- deleteSnapshotRepo gSnapshotRepoName- liftIO (validateStatus resp 200)---withSnapshot- :: ( MonadMask m- , MonadBH m- )- => SnapshotRepoName- -> SnapshotName- -> m a- -> m a-withSnapshot srn sn = bracket_ alloc free- where- alloc = do- resp <- createSnapshot srn sn createSettings- liftIO (validateStatus resp 200)- -- We'll make this synchronous for testing purposes- createSettings = defaultSnapshotCreateSettings { snapWaitForCompletion = True- , snapIndices = Just (IndexList (testIndex :| []))- -- We don't actually need to back up any data- }- free =- deleteSnapshot srn sn
− tests/V5/Test/Sorting.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Sorting where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "sorting" $- it "returns documents in the right order" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let sortSpec = DefaultSortSpec $ mkSort (FieldName "age") Ascending- let search = Search Nothing- Nothing (Just [sortSpec]) Nothing Nothing- False (From 0) (Size 10) SearchTypeQueryThenFetch Nothing Nothing- Nothing Nothing- result <- searchTweets search- let myTweet = grabFirst result- liftIO $- myTweet `shouldBe` Right otherTweet
− tests/V5/Test/SourceFiltering.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.SourceFiltering where--import Test.Common-import Test.Import--import qualified Data.HashMap.Strict as HM--spec :: Spec-spec =- describe "Source filtering" $ do-- it "doesn't include source when sources are disabled" $ withTestEnv $- searchExpectSource- NoSource- (Left (EsError 500 "Source was missing"))-- it "includes a source" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPattern (Pattern "message")))- (Right (Object (HM.fromList [("message", String "Use haskell!")])))-- it "includes sources" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPatterns [Pattern "user", Pattern "message"]))- (Right (Object (HM.fromList [("user",String "bitemyapp"),("message", String "Use haskell!")])))-- it "includes source patterns" $ withTestEnv $- searchExpectSource- (SourcePatterns (PopPattern (Pattern "*ge")))- (Right (Object (HM.fromList [("age", Number 10000),("message", String "Use haskell!")])))-- it "excludes source patterns" $ withTestEnv $- searchExpectSource- (SourceIncludeExclude (Include [])- (Exclude [Pattern "l*", Pattern "*ge", Pattern "postDate", Pattern "extra"]))- (Right (Object (HM.fromList [("user",String "bitemyapp")])))
− tests/V5/Test/Suggest.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Suggest where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "Suggest" $- it "returns a search suggestion using the phrase suggester" $ withTestEnv $ do- _ <- insertData- let query = QueryMatchNoneQuery- phraseSuggester = mkPhraseSuggester (FieldName "message")- namedSuggester = Suggest "Use haskel" "suggest_name" (SuggestTypePhraseSuggester phraseSuggester)- search' = mkSearch (Just query) Nothing- search = search' { suggestBody = Just namedSuggester }- expectedText = Just "use haskell"- resp <- searchByIndex testIndex search- parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Tweet))- case parsed of- Left e -> liftIO $ expectationFailure ("Expected an search suggestion but got " <> show e)- Right sr -> liftIO $ (suggestOptionsText . head . suggestResponseOptions . head . nsrResponses <$> suggest sr) `shouldBe` expectedText
− tests/V5/Test/Templates.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}--module Test.Templates where--import Test.Common-import Test.Import--spec :: Spec-spec =- describe "template API" $ do- it "can create a template" $ withTestEnv $ do- let idxTpl = IndexTemplate (TemplatePattern "tweet-*") (Just (IndexSettings (ShardCount 1) (ReplicaCount 1))) [toJSON TweetMapping]- resp <- putTemplate idxTpl (TemplateName "tweet-tpl")- liftIO $ validateStatus resp 200-- it "can detect if a template exists" $ withTestEnv $ do- exists <- templateExists (TemplateName "tweet-tpl")- liftIO $ exists `shouldBe` True-- it "can delete a template" $ withTestEnv $ do- resp <- deleteTemplate (TemplateName "tweet-tpl")- liftIO $ validateStatus resp 200-- it "can detect if a template doesn't exist" $ withTestEnv $ do- exists <- templateExists (TemplateName "tweet-tpl")- liftIO $ exists `shouldBe` False
− tests/V5/tests.hs
@@ -1,119 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeOperators #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}-#if __GLASGOW_HASKELL__ < 800-{-# OPTIONS_GHC -fcontext-stack=100 #-}-#endif-#if __GLASGOW_HASKELL__ >= 802-{-# LANGUAGE MonoLocalBinds #-}-#endif-module Main where--import Test.Common-import Test.Import--import Prelude--import qualified Test.Aggregation as Aggregation-import qualified Test.BulkAPI as Bulk-import qualified Test.Documents as Documents-import qualified Test.Highlights as Highlights-import qualified Test.Indices as Indices-import qualified Test.JSON as JSON-import qualified Test.Query as Query-import qualified Test.Script as Script-import qualified Test.Snapshots as Snapshots-import qualified Test.Sorting as Sorting-import qualified Test.SourceFiltering as SourceFiltering-import qualified Test.Suggest as Suggest-import qualified Test.Templates as Templates--main :: IO ()-main = hspec $ do- Aggregation.spec- Bulk.spec- Documents.spec- Highlights.spec- Indices.spec- JSON.spec- Query.spec- Script.spec- Snapshots.spec- Sorting.spec- SourceFiltering.spec- Suggest.spec- Templates.spec-- describe "error parsing" $ do- it "can parse EsErrors for < 2.0" $ when' (atmost es16) $ withTestEnv $ do- res <- getDocument (IndexName "bogus") (MappingName "also_bogus") (DocId "bogus_as_well")- let errorResp = eitherDecode (responseBody res)- liftIO (errorResp `shouldBe` Right (EsError 404 "IndexMissingException[[bogus] missing]"))-- it "can parse EsErrors for >= 2.0" $ when' (atleast es20) $ withTestEnv $ do- res <- getDocument (IndexName "bogus") (MappingName "also_bogus") (DocId "bogus_as_well")- let errorResp = eitherDecode (responseBody res)- liftIO (errorResp `shouldBe` Right (EsError 404 "no such index"))-- describe "Monoid (SearchHits a)" $- prop "abides the monoid laws" $ eq $- prop_Monoid (T :: T (SearchHits ()))-- describe "mkDocVersion" $- prop "can never construct an out of range docVersion" $ \i ->- let res = mkDocVersion i- in case res of- Nothing -> property True- Just dv -> (dv >= minBound) .&&.- (dv <= maxBound) .&&.- docVersionNumber dv === i-- describe "getNodesInfo" $- it "fetches the responding node when LocalNode is used" $ withTestEnv $ do- res <- getNodesInfo LocalNode- liftIO $ case res of- -- This is really just a smoke test for response- -- parsing. Node info is so variable, there's not much I can- -- assert here.- Right NodesInfo {..} -> length nodesInfo `shouldBe` 1- Left e -> expectationFailure ("Expected NodesInfo but got " <> show e)-- describe "getNodesStats" $- it "fetches the responding node when LocalNode is used" $ withTestEnv $ do- res <- getNodesStats LocalNode- liftIO $ case res of- -- This is really just a smoke test for response- -- parsing. Node stats is so variable, there's not much I can- -- assert here.- Right NodesStats {..} -> length nodesStats `shouldBe` 1- Left e -> expectationFailure ("Expected NodesStats but got " <> show e)-- describe "Enum DocVersion" $- it "follows the laws of Enum, Bounded" $ do- evaluate (succ maxBound :: DocVersion) `shouldThrow` anyErrorCall- evaluate (pred minBound :: DocVersion) `shouldThrow` anyErrorCall- evaluate (toEnum 0 :: DocVersion) `shouldThrow` anyErrorCall- evaluate (toEnum 9200000000000000001 :: DocVersion) `shouldThrow` anyErrorCall- enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]- enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]- enumFromThen minBound (pred maxBound :: DocVersion) `shouldBe` [minBound, pred maxBound]-- describe "Scan & Scroll API" $- it "returns documents using the scan&scroll API" $ withTestEnv $ do- _ <- insertData- _ <- insertOther- let search =- (mkSearch- (Just $ MatchAllQuery Nothing) Nothing)- { size = Size 1 }- regular_search <- searchTweet search- scan_search' <- scanSearch testIndex testMapping search :: BH IO [Hit Tweet]- let scan_search = map hitSource scan_search'- liftIO $- regular_search `shouldBe` Right exampleTweet -- Check that the size restrtiction is being honored- liftIO $- scan_search `shouldMatchList` [Just exampleTweet, Just otherTweet]
+ tests/tests.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeOperators #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+#if __GLASGOW_HASKELL__ < 800+{-# OPTIONS_GHC -fcontext-stack=100 #-}+#endif+#if __GLASGOW_HASKELL__ >= 802+{-# LANGUAGE MonoLocalBinds #-}+#endif+module Main where++import Test.Common+import Test.Import++import Prelude++import qualified Data.Aeson as Aeson+import qualified Test.Aggregation as Aggregation+import qualified Test.BulkAPI as Bulk+import qualified Test.Documents as Documents+import qualified Test.Highlights as Highlights+import qualified Test.Indices as Indices+import qualified Test.JSON as JSON+import qualified Test.Query as Query+import qualified Test.Script as Script+import qualified Test.Snapshots as Snapshots+import qualified Test.Sorting as Sorting+import qualified Test.SourceFiltering as SourceFiltering+import qualified Test.Suggest as Suggest+import qualified Test.Templates as Templates+import qualified Test.Count as Count++main :: IO ()+main = hspec $ do+ Aggregation.spec+ Bulk.spec+ Documents.spec+ Highlights.spec+ Indices.spec+ JSON.spec+ Query.spec+ Script.spec+ Snapshots.spec+ Sorting.spec+ SourceFiltering.spec+ Suggest.spec+ Templates.spec+ Count.spec++ describe "error parsing" $+ it "can parse EsErrors for >= 2.0" $ withTestEnv $ do+ res <- getDocument (IndexName "bogus") (DocId "bogus_as_well")+ let errorResp = eitherDecode (responseBody res)+ liftIO (errorResp `shouldBe` Right (EsError 404 "no such index [bogus]"))++ describe "Monoid (SearchHits a)" $+ prop "abides the monoid laws" $ eq $+ prop_Monoid (T :: T (SearchHits ()))++ describe "mkDocVersion" $+ prop "can never construct an out of range docVersion" $ \i ->+ let res = mkDocVersion i+ in case res of+ Nothing -> property True+ Just dv -> (dv >= minBound) .&&.+ (dv <= maxBound) .&&.+ docVersionNumber dv === i++ describe "getNodesInfo" $+ it "fetches the responding node when LocalNode is used" $ withTestEnv $ do+ res <- getNodesInfo LocalNode+ liftIO $ case res of+ -- This is really just a smoke test for response+ -- parsing. Node info is so variable, there's not much I can+ -- assert here.+ Right NodesInfo {..} -> length nodesInfo `shouldBe` 1+ Left e -> expectationFailure ("Expected NodesInfo but got " <> show e)++ describe "getNodesStats" $+ it "fetches the responding node when LocalNode is used" $ withTestEnv $ do+ res <- getNodesStats LocalNode+ liftIO $ case res of+ -- This is really just a smoke test for response+ -- parsing. Node stats is so variable, there's not much I can+ -- assert here.+ Right NodesStats {..} -> length nodesStats `shouldBe` 1+ Left e -> expectationFailure ("Expected NodesStats but got " <> show e)++ describe "Enum DocVersion" $+ it "follows the laws of Enum, Bounded" $ do+ evaluate (succ maxBound :: DocVersion) `shouldThrow` anyErrorCall+ evaluate (pred minBound :: DocVersion) `shouldThrow` anyErrorCall+ evaluate (toEnum 0 :: DocVersion) `shouldThrow` anyErrorCall+ evaluate (toEnum 9200000000000000001 :: DocVersion) `shouldThrow` anyErrorCall+ enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]+ enumFrom (pred maxBound :: DocVersion) `shouldBe` [pred maxBound, maxBound]+ enumFromThen minBound (pred maxBound :: DocVersion) `shouldBe` [minBound, pred maxBound]++ describe "Scan & Scroll API" $+ it "returns documents using the scan&scroll API" $ withTestEnv $ do+ _ <- insertData+ _ <- insertOther+ let search =+ (mkSearch+ (Just $ MatchAllQuery Nothing) Nothing)+ { size = Size 1 }+ regular_search <- searchTweet search+ scan_search' <- scanSearch testIndex search :: BH IO [Hit Tweet]+ let scan_search = map hitSource scan_search'+ liftIO $+ regular_search `shouldBe` Right exampleTweet -- Check that the size restrtiction is being honored+ liftIO $+ scan_search `shouldMatchList` [Just exampleTweet, Just otherTweet]++ describe "Search After API" $+ it "returns document for search after query" $ withTestEnv $ do+ _ <- insertData+ _ <- insertOther+ let+ sortSpec = DefaultSortSpec $ mkSort (FieldName "user") Ascending+ searchAfterKey = [Aeson.toJSON ("bitemyapp" :: String)]+ search = Search Nothing+ Nothing (Just [sortSpec]) Nothing Nothing+ False (From 0) (Size 10) SearchTypeQueryThenFetch (Just searchAfterKey)+ Nothing Nothing Nothing Nothing+ result <- searchTweets search+ let myTweet = grabFirst result+ liftIO $+ myTweet `shouldBe` Right otherTweet