Example #1
0
 /**
  * Add request settings for the debug component
  *
  * @param  DebugComponent $component
  * @param  Request        $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     $request->addParam('debugQuery', 'true');
     $request->addParam('debug.explain.structured', 'true');
     $request->addParam('explainOther', $component->getExplainOther());
     return $request;
 }
 /**
  * Build request for a select query
  *
  * @param  Query   $query
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = new Request();
     $request->setHandler($query->getHandler());
     $request->addParam('omitHeader', $query->getOmitHeader());
     $request->addParams($query->getParams());
     $request->addParam('wt', $query->getResponseWriter());
     return $request;
 }
 /**
  * Build request for a select query.
  *
  * @param QueryInterface|Query $query
  *
  * @return Request
  */
 public function build(QueryInterface $query)
 {
     $request = new Request();
     $request->setHandler($query->getHandler());
     $request->addParam('omitHeader', $query->getOmitHeader());
     $request->addParam('timeAllowed', $query->getTimeAllowed());
     $request->addParams($query->getParams());
     $request->addParam('wt', $query->getResponseWriter());
     if ($query->getResponseWriter() == $query::WT_JSON) {
         // only one JSON format is supported
         $request->addParam('json.nl', 'flat');
     }
     return $request;
 }
Example #4
0
 /**
  * Add request settings for Dismax
  *
  * @param  DismaxComponent $component
  * @param  Request         $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable dismax
     $request->addParam('defType', $component->getQueryParser());
     $request->addParam('q.alt', $component->getQueryAlternative());
     $request->addParam('qf', $component->getQueryFields());
     $request->addParam('mm', $component->getMinimumMatch());
     $request->addParam('pf', $component->getPhraseFields());
     $request->addParam('ps', $component->getPhraseSlop());
     $request->addParam('qs', $component->getQueryPhraseSlop());
     $request->addParam('tie', $component->getTie());
     $request->addParam('bq', $component->getBoostQuery());
     $request->addParam('bf', $component->getBoostFunctions());
     return $request;
 }
 /**
  * Add request settings for DistributedSearch
  *
  * @param  DistributedSearchComponent $component
  * @param  Request                    $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // add shards to request
     $shards = array_values($component->getShards());
     if (count($shards)) {
         $request->addParam('shards', implode(',', $shards));
     }
     $request->addParam('shards.qt', $component->getShardRequestHandler());
     // add collections to request
     $collections = array_values($component->getCollections());
     if (count($collections)) {
         $request->addParam('collection', implode(',', $collections));
     }
     return $request;
 }
Example #6
0
 /**
  * @depends testConstructorAndGetters
  *
  * @param PreCreateRequest $event
  */
 public function testSetAndGetQuery($event)
 {
     $request = new Request();
     $request->addParam('testparam', 'test value');
     $event->setRequest($request);
     $this->assertEquals($request, $event->getRequest());
 }
Example #7
0
 public function testAddParamOverwrite()
 {
     $params = array('param1' => 1);
     $this->request->setParams($params);
     $this->request->addParam('param1', 2, true);
     $this->assertEquals(array('param1' => 2), $this->request->getParams());
 }
Example #8
0
 /**
  * Add request settings for the stats component
  *
  * @param  StatsComponent $component
  * @param  Request        $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable stats
     $request->addParam('stats', 'true');
     // add fields
     foreach ($component->getFields() as $field) {
         $request->addParam('stats.field', $field->getKey());
         // add field specific facet stats
         foreach ($field->getFacets() as $facet) {
             $request->addParam('f.' . $field->getKey() . '.stats.facet', $facet);
         }
     }
     // add facet stats for all fields
     foreach ($component->getFacets() as $facet) {
         $request->addParam('stats.facet', $facet);
     }
     return $request;
 }
 public function testConstructorAndGetters()
 {
     $query = new Query();
     $query->setQuery('test123');
     $request = new Request();
     $request->addParam('testparam', 'test value');
     $event = new PostCreateRequest($query, $request);
     $this->assertEquals($query, $event->getQuery());
     $this->assertEquals($request, $event->getRequest());
 }
Example #10
0
 /**
  * Add request settings for the stats component
  *
  * @param  StatsComponent $component
  * @param  Request        $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable stats
     $request->addParam('stats', 'true');
     // add fields
     foreach ($component->getFields() as $field) {
         $value = $this->renderLocalParams($field->getKey(), array('ex' => $field->getExcludes()));
         $request->addParam('stats.field', $value);
         // add field specific facet stats
         foreach ($field->getFacets() as $facet) {
             $request->addParam('f.' . $field->getKey() . '.stats.facet', $facet);
         }
     }
     // add facet stats for all fields
     foreach ($component->getFacets() as $facet) {
         $request->addParam('stats.facet', $facet);
     }
     return $request;
 }
Example #11
0
 /**
  * Add request settings for the stats component.
  *
  * @param StatsComponent $component
  * @param Request        $request
  *
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable stats
     $request->addParam('stats', 'true');
     // add fields
     foreach ($component->getFields() as $field) {
         $pivots = $field->getPivots();
         $prefix = count($pivots) > 0 ? '{!tag=' . implode(',', $pivots) . '}' : '';
         $request->addParam('stats.field', $prefix . $field->getKey());
         // add field specific facet stats
         foreach ($field->getFacets() as $facet) {
             $request->addParam('f.' . $field->getKey() . '.stats.facet', $facet);
         }
     }
     // add facet stats for all fields
     foreach ($component->getFacets() as $facet) {
         $request->addParam('stats.facet', $facet);
     }
     return $request;
 }
 public function testConstructorAndGetters()
 {
     $client = new Client();
     $request = new Request();
     $request->addParam('testparam', 'test value');
     $endpoint = $client->getEndpoint();
     $event = new PreExecuteRequest($request, $endpoint);
     $this->assertEquals($request, $event->getRequest());
     $this->assertEquals($endpoint, $event->getEndpoint());
     return $event;
 }
Example #13
0
 /**
  * Add request settings for DistributedSearch.
  *
  * @param DistributedSearchComponent $component
  * @param Request                    $request
  *
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // add shards to request
     $shards = array_values($component->getShards());
     if (count($shards)) {
         $request->addParam('shards', implode(',', $shards));
     }
     $replicas = array_values($component->getReplicas());
     if (count($replicas)) {
         $value = $request->getParam('shards') ? $request->getParam('shards') . ',' . implode('|', $replicas) : implode('|', $replicas);
         $request->addParam('shards', $value, true);
     }
     $request->addParam('shards.qt', $component->getShardRequestHandler());
     // add collections to request
     $collections = array_values($component->getCollections());
     if (count($collections)) {
         $request->addParam('collection', implode(',', $collections));
     }
     return $request;
 }
Example #14
0
 /**
  * Add request settings for Dismax.
  *
  * @param DismaxComponent $component
  * @param Request         $request
  *
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable dismax
     $request->addParam('defType', $component->getQueryParser());
     $request->addParam('q.alt', $component->getQueryAlternative());
     $request->addParam('qf', $component->getQueryFields());
     $request->addParam('mm', $component->getMinimumMatch());
     $request->addParam('pf', $component->getPhraseFields());
     $request->addParam('ps', $component->getPhraseSlop());
     $request->addParam('qs', $component->getQueryPhraseSlop());
     $request->addParam('tie', $component->getTie());
     // add boostqueries to request
     $boostQueries = $component->getBoostQueries();
     if (count($boostQueries) !== 0) {
         foreach ($boostQueries as $boostQuery) {
             $request->addParam('bq', $boostQuery->getQuery());
         }
     }
     $request->addParam('bf', $component->getBoostFunctions());
     return $request;
 }
 public function testConstructorAndGetters()
 {
     $client = new Client();
     $request = new Request();
     $request->addParam('testparam', 'test value');
     $endpoint = $client->getEndpoint();
     $response = new Response('', array('HTTP 1.0 200 OK'));
     $event = new PostExecuteRequest($request, $endpoint, $response);
     $this->assertEquals($request, $event->getRequest());
     $this->assertEquals($endpoint, $event->getEndpoint());
     $this->assertEquals($response, $event->getResponse());
 }
 public function testPluginIntegration()
 {
     $client = new Client();
     $client->registerPlugin('testplugin', $this->plugin);
     $input = array('key' => 'xid', 'type' => 'param', 'name' => 'xid', 'value' => 123);
     $this->plugin->addCustomization($input);
     $originalRequest = new Request();
     $expectedRequest = new Request();
     $expectedRequest->addParam('xid', 123);
     // this should be the effect of the customization
     $observer = $this->getMock('Solarium\\Core\\Client\\Adapter\\Http', array('execute'));
     $observer->expects($this->once())->method('execute')->with($this->equalTo($expectedRequest))->will($this->returnValue(new Response('', array('HTTP 1.0 200 OK'))));
     $client->setAdapter($observer);
     $client->executeRequest($originalRequest);
 }
Example #17
0
 /**
  * Add request settings for morelikethis
  *
  * @param  MoreLikeThisComponent $component
  * @param  Request               $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable morelikethis
     $request->addParam('mlt', 'true');
     $request->addParam('mlt.fl', count($component->getFields()) ? implode(',', $component->getFields()) : null);
     $request->addParam('mlt.mintf', $component->getMinimumTermFrequency());
     $request->addParam('mlt.mindf', $component->getMinimumDocumentFrequency());
     $request->addParam('mlt.minwl', $component->getMinimumWordLength());
     $request->addParam('mlt.maxwl', $component->getMaximumWordLength());
     $request->addParam('mlt.maxqt', $component->getMaximumQueryTerms());
     $request->addParam('mlt.maxntp', $component->getMaximumNumberOfTokens());
     $request->addParam('mlt.boost', $component->getBoost());
     $request->addParam('mlt.qf', count($component->getQueryFields()) ? implode(',', $component->getQueryFields()) : null);
     $request->addParam('mlt.count', $component->getCount());
     return $request;
 }
Example #18
0
 /**
  * Add params for a range facet to request
  *
  * @param  Request    $request
  * @param  FacetPivot $facet
  * @return void
  */
 public function addFacetPivot($request, $facet)
 {
     $request->addParam('facet.pivot', implode(',', $facet->getFields()));
     $request->addParam('facet.pivot.mincount', $facet->getMinCount(), true);
 }
Example #19
0
 /**
  * Add params for a range facet to request
  *
  * @param  Request    $request
  * @param  FacetPivot $facet
  * @return void
  */
 public function addFacetPivot($request, $facet)
 {
     $request->addParam('facet.pivot', $this->renderLocalParams(implode(',', $facet->getFields()), array('key' => $facet->getKey(), 'ex' => $facet->getExcludes())));
     $request->addParam('facet.pivot.mincount', $facet->getMinCount(), true);
 }
Example #20
0
 /**
  * Add per-field override options to the request
  *
  * @param  HighlightingField $field
  * @param  Request           $request
  * @return void
  */
 protected function addFieldParams($field, $request)
 {
     $prefix = 'f.' . $field->getName() . '.hl.';
     $request->addParam($prefix . 'snippets', $field->getSnippets());
     $request->addParam($prefix . 'fragsize', $field->getFragSize());
     $request->addParam($prefix . 'mergeContiguous', $field->getMergeContiguous());
     $request->addParam($prefix . 'alternateField', $field->getAlternateField());
     $request->addParam($prefix . 'formatter', $field->getFormatter());
     $request->addParam($prefix . 'simple.pre', $field->getSimplePrefix());
     $request->addParam($prefix . 'simple.post', $field->getSimplePostfix());
     $request->addParam($prefix . 'fragmenter', $field->getFragmenter());
     $request->addParam($prefix . 'useFastVectorHighlighter', $field->getUseFastVectorHighlighter());
 }
Example #21
0
 /**
  * Add params for a interval facet to request
  *
  * @param  Request    $request
  * @param  FacetInterval $facet
  * @return void
  */
 public function addFacetInterval($request, $facet)
 {
     $field = $facet->getField();
     $request->addParam('facet.interval', $this->renderLocalParams($field));
     foreach ($facet->getSet() as $key => $setValue) {
         if (is_string($key)) {
             $setValue = '{!key="' . $key . '"}' . $setValue;
         }
         $request->addParam("f.{$field}.facet.interval.set", $setValue);
     }
 }
Example #22
0
 /**
  * Add request settings for Grouping.
  *
  * @param GroupingComponent $component
  * @param Request           $request
  *
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable grouping
     $request->addParam('group', 'true');
     $request->addParam('group.field', $component->getFields());
     $request->addParam('group.query', $component->getQueries());
     $request->addParam('group.limit', $component->getLimit());
     $request->addParam('group.offset', $component->getOffset());
     $request->addParam('group.sort', $component->getSort());
     $request->addParam('group.main', $component->getMainResult());
     $request->addParam('group.ngroups', $component->getNumberOfGroups());
     $request->addParam('group.cache.percent', $component->getCachePercentage());
     $request->addParam('group.truncate', $component->getTruncate());
     $request->addParam('group.func', $component->getFunction());
     $request->addParam('group.facet', $component->getFacet());
     $request->addParam('group.format', $component->getFormat());
     return $request;
 }
Example #23
0
 /**
  * Add request settings for Spellcheck
  *
  * @param  SpellcheckComponent $component
  * @param  Request             $request
  * @return Request
  */
 public function buildComponent($component, $request)
 {
     // enable spellcheck
     $request->addParam('spellcheck', 'true');
     $request->addParam('spellcheck.q', $component->getQuery());
     $request->addParam('spellcheck.build', $component->getBuild());
     $request->addParam('spellcheck.reload', $component->getReload());
     $request->addParam('spellcheck.dictionary', $component->getDictionary());
     $request->addParam('spellcheck.count', $component->getCount());
     $request->addParam('spellcheck.onlyMorePopular', $component->getOnlyMorePopular());
     $request->addParam('spellcheck.extendedResults', $component->getExtendedResults());
     $request->addParam('spellcheck.collate', $component->getCollate());
     $request->addParam('spellcheck.maxCollations', $component->getMaxCollations());
     $request->addParam('spellcheck.maxCollationTries', $component->getMaxCollationTries());
     $request->addParam('spellcheck.maxCollationEvaluations', $component->getMaxCollationEvaluations());
     $request->addParam('spellcheck.collateExtendedResults', $component->getCollateExtendedResults());
     $request->addParam('spellcheck.accuracy', $component->getAccuracy());
     foreach ($component->getCollateParams() as $param => $value) {
         $request->addParam('spellcheck.collateParam.' . $param, $value);
     }
     return $request;
 }