Пример #1
0
 /**
  * 查询
  *
  * 这里详细的查询,请参考:
  *
  * 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'];
 }
Пример #2
0
 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;
 }
 /**
  * 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);
 }