我在Web项目中使用Solr-5.0.0。我只是在我的构造函数中创建HttpSolrServer对象,如下所示
static HttpSolrClient solr;
public SolrTestDAO() {
if (solr == null) {
solr = new ttpSolrClient("http://localhost:8983/solr/testDB");
}
}
使用我的HttpSolrServer对象作为静态是否有任何问题,因为它是一个Web项目。如果它不是正确的方式可以任何人建议我正确的方式,所以我的应用程序性能将很高,内存使用率将太低。
答案 0 :(得分:1)
不。实际上,这是使用HttpSolrServer的预期方式。以下是来自HttpSolrServer代码的评论片段:
HttpSolrServer是线程安全的,如果您使用以下构造函数, 你必须为所有请求重用相同的实例。如果创建了实例 苍蝇,它可以导致连接泄漏。建议的做法是保持一个 每个solr服务器url的HttpSolrServer的静态实例,并为所有请求共享它。
请参阅SolrJ Wiki Page。还有一篇有趣的博客文章,关于如果你不把它变为静态here会发生什么。