While I think it makes sense for ES and the elasticsearch-py library ask user to do so, elasticsearch-dsl is not the case. This library is aimed to avoid writing raw query, and it should be able to infer that if the fields is nested or not, and generated the path accordingly if necessary.
Say for a sort like this
Won't work because ES will complain
"it is mandatory to set the [nested] context on the nested sort field: [metadata.date].
To fix it, you should use raw query, which means something like this
While I think it makes sense for ES and the elasticsearch-py library ask user to do so, elasticsearch-dsl is not the case. This library is aimed to avoid writing raw query, and it should be able to infer that if the fields is nested or not, and generated the path accordingly if necessary.