2013-09-24 65 views
1

有誰知道將搜索字詞傳遞給Magento中的solr搜索引擎的代碼。例如,當您在前端的搜索欄中搜索「蜘蛛俠」時,代碼,模板文件,模塊以及將該搜索詞傳遞給solr搜索引擎的php類或magento默認全文搜索engeine。將搜索字詞傳遞給Magento中的solr搜索引擎的代碼

我發現這個代碼,應用程序/代碼/核心/法師/ CatalogSearch /控制器後放養/ ResultController.php

/** 
* Display search result 
*/ 
public function indexAction() 
{ 
    $query = Mage::helper('catalogsearch')->getQuery(); 
    /* @var $query Mage_CatalogSearch_Model_Query */ 

    $query->setStoreId(Mage::app()->getStore()->getId()); 

    if ($query->getQueryText() != '') { 
     if (Mage::helper('catalogsearch')->isMinQueryLength()) { 
      $query->setId(0) 
       ->setIsActive(1) 
       ->setIsProcessed(1); 
     } 
     else { 
      if ($query->getId()) { 
       $query->setPopularity($query->getPopularity()+1); 
      } 
      else { 
       $query->setPopularity(1); 
      } 

      if ($query->getRedirect()){ 
       $query->save(); 
       $this->getResponse()->setRedirect($query->getRedirect()); 
       return; 
      } 
      else { 
       $query->prepare(); 
      } 
     } 

     Mage::helper('catalogsearch')->checkNotes(); 

     $this->loadLayout(); 
     $this->_initLayoutMessages('catalog/session'); 
     $this->_initLayoutMessages('checkout/session'); 
     $this->renderLayout(); 

     if (!Mage::helper('catalogsearch')->isMinQueryLength()) { 
      $query->save(); 
     } 
    } 
    else { 
     $this->_redirectReferer(); 
    } 
} 
+0

您是使用開源(CE)還是商業(企業)版?默認情況下,開源/社區版不會調用solr,但您可以下載Magentix Solr的東西(有一些問題,請注意許多分支),這裏https://github.com/magentix/Solr –

+0

我使用企業版1.12 –

+0

對不起,我沒有看過企業的東西。我不認爲我們可以看到企業版本中的所有代碼?也許只是它與CE版本有共同之處?所以我懷疑Solr特定的集成代碼不會完全可見? –

回答

0

在文件應用程序/代碼/核心/企業/搜索/型號/適配器/ HttpStream.php 的功能是:

protected function _search($query, $params = array()) 

發起查詢到Solr線:

$response = $this->_client->search(
     $searchConditions, $offset, $limit, $searchParams, Apache_Solr_Service::METHOD_POST 
    );