private function getOpenSearchResult($query, $store_id) { $access_key = Mage::getStoreConfig('catalog/opensearch/access_key'); $secret = Mage::getStoreConfig('catalog/opensearch/secret'); //杭州公网API地址:http://opensearch-cn-hangzhou.aliyuncs.com //北京公网API地址:http://opensearch-cn-beijing.aliyuncs.com $host = "http://opensearch-cn-hangzhou.aliyuncs.com"; //根据自己的应用区域选择API $key_type = "aliyun"; //固定值,不必修改 $opts = array('host' => $host); $client = new CloudsearchClient($access_key, $secret, $opts, $key_type); // 实例化一个搜索类 $search_obj = new CloudsearchSearch($client); // 指定一个应用用于搜索 $apps = Mage::getStoreConfig('catalog/opensearch/apps'); $search_obj->addIndex($apps); // 指定搜索关键词 $search_obj->setQueryString("default:{$query}"); $search_obj->addFilter("store_id={$store_id}"); // 指定返回的搜索结果的格式为json $search_obj->setFormat("json"); // 执行搜索,获取搜索结果 $json = $search_obj->search(); // 将json类型字符串解码 $result = json_decode($json, true); return $result; }
/** * 查询 * * 这里详细的查询,请参考: * * https://docs.aliyun.com/#/pub/opensearch/sdk/php&sdk-doc-cloudsearchsearch * * @param string $query * * @return array */ public function query($opt) { $se = new CloudsearchSearch($this->ins); $opt['format'] = 'json'; $opt['indexes'] = array($this->module); $r = $se->search($opt); $r = $this->checkResponse($r); return $r['result']; }
/** * Search in alyun opensearch * @param string $keyword * @param array $indexArr * @param array $postTypeArr * @param integer $cntPerpage * @param integer $pageNumber * @return array|mixed */ public function search($vars, $keywors, $kwtype, $searchtype) { $options = $this->options; $search_obj = new \CloudsearchSearch($this->client); $search_obj->addIndex($options->getAppName()); $search_obj->setFormat("json"); $queryBuilder = new \QueryBuilder($search_obj); $queryBuilder->channelType($_REQUEST["channeltype"]); $queryBuilder->hits($vars["limitstart"], $vars["row"]); $queryBuilder->orderBy($_REQUEST["orderby"]); $queryBuilder->starttime($_REQUEST["starttime"]); $queryBuilder->typeId($_REQUEST["typeid"]); $queryBuilder->setSearch($searchtype, $kwtype, $keywors); //execute search $json = $search_obj->search(); //convert result return json_decode($json, true); }