2009-04-14 13 views
0

私はacts_as_ferretを使用して私のDB上で非常に簡単な検索をしています。私は私の「会場」モデルでこれを置く:ruby​​ on railsプラグイン、acts_as_ferret、非常にバグ?

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

そして、これは私のコントローラ検索アクションである:

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

、その後、私は結果をレンダリングします。適切なクエリ「〜」は、インデックス上で実行されている

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

私は私のログに表示することを:

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

私は簡単なテストを実行する場合。しかし、結果は得られません。名前欄に「The」という単語がある「Venues」がいくつかあるのは間違いありません。

これは非常に単純な検索とacts_as_ferretあるのではかなり使用されている、私はそれが破損したかどうかを確認するためにインデックスを再構築しようとした....いいえサイコロ

任意のアイデア?

ありがとうございます!

答えて

2

はい、フェレットはインデックスを破損させることで非常によく知られています。

Thinking Sphinxのような別の検索プラグインに切り替えることをおすすめします。詳細は、watch the Railscast about itをご覧ください。

+0

合意 - AAFを避けてください。 Luceneが提供するすべてのものが必要な場合はThinkingSphinxとSolrの方が良いオプションがあります –

1

"the"はストップワードとして定義されている可能性があります。非常に一般的な言葉で、すべてのドキュメントを返すだけなので索引付けされません。ストップワードリストを設定できます。

フェレットに問題がある場合は、Solrの使用を検討します。

+0

はTSで終わりましたが、洞察に感謝します! – Tony