solr pecl.php.net The Apache Solr PHP extension is an extremely fast, light-weight, feature-rich library that allows PHP applications to communicate easily and efficiently with Apache Solr server instances using an object-oriented API. It effectively simplifies the process of interacting with Apache Solr using PHP. The extension has features such as built-in, serializable query string builder objects which effectively simplifies the manipulation of name-value pair request parameters across repeated requests. The response from the Solr server is also automatically parsed into native php objects whose properties can be accessed as array keys or object properties without any additional configuration on the client-side. Its advanced HTTP client reuses the same connection across multiple requests and provides built-in support for connecting to Solr servers secured behind HTTP Authentication or HTTP proxy servers. It is also able to connect to SSL-enabled containers. Please consult the documentation for more details on features. Included in the source code are phpdoc stubs that enable autocomplete of Solr classes and methods in IDE during development in userland. Please consider staring the package on github, and get a free release ;) https://github.com/php/pecl-search_engine-solr Omar Shaban omars omars@php.net yes 2020-09-09 2.5.1 2.5.1 stable stable PHP License - PHP 7.4 compatible - PHP 7 windows support - PHP 8.0.0beta3 compatible - Bug #72740 Fixes NULL byte when using addQueryField() w/o boost 7.0 1.4.0 libxml solr Omar Shaban omars omars@php.net yes 2.5.1 2.5.1 stable stable 2020-09-09 PHP License - PHP 7.4 compatible - PHP 7 windows support - PHP 8.0.0beta3 compatible - Bug #72740 Fixes NULL byte when using addQueryField() w/o boost Omar Shaban omars omars@php.net yes 2.5.0 2.5.0 stable stable 2019-07-04 PHP License - Atomic Updates (partials) - Simple Optimistic Concurrency - Compatibility with PHP 7.1, 7.2, 7.3, latest 7.4 - Enable gzip encoding if server supports it - Fix Real Time Get requests fails if it wasn't the first request - Fix addQueryField return wrong query - Fix Solr Extension build fail with curl 7.19+ Omar Shaban omars omars@php.net yes 2.4.0 2.4.0 stable stable 2016-03-30 PHP License - PHP 7 Support [Request #70696] - Performance Optimizations - Enabled SolrUtils::getSolrStats() - Fix SolrException*::getInternalInfo - Fix SolrQueryResponse::getRequestUrl returns wrong url with terms [Bug #71591] - Fix SolrClient::deleteByIds Segfaults with invalid ids [Bug #71853] - Fix SolrObject::offsetExists SegFault [Bug #71852] - Fix float formatting with decimal comma [Bug #71568] Omar Shaban omars omars@php.net yes 2.3.0 2.3.0 stable stable 2015-11-29 PHP License - Support indexing child/nested documents [Request #70739] - Support nested documents parsing SolrObject [Request #70953] - Support nested documents parsing SolrDocument [Request #70974] - Added maxScore to SolrResponse [Request #68610] - Fixed issues on big endean processors (Remi Collet) - Enhancements on method parameter naming (reflections) Omar Shaban omars omars@php.net yes 2.2.1 2.2.1 stable stable 2015-09-27 PHP License - Fix windows build Omar Shaban omars omars@php.net yes 2.2.0 2.2.0 stable stable 2015-09-26 PHP License - Support Real Time Get (Request #68647) - Support Result Grouping (Request #68793) - Support Field Collapsing (Request #70175) - Support Expand Component (Request #70176) - SolrMissingMandatoryParameterException (Request #70301) - Fix SegFault on Solr Server 500 Response with no msg [xml RW] (Bug #69156) - Fix SegFault on non-phpserialized 500 responses from Solr Server with PHPS RW (Bug #69156) - Fix Failed to parse 500 error response when it lacks msg JSON/PHPS RW (Bug #70495, #70496) - Fix compatibility tests with Solr Server 5 (Bug #70333) - Fix Error unserializing raw response on statistics response having NaN as value (Bug #67394) Omar Shaban omars omars@php.net yes 2.1.0 2.1.0 stable stable 2014-01-15 PHP License - New Feature: SolrDisMaxQuery Builder (dismax/edismax) [Feature #67101] - Support PHPS (PHP Serialized) Response Writer [Request #61329] - SolrResponse::getArrayResponse [Feature #67660] - SolrResponse::getResponse() returns SolrObject instead of array (with json response writer) [Bug #67579] - Argument list parameter: Argument to value separator disappears [Bug #68179] - Conflict Occurs When using SolrDisMax::addBoostQuery and setBoostQuery [Bug #68181] - Doc Fix [Doc #67542] - Internals: simple_list parameter type allow custom delimiter - Internals: Allowed zero-length argument value - Internals: Allowed zero-length argument-to-argument-value separator - Security Fix Omar Shaban omars omars@php.net yes 2.0.0 2.0.0 stable stable 2014-06-24 PHP License - Introduced SolrServerException which handles exception responses produced by Solr Server [Feature #67063] - SolrClient::commit $maxSegments removed - Removed php curl extension dependency for static builds [Bug #59028] - SolrParams/SolrModifiableParams/SolrQuery throws SolrIllegalArguments Exception instead of E_ERROR [Feature #66858] - SolrQuery::__construct throws SolrIllegalArgumentException instead of E_ERROR - Dropped Support for phpnative Response Writer - Fix config that always enables solr debug [Bug #60361] Omar Shaban omars omars@php.net yes 1.1.1 1.1.1 stable stable 2014-06-20 PHP License - Fix Windows Build Omar Shaban omars omars@php.net yes 1.1.0 1.1.0 stable stable 2014-06-19 PHP License 1.1.0 Stable - Introduced SolrServerException which handles exception responses produced by Solr Server [Feature #67063] - SolrClient::commit $maxSegments removed - SolrQuery::__construct throws SolrIllegalArgumentException instead of E_ERROR - Removed php curl extension dependency for static builds [Bug #59028] From 1.1.0b - SolrClient::system Access system servlet which fetch Solr Server System Information - SolrClient::commit argument $maxSegments is now DEPRECATED - SolrClient::commit Added support for expungeDeletes on - All SolrClient methods throws SolrClientExceptions instead of E_WARNING + SolrClientException - SolrClientExceptions' messages are more informative in case of connection errors - Added json extension validation - All SolrResponse, SolrQueryResponse, SolrUpdateResponse, SolrPingResponse, SolrGenericResponse, SolrDocument, and SolrInputDocument classes are now final - All parameters functions throws SolrIllegalArgumentException instead of E_RROR - SolrParams/SolrModifiableParams/SolrQuery throws SolrIllegalArguments Exception instead of E_ERROR [Feature #66858] - Various Bug Fixes Omar Shaban omars omars@php.net yes 1.1.0b 1.1.0b beta beta 2014-03-17 PHP License - SolrClient::system Access system servlet which fetch Solr Server System Information - SolrClient::commit argument $maxSegments is now DEPRECATED - SolrClient::commit Added support for expungeDeletes on - All SolrClient methods throws SolrClientExceptions instead of E_WARNING + SolrClientException - SolrClientExceptions' messages are more informative in case of connection errors - Added json extension validation - All SolrResponse, SolrQueryResponse, SolrUpdateResponse, SolrPingResponse, SolrGenericResponse, SolrDocument, and SolrInputDocument classes are now final - All parameters functions throws SolrIllegalArgumentException instead of E_RROR - SolrParams/SolrModifiableParams/SolrQuery throws SolrIllegalArguments Exception instead of E_ERROR (Feature #66858) - Various Bug Fixes Omar Shaban omars omars@php.net yes 2.0.0b 2.0.0b beta beta 2014-02-28 PHP License - Support Solr version 4.0+ - Added support for retreiving Solr Server system information through SolrClient SolrClient::system() - Support for softCommit - Suppport for expungeDeletes - maxSegments for commit is deprecated - Added escape character / as per Solr 4 it is reserved for REGEX - Disabled warnings for connection errors, SolrClientException is thrown - SolrClientException messages for connection errors are more meaningful indicating error messages and codes - API changes for: SolrClient::commit($maxSegments = 0, $softCommit = false, $waitSearcher = true, $expungeDeletes = false) SolrClient::optimize($maxSegments = 1, $softCommit = false, $waitSearcher = true) SolrClient::addDocument(SolrInputDocument &$doc, $overwrite = true, $commitWithin = 0) SolrClient::addDocuments(array &$docs, $overwrite = true, $commitWithin = 0) - Several Bug Fixes Warning: PECL Solr >= 2 is not compatible with Solr Server < 4.0 Israel Ekpo iekpo iekpo@php.net yes 1.0.2 1.0.2 stable stable 2011-11-29 PHP License - Several Bug Fixes by Pierrick, Felipe and Tony - Changes to make the code compile on 5.2.3 and greater - Changes to Tests by Pierrick Israel Ekpo iekpo iekpo@php.net yes 1.0.1 1.0.1 stable stable 2011-06-04 PHP License - Added support for json response writer in SolrClient - Removed final bit from classes so that they can be mocked in unit tests - Changed from beta to stable - Included phpdoc stubs in source to enable autocomplete of Solr classes and methods in IDE during development - Lowered libxml2 version requirement to 2.6.16 Israel Ekpo iekpo iekpo@php.net yes 0.9.11 0.9.11 beta beta 2010-06-22 PHP License - Added ability to specify response writer in constructor option - Added new method to set response writer SolrClient::setResponseWriter() - Currently, the only supported response writers are 'xml' and 'phpnative' - Added support for new native Solr response writer - New response writer is available at https://issues.apache.org/jira/browse/SOLR-1967 Israel Ekpo iekpo iekpo@php.net yes 0.9.10 0.9.10 beta beta 2010-05-04 PHP License - Increased compatibility with older systems running CentOS 4 or 5 and RHEL4 or 5 - Added ability to compile directly without having to build libcurl and libxml2 from source on older systems - Lowered minimum supported version for libcurl to 7.15.0 (Alex Samorukov) - Lowered minimum supported version for libxml2 to 2.6.26 (Alex Samorukov) - Fixed PECL Bug# 17172 MoreLikeThis only parses one doc (trevor at blubolt dot com, max at blubolt dot com) - Declared workaround macros for SSL private key constants due to support for earlier versions of libcurl (Alex Samorukov) - Changed extension version numbers to start using hexadecimal numbers (Israel Ekpo) - Added instructions on how to attempt to compile on windows (Israel Ekpo) - Fixed PECL Bug# 17292 sending UTF-8 encoding in header (giguet at info dot unicaen dot fr) Israel Ekpo iekpo iekpo@php.net yes 0.9.9 0.9.9 beta beta 2010-01-10 PHP License - Fixed Bug #17009 Creating two SolrQuery objects leads to wrong query value - Reset the buffer for the request data from the previous request in SolrClient - Added new internal static function solr_set_initial_curl_handle_options() - Moved the intialization of CURL handle options to solr_set_initial_curl_handle_options() function - Resetting the CURL options on the (CURL *) handle after each request is completed - Added more explicit error message to indicate that cloning SolrParams objects and its descendants is currently not yet supported Israel Ekpo iekpo iekpo@php.net yes 0.9.8 0.9.8 beta beta 2009-12-04 PHP License - Fixed config.w32 for Windows build support (Pierre, Pierrick) - Fixed Bug #16943 Segmentation Fault from solr_encode_string() during attempt to retrieve solrXmlNode->children->content when solrXmlNode->children is NULL (Israel) - Disabled Expect header in libcurl (Israel) - Disabled Memory Debugging when normal debug is enabled (Israel) - Added list of contributors to the project Israel Ekpo iekpo iekpo@php.net yes 0.9.7 0.9.7 beta beta 2009-11-17 PHP License - Fixed bug 16924 AC_MSG_NOTICE() is undefined in autoconf 2.13 - Added new method SolrClient::getDebug() - Modified SolrClient::__construct() so that port numbers and other integer values for the options can be passed as strings. - Changed internal string handling mechanism to allow for tracking of memory allocation in debug mode. - Lowered minimum php version to 5.2.3. Unfortunately, this is the lowest PHP version that will be supported. PHP versions lower than 5.2.3 are not compatible or are causing tests to FAIL. - Added php stubs for code-completion assists in IDEs and editors. - Added more examples Israel Ekpo iekpo iekpo@php.net yes 0.9.6 0.9.6 beta beta 2009-11-01 PHP License Reduced minimum php version to 5.2.4 Israel Ekpo iekpo iekpo@php.net yes 0.9.5 0.9.5 beta beta 2009-10-27 PHP License Added support for secure connections to SSL-enabled Solr servers (SSL/HTTPS). Made connection errors more verbose. The following options where added to the SolrClient constructor : - secure (Boolean value indicating whether or not to connect in secure mode) - timeout (This is maximum time in seconds allowed for the http data transfer operation. Default is 30 seconds) - ssl_cert (File name to a PEM-formatted file containing the private key + private certificate (concatenated in that order) ) - ssl_key (File name to a PEM-formatted private key file only) - ssl_keypassword (Password for private key) - ssl_cainfo (Name of file holding one or more CA certificates to verify peer with) - ssl_capath (Name of directory holding multiple CA certificates to verify peer with ) Israel Ekpo iekpo iekpo@php.net yes 0.9.4 0.9.4 beta beta 2009-10-23 PHP License Fixed bug 16897 - ap_php_vasprintf not available in 5.2.11 Israel Ekpo iekpo iekpo@php.net yes 0.9.3 0.9.3 beta beta 2009-10-19 PHP License - Corrected configuration options for automated installation via PECL. Removed extra hyphens. Israel Ekpo iekpo iekpo@php.net yes 0.9.2 0.9.2 beta beta 2009-10-19 PHP License - Fixed bug #16874 Added explanation in documentation - Updated SolrParams::__toString() - modified to return name-value pair list instead of serialized object string - Added the following methods to SolrParams : SolrParams::toString() SolrParams::getParam() - Created the following aliases in SolrParams : SolrParams::set() SolrParams::add() SolrParams::get() - Added the following methods to SolrQuery : SolrQuery::getQuery() SolrQuery::getStart() SolrQuery::getRows() SolrQuery::getFields() SolrQuery::getSortFields() SolrQuery::getFilterQueries() SolrQuery::getTimeAllowed() SolrQuery::getFacet() SolrQuery::getFacetFields() SolrQuery::getFacetQueries() SolrQuery::getFacetPrefix() SolrQuery::getFacetSort() SolrQuery::getFacetLimit() SolrQuery::getFacetOffset() SolrQuery::getFacetMinCount() SolrQuery::getFacetMissing() SolrQuery::getFacetMethod() SolrQuery::getFacetDateFields() SolrQuery::getFacetDateStart() SolrQuery::getFacetDateEnd() SolrQuery::getFacetDateGap() SolrQuery::getFacetDateHardEnd() SolrQuery::getFacetDateOther() SolrQuery::getHighlight() SolrQuery::getHighlightFields() SolrQuery::getHighlightSnippets() SolrQuery::getHighlightFragsize() SolrQuery::getHighlightMergeContiguous() SolrQuery::getHighlightRequireFieldMatch() SolrQuery::getHighlightMaxAnalyzedChars() SolrQuery::getHighlightAlternateField() SolrQuery::getHighlightMaxAlternateFieldLength() SolrQuery::getHighlightFormatter() SolrQuery::getHighlightSimplePre() SolrQuery::getHighlightSimplePost() SolrQuery::getHighlightFragmenter() SolrQuery::getHighlightUsePhraseHighlighter() SolrQuery::getHighlightHighlightMultiTerm() SolrQuery::getHighlightRegexSlop() SolrQuery::getHighlightRegexPattern() SolrQuery::getHighlightRegexMaxAnalyzedChars() SolrQuery::getStats() SolrQuery::getStatsFields() SolrQuery::getStatsFacets() SolrQuery::getMlt() SolrQuery::getMltCount() SolrQuery::getMltFields() SolrQuery::getMltQueryFields() SolrQuery::getMltMinTermFrequency() SolrQuery::getMltMinDocFrequency() SolrQuery::getMltMinWordLength() SolrQuery::getMltMaxWordLength() SolrQuery::getMltMaxNumTokens() SolrQuery::getMltMaxNumQueryTerms() SolrQuery::getMltBoost() SolrQuery::getTerms() SolrQuery::getTermsField() SolrQuery::getTermsLowerBound() SolrQuery::getTermsUpperBound() SolrQuery::getTermsIncludeLowerBound() SolrQuery::getTermsIncludeUpperBound() SolrQuery::getTermsMinCount() SolrQuery::getTermsMaxCount() SolrQuery::getTermsPrefix() SolrQuery::getTermsLimit() SolrQuery::getTermsReturnRaw() SolrQuery::getTermsSort() Israel Ekpo iekpo iekpo@php.net yes 0.9.1 0.9.1 beta beta 2009-10-07 PHP License - Fixed bug #16864 (Build failure in Non-ZTS builds) Israel Ekpo iekpo iekpo@php.net yes 0.9.0 0.9.0 beta beta 2009-10-05 PHP License - Initial release after approximately 10 months of development and 3 weeks of testing. This is the beta version. Some of the features may be modified in future releases.