Hi Pratik I’m still not sure what the cause of this problem is. There have been a threadsafe-related change in Thinking Sphinx 3.2.0 which may help, but I’m not convinced that’s related to what you’re dealing with.
One thing I’d be interested in seeing is the raw Sphinx results… if you fire up a mysql console (`mysql —host 127.0.0.1 —port 9306`) and enter the following query (make sure the id is for an existing record that you’re seeing duplicated): SELECT * FROM text_message_core WHERE sphinx_internal_id = 1; Can you share the results of that? Thanks, — Pat > On 5 Jul 2016, at 10:54 PM, pratik ganvir <[email protected]> wrote: > > All the records are duplicated not only the impacted once. Every record is > returned twice. Temporary I tried to group them by column id using group_by > option but still they are returned twice. > > Below are the version of gems and the program. > Gem vesrions: > thinking-sphinx (3.1.4) > Rails 4.2.5 > ruby 2.2.2p95 > > Program version: > Sphinx 2.2.10-id64-release > > - Pratik > > On Tuesday, 5 July 2016 18:06:57 UTC+5:30, Pat Allan wrote: > You’re right, update_all doesn’t fire callbacks, and given you’re not using > the status column in your index, that shouldn’t be a problem. > > The duplicate records is an odd thing though. Are you finding _every_ result > is duplicated? Only ones impacted by the cron job? Or are other records > duplicated as well? > > Also: which version of Thinking Sphinx are you using? > > — > Pat > >> On 5 Jul 2016, at 9:20 PM, pratik ganvir <[email protected] <javascript:>> >> wrote: >> >> Hi Pat, >> >> Thanks for the reply. Here is my index definition. >> >> ThinkingSphinx::Index.define :text_message, :with => :real_time do >> has contact_group_id, type: :integer >> has user_id, type: :integer >> has id, :as => :sms_id, type: :integer >> has sms_campeign_id, :as => :sms_campeign_id, type: :integer >> has delivery_schedule, :type => :timestamp, :sortable => true >> has created_at, :type => :timestamp, :sortable => true >> end >> >> I am suing update_all method in my cron which surely doesn't fire callbacks. >> Here is the cron method that does that. >> >> def self.update_system_errors >> sms = Sms.where('status not in (?) and (created_at between ? >> and ?) and job_id in >> (?)',[10,11],DateTime.now.beginning_of_day,DateTime.now.end_of_day,["Daily >> Message Limit Reached"]) >> sms.update_all('status = 10') >> sms = Sms.where('status not in (?) and (created_at between ? and ?) and >> job_id in >> (?)',[10,11],DateTime.now.beginning_of_day,DateTime.now.end_of_day,["Sender >> ID Does not Exist or Pending or Route Invalid!","No Sufficient Credits""]) >> sms.update_all('status = 11') >> end >> >> Thanks, >> Pratik Ganvir >> >> On Sunday, 3 July 2016 16:46:43 UTC+5:30, Pat Allan wrote: >> Hi Pratik >> >> Can you share your index definition? Also, how are you updating the >> TextMessage records via your cron process? Is it in a manner that will fire >> ActiveRecord callbacks? And is this the only model you have with a Sphinx >> index? >> >> Cheers >> >> — >> Pat >> >>> On 2 Jul 2016, at 1:45 PM, pratik ganvir <[email protected] <>> wrote: >>> >>> Hi, >>> >>> So I have a model called TextMessage which has attributes id and user_id. I >>> am using real time indices. >>> There is one cron process that updates the status field of TextMessage >>> records. When it does that, following query returns 2 records for each >>> database record. >>> >>> TextMessage.search(with: {user_id: current_user.id >>> <http://current_user.id/>},order: 'created_at desc',page: params[:page], >>> per_page: 10 ) >>> >>> When I rebuild the index then everything goes fine. But considering the >>> fact that I am using realtime indices I do not want to rebuild indexes >>> everytime. >>> >>> Please help me to get through this. >>> >>> Thanks and regards, >>> Pratik >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Thinking Sphinx" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected] <>. >>> To post to this group, send email to [email protected] <>. >>> Visit this group at https://groups.google.com/group/thinking-sphinx >>> <https://groups.google.com/group/thinking-sphinx>. >>> For more options, visit https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Thinking Sphinx" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/thinking-sphinx >> <https://groups.google.com/group/thinking-sphinx>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "Thinking Sphinx" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/thinking-sphinx > <https://groups.google.com/group/thinking-sphinx>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/thinking-sphinx. For more options, visit https://groups.google.com/d/optout.
