2017-04-12 5 views
0

spring-data-solrを使用して、Hadoopクライアントで実行中のインデックス付きSolrデータをクエリしています。私のコレクションの名前はparty_nameです。以下は、私がクラウドクライアントを設定するために使用するコードです:私は私のJUnitテストを実行するとorg.springframework.data.solr.UncategorizedSolrException:コレクションが見つかりません

@Configuration 
@EnableSolrRepositories(basePackages = { "org.nccourts.repository" }, multicoreSupport = true) 
public class SpringSolrConfig { 
    @Value("${spring.data.solr.zk-host}") 
    private String zkHost; 

    @Bean 
    public SolrClient solrClient() { 
    return new CloudSolrClient(zkHost); 
    } 

    @Bean 
    public SolrTemplate solrTemplate(CloudSolrClient solrClient) throws Exception { 
    solrClient.setDefaultCollection("party_name"); 
    return new SolrTemplate(solrClient); 
    } 

}

、私は次の例外を取得しています:

org.springframework.data.solr.UncategorizedSolrException: Collection not found: partyname; nested exception is org.apache.solr.common.SolrException: Collection not found: partyname 
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:215) 
    at org.springframework.data.solr.core.SolrTemplate.executeSolrQuery(SolrTemplate.java:1030) 

が見つかりませんコレクションに注意してください。 :partynameですが、入力したコレクション名は party_nameです。

私は次の依存関係で春ブートバージョン1.5.2を使用しています: compile('org.springframework.boot:spring-boot-starter-data-solr')

すべてのヘルプやポインタが高く評価されています。

+0

エンティティクラス(アノテーションを含む)の完全な宣言を追加することはできますか(おそらく '@SolrDocument public class PartyName {...}')ですか? – manish

答えて

0

あなたの提案は私にそのアイデアを与えました。

パブリッククラスPartyName {

@Field("case_status") 
private String caseStatus; 

private String county; 

@Field("court_type") 
private String courtType; 

private String id; 

@Field("in_regards_to") 
private String inRegardsTo; 

@Field("biz_name") 
private String bizName; // business name after parsing name 

@Field("first_name") 
private String firstName; // person 1st name after parsing name 

@Field("last_name") 
private String lastName; // person last name after parsing name 

@Field("middle_name") 
private String middleName; // person middle name after parsing name 

private String name; // original name before parsing 
private String prefix; // person prefix after parsing name 
private String suffix; // person name suffix after parsing name 

@Field("party_num") 
private Integer partyNumber; 

@Field("party_role") 
private String partyRole; 

@Field("party_status") 
private String partyStatus; 

@Field("row_of_origin") 
private String rowOrigin; 

@Field("seq_num") 
private Integer seqNumber; 

private Integer year; 

...ゲッター/セッター省略:私のモデルは、このように見えました。私は私のエンティティのコードを投稿するためにあなたが提案したとき } は、私は以下の注釈を追加するために必要な実現:私がやった後 @SolrDocument(solrCoreName =「party_name」) パブリッククラスPartyName { ... を、JUnitのことうまく働いた。ありがとう。

関連する問題