[hibernate-issues] [Hibernate-JIRA] Commented: (HSEARCH-221) Get Lucene Analyzer runtime (indexing)

Kenneth Christensen (JIRA) noreply at atlassian.com
Tue Jul 15 15:36:42 EDT 2008


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_30670 ] 

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: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list