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 работал нормально. Благодарю.

Другие вопросы по тегам