0

对于使用具有多核支持的存储库使用 solr 设置 spring 数据是否有详细而完整的解释?

4

1 回答 1

4

spring-data-solr 需要使用的唯一依赖项是

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-solr</artifactId>
    <version>1.5.2.RELEASE</version>
</dependency>

它下载 solrj 依赖项,并且不能被更高版本的 solrj 覆盖。此外,在 EmbeddedSolrServer 上使用 HttpSolrServer 总是更可取的,这是我们将使用的。

配置类应如下所示:

@Configuration
@EnableSolrRepositories(value = "com.package.",multicoreSupport = true)
public class SolrConfig
{
    @Bean
    public SolrServer solrServer() throws Exception
    {
        HttpSolrServerFactoryBean f = new HttpSolrServerFactoryBean();
        f.setUrl("http://localhost:8983/solr");
        f.afterPropertiesSet();
        return f.getSolrServer();
    }

    @Bean
    public SolrTemplate solrTemplate(SolrServer solrServer) throws Exception
    {
        return new SolrTemplate(solrServer());
    }
}

文档实体应包含有关它们属于哪个核心的信息

@SolrDocument(solrCoreName = "core1")
public class Document1
{
    @Id
    @Field
    private String id;

    /**other attributes**/
}

另一个文件应该是

@SolrDocument(solrCoreName = "core2")
public class Document2
{
    @Id
    @Field
    private String id;

    /**other attributes**/
}

现在最好的部分是你已经完成了。简单地以普通的方式设置存储库就可以了

public interface SolrCore1Repository extends SolrCrudRepository<Document1,String>
{
    // optional code
}

另一个回购就像

public interface SolrCore2Repository extends SolrCrudRepository<Document2,String>
{
    // optional code
}

一旦 solr 在指定的 url 上运行并且它具有根据 pojo 的字段,你就完成了。

于 2016-02-13T11:54:19.950 回答