All notable changes to the Solarium library will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Component\Result\Stats\Result::getDistinctValues()
- Component\Result\Stats\Result::getCountDistinct()
- Component\Result\Stats\Result::getCardinality()
- Component\Result\Stats\FacetValue::getPercentiles()
- Component\Result\Stats\FacetValue::getDistinctValues()
- Component\Result\Stats\FacetValue::getCountDistinct()
- Component\Result\Stats\FacetValue::getCardinality()
- Component\Result\Stats\FacetValue::getStatValue()
- Component\Result\Stats\Result::getPercentiles() returns percentiles as an associative array
- Component\Result\Stats\Result::getMean() returns
NAN
instead of'NaN'
if mean is NaN - Component\Result\Stats\FacetValue::getMean() returns
NAN
instead of'NaN'
if mean is NaN - Component\Result\Stats\Result::getValue() is renamed to getStatValue()
- Component\Result\Stats\FacetValue::getFacets()
- Component\Result\Stats\Result::getValue()
- Solarium\QueryType\ManagedResources\Result\Command::getWasSuccessful()
- Solarium\QueryType\ManagedResources\Result\Command::getStatusMessage()
- Query a single term in a Managed Resource
- Syntax error in request with facet queries that contain local parameters
- HEAD requests could lead to timeouts with cURL adapter
- Fix for reserved characters in managed resources (SOLR-6853)
- Parsing nested details in debug response
- Solarium\Component\Result\Stats\Result::getValue() is now public
- possible exception in Debug\Detail::__toString() when sub details are missing
- MoreLikeThis::setMaximumDocumentFrequency()
- MoreLikeThis::setMaximumDocumentFrequencyPercentage()
- getInterestingTerms() of MoreLikeThis Component results
- Debug\Detail return value types
- Debug\Document return value types
- Support for
mlt.match.include
andmlt.match.offset
in MoreLikeThis Component (they only work in MLT queries)
- Set Client::VERSION to '6.1.1'. Release 6.1.0 accidentally declared itself as 6.0.4.
- Indexing labelled nested child documents through pseudo-fields
- Extract query now supports extractFormat
- Helper::rangeQuery() now supports left-inclusive only and right-inclusive only queries
- PrefetchIterator::key() should return 0 instead of NULL on a fresh PrefetchIterator
- PrefetchIterator::next() shouldn't skip fetched results after PrefetchIterator::count() on a fresh PrefetchIterator
- PrefetchIterator::rewind() no longer results in duplicate documents when invoked mid-set
- Fixed incorrect median function
- Fix for maxScore being returned as "NaN" when group.query doesn't match any docs (SOLR-13839)
- Exception message for invalid/unavailable file in Extract query now contains filename
- Helper::rangeQuery() detects point values without parameter to turn off escaping
- PHP 7.2 support
- PHP 8 support
- Avoid Notice: Undefined variable: http_response_header
- Tika based file extraction with Solr 8.6
- Avoid TypeError if ClusterState contains no collections
- Require specific symfony/event-dispatcher-contracts package instead of the generic symfony/contracts
- Support for the analytics component
- Function builder
- Solarium\Component\FacetSet::setMatches()
- Solarium\Component\FacetSet::setExcludeTerms()
- Solarium\Component\Facet\Field::setMatches()
- Solarium\Component\Facet\Field::setExcludeTerms()
- Solarium\Component\Highlighting\Highlighting::setMethod()
- Refactored Managed Resources code: use
createCommand()
andcreateInitArgs()
to issue commands
- Solarium\Component\Result\Facet\JsonRange::getBefore()
- Solarium\Component\Result\Facet\JsonRange::getAfter()
- Solarium\Component\Result\Facet\JsonRange::getBetween()
- Json range facet result now returns Solarium\Component\Result\Facet\JsonRange
- \Solarium\Component\Result\Facet\Buckets::getNumBuckets()
- Thrown exceptions always implement Solarium\Exception\ExceptionInterface
- \Solarium\Support\Utility::getXmlEncoding()
- MoreLikeThis result parsing fails on SolrCloud
- MinimumScoreFilter plugin might fail on Solr 7 in cloud mode
- PostBigRequest plugin now acts on PRE_EXECUTE_REQUEST event instead of POST_CREATE_REQUEST
- CustomizeRequest plugin now acts on POST_CREATE_REQUEST event instead of PRE_EXECUTE_REQUEST
- PHP 7.1 support
- Raw XML commands to update query
- Raw XML from file in update query
- Set input encoding for select and update queries
- Create and configure Managed Resources
- More strict types and type hinting
AdapterInterface
does not extendConfigurableInterface
anymoreHttp
Adapter does not implementConfigurableInterface
anymorePsr18Adapter
does not implementConfigurableInterface
anymore- Solarium Client now accepts any PSR-15 compatible event dispatcher (previously it had to be symfony's event dispatcher)
- Zend2HttpAdapter
- GuzzleAdapter
- Guzzle3Adapter
- Endpoint::setTimeout and Endpoint::getTimeout
- Passing local parameter options (e.g.
key
,tag
,exclude
) without thelocal_
prefix - Support for Solr versions before 7.7
- PSR-18 http adapter
- PUT requests against Solr 8.5.0 using the Zend2Http and Http adapters
- Zend2HttpAdapter, use PSR-18 http adapter instead
- GuzzleAdapter, use PSR-18 http adapter instead
- Guzzle3Adapter, use PSR-18 http adapter instead
- Endpoint::setTimeout and Endpoint::getTimeout, configure the timeout on the http adapter instead
- Range facet pivot support
- Support for useConfiguredElevatedOrder
- FilterQuery::setCache and FilterQuery::setCost()
- Setting limit for pivot facets
- Internal handling of Solr local parameters
- Helper::cacheControl(). Use FilterQuery::setCache() and FilterQuery::setCost() instead
- Remove explicit requirements for symfony/cache because of CVE-2019-18889
- Symfony 5 support
- PHP 7.4 compatibility issue: deprecated parameter order of implode()
- PHP 7.4 test coverage
- Solarium\Component\Result\Stats\Result getters might return null
- Solarium\Component\Facet\Pivot::setLimit()
- Solarium\Component\Facet\Pivot::getLimit()
- Client::checkExact() checks against wrong version number
- Solarium\Component\ResponseParser\Debug fails on SolrCloud 6.x during extracting timing phases
- BufferedAdd does not support Symfony event dispatcher
- An empty array as value in combination with the
set
modifier should remove a field when performing Atomic Updates
- PHP 7.1 compatibility issue: date constants are not available as part of DateTimeInterface before PHP 7.2.0
- Use Symfony\Contracts\EventDispatcher\Event instead of deprecated Symfony\Component\EventDispatcher\Event
- BufferedAdd::commit() type hints
- Symfony >=4.3 event dispatcher deprecation warnings
- Solarium\Core\Query\Helper::formatDate() now handles DateTimeImmutable
- Try to capture complete response body as error message when using guzzle instead of using guzzle's truncated message
- Adapted to Symfony >=4.3 event dispatching, backward compatible to >=3.4, <=4.2
- Complex ReRank queries should not cause Solr parse errors
- Update request builders format \DateTimeImmutable correctly
- Symfony >=4.3 event dispatcher deprecation warnings
- Symfony <3.4 support
- Solarium\QueryType\MoreLikeThis\Query::setBoost()
- Solarium\Core\Query\AbstractQuery::setTimeZone() now accepts \DateTimeZone objects as parameter
- Spellchecker result isn't NULL in case of no suggestions and correctly spelled
- RangeFacet Result
- Solarium\QueryType\Select\Result and Component return types
- Solarium\Component\Highlighting::setFields() should accept comma separated string, too
- Solarium\Component\Result\Grouping\ValueGroup various return types
- Solarium\Component\RequestBuilder\RequestParamsTrait::addParam should not add empty arrays
- MinimumScoreFilterPlugin
- Running the examples
- Solarium\Component\MoreLikeThis::setInterestingTerms()
- Solarium\Component\MoreLikeThis::setMatchInclude()
- Solarium\Component\MoreLikeThis::setMatchOffset()
- Getting started documentation
- Component\Result\Facet\Bucket::getFacetSet()
- Spellcheck\Suggestion::getOriginalTerm()
- QueryType\Stream\ExpressionBuilder
- Usage of composer and autoloader in examples.
- Query::setFields() should accept comma separated string, too.
- Readthedocs theme
- QueryType\Stream\Expression is deprecated. Use QueryType\Stream\ExpressionBuilder instead.
- Support multiple spellcheck dictionaries
- Helper::rangeQuery() must not escape point values. Added a new parameter to turn off escaping.
- Introduced FacetResultInterface
- TypeError: Return value of Solarium\Component\Result\FacetSet::getFacet()
- Solr 8 support
- Updated dev and test environments to newer package versions, for example PHPUnit 8.0
- Use PHP 7.1 style argument and return type declarations
- PHP 7.1 or higher required
- Refactored the two variants of DocumentInterface to become one to reduce confusion
- PHP 7.0 support
- Status codes of the HTTPAdapter
- Basic V2 API support
- Endpoint::getV2BaseUri
- AdapterHelper functions are static
- In the past, the V1 API endpoint
solr
was not added automatically, so most users set it as path on the endpoint. This bug was discovered with the addition of V2 API support. In almost every setup, the path has to be set to/
instead of/solr
with this release!
- Experimental support for collection API
- Parameter 'distrib' for queries
- Deprecation of Endpoint::getBaseUri is revoked! It transparently forwards to getCollectionBaseUri or getCoreBaseUri now
- Endpoint::getBaseUri, ::getBaseCoreUri and ::getBaseCollectionUri throw UnexpectedValueException if no core or collection has been set
- Symfony 2.x support
- Zend 1.x support
- PECL::Http adapter
- PHP 7.0 support
- Solr 1.4 result parser
- Support for add-distinct and removeregex modifiers in Document::setFieldModifier
- Zend2Http adapter caused duplicate request parameters
- If a term contains a space, the space needs to be quoted by Helper::escapeTerm()
- Typos
- Support for managed resources
- Support for add-distinct and removeregex modifiers
- Basic support for Collections API (create, delete, reload, clusterstatus)
- Basic support for PUT requests in the HttpAdapter layer
- Support for managed resources
- Core Admin Queries
- Endpoint::getServerUri
- Endpoint::getCoreBaseUri
- Expression::indent
- BufferedAdd::setCommitWithin
- BufferedAdd::setOverwrite
- Set erroneous expression on StreamException
- Managed resources, stopwords and synonyms query types
- Endpoint::getBaseUri is deprecated. Please use getServerUri or getCoreBaseUri now
- Allow multiple Field Facets for the same field by dynamically using local facet params if required
- Method AbstractQuery::removeParam() to remove a custom parameter or to reset a required but modified parameter
- Basic support for DELETE requests in the HttpAdapter layer
- Introduced an AdapterHelper class to start unifying implementations across all HTTP adapters
- To unify the file extraction across all HTTP Adapters, the filename is now always reduced to its basepath
- Guzzle Integration tests
- Don't modify the time zone of DateTime objects passed by reference
- Extract request rejected because of missing multipart boundary
- Every component that has a 'query' option is now able to bind parameters to a query string via its setQuery() function
- Tests for cursormark
- Support for ReRankQuery
- Renamed option 'q' to 'query' in Solarium\Component\Facet\JsonQuery for consistency
- Random test failures caused by different timestamps
- Query Elevation Component
- Option 'min' for JsonAggregation
- Support for NOW and TZ parameters
- Test coverage and docs for cursor functionality
- Test coverage for JSON facets
- Branch aliases for composer
- Filter empty buckets from JSON facets during result parsing
- Cover 'contains' and 'containsignorecase' in FacetSet docs
- Support for JSON Facet API
- Constants FacetSet::FACET_* became FacetSetInterface::FACET_*
- Support "sow" parameter (Split On Whitespace) in select queries
- Basic support for SolrCloud streaming expressions
- Return type of Solarium\Component\QueryTraits\SuggesterTrait::getSuggester()
- Type hints in Solarium\Component\AbstractComponent
- getSuggester() convenience method on Solarium\QueryType\Select\Query\Query
- More integration tests
- Outdated Symfony versions on test environment
- Don't escape the '*' in range queries
- Return type of getHighlighting() on Solarium\QueryType\Select\Result\Result
- Return type of getFacetSet() on Solarium\QueryType\Select\Result\Result
- Terms component
- Spellcheck component
- Spellcheck query type
- Added missing parameters to the Spellcheck query type and the component (compared to the 3.x Suggester)
- Support for deep paging with a cursor
- Symfony 4 support
- Nightly builds / tests
- Basic Integration tests running real Solr queries against Solr's techproducts example
- Renamed folder library to src
- Use PSR-4 class loading
- Updated PHPUnit to v6.5
- Updated required PHP version to >= v7.0
- Isolated search components from the select query type and made them re-usable
- BC break: Suggester component is now compatible to Solr v6/7 (the existing one was renamed to Spellcheck)
- BC break: Suggester query type is now compatible to Solr v6/7 (the existing one was renamed to Spellcheck)
- Lots of source code re-structuring and clean-up
- Phar support
- Exclude test suite from distribution
- Dropped support for Solr versions before 6
- Obsolete Autoloader.php
- Deprecated Solarium\Core\Plugin\Plugin in favor of Solarium\Core\Plugin\AbstractPlugin
- Deprecated Solarium\Core\Query\Query in favor of Solarium\Core\Query\AbstractQuery
- Deprecated Solarium\Core\Query\RequestBuilder in favor of Solarium\Core\Query\AbstractRequestBuilder
- Deprecated Solarium\Core\Query\ResponseParser in favor of Solarium\Core\Query\AbstractResponseParser
- Deprecated Solarium\QueryType\Analysis\Query\Query in favor of Solarium\QueryType\Analysis\Query\AbstractQuery
- Prevented query injection inside range queries
- Restore PHP 5.3 compatibility (remove short array syntax)
- Support for simple group format in response parser
- Helper for fetching ValueGroup from a Grouped result
- Guzzle 3 and Guzzle 6 client adapters
- Various fixes in documentation
- Use GET request for extracting remote files
- Prevent ParallelExecution Curl spinloop
- Support for nested documents in update query
- Spatial component for select query
- Support for keys and excludes in interval facet
- Support for grouping using a function (group.func)
- Included suggestion in composer file for a query builder library
- Lots of fixes in documentation markup
- Spellcheck collation parsing for Solr 5+
- Support for replicas in distributed search
- Support for multiple boost queries in dismax
- Support for additional stats values like percentiles
- Added Symfony 3.x components to CI tests for PHP 5.5+
- No longer allow failures for HHVM in continuous integration
- ClientInterface now also used for standard Client class
- Several typo / markup fixes in documentation
- Several docblock fixes
- backwards incompatible change in classnames
- Make it possible to bypass (system-wide) proxy setting in Curl adapter
- ClientInterface
- Support for facet.contains settings
- Docs in repository (markdown format)
- SensioLabs Insight (including lots of fixed in the code based on report)
- Lots of code style fixes
- Refactored 'base' plugin class to AbstractPlugin
- Removed old PHP environments for Travis, added PHP7
- Set license to a valid SPDX license identifier
- Set hard paths in .gitignore to prevent tree lookups
- Updated Symfony event dispatcher dependency to a maintained version
- PHAR generator updated to support namespacing
- Collations broken for Solr 5 data format
- Facet interval support
- ZF2 http adapter
- Stats for pivot facet
- Support for calling empty() and isset() on result document properties
- Composer test script
- 'contributing' file
- Lots of code style fixes, using the SF2 code style
- Docblock fixes in grouping component facets
- Only check type for added documents to add query if provided as an array
- Curl file upload handling
- Spellcheck 'collations' and 'correctlyspelled' updated to support Solr 5 format
- Curl adapter now uses Solr 5 compatible headers for a GET request
- Support for data fixtures
- MinimumScoreFilter plugin, also for grouping
- Support for nested debug-info in the debug query
- Filter control characters in update documents by default
- Facet range now supports the mincount parameter
- Spellcheck response parser can now handle multiple suggestions
- Prefetch iterator now resets if prefetch or query settings are changed
- Added matchoffset setting to MLT querytype
- PreFetchIterator plugin now supports setting an endpoint
- BufferedAdd plugin now supports an endpoint supplied as a config
- Updated curl adapter file handling to prevent warnings in php >=5.5.0
- Added remote file streaming support to extract request handler
- Query result now also supports maxscore
- MoreLikeThis now allows for individual boosts on query fields
- Select query component MoreLikeThis now supports boosting multiple fields
- Added PHP 5.5, 5.6 and HHVM to Travis config
- Solarium now uses Coveralls for test coverage reports
- If a config object does not supply a toArray method, the object is converted by Solarium
- Highlighting now supports hl.preserveMulti param
- Stats component now supports exludes
- Range query helper now supports wildcards
- Support HTTPS scheme for endpoints
- CURL and PECL_HTTP adapters now set connection timeout and dns cache timeout
- Extract query now supports ExtractOnly
- The event dispatcher can now be injected
- PSR-0 and PSR-2 code fixes
- Fixes in build.xml (use phpunit in vendor directory)
- Pivot facet does not accept extra parameters
- Pivot facet uses the wrong key in result parsing
- Wrong handling of boolean values in update documents
- Highlight query should only set hl.fl param if there are any fields set
- Curl crash when open_basedir is set
- Fix suggester parser with duplicates
- Removed constructor from interface Solarium/Core/ConfigurableInterface.php