0

アクティブなレコードに「contains 関数」を実装するにはどうすればよいですか? 例として次のデータを含むデータベースにクエリを実行しようとしています

ブランド: ipad モデル: ipad 3gen 仕様: wifi+3g 32 GB ブラック

ユーザーが「ipad black 3gen」を検索すると、上記のレコードが表示されます。

これはうまくいかなかった私の道です

    @products = Product.where("brand like ? OR generation like ? OR spec_overview like ? ", "%"+params[:query].capitalize+"%", "%"+params[:query].capitalize+"%", "%"+params[:query].capitalize+"%")
4

1 に答える 1

1

SQLは、このタイプのクエリにはあまり適していません。おそらくフルテキストインデックスでそれを行うことができますが、Solrのようなものを使用すると、はるかに苦痛が少なく、より正確になります。その方向に進むことにした場合は、Solrをsunspotを使用してRailsアプリに統合できます。

于 2012-05-19T01:04:04.527 に答える