1. Open app/code/community/Klevu/Search/Model/Api/Action/Idsearch.php and modify the "validate" function
    
Before change
------------------

protected function validate($parameters) {
        $errors = array();

        if (!isset($parameters['ticket']) || empty($parameters['ticket'])) {
            $errors['ticket'] = "Missing ticket (Search API Key)";
        }

        if (!isset($parameters['noOfResults']) || empty($parameters['noOfResults'])) {
            $errors['noOfResults'] = "Missing number of results to return";
        }

        if(!isset($parameters['term']) || empty($parameters['term'])) {
            $errors['term'] = "Missing search term";
        }

        if(!isset($parameters['paginationStartsFrom'])) {
            $errors['paginationStartsFrom'] = "Missing pagination start from value ";
        } else if (intval($parameters['paginationStartsFrom']) < 0) {
            $errors['paginationStartsFrom'] = "Pagination needs to start from 0 or higher";
        }

        if(!isset($parameters['klevuSort']) || empty($parameters['klevuSort'])) {
            $errors['klevuSort'] = "Missing Klevu Sort order";
        }

        if(!isset($parameters['enableFilters']) || empty($parameters['enableFilters'])) {
            $errors['enableFilters'] = "Missing Enable Filters parameter";
        }

        if (count($errors) == 0) {
            return true;
        }
        return $errors;
    }
    
After changes
-------------------------

 protected function validate($parameters) {
        $errors = array();

        if (!isset($parameters['ticket']) || empty($parameters['ticket'])) {
            $errors['ticket'] = "Missing ticket (Search API Key)";
        }

        if (!isset($parameters['noOfResults']) || empty($parameters['noOfResults'])) {
            $errors['noOfResults'] = "Missing number of results to return";
        }

        if(!isset($parameters['term']) || empty($parameters['term'])) {
            $errors['term'] = "Missing search term";
        }

        if(!isset($parameters['paginationStartsFrom'])) {
            $errors['paginationStartsFrom'] = "Missing pagination start from value ";
        } else if (intval($parameters['paginationStartsFrom']) < 0) {
            $errors['paginationStartsFrom'] = "Pagination needs to start from 0 or higher";
        }

        if (count($errors) == 0) {
            return true;
        }
        return $errors;
    }

==================================================================================================

2. Open app/code/community/Klevu/Search/Model/CatalogSearch/Resource/Fulltext/Collection.php

   Replace the whole file content with the code below:
   
   Note:Please check  Mage_CatalogSearch_Model_Mysql4_Fulltext_Collection file rewite by any other module then make below change in that files   

After changes
-----------------------
 
   /**
     * Klevu Search API Parameters
     * @var array
     */
    protected $_klevu_parameters;
    protected $_klevu_tracking_parameters;
    protected $_klevu_type_of_records = 'KLEVU_PRODUCT';

    /**
     * Klevu Search API Product IDs
     * @var array
     */
    protected $_klevu_product_ids = array();
    protected $_klevu_parent_child_ids = array();
    protected $_isSearchFiltersApplied = true;

    /**
     * Klevu Search API Response
     * @var Klevu_Search_Model_Api_Response
     */
    protected $_klevu_response;
    /**
     * Search query
     * @var string
     */
    protected $_query;

    /**
     * Total number of results found
     * @var int
     */
    protected $_klevu_size;
    /**
     * The XML Response from Klevu
     * @var SimpleXMLElement
     */
    protected $_klevu_response_xml;

    /**
     * Retrieve query model object
     *
     * @return Mage_CatalogSearch_Model_Query
     */
    protected function _getQuery()
    {
        return Mage::helper('catalogsearch')->getQuery();
    }
    
    /**
     * Return the Klevu api search filters
     * @return array
     */
    public function getSearchTracking($noOfTrackingResults,$queryType) {

        $this->_klevu_tracking_parameters = array(
            'klevu_apiKey' => Mage::helper('klevu_search/config')->getJsApiKey(),
            'klevu_term' => $this->_getQuery()->getQueryText(),
            'klevu_totalResults' => $noOfTrackingResults,
            'klevu_shopperIP' => Mage::helper('klevu_search')->getIp(),
            'klevu_typeOfQuery' => $queryType,
            'Klevu_typeOfRecord' => 'KLEVU_PRODUCT'
        );
        $this->log(Zend_Log::DEBUG, sprintf("Search tracking for term: %s", $this->_getQuery()->getQueryText()));
        return $this->_klevu_tracking_parameters;
    }
    
    /**
     * This method executes the the Klevu API request if it has not already been called, and takes the result
     * with the result we get all the item IDs, pass into our helper which returns the child and parent id's.
     * We then add all these values to our class variable $_klevu_product_ids.
     *
     * @return array
     */
    protected function _getProductIds() {
        if (empty($this->_klevu_product_ids)) {

            // If no results, return an empty array
            if (!$this->getKlevuResponse()->hasData('result')) {
                return array();
            }
          
            foreach ($this->getKlevuResponse()->getData('result') as $result) {
                $item_id =  Mage::helper('klevu_search')->getMagentoProductId((string) $result['id']);
                $this->_klevu_parent_child_ids[] = $item_id;
                if ($item_id['parent_id'] != 0) {
                    $this->_klevu_product_ids[$item_id['parent_id']] = $item_id['parent_id'];
                }

                $this->_klevu_product_ids[$item_id['product_id']] = $item_id['product_id'];
            }
            $this->_klevu_product_ids = array_unique($this->_klevu_product_ids);
            $this->log(Zend_Log::DEBUG, sprintf("Products count returned: %s", count($this->_klevu_product_ids)));
            $response_meta = $this->getKlevuResponse()->getData('meta');
            Mage::getModel('klevu_search/api_action_searchtermtracking')->execute($this->getSearchTracking(count($this->_klevu_product_ids),$response_meta['typeOfQuery']));

           
        }
       return $this->_klevu_product_ids;
    }
    
    
    /**
     * Return the Klevu api search filters
     * @return array
     */
    public function getSearchFilters() {
        if (empty($this->_klevu_parameters)) {

            $this->_klevu_parameters = array(
                'ticket' => Mage::helper('klevu_search/config')->getJsApiKey(),
                'noOfResults' => 2000,
                'term' => $this->_getQuery()->getQueryText(),
                'paginationStartsFrom' => 0,
                'enableFilters' => 'false',
                'klevuShowOutOfStockProducts' =>'true',
                'category' => $this->_klevu_type_of_records

            );
        }
        
        return $this->_klevu_parameters;
    }
    
    /**
     * Send the API Request and return the API Response.
     * @return Klevu_Search_Model_Api_Response
     */
    public function getKlevuResponse() {
        if (!$this->_klevu_response) {
            $this->_klevu_response = Mage::getModel('klevu_search/api_action_idsearch')->execute($this->getSearchFilters());
        }
        return $this->_klevu_response;
    }


    /**
     * Add search query filter
     *
     * @param string $query
     * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
     */
    public function addSearchFilter($query)
    {  
       
        Mage::getSingleton('catalogsearch/fulltext')->prepareResult();
        $queryterm = Mage::getSingleton('core/session')->getData('queryterm'); 
        $sess = isset($queryterm) ? $queryterm : '';
        if($this->_getQuery()->getQueryText() != $sess)
        {
            Mage::getSingleton('core/session')->setData('ids', $this->_getProductIds());
            Mage::getSingleton('core/session')->setData('queryterm', $this->_getQuery()->getQueryText());
        }
        
        $this->addFieldToFilter('entity_id', array('in' => Mage::getSingleton('core/session')->getData('ids')));
        return $this;
    }
    /**
     * Set Order field
     *
     * @param string $attribute
     * @param string $dir
     * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
     */
    public function setOrder($attribute, $dir = 'desc')
    {
        if ($attribute == 'relevance') {
            $this->getSelect()->reset(Zend_Db_Select::ORDER);
            if (count(Mage::getSingleton('core/session')->getData('ids'))) {
                // Use "FIELD (column, 1[,2,3,4]) ASC" for ordering, where "1[,2,3,4]" is the list of IDs in the order required
                $this->getSelect()->order(sprintf('FIELD(`e`.`entity_id`, %s) ASC', implode(',', Mage::getSingleton('core/session')->getData('ids'))));
            }
            
        } else {
            parent::setOrder($attribute, $dir);
        }
        return $this;
    }
    
    /**
     * Stub method for campatibility with other search engines
     *
     * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
     */
    public function setGeneralDefaultQuery()
    {
        return $this;
    }
    
    protected function log($level, $message) {
        Mage::helper('klevu_search')->log($level, $message);
    }


=============================================================================================

3. app/code/community/Klevu/Search/Model/Observer.php 
   and modify applyLandingPageModelRewrites function

Before changes
--------------------------

public function applyLandingPageModelRewrites(Varien_Event_Observer $observer) {
        if (Mage::helper("klevu_search/config")->isLandingEnabled()) {
            $rewrites = array(
                "global/models/catalogsearch_resource/rewrite/fulltext_collection"         => "Klevu_Search_Model_CatalogSearch_Resource_Fulltext_Collection",
                "global/models/catalogsearch_mysql4/rewrite/fulltext_collection"           => "Klevu_Search_Model_CatalogSearch_Resource_Fulltext_Collection",
                "global/models/catalogsearch/rewrite/layer_filter_attribute"               => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Attribute",
                "global/models/catalog/rewrite/config"                                     => "Klevu_Search_Model_Catalog_Model_Config",
                "global/models/catalog/rewrite/layer_filter_price"                         => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Price",
                "global/models/catalog/rewrite/layer_filter_category"                      => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Category",
                "global/models/catalog_resource/rewrite/layer_filter_attribute"            => "Klevu_Search_Model_CatalogSearch_Resource_Layer_Filter_Attribute",
                "global/models/catalog_resource_eav_mysql4/rewrite/layer_filter_attribute" => "Klevu_Search_Model_CatalogSearch_Resource_Layer_Filter_Attribute"
            );

            $config = Mage::app()->getConfig();
            foreach ($rewrites as $key => $value) {
                $config->setNode($key, $value);
            }
        }
    }


After changes
------------------------

 public function applyLandingPageModelRewrites(Varien_Event_Observer $observer) {
        if (Mage::helper("klevu_search/config")->isLandingEnabled() == 1 && Mage::helper("klevu_search/config")->isExtensionConfigured()) {
            $rewrites = array(
                "global/models/catalogsearch_resource/rewrite/fulltext_collection"         => "Klevu_Search_Model_CatalogSearch_Resource_Fulltext_Collection",
                "global/models/catalogsearch_mysql4/rewrite/fulltext_collection"           => "Klevu_Search_Model_CatalogSearch_Resource_Fulltext_Collection",
                //"global/models/catalogsearch/rewrite/layer_filter_attribute"               => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Attribute",
                //"global/models/catalog/rewrite/config"                                     => "Klevu_Search_Model_Catalog_Model_Config",
                //"global/models/catalog/rewrite/layer_filter_price"                         => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Price",
                //"global/models/catalog/rewrite/layer_filter_category"                      => "Klevu_Search_Model_CatalogSearch_Layer_Filter_Category",
                //"global/models/catalog_resource/rewrite/layer_filter_attribute"            => "Klevu_Search_Model_CatalogSearch_Resource_Layer_Filter_Attribute",
                //"global/models/catalog_resource_eav_mysql4/rewrite/layer_filter_attribute" => "Klevu_Search_Model_CatalogSearch_Resource_Layer_Filter_Attribute"
            );

            $config = Mage::app()->getConfig();
            foreach ($rewrites as $key => $value) {
                $config->setNode($key, $value);
            }
        }
    }