nightf0x
nightf0x

Reputation: 2041

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 ?

Upvotes: 2

Views: 1188

Answers (1)

quatermain
quatermain

Reputation: 1452

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.

Upvotes: 7

Related Questions