source: sandbox/expresso-solr/expressoMail1_2/inc/solrclient/examples/7.1-plugin-loadbalancer.php @ 7576

Revision 7576, 1.8 KB checked in by adir, 11 years ago (diff)

Ticket #000 - Adicionando a integracao de buscas com Solr na base a ser isnerida na comunidade

Line 
1<?php
2require('init.php');
3
4htmlHeader();
5
6// create a client instance and get loadbalancer plugin instance
7$client = new Solarium_Client($config);
8$loadbalancer = $client->getPlugin('loadbalancer');
9
10// apply loadbalancer settings
11$optionsSolrOne = array('host' => '127.0.0.1', 'port' => 8983);
12$optionsSolrTwo = array('host' => '127.0.0.1', 'port' => 7574);
13$loadbalancer->addServer('solr1', $optionsSolrOne, 100);
14$loadbalancer->addServer('solr2', $optionsSolrTwo, 200);
15$loadbalancer->addServer('solr3', $optionsSolrTwo, 1);
16
17// create a basic query to execute
18$query = $client->createSelect();
19
20// execute the query multiple times, displaying the server for each execution
21for($i=1; $i<=8; $i++) {
22    $resultset = $client->select($query);
23    echo 'Query execution #' . $i . '<br/>';
24    echo 'NumFound: ' . $resultset->getNumFound(). '<br/>';
25    echo 'Server: ' . $loadbalancer->getLastServerKey() .'<hr/>';
26}
27
28// force a server for a query (normally solr 3 is extremely unlikely based on it's weight)
29$loadbalancer->setForcedServerForNextQuery('solr3');
30$resultset = $client->select($query);
31echo 'Query execution with server forced to solr3<br/>';
32echo 'NumFound: ' . $resultset->getNumFound(). '<br/>';
33echo 'Server: ' . $loadbalancer->getLastServerKey() .'<hr/>';
34
35// test a ping query
36$query = $client->createPing();
37$client->ping($query);
38echo 'Loadbalanced ping query, should display a loadbalancing server:<br/>';
39echo 'Ping server: ' . $loadbalancer->getLastServerKey() .'<hr/>';
40
41// exclude ping query from loadbalancing
42$loadbalancer->addBlockedQueryType(Solarium_Client::QUERYTYPE_PING);
43$client->ping($query);
44echo 'Non-loadbalanced ping query, should not display a loadbalancing server:<br/>';
45echo 'Ping server: ' . $loadbalancer->getLastServerKey() .'<hr/>';
46
47htmlFooter();
Note: See TracBrowser for help on using the repository browser.