1

Sunspot gemをインストールしました。

gem 'sunspot_rails'

group :development do
  gem 'sunspot_solr'
end

group :development, :test do
  gem "sunspot_test"
end

sunspot:solr:start実行する前に実行しないrails serverと、次のエラーが発生します。

> OLR Request (1.3ms)  [ path=#<RSolr::Client:0xa9a3f6c>
> parameters={data: <?xml version="1.0"
> encoding="UTF-8"?><add><doc><field name="id">Post 36</field><field
> name="type">Post</field><field
> name="type">ActiveRecord::Base</field><field
> name="class_name">Post</field><field boost="5"
> name="title_text">sadads</field><field
> name="content_text">asdasdasdasdsadsdsd</field></doc></add>, headers:
> {"Content-Type"=>"text/xml"}, method: post, params: {:wt=>:ruby},
> query: wt=ruby, path: update, uri:
> http://localhost:8982/solr/update?wt=ruby, open_timeout: ,
> read_timeout: } ]
>      (0.4ms)  rollback transaction
>     Completed 500 Internal Server Error in 639ms
>     
>     Errno::ECONNREFUSED (Connection refused - connect(2)):
>       app/controllers/posts_controller.rb:41:in `create'

POST リクエストを行うたびに (アプリで投稿や投票を作成するなど)。

これは gem の通常の動作ですか? このステップをスキップまたは自動化することはありますか?

編集:

念のため、post * create action * とmodelを次に示します。

  def create
    @post = current_user.posts.build(params[:post])
    if @post.save
      flash[:success] = "Post created!"
      redirect_to @post
    else
      render 'new'
    end
  end

class Post < ActiveRecord::Base

  searchable do
    text :title, boost: 5
    text :content
    text :replies do
      replies.map { |reply| reply.content }
    end
  end
4

1 に答える 1

4

これは gem の通常の動作ですか? このステップをスキップまたは自動化することはありますか?

はい、Solr を使用する場合は、パッケージ化されている場合でも、Solr を起動する必要があります。生活を楽にするために、Foremanのようなものを使用できます。

于 2012-12-12T15:32:22.847 に答える