3

Rails アプリの全文検索に TS を使用しています。アプリに「最も検索された」タイプのリストを表示するために検索語を保存しようとしています。これが私の検索コントローラーのインデックス アクションです。検索機能を「保存」すると、検索に約 1.28 秒かかり、それがない場合は約 1.04 秒かかります。

いくつか質問があります。

1-検索に余分な時間を追加しないように、これを行うためのより良い方法はありますか?

2 - TS や Sphinx の標準的なベスト プラクティスに従う以外に、全文検索を高速化する一般的な最善の方法は何ですか?

ありがとう

def index
        terms = params[:search_term]
        terms ||= ""
        if params[:city]
            @search_results  = Post.search terms, :conditions => {:city => params[:city]}, :page => params[:page] || 1, :per_page => Constants::LISTINGS_PER_PAGE
        elsif params[:state]
            @search_results  = Post.search terms, :conditions => {:state => params[:state]}, :page => params[:page] || 1, :per_page => Constants::LISTINGS_PER_PAGE
        else
            @search_results  = Post.search terms, :page => params[:page] || 1, :per_page => 3
        end
#        if @search_results.total_entries > 0
#            Search.create(:term => terms)
#        end
        respond_to do |format|
            format.html
            format.js
        end
    end
4

1 に答える 1

1

大声で考えてみると、Delayed::Job を使用して検索用語を舞台裏で保存できるかもしれません。自分の統計を編集している間、誰も検索結果を待つ必要はありません。まだ 0.280 秒しかないことに注意してください。

慣れていない場合は、github で tobi の遅延ジョブを確認してください。

于 2010-08-16T21:38:31.750 に答える