it looks like what i had to do to get elasticsearch relevance scoring working properly was to remove the 'text' field from the parent type (ayah), which i assume is because elasticsearch was either intentionally or unintentionally confusing the 'text' field analysis configuration of the child with the parent. both the child (e.g. translation) mappings and parent (i.e. ayah) mappings had a 'text' field, but the parent mapping specifies 'index: not_analyzed' where-as the child mapping specifies 'analyzer: whatever'. so, again, this commit might have fixed the relevance scoring issue, and if so, then the critical changes would have been in two files:
1. ./config/elasticsearch/mappings.yml
2. ./app/models/quran/ayah.rb

so look at those for the diff.