IT. Expert System.

PHP

Examples


Examples

Examples of how to use the Apache Solr extension in PHP

Example #1 Contents of the BootStrap file

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME''solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE'true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME''admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD''changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT'10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT''certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY''certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY''certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD''StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO''certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH''certs/');

?>

Example #2 Adding a document to the index

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id'334455);
$doc->addField('cat''Software');
$doc->addField('cat''Lucene');

$updateResponse $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 446   ) ) 

Example #3 Merging one document into another document

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id'1123);

$doc->features "PHP Client Side";
$doc->features "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   'Information Technology';

$second_doc->addField('cat''Lucene Search');

$second_doc->merge($doctrue);

print_r($second_doc->toArray());


?>

The above example will output something similar to:

 Array (  [document_boost] => 0  [field_count] => 3  [fields] => Array   (    [0] => SolrDocumentField Object     (      [name] => cat      [boost] => 0      [values] => Array       (        [0] => Software        [1] => Custom Search        [2] => Information Technology       )     )    [1] => SolrDocumentField Object     (      [name] => id      [boost] => 0      [values] => Array       (        [0] => 1123       )     )    [2] => SolrDocumentField Object     (      [name] => features      [boost] => 0      [values] => Array       (        [0] => PHP Client Side        [1] => Fast development cycles       )     )   ) ) 

Example #4 Searching for documents - SolrObject responses

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response $client->query($query);

$response $query_response->getResponse();

print_r($response);

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 1    [params] => SolrObject Object     (      [wt] => xml      [rows] => 50      [start] => 0      [indent] => on      [q] => lucene      [fl] => cat,features,id,timestamp      [version] => 2.2     )   )  [response] => SolrObject Object   (    [numFound] => 3    [start] => 0    [docs] => Array     (      [0] => SolrObject Object       (        [cat] => Array         (          [0] => Software          [1] => Lucene         )        [id] => 334456       )      [1] => SolrObject Object       (        [cat] => Array         (          [0] => Software          [1] => Lucene         )        [id] => 334455       )      [2] => SolrObject Object       (        [cat] => Array         (          [0] => software          [1] => search         )        [features] => Array         (          [0] => Advanced Full-Text Search Capabilities using Lucene          [1] => Optimized for High Volume Web Traffic          [2] => Standards Based Open Interfaces - XML and HTTP          [3] => Comprehensive HTML Administration Interfaces          [4] => Scalability - Efficient Replication to other Solr Search Servers          [5] => Flexible and Adaptable with XML configuration and Schema          [6] => Good unicode support: héllo (hello with an accent over the e)         )        [id] => SOLR1000        [timestamp] => 2009-09-04T20:38:55.906       )     )   ) ) 

Example #5 Searching for documents - SolrDocument responses

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response $query_response->getResponse();

print_r($response);

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 1    [params] => SolrObject Object     (      [wt] => xml      [rows] => 50      [start] => 0      [indent] => on      [q] => lucene      [fl] => cat,features,id,timestamp      [version] => 2.2     )   )  [response] => SolrObject Object   (    [numFound] => 3    [start] => 0    [docs] => Array     (      [0] => SolrDocument Object       (        [_hashtable_index:SolrDocument:private] => 19740       )      [1] => SolrDocument Object       (        [_hashtable_index:SolrDocument:private] => 25485       )      [2] => SolrDocument Object       (        [_hashtable_index:SolrDocument:private] => 25052       )     )   ) ) 

Example #6 Simple TermsComponent example - basic

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 2   )  [terms] => SolrObject Object   (    [cat] => SolrObject Object     (      [electronics] => 14      [Lucene] => 4      [Software] => 4      [memory] => 3      [card] => 2      [connector] => 2      [drive] => 2      [graphics] => 2      [hard] => 2      [monitor] => 2     )   ) ) 

Example #7 Simple TermsComponent example - using a prefix

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 1   )  [terms] => SolrObject Object   (    [cat] => SolrObject Object     (      [card] => 2      [connector] => 2      [camera] => 1      [copier] => 1     )   ) ) 

Example #8 Simple TermsComponent example - specifying a minimum frequency

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse $client->query($query);

print_r($updateResponse->getResponse());

?>

The above example will output something similar to:

 SolrObject Object (  [responseHeader] => SolrObject Object   (    [status] => 0    [QTime] => 0   )  [terms] => SolrObject Object   (    [cat] => SolrObject Object     (      [card] => 2      [connector] => 2     )   ) ) 

Example #9 Simple Facet Example

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

The above example will output something similar to:

 SolrObject Object (  [cat] => SolrObject Object   (    [electronics] => 14    [memory] => 3    [Lucene] => 2    [Software] => 2    [card] => 2    [connector] => 2    [drive] => 2    [graphics] => 2    [hard] => 2    [monitor] => 2    [search] => 2    [software] => 2   )  [name] => SolrObject Object   (    [gb] => 6    [1] => 3    [184] => 3    [2] => 3    [3200] => 3    [400] => 3    [500] => 3    [ddr] => 3    [i] => 3    [ipod] => 3    [memori] => 3    [pc] => 3    [pin] => 3    [pod] => 3    [sdram] => 3    [system] => 3    [unbuff] => 3    [canon] => 2    [corsair] => 2    [drive] => 2    [hard] => 2    [mb] => 2    [n] => 2    [power] => 2    [retail] => 2    [video] => 2    [x] => 2   ) ) 

Example #10 Simple Facet Example - with optional field override for mincount

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4'name');

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

The above example will output something similar to:

 SolrObject Object (  [cat] => SolrObject Object   (    [electronics] => 14    [memory] => 3    [Lucene] => 2    [Software] => 2    [card] => 2    [connector] => 2    [drive] => 2    [graphics] => 2    [hard] => 2    [monitor] => 2    [search] => 2    [software] => 2   )  [name] => SolrObject Object   (    [gb] => 6   ) ) 

Example #11 Connecting to SSL-Enabled Server

<?php

include "bootstrap.php";

$options = array
(
    
'hostname' => SOLR_SERVER_HOSTNAME,
    
'login'    => SOLR_SERVER_USERNAME,
    
'password' => SOLR_SERVER_PASSWORD,
    
'port'     => SOLR_SERVER_PORT,
    
'timeout'  => SOLR_SERVER_TIMEOUT,
    
'secure'   => SOLR_SECURE,
    
'ssl_cert' => SOLR_SSL_CERT_ONLY,
    
'ssl_key'  => SOLR_SSL_KEY,
    
'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    
'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4'name');

$updateResponse $client->query($query);

$response_array $updateResponse->getResponse();

$facet_data $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

The above example will output something similar to:

 SolrObject Object (  [cat] => SolrObject Object   (    [electronics] => 14    [memory] => 3    [Lucene] => 2    [Software] => 2    [card] => 2    [connector] => 2    [drive] => 2    [graphics] => 2    [hard] => 2    [monitor] => 2    [search] => 2    [software] => 2   )  [name] => SolrObject Object   (    [gb] => 6   ) ) 


Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 858 / . Delta: 0.01811 с