Defaults to 0.5.
        Returns:
            List of Documents selected by maximal marginal relevance and distance for
            each.
        """
        from qdrant_client import grpc  # noqa
        from qdrant_client.conversions.conversion import GrpcToRest
        response = await self.client.async_grpc_points.Search(
            grpc.SearchPoints(
                collection_name=self.collection_name,
                vector_name=self.vector_name,
                vector=embedding,
                with_payload=grpc.WithPayloadSelector(enable=True),
                with_vectors=grpc.WithVectorsSelector(enable=True),
                limit=fetch_k,
            )
        )
        results = [
            GrpcToRest.convert_vectors(result.vectors) for result in response.result
        ]
        embeddings: List[List[float]] = [
            result.get(self.vector_name)  # type: ignore
            if isinstance(result, dict)
            else result
            for result in results
        ]
        mmr_selected: List[int] = maximal_marginal_relevance(
            np.array(embedding),
            embeddings,
            k=k,
            lambda_mult=lambda_mult,
        )
        return [
            (
                self._document_from_scored_point_grpc(
                    response.result[i],
                    self.content_payload_key,
                    self.metadata_payload_key,
                ),
                response.result[i].score,
            )
            for i in mmr_selected
        ]
[docs]    def delete(self, ids: Optional[List[str]] = None, **kwargs: Any) -> Optional[bool]:
        """Delete by vector ID or other criteria.
        Args:
            ids: List of ids to delete.
            **kwargs: Other keyword arguments that subclasses might use.
        Returns:
            Optional[bool]: True if deletion is successful,