[
https://issues.apache.org/jira/browse/SOLR-341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Donovan Jimenez updated SOLR-341:
---------------------------------
Attachment: SolrPhpClient.2008-11-14.zip
Rich Robinson helped me to track down an issue where he found that documents
with values = false were creating prematurely exiting foreach loops (when
iterating a document). I determined it was the valid() implementation of the
Iterator iterface, and after fussing with it decided to just implement
IteratorAggregator instead and use the pre-existing SPL ArrayIterator class.
This simplifies the Apache_Solr_Document code and now all document values are
looped even when some are false.
> PHP Solr Client
> ---------------
>
> Key: SOLR-341
> URL: https://issues.apache.org/jira/browse/SOLR-341
> Project: Solr
> Issue Type: New Feature
> Components: clients - php
> Affects Versions: 1.2
> Environment: PHP >= 5.2.0 (or older with JSON PECL extension or other
> json_decode function implementation). Solr >= 1.2
> Reporter: Donovan Jimenez
> Priority: Trivial
> Fix For: 1.4
>
> Attachments: SolrPhpClient.2008-09-02.zip,
> SolrPhpClient.2008-11-14.zip, SolrPhpClient.zip
>
>
> Developed this client when the example PHP source didn't meet our needs. The
> company I work for agreed to release it under the terms of the Apache License.
> This version is slightly different from what I originally linked to on the
> dev mailing list. I've incorporated feedback from Yonik and "hossman" to
> simplify the client and only accept one response format (JSON currently).
> When Solr 1.3 is released the client can be updated to use the PHP or
> Serialized PHP response writer.
> example usage from my original mailing list post:
> <?php
> require_once('Solr/Service.php');
> $start = microtime(true);
> $solr = new Solr_Service(); //Or explicitly new Solr_Service('localhost',
> 8180, '/solr');
> try
> {
> $response = $solr->search('solr', 0, 10,
> array(/* you can include other parameters here */));
> echo 'search returned with status = ',
> $response->responseHeader->status,
> ' and took ', microtime(true) - $start, ' seconds', "\n";
> //here's how you would access results
> //Notice that I've mapped the values by name into a tree of stdClass
> objects
> //and arrays (actually, most of this is done by json_decode )
> if ($response->response->numFound > 0)
> {
> $doc_number = $response->response->start;
> foreach ($response->response->docs as $doc)
> {
> $doc_number++;
> echo $doc_number, ': ', $doc->text, "\n";
> }
> }
> //for the purposes of seeing the available structure of the response
> //NOTE: Solr_Response::_parsedData is lazy loaded, so a print_r on
> the response before
> //any values are accessed may result in different behavior (in case
> //anyone has some troubles debugging)
> //print_r($response);
> }
> catch (Exception $e)
> {
> echo $e->getMessage(), "\n";
> }
> ?>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.