@@ -68,6 +68,7 @@ import Data.ByteString.Lazy.Builder
6868import qualified Data.ByteString.Lazy.Char8 as L
6969import Data.Default.Class
7070import Data.Ix
71+import qualified Data.List as LS (filter)
7172import Data.Maybe (fromMaybe)
7273import Data.Monoid
7374import Data.Text (Text)
@@ -501,12 +502,14 @@ getDocument (IndexName indexName)
501502--
502503-- >>> exists <- runBH' $ documentExists testIndex testMapping (DocId "1")
503504documentExists :: MonadBH m => IndexName -> MappingName
504− -> DocId -> m Bool
505−documentExists (IndexName indexName)
506− (MappingName mappingName) (DocId docId) = do
505+ -> Maybe DocumentParent -> DocId -> m Bool
506+documentExists (IndexName indexName) (MappingName mappingName)
507+ parent (DocId docId) = do
507508 (_, exists) <- existentialQuery =<< url
508509 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)]
510513
511514dispatchSearch :: MonadBH m => Text -> Search -> m Reply
512515dispatchSearch url search = post url' (Just (encode search))