È Ruby on Rails plugin acts_as_ferret, molto buggy?
-
09-09-2019 - |
Domanda
sto facendo una ricerca molto semplice sul mio DB usando acts_as_ferret. Ho messo questo nel mio modello "Sede":
acts_as_ferret :fields => [:name, :city]
E questo è nella mia azione di ricerca di controllo:
@t = Venue.find_by_contents(params[:search]+'~')
e poi ho appena rendo i risultati.
render :text => @t.to_json, :success => true, :status => :ok
Se corro un test rapido:
http://localhost:3000/venue/list?search=The
vedo nel mio ceppo che la query corretta "Il ~" viene eseguita sull'indice. Tuttavia, ottengo alcun risultato. Io sicuramente ho un paio di "Luoghi" con la parola "The" nel campo del nome.
Poiché si tratta di una ricerca molto semplice e acts_as_ferret viene usato un bel po ', ho provato a ricostruire l'indice per vedere se è stato danneggiato .... niente da fare
Tutte le idee?
Grazie!
Soluzione
Sì, Ferret è stato molto ben noto per gli indici corrompere.
Mi consiglia di passare a un altro plugin di ricerca come Thinking Sphinx . È possibile guardare il Railscast su di esso per saperne di più.
Altri suggerimenti
Credo che il problema potrebbe essere che "la" è definito come uno stopword- una parola molto comune che non è indicizzato perché sarebbe solo tornare ogni documento. È possibile configurare l'elenco stopword.
Vorrei considerare l'utilizzo di Solr se si hanno problemi con il furetto.