2016-06-08 4 views
0

В основном я копирую многострочную конфигурацию с http://docs.spring.io/spring-data/solr/docs/1.0.x/reference/html/solr.repositories.html, а затем немного скорректировал, но это не сработает, потому что мне нужно добавить corename-SolrClient в ClientFactory. Но я просто создаю SolrCLient из синего? Я хочу, чтобы все это соответствовало ядрам, работающим на сервере на моей машине. Это класс конфигурации для Solr:Java Spring, как настроить многоядерную конфигурацию Solr

private static final String PROPERTY_NAME_SOLR_SERVER_URL = "solr.host"; 


     @Resource 
     private Environment environment; 

     @Bean 
     public SolrClientFactory solrClientFactory() { 
      MulticoreSolrClientFactory factory = new MulticoreSolrClientFactory(
        new HttpSolrClient(environment.getRequiredProperty(
          PROPERTY_NAME_SOLR_SERVER_URL))); 
      return factory; 
     } 

     @Bean (name = "SolrTemplateMap") 
     public Map<Language, SolrTemplate> solrTemplateList(){ 
      HashMap<Language, SolrTemplate> map = new HashMap<>(); 
      for (Language l : Language.values()){ 
       SolrTemplate template = new SolrTemplate (solrClientFactory()); 
       template.setSolrCore(l.toString()); 
       map.put(l, template); 
      } 
      return map; 
     } 

Я попытался добавления

for (Language l : Language.values()){ 
       factory.addSolrClientForCore(new HttpSolrClient(url + "/solr/" + l.toString()), l.toString()); 
      } 

на заводе фасоли, однако он ничего не решает. Language - перечисление.

ответ

1

Поздний ответ, не уверен, что это принесет пользу, но я надеюсь, что это поможет кому-то хотя бы. Что-то вроде этого заставило меня работать.

@Bean (name = "SolrTemplateMap") 
    public Map<Language, SolrTemplate> solrTemplateList(){ 
     HashMap<Language, SolrTemplate> map = new HashMap<>(); 
     for (Language l : Language.values()){ 
      SolrTemplate template = new SolrTemplate (configureHttpSolrServer(l)); 
      map.put(l, template); 
     } 
     return map; 
    } 

private SolrServer configureHttpSolrServer(String baseURL) { 
     HttpSolrServerFactoryBean factoryBean = new HttpSolrServerFactoryBean(); 
     factoryBean.setUrl(baseURL); 
     factoryBean.setMaxConnections(100); 
     return factoryBean; 
} 
Смежные вопросы