Commit 0e6d174e authored by Bas de Nooijer's avatar Bas de Nooijer

Lots of fixes in examples

parent 84906155
<?php
require('init.php');
use Solarium\QueryType\Select\Query\Query as Select;
htmlHeader();
// create a client instance
......@@ -19,7 +21,7 @@ $query->setStart(2)->setRows(20);
$query->setFields(array('id','name','price'));
// sort the results by price ascending
$query->addSort('price', Solarium\Query\Select\Select::SORT_ASC);
$query->addSort('price', Select::SORT_ASC);
// this executes the query and returns the result
$resultset = $client->select($query);
......
<?php
require('init.php');
use Solarium\Client\Client;
use Solarium\QueryType\Select\Query\Query as Select;
htmlHeader();
// create a client instance
$client = new Solarium\Client\Client($config);
$client = new Client($config);
// first create a base query as a query class
class PriceQuery extends Solarium\Query\Select\Select
class PriceQuery extends Select
{
protected function _init()
{
......
<?php
require('init.php');
use Solarium\Client\Client;
htmlHeader();
// create a client instance
$client = new Solarium\Client\Client($config);
$client = new Client($config);
// get a morelikethis query instance
$query = $client->createMoreLikeThis();
......
<?php
require('init.php');
use Solarium\QueryType\Select\Query\Query as Select;
htmlHeader();
// create a client instance
......@@ -13,7 +15,7 @@ $query = $client->createSelect();
$query->setQuery('*:*');
$query->setStart(2)->setRows(20);
$query->setFields(array('id','name','price'));
$query->addSort('price', Solarium\Query\Select\Select::SORT_ASC);
$query->addSort('price', Select::SORT_ASC);
// create a filterquery using the API
$fq = $query->createFilterQuery('maxprice')->setQuery('price:[1 TO 300]');
......
<?php
require('init.php');
use Solarium\Client\Client;
use Solarium\QueryType\Select\Query\Query as Select;
htmlHeader();
// In most cases using the API or config is advisable, however in some cases it can make sense to extend classes.
// This makes it possible to create 'query inheritance' like in this example
class ProductQuery extends Solarium\Query\Select{
class ProductQuery extends Select{
protected function _init()
{
......@@ -15,7 +18,7 @@ class ProductQuery extends Solarium\Query\Select{
$this->setQuery('*:*');
$this->setStart(2)->setRows(20);
$this->setFields(array('id','name','price'));
$this->addSort('price', Solarium\Query\Select::SORT_ASC);
$this->addSort('price', self::SORT_ASC);
// create a facet field instance and set options
$facetSet = $this->getFacetSet();
......@@ -39,7 +42,7 @@ class ProductPriceLimitedQuery extends ProductQuery{
}
// create a client instance
$client = new Solarium\Client\Client($config);
$client = new Client($config);
// create a query instance
$query = new ProductPriceLimitedQuery;
......
<?php
require('init.php');
use Solarium\Client\Client;
use Solarium\QueryType\Select\Query\Query as Select;
htmlHeader();
// This is a custom query class that could have some customized logic
class MyQuery extends Solarium\Query\Select\Select
class MyQuery extends Select
{
// ...customization here...
}
......@@ -12,7 +15,7 @@ class MyQuery extends Solarium\Query\Select\Select
// And this is the extended client, that modifies the default query mapping
// for select queries to our custom query class.
// BTW, the same could also be done using a plugin, see example 5.3.2
class MyClient extends Solarium\Client\Client
class MyClient extends Client
{
/**
* Querytype mappings
......@@ -20,18 +23,8 @@ class MyClient extends Solarium\Client\Client
protected $_queryTypes = array(
self::QUERYTYPE_SELECT => array(
'query' => 'MyQuery',
'requestbuilder' => 'Solarium\Client\RequestBuilder\Select\Select',
'responseparser' => 'Solarium\Client\ResponseParser\Select\Select'
),
self::QUERYTYPE_UPDATE => array(
'query' => 'Solarium\Query\Update',
'requestbuilder' => 'Solarium\Client\RequestBuilder\Update',
'responseparser' => 'Solarium\Client\ResponseParser\Update'
),
self::QUERYTYPE_PING => array(
'query' => 'Solarium\Query\Ping',
'requestbuilder' => 'Solarium\Client\RequestBuilder\Ping',
'responseparser' => 'Solarium\Client\ResponseParser\Ping'
'requestbuilder' => 'Solarium\QueryType\Select\RequestBuilder\RequestBuilder',
'responseparser' => 'Solarium\QueryType\Select\ResponseParser\ResponseParser'
),
);
}
......
<?php
require('init.php');
use Solarium\Client\Client;
use Solarium\Plugin\AbstractPlugin;
use Solarium\QueryType\Select\Query\Query as Select;
// This is a custom query class that could have some customized logic
class MyQuery extends Solarium\Query\Select\Select
class MyQuery extends Select
{
// ...customization here...
}
// this very simple plugin that modifies the default querytype mapping
class queryCustomizer extends Solarium\Plugin\AbstractPlugin
class queryCustomizer extends AbstractPlugin
{
protected function _initPlugin()
{
$this->_client->registerQueryType(
Solarium\Client\Client::QUERYTYPE_SELECT,
Client::QUERYTYPE_SELECT,
'MyQuery',
'Solarium\Client\RequestBuilder\Select\Select',
'Solarium\Client\ResponseParser\Select\Select'
'Solarium\QueryType\Select\RequestBuilder\RequestBuilder',
'Solarium\QueryType\Select\ResponseParser\ResponseParser'
);
}
......@@ -27,7 +30,7 @@ class queryCustomizer extends Solarium\Plugin\AbstractPlugin
htmlHeader();
// create a client instance and register the plugin
$client = new Solarium\Client\Client($config);
$client = new Client($config);
$client->registerPlugin('querycustomizer', 'queryCustomizer');
// create a select query instance
......
......@@ -66,7 +66,7 @@ class Document extends Query
*/
protected $_options = array(
'handler' => 'analysis/document',
'resultclass' => 'Solarium\Result\Analysis\Document',
'resultclass' => 'Solarium\QueryType\Analysis\Result\Document',
);
/**
......
......@@ -58,7 +58,7 @@ class Field extends Query
*/
protected $_options = array(
'handler' => 'analysis/field',
'resultclass' => 'Solarium\Result\Analysis\Field',
'resultclass' => 'Solarium\QueryType\Analysis\Result\Field',
);
/**
......
......@@ -76,7 +76,7 @@ class Query extends SelectQuery
*/
protected $_options = array(
'handler' => 'mlt',
'resultclass' => 'Solarium\Quertype\MoreLikeThis\Result',
'resultclass' => 'Solarium\QueryType\MoreLikeThis\Result',
'documentclass' => 'Solarium\Document\ReadOnly',
'query' => '*:*',
'start' => 0,
......
......@@ -72,7 +72,7 @@ class Query extends BaseQuery
* @var array
*/
protected $_options = array(
'resultclass' => 'Solarium\Result\Ping',
'resultclass' => 'Solarium\QueryType\Ping\Result',
'handler' => 'admin/ping',
);
......
......@@ -71,7 +71,7 @@ class Query extends BaseQuery
*/
protected $_options = array(
'handler' => 'suggest',
'resultclass' => 'Solarium\QueryType\Suggester\Result\Suggester',
'resultclass' => 'Solarium\QueryType\Suggester\Result\Result',
'termclass' => 'Solarium\QueryType\Suggester\Result\Term',
);
......
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