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:
- 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/
│ └── solr
1 directory, 9 files
And there is a lot of goodies in the bin/ directory such as:
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.shto help reduce the guesswork. Note that these could easily be overridden if needed.
- There is also
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
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/
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
- 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.
- 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