Rails アプリケーションで Sphinx を構成する

スフィンクスをインストールする

サーバーまたは開発マシンで次の 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

ご連絡ください。 保存

最新のアップデートを購読する

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

jaJapanese