gemfile に以下を追加しました。
gem 'texticle', "2.0", :require => 'texticle/rails' # search gem
次にbundle install
、gemを実行してバンドルインストールしました
Rails 3.1.0 を使用しており、Postgres データベースを使用しています。
探している文字列がデータベース テーブルに実際にあることを確認します。
ruby-1.9.2-p290 :004 > Hotel.first
Hotel Load (0.4ms) SELECT "hotels".* FROM "hotels" LIMIT 1
=> #<Hotel id: 1, title: "Marriot Hotel", created_at: "2012-03-01 23:53:16", updated_at: "2012-03-01 23:53:16">
`Hotel.search('e') を実行すると
ruby-1.9.2-p290 :005 > Hotel.search(:title => 'e')
Hotel Load (1.4ms) SELECT "hotels".*, ts_rank(to_tsvector("hotels"."title"), to_tsquery('e')) AS "rank0.4785527956789428" FROM "hotels" WHERE (to_tsvector('english', "title") @@ to_tsquery('e')) ORDER BY "rank0.4785527956789428" DESC
=> []
私は何も得ません。走ってみましたがHotel.search('e')
、まだ何もありません。試してみるとHotel.search(:title => 'Marriot')
うまくいきますが、Texticle を使用している理由はあいまい検索のためです。
他の構成がありませんか?
ありがとう