1

ほんの少し前にこの検索機能が機能していたことは知っていますが、ブートストラップで検索とナビゲーションバーをやり直していて、今では見栄えは良いのですが、検索機能が機能していません!! インデックスアクションの何かだと思いますか?それがすることは、まあ、何もありません。おそらくフォームを送信していませんか?- どうすれば確認できますか?

ビュー *guidelines_controller.rb*

 def index
    @guidelines = Guideline.order(:title).all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @guidelines }
    end
    @search = Sunspot.search(Guideline) do  
    fulltext params[:search]  
  end  
  @guidelines = @search.results 
  end

レイアウト/application.html.erb

<%= form_tag guidelines_path, :class => 'navbar-search', :method => :get do %>  

    <%= text_field_tag :search, params[:search], :class => 'search-query', :placeholder=>"Search" %> 

モデルガイドライン.rb

searchable do
    text :title, :default_boost => 2
    text :subtitle
  end
4

1 に答える 1

1

私は黒点の専門家ではありませんが、コントローラーの方法は少し奇妙です。Sunspot を呼び出す前にビューをレンダリングするのはなぜですか?

さらに、なぜすべてのガイドライン行 (Guideline.order(:title).all) をフェッチするのですか?

検索条件 (params[:search]) が指定された場合に Sunspot で検索することを想定して、メソッドをリファクタリングしました。それ以外の場合、すべての行がフェッチされます。

def index
  if params[:search].present?
    @search = Sunspot.search(Guideline) do  
      fulltext params[:search]
    end

    @guidelines = @search.results
  else
    @guidelines = Guideline.order(:title).all
  end

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @guidelines }
  end
end

ちなみに、ガイドラインモデルに多くの行が含まれている場合は、行数の制限 (制限またはページネーション) を検討する必要があります。

編集

Sunspot #278 Search with Sunspotに関するスクリーンキャストです。

もしかしたら、検索エンジンの再インデックスを忘れていませんか?

rake sunspot:reindex
于 2013-02-19T10:05:21.423 に答える