diff --git a/config/schema/custom_solr_search_filter_query.schema.yml b/config/schema/custom_solr_search_filter_query.schema.yml
new file mode 100644
index 0000000..46b8eb0
--- /dev/null
+++ b/config/schema/custom_solr_search_filter_query.schema.yml
@@ -0,0 +1,18 @@
+custom_solr_search.custom_solr_search_filter_query.*:
+  type: config_entity
+  label: 'Custom solr search filter query config'
+  mapping:
+    id:
+      type: string
+      label: 'ID'
+    label:
+      type: label
+      label: 'Label'
+    server:
+      type: string
+      label: 'Server'
+    filter:
+      type: string
+      label: 'Filter'
+    uuid:
+      type: string
diff --git a/custom_solr_search.links.action.yml b/custom_solr_search.links.action.yml
index 54ee216..10f62b9 100644
--- a/custom_solr_search.links.action.yml
+++ b/custom_solr_search.links.action.yml
@@ -4,3 +4,9 @@ entity.custom_solr_config.add_form:
   appears_on:
     - entity.custom_solr_config.collection
 
+entity.custom_solr_search_filter_query.add_form:
+  route_name: 'entity.custom_solr_search_filter_query.add_form'
+  title: 'Add Custom solr search filter query'
+  appears_on:
+    - entity.custom_solr_search_filter_query.collection
+
diff --git a/custom_solr_search.links.menu.yml b/custom_solr_search.links.menu.yml
index 296d884..ccbb724 100644
--- a/custom_solr_search.links.menu.yml
+++ b/custom_solr_search.links.menu.yml
@@ -3,6 +3,14 @@ entity.custom_solr_config.collection:
   title: 'Custom solr config'
   route_name: entity.custom_solr_config.collection
   description: 'List Custom solr config (bundles)'
-  parent: system.admin_structure
+  parent: system.admin_config_search
+  weight: 99
+
+# Custom solr search filter query menu items definition
+entity.custom_solr_search_filter_query.collection:
+  title: 'Custom Solr Search Filter Query Settings'
+  route_name: entity.custom_solr_search_filter_query.collection
+  description: 'List Custom solr search filter query (bundles)'
+  parent: system.admin_config_search
   weight: 99
 
diff --git a/src/CustomSolrSearchFilterQueryHtmlRouteProvider.php b/src/CustomSolrSearchFilterQueryHtmlRouteProvider.php
new file mode 100644
index 0000000..3013611
--- /dev/null
+++ b/src/CustomSolrSearchFilterQueryHtmlRouteProvider.php
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\CustomSolrSearchFilterQueryHtmlRouteProvider.
+ */
+
+namespace Drupal\custom_solr_search;
+
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\Routing\AdminHtmlRouteProvider;
+use Symfony\Component\Routing\Route;
+
+/**
+ * Provides routes for Custom solr search filter query entities.
+ *
+ * @see Drupal\Core\Entity\Routing\AdminHtmlRouteProvider
+ * @see Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider
+ */
+class CustomSolrSearchFilterQueryHtmlRouteProvider extends AdminHtmlRouteProvider {
+  /**
+   * {@inheritdoc}
+   */
+  public function getRoutes(EntityTypeInterface $entity_type) {
+    $collection = parent::getRoutes($entity_type);
+
+    $entity_type_id = $entity_type->id();
+
+    if ($collection_route = $this->getCollectionRoute($entity_type)) {
+      $collection->add("entity.{$entity_type_id}.collection", $collection_route);
+    }
+
+    if ($add_form_route = $this->getAddFormRoute($entity_type)) {
+      $collection->add("entity.{$entity_type_id}.add_form", $add_form_route);
+    }
+
+    return $collection;
+  }
+
+  /**
+   * Gets the collection route.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   The entity type.
+   *
+   * @return \Symfony\Component\Routing\Route|null
+   *   The generated route, if available.
+   */
+  protected function getCollectionRoute(EntityTypeInterface $entity_type) {
+    if ($entity_type->hasLinkTemplate('collection') && $entity_type->hasListBuilderClass()) {
+      $entity_type_id = $entity_type->id();
+      $route = new Route($entity_type->getLinkTemplate('collection'));
+      $route
+        ->setDefaults([
+          '_entity_list' => $entity_type_id,
+          // Make sure this is not a TranslatableMarkup object as the
+          // TitleResolver translates this string again.
+          '_title' => (string) $entity_type->getLabel(),
+        ])
+        ->setRequirement('_permission', $entity_type->getAdminPermission())
+        ->setOption('_admin_route', TRUE);
+
+      return $route;
+    }
+  }
+
+  /**
+   * Gets the add-form route.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   The entity type.
+   *
+   * @return \Symfony\Component\Routing\Route|null
+   *   The generated route, if available.
+   */
+  protected function getAddFormRoute(EntityTypeInterface $entity_type) {
+    if ($entity_type->hasLinkTemplate('add-form')) {
+      $entity_type_id = $entity_type->id();
+      $route = new Route($entity_type->getLinkTemplate('add-form'));
+      // Use the add form handler, if available, otherwise default.
+      $operation = 'default';
+      if ($entity_type->getFormClass('add')) {
+        $operation = 'add';
+      }
+      $route
+        ->setDefaults([
+          '_entity_form' => "{$entity_type_id}.{$operation}",
+          '_title' => "Add {$entity_type->getLabel()}",
+        ])
+        ->setRequirement('_entity_create_access', $entity_type_id)
+        ->setOption('parameters', [
+          $entity_type_id => ['type' => 'entity:' . $entity_type_id],
+        ])
+        ->setOption('_admin_route', TRUE);
+
+      return $route;
+    }
+  }
+
+}
diff --git a/src/CustomSolrSearchFilterQueryInterface.php b/src/CustomSolrSearchFilterQueryInterface.php
new file mode 100644
index 0000000..eddf928
--- /dev/null
+++ b/src/CustomSolrSearchFilterQueryInterface.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\CustomSolrSearchFilterQueryInterface.
+ */
+
+namespace Drupal\custom_solr_search;
+
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+
+/**
+ * Provides an interface for defining Custom solr search filter query entities.
+ */
+interface CustomSolrSearchFilterQueryInterface extends ConfigEntityInterface {
+  // Add get/set methods for your configuration properties here.
+
+}
diff --git a/src/CustomSolrSearchFilterQueryListBuilder.php b/src/CustomSolrSearchFilterQueryListBuilder.php
new file mode 100644
index 0000000..28af989
--- /dev/null
+++ b/src/CustomSolrSearchFilterQueryListBuilder.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\CustomSolrSearchFilterQueryListBuilder.
+ */
+
+namespace Drupal\custom_solr_search;
+
+use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
+use Drupal\Core\Entity\EntityInterface;
+
+/**
+ * Provides a listing of Custom solr search filter query entities.
+ */
+class CustomSolrSearchFilterQueryListBuilder extends ConfigEntityListBuilder {
+  /**
+   * {@inheritdoc}
+   */
+  public function buildHeader() {
+    $header['label'] = $this->t('Custom solr search filter query');
+    $header['id'] = $this->t('Machine name');
+    return $header + parent::buildHeader();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildRow(EntityInterface $entity) {
+    $row['label'] = $entity->label();
+    $row['id'] = $entity->id();
+    // You probably want a few more properties here...
+    return $row + parent::buildRow($entity);
+  }
+
+}
diff --git a/src/Entity/CustomSolrSearchFilterQuery.php b/src/Entity/CustomSolrSearchFilterQuery.php
new file mode 100644
index 0000000..3a2a16f
--- /dev/null
+++ b/src/Entity/CustomSolrSearchFilterQuery.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\Entity\CustomSolrSearchFilterQuery.
+ */
+
+namespace Drupal\custom_solr_search\Entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityBase;
+use Drupal\custom_solr_search\CustomSolrSearchFilterQueryInterface;
+
+/**
+ * Defines the Custom solr search filter query entity.
+ *
+ * @ConfigEntityType(
+ *   id = "custom_solr_search_filter_query",
+ *   label = @Translation("Custom solr search filter query"),
+ *   handlers = {
+ *     "list_builder" = "Drupal\custom_solr_search\CustomSolrSearchFilterQueryListBuilder",
+ *     "form" = {
+ *       "add" = "Drupal\custom_solr_search\Form\CustomSolrSearchFilterQueryForm",
+ *       "edit" = "Drupal\custom_solr_search\Form\CustomSolrSearchFilterQueryForm",
+ *       "delete" = "Drupal\custom_solr_search\Form\CustomSolrSearchFilterQueryDeleteForm"
+ *     },
+ *     "route_provider" = {
+ *       "html" = "Drupal\custom_solr_search\CustomSolrSearchFilterQueryHtmlRouteProvider",
+ *     },
+ *   },
+ *   config_prefix = "custom_solr_search_filter_query",
+ *   admin_permission = "administer site configuration",
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "label" = "label",
+ *     "server" = "server",
+ *     "filter" = "filter",
+ *     "uuid" = "uuid"
+ *   },
+ *   links = {
+ *     "canonical" = "/admin/config/custom_solr_search_filter_query/{custom_solr_search_filter_query}",
+ *     "add-form" = "/admin/config/custom_solr_search_filter_query/add",
+ *     "edit-form" = "/admin/config/custom_solr_search_filter_query/{custom_solr_search_filter_query}/edit",
+ *     "delete-form" = "/admin/config/custom_solr_search_filter_query/{custom_solr_search_filter_query}/delete",
+ *     "collection" = "/admin/config/custom_solr_search_filter_query"
+ *   }
+ * )
+ */
+class CustomSolrSearchFilterQuery extends ConfigEntityBase implements CustomSolrSearchFilterQueryInterface {
+  /**
+   * The Custom solr search filter query ID.
+   *
+   * @var string
+   */
+  protected $id;
+
+  /**
+   * The Custom solr search filter query label.
+   *
+   * @var string
+   */
+  protected $label;
+
+  /**
+   * The Custom solr search filter query server.
+   *
+   * @var string
+   */
+  protected $server;
+
+  /**
+   * The Custom solr search filter query filter.
+   *
+   * @var filter
+   */
+  protected $filter;
+
+}
diff --git a/src/Form/CustomSolrSearchFilterQueryDeleteForm.php b/src/Form/CustomSolrSearchFilterQueryDeleteForm.php
new file mode 100644
index 0000000..884276c
--- /dev/null
+++ b/src/Form/CustomSolrSearchFilterQueryDeleteForm.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\Form\CustomSolrSearchFilterQueryDeleteForm.
+ */
+
+namespace Drupal\custom_solr_search\Form;
+
+use Drupal\Core\Entity\EntityConfirmFormBase;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Url;
+
+/**
+ * Builds the form to delete Custom solr search filter query entities.
+ */
+class CustomSolrSearchFilterQueryDeleteForm extends EntityConfirmFormBase {
+  /**
+   * {@inheritdoc}
+   */
+  public function getQuestion() {
+    return $this->t('Are you sure you want to delete %name?', array('%name' => $this->entity->label()));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCancelUrl() {
+    return new Url('entity.custom_solr_search_filter_query.collection');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfirmText() {
+    return $this->t('Delete');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    $this->entity->delete();
+
+    drupal_set_message(
+      $this->t('content @type: deleted @label.',
+        [
+          '@type' => $this->entity->bundle(),
+          '@label' => $this->entity->label()
+        ]
+        )
+    );
+
+    $form_state->setRedirectUrl($this->getCancelUrl());
+  }
+
+}
diff --git a/src/Form/CustomSolrSearchFilterQueryForm.php b/src/Form/CustomSolrSearchFilterQueryForm.php
new file mode 100644
index 0000000..3cf2110
--- /dev/null
+++ b/src/Form/CustomSolrSearchFilterQueryForm.php
@@ -0,0 +1,102 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\custom_solr_search\Form\CustomSolrSearchFilterQueryForm.
+ */
+
+namespace Drupal\custom_solr_search\Form;
+
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\EntityForm;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\custom_solr_search\SolrServerDetails;
+/**
+ * Class CustomSolrSearchFilterQueryForm.
+ *
+ * @package Drupal\custom_solr_search\Form
+ */
+class CustomSolrSearchFilterQueryForm extends EntityForm {
+
+  public function __construct(){
+
+  }
+  /**
+   * {@inheritdoc}
+   */
+  public function form(array $form, FormStateInterface $form_state) {
+    $form = parent::form($form, $form_state);
+    $server_details = \Drupal::service('custom_solr_search.solr_servers');
+    // Get the Core Details.
+    $servers = array('all' => 'ALL');
+    $servers += $server_details->getServers();
+    $custom_solr_search_filter_query = $this->entity;
+    $form['label'] = array(
+      '#type' => 'textfield',
+      '#title' => $this->t('Query Settings name'),
+      '#maxlength' => 255,
+      '#default_value' => $custom_solr_search_filter_query->label(),
+      '#description' => $this->t("Label for the Custom solr search filter query."),
+      '#required' => TRUE,
+    );
+    $form['server'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Select Server Name'),
+      '#options' => $servers,
+      '#default_value' =>  $custom_solr_search_filter_query->get('server'),
+    ];
+    $form['filter'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Filters'),
+      '#description' => $this->t('Add the multiple filter identifier with AND/OR operator in SOLR based on you can differentiate the queries.e.g. (format:"Note" OR format:"Article") AND (id: "ir-10054-5936").'),
+      '#default_value' =>  $custom_solr_search_filter_query->get('filter'),
+    ];
+    $form['id'] = array(
+      '#type' => 'machine_name',
+      '#default_value' => $custom_solr_search_filter_query->id(),
+      '#machine_name' => array(
+        'exists' => '\Drupal\custom_solr_search\Entity\CustomSolrSearchFilterQuery::load',
+      ),
+      '#disabled' => !$custom_solr_search_filter_query->isNew(),
+    );
+
+    /* You will need additional form elements for your custom properties. */
+
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function save(array $form, FormStateInterface $form_state) {
+    $custom_solr_search_filter_query = $this->entity;
+    $status = $custom_solr_search_filter_query->save();
+
+    switch ($status) {
+      case SAVED_NEW:
+        drupal_set_message($this->t('Created the %label Custom solr search filter query.', [
+          '%label' => $custom_solr_search_filter_query->label(),
+        ]));
+        break;
+
+      default:
+        drupal_set_message($this->t('Saved the %label Custom solr search filter query.', [
+          '%label' => $custom_solr_search_filter_query->label(),
+        ]));
+    }
+    $form_state->setRedirectUrl($custom_solr_search_filter_query->urlInfo('collection'));
+  }
+
+  /**
+   * @param array $form
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    $custom_solr_search_filter_query = $this->entity;
+    $status = $custom_solr_search_filter_query->save();
+    parent::submitForm($form, $form_state);
+  }
+
+}
+
+
