Exemplo n.º 1
0
 /**
  *	Search ad by keyword and category
  */
 public static function mobile_ad_search(\ApiParam $params)
 {
     $result = array();
     $keyword = $params->query;
     //assume query == keyword
     $resultByFacet = array();
     $options = array('facet.field' => 'categoryEnglishName', 'facet.mincount' => 0, 'facet.limit' => 10, 'waitSuccess' => true);
     $q = new \Query('title', $keyword);
     $q = new \AndQuery($q, new \Query('cityEnglishName', $params->cityEnglishName));
     $res = new \ActiveSearcher($q, $options);
     $resultByFacets = $res->facet();
     $result['count'] = count($resultByFacets);
     $data = array();
     foreach (array_keys($resultByFacets) as $categoryEnglishName) {
         $matched = $resultByFacets[$categoryEnglishName];
         if ($matched == 0) {
             continue;
         }
         try {
             $categoryName = self::loadCategoryName($categoryEnglishName);
         } catch (\Exception $e) {
             continue;
         }
         if (!empty($categoryName)) {
             //中文类目名为空则标志此类目当前不显示
             $data[] = array($categoryEnglishName, $categoryName, $matched);
         }
     }
     $result['data'] = $data;
     return $result;
 }