当前位置: 首页 > 知识库问答 >
问题:

如何使用多个内核的存储库配置Spring Data Solr

詹联
2023-03-14

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

共有1个答案

向锦
2023-03-14

spring数据solr需要使用的唯一依赖项是

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

下载solrj依赖项,这不能被更高版本的solrj覆盖。此外,最好使用HttpSolrServer而不是EmbeddedSolrServer,这是我们将使用的。

Configuration类应如下所示:

@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有字段,就完成了。

 类似资料:
  • 问题内容: 我有2个Mongodb数据库通过2个MongoTemplate-s连接到Spring Boot应用程序: mongoTemplate (默认的bean名称,连接到默认的db) mongoAppTemplate (在运行时连接到另一个数据库) 我有很多使用mongoTemplate的MongoRepository-,但我也想创建一些使用mongoAppTemplate的东西。 如何配置2

  • 我有两个Mongodb数据库连接到一个Spring Boot应用程序,其中有两个MongoTemplate-s: mongoTemplate(默认的bean名称,连接到默认的db) mongoAppTemplate(在运行时连接到另一个数据库) 我有很多使用mongoTemplate的MongoRepository,但我也想创建一些使用mongoAppTemplate的。 如何配置2 MongoR

  • 我想使用SpringDataSolr在一个服务中访问多个/2个repo。从SpringDataSolr多核和存储库中,我知道“不幸的是,通过名称空间配置支持多核是一个开放的问题”。 你能帮我举个例子吗?我怎样才能创建自定义回购协议? 我的应用程序Context.xml有两个Solr模板定义如下: 我有以下回购协议 最后,服务如下所示: 有人能告诉我如何修改代码以实现SpringDataSolrWi

  • 我正在使用Eclipse Juno并试图为我的项目配置版本控制。我安装了Subversive并试图配置我的SVN存储库,但是当我转到Eclipse->Preferences->SVN时,没有“存储库”选项卡,正如文档所建议的--Eclipse Subversive。只有“常规”、“SVN连接器”、“项目结构”、“视图设置”和“错误报告”。 因此,当我右键单击我的项目并选择“Team”时,没有“提交

  • 我们正在托管一个企业存储库,它充当众所周知的存储库(例如Maven Central和Clojars)的代理。我想让莱宁根在第一时间找到公司资料库。只有当公司存储库未能交付工件时,Leiningen才应该询问标准存储库。这应该是我所有项目的默认行为。我要做什么配置? 我在~/.lein/profiles.clj中添加了公司存储库作为镜像: 不幸的是,此设置没有影响。Leiningen从Maven C

  • 问题内容: 我的apache solr具有多个核心,例如货币,国家等。因此,使用Spring Data Solr可以从一个核心中检索信息。我现在已经获得了针对“ currency”核心的XML配置。如果我想查询“国家”核心,该如何设置? 并将存储库定义为 从我的服务中我可以做到这一点 我也尝试过使用@SolrDocument(solrCoreName =“ currency”),但是这行不通。 我