1

検索語を Magento の solr 検索エンジンに渡すコードを知っている人はいますか。たとえば、フロント エンドの検索バーで「スパイダーマン」を検索すると、コード、テンプレート ファイル、モジュール、およびこの検索語を solr 検索エンジンまたは magento のデフォルトのフルテキストに渡す php クラスがどこにあるか検索エンジン。

このコード app/code/core/Mage/CatalogSearch/controllers/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();
    }
}
4

1 に答える 1

1

ファイルapp/code/core/Enterprise/Search/Model/Adapter/HttpStream.php 関数は次のとおりです。

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

クエリを solr に送信する行:

    $response = $this->_client->search(
        $searchConditions, $offset, $limit, $searchParams, Apache_Solr_Service::METHOD_POST
    );
于 2014-02-04T18:41:02.837 に答える