Вопрос по sunspot, ruby-on-rails, ruby-on-rails-4, sunspot-rails, solr – rake sunspot: solr: reindex не работает в приложении Rails 4 с несколькими движками

5

У меня есть приложение rails 4 beta1 с несколькими двигателями. Я'я установил sunspot_rails gem /2.0.0.pre.130115/ в моем хост-приложении. Большинство моих моделей жили в engine1. Я использовал их на других двигателях. После того, как я установил sunspot_rails, используяrake sunspot:solr:run я получилcommand/task not found, По документации я нашел решение. Вот ссылка:https://github.com/sunspot/sunspot/wiki/Adding-Sunspot-search-to-Rails-in-5-minutes-or-less

После того, как я создал новую запись, Солр нашел ее в поиске. Но когда я переиндексировал свои данные, старые записи все еще не были найдены с помощью поиска. По моему мнению переиндексация не сработала. Я'Я попытался остановить и перезапустить сервер Solr, несколько раз перезагрузил мой компьютер, но не повезло. Любая идея?

Если вам нужно больше информации, дайте мне знать.

Вот мои драгоценные камни:

Gems included by the bundle:
  * actionmailer (4.0.0.beta1)
  * actionpack (4.0.0.beta1)
  * activemodel (4.0.0.beta1)
  * activerecord (4.0.0.beta1)
  * activerecord-deprecated_finders (0.0.3)
  * activesupport (4.0.0.beta1)
  * admin (0.0.1)
  * arel (4.0.0.beta2)
  * atomic (1.1.7)
  * bcrypt-ruby (3.0.1)
  * builder (3.1.4)
  * bundler (1.3.2)
  * coffee-rails (4.0.0.beta1)
  * coffee-script (2.2.0)
  * coffee-script-source (1.6.2)
  * core (0.0.1)
  * erubis (2.7.0)
  * execjs (1.4.0)
  * factory_girl (4.2.0)
  * factory_girl_rails (4.2.1)
  * fattr (2.2.1)
  * frontend (0.0.1)
  * highline (1.6.18)
  * hike (1.2.2)
  * i18n (0.6.4)
  * jbuilder (1.0.2)
  * jquery-rails (2.2.1)
  * json (1.7.7)
  * kaminari (0.14.1)
  * mail (2.5.3)
  * mime-types (1.22)
  * minitest (4.7.1)
  * multi_json (1.7.2)
  * nokogiri (1.5.9)
  * options (2.3.0)
  * pg (0.15.1)
  * polyglot (0.3.3)
  * pr_geohash (1.0.0)
  * progress_bar (1.0.0)
  * rack (1.5.2)
  * rack-test (0.6.2)
  * rails (4.0.0.beta1)
  * rails-i18n (0.7.3 1fc01d5)
  * railties (4.0.0.beta1)
  * rake (10.0.4)
  * rdoc (3.12.2)
  * rsolr (1.0.9)
  * sass (3.2.7)
  * sass-rails (4.0.0.beta1)
  * sprockets (2.9.2)
  * sprockets-rails (2.0.0.rc3)
  * store_admin (0.0.1)
  * store_frontend (0.0.1)
  * sunspot (2.0.0.pre.130115)
  * sunspot_rails (2.0.0.pre.130115)
  * sunspot_solr (2.0.0.pre.130115)
  * thor (0.18.1)
  * thread_safe (0.1.0)
  * tilt (1.3.7)
  * treetop (1.4.12)
  * tzinfo (0.3.37)
  * uglifier (2.0.1)

Сгенерированное вручную решение задачи:

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

    # for backwards compatibility
    task :reindex => :"sunspot:reindex"
  end
end

Моя модель:

# encoding: utf-8

class Product < ActiveRecord::Base

  ##
  # Sunspot
  searchable auto_index: true, auto_remove: true do
    text :name, boost: 5
    text :description, boost: 4
    # integer :store_id
  end
end

И, наконец, Solr 's schema.xml





  
    
    
    
    
    
    
    
    

    

    
    
      
        
        
        
        
        
        
        
        
      
    



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
    

    
    
    
    
  
  
  id
  
  text
  
  
  

Вы указываете правильную среду при переиндексации? Вы можете посмотреть на индексные файлы Solr? Есть ли ошибки при переиндексации? Reindex должен показать вам количество записей, индикатор выполнения, оставшееся время и т. Д. Так ли это? yuяi
Попробуй безsolr инструкция. Простоrake sunspot:reindex - Это подходит для меня. lobner

Ваш Ответ

1   ответ
0

Я столкнулся с подобной проблемой, и решение состоит в том, чтобы запустить переиндексацию сbundle exec rake не простоrake

$ bundle exec rake sunspot:solr:stop 
$ bundle exec rake sunspot:solr:start 
$ bundle exec rake sunspot:reindex

Похожие вопросы