I concede this is not what you asked, but can you describe, in normal English words, what this query (the one that is profiled in attached files profiled) actually does?
I ask because:
```
+(ConstantScore(id:f4c9c13b-9d9a-4ec1-8074-bb26cacbcc38))^0.0
+(meta.locale:ar-LB
(+meta.locale:ar-MA -translations:(ar-LB))
(+meta.locale:ar-MEA -translations:(ar-LB ar-MA))
(+meta.locale:ar-OM -translations:(ar-LB ar-MA ar-MEA))
(+meta.locale:ar-QA -translations:(ar-LB ar-MA ar-MEA ar-OM))
(+meta.locale:ar-SA -translations:(ar-LB ar-MA ar-MEA ar-OM ar-QA))
(+meta.locale:ar-TN -translations:(ar-LB ar-MA ar-MEA ar-OM ar-QA ar-SA))
(+meta.locale:az-AZ -translations:(ar-LB ar-MA ar-MEA ar-OM ar-QA ar-SA ar-TN))
...
ever expanding lists, +1 each time, of +meta.locale and -translations, lists expanding in alphabetical order
...
+(meta.published:T meta.published:F)"
It looks a weird construction to me, and sort of thing that could possibly be done with simpler query / an aggregation.
But, FWIW, this seems a bug to me, as the query is simply evaluated significantly differently
$ cat profile-v8.txt | jq -Scr '.profile.shards[].searches[].query[]' | wc
11 24195 384902
$ cat profile-v9.txt | jq -Scr '.profile.shards[].searches[].query[]' | wc
159 25452 1100521
$ sdiff --expand-tabs -w 130 <(jq . profile-v8.txt| gron | egrep -o '.type = .*;$' | sort | uniq -c | sort -k4) <(jq . profile-v9.txt| gron | egrep -o '.type = .*;$' | sort | uniq -c | sort -k4)
122 .type = "BooleanQuery"; | 262 .type = "BooleanQuery";
1 .type = "BoostQuery"; 1 .type = "BoostQuery";
1 .type = "fetch"; 1 .type = "fetch";
1 .type = "FetchDocValuesPhase"; 1 .type = "FetchDocValuesPhase";
1 .type = "FetchFieldsPhase"; 1 .type = "FetchFieldsPhase";
109 .type = "MultiTermQueryConstantScoreBlendedWrapper"; 109 .type = "MultiTermQueryConstantScoreBlendedWrapper";
1 .type = "StoredFieldsPhase"; 1 .type = "StoredFieldsPhase";
214 .type = "TermQuery"; | 1471 .type = "TermQuery";
you will see a whole bunch more BooleanQuery and TermQuery in v9 than in v8.