diff --git a/src/Plugin/Block/CustomSolrSearchResultBlock.php b/src/Plugin/Block/CustomSolrSearchResultBlock.php
index 902ed25..29f90e9 100644
--- a/src/Plugin/Block/CustomSolrSearchResultBlock.php
+++ b/src/Plugin/Block/CustomSolrSearchResultBlock.php
@@ -8,6 +8,7 @@ use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\custom_solr_search\SolrServerDetails;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\custom_solr_search\Search;
+use Drupal\custom_solr_search\SearchSolrAll;
 
 /**
  * Provides a 'Result' Block
@@ -31,6 +32,13 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
    * @var \Drupal\custom_solr_search\SolrServerDetails
    */
   protected $serverDetails;
+  
+  /**
+   * \Drupal\custom_solr_search\Search definition.
+   *
+   * @var \Drupal\custom_solr_search\SearchSolrAll
+   */
+  protected $searchall;
 
   /**
    * Construct.
@@ -42,20 +50,24 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
    * @param string $plugin_definition
    *   The plugin implementation definition.
    * @param \Drupal\custom_solr_search\Search $search
-   *   Custom Solr search service
+   *   Custom Solr search service.
    * @param \Drupal\custom_solr_search\SolrServerDetails $serverDetails
-   *   Custom Solr server details service
+   *   Custom Solr server details service.
+   * @param \Drupal\custom_solr_search\SearchSolrAll $searchall
+   *   Custom Solr search service for all core.
    */
   public function __construct(
     array $configuration,
     $plugin_id,
     $plugin_definition,
     Search $search,
-    SolrServerDetails $serverDetails
+    SolrServerDetails $serverDetails,
+    SearchSolrAll $searchall
   ) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
     $this->search = $search;
     $this->serverDetails = $serverDetails;
+    $this->searchall = $searchall;
   }
   /**
    * {@inheritdoc}
@@ -64,16 +76,39 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
     $form = parent::blockForm($form, $form_state);
 
     // Get the Core Details.
-    $servers = $this->serverDetails->getServers();
+    $servers = array('all' => 'ALL');
+    $servers += $this->serverDetails->getServers();
 
     // Get the configurations.
     $config = $this->getConfiguration();
     
+    $form['custom_solr_result_selection'] = [
+      '#type' => 'radios',
+      '#title' => $this->t('Select the Solr Result Option'),
+      '#default_value' => isset($config['custom_solr_result_selection']) ? $config['custom_solr_result_selection'] : '',
+      '#options' => array( 'core' => $this->t('Core'), 'type' => $this->t('Type')),
+    ];
     $form['custom_block_servers'] = [
       '#type' => 'select',
       '#title' => $this->t('Select Server Name'),
       '#options' => $servers,
       '#default_value' => isset($config['custom_block_servers']) ? $config['custom_block_servers'] : '',
+      '#states' => array(
+        'visible' => array(
+          ':input[name="settings[custom_solr_result_selection]"]' => array('value' => 'core'),
+          ),
+        ),
+    ];
+    $form['custom_block_type_filter'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Custom Identifier'),
+      '#description' => $this->t('Add the field identifier in SOLR based on which you want to differentiate the blocks'),
+      '#default_value' => isset($config['custom_block_type_filter']) ? $config['custom_block_type_filter'] : '',
+      '#states' => array(
+        'visible' => array(
+        ':input[name="settings[custom_solr_result_selection]"]' => array('value' => 'type'),
+          ),
+        ),
     ];
 
     return $form;
@@ -84,6 +119,9 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
    */
   public function blockSubmit($form, FormStateInterface $form_state) {
     $this->setConfigurationValue('custom_block_servers', $form_state->getValue('custom_block_servers'));
+    $this->setConfigurationValue('custom_block_type_filter', $form_state->getValue('custom_block_type_filter'));
+    $this->setConfigurationValue('custom_solr_result_selection', $form_state->getValue('custom_solr_result_selection'));
+    
   }
   
   /**
@@ -94,33 +132,43 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
     $args = explode('/', $path);
     $keyword = $args[4];
     $config = $this->getConfiguration();
-    $server = $config['custom_block_servers'];
-    $results = $this->search->basicSearch($keyword, 0, 5, $server);
-
+    
+    // Check the block configuration and search the results.
+    // If selected the core.
+    if ($config['custom_solr_result_selection'] == 'core') {
+      $server = $config['custom_block_servers'];
+      $results = $this->search->basicSearch($keyword, 0, 5, $server);
+    }
+    // Selecte the type.
+    else {
+      $type = $config['custom_block_type_filter'];
+      $results = $this->searchall->seachAll($keyword, $type);
+    }
     // Format result to display as unformatted list.
-    foreach ($results as $result) {
-      if (!empty($result)) {
-        if (isset($result->title)) {
-          $title = $result->title;
-        }
-        else {
-          $title = $result->label;
-        }
+    if (!empty($results)) {
+      foreach ($results as $result) {
+        if (!empty($result)) {
+          if (isset($result->title)) {
+            $title = $result->title;
+          }
+          else {
+            $title = $result->label;
+          }
 
-        $result_item = array(
-          '#theme' => 'custom_solr_search_result_item',
-          '#url' => $result->url[0],
-          '#title' => $title,
-          '#author' => $result->author_sort,
-          '#publishDate' => implode(', ', $result->publishDate),
-          '#publisher' => implode(', ', $result->publisher),
-          '#topic' => implode(', ', $result->topic)
-        );
+          $result_item = array(
+            '#theme' => 'custom_solr_search_result_item',
+            '#url' => $result->url[0],
+            '#title' => $title,
+            '#author' => $result->author_sort,
+            '#publishDate' => implode(', ', $result->publishDate),
+            '#publisher' => implode(', ', $result->publisher),
+            '#topic' => implode(', ', $result->topic)
+          );
 
-        $result_items[] = render($result_item);
+          $result_items[] = render($result_item);
+        }
       }
     }
-
     $markup['search_results'] = array(
       '#theme' => 'item_list',
       '#items' => $result_items,
@@ -147,7 +195,8 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
       $plugin_id,
       $plugin_definition,
       $container->get('custom_solr_search.search'),
-      $container->get('custom_solr_search.solr_servers')
+      $container->get('custom_solr_search.solr_servers'),
+      $container->get('custom_solr_search.search_all') 
     );
   }
 
diff --git a/src/Search.php b/src/Search.php
index ae39903..0d96ccc 100644
--- a/src/Search.php
+++ b/src/Search.php
@@ -3,6 +3,7 @@
 namespace Drupal\custom_solr_search;
 
 use Solarium\QueryType\Select\Query\Query as SelectQuery;
+use Solarium\QueryType\Select\Query\FilterQuery as FilterTypeQuery;
 
 /**
  * Class Search.
@@ -29,11 +30,13 @@ class Search {
    *   Query limit.
    * @param string $solr_core
    *   Solarium client.
+   * @param string $type
+   *   String for filter.
    *
    * @return array
    *   Query result.
    */
-  public function basicSearch($keyword, $offset, $limit, $solr_core) {
+  public function basicSearch($keyword, $offset, $limit, $solr_core, $type = NULL) {
     // Get solarium client.
     $solr_client = \Drupal::service('custom_solr_search.server')->getSolrClient($solr_core);
     // Initiate Solarium basic select query.
@@ -44,13 +47,26 @@ class Search {
     $query->setStart($offset);
     // Set limit.
     $query->setRows($limit);
+    // Get the type identifier.
+    if (!empty($type)) {
+      // Replace the space with solr whitespace.
+      $type = str_replace(' ','\ *', $type);
+      // Initiate Solarium filter query.
+      $fq = new FilterTypeQuery();
+      // Set format as a key.
+      $fq->setKey('format');
+      // Set the key value.
+      $fq->setQuery('format:'.$type);
+      // Add the filterquery.
+      $query->addFilterQuery($fq);
+    }
+
     // Create a request for query.
     $request = $solr_client->createRequest($query);
     // Execute request.
     $response = $solr_client->executeRequest($request);
     // Extract result from response.
     $result = $this->extractResult($response);
-
     return $result;
   }
 
diff --git a/src/SearchSolrAll.php b/src/SearchSolrAll.php
index a6cb4af..b394f38 100644
--- a/src/SearchSolrAll.php
+++ b/src/SearchSolrAll.php
@@ -26,14 +26,16 @@ class SearchSolrAll {
    *
    * @param string $keyword
    *   String to search.
+   * @param string $type
+   *   String for filter.
    * @return array $results
    *   Array of search results.
    */
-  public function seachAll($keyword){
+  public function seachAll($keyword, $type = NULL){
     $servers = \Drupal::service('custom_solr_search.solr_servers')->getServers();
     $results = array();
     foreach ($servers as $server_machine => $server_display) {
-      $result = \Drupal::service('custom_solr_search.search')->basicSearch($keyword, 0, 5, $server_machine);
+      $result = \Drupal::service('custom_solr_search.search')->basicSearch($keyword, 0, 5, $server_machine, $type);
       $results = array_merge($results, $result);
     }
     return $results;
