我正在开发一个搜索API,它使用Sunspot进行索引,使用Rspec进行测试。
我对我的搜索控制器进行了测试:
context 'when doing a simple search', :type => :request do
let!(:instance_of_my_model) { create(:instance_of_my_model) }
it 'return the correct results' do
MyModel.reindex
# some test code with a GET request
end
end
为了运行测试,我首先推出了solr服务器:
rake sunspot:solr:start RAILS_ENV=test
运行测试后,我停止solr服务器并在开发环境中再次运行它。搜索不再有效。
如果我重新索引,它会再次起作用:
rake sunspot:reindex
(自从我有10M +条目后约1小时)
为什么会这样?
有关信息,请参阅/config/sunspot.yml:
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
答案 0 :(得分:1)
经过一番搜索后,这个回答是:Reindex on sunspot rails 让我知道。
我的sunspot.yml应该是:
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
path: /solr/development
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
path: /solr/test