[hibernate-dev] [HSearch] Upgrade to Lucene 3.0
Hardy Ferentschik
hibernate at ferentschik.de
Wed Sep 8 04:35:57 EDT 2010
Hi,
I was working on the issues around upgrading HSearch to Lucene 3.0
(HSEARCH-424).
Before even thinking about utilizing any of the new Lucene features like
numeric fields and so on, we
have to deal with HSEARCH-593 - the upgrade of the Solr analyzer framework.
We are using the Solr analyzer framework (a set of Lucene filters and
matching factory classes) within
the HSearch specific @AnalyzerDef annotation. The problem is that the
latest release of Solr (1.4) is
compatible only to Lucene 2.9 and there is no official release yet which
works with Lucene 3.0.
In fact Solr is now part of the Lucene source tree and I assume Lucene and
Solr releases will now happen
together. The current 3.1 branch of Lucene contains the updated Solr code,
but there is no release date
for Lucene 3.1 in the near future.
As a workaround I created a new maven module -
hibernate-search-solr-analyzers - in HSearch. I added the
latest source from the 1.4 Solr release and then backported the changes
form the Lucene 3.1 branch to make
the analyzer framework work with Lucene 3.0.2. This works, but there were
several issues.
The Lucene code has moved on as well on the 3.1 branch and new classes got
introduced, for example CharTermAttribute.
Other issues are CharArraySet and CharArrayMap which now take a Version
parameter as well. Some classes
also have moved from Solr core to Lucene core. This means that backporting
becomes quite a bit more complicated.
This is really not a good position to be in from a maintenance point of
view for hibernate-search-solr-analyzers.
The good news is that our additional hibernate-search-solr-analyzers
module would become obsolete with
a release of Lucene/Solr 3.1. At this point we would have the possibility
to release a new version of HSearch
depending just on the new Lucene/Solr release.
What I am wondering right now is:
- Does it make sense to introduce hibernate-search-solr-analyzers and
should we have a release with this additional module?
- If we release hibernate-search-solr-analyzers, should we really make it
obsolete once Lucene 3.1 is out or keep this module
as sort of buffer?
- So far I haven't renamed any package names. This has the advantage our
existing users don't have to change their code.
Does it make sense to rename the packages?
- This is not the first time we are having problems with the Solr code.
Does it makes sense to fork the Solr code
and maintain or own version of the analyzer framework?
Right now I tend to say that we go for the hibernate-search-solr-analyzers
approach, but remove the module again once
Lucene 3.1 is released. But what's your take on this?
--Hardy
More information about the hibernate-dev
mailing list