I presume when you run this free-text query and assessing the "majority vote" that you are analysing some existing structured classification field eg "tag" or "category" to assess the most relevant tag.
You can use aggregations to do this but I have 2 tips:
- use the 'sampler' aggregation to consider only the top N results from the MLT query
- use the 'significant_terms' aggregation instead of the 'terms' aggregation to get the top N tags. Popular tags like "software" are perhaps less interesting than "search engine". Significant terms sniffs these more important classifications out.