使用spring data solr将文档索引到特定集合

使用spring data solr将文档索引到特定集合,spring,solr,spring-data,spring-annotations,spring-data-solr,Spring,Solr,Spring Data,Spring Annotations,Spring Data Solr,我正在尝试将文档索引到solr中的特定集合。集合名称为“程序”。我使用的是spring数据解决方案 我在尝试保存文档时遇到以下错误: HTTP ERROR 404 Problem accessing /solr/update. Reason:Not Found 我的假设是注释@SolrDocument无法识别。spring data solr正在尝试将文档发布到/solr/update,而它应该尝试将其发布到/solr/program/update。但是我不确定如何证明或修复它 我的架构可在

我正在尝试将文档索引到solr中的特定集合。集合名称为“程序”。我使用的是spring数据解决方案

我在尝试保存文档时遇到以下错误:

HTTP ERROR 404
Problem accessing /solr/update. 
Reason:Not Found
我的假设是注释@SolrDocument无法识别。spring data solr正在尝试将文档发布到/solr/update,而它应该尝试将其发布到/solr/program/update。但是我不确定如何证明或修复它

我的架构可在以下链接中找到:

http://<solr-host>/solr/program/schema
http://<solr-host>/solr/program/update
以下是使用的版本:

<spring.data.solr.version>1.3.2.RELEASE</spring.data.solr.version>
<spring.version>4.1.4.RELEASE</spring.version>
solr server version - solr-spec 4.10.2 
1.3.2.1版本
4.1.4.1发布
solr服务器版本-solr规范4.10.2

要处理多个集合,您需要在spring配置下启用多个存储库,如下所示:-

<context:annotation-config />
<context:component-scan base-package="com.test.solr" />

<solr:solr-server id="solrServer" url="http://localhost:8983/solr" />

<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
    <constructor-arg ref="solrServerFactory" />
</bean>

<solr:repositories base-package="com.test.solr.repositories" multicore-support="true" />
<bean id="solrServerFactory"
    class="org.springframework.data.solr.server.support.MulticoreSolrServerFactory">
    <constructor-arg ref="solrServer" />
    <constructor-arg name="cores">
        <list>
            <value>program</value>
        </list>
    </constructor-arg>
</bean>

程序

您是否能够访问
程序
核心管理页面?@sidgate是。没有例外。我使用url访问它http:///solr/#/programwhich 您正在使用的spring data solr版本???@Swaraj该版本在我的帖子中提供。它的1.3.2.RELEASE。那么如何指定核心名称呢?在pojo上添加@SolrDocument(solrCoreName=“program”)。这将从工厂获取程序集合url。
package com.oostnet.solr.repositories;

public interface ProgramRepository extends SolrCrudRepository<Program, String> {

}
package com.oostnet.controllers;

public class ProgramController{
    private ProgramRepository programRepository;
    @Autowired
    public void setProgramRepository(ProgramRepository programRepository) {
        this.programRepository = programRepository;
    }
    public void createProgram(Program program) {
        programRepository.save(program);
    }
}
<spring.data.solr.version>1.3.2.RELEASE</spring.data.solr.version>
<spring.version>4.1.4.RELEASE</spring.version>
solr server version - solr-spec 4.10.2 
<context:annotation-config />
<context:component-scan base-package="com.test.solr" />

<solr:solr-server id="solrServer" url="http://localhost:8983/solr" />

<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
    <constructor-arg ref="solrServerFactory" />
</bean>

<solr:repositories base-package="com.test.solr.repositories" multicore-support="true" />
<bean id="solrServerFactory"
    class="org.springframework.data.solr.server.support.MulticoreSolrServerFactory">
    <constructor-arg ref="solrServer" />
    <constructor-arg name="cores">
        <list>
            <value>program</value>
        </list>
    </constructor-arg>
</bean>