我想使用 spring-data-solr 在一项服务中访问多个/2 存储库。从Spring Data Solr 多核和存储库中,我知道“不幸的是,通过命名空间配置的多核支持是一个悬而未决的问题”。
你能帮我看看下面的例子吗,我怎样才能创建自定义回购?
我的 applicationContext.xml 有两个 Solr 模板,定义如下:
<!-- Enable Solr repositories and configure repository base package -->
<solr:repositories base-package="com.ay.api.repository"/>
<!-- Configures HTTP Solr server -->
<solr:solr-server id="solrServer" url="${solr.server.url}"/>
<!-- Configures Solr Events template -->
<bean id="solrEventsTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<qualifier type="solrEventsTemplate"/>
<constructor-arg index="0" ref="solrServer"/>
<constructor-arg index="1" value="${solr.server.events.core.name}"/>
</bean>
<!-- Configures Solr Towns template -->
<bean id="solrTownsTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<constructor-arg index="0" ref="solrServer"/>
<constructor-arg index="1" value="${solr.server.towns.core.name}"/>
</bean>
我有以下回购
@Repository
public class EventDocumentRepositoryImpl implements EventSearchRepository {
@Resource
@Qualifier("solrEventsTemplate")
private SolrTemplate solrEventsTemplate;
...
}
public interface EventDocumentRepository extends EventSearchRepository, SolrCrudRepository<EventDocument, String> {
}
public interface EventSearchRepository { .... }
@Repository
public class TownRepositoryImpl implements TownSearchRepository { ...
@Resource
@Qualifier("solrTownsTemplate")
private SolrTemplate solrTownsTemplate;
...
}
public interface TownRepository extends SolrCrudRepository<TownDocument, String>{}
public interface TownSearchRepository { .... }
最后服务如下所示:
@Service
public class SearchEventServiceImpl implements SearchEventService {
@Resource
private EventDocumentRepository eventRepository;
@Resource
private TownRepository townRepository;
.....
}
有人可以建议我如何修改我的代码以实现自定义存储库,如Spring Data Solr with Solr 4.1 multicores中所述?因为我无法理解此线程中建议的解决方案。
提前谢谢了。