Q:

How can I always force most recent articles with the exact phrase using Drupal Apache Solr?

I want to find exact phrase results looking anywhere in the body or the title. It has to be ordered from the most recent to oldest. The only way I get pretty close results is by forcing quotes around all my searches via this hook:
/**
 * Implements hook_apachesolr_query().
 */
function hcp_node_apachesolr_query_prepare($query) {  
  // Adding quotes to all searches so it gives an accurate search result
  $search_result = $query->getParam('q');
  $has_quotes = preg_match('/^(["\']).*\1$/m', $search_result);
  if(!$has_quotes) {
    $query->replaceParam('q', '"' . $search_result . '"');
  }
}

My Bias Settings:

Results Biasing: All are set to ignore but More recently created is set to 10
Type Biasing: All set to ignore
Field Biasing: All set to omit.

This seems to work well with two or three word phrase but if for example I search a whole title of an article it can't find anything.
I tried setting the Title and The full, rendered content field bias to the same thing (21). Again it would show good results but it wouldn't be in most recent order(I think this was pretty close but just wish it displayed most recent first).
I also tried updating my schema.xml: updated WhitespaceTokenizerFactory to KeywordTokenizerFactory but I didn't get good results. 

A:

This is how I fixed this:

Installed Apache Solr Term Proximity Module Updated field bias to .3
for both Title and the full rendered content (the rest are set to
omit) Set the term proximity to .1 
Set the Most recent created to 10

FYI I tried different settings and this seems like the best.

