diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 2dd1b57..68598f9 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1629,10 +1629,17 @@ function node_search_execute($keys = NULL, $conditions = NULL) {
     $node = node_load($item->sid);
     $build = node_view($node, 'search_result', $item->langcode);
     unset($build['#theme']);
+
+    // Check whether custom display settings have been configured.
+    $view_mode_settings = field_view_mode_settings('node', $node->type);
+    $excerpt = empty($view_mode_settings['search_result']['custom_settings']);
+
     $node->rendered = drupal_render($build);
 
     // Fetch comments for snippet.
-    $node->rendered .= ' ' . module_invoke('comment', 'node_update_index', $node, $item->langcode);
+    if ($excerpt) {
+      $node->rendered .= ' ' . module_invoke('comment', 'node_update_index', $node, $item->langcode);
+    }
 
     $extra = module_invoke_all('node_search_result', $node, $item->langcode);
 
@@ -1647,7 +1654,7 @@ function node_search_execute($keys = NULL, $conditions = NULL) {
       'node' => $node,
       'extra' => $extra,
       'score' => $item->calculated_score,
-      'snippet' => search_excerpt($keys, $node->rendered, $item->langcode),
+      'snippet' => $excerpt ? search_excerpt($keys, $node->rendered, $item->langcode) : $node->rendered,
       'langcode' => $node->langcode,
     );
   }
