0

Je travaille sur une API de recherche qui utilise Sunspot pour l'indexation et Rspec pour les tests.Réindexation de taches solaires pendant les tests d'indexation de développement

J'ai un test pour mon contrôleur de recherche:

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 

Pour l'exécution des tests, je commence par mise à l'eau le serveur Solr:

rake sunspot:solr:start RAILS_ENV=test 

Après avoir exécuté mon test, j'arrêter le serveur Solr et l'exécuter à nouveau dans un environnement de développement. La recherche ne fonctionne plus.

Il fonctionne à nouveau si je commande REINDEX:

rake sunspot:reindex 

(~ 1 heure depuis que j'ai 10M + entrées)

Pourquoi est-ce qui se passe?

Pour plus d'informations, mon /config/sunspot.yml:

development: 
    solr: 
    hostname: localhost 
    port: 8982 
    log_level: INFO 

test: 
    solr: 
    hostname: localhost 
    port: 8981 
    log_level: WARNING 

Répondre

1

Après quelques recherches, cette réponse: Reindex on sunspot rails me pressenti de.

Mon sunspot.yml aurait dû être:

development: 
    solr: 
    hostname: localhost 
    port: 8982 
    log_level: INFO 
    path: /solr/development 


test: 
    solr: 
    hostname: localhost 
    port: 8981 
    log_level: WARNING 
    path: /solr/test