async def async_simulate(
        self,
        text: str,
        using: AsyncUsingType = "default",
        explain: bool = False,
        attributes: Optional[Dict[str, Any]] = None,
    ) -> AttrDict[Any]:
        """
        Use the Analyze API of elasticsearch to test the outcome of this analyzer.

        :arg text: Text to be analyzed
        :arg using: connection alias to use, defaults to ``'default'``
        :arg explain: will output all token attributes for each token. You can
            filter token attributes you want to output by setting ``attributes``
            option.
        :arg attributes: if ``explain`` is specified, filter the token
            attributes to return.
        """
        es = async_connections.get_connection(using)
        return AttrDict(
            cast(
                Dict[str, Any],
                await es.indices.analyze(
                    body=self._get_body(text, explain, attributes)
                ),
            )
        )

        Use the Analyze API of elasticsearch to test the outcome of this analyzer.

        :arg text: Text to be analyzed
        :arg using: connection alias to use, defaults to ``'default'``
        :arg explain: will output all token attributes for each token. You can
            filter token attributes you want to output by setting ``attributes``
            option.
        :arg attributes: if ``explain`` is specified, filter the token
            attributes to return.
        
elasticsearch/dsl/analysis.py