The new mediasearch prototype on commons uses a new api call to combine various calls to the search api in order to make use of structured and category data when searching
If we can use elasticsearch directly instead of constructing a bunch of separate queries to the search api we'll get better performance, get all of the syntax support already in CirrusSearch, and be able to tune our search results better
This basically involves subclassing `CirrusSearch`'s `FullTextQueryBuilder`, and then using the `registerSearchProfiles` hook to load a search profile that'll use the new subclass to use for the File namespace. Ideally there would be some other trigger to ensure that the new search profile will only be used (at least at first) on the mediasearch page rather than for all searching
There may need to be an initial query to wikidata to get entity ids for search terms in order to search images' structured data
Acceptance criteria:
[] when (and only when) searching via mediasearch, use a single elasticsearch query rather than multiple search api calls
[] mediasearch performance is better
[] mediasearch performance is tunable
[] search syntax is supported (including keywords/filters (ie gold intitle:gym), quotes, and booleans)
-- note: right now, using this search syntax will revert search results to those seen on special:search