diff --git a/handler_filter_fulltext.inc b/handler_filter_fulltext.inc
index 5522621..84754e4 100644
--- a/handler_filter_fulltext.inc
+++ b/handler_filter_fulltext.inc
@@ -9,6 +9,12 @@
  * Views filter handler class for handling fulltext fields.
  */
 class SearchApiViewsHandlerFilterFulltext extends SearchApiViewsHandlerFilterText {
+
+  function init(&$view, &$options) {
+    parent::init($view, $options);
+    $fields = $this->getFulltextFields();
+    $this->use_fields = $fields;
+  }
 
   /**
    * Displays the operator form, adding a description.
@@ -43,6 +49,46 @@ class SearchApiViewsHandlerFilterFulltext extends SearchApiViewsHandlerFilterTex
 
     return $options;
   }
+  function accept_exposed_input($input) {
+    $rc = parent::accept_exposed_input($input);
+    if (!empty($this->options['expose']['use_fields']) && isset($input['use_fields'])) {
+      $this->use_fields = $input['use_fields'];
+    }
+    return $rc;
+  }
+
+   /**
+   * Render our chunk of the exposed filter form when selecting
+   *
+   * You can override this if it doesn't do what you expect.
+   */
+  function exposed_form(&$form, &$form_state) {
+    parent::exposed_form($form, $form_state);
+     if (!empty($this->options['expose']['use_fields'])) {
+      $this->fields_form($form, $form_state);
+     }
+  }
+
+  function fields_form(&$form, &$form_state) {
+    $fields = $this->getFulltextFields();
+    if (!empty($fields)) {
+      $form['use_fields'] = array(
+        '#type' => 'select',
+        '#title' => t('Searched fields'),
+        '#description' => t('Select the fields that will be searched. If no fields are selected, all available fulltext fields will be searched.'),
+        '#options' => $fields,
+        '#size' => min(4, count($fields)),
+        '#multiple' => TRUE,
+        '#default_value' => $this->use_fields,
+      );
+    }
+    else {
+      $form['use_fields'] = array(
+        '#type' => 'value',
+        '#value' => array(),
+      );
+    }
+  }
 
   /**
    * Extend the options form a bit.
@@ -169,6 +215,10 @@ class SearchApiViewsHandlerFilterFulltext extends SearchApiViewsHandlerFilterTex
       $this->query->setOption('conjunction', $this->operator);
     }
 
+    if (!empty($this->options['expose']['use_fields'])) {
+      $fields = array_keys($this->use_fields);
+    }
+
     $this->query->fields($fields);
     $old = $this->query->getOriginalKeys();
     $this->query->keys($this->value);
diff --git a/views_handler_filter.inc b/views_handler_filter.inc
index 8583605..016a248 100644
--- a/views_handler_filter.inc
+++ b/views_handler_filter.inc
@@ -120,6 +120,7 @@ class views_handler_filter extends views_handler {
         'label' => array('default' => '', 'translatable' => TRUE),
         'description' => array('default' => '', 'translatable' => TRUE),
         'use_operator' => array('default' => FALSE, 'bool' => TRUE),
+        'use_fields' => array('default' => FALSE, 'bool' => TRUE),
         'operator_label' => array('default' => '', 'translatable' => TRUE),
         'operator' => array('default' => ''),
         'identifier' => array('default' => ''),
@@ -515,6 +516,12 @@ class views_handler_filter extends views_handler {
         '#description' => t('Allow the user to choose the operator.'),
         '#default_value' => !empty($this->options['expose']['use_operator']),
       );
+      $form['expose']['use_fields'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Expose the Searched fields filter'),
+        '#description' => t('Allow the user to choose the fields to search.'),
+        '#default_value' => !empty($this->options['expose']['use_fields']),
+        );
       $form['expose']['operator_label'] = array(
         '#type' => 'textfield',
         '#default_value' => $this->options['expose']['operator_label'],
@@ -681,6 +688,7 @@ class views_handler_filter extends views_handler {
   function expose_options() {
     $this->options['expose'] = array(
       'use_operator' => FALSE,
+      'use_fields' => FALSE,
       'operator' => $this->options['id'] . '_op',
       'identifier' => $this->options['id'],
       'label' => $this->definition['title'],

