diff --git a/src/Plugin/Block/CustomSolrSearchResultBlock.php b/src/Plugin/Block/CustomSolrSearchResultBlock.php
index fce55e3..d58fd11 100644
--- a/src/Plugin/Block/CustomSolrSearchResultBlock.php
+++ b/src/Plugin/Block/CustomSolrSearchResultBlock.php
@@ -10,6 +10,9 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\custom_solr_search\Search;
 use Drupal\custom_solr_search\SearchSolrAll;
 use Drupal\custom_solr_search\FilterQuerySettings;
+use Drupal\Core\Url;
+use Drupal\Core\Path;
+use Drupal\Core\Link;
 
 /**
  * Provides a 'Result' Block
@@ -92,6 +95,26 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
       '#default_value' => isset($config['custom_solr_search_keyword_argument']) ? $config['custom_solr_search_keyword_argument'] : 0,
       '#description' => $this->t('Add the argument of search keyword to fetch the results.e.g. example.com/result/keyword if keyword is a argument then enter 2.'),
     ];
+    $form['custom_solr_search_offset'] = [
+      '#type' => 'number',
+      '#min' => 0,
+      '#title' => $this->t('Solr Search Result Offset'),
+      '#default_value' => isset($config['custom_solr_search_offset']) ? $config['custom_solr_search_offset'] : 0,
+      '#description' => $this->t('Add the offset to show the search result in block.'),
+    ];
+    $form['custom_solr_search_limit'] = [
+      '#type' => 'number',
+      '#min' => 0,
+      '#title' => $this->t('Solr Search Result Limit'),
+      '#default_value' => isset($config['custom_solr_search_limit']) ? $config['custom_solr_search_limit'] : 5,
+      '#description' => $this->t('Add the Limit to show the search result in block.'),
+    ];
+    $form['custom_solr_search_result_view_more'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Show View More Link on Solr Search Result Block '),
+      '#default_value' => $config['custom_solr_search_result_view_more'],
+      '#description' => $this->t('Add the internal relative urls, prefix the path with internal://for external links, use absolute path.'),
+    ];
 
     return $form;
   }
@@ -102,6 +125,10 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
   public function blockSubmit($form, FormStateInterface $form_state) {
     $this->setConfigurationValue('custom_block_filters', $form_state->getValue('custom_block_filters'));
     $this->setConfigurationValue('custom_solr_search_keyword_argument', $form_state->getValue('custom_solr_search_keyword_argument'));
+    $this->setConfigurationValue('custom_solr_search_limit', $form_state->getValue('custom_solr_search_limit'));
+    $this->setConfigurationValue('custom_solr_search_offset', $form_state->getValue('custom_solr_search_offset'));
+    $this->setConfigurationValue('custom_solr_search_result_view_more', $form_state->getValue('custom_solr_search_result_view_more'));
+
   }
 
   /**
@@ -117,49 +144,60 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
     // Get the keyword argument.
     $argument_keyword = $config['custom_solr_search_keyword_argument'];
     $keyword = $args[$argument_keyword];
+    $limit = $config['custom_solr_search_limit'];
+    $offset = $config['custom_solr_search_offset'];
+    $view_more = $config['custom_solr_search_result_view_more'];
     // Check the block configuration and search the results.
     // If selected the core.
 
     if ($filterQuerySettings['server'] == 'all'){
       $options = $filterQuerySettings['filter'];
-      $results = $this->searchall->seachAll($keyword, $options);
+      $results = $this->searchall->seachAll($keyword, $offset, $limit, $options);
     }
     else {
       $server = $filterQuerySettings['server'];
-      $results = $this->search->basicSearch($keyword, 0, 5, $server);
+      $results = $this->search->basicSearch($keyword, $offset, $limit, $server);
     }
+
     // Format result to display as unformatted list.
     if (!empty($results)) {
-      foreach ($results as $result) {
-        if (!empty($result)) {
+      foreach ($results['docs'] as $result) {
           if (isset($result->title)) {
             $title = $result->title;
           }
           else {
             $title = $result->label;
           }
-
-          $result_item = array(
-            '#theme' => 'custom_solr_search_result',
-            '#url' => $result->url[0],
-            '#title' => $title,
-            '#author' => $result->author_sort,
-            '#publishDate' => implode(', ', $result->publishDate),
-            '#publisher' => implode(', ', $result->publisher),
-            '#topic' => implode(', ', $result->topic)
+        $render['result'][] = array(
+          '#theme' => 'custom_solr_search_result',
+          '#url' => isset($result->url[0])?$result->url[0]: '',
+          '#title' => isset($title)?$title: '',
+          '#author' => isset($result->author)?implode(', ', $result->author): '',
+          '#publishDate' => isset($result->publishDate)?implode(', ', $result->publishDate): '',
+          '#publisher' => isset($result->publisher)?implode(', ', $result->publisher): '',
+          '#topic' => isset($result->topic)?implode(', ', $result->topic): '',
+          '#docid' => isset($result->id)?$result->id: '',
           );
-
-          $result_items[] = render($result_item);
         }
       }
+    if (!empty($view_more) && !empty($results['docs'])) {
+      if (!empty($keyword)) {
+        $url = Url::fromUri($view_more.$keyword);
+      }
+      else {
+        $url = Url::fromUri($view_more);
+      }
+      $link = Link::fromTextAndUrl(t('View More'), $url)->toString();
     }
+
     $markup['search_results'] = array(
       '#theme' => 'item_list',
-      '#items' => $result_items,
+      '#items' => $render['result'],
       '#cache' => array(
         'max-age' => 0,
       ),
-      '#empty' => t('No search results found!')
+      '#empty' => t('No search results found!'),
+      '#suffix' => !empty($view_more) ? $link : '',
     );
 
     return $markup;
@@ -175,7 +213,13 @@ class CustomSolrSearchResultBlock extends BlockBase implements ContainerFactoryP
    */
   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.filter_query_settings') ,$container->get('custom_solr_search.search'), $container->get('custom_solr_search.solr_servers'), $container->get('custom_solr_search.search_all')
+        $configuration,
+        $plugin_id,
+        $plugin_definition,
+        $container->get('custom_solr_search.filter_query_settings'),
+        $container->get('custom_solr_search.search'),
+        $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 cc13848..78ac940 100644
--- a/src/Search.php
+++ b/src/Search.php
@@ -41,8 +41,10 @@ class Search {
     $solr_client = \Drupal::service('custom_solr_search.server')->getSolrClient($solr_core);
     // Initiate Solarium basic select query.
     $query = new SelectQuery();
-    // Set search keyword.
-    $query->setQuery($keyword);
+    if (!empty($keyword)) {
+      // Set search keyword.
+      $query->setQuery($keyword);
+    }
     // Set offset.
     $query->setStart($offset);
     // Set limit.
diff --git a/src/SearchSolrAll.php b/src/SearchSolrAll.php
index 7134739..3ac8a98 100644
--- a/src/SearchSolrAll.php
+++ b/src/SearchSolrAll.php
@@ -31,12 +31,12 @@ class SearchSolrAll {
    * @return array $results
    *   Array of search results.
    */
-  public function seachAll($keyword, $options = NULL){
+  public function seachAll($keyword, $offset = NULL, $limit = NULL, $options = 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, $options);
-      $results['docs'] = array_merge($results['docs'], $result);
+      $result = \Drupal::service('custom_solr_search.search')->basicSearch($keyword, $offset, $limit, $server_machine, $options);
+      $results = array_merge($results, $result);
     }
     return $results;
   }
