{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wno-warnings-deprecations #-}
module Database.Bloodhound.Common.Client
(
withBH,
createIndex,
createIndexWith,
flushIndex,
deleteIndex,
updateIndexSettings,
getIndexSettings,
forceMergeIndex,
indexExists,
openIndex,
closeIndex,
listIndices,
catIndices,
waitForYellowIndex,
Requests.HealthStatus (..),
updateIndexAliases,
getIndexAliases,
deleteIndexAlias,
putTemplate,
templateExists,
deleteTemplate,
putMapping,
indexDocument,
updateDocument,
updateByQuery,
Requests.getDocument,
documentExists,
deleteDocument,
deleteByQuery,
Requests.IndexedDocument (..),
Requests.DeletedDocuments (..),
Requests.DeletedDocumentsRetries (..),
searchAll,
searchByIndex,
searchByIndices,
searchByIndexTemplate,
searchByIndicesTemplate,
scanSearch,
getInitialScroll,
getInitialSortedScroll,
advanceScroll,
refreshIndex,
Requests.mkSearch,
Requests.mkAggregateSearch,
Requests.mkHighlightSearch,
Requests.mkSearchTemplate,
bulk,
Requests.pageSearch,
Requests.mkShardCount,
Requests.mkReplicaCount,
getStatus,
storeSearchTemplate,
getSearchTemplate,
deleteSearchTemplate,
getSnapshotRepos,
updateSnapshotRepo,
verifySnapshotRepo,
deleteSnapshotRepo,
createSnapshot,
getSnapshots,
deleteSnapshot,
restoreSnapshot,
reindex,
reindexAsync,
getTask,
getNodesInfo,
getNodesStats,
Requests.encodeBulkOperations,
Requests.encodeBulkOperation,
basicAuthHook,
countByIndex,
Acknowledged (..),
Accepted (..),
IgnoredBody (..),
)
where
import Control.Monad
import Control.Monad.Catch
import Data.Aeson
import Data.List.NonEmpty (NonEmpty (..))
import qualified Data.Text.Encoding as T
import Data.Time.Clock
import qualified Data.Vector as V
import Database.Bloodhound.Client.Cluster
import qualified Database.Bloodhound.Common.Requests as Requests
import Database.Bloodhound.Common.Types
import Network.HTTP.Client hiding (Proxy)
import Prelude hiding (filter, head)
withBH :: ManagerSettings -> Server -> BH IO a -> IO a
withBH :: forall a. ManagerSettings -> Server -> BH IO a -> IO a
withBH ManagerSettings
ms Server
s BH IO a
f = do
Manager
mgr <- ManagerSettings -> IO Manager
newManager ManagerSettings
ms
let env :: BHEnv
env = Server -> Manager -> BHEnv
mkBHEnv Server
s Manager
mgr
BHEnv -> BH IO a -> IO (Either EsError a)
forall (m :: * -> *) a. BHEnv -> BH m a -> m (Either EsError a)
runBH BHEnv
env BH IO a
f IO (Either EsError a) -> (Either EsError a -> IO a) -> IO a
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (EsError -> IO a) -> (a -> IO a) -> Either EsError a -> IO a
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either EsError -> IO a
forall e a. (HasCallStack, Exception e) => e -> IO a
forall (m :: * -> *) e a.
(MonadThrow m, HasCallStack, Exception e) =>
e -> m a
throwM a -> IO a
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return
getStatus :: (MonadBH m) => m Status
getStatus :: forall (m :: * -> *). MonadBH m => m Status
getStatus = BHRequest StatusDependant Status -> m Status
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Status -> m Status)
-> BHRequest StatusDependant Status -> m Status
forall a b. (a -> b) -> a -> b
$ BHRequest StatusDependant Status
Requests.getStatus
getSnapshotRepos :: (MonadBH m) => SnapshotRepoSelection -> m [GenericSnapshotRepo]
getSnapshotRepos :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoSelection -> m [GenericSnapshotRepo]
getSnapshotRepos SnapshotRepoSelection
sel = BHRequest StatusDependant [GenericSnapshotRepo]
-> m [GenericSnapshotRepo]
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant [GenericSnapshotRepo]
-> m [GenericSnapshotRepo])
-> BHRequest StatusDependant [GenericSnapshotRepo]
-> m [GenericSnapshotRepo]
forall a b. (a -> b) -> a -> b
$ SnapshotRepoSelection
-> BHRequest StatusDependant [GenericSnapshotRepo]
Requests.getSnapshotRepos SnapshotRepoSelection
sel
updateSnapshotRepo ::
(MonadBH m) =>
(SnapshotRepo repo) =>
SnapshotRepoUpdateSettings ->
repo ->
m Acknowledged
updateSnapshotRepo :: forall (m :: * -> *) repo.
(MonadBH m, SnapshotRepo repo) =>
SnapshotRepoUpdateSettings -> repo -> m Acknowledged
updateSnapshotRepo SnapshotRepoUpdateSettings
settings repo
repo = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SnapshotRepoUpdateSettings
-> repo -> BHRequest StatusIndependant Acknowledged
forall repo.
SnapshotRepo repo =>
SnapshotRepoUpdateSettings
-> repo -> BHRequest StatusIndependant Acknowledged
Requests.updateSnapshotRepo SnapshotRepoUpdateSettings
settings repo
repo
verifySnapshotRepo :: (MonadBH m) => SnapshotRepoName -> m SnapshotVerification
verifySnapshotRepo :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName -> m SnapshotVerification
verifySnapshotRepo SnapshotRepoName
repoName = BHRequest StatusDependant SnapshotVerification
-> m SnapshotVerification
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant SnapshotVerification
-> m SnapshotVerification)
-> BHRequest StatusDependant SnapshotVerification
-> m SnapshotVerification
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName -> BHRequest StatusDependant SnapshotVerification
Requests.verifySnapshotRepo SnapshotRepoName
repoName
deleteSnapshotRepo :: (MonadBH m) => SnapshotRepoName -> m Acknowledged
deleteSnapshotRepo :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName -> m Acknowledged
deleteSnapshotRepo SnapshotRepoName
repoName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName -> BHRequest StatusIndependant Acknowledged
Requests.deleteSnapshotRepo SnapshotRepoName
repoName
createSnapshot ::
(MonadBH m) =>
SnapshotRepoName ->
SnapshotName ->
SnapshotCreateSettings ->
m Acknowledged
createSnapshot :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName
-> SnapshotName -> SnapshotCreateSettings -> m Acknowledged
createSnapshot SnapshotRepoName
repoName SnapshotName
snapName SnapshotCreateSettings
settings = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName
-> SnapshotName
-> SnapshotCreateSettings
-> BHRequest StatusIndependant Acknowledged
Requests.createSnapshot SnapshotRepoName
repoName SnapshotName
snapName SnapshotCreateSettings
settings
getSnapshots :: (MonadBH m) => SnapshotRepoName -> SnapshotSelection -> m [SnapshotInfo]
getSnapshots :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName -> SnapshotSelection -> m [SnapshotInfo]
getSnapshots SnapshotRepoName
repoName SnapshotSelection
sel = BHRequest StatusDependant [SnapshotInfo] -> m [SnapshotInfo]
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant [SnapshotInfo] -> m [SnapshotInfo])
-> BHRequest StatusDependant [SnapshotInfo] -> m [SnapshotInfo]
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName
-> SnapshotSelection -> BHRequest StatusDependant [SnapshotInfo]
Requests.getSnapshots SnapshotRepoName
repoName SnapshotSelection
sel
deleteSnapshot :: (MonadBH m) => SnapshotRepoName -> SnapshotName -> m Acknowledged
deleteSnapshot :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName -> SnapshotName -> m Acknowledged
deleteSnapshot SnapshotRepoName
repoName SnapshotName
snapName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName
-> SnapshotName -> BHRequest StatusIndependant Acknowledged
Requests.deleteSnapshot SnapshotRepoName
repoName SnapshotName
snapName
restoreSnapshot ::
(MonadBH m) =>
SnapshotRepoName ->
SnapshotName ->
SnapshotRestoreSettings ->
m Accepted
restoreSnapshot :: forall (m :: * -> *).
MonadBH m =>
SnapshotRepoName
-> SnapshotName -> SnapshotRestoreSettings -> m Accepted
restoreSnapshot SnapshotRepoName
repoName SnapshotName
snapName SnapshotRestoreSettings
settings = BHRequest StatusIndependant Accepted -> m Accepted
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Accepted -> m Accepted)
-> BHRequest StatusIndependant Accepted -> m Accepted
forall a b. (a -> b) -> a -> b
$ SnapshotRepoName
-> SnapshotName
-> SnapshotRestoreSettings
-> BHRequest StatusIndependant Accepted
Requests.restoreSnapshot SnapshotRepoName
repoName SnapshotName
snapName SnapshotRestoreSettings
settings
getNodesInfo :: (MonadBH m) => NodeSelection -> m NodesInfo
getNodesInfo :: forall (m :: * -> *). MonadBH m => NodeSelection -> m NodesInfo
getNodesInfo NodeSelection
sel = BHRequest StatusDependant NodesInfo -> m NodesInfo
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant NodesInfo -> m NodesInfo)
-> BHRequest StatusDependant NodesInfo -> m NodesInfo
forall a b. (a -> b) -> a -> b
$ NodeSelection -> BHRequest StatusDependant NodesInfo
Requests.getNodesInfo NodeSelection
sel
getNodesStats :: (MonadBH m) => NodeSelection -> m NodesStats
getNodesStats :: forall (m :: * -> *). MonadBH m => NodeSelection -> m NodesStats
getNodesStats NodeSelection
sel = BHRequest StatusDependant NodesStats -> m NodesStats
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant NodesStats -> m NodesStats)
-> BHRequest StatusDependant NodesStats -> m NodesStats
forall a b. (a -> b) -> a -> b
$ NodeSelection -> BHRequest StatusDependant NodesStats
Requests.getNodesStats NodeSelection
sel
createIndex :: (MonadBH m) => IndexSettings -> IndexName -> m Acknowledged
createIndex :: forall (m :: * -> *).
MonadBH m =>
IndexSettings -> IndexName -> m Acknowledged
createIndex IndexSettings
indexSettings IndexName
indexName = BHRequest StatusDependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Acknowledged -> m Acknowledged)
-> BHRequest StatusDependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexSettings
-> IndexName -> BHRequest StatusDependant Acknowledged
Requests.createIndex IndexSettings
indexSettings IndexName
indexName
createIndexWith ::
(MonadBH m) =>
[UpdatableIndexSetting] ->
Int ->
IndexName ->
m Acknowledged
createIndexWith :: forall (m :: * -> *).
MonadBH m =>
[UpdatableIndexSetting] -> Int -> IndexName -> m Acknowledged
createIndexWith [UpdatableIndexSetting]
updates Int
shards IndexName
indexName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ [UpdatableIndexSetting]
-> Int -> IndexName -> BHRequest StatusIndependant Acknowledged
Requests.createIndexWith [UpdatableIndexSetting]
updates Int
shards IndexName
indexName
flushIndex :: (MonadBH m) => IndexName -> m ShardResult
flushIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m ShardResult
flushIndex IndexName
indexName = BHRequest StatusDependant ShardResult -> m ShardResult
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant ShardResult -> m ShardResult)
-> BHRequest StatusDependant ShardResult -> m ShardResult
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusDependant ShardResult
Requests.flushIndex IndexName
indexName
deleteIndex :: (MonadBH m) => IndexName -> m Acknowledged
deleteIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m Acknowledged
deleteIndex IndexName
indexName = BHRequest StatusDependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Acknowledged -> m Acknowledged)
-> BHRequest StatusDependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusDependant Acknowledged
Requests.deleteIndex IndexName
indexName
updateIndexSettings ::
(MonadBH m) =>
NonEmpty UpdatableIndexSetting ->
IndexName ->
m Acknowledged
updateIndexSettings :: forall (m :: * -> *).
MonadBH m =>
NonEmpty UpdatableIndexSetting -> IndexName -> m Acknowledged
updateIndexSettings NonEmpty UpdatableIndexSetting
updates IndexName
indexName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ NonEmpty UpdatableIndexSetting
-> IndexName -> BHRequest StatusIndependant Acknowledged
Requests.updateIndexSettings NonEmpty UpdatableIndexSetting
updates IndexName
indexName
getIndexSettings :: (MonadBH m) => IndexName -> m IndexSettingsSummary
getIndexSettings :: forall (m :: * -> *).
MonadBH m =>
IndexName -> m IndexSettingsSummary
getIndexSettings IndexName
indexName = BHRequest StatusDependant IndexSettingsSummary
-> m IndexSettingsSummary
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant IndexSettingsSummary
-> m IndexSettingsSummary)
-> BHRequest StatusDependant IndexSettingsSummary
-> m IndexSettingsSummary
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusDependant IndexSettingsSummary
Requests.getIndexSettings IndexName
indexName
forceMergeIndex :: (MonadBH m) => IndexSelection -> ForceMergeIndexSettings -> m ShardsResult
forceMergeIndex :: forall (m :: * -> *).
MonadBH m =>
IndexSelection -> ForceMergeIndexSettings -> m ShardsResult
forceMergeIndex IndexSelection
ixs ForceMergeIndexSettings
settings = BHRequest StatusDependant ShardsResult -> m ShardsResult
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant ShardsResult -> m ShardsResult)
-> BHRequest StatusDependant ShardsResult -> m ShardsResult
forall a b. (a -> b) -> a -> b
$ IndexSelection
-> ForceMergeIndexSettings
-> BHRequest StatusDependant ShardsResult
Requests.forceMergeIndex IndexSelection
ixs ForceMergeIndexSettings
settings
indexExists :: (MonadBH m) => IndexName -> m Bool
indexExists :: forall (m :: * -> *). MonadBH m => IndexName -> m Bool
indexExists IndexName
indexName = BHRequest StatusDependant Bool -> m Bool
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Bool -> m Bool)
-> BHRequest StatusDependant Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusDependant Bool
Requests.indexExists IndexName
indexName
refreshIndex :: (MonadBH m) => IndexName -> m ShardResult
refreshIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m ShardResult
refreshIndex IndexName
indexName = BHRequest StatusDependant ShardResult -> m ShardResult
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant ShardResult -> m ShardResult)
-> BHRequest StatusDependant ShardResult -> m ShardResult
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusDependant ShardResult
Requests.refreshIndex IndexName
indexName
waitForYellowIndex :: (MonadBH m) => IndexName -> m Requests.HealthStatus
waitForYellowIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m HealthStatus
waitForYellowIndex IndexName
indexName = BHRequest StatusIndependant HealthStatus -> m HealthStatus
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant HealthStatus -> m HealthStatus)
-> BHRequest StatusIndependant HealthStatus -> m HealthStatus
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusIndependant HealthStatus
Requests.waitForYellowIndex IndexName
indexName
openIndex :: (MonadBH m) => IndexName -> m Acknowledged
openIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m Acknowledged
openIndex IndexName
indexName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusIndependant Acknowledged
Requests.openIndex IndexName
indexName
closeIndex :: (MonadBH m) => IndexName -> m Acknowledged
closeIndex :: forall (m :: * -> *). MonadBH m => IndexName -> m Acknowledged
closeIndex IndexName
indexName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexName -> BHRequest StatusIndependant Acknowledged
Requests.closeIndex IndexName
indexName
listIndices :: (MonadBH m) => m [IndexName]
listIndices :: forall (m :: * -> *). MonadBH m => m [IndexName]
listIndices = BHRequest StatusDependant [IndexName] -> m [IndexName]
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant [IndexName] -> m [IndexName])
-> BHRequest StatusDependant [IndexName] -> m [IndexName]
forall a b. (a -> b) -> a -> b
$ BHRequest StatusDependant [IndexName]
Requests.listIndices
catIndices :: (MonadBH m) => m [(IndexName, Int)]
catIndices :: forall (m :: * -> *). MonadBH m => m [(IndexName, Int)]
catIndices = BHRequest StatusDependant [(IndexName, Int)]
-> m [(IndexName, Int)]
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant [(IndexName, Int)]
-> m [(IndexName, Int)])
-> BHRequest StatusDependant [(IndexName, Int)]
-> m [(IndexName, Int)]
forall a b. (a -> b) -> a -> b
$ BHRequest StatusDependant [(IndexName, Int)]
Requests.catIndices
updateIndexAliases :: (MonadBH m) => NonEmpty IndexAliasAction -> m Acknowledged
updateIndexAliases :: forall (m :: * -> *).
MonadBH m =>
NonEmpty IndexAliasAction -> m Acknowledged
updateIndexAliases NonEmpty IndexAliasAction
actions = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ NonEmpty IndexAliasAction
-> BHRequest StatusIndependant Acknowledged
Requests.updateIndexAliases NonEmpty IndexAliasAction
actions
getIndexAliases :: (MonadBH m) => m IndexAliasesSummary
getIndexAliases :: forall (m :: * -> *). MonadBH m => m IndexAliasesSummary
getIndexAliases = BHRequest StatusDependant IndexAliasesSummary
-> m IndexAliasesSummary
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant IndexAliasesSummary
-> m IndexAliasesSummary)
-> BHRequest StatusDependant IndexAliasesSummary
-> m IndexAliasesSummary
forall a b. (a -> b) -> a -> b
$ BHRequest StatusDependant IndexAliasesSummary
Requests.getIndexAliases
deleteIndexAlias :: (MonadBH m) => IndexAliasName -> m Acknowledged
deleteIndexAlias :: forall (m :: * -> *). MonadBH m => IndexAliasName -> m Acknowledged
deleteIndexAlias IndexAliasName
indexAliasName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexAliasName -> BHRequest StatusIndependant Acknowledged
Requests.deleteIndexAlias IndexAliasName
indexAliasName
putTemplate :: (MonadBH m) => IndexTemplate -> TemplateName -> m Acknowledged
putTemplate :: forall (m :: * -> *).
MonadBH m =>
IndexTemplate -> TemplateName -> m Acknowledged
putTemplate IndexTemplate
indexTemplate TemplateName
templateName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ IndexTemplate
-> TemplateName -> BHRequest StatusIndependant Acknowledged
Requests.putTemplate IndexTemplate
indexTemplate TemplateName
templateName
templateExists :: (MonadBH m) => TemplateName -> m Bool
templateExists :: forall (m :: * -> *). MonadBH m => TemplateName -> m Bool
templateExists TemplateName
templateName = BHRequest StatusDependant Bool -> m Bool
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Bool -> m Bool)
-> BHRequest StatusDependant Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ TemplateName -> BHRequest StatusDependant Bool
Requests.templateExists TemplateName
templateName
deleteTemplate :: (MonadBH m) => TemplateName -> m Acknowledged
deleteTemplate :: forall (m :: * -> *). MonadBH m => TemplateName -> m Acknowledged
deleteTemplate TemplateName
templateName = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ TemplateName -> BHRequest StatusIndependant Acknowledged
Requests.deleteTemplate TemplateName
templateName
putMapping :: forall r a m. (MonadBH m, FromJSON r, ToJSON a) => IndexName -> a -> m r
putMapping :: forall r a (m :: * -> *).
(MonadBH m, FromJSON r, ToJSON a) =>
IndexName -> a -> m r
putMapping IndexName
indexName a
mapping = BHRequest StatusDependant r -> m r
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant r -> m r)
-> BHRequest StatusDependant r -> m r
forall a b. (a -> b) -> a -> b
$ IndexName -> a -> BHRequest StatusDependant r
forall r a.
(FromJSON r, ToJSON a) =>
IndexName -> a -> BHRequest StatusDependant r
Requests.putMapping IndexName
indexName a
mapping
indexDocument ::
forall doc m.
(MonadBH m, ToJSON doc) =>
IndexName ->
IndexDocumentSettings ->
doc ->
DocId ->
m Requests.IndexedDocument
indexDocument :: forall doc (m :: * -> *).
(MonadBH m, ToJSON doc) =>
IndexName
-> IndexDocumentSettings -> doc -> DocId -> m IndexedDocument
indexDocument IndexName
indexName IndexDocumentSettings
cfg doc
document DocId
docId = BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant IndexedDocument -> m IndexedDocument)
-> BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall a b. (a -> b) -> a -> b
$ IndexName
-> IndexDocumentSettings
-> doc
-> DocId
-> BHRequest StatusDependant IndexedDocument
forall doc.
ToJSON doc =>
IndexName
-> IndexDocumentSettings
-> doc
-> DocId
-> BHRequest StatusDependant IndexedDocument
Requests.indexDocument IndexName
indexName IndexDocumentSettings
cfg doc
document DocId
docId
updateDocument ::
forall patch m.
(MonadBH m, ToJSON patch) =>
IndexName ->
IndexDocumentSettings ->
patch ->
DocId ->
m Requests.IndexedDocument
updateDocument :: forall doc (m :: * -> *).
(MonadBH m, ToJSON doc) =>
IndexName
-> IndexDocumentSettings -> doc -> DocId -> m IndexedDocument
updateDocument IndexName
indexName IndexDocumentSettings
cfg patch
patch DocId
docId = BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant IndexedDocument -> m IndexedDocument)
-> BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall a b. (a -> b) -> a -> b
$ IndexName
-> IndexDocumentSettings
-> patch
-> DocId
-> BHRequest StatusDependant IndexedDocument
forall doc.
ToJSON doc =>
IndexName
-> IndexDocumentSettings
-> doc
-> DocId
-> BHRequest StatusDependant IndexedDocument
Requests.updateDocument IndexName
indexName IndexDocumentSettings
cfg patch
patch DocId
docId
updateByQuery :: (MonadBH m, FromJSON a) => IndexName -> Query -> Maybe Script -> m a
updateByQuery :: forall (m :: * -> *) a.
(MonadBH m, FromJSON a) =>
IndexName -> Query -> Maybe Script -> m a
updateByQuery IndexName
indexName Query
q Maybe Script
mScript = BHRequest StatusDependant a -> m a
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant a -> m a)
-> BHRequest StatusDependant a -> m a
forall a b. (a -> b) -> a -> b
$ IndexName -> Query -> Maybe Script -> BHRequest StatusDependant a
forall a.
FromJSON a =>
IndexName -> Query -> Maybe Script -> BHRequest StatusDependant a
Requests.updateByQuery IndexName
indexName Query
q Maybe Script
mScript
deleteDocument :: (MonadBH m) => IndexName -> DocId -> m Requests.IndexedDocument
deleteDocument :: forall (m :: * -> *).
MonadBH m =>
IndexName -> DocId -> m IndexedDocument
deleteDocument IndexName
indexName DocId
docId = BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant IndexedDocument -> m IndexedDocument)
-> BHRequest StatusDependant IndexedDocument -> m IndexedDocument
forall a b. (a -> b) -> a -> b
$ IndexName -> DocId -> BHRequest StatusDependant IndexedDocument
Requests.deleteDocument IndexName
indexName DocId
docId
deleteByQuery :: (MonadBH m) => IndexName -> Query -> m Requests.DeletedDocuments
deleteByQuery :: forall (m :: * -> *).
MonadBH m =>
IndexName -> Query -> m DeletedDocuments
deleteByQuery IndexName
indexName Query
query = BHRequest StatusDependant DeletedDocuments -> m DeletedDocuments
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant DeletedDocuments -> m DeletedDocuments)
-> BHRequest StatusDependant DeletedDocuments -> m DeletedDocuments
forall a b. (a -> b) -> a -> b
$ IndexName -> Query -> BHRequest StatusDependant DeletedDocuments
Requests.deleteByQuery IndexName
indexName Query
query
bulk ::
forall m.
(MonadBH m) =>
V.Vector BulkOperation ->
m BulkResponse
bulk :: forall (m :: * -> *).
MonadBH m =>
Vector BulkOperation -> m BulkResponse
bulk Vector BulkOperation
ops = BHRequest StatusDependant BulkResponse -> m BulkResponse
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant BulkResponse -> m BulkResponse)
-> BHRequest StatusDependant BulkResponse -> m BulkResponse
forall a b. (a -> b) -> a -> b
$ forall contextualized.
ParseBHResponse contextualized =>
Vector BulkOperation -> BHRequest contextualized BulkResponse
Requests.bulk @StatusDependant Vector BulkOperation
ops
documentExists :: (MonadBH m) => IndexName -> DocId -> m Bool
documentExists :: forall (m :: * -> *). MonadBH m => IndexName -> DocId -> m Bool
documentExists IndexName
indexName DocId
docId = BHRequest StatusDependant Bool -> m Bool
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Bool -> m Bool)
-> BHRequest StatusDependant Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ IndexName -> DocId -> BHRequest StatusDependant Bool
Requests.documentExists IndexName
indexName DocId
docId
searchAll :: forall a m. (MonadBH m, FromJSON a) => Search -> m (SearchResult a)
searchAll :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
Search -> m (SearchResult a)
searchAll Search
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ Search -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
Search -> BHRequest StatusDependant (SearchResult a)
Requests.searchAll Search
search
searchByIndex :: forall a m. (MonadBH m, FromJSON a) => IndexName -> Search -> m (SearchResult a)
searchByIndex :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
IndexName -> Search -> m (SearchResult a)
searchByIndex IndexName
indexName Search
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ IndexName -> Search -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
IndexName -> Search -> BHRequest StatusDependant (SearchResult a)
Requests.searchByIndex IndexName
indexName Search
search
searchByIndices :: forall a m. (MonadBH m, FromJSON a) => NonEmpty IndexName -> Search -> m (SearchResult a)
searchByIndices :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
NonEmpty IndexName -> Search -> m (SearchResult a)
searchByIndices NonEmpty IndexName
ixs Search
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ NonEmpty IndexName
-> Search -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
NonEmpty IndexName
-> Search -> BHRequest StatusDependant (SearchResult a)
Requests.searchByIndices NonEmpty IndexName
ixs Search
search
searchByIndexTemplate ::
forall a m.
(MonadBH m, FromJSON a) =>
IndexName ->
SearchTemplate ->
m (SearchResult a)
searchByIndexTemplate :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
IndexName -> SearchTemplate -> m (SearchResult a)
searchByIndexTemplate IndexName
indexName SearchTemplate
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ IndexName
-> SearchTemplate -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
IndexName
-> SearchTemplate -> BHRequest StatusDependant (SearchResult a)
Requests.searchByIndexTemplate IndexName
indexName SearchTemplate
search
searchByIndicesTemplate ::
forall a m.
(MonadBH m, FromJSON a) =>
NonEmpty IndexName ->
SearchTemplate ->
m (SearchResult a)
searchByIndicesTemplate :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
NonEmpty IndexName -> SearchTemplate -> m (SearchResult a)
searchByIndicesTemplate NonEmpty IndexName
ixs SearchTemplate
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ NonEmpty IndexName
-> SearchTemplate -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
NonEmpty IndexName
-> SearchTemplate -> BHRequest StatusDependant (SearchResult a)
Requests.searchByIndicesTemplate NonEmpty IndexName
ixs SearchTemplate
search
storeSearchTemplate :: (MonadBH m) => SearchTemplateId -> SearchTemplateSource -> m Acknowledged
storeSearchTemplate :: forall (m :: * -> *).
MonadBH m =>
SearchTemplateId -> SearchTemplateSource -> m Acknowledged
storeSearchTemplate SearchTemplateId
tid SearchTemplateSource
ts = BHRequest StatusDependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant Acknowledged -> m Acknowledged)
-> BHRequest StatusDependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SearchTemplateId
-> SearchTemplateSource -> BHRequest StatusDependant Acknowledged
Requests.storeSearchTemplate SearchTemplateId
tid SearchTemplateSource
ts
getSearchTemplate :: (MonadBH m) => SearchTemplateId -> m GetTemplateScript
getSearchTemplate :: forall (m :: * -> *).
MonadBH m =>
SearchTemplateId -> m GetTemplateScript
getSearchTemplate SearchTemplateId
tid = BHRequest StatusIndependant GetTemplateScript
-> m GetTemplateScript
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant GetTemplateScript
-> m GetTemplateScript)
-> BHRequest StatusIndependant GetTemplateScript
-> m GetTemplateScript
forall a b. (a -> b) -> a -> b
$ SearchTemplateId -> BHRequest StatusIndependant GetTemplateScript
Requests.getSearchTemplate SearchTemplateId
tid
deleteSearchTemplate :: (MonadBH m) => SearchTemplateId -> m Acknowledged
deleteSearchTemplate :: forall (m :: * -> *).
MonadBH m =>
SearchTemplateId -> m Acknowledged
deleteSearchTemplate SearchTemplateId
tid = BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusIndependant Acknowledged -> m Acknowledged)
-> BHRequest StatusIndependant Acknowledged -> m Acknowledged
forall a b. (a -> b) -> a -> b
$ SearchTemplateId -> BHRequest StatusIndependant Acknowledged
Requests.deleteSearchTemplate SearchTemplateId
tid
getInitialScroll ::
forall a m.
(MonadBH m, FromJSON a) =>
IndexName ->
Search ->
m (ParsedEsResponse (SearchResult a))
getInitialScroll :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
IndexName -> Search -> m (ParsedEsResponse (SearchResult a))
getInitialScroll IndexName
indexName Search
search' = BHRequest StatusDependant (ParsedEsResponse (SearchResult a))
-> m (ParsedEsResponse (SearchResult a))
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (ParsedEsResponse (SearchResult a))
-> m (ParsedEsResponse (SearchResult a)))
-> BHRequest StatusDependant (ParsedEsResponse (SearchResult a))
-> m (ParsedEsResponse (SearchResult a))
forall a b. (a -> b) -> a -> b
$ IndexName
-> Search
-> BHRequest StatusDependant (ParsedEsResponse (SearchResult a))
forall a.
FromJSON a =>
IndexName
-> Search
-> BHRequest StatusDependant (ParsedEsResponse (SearchResult a))
Requests.getInitialScroll IndexName
indexName Search
search'
getInitialSortedScroll ::
forall a m.
(MonadBH m, FromJSON a) =>
IndexName ->
Search ->
m (SearchResult a)
getInitialSortedScroll :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
IndexName -> Search -> m (SearchResult a)
getInitialSortedScroll IndexName
indexName Search
search = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ IndexName -> Search -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
IndexName -> Search -> BHRequest StatusDependant (SearchResult a)
Requests.getInitialSortedScroll IndexName
indexName Search
search
advanceScroll ::
forall a m.
(MonadBH m, FromJSON a) =>
ScrollId ->
NominalDiffTime ->
m (SearchResult a)
advanceScroll :: forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
ScrollId -> NominalDiffTime -> m (SearchResult a)
advanceScroll ScrollId
sid NominalDiffTime
scroll = BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (SearchResult a) -> m (SearchResult a))
-> BHRequest StatusDependant (SearchResult a) -> m (SearchResult a)
forall a b. (a -> b) -> a -> b
$ ScrollId
-> NominalDiffTime -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
ScrollId
-> NominalDiffTime -> BHRequest StatusDependant (SearchResult a)
Requests.advanceScroll ScrollId
sid NominalDiffTime
scroll
scanSearch :: forall a m. (FromJSON a, MonadBH m) => IndexName -> Search -> m [Hit a]
scanSearch :: forall a (m :: * -> *).
(FromJSON a, MonadBH m) =>
IndexName -> Search -> m [Hit a]
scanSearch IndexName
indexName Search
search = do
ParsedEsResponse (SearchResult a)
initialSearchResult <- IndexName -> Search -> m (ParsedEsResponse (SearchResult a))
forall a (m :: * -> *).
(MonadBH m, FromJSON a) =>
IndexName -> Search -> m (ParsedEsResponse (SearchResult a))
getInitialScroll IndexName
indexName Search
search
let ([Hit a]
hits', Maybe ScrollId
josh) = case ParsedEsResponse (SearchResult a)
initialSearchResult of
Right SearchResult {Bool
Int
Maybe Text
Maybe AggregationResults
Maybe NamedSuggestionResponse
Maybe ScrollId
ShardResult
SearchHits a
took :: Int
timedOut :: Bool
shards :: ShardResult
searchHits :: SearchHits a
aggregations :: Maybe AggregationResults
scrollId :: Maybe ScrollId
suggest :: Maybe NamedSuggestionResponse
pitId :: Maybe Text
pitId :: forall a. SearchResult a -> Maybe Text
suggest :: forall a. SearchResult a -> Maybe NamedSuggestionResponse
scrollId :: forall a. SearchResult a -> Maybe ScrollId
aggregations :: forall a. SearchResult a -> Maybe AggregationResults
searchHits :: forall a. SearchResult a -> SearchHits a
shards :: forall a. SearchResult a -> ShardResult
timedOut :: forall a. SearchResult a -> Bool
took :: forall a. SearchResult a -> Int
..} -> (SearchHits a -> [Hit a]
forall a. SearchHits a -> [Hit a]
hits SearchHits a
searchHits, Maybe ScrollId
scrollId)
Left EsError
_ -> ([], Maybe ScrollId
forall a. Maybe a
Nothing)
([Hit a]
totalHits, Maybe ScrollId
_) <- [Hit a] -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
scanAccumulator [] ([Hit a]
hits', Maybe ScrollId
josh)
[Hit a] -> m [Hit a]
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return [Hit a]
totalHits
where
scanAccumulator :: [Hit a] -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
scanAccumulator :: [Hit a] -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
scanAccumulator [Hit a]
oldHits ([Hit a]
newHits, Maybe ScrollId
Nothing) = ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ([Hit a]
oldHits [Hit a] -> [Hit a] -> [Hit a]
forall a. [a] -> [a] -> [a]
++ [Hit a]
newHits, Maybe ScrollId
forall a. Maybe a
Nothing)
scanAccumulator [Hit a]
oldHits ([], Maybe ScrollId
_) = ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ([Hit a]
oldHits, Maybe ScrollId
forall a. Maybe a
Nothing)
scanAccumulator [Hit a]
oldHits ([Hit a]
newHits, Maybe ScrollId
msid) = do
([Hit a]
newHits', Maybe ScrollId
msid') <- Maybe ScrollId -> m ([Hit a], Maybe ScrollId)
scroll' Maybe ScrollId
msid
[Hit a] -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
scanAccumulator ([Hit a]
oldHits [Hit a] -> [Hit a] -> [Hit a]
forall a. [a] -> [a] -> [a]
++ [Hit a]
newHits) ([Hit a]
newHits', Maybe ScrollId
msid')
scroll' :: Maybe ScrollId -> m ([Hit a], Maybe ScrollId)
scroll' :: Maybe ScrollId -> m ([Hit a], Maybe ScrollId)
scroll' Maybe ScrollId
Nothing = ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ([], Maybe ScrollId
forall a. Maybe a
Nothing)
scroll' (Just ScrollId
sid) = do
ParsedEsResponse (SearchResult a)
res <- BHRequest StatusDependant (SearchResult a)
-> m (ParsedEsResponse (SearchResult a))
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m (ParsedEsResponse a)
tryPerformBHRequest (BHRequest StatusDependant (SearchResult a)
-> m (ParsedEsResponse (SearchResult a)))
-> BHRequest StatusDependant (SearchResult a)
-> m (ParsedEsResponse (SearchResult a))
forall a b. (a -> b) -> a -> b
$ ScrollId
-> NominalDiffTime -> BHRequest StatusDependant (SearchResult a)
forall a.
FromJSON a =>
ScrollId
-> NominalDiffTime -> BHRequest StatusDependant (SearchResult a)
Requests.advanceScroll ScrollId
sid NominalDiffTime
60
case ParsedEsResponse (SearchResult a)
res of
Right SearchResult {Bool
Int
Maybe Text
Maybe AggregationResults
Maybe NamedSuggestionResponse
Maybe ScrollId
ShardResult
SearchHits a
pitId :: forall a. SearchResult a -> Maybe Text
suggest :: forall a. SearchResult a -> Maybe NamedSuggestionResponse
scrollId :: forall a. SearchResult a -> Maybe ScrollId
aggregations :: forall a. SearchResult a -> Maybe AggregationResults
searchHits :: forall a. SearchResult a -> SearchHits a
shards :: forall a. SearchResult a -> ShardResult
timedOut :: forall a. SearchResult a -> Bool
took :: forall a. SearchResult a -> Int
took :: Int
timedOut :: Bool
shards :: ShardResult
searchHits :: SearchHits a
aggregations :: Maybe AggregationResults
scrollId :: Maybe ScrollId
suggest :: Maybe NamedSuggestionResponse
pitId :: Maybe Text
..} -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return (SearchHits a -> [Hit a]
forall a. SearchHits a -> [Hit a]
hits SearchHits a
searchHits, Maybe ScrollId
scrollId)
Left EsError
_ -> ([Hit a], Maybe ScrollId) -> m ([Hit a], Maybe ScrollId)
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return ([], Maybe ScrollId
forall a. Maybe a
Nothing)
basicAuthHook :: (Monad m) => EsUsername -> EsPassword -> Request -> m Request
basicAuthHook :: forall (m :: * -> *).
Monad m =>
EsUsername -> EsPassword -> Request -> m Request
basicAuthHook (EsUsername Text
u) (EsPassword Text
p) = Request -> m Request
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return (Request -> m Request)
-> (Request -> Request) -> Request -> m Request
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString -> Request -> Request
applyBasicAuth ByteString
u' ByteString
p'
where
u' :: ByteString
u' = Text -> ByteString
T.encodeUtf8 Text
u
p' :: ByteString
p' = Text -> ByteString
T.encodeUtf8 Text
p
countByIndex :: (MonadBH m) => IndexName -> CountQuery -> m CountResponse
countByIndex :: forall (m :: * -> *).
MonadBH m =>
IndexName -> CountQuery -> m CountResponse
countByIndex IndexName
indexName CountQuery
q = BHRequest StatusDependant CountResponse -> m CountResponse
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant CountResponse -> m CountResponse)
-> BHRequest StatusDependant CountResponse -> m CountResponse
forall a b. (a -> b) -> a -> b
$ IndexName -> CountQuery -> BHRequest StatusDependant CountResponse
Requests.countByIndex IndexName
indexName CountQuery
q
reindex :: (MonadBH m) => ReindexRequest -> m ReindexResponse
reindex :: forall (m :: * -> *).
MonadBH m =>
ReindexRequest -> m ReindexResponse
reindex = BHRequest StatusDependant ReindexResponse -> m ReindexResponse
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant ReindexResponse -> m ReindexResponse)
-> (ReindexRequest -> BHRequest StatusDependant ReindexResponse)
-> ReindexRequest
-> m ReindexResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ReindexRequest -> BHRequest StatusDependant ReindexResponse
Requests.reindex
reindexAsync :: (MonadBH m) => ReindexRequest -> m TaskNodeId
reindexAsync :: forall (m :: * -> *). MonadBH m => ReindexRequest -> m TaskNodeId
reindexAsync = BHRequest StatusDependant TaskNodeId -> m TaskNodeId
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant TaskNodeId -> m TaskNodeId)
-> (ReindexRequest -> BHRequest StatusDependant TaskNodeId)
-> ReindexRequest
-> m TaskNodeId
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ReindexRequest -> BHRequest StatusDependant TaskNodeId
Requests.reindexAsync
getTask :: (MonadBH m, FromJSON a) => TaskNodeId -> m (TaskResponse a)
getTask :: forall (m :: * -> *) a.
(MonadBH m, FromJSON a) =>
TaskNodeId -> m (TaskResponse a)
getTask = BHRequest StatusDependant (TaskResponse a) -> m (TaskResponse a)
forall (m :: * -> *) contextualized a.
(MonadBH m, MonadThrow m, ParseBHResponse contextualized) =>
BHRequest contextualized a -> m a
performBHRequest (BHRequest StatusDependant (TaskResponse a) -> m (TaskResponse a))
-> (TaskNodeId -> BHRequest StatusDependant (TaskResponse a))
-> TaskNodeId
-> m (TaskResponse a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TaskNodeId -> BHRequest StatusDependant (TaskResponse a)
forall a.
FromJSON a =>
TaskNodeId -> BHRequest StatusDependant (TaskResponse a)
Requests.getTask