Customizing search results page to use template.php and search-results.tpl.php
To change the snippet (that jumbled mess you mention), use theme_preprocess_search_result() (you want to override each search result, not the page of search results). Explicitly set $variables['snippet'] to the value you want to display.

A common tactic is to use the node's teaser view. 

function mytheme_preprocess_search_result($variables) {
  $teaser = node_view($variables['result']['node'],'teaser');
  $variables['snippet'] = drupal_render($teaser);
}


You can manage the node's teaser in Admin -> Structure -> Content Types -> Your content type -> Manage Display -> Teaser as always. 

There's a no-code approach also. While you're managing displays, check out the expandable fieldset for 'Custom display settings' and check the one for 'Search results highlighting input'. Here you can control the fields you want to display, but Drupal will still show only a snippet, and it will highlight where in the node your search terms show up. Ditch the preprocess function in this case.

Here is one more example with the theme_preprocess_search_result() function that shows the first 160 characters of the body field: https://alastaira.wordpress.com/2011/01/07/customising-the-search-results-snippet-in-drupal-7/ (note that this one does not check for language).