Per la tua query, vuoi un indice su xml_files("purchaseNumber", "docPublishDate" desc) :
create index idx_xml_files_2 on xml_files("purchaseNumber", "docPublishDate" desc)
Postgres dovrebbe utilizzare questo indice per order by , che facilita la distinct on .
Sebbene non influirà sulle prestazioni, suggerirei anche di semplificare il where clausola a:
where parsing_status IS NULL