diff --git a/search_api_fivestar.install b/search_api_fivestar.install
index 2d41cb6..70616b7 100644
--- a/search_api_fivestar.install
+++ b/search_api_fivestar.install
@@ -17,4 +17,5 @@ function search_api_fivestar_install() {
 function search_api_fivestar_uninstall() {
   variable_del('search_api_fivestar_rating_index');
   variable_del('search_api_fivestar_rating_stars');
+  variable_del('search_api_fivestar_rating_tags');
 }
diff --git a/search_api_fivestar.module b/search_api_fivestar.module
index adedb73..24ea257 100644
--- a/search_api_fivestar.module
+++ b/search_api_fivestar.module
@@ -9,37 +9,45 @@
  * Implements hook_entity_property_info_alter().
  */
 function search_api_fivestar_entity_property_info_alter(&$info) {
-  $info['node']['properties']['user_rating'] = array(
-    'type' => 'text',
-    'label' => t('Fivestar - Current user rating'),
-    'sanitized' => TRUE,
-    'getter callback' => 'search_api_fivestar_current_user_rating_getter_callback',
-  );
-
-  $info['node']['properties']['average_rating'] = array(
-    'type' => 'text',
-    'label' => t('Fivestar - Average rating'),
-    'sanitized' => TRUE,
-    'getter callback' => 'search_api_fivestar_average_user_rating_getter_callback',
-  );
-
-  $info['node']['properties']['count_rating'] = array(
-    'type' => 'text',
-    'label' => t('Fivestar - Rating count'),
-    'sanitized' => TRUE,
-    'getter callback' => 'search_api_fivestar_count_rating_getter_callback',
-  );
+  $tags = variable_get('search_api_fivestar_rating_tags', array());
+  foreach ($tags as $tag) {
+    // Replace spaces with underscores in voting_tag.
+    $field_tag = preg_replace('/\s+/', '_', $tag);
+    $info['node']['properties']['user_rating_' . $field_tag] = array(
+      'type' => 'text',
+      'label' => t('Fivestar - Current user rating (' . $tag . ')'),
+      'sanitized' => TRUE,
+      'getter callback' => 'search_api_fivestar_current_user_rating_getter_callback',
+      'voting_tag' => $tag,
+    );
+
+    $info['node']['properties']['average_rating_' . $field_tag] = array(
+      'type' => 'text',
+      'label' => t('Fivestar - Average rating (' . $tag . ')'),
+      'sanitized' => TRUE,
+      'getter callback' => 'search_api_fivestar_average_user_rating_getter_callback',
+      'voting_tag' => $tag,
+    );
+
+    $info['node']['properties']['count_rating_' . $field_tag] = array(
+      'type' => 'text',
+      'label' => t('Fivestar - Rating count (' . $tag . ')'),
+      'sanitized' => TRUE,
+      'getter callback' => 'search_api_fivestar_count_rating_getter_callback',
+      'voting_tag' => $tag,
+    );
+  }
 }
 
 /**
  * Getter callback for current user rating.
  */
-function search_api_fivestar_current_user_rating_getter_callback($node, $entity) {
+function search_api_fivestar_current_user_rating_getter_callback($item, $options, $name, $type, $info) {
   $divisor = (100 / variable_get('search_api_fivestar_rating_stars'));
-  $node_rating = fivestar_get_votes('node', $node->nid);
+  $rating = fivestar_get_votes($type, $item->nid, $info['voting_tag']);
   $actual = "0";
-  if(isset($node_rating['user']['value']) && $node_rating['user']['value'] > 0) {
-    $user = $node_rating['user']['value'];
+  if(isset($rating['user']['value']) && $rating['user']['value'] > 0) {
+    $user = $rating['user']['value'];
     $actual = $user / $divisor;
   }
 
@@ -49,12 +57,12 @@ function search_api_fivestar_current_user_rating_getter_callback($node, $entity)
 /**
  * Getter callback for average rating.
  */
-function search_api_fivestar_average_user_rating_getter_callback($node) {
+function search_api_fivestar_average_user_rating_getter_callback($item, $options, $name, $type, $info) {
   $divisor = (100 / variable_get('search_api_fivestar_rating_stars'));
   $actual = 0;
-  $node_rating = fivestar_get_votes('node', $node->nid);
-  if(!empty($node_rating['average']['value']) && isset($node_rating['average']['value'])) {
-    $average = $node_rating['average']['value'];
+  $rating = fivestar_get_votes($type, $item->nid, $info['voting_tag']);
+  if(!empty($rating['average']['value']) && isset($rating['average']['value'])) {
+    $average = $rating['average']['value'];
     $actual = $average / $divisor;
   }
 
@@ -64,11 +72,11 @@ function search_api_fivestar_average_user_rating_getter_callback($node) {
 /**
  * Getter callback for average rating.
  */
-function search_api_fivestar_count_rating_getter_callback($node) {
-  $node_rating = fivestar_get_votes('node', $node->nid);
+function search_api_fivestar_count_rating_getter_callback($item, $options, $name, $type, $info) {
+  $rating = fivestar_get_votes($type, $item->nid, $info['voting_tag']);
   $actual = 0;
-  if(!empty($node_rating['count']['value']) && isset($node_rating['count']['value'])) {
-    $actual = $node_rating['count']['value'];
+  if(!empty($rating['count']['value']) && isset($rating['count']['value'])) {
+    $actual = $rating['count']['value'];
   }
 
   return $actual;
@@ -88,7 +96,7 @@ function search_api_fivestar_menu() {
     'access arguments'  => array('administer modules'),
     'type'              => MENU_NORMAL_ITEM,
   );
-  
+
   return $items;
 }
 
@@ -128,6 +136,40 @@ function search_api_fivestar_admin_form($form, &$form_state) {
     '#required'         => TRUE,
   );
 
+  $fivestar_tags = variable_get('fivestar_tags', 'vote');
+  $fivestar_tags = preg_replace('/\s*,\s*/', ',', $fivestar_tags);
+  if (isset($fivestar_tags)) {
+    $tags = explode(',', $fivestar_tags);
+    $options = array();
+    foreach ($tags as $tag) {
+      $options[$tag] = $tag;
+    }
+
+    $search_api_fivestar_tags = variable_get('search_api_fivestar_rating_tags', array());
+    $default_value = array();
+    foreach ($search_api_fivestar_tags as $key => $value) {
+      // Check if fivestar tag still exists.
+      if (array_key_exists($key, $options)) {
+        $default_value[] = $value;
+      }
+    }
+
+    $form['search_api_fivestar_rating_tags'] = array(
+      '#type'             => 'select',
+      '#title'            => t('Voting Tags'),
+      '#multiple'         => TRUE,
+      '#options'          => $options,
+      '#default_value'    => $default_value,
+      '#description'      => t('Choose the voting tags that will be used for indexing.'),
+    );
+  }
+  else {
+    $form['search_api_fivestar_rating_tags'] = array(
+      '#type' => 'markup',
+      '#value' => t('No voting tags.'),
+    );
+  }
+
   // Submit button.
   $form['submit']   = array(
     '#type'         => 'submit',
@@ -144,6 +186,12 @@ function search_api_fivestar_admin_form_submit($form, &$form_state) {
   // Save vars.
   variable_set('search_api_fivestar_rating_index', $form_state['values']['search_api_fivestar_rating_index']);
   variable_set('search_api_fivestar_rating_stars', $form_state['values']['search_api_fivestar_rating_stars']);
+  if (is_array($form_state['values']['search_api_fivestar_rating_tags'])) {
+    variable_set('search_api_fivestar_rating_tags', $form_state['values']['search_api_fivestar_rating_tags']);
+  }
+  else {
+    variable_set('search_api_fivestar_rating_tags', array());
+  }
   drupal_flush_all_caches();
   // Inform save was succesful.
   drupal_set_message(t('The settings have been saved'));
