スフィンクスをインストールする
サーバーまたは開発マシンで次の 3 つのコマンドを実行して Sphinx をインストールするだけです。
./configure make sudo make install
これにより、MySQL で使用するために Sphinx がデフォルトでセットアップされます。 PostgreSQL で使用する場合は、次を実行します。 構成、設定
次のフラグを使用します。
./configure --with-pgsql
注: スフィンクスは次からダウンロードできます。 //sphinxsearch.com/downloads//
Thinking Sphinx をインストールする
スフィンクスが何人もいるのに で Rails アプリケーションでは、最も人気があり機能が充実していると思われる Thinking Sphinx を選択しました。したがって、次を使用してRailsプラグインとしてインストールできます スクリプト/プラグインのインストール
指示:
スクリプト/プラグインのインストール git://github.com/freelancing-god/thinking-sphinx.git
スフィンクス検索を使用するコードを作成します。
次に、モデルにインデックスを付ける必要があります。これは、検索できるようにする各モデルに数行の短いコードを追加することで構成されます。そこで、Post モデルを持つ Blog アプリがあるとします (誰もがそうではありません!)。そして、その Post モデルには通常のものが含まれています タイトル
そして 説明
田畑。したがって、次のコードを関連付け宣言の下に追加します。
app/models/post.rb
:
define_index タイトル、説明の終わりをインデックスします
これらの非常に短い 3 行は、Thinking Sphinx にインデックスを付けるよう指示します。 タイトル
そして 説明
のフィールド 役職
モデルを作成し、すべての投稿を検索できるようにします。あとはインデックスを作成して Sphinx を起動するだけです。 Thinking Sphinx は、便利な Rake タスクを使用してこれを非常に簡単にします。
これを実行するだけです:
rake ts:再構築
これにより、Sphinx が停止し (開始されている場合)、インデックスが付けられ、Sphinx が開始されます。次に、クイック検索フォームを作成する必要があります。これは最終的には単なる投稿検索ではなく、グローバルなサイト検索になる予定です。そこで、新しいコントローラーを作成します。
スクリプト/生成コントローラー検索
次に、次の場所にビューを作成します。 app/views/search/index.html.erb
その中にフォームを配置します。
新しい検索コントローラーで、新しい検索コントローラーを作成します。 作成する
アクション:
def create @posts = Post.search params[:search] end
あなたの 作成する
で見る app/views/search/create.html.erb
を表示するための少しのコードを使用すると、 @投稿
いつものやり方で。
注記:
WillPaginate プラグインを使用して結果をページ分割することもできます。
デフォルト作成
@posts = Post.search params[:search], :page => params[:page], :per_page => 10 end