diff --git a/search_api.views.inc b/search_api.views.inc
index cef49e1..78dd552 100644
--- a/search_api.views.inc
+++ b/search_api.views.inc
@@ -243,6 +243,9 @@ function _search_api_views_handler_mapping() {
         ),
       ),
       'integer' => array(
+        'argument' => array(
+          'id' => 'search_api_argument',
+        ),
         'filter' => array(
           'id' => 'search_api_numeric',
         ),
@@ -251,6 +254,9 @@ function _search_api_views_handler_mapping() {
         ),
       ),
       'string' => array(
+        'argument' => array(
+          'id' => 'search_api_argument',
+        ),
         'filter' => array(
           'id' => 'search_api_string',
         ),
@@ -275,6 +281,9 @@ function _search_api_views_handler_mapping() {
         ),
       ),
       'entity:taxonomy_term' => array(
+        'argument' => array(
+          'id' => 'search_api_taxonomy_term',
+        ),
         'filter' => array(
           'id' => 'search_api_term',
         ),
diff --git a/src/Plugin/views/argument/SearchApiStandard.php b/src/Plugin/views/argument/SearchApiStandard.php
index ac220ed..8cfc74a 100644
--- a/src/Plugin/views/argument/SearchApiStandard.php
+++ b/src/Plugin/views/argument/SearchApiStandard.php
@@ -78,7 +78,7 @@ class SearchApiStandard extends ArgumentPluginBase {
       '#title' => $this->t('Allow multiple values'),
       '#description' => $this->t('If selected, users can enter multiple values in the form of 1+2+3 (for OR) or 1,2,3 (for AND).'),
       '#default_value' => !empty($this->options['break_phrase']),
-      '#fieldset' => 'more',
+      '#group' => 'options][more',
     );
 
     $form['not'] = array(
@@ -86,7 +86,7 @@ class SearchApiStandard extends ArgumentPluginBase {
       '#title' => $this->t('Exclude'),
       '#description' => $this->t('If selected, the values entered for the filter will be excluded rather than limiting the view to those values.'),
       '#default_value' => !empty($this->options['not']),
-      '#fieldset' => 'more',
+      '#group' => 'options][more',
     );
   }
 
diff --git a/src/Plugin/views/argument/SearchApiTaxonomyTerm.php b/src/Plugin/views/argument/SearchApiTaxonomyTerm.php
index e61661b..df69d53 100644
--- a/src/Plugin/views/argument/SearchApiTaxonomyTerm.php
+++ b/src/Plugin/views/argument/SearchApiTaxonomyTerm.php
@@ -40,37 +40,30 @@ class SearchApiTaxonomyTerm extends SearchApiStandard {
       $inner_conjunction = 'AND';
     }
 
-    if (!empty($this->value)) {
-      $terms = Term::load($this->value);
-
-      if (!empty($terms)) {
-        $conditions = $this->query->createConditionGroup($outer_conjunction);
-        $vocabulary_fields = $this->definition['vocabulary_fields'];
-        $vocabulary_fields += array('' => array());
-        foreach ($terms as $term) {
-          $inner_conditions = $conditions;
-          if ($outer_conjunction != $inner_conjunction) {
-            $inner_conditions = $this->query->createConditionGroup($inner_conjunction);
-          }
-          // Set filters for all term reference fields which don't specify a
-          // vocabulary, as well as for all fields specifying the term's
-          // vocabulary.
-          if (!empty($vocabulary_fields[$term->vocabulary_id])) {
-            foreach ($vocabulary_fields[$term->vocabulary_id] as $field) {
-              $inner_conditions->addCondition($field, $term->tid, $condition_operator);
-            }
-          }
-          foreach ($vocabulary_fields[''] as $field) {
-            $inner_conditions->addCondition($field, $term->tid, $condition_operator);
-          }
-          if ($outer_conjunction != $inner_conjunction) {
-            $conditions->addConditionGroup($inner_conditions);
-          }
-        }
+    if (empty($this->value)) {
+      return;
+    }
+    if (!is_array($this->value)) {
+      $this->value = array($this->value);
+    }
+    $terms = Term::loadMultiple($this->value);
 
-        $this->query->addConditionGroup($conditions);
+    if (empty($terms)) {
+      return;
+    }
+    $conditions = $this->query->createConditionGroup($outer_conjunction);
+    foreach ($terms as $term) {
+      $inner_conditions = $conditions;
+      if ($outer_conjunction != $inner_conjunction) {
+        $inner_conditions = $this->query->createConditionGroup($inner_conjunction);
+      }
+      $inner_conditions->addCondition($this->field, $term->id(), $condition_operator);
+      if ($outer_conjunction != $inner_conjunction) {
+        $conditions->addConditionGroup($inner_conditions);
       }
     }
+
+    $this->query->addConditionGroup($conditions);
   }
 
   /**
