Commit bffa374a authored by Bas de Nooijer's avatar Bas de Nooijer

Added Solr param 'omitHeader' with a default value of 'true'. This saves a...

Added Solr param 'omitHeader' with a default value of 'true'. This saves a little traffic and parsing. Also added method to switch back on.
parent f275881c
...@@ -109,6 +109,27 @@ abstract class Query extends Configurable implements QueryInterface ...@@ -109,6 +109,27 @@ abstract class Query extends Configurable implements QueryInterface
return $this->getOption('resultclass'); return $this->getOption('resultclass');
} }
/**
* Set omitHeader option
*
* @param boolean $value
* @return self Provides fluent interface
*/
public function setOmitHeader($value)
{
return $this->setOption('omitheader', $value);
}
/**
* Get omitHeader option
*
* @return boolean
*/
public function getOmitHeader()
{
return $this->getOption('omitheader');
}
/** /**
* Get a helper instance * Get a helper instance
* *
......
...@@ -57,6 +57,7 @@ abstract class RequestBuilder implements RequestBuilderInterface ...@@ -57,6 +57,7 @@ abstract class RequestBuilder implements RequestBuilderInterface
{ {
$request = new Request; $request = new Request;
$request->setHandler($query->getHandler()); $request->setHandler($query->getHandler());
$request->addParam('omitHeader', $query->getOmitHeader());
$request->addParams($query->getParams()); $request->addParams($query->getParams());
$request->addParam('wt', 'json'); $request->addParam('wt', 'json');
......
...@@ -62,6 +62,7 @@ class Document extends Query ...@@ -62,6 +62,7 @@ class Document extends Query
protected $options = array( protected $options = array(
'handler' => 'analysis/document', 'handler' => 'analysis/document',
'resultclass' => 'Solarium\QueryType\Analysis\Result\Document', 'resultclass' => 'Solarium\QueryType\Analysis\Result\Document',
'omitheader' => true,
); );
/** /**
......
...@@ -55,6 +55,7 @@ class Field extends Query ...@@ -55,6 +55,7 @@ class Field extends Query
protected $options = array( protected $options = array(
'handler' => 'analysis/field', 'handler' => 'analysis/field',
'resultclass' => 'Solarium\QueryType\Analysis\Result\Field', 'resultclass' => 'Solarium\QueryType\Analysis\Result\Field',
'omitheader' => true,
); );
/** /**
......
...@@ -70,7 +70,8 @@ class Query extends SelectQuery ...@@ -70,7 +70,8 @@ class Query extends SelectQuery
'fields' => '*,score', 'fields' => '*,score',
'interestingTerms' => 'none', 'interestingTerms' => 'none',
'matchinclude' => false, 'matchinclude' => false,
'stream' => false 'stream' => false,
'omitheader' => true,
); );
/** /**
......
...@@ -51,6 +51,17 @@ use Solarium\QueryType\Ping\RequestBuilder as RequestBuilder; ...@@ -51,6 +51,17 @@ use Solarium\QueryType\Ping\RequestBuilder as RequestBuilder;
class Query extends BaseQuery class Query extends BaseQuery
{ {
/**
* Default options
*
* @var array
*/
protected $options = array(
'resultclass' => 'Solarium\QueryType\Ping\Result',
'handler' => 'admin/ping',
'omitheader' => true,
);
/** /**
* Get type for this query * Get type for this query
* *
...@@ -81,14 +92,4 @@ class Query extends BaseQuery ...@@ -81,14 +92,4 @@ class Query extends BaseQuery
return null; return null;
} }
/**
* Default options
*
* @var array
*/
protected $options = array(
'resultclass' => 'Solarium\QueryType\Ping\Result',
'handler' => 'admin/ping',
);
} }
...@@ -136,6 +136,7 @@ class Query extends BaseQuery ...@@ -136,6 +136,7 @@ class Query extends BaseQuery
'start' => 0, 'start' => 0,
'rows' => 10, 'rows' => 10,
'fields' => '*,score', 'fields' => '*,score',
'omitheader' => true,
); );
/** /**
......
...@@ -59,6 +59,7 @@ class Query extends BaseQuery ...@@ -59,6 +59,7 @@ class Query extends BaseQuery
'handler' => 'suggest', 'handler' => 'suggest',
'resultclass' => 'Solarium\QueryType\Suggester\Result\Result', 'resultclass' => 'Solarium\QueryType\Suggester\Result\Result',
'termclass' => 'Solarium\QueryType\Suggester\Result\Term', 'termclass' => 'Solarium\QueryType\Suggester\Result\Term',
'omitheader' => true,
); );
/** /**
......
...@@ -60,7 +60,8 @@ class Query extends BaseQuery ...@@ -60,7 +60,8 @@ class Query extends BaseQuery
*/ */
protected $options = array( protected $options = array(
'resultclass' => 'Solarium\QueryType\Terms\Result', 'resultclass' => 'Solarium\QueryType\Terms\Result',
'handler' => 'terms', 'handler' => 'terms',
'omitheader' => true,
); );
/** /**
......
...@@ -100,6 +100,7 @@ class Query extends BaseQuery ...@@ -100,6 +100,7 @@ class Query extends BaseQuery
'handler' => 'update', 'handler' => 'update',
'resultclass' => 'Solarium\QueryType\Update\Result', 'resultclass' => 'Solarium\QueryType\Update\Result',
'documentclass' => 'Solarium\QueryType\Update\Query\Document', 'documentclass' => 'Solarium\QueryType\Update\Query\Document',
'omitheader' => true,
); );
/** /**
......
...@@ -53,7 +53,21 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -53,7 +53,21 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
$request = $this->builder->build($query); $request = $this->builder->build($query);
$this->assertEquals( $this->assertEquals(
'select?p1=v1&p2=v2&wt=json', 'select?omitHeader=true&p1=v1&p2=v2&wt=json',
urldecode($request->getUri())
);
}
public function testBuildWithHeader()
{
$query = new SelectQuery;
$query->addParam('p1','v1');
$query->addParam('p2','v2');
$query->setOmitHeader(false);
$request = $this->builder->build($query);
$this->assertEquals(
'select?omitHeader=false&p1=v1&p2=v2&wt=json',
urldecode($request->getUri()) urldecode($request->getUri())
); );
} }
......
...@@ -68,6 +68,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -68,6 +68,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
'wt' => 'json', 'wt' => 'json',
'analysis.query' => $query, 'analysis.query' => $query,
'analysis.showmatch' => 'true', 'analysis.showmatch' => 'true',
'omitHeader' => 'true',
), ),
$request->getParams() $request->getParams()
); );
......
...@@ -88,7 +88,8 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -88,7 +88,8 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
'fl' => '*,score', 'fl' => '*,score',
'rows' => 10, 'rows' => 10,
'start' => 12, 'start' => 12,
'wt' => 'json' 'wt' => 'json',
'omitHeader' => 'true',
), ),
$request->getParams() $request->getParams()
); );
......
...@@ -43,7 +43,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -43,7 +43,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
$request = $builder->build(new Query); $request = $builder->build(new Query);
$this->assertEquals( $this->assertEquals(
'admin/ping?wt=json', 'admin/ping?omitHeader=true&wt=json',
$request->getUri() $request->getUri()
); );
......
...@@ -74,7 +74,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -74,7 +74,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
); );
$this->assertEquals( $this->assertEquals(
'select?wt=json&q=*:*&start=0&rows=10&fl=*,score', 'select?omitHeader=true&wt=json&q=*:*&start=0&rows=10&fl=*,score',
urldecode($request->getUri()) urldecode($request->getUri())
); );
} }
...@@ -91,7 +91,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -91,7 +91,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
); );
$this->assertEquals( $this->assertEquals(
'select?wt=json&q=*:*&start=0&rows=10&fl=*,score&sort=id asc,name desc', 'select?omitHeader=true&wt=json&q=*:*&start=0&rows=10&fl=*,score&sort=id asc,name desc',
urldecode($request->getUri()) urldecode($request->getUri())
); );
} }
...@@ -108,7 +108,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -108,7 +108,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
); );
$this->assertEquals( $this->assertEquals(
'select?wt=json&q=*:*&start=0&rows=10&fl=*,score&q.op=AND&df=mydefault', 'select?omitHeader=true&wt=json&q=*:*&start=0&rows=10&fl=*,score&q.op=AND&df=mydefault',
urldecode($request->getUri()) urldecode($request->getUri())
); );
} }
...@@ -127,7 +127,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -127,7 +127,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
); );
$this->assertEquals( $this->assertEquals(
'select?wt=json&q=*:*&start=0&rows=10&fl=*,score&sort=id asc,name desc&fq=published:true&fq={!tag=t1,t2}category:23', 'select?omitHeader=true&wt=json&q=*:*&start=0&rows=10&fl=*,score&sort=id asc,name desc&fq=published:true&fq={!tag=t1,t2}category:23',
urldecode($request->getUri()) urldecode($request->getUri())
); );
} }
......
...@@ -72,6 +72,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -72,6 +72,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
'spellcheck.onlyMorePopular' => 'true', 'spellcheck.onlyMorePopular' => 'true',
'spellcheck.collate' => 'true', 'spellcheck.collate' => 'true',
'wt' => 'json', 'wt' => 'json',
'omitHeader' => 'true',
), ),
$request->getParams() $request->getParams()
); );
......
...@@ -94,6 +94,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -94,6 +94,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
'terms.upper' => 'x', 'terms.upper' => 'x',
'terms.upper.incl' => 'false', 'terms.upper.incl' => 'false',
'wt' => 'json', 'wt' => 'json',
'omitHeader' => 'true',
), ),
$request->getParams() $request->getParams()
); );
......
...@@ -72,7 +72,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase ...@@ -72,7 +72,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
{ {
$request = $this->builder->build($this->query); $request = $this->builder->build($this->query);
$this->assertEquals( $this->assertEquals(
'update?wt=json', 'update?omitHeader=true&wt=json',
$request->getUri() $request->getUri()
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment