/** * 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; }
/** * 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; }
/** * @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()); }
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()); }
/** * 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()); }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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); }
/** * 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; }
/** * 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); }
/** * 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); }
/** * 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()); }
/** * 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); } }
/** * 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; }
/** * 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; }