Frage

Ich mache eine sehr einfache Suche auf meiner DB mit acts_as_ferret. Ich habe dies in meinem "Venue" Modell:

acts_as_ferret :fields => [:name, :city]

Und das ist in meiner Controller Suchaktion:

@t = Venue.find_by_contents(params[:search]+'~')

und dann mache ich nur die Ergebnisse.

render :text => @t.to_json, :success => true, :status => :ok

Wenn ich laufe einen schnellen Test:

http://localhost:3000/venue/list?search=The

ich in meinem Log sehen, dass die richtige Abfrage "The ~" auf dem Index ausgeführt wird. Allerdings erhalte ich keine Ergebnisse. Ich habe auf jeden Fall ein paar „Locations“ mit dem Wort „The“ im Namensfeld.

Da es sich um eine sehr einfache Suche und acts_as_ferret verwendet werden ziemlich viel, habe ich versucht, den Index wieder aufzubauen, um zu sehen, ob es beschädigt wurde .... keine Würfel

Irgendwelche Ideen?

Danke!

War es hilfreich?

Lösung

Ja, Frettchen wurde für verderbliche Indizes sehr gut bekannt.

Ich empfehle Schale wie zu einer anderen Such Plugin über Denken Sphinx . Sie können die Railscast sehen darüber, um mehr zu erfahren.

Andere Tipps

Ich denke, das Problem könnte sein, dass „die“ als stopword- ein extrem gemeinsames Wort definiert ist, die nicht indiziert ist, weil es würde nur jedes Dokument zurückzukehren. Sie können Ihre Stoppwortliste konfigurieren.

Ich würde mit Solr betrachten, wenn Sie Probleme mit Frettchen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top