Solr 5.0.0 released

  • -

Solr 5.0.0 released

Apache Solr 5.0.0

Solr 5.0.0 has been officially released on the 20th of February 2015

This is a major release and as such, there have been significant changes in Lucene and in Solr code base.
Here, I am going to discuss 3 of the changes:

  1. Solr 5 as a standalone server
    The most important change in my opinion is that from now on, Solr is a standalone server just like ElasticSearch, Cassandra or MongoDB .
    The distribution comes with a set of scripts in the bin/ directory to enable users to run solr without the need of installing a servlet container.

    $ tree bin/
    bin/
    ├── init.d
    │ └── solr
    ├── install_solr_service.sh
    ├── oom_solr.sh
    ├── post
    ├── solr
    ├── solr.cmd
    ├── solr.in.cmd
    ├── solr.in.sh
    └── solr-8983.port
    1 directory, 9 files

    And there is a lot of goodies in the bin/ directory such as:

    • bin/install_solr_service.sh
      can be used to install solr as a service on unix-like systems
    • There is now some default GC tuning parameters available in
      bin/solr.in.sh to help reduce the guesswork. Note that these could easily be overridden if needed.
    • There is also
      bin/oom_solr.sh
      that get executed automatically to kill solr in case the worse happens and Solr decides to drop its pant whith in OutOfMemoryError.
    • To see the available option for starting solr, just try
      bin/solr start –help
      You may also want to look at the downloaded documentation at docs/quickstart.html
    • For windows users, there are only
      solr.cmd
      meaning no automatic service installation at this moment for Windows.
      Note that there are many external tools allowing to deploy a .bat file as a service on windows
    • Note that as of Solr 5.0.0, under the hood, jetty is embedded into the distribution and there is still a solr.war file involved

      $ tree server/webapps/
      server/webapps/
      └── solr.war
      0 directories, 1 file

      This means that however this is not recommended, one would still be able to deploy Solr 5 into a custom servlet container if needed, using the provided solr.war
  2. Solrj: The Java Client
    For clients applications using SolrJ, the old abstract class SolrServer has been deprecated in favor of the new and shiny abstract class SolrClient, for obvious reasons.
    From now on, we should all be using implementations such as CloudSolrClient, ConcurrentUpdateSolrClient, HttpSolrClient or LBHttpSolrClient instead.
  3. Lucene core library
    There have been many important changes in the core library such as
    more robust index IO operation by moving to NIO.2 , reduced memory footprint and various other optimization.In addition LUCENE-6050 that we have been waiting for has finally been released. In other words, the Lucene AnalizingInfixSuggester now allows to specify whether a context should be applied as is a MUST or a SHOULD operation

Resources