简体   繁体   中英

Ruby on rails -elasticsearch tire impoting existing db

I have a Ruby on rails 3.2 application. I want to enable text based search on a model that has a lot of data already populated in it. Suppose the name of the model class is Post. I am planning on using elasticsearch since I heard it is one of the best real-time search engines around and I am using tire gem so that my application can interact with elasticsearch.

As I am new to elasticsearch I am having trouble creating indices for the existing data for the model. I am using mongodb as the backend database. Can anyone tell me how to import the indices.

I have already tried

Tire.index "posts" do
  import Post.all
end

The error that I got was :

  BSON::InvalidObjectId: illegal ObjectId format: Career Guidance 
  from /Users/anirvan/.rvm/gems/ruby-1.9.3-p125/gems/bson-1.5.1/lib/bson/types/object_id.rb:126:in `from_string'

Can anyone help me out here ?

I use Mysql and this code in bash(from railscasts.com):

rake environment tire:import CLASS=Post FORCE=true

http://www.elasticsearch.org/guide/appendix/clients.html

tire: Ruby API & DSL, with full Rails ActiveModel compatibility and mongoid integration through mebla .

Try it, maybe help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM