2013-04-04 2 views
1

Existe-t-il un bon exemple sur la façon d'indexer les POJO dans Lucene - la même chose que JIRA avec les problèmes?Indexation POJO dans Lucene

Par exemple, si vous avez quelque chose comme

class Book { 
    private String author; 
    private String title; 
} 

Je voudrais que le texte de l'auteur et les champs titre à indexer dans Lucene pour que je puisse rechercher sur eux.

Je sais que c'est possible, mais je n'ai pas trouvé un bon exemple concis comment le faire encore. J'utilise EclipseLink, pas Hibernate, donc Hibernate Search n'est pas une option.

Répondre

0

1) CASE 1:

Si vous pouvez exposer tous les attributs internes à être indexés du POJO via getters.

public interface Indexable{} 

class Book implements Indexable{} 

public interface POJOToLuceneDocumentConverter{  
     Document convert(Indexable obj);  
} 

public class BookToLuceneDocumentConverter{ 
    public Document convert(Indexable obj){ 
    // build the Lucene document. 
} 
} 

2) CASE 2:

Si vous êtes limité ne pas exposer toutes les données indexées à-être via getters.

a) Créez une classe interne pour chaque POJO que vous souhaitez indexer.

b) Avoir une méthode de cette classe interne qui lit les attributs de la classe parente

c) Construire le document Lucene et retourner le même.

Les méthodes ci-dessus sont naïves. Si vous cherchez quelque chose de avancé, basé sur le cadre, automatisé, etc, je ne suis pas sûr ..