Elasticsearch-rails empty results

I already did Comment.import and it returned 0, which means that 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 all my elasticsearch queries 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 database, but I have no idea why it is never filtered. Any idea why this is happening? It drives me crazy

No matter what I do, hits are ALWAYS empty

+5
source share
1 answer

You can add type:string to indexes :description and indexes :author

I also remember that I had a problem with as_json, for older versions of rails it will include the root attribute. Try setting it to false, you can do it globally or in as_json( root: false )

+1
source

Source: https://habr.com/ru/post/1202720/


All Articles