1

最近、Rails 3.2 アプリを 4.0 にアップグレードし、Ruby を 2.0 にアップグレードしました。現在、Sunspot の実行に問題があります。正しく起動しますが、sunspot が処理している検索ページに移動すると、次のエラーがスローされます。私は周りを見回しましたが、何も見つかりません。

助けてくれてありがとう。

サーバーエラー

RSolr::Error::Http - 404 Not Found エラー: Not Found 要求データ: "fq=type%3AGear&start=0&rows=30&facet=true&f.category_name_sms.facet.mincount=1&facet.field=category_name_sms&facet.field=sub_category_name_sms&facet.field=state_s&facet .field=city_s&facet.field=price_s&f.sub_category_name_sms.facet.mincount=1&f.state_s.facet.mincount=1&f.city_s.facet.mincount=1&f.price_s.facet.mincount=1&q=%2A%3A%2A" バックトレース: /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in adapt_response' /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in execute' /usr/local/rvm/gems/ruby-2.0 .0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:161: send_and_receive' /usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:16:in send_and_receive_with_as_instrumentation のブロック内' /usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0 .0/lib/active_support/notifications.rb:159: のblock in instrument' /usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in instrument' /usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in instrument' /usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:15:in send_and_receive_with_as_instrumentation' (eval):2:in post' /usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/search/abstract_search.rb:45:in execute' / usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/searchable.rb:358:in `solr_execute_search''

SOLR 開発ログ エラー

Jul 30, 2013 11:48:46 PM org.apache.solr.servlet.SolrDispatchFilter init
INFO: SolrDispatchFilter.init()
Jul 30, 2013 11:48:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
INFO: JNDI not configured for solr (NoInitialContextEx)
Jul 30, 2013 11:48:46 PM org.apache.solr.core.SolrResourceLoader locateSolrHome
INFO: using system property solr.solr.home: /Users/dave/rails_projects/EquiptMe/solr
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer$Initializer initialize
INFO: looking for solr.xml: /Users/dave/rails_projects/EquiptMe/solr/solr.xml
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer <init>
INFO: New CoreContainer 567038057
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer$Initializer initialize
INFO: no solr.xml file found - using default
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer load
INFO: Loading CoreContainer using Solr Home: '/Users/dave/rails_projects/EquiptMe/solr/'
Jul 30, 2013 11:48:46 PM org.apache.solr.core.SolrResourceLoader <init>
INFO: new SolrResourceLoader for directory: '/Users/dave/rails_projects/EquiptMe/solr/'
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting socketTimeout to: 0
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting urlScheme to: http://
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting connTimeout to: 0
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting maxConnectionsPerHost to: 20
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting corePoolSize to: 0
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting maximumPoolSize to: 2147483647
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting maxThreadIdleTime to: 5
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting sizeOfQueue to: -1
Jul 30, 2013 11:48:46 PM org.apache.solr.handler.component.HttpShardHandlerFactory getParameter
INFO: Setting fairnessPolicy to: false
Jul 30, 2013 11:48:46 PM org.apache.solr.client.solrj.impl.HttpClientUtil createClient
INFO: Creating new http client, config:maxConnectionsPerHost=20&maxConnections=10000&socketTimeout=0&connTimeout=0&retry=false
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer load
INFO: Registering Log Listener
Jul 30, 2013 11:48:46 PM org.apache.solr.core.CoreContainer create
INFO: Creating SolrCore 'collection1' using instanceDir: /Users/dave/rails_projects/EquiptMe/solr/collection1
Jul 30, 2013 11:48:46 PM org.apache.solr.core.SolrResourceLoader <init>
INFO: new SolrResourceLoader for directory: '/Users/dave/rails_projects/EquiptMe/solr/collection1/'
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrConfig <init>
INFO: Using Lucene MatchVersion: LUCENE_41
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrConfig <init>
INFO: Loaded SolrConfig: solrconfig.xml
Jul 30, 2013 11:48:47 PM org.apache.solr.schema.IndexSchema readSchema
INFO: Reading Solr Schema
Jul 30, 2013 11:48:47 PM org.apache.solr.schema.IndexSchema readSchema
INFO: Schema name=sunspot
Jul 30, 2013 11:48:47 PM org.apache.solr.schema.IndexSchema readSchema
INFO: default search field in schema is text
Jul 30, 2013 11:48:47 PM org.apache.solr.schema.IndexSchema readSchema
INFO: query parser default operator is AND
Jul 30, 2013 11:48:47 PM org.apache.solr.schema.IndexSchema readSchema
INFO: unique key field: id
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrCore <init>
INFO: [collection1] Opening new SolrCore at /Users/dave/rails_projects/EquiptMe/solr/collection1/, dataDir=/Users/dave/rails_projects/EquiptMe/solr/data/development/
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrCore <init>
INFO: JMX monitoring not detected for core: collection1
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrCore initDirectoryFactory
INFO: solr.NRTCachingDirectoryFactory
Jul 30, 2013 11:48:47 PM org.apache.solr.core.CachingDirectoryFactory get
INFO: return new directory for /Users/dave/rails_projects/EquiptMe/solr/data/development forceNew: false
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrCore getNewIndexDir
INFO: New index directory detected: old=null new=/Users/dave/rails_projects/EquiptMe/solr/data/development/index/
Jul 30, 2013 11:48:47 PM org.apache.solr.core.CachingDirectoryFactory get
INFO: return new directory for /Users/dave/rails_projects/EquiptMe/solr/data/development/index forceNew: false
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /select: solr.SearchHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /query: solr.SearchHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /get: solr.RealTimeGetHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /update: solr.UpdateRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /update/json: solr.JsonUpdateRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /update/csv: solr.CSVRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: adding lazy requestHandler: solr.extraction.ExtractingRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /update/extract: solr.extraction.ExtractingRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: adding lazy requestHandler: solr.FieldAnalysisRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /analysis/field: solr.FieldAnalysisRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: adding lazy requestHandler: solr.DocumentAnalysisRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /analysis/document: solr.DocumentAnalysisRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /admin/ping: solr.PingRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /debug/dump: solr.DumpRequestHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /replication: solr.ReplicationHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /mlt: solr.MoreLikeThisHandler
Jul 30, 2013 11:48:47 PM org.apache.solr.core.RequestHandlers initHandlersFromConfig
INFO: created /admin/: solr.admin.AdminHandlers
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.loader.XMLLoader init
INFO: xsltCacheLifetimeSeconds=60
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.loader.XMLLoader init
INFO: xsltCacheLifetimeSeconds=60
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.loader.XMLLoader init
INFO: xsltCacheLifetimeSeconds=60
Jul 30, 2013 11:48:47 PM org.apache.solr.search.SolrIndexSearcher <init>
INFO: Opening Searcher@1d70ec24 main
Jul 30, 2013 11:48:47 PM org.apache.solr.update.CommitTracker <init>
INFO: Hard AutoCommit: if uncommited for 15000ms; 
Jul 30, 2013 11:48:47 PM org.apache.solr.update.CommitTracker <init>
INFO: Soft AutoCommit: if uncommited for 5000ms; 
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.component.SpellCheckComponent inform
INFO: Initializing spell checkers
Jul 30, 2013 11:48:47 PM org.apache.solr.spelling.DirectSolrSpellChecker init
INFO: init: {name=default,field=name,classname=solr.DirectSolrSpellChecker,distanceMeasure=internal,accuracy=0.5,maxEdits=2,minPrefix=1,maxInspections=5,minQueryLength=4,maxQueryFrequency=0.01}
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.component.SpellCheckComponent inform
INFO: No queryConverter defined, using default converter
Jul 30, 2013 11:48:47 PM org.apache.solr.handler.ReplicationHandler inform
INFO: Commits will be reserved for  10000
Jul 30, 2013 11:48:47 PM org.apache.solr.core.SolrCore registerSearcher
INFO: [collection1] Registered new searcher Searcher@1d70ec24 main{StandardDirectoryReader(segments_1:1)}
Jul 30, 2013 11:48:47 PM org.apache.solr.core.CoreContainer registerCore
INFO: registering core: collection1
Jul 30, 2013 11:48:47 PM org.apache.solr.servlet.SolrDispatchFilter init
INFO: user.dir=/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_solr/solr
Jul 30, 2013 11:48:47 PM org.apache.solr.servlet.SolrDispatchFilter init
INFO: SolrDispatchFilter.init() done

GEMが使われている

gem 'sunspot_solr', github: 'sunspot/sunspot', branch: 'master'
gem 'sunspot_rails', github: 'sunspot/sunspot', branch: 'master'

reindex 実行時のエラーログ

RSolr::Error::Http - 404 Not Found
Error:     Not Found

Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:Gear</query></delete>"

Backtrace: /usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in `adapt_response'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in `execute'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:161:in `send_and_receive'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `block in instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'
(eval):2:in `post'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:67:in `update'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:131:in `delete_by_query'/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in `adapt_response'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in `execute'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:161:in `send_and_receive'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `block in instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `instrument'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'
(eval):2:in `post'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:67:in `update'
/usr/local/rvm/gems/ruby-2.0.0-p247/gems/rsolr-1.0.9/lib/rsolr/client.rb:131:in `delete_by_query'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/indexer.rb:57:in `remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session.rb:181:in `block in remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session.rb:181:in `each'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session.rb:181:in `remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb:17:in `method_missing'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot.rb:464:in `remove_all'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/searchable.rb:183:in `solr_remove_all_from_index'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/searchable.rb:202:in `solr_reindex'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/tasks.rb:68:in `block (3 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/class_set.rb:16:in `each'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot/lib/sunspot/class_set.rb:16:in `each'
/usr/local/rvm/gems/ruby-2.0.0-p247/bundler/gems/sunspot-5488725cb258/sunspot_rails/lib/sunspot/rails/tasks.rb:67:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval'
/usr/local/rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>'
4

2 に答える 2

2

そのため、次の方法で問題を解決しました。

  1. まず、sunspot と SOLR のすべてのバージョンをアンインストールしました。
  2. 次に、gem 'sunspot_rails' gem 'sunspot_solr' で Sunspot を再インストールしました。
  3. 次に、solr.rake を application/lib/tasks に追加しました
namespace :sunspot do
  namespace :solr do
  desc 'Start the Solr instance'
    task :start => :environment do
      case RUBY_PLATFORM
        when /w(in)?32$/, /java$/
          abort("This command is not supported on #{RUBY_PLATFORM}. " +
          "Use rake sunspot:solr:run to run Solr in the foreground.")
     end

  if defined?(Sunspot::Rails::Server)
    Sunspot::Rails::Server.new.start
  else
    Sunspot::Solr::Server.new.start
  end
  puts "Successfully started Solr ..."
end

desc 'Run the Solr instance in the foreground'
task :run => :environment do
  if defined?(Sunspot::Rails::Server)
    Sunspot::Rails::Server.new.run
  else
    Sunspot::Solr::Server.new.run
  end
end

desc 'Stop the Solr instance'
task :stop => :environment do
  case RUBY_PLATFORM
  when /w(in)?32$/, /java$/
    abort("This command is not supported on #{RUBY_PLATFORM}. " +
          "Use rake sunspot:solr:run to run Solr in the foreground.")
  end

  if defined?(Sunspot::Rails::Server)
    Sunspot::Rails::Server.new.stop
  else
    Sunspot::Solr::Server.new.stop
  end
  puts "Successfully stopped Solr ..."
end

task :reindex => :"sunspot:reindex"
end
end

その後、機能しました。うまくいけば、これは誰かを助けます。

于 2013-08-08T01:52:24.700 に答える
0

SunSpot Solr サーバーを起動するパラメータは何ですか? Solr4 (collection1 は Solr4 に表示されます) に更新しようとしていて、ディレクトリ レイアウトが間違っていると思います。

Solr 3 では、構成ファイルはsolr ホームのすぐ下のconfディレクトリにありました。Solr4 では、コレクションのレベルがもう 1 つあり、デフォルト名はcollection1です。

私が正しければ、あなたの家にcollection1でサブディレクトリを作成し、その下にconfと他のディレクトリを移動する必要があるかもしれません。

于 2013-07-25T01:26:31.550 に答える