def delete(self):
        """
        delete() executes the query by delegating to delete_by_query()
        """

        es = connections.get_connection(self._using)

        return AttrDict(
            es.delete_by_query(
                index=self._index,
                body=self.to_dict(),
                **self._params
            )
        )