Solarium v6.0.4 Release Notes

Release Date: 2020-11-05 // over 3 years ago
  • ๐Ÿ”„ Changes since 6.0.3

    โž• Added

    • ๐Ÿ‘ PHP 8 support

    ๐Ÿ›  Fixed

    • Avoid Notice: Undefined variable: http_response_header

    ๐Ÿ”„ Changes since 6.0.2

    ๐Ÿ›  Fixed

    • Tika based file extraction with Solr 8.6
    • Avoid TypeError if ClusterState contains no collections

    ๐Ÿ”„ Changed

    • ๐Ÿ“ฆ Require specific symfony/event-dispatcher-contracts package instead of the generic symfony/contracts

    ๐Ÿ”„ Changes since 6.0.1

    โž• Added

    • ๐Ÿ‘Œ 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()

    ๐Ÿ”„ Changed

    • ๐Ÿ”จ Refactored Managed Resources code: use createCommand() and createInitArgs() to issue commands

    ๐Ÿ”„ Changes since 6.0.0

    โž• Added

    • Solarium\Component\Result\Facet\JsonRange::getBefore()
    • Solarium\Component\Result\Facet\JsonRange::getAfter()
    • Solarium\Component\Result\Facet\JsonRange::getBetween()

    ๐Ÿ”„ Changed

    • Json range facet result now returns Solarium\Component\Result\Facet\JsonRange

    ๐Ÿ”„ Changes since 5.2.0

    โž• Added

    • \Solarium\Component\Result\Facet\Buckets::getNumBuckets()
    • ๐Ÿ‘ \Solarium\Support\Utility::getXmlEncoding()
    • โšก๏ธ 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

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ป Thrown exceptions always implement Solarium\Exception\ExceptionInterface
    • 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
    • More strict types and type hinting
    • ๐Ÿ”ง AdapterInterface does not extend ConfigurableInterface anymore
    • ๐Ÿ”ง Http Adapter does not implement ConfigurableInterface anymore
    • ๐Ÿ”ง Psr18Adapter does not implement ConfigurableInterface anymore
    • Solarium Client now accepts any PSR-15 compatible event dispatcher (previously it had to be symfony's event dispatcher)

    ๐Ÿ›  Fixed

    • ๐Ÿ“œ MoreLikeThis result parsing fails on Solr Cloud
    • ๐Ÿ”Œ MinimumScoreFilter plugin might fail on Solr 7 in cloud mode

    โœ‚ Removed

    • ๐Ÿ‘ PHP 7.1 support
    • Zend2HttpAdapter
    • GuzzleAdapter
    • Guzzle3Adapter
    • Endpoint::setTimeout and Endpoint::getTimeout
    • Passing local parameter options (e.g. key, tag, exclude) without the local_ prefix
    • ๐Ÿ‘Œ Support for Solr versions before 7.7

    โฌ†๏ธ Pitfall when upgrading from 3.x or 4.x or 5.x

    ๐Ÿ—„ Setting "timeout" as "option" in the HTTP Client Adapter is deprecated since Solarium 5.2.0 because not all adapters
    could handle it. The adapters which can handle it now implement the TimeoutAwareInterface and you need to set the
    โฑ timeout using the setTimeout() function after creating the adapter instance.

    In order to fix some issues with complex queries using local parameters solarium 6 destinguishs between query parameters
    ๐Ÿ—„ and local parameters to be embedded in a query. Solarium 5.2 already informed you about the deprecation of some
    parameter names which are in fact local parameters. Solarium doen't convert them magically anymore.
    ๐Ÿ›  Local parameter names now have to be prefixed with local_ if set as option of a constructor.

    Solarium 5:

    $categoriesTerms = new Solarium\Component\Facet\JsonTerms(['key' =\> 'categories', 'field' =\> 'cat', 'limit'=\>4,'numBuckets'=\>true]);
    

    Solarium 6:

    $categoriesTerms = new Solarium\Component\Facet\JsonTerms(['local\_key' =\> 'categories', 'field' =\> 'cat', 'limit'=\>4,'numBuckets'=\>true]);
    

    See https://lucene.apache.org/solr/guide/8_5/local-parameters-in-queries.html for an introduction about local parameters.

    โฌ†๏ธ Pitfall when upgrading from 3.x or 4.x

    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!

    For the same reason it is a must to explicit configure the core or collection.

    So an old setting like

    'path' => '/solr/xxxx/'
    

    has to be changed to something like

    'path' => '/',
    'collection' => 'xxxx',