/** * do driver instance init */ public function setup() { $settings = $this->getSettings(); if (empty($settings)) { throw new BoxRouteInstanceException('init driver instance failed: empty settings'); } $curInst = new \SphinxClient(); $curInst->setServer($settings['sphinxHost'], $settings['sphinxPort']); !empty($settings['sphinxConnectTimeout']) && $curInst->setConnectTimeout($settings['sphinxConnectTimeout']); $this->instance = $curInst; $this->isAvailable = $this->instance ? true : false; }
public function fetch() { if (!class_exists('SphinxClient')) { return false; } $s = new SphinxClient(); $s->setServer($this->_sphinxHost, $this->_sphinxPort); if (count($this->_arrSearchOutRangeColumnMinMax) > 0) { foreach ($this->_arrSearchOutRangeColumnMinMax as $value) { $d = explode(',', $value); $s->setFilterRange($d[0], $d[1], $d[2], true); } } if (count($this->_arrSearchInRangeColumnMinMax) > 0) { foreach ($this->_arrSearchInRangeColumnMinMax as $value) { $d = explode(',', $value); $s->setFilterRange($d[0], $d[1], $d[2], false); } } $s->setConnectTimeout($this->_connectTimeout); $s->setMaxQueryTime($this->{$_maxquerytime}); // $s->setRetries ( int $this->retriesCount , int $this->retriesDelay ); // $s->setMatchMode($this->searchMode); $s->setFieldWeights($this->_fieldweights); // $s->setFilter ( string $attribute , array $values [, bool $exclude = false ] ); // $s->setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] ); // $s->setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] ); // $s->setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude ); // $s->setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] ); // $s->setGroupDistinct ( string $attribute ); // $s->setIDRange ( int $min , int $max ); $s->setIndexWeights($this->_arrIndexweights); // $s->setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] ); $s->setMatchMode($this->searchMode); // $s->setOverride ( string $attribute , int $type , array $values ); $s->setRankingMode($this->rankMode); // $s->setSelect ( string $clause ); // $s->setSortMode ( int $mode [, string $sortby ] ); return $s->query($this->_query); }