2016-02-13 1 views

Répondre

4

La seule dépendance qui doivent être utilisées pour les données-printemps-solr est

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-solr</artifactId> 
    <version>1.5.2.RELEASE</version> 
</dependency> 

Il télécharge solrj dépendance et cela ne doit pas être surchargée avec les versions ultérieures de solrj. Il est toujours préférable d'utiliser HttpSolrServer sur EmbeddedSolrServer avec lequel nous allons travailler.

La classe de configuration devrait ressembler à ceci:

@Configuration 
@EnableSolrRepositories(value = "com.package.",multicoreSupport = true) 
public class SolrConfig 
{ 
    @Bean 
    public SolrServer solrServer() throws Exception 
    { 
     HttpSolrServerFactoryBean f = new HttpSolrServerFactoryBean(); 
     f.setUrl("http://localhost:8983/solr"); 
     f.afterPropertiesSet(); 
     return f.getSolrServer(); 
    } 

    @Bean 
    public SolrTemplate solrTemplate(SolrServer solrServer) throws Exception 
    { 
     return new SolrTemplate(solrServer()); 
    } 
} 

L'entité document doit contenir des informations sur ce noyau, ils appartiennent à

@SolrDocument(solrCoreName = "core1") 
public class Document1 
{ 
    @Id 
    @Field 
    private String id; 

    /**other attributes**/ 
} 

L'autre document doit être

@SolrDocument(solrCoreName = "core2") 
public class Document2 
{ 
    @Id 
    @Field 
    private String id; 

    /**other attributes**/ 
} 

Maintenant, la meilleure partie est que vous avez déjà terminé. Il suffit de mettre en place du référentiel de la bonne vieille méthode fait le tour

public interface SolrCore1Repository extends SolrCrudRepository<Document1,String> 
{ 
    // optional code 
} 

l'autre repo est comme

public interface SolrCore2Repository extends SolrCrudRepository<Document2,String> 
{ 
    // optional code 
} 

Une fois solr est en cours d'exécution sur l'URL spécifiée et il a des champs selon le POJO, vous êtes terminé.