我正在使用带有自定义存储库功能的 Spring data Solr 1.4 来尝试按照本文实现计数功能:链接
我正在使用配置为使用多个内核的 Solr。我的常规存储库接口获取并使用正确的SolrTemplate
和SolrServer
实例,但自定义存储库没有获取模板的相同实例。除了使用@Resource
注入 bean 之外,我还尝试获取 spring 应用程序上下文并从中提取 bean。在这两种情况下,我都会得到一个solrServer
不知道我的核心是什么的 bean 引用,因此当它尝试在以下位置到达 solr 时查询失败:http://localhost:8983/solr而不是http://localhost:8983/solr /我的核心
bean 定义如下所示:
@Bean
@Scope(value=ConfigurableBeanFactory.SCOPE_SINGLETON)
public SolrServer solrServer() {
SolrServer server = new HttpSolrServer(solrServerUrl);
return server;
}
@Bean(name = "solrTemplate")
@Scope(value=ConfigurableBeanFactory.SCOPE_SINGLETON)
public SolrTemplate solrTemplate(SolrServer server) throws Exception {
SolrTemplate template = new SolrTemplate(server);
template.setSolrCore(mainCore);
return template;
}
我的测试看起来像这样:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SearchEngineApplication.class, loader=SpringApplicationContextLoader.class)
public class MainRepositoryTest {
@Autowired
private MainRepository mainRepository;
...
@Test
public void testCountResults(){
long count= citcMainRepository.count("red");
System.out.println("Found " + count + " results for the term red" );
assertTrue(count > 0);
}
}
测试总是失败:
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/select
当它应该到达的正确网址是/solr/select/myCore
关于我可能在这里配置错误的任何建议?任何/所有回复表示赞赏!
——格里夫