1

我正在使用rsolr(不是 Sunspot)在 Ruby on Rails 应用程序中访问 Solr。我创建了用于发送请求的本地 solr 对象,如下所示:

solr = RSolr.connect(:url => "http://localhost:8983/solr")

据我了解,这并不是真正的连接,而只是一个按需发出请求的对象,因此保持它的初始化不应该很昂贵,而且它永远不应该断开连接。据此,拥有一个全局 solr 对象应该没问题,在开始时创建它并忘记它。对?但也许它不是线程安全的?

我应该什么时候创建 solr 连接?

4

1 回答 1

2

RSolr.connect方法真正所做的只是清理并保存您正在使用的选项。您可以在此处查看该方法 它传递了一个新的连接对象(值得注意的是,它没有initialize方法,因此在创建时它不做任何事情)和您传递给RSolr.connect.

所以,是的,你是对的——连接一次并让它永远连接在某个地方的变量中没有任何害处。(例如,我RSolr.connect 在我的 Solr/Rails 应用程序中记住结果。

于 2012-06-10T14:00:58.253 回答