diff --git a/src/typesense/document.py b/src/typesense/document.py index 644602b..fd5de16 100644 --- a/src/typesense/document.py +++ b/src/typesense/document.py @@ -26,6 +26,7 @@ DeleteSingleDocumentParameters, DirtyValuesParameters, DocumentSchema, + RetrieveParameters, ) if sys.version_info >= (3, 11): @@ -67,7 +68,10 @@ def __init__( self.collection_name = collection_name self.document_id = document_id - def retrieve(self) -> TDoc: + def retrieve( + self, + retrieve_parameters: typing.Union[RetrieveParameters, None] = None, + ) -> TDoc: """ Retrieve this specific document. @@ -78,6 +82,7 @@ def retrieve(self) -> TDoc: endpoint=self._endpoint_path, entity_type=typing.Dict[str, str], as_json=True, + params=retrieve_parameters, ) return response diff --git a/src/typesense/types/document.py b/src/typesense/types/document.py index b868d12..416ca7e 100644 --- a/src/typesense/types/document.py +++ b/src/typesense/types/document.py @@ -889,3 +889,16 @@ class DeleteResponse(typing.TypedDict): """ num_deleted: int + + +class RetrieveParameters(typing.TypedDict): + """ + Parameters for retrieving documents. + + Attributes: + include_fields (str): Fields to include in the retrieved documents. + exclude_fields (str): Fields to exclude from the retrieved documents. + """ + + include_fields: typing.NotRequired[typing.Union[str, typing.List[str]]] + exclude_fields: typing.NotRequired[typing.Union[str, typing.List[str]]]