I already did Comment.import and it returned 0, which means there were no errors during the import process.
I already did Comment.__elasticsearch__.refresh_index!
This is the model I'm using:
require "datamapper_adapter"
class Comment
  include DataMapper::Resource
  include Elasticsearch::Model
  property :id, Serial
  property :email, String
  property :author, String
  property :description, String
  property :created_at, DateTime
  belongs_to :picture
  validates_presence_of :email, :author, :description
  settings index: { number_of_shards: 1 } do
    mappings dynamic: 'false' do
      indexes :id, analyzer: 'english', index_options: 'offsets'
      indexes :author, analyzer: 'english', index_options: 'offsets'
      indexes :description, analyzer: 'english', index_options: 'offsets'
    end
  end
  def as_indexed_json(options={})
    as_json.except("picture_id", "created_at", "email", "_persistence_state", "_repository", "_id")
  end
end
And still all my queries to the elasticsearch return an empty array as hits.
curl -XPOST 'http://localhost:9200/comments/comment/_search?pretty
{
    "took" : 35,
    "timed_out" : false,
    "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
    "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}
I have data in my DB but I have no idea why it never gets filtered. Any ideas why this is happening? This is driving me nuts
No matter what I do, hits is ALWAYS empty
could you try to add type:string to 
indexes :description and indexes :author
I also remember I had problem with as_json, for older rails versions it will include root attribute. 
Try to set it to false, you can do this globally or in the as_json( root: false )  
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With