lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: Having a default constructor in Analyzers
Date Mon, 08 Feb 2010 09:57:47 GMT
Simon:
> Sanne, I would recommend you building a Factory pattern around you
> Analyzers / TokenStreams similar to what solr does. That way you can
> load you own "default ctor" interface via reflection and obtain you
> analyzers from those factories. That makes more sense anyway as you
> only load the factory via reflection an not the analyzers.

As far as I see, Hibernate uses Solr Factories.  On the other hand, you can instead of creating
your own SolrAnalyzer also use a "standard" one from Lucene (you can do this in Solr, too):

http://docs.jboss.org/hibernate/stable/search/reference/en/html_single/#analyzer

In my opinion, the Factory pattern is ok for own analyzer definitions. For reusing "standard"
analyzers like "StandardAnalyzer" or "TurkishAnalyzer", the ideal case is to use the reflection
code I proposed before. This code works for all language-based analyzers having a standard
ctor or Version ctor. Solr will also handle this reflection-based instantiation with optional
Version parameter in future, too (Eric Hatcher pointed that out to me, when working on SOLR-1677:
"Another comment on this... Solr supports using an Analyzer also, but only ones with zero-arg
constructors. It would be nice if this Version support also allowed for Analyzers (say SmartChineseAnalyzer)
to be used also directly. I don't think this patch accounts for this case, does it?").

As Hibernate also uses the factory pattern for custom analyzers, as soon as https://issues.apache.org/jira/browse/SOLR-1677
is in, the version problem for those should be solved, too (as you can specify the parameter
to each component). But Hibernate should also think about a global default Version (like Solr
via CoreAware or like that), that is used as a default param to all Tokenizers/TokenFilters
and when reflection-based Anaylzer subclass instantiation is used.

By the way, hibernate's reuse of Solr's schema is one argument of Hoss, not to make it CoreAware.

Uwe


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message