Split up ElasticSearchResults and created BaseSearchResults class
Cleaned up ElasticSearchQuery class
Cleaned up ElasticSearchResults class
Added DBSearchResults class to DB search backend
Refactor of search backends
Renamed 'query_set' to 'queryset'
Always set search config in get_search_fields. Added 'partial_match' to title of the SearchTest model
Added 'subtitle' field to SearchTestChild model
Only add fields to query if the query has a query string
Fixed issue causing partial_match fields of subclasses to not work correctly
When we search, by default we search on a hidden field called '_all'. This field is made up of all fields in your document concatenated together.
The issue with this is you can only have one analyser across this entire field and you cant set partial_match for some fields and not others.
This commit adds a new hidden field called 'partials'. It works in a similar way to '_all' but it has the edgengram analyser enabled. We concatenate all the fields which want partial matching and throw them into this field. When a search is run, we run the search on both _all and partials making partials work correctly