]
Kenneth Christensen commented on HSEARCH-221:
---------------------------------------------
"Here is what I would propose, let me know if it fills your needs.
HSearch now provides a way to declare analyzer definitions by name. Would it be OK to
declare all needed analyzers upfront (in your case one per language).
Then the entity could have a method rendering the analyzer name
@Analyzer(impl=EntitySensitiveAnalyzer.class) //something might be enhanced here
public class Book {
private String description;
@AnalyzerDiscriminator(MyDiscriminatorImpl.class) //default to passthrough
discriminator //annotation can be set at the class level too
private String language
}
public class PassThroughDiscriminator implements Discriminator {
public String getAnanyzerDefinitionName(Object value, Object entity) {
return (String) value;
}
}
Does that solves the problem?"
It sounds like a valid solution, but I really need to try it before I'm 100% sure.
"PS I still think an analyzer can transparently detect a language so that all this
madness is useless. "
How? :-)
Get Lucene Analyzer runtime (indexing)
--------------------------------------
Key: HSEARCH-221
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-221
Project: Hibernate Search
Issue Type: Improvement
Affects Versions: 3.0.1.GA
Reporter: Kenneth Christensen
Fix For: 3.1.0.Beta1
Attachments: AddLuceneWork.java, diff-jms.txt, diff.txt, DocumentBuilder.java,
EntityInstanceAnalyzer.java, Flyer.java, Flyer.java, Flyer.java-JMS,
hibernate-search-v2.zip, hibernate-search.zip, LuceneWorker.java, TestBean.java
I'm writing a multi-language application and I have choose to use Hibernate Search.
But it looks like Hibernate Search have some limitations in multi-language applications.
I need to use the SnowballAnalyzer and create the instance at runtime because I only know
the language at runtime.
It really looks like Hibernate Search don't support runtime created analyzers for
entity instances.
I have extended Hibernate Search to support the above issue - maybe you could include the
code in Hibernate Search or implement something similarly.
I really need this feature/improvement :-)
Please see attached files.
Flyer - Entity used in test
TestBean - SessionBean used in test
org.hibernate.search.backend.impl.lucene.LuceneWorker - Added code to support entity
instance analyzer, see performWork(AddLuceneWork work, DirectoryProvider provider) and
add(Class entity, Serializable id, Document document, DirectoryProvider provider, Analyzer
analyzer).
org.hibernate.search.backend.AddLuceneWork - Added code to support analyzer.
org.hibernate.search.engine.DocumentBuilder - Added code to support entity instance
analyzer, see addWorkToQueue(Class entityClass, T entity, Serializable id, WorkType
workType, List<LuceneWork> queue, SearchFactoryImplementor
searchFactoryImplementor).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: