Когда я должен создать соединение Solr в приложении Rails

Я обращаюсь к Solr в приложении Ruby on Rails с помощью rsolr (не Sunspot). Я создаю локальный объект solr, который я использую для отправки запросов следующим образом:

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

Насколько я понимаю, это на самом деле не соединение, а просто объект, который будет выдавать запросы по требованию, поэтому его инициализация не должна быть дорогой, и она никогда не должна отключаться. В соответствии с этим, должно быть нормально иметь один глобальный объект solr, создать его во время запуска и забыть об этом. Правильно? Но, может быть, это не безопасно поток?

Когда я должен создать соединение Solr?

1 ответ

Решение

Все что RSolr.connect Метод действительно дезинфицирует и сохраняет параметры, которые вы используете. Вы можете увидеть этот метод здесь. Передан новый объект подключения (который, в частности, не имеет initialize метод, поэтому он ничего не делает при создании) и параметры, которые вы передаете RSolr.connect,

Так что да, вы правы - никакого вреда в том, чтобы соединиться один раз и оставить его подключенным навсегда, где-то зависать в переменной. (Например, я запоминаю результат RSolr.connect в моем приложении Solr/Rails.)

Другие вопросы по тегам