我正在使用spring-data-solr
来查询在Hadoop cluser上运行的索引Solr数据。我的收藏集名称为party_name
。以下是我用于配置Cloud客户端的代码:
@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);
}
}
当我运行JUnit测试时,我收到以下异常:
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
。
我正在使用具有以下依赖关系的Spring Boot 1.5.2版:
compile('org.springframework.boot:spring-boot-starter-data-solr')
感谢任何帮助或指示。
答案 0 :(得分: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;
...省略了getter / setter。 } 当你建议我发布我的实体代码时,我意识到我需要添加以下注释: @SolrDocument(solrCoreName =" party_name") 公共类PartyName { .. 在我这样做之后,JUnit运行良好。感谢。