What happened to Solr 1.5? what is Solr 3.1? and what about Solr Cloud? In the last few months, there have been many changes to Solr that can leave users confused about which version to use, what features each version provides, and when (and if) they will be released. This blog entry will try to clarify the State of Solr.
With Solr 1.4 released in November ’09, Solr 1.5 carried on where 1.4 left off. Most development was related to bugs that had been found in 1.4, but a number of interesting new features were added:
- Spatial Search Support – Following on from the development of Solr’s spatial search support in SOLR-773, Grant Ingersoll lead a drive to complete Solr’s spatial search support. Providing integration with Spatial Lucene, and introducing its own spatial search functions, Solr’s spatial search allows users to filter their results to those within a certain distance of a point, and boost relevance of results by their distance
- Poly FieldTypes – From the Spatial Solr development, Poly FieldTypes allow one field in the Solr schema to be actually indexed as multiple fields. Although currently only used for spatial search, this functionality promises to bring complex FieldTypes to Solr.
- Sorting by FunctionQueries – Also from the Spatial Sol development, the ability to sort by FunctionQueries allows users Solr’s many FunctionQueries in their sort criteria, as though they were normal fields. This allows users to sort Events by how close their start date is to NOW for example.
- Multi-threaded DataImportHandler – With the DataImportHandler’s (DIH) widespread acceptance, it was only a matter of time before it was pushed to its limits. One improvement to the DIH made in Solr 1.5, was the ability to use multiple threads to request and index Documents in parallel, thus drastically improving the performance of those users indexing vast datasources.
Perhaps Solr 1.5’s biggest limitation was that it was based on Lucene 2.9.x, and consequently was unable to benefit from the many new features being introduced in Lucene 3.x. As part of a wider decision to merge the development of Solr and Lucene, Solr 1.5 was shelved (tagged in SVN) in favour of a new version of Solr that would be built against Lucene’s trunk (more about that later).
At this stage it is hard to tell if Solr 1.5 will be released or not. Certainly if you need one of the features mentioned above, or are facing one of the many bugs fixed in Solr 1.5, it would be worth checking it out from SVN and upgrading, otherwise I recommend staying with Solr 1.4, and waiting for the newer version of Solr:
Before carrying on, I should say that it has not been decided that the next version of Solr will be given the version number 3.1. The name comes from the fact that it is built against the current development version of Lucene which will be released as 3.1.
Solr 3.1, as just mentioned, is a considerably updated version of Solr that is built against Lucene’s development trunk and is updated as Lucene is developed further. For users wanting bug-free software, this means that Solr has access to Lucene’s considerable test-suite, and any changes made to Lucene will be tested against Solr. For users wanting bleeding edge features, this means that Solr will be updated shortly after a feature is added to Lucene.
At the time of writing, this version of Solr is still under heavy development and should be treated as an alpha version at best. The task of updating Solr to match Lucene meant a considerable number of changes had to be made, and many developments such as adding per-segment facetation still need to occur.
With some of Lucene’s latest features (namely flexible indexing) needing to ‘bake’ in the open for awhile before being released, I imagine it will be some time before Solr 3.1 (or whatever it will be called), will be released.
Somewhat parallel to these developments has been the effort to add ‘cloud’ support to Solr using Apache Zookeeper. Solr Cloud, currently residing as a branch, provides support for automatic node detection and index/configuration sharing. The intention is to allow users to be able to deploy Solr in their cloud, and be able easily add and remove nodes.
At time of writing, steps are being taken to bring the Solr Cloud branch back into trunk. However, it was noted by one of the developers, that it does not include all the features that they wish to add.
What version to use?
With all the changes currently occurring with Solr, I would go so far as to say that users should continue to use Solr 1.4. However, if you need access to one of the many new features introduced in Solr 1.5+ or Lucene 3.x, then given Solr 3.1 a shot, and report back your experiences.