solrの設定を1.5.4から3.0.0.M4にアップグレードする際に問題が発生しました(2.0.0.M2へのSpringブートアップデートとともに)。複数のコアでSpring Data Solrを設定する
前の設定ファイル(春・データのSolr 1.5.4.RELEASE):
@Configuration
@EnableSolrRepositories(value = "com.bar.foo.repository.solr", multicoreSupport = true)
public class SolrConfiguration implements EnvironmentAware{
private RelaxedPropertyResolver propertyResolver;
private Environment environment;
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.data.solr.");
}
@Bean
public SolrServer solrServer() {
String solrHost = propertyResolver.getProperty("host");
return new HttpSolrServer(solrHost);
}
@Bean(name = "core1SolrTemplate")
public SolrOperations core1SolrTemplate() {
HttpSolrServer httpSolrServer = new HttpSolrServer(propertyResolver.getProperty("host"));
return new SolrTemplate(httpSolrServer, "Core1");
}
@Bean(name = "core2SolrTemplate")
public SolrOperations core2SolrTemplate() {
HttpSolrServer httpSolrServer = new HttpSolrServer(propertyResolver.getProperty("host"));
return new SolrTemplate(httpSolrServer, "Core2");
}
...
}
私たちは、その後、私は見、更新しようと
@Resource SolrTemplate core1SolrTemplate;
@Resource SolrTemplate core2SolrTemplate;
ように、コードでこれらのsolrtemplateを使用していますHttpSolrServerはもはや利用できません.SolrClientを使うべきですが、multicoreSupportを削除し、テンプレートのコアを宣言する能力を持っていると、コアごとにテンプレートを持つ方法を知ることはできません。クエリ?)
ここに私の現在の非稼働設定です:
@SolrDocument(solrCoreName = "Core1")
public class Foo{
@Id
private String id;
...
}
とによる誤差を投げコール
core1SolrTemplate.queryForPage(simpleQuery, Foo.class)
」:ORG
@Configuration
@EnableSolrRepositories(value = "com.bar.foo.repository.solr")
public class SolrConfiguration {
@Inject
private Environment environment;
@Bean
public SolrClient solrClient() {
return new HttpSolrClient.Builder(environment.getProperty("spring.data.solr.host")).build();
}
@Bean
public SolrTemplate solrTemplate() {
return new SolrTemplate(solrClient());
}
}
当社のPOJOのように構成されています。 apache.solr.client.solrj.impl.HttpSolrClient $ RemoteSolrException:サーバからのエラーhttp://192.168.99.100:8983/solr:期待されるMIMEタイプのアプリケーション/オクテットストリームがテクスチャになったt/html。 「
solrtemplateだけで任意のコアを選択せずにBASEURLを呼び出しているように見えます。
は、私はまた、コアごとに特定のURLを構築するために)前とsolrClient(にパラメータを渡すなど、複数のSolrTemplateを作成しようとしたが、でしたそれを動作させるために失敗した(私は間違ってコアを指し、第二テンプレートが明らかに最初solrtemplate Beanを使用していたエラーを持っていた)。
を私はSolrのは、複数のコアを照会することができるように設定する必要がありますどのように?
現在の(2.1.4)solr doc: http://docs.spring.io/spring-data/data-solr/docs/current/reference/html/#solr.multicore
マルチコアは3.0.0.M4ドキュメントに記述されていません。 http://docs.spring.io/spring-data/data-solr/docs/3.0.0.M4/reference/html/#solr.multicore
私は私を更新しました問題を生成するpojo&solrTemplate呼び出しで質問してください。我々はすでにこれらの注釈を持っており、solr 1.5.4でうまくいきました。コアごとにテンプレートを定義することができました。しかし、SolrTemplateにはcoreNameというコンストラクタはありません。 http://docs.spring.io/spring-data/solr/docs/1.5.4.RELEASE/api/index.html?org/springframework/data/solr/core/SolrTemplate。html 対 http://docs.spring.io/spring-data/solr/docs/3.0.0.M4/api/index.html?org/springframework/data/solr/core/SolrTemplate.html &the設定はhttp://projects.spring.io/spring-data-solr/ は3.0用に廃止されました –