As per documentation [1] qs is just a django queryset and it is called with order_by to keep the same order as the opensearch result, however default value of keep_order is set to False [2].
This is differs from upstream project and differs from documentation.
Could you please return keep_order default True?
[1] https://django-opensearch-dsl.readthedocs.io/en/latest/getting_started/#search
[2] https://github.com/Codoc-os/django-opensearch-dsl/blob/master/django_opensearch_dsl/search.py#L20