2016-09-29 3 views
0

Ich habe ein sunspot Juwel in meine Schienen-app und mein Modell sieht wie folgt aus:Rails Sunspot - nicht Suche Arbeits

class Lab < ApplicationRecord 
    searchable do 
     text :name 
    end 
end 

Ich betreibe die Befehle wie die docs sagte (mit reindex Befehl enthalten).

Nachdem ich:

@search = Lab.search do 
    fulltext "laboratory" 
end 
@results = search.results 

die @results ist ein leeres Array, und ich einen Datensatz mit dem Namen „Labor“ enthalten haben.

Ich sehe keinen Fehler, also was habe ich falsch gemacht?

+0

Haben Sie versucht, 'Sunspot.commit'? –

Antwort

0

sunspot_rails erstellt einen Callback auf save, um Ihre Änderungen an Solr zu bestätigen, aber wenn Sie mit Daten arbeiten, die vor der Implementierung von sunspot eingefügt wurden, müssen Sie neu indizieren und committen.

Es ist schon einige Zeit her, dass ich Sonnenflecken benutzt habe, aber wenn ich mich nicht irre, wird reindex keine Änderungen an Solr sofort vornehmen, aber reindex! werden. Eine Sunspot.commit nach reindex sollte auch funktionieren.

Die Rake-Aufgaben sollten auch Ihnen helfen, dass mit: bundle exec rake sunspot:reindex

https://github.com/sunspot/sunspot#reindexing-objects