Commit 702ca05d authored by Gasol Wu's avatar Gasol Wu

MoreLikeThis handler can pass raw POST body as stream

parent 44d58ac6
......@@ -56,8 +56,14 @@ class Solarium_Client_RequestBuilder_MoreLikeThis extends Solarium_Client_Reques
$request = new Solarium_Client_Request;
$request->setHandler($query->getHandler());
if ($query->isStream()) {
$request->setRawData($query->getQuery());
$request->setMethod(Solarium_Client_Request::METHOD_POST);
$request->addHeader('Content-Type: text/plain; charset=utf-8');
} else {
$request->addParam('q', $query->getQuery());
}
// add basic params to request
$request->addParam('q', $query->getQuery());
$request->addParam('mlt.match.offset', $query->getStart());
$request->addParam('rows', $query->getRows());
$request->addParam('fl', implode(',', $query->getFields()));
......
......@@ -88,6 +88,7 @@ class Solarium_Query_MoreLikeThis extends Solarium_Query
'mlt.fl' => 'text',
'mlt.interestingTerms' => 'none',
'mlt.match.include' => 'false',
'stream' => false
);
/**
......@@ -185,11 +186,24 @@ class Solarium_Query_MoreLikeThis extends Solarium_Query
* escaping of user input.
*
* @param string $query
* @param boolean $stream true for POST requests where the content-type is
* not "application/x-www-form-urlencoded", the raw POST body is passed as a stream.
* @link http://wiki.apache.org/solr/ContentStream ContentStream
* @return Solarium_Query_Select Provides fluent interface
*/
public function setQuery($query)
public function setQuery($query, $stream = false)
{
return $this->_setOption('query', trim($query));
return $this->_setOption('stream', $stream)
->_setOption('query', trim($query));
}
/**
* @see setQuery
* @return boolean
*/
public function isStream()
{
return $this->getOption('stream');
}
/**
......
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