diff --git a/src/Plugin/Block/CustomSolrSearchResultBlock.php b/src/Plugin/Block/CustomSolrSearchResultBlock.php
new file mode 100644
index 0000000..b27d8f8
--- /dev/null
+++ b/src/Plugin/Block/CustomSolrSearchResultBlock.php
@@ -0,0 +1,150 @@
+<?php
+
+namespace Drupal\custom_solr_search\Plugin\Block;
+
+use Drupal\Core\Block\BlockBase;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\custom_solr_search\SolrServerDetails;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\custom_solr_search\Search;
+
+/**
+ * Provides a 'Result' Block
+ *
+ * @Block(
+ *   id = "custom_solr_search_result_block",
+ *   admin_label = @Translation("Custom SOLR Search Result block"),
+ * )
+ */
+class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryPluginInterface {
+  /**
+   * \Drupal\custom_solr_search\Search definition.
+   *
+   * @var \Drupal\custom_solr_search\Search
+   */
+  protected $search;
+
+  /**
+   * \Drupal\custom_solr_search\SolrServerDetails definition.
+   *
+   * @var \Drupal\custom_solr_search\SolrServerDetails
+   */
+  protected $serverDetails;
+
+  /**
+   * Construct.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param string $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\custom_solr_search\Search $search
+   *   Custom Solr search service
+   * @param \Drupal\custom_solr_search\SolrServerDetails $serverDetails
+   *   Custom Solr server details service
+   */
+  public function __construct(
+    array $configuration,
+    $plugin_id,
+    $plugin_definition,
+    Search $search,
+    SolrServerDetails $serverDetails
+  ) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->search = $search;
+    $this->serverDetails = $serverDetails;
+  }
+  /**
+   * {@inheritdoc}
+   */
+  public function blockForm($form, FormStateInterface $form_state) {
+    $form = parent::blockForm($form, $form_state);
+
+    // Get the Core Details.
+    $servers = $this->serverDetails->getServers();
+
+    // Get the configurations.
+    $config = $this->getConfiguration();
+    
+    $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'] : '',
+    ];
+
+    return $form;
+  }
+  
+  /**
+   * {@inheritdoc}
+   */
+  public function blockSubmit($form, FormStateInterface $form_state) {
+    $this->setConfigurationValue('custom_block_servers', $form_state->getValue('custom_block_servers'));
+  }
+  
+  /**
+   * {@inheritdoc}
+   */
+  public function build() {
+    $path = \Drupal::request()->getPathInfo();
+    $args = explode('/', $path);
+    $keyword = $args[4];
+    $config = $this->getConfiguration();
+    $server = $config['custom_block_servers'];
+    $results = $this->search->basicSearch($keyword, 0, 5, $server);
+
+    // 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;
+        }
+        $result_items[] = array(
+          '#url' => $result->url[0],
+          '#title' => $title,
+          '#author' => $result->author_sort,
+          '#publishDate' => implode(', ', $result->publishDate),
+          '#publisher' => implode(', ', $result->publisher),
+          '#topic' => implode(', ', $result->topic)
+        );
+      }
+    }
+
+    $markup['search_results'] = array(
+      '#theme' => 'custom_solr_search_result',
+      '#items' => $result_items,
+      '#label' => $config['label'],
+      '#cache' => array (
+        'max-age' => 0,
+      ),
+    );
+
+    return $markup;
+  }
+
+  /**
+   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
+   * @param array $configuration
+   * @param string $plugin_id
+   * @param mixed $plugin_definition
+   *
+   * @return array
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('custom_solr_search.search'),
+      $container->get('custom_solr_search.solr_servers')
+    );
+  }
+
+}
