rapidftr/RapidFTR — pull request #667 by rdsubhas (2014-07-21 12:22:57+00:00)
Title: Refactor Search

[x] Don't directly access Solr (or create Solr queries) in code, always use Sunspot API
[x] All Solr search functionality moved to `ChildSearch`
[x] All controller search handling moved to `Forms::SearchForm`
[x] Make "Export All" feature export all records instead of just the current page
[x] Using Sunspot Rake tasks instead of custom rake tasks
[x] Make Solr use Multi-core setup. Now every environment (dev/test/cuke/prod) uses its own Solr core (not separate solr servers), so no sharing of data, and you can run tests without having to reindex development
[x] Removed unnecessary jasmine tests (there were just 2 of them and weren't adding any value)
[x] Removed hard-coded access to all search functionalities (in controllers/models) and removed many unnecessary abstractions (like `Search`, `SearchService`, `SearchCriteria`, `SearchFilter`, etc)

Together, this makes it easier to port to ElasticSearch or any other search engine, since the code that touches Solr is inside only one class `ChildSearch`.