org.springframework.data.solr.UncategorizedSolrException: коллекция не найдена
Я использую spring-data-solr
запросить индексированные данные Solr, работающие на Hadoop Cluser. Название моей коллекции 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')
Любая помощь или указатели приветствуются.
1 ответ
Ваше предложение дало мне идею. Моя модель выглядела так:
открытый класс 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 работал нормально. Благодарю.