Open wahabmangat opened 1 year ago
I faced similar situation and in my case, I am performing partial reindex on prices columns and for that It eager loads all the association which is defined in search_import
scope and it fires unnecessary queries.
Since we really can't avoid it right now I find a way to do it.
Searchkick.indexer.queue(YourDbRecords.map do |r|
Searchkick::RecordData.new(YourModel.searchkick_index, r).update_data(partial_data_method_name)
end
)
Reference: https://github.com/ankane/searchkick/blob/master/lib/searchkick/index.rb#L167
Note: This code will skip ActiveSupport::Notifications
publish event.
@ankane - We can easily implement this by introducing new flag on configuration level or we can also introduce new method for this. And I am happy to raise PR for this.
This is valid case because I am performing partial data reindexing on lots of data and that too frequently and I can't use Searchkick bulk callback
option since I am not updating records individually(it's happening in batches and happens on direct DB level).
First Done Is your feature request related to a problem? Please describe. I have a search_import scope like
I don't want to eager_load the apps when I'm only indexing let's say the domain name (FYI: domain has_many apps). How to unscope it
here's my search_data method
Describe the solution you'd like