@@ -68,6 +68,7 @@ import Data.ByteString.Lazy.Builder
68import qualified Data.ByteString.Lazy.Char8 as L
68import qualified Data.ByteString.Lazy.Char8 as L
69import Data.Default.Class
69import Data.Default.Class
70import Data.Ix
70import Data.Ix
71+import qualified Data.List as LS (filter)
71import Data.Maybe (fromMaybe)
72import Data.Maybe (fromMaybe)
72import Data.Monoid
73import Data.Monoid
73import Data.Text (Text)
74import Data.Text (Text)
@@ -501,12 +502,14 @@ getDocument (IndexName indexName)
502-- >>> exists <- runBH' $ documentExists testIndex testMapping (DocId "1")
503-- >>> exists <- runBH' $ documentExists testIndex testMapping (DocId "1")
503documentExists :: MonadBH m => IndexName -> MappingName
504documentExists :: MonadBH m => IndexName -> MappingName
504− -> DocId -> m Bool
505+ -> Maybe DocumentParent -> DocId -> m Bool
505−documentExists (IndexName indexName)
506+documentExists (IndexName indexName) (MappingName mappingName)
506− (MappingName mappingName) (DocId docId) = do
507+ parent (DocId docId) = do
507 (_, exists) <- existentialQuery =<< url
508 (_, exists) <- existentialQuery =<< url
508 return exists
509 return exists
509− where url = joinPath [indexName, mappingName, docId]
510+ where url = addQuery params <$> joinPath [indexName, mappingName, docId]
511+ parentParam = fmap (\(DocumentParent (DocId p)) -> p) parent
512+ params = LS.filter (\(_, v) -> v /= Nothing) [("parent", parentParam)]
511dispatchSearch :: MonadBH m => Text -> Search -> m Reply
514dispatchSearch :: MonadBH m => Text -> Search -> m Reply
512dispatchSearch url search = post url' (Just (encode search))
515dispatchSearch url search = post url' (Just (encode search))