I have the same issue. It's working fine on my localmachine(Leopard) but when i try it on production server(Ubuntu), both DEV and PROD environment is not triggering the delta update. I try to force the delta update to true but nothing happen.
I've tried updating the attribute on script/console and it triggers the update on delta. Thanks! On Aug 28, 8:10 am, Pat Allan <[email protected]> wrote: > Okay, sounds like it is a bug, maybe what I was mulling in the > previous email is what's at fault. Will try to find some time to > investigate. > > -- > Pat > > On 27/08/2009, at 8:50 PM, gobigdave wrote: > > > > > Even when running in the console, calculated attribute modification > > did not causedeltaindex update. > > > person = Person.new > > person.last_name = "Smith" > > person.save # causeddeltaindex > > person.area_code = "617" # assume you have has CRC32("area_code"), :as > > => :area_code, :type => :integer > > person.save # did not causedeltaindex > > > As I said, I moved these attributes to fields and updated my advanced > > search code to use conditions. > > > I still can't make Passenger happy in development mode even when > > everything is running as the same user and the path is right. At least > > I'm pretty sure they are. > > > My config/sphinx.yml for dev: > > > development: > > morphology: stem_en > > max_matches: 100000 > > bin_path: /usr/local/bin > > > -Dave > > > On Aug 27, 8:51 am, Pat Allan <[email protected]> wrote: > >> Hmm, it could be a bug. > > >> Sphinx can update some attributes (integers, timestamps, booleans) - > >> and so if you only change columns that are tied to those types of > >> attributes, Thinking Sphinx will not invoke thedeltaindexing. > > >> However, if there are any associations used, or manual SQL, then > >>delta > >> indexing should always be fired. And given that it works via script/ > >> console, then that suggests to me that there's nothing wrong with > >> that > >> code. > > >> Which doesn't really help. > > >> -- > >> Pat > > >> On 27/08/2009, at 1:36 PM, gobigdave wrote: > > >>> FYI, I verified that when Workling/Starling are running in async > >>> mode > >>> mydeltaindexes are being properly updated. What is strange is that > >>> the workling, httpd, and searchd processes are all running with the > >>> same user. I've also verified the path several times, but I will > >>> do so > >>> again. Very strange... > > >>> Also, I moved the state, country, and area_code attributes to > >>> indexes, > >>> and now updates to the object properly cause thedeltaindex to be > >>> updated. Looking at the thinking_sphinx code it seems that attribute > >>> updates should have caused deltas to be updated, but I'm thinking > >>> that > >>> it may not work with calculated attributes. > > >>> On Aug 26, 11:31 pm, gobigdave <[email protected]> wrote: > >>>> I have two issues withdeltaindexes. First, I can not get them to > >>>> update from my dev browser. I do use Passenger even in development, > >>>> but I verified that searchd and apache(httpd) are running as the > >>>> same > >>>> user. I also have bin_path set in my sphinx.yml file. If I add new > >>>> items from my console, then I can search for the new records fine. > >>>> Even when adding records from my browser, my log file has: > > >>>> WorklingDeltaWorker#index: > >>>> {:delta_index_name > >>>> = > > >>>> "person_delta > >>>> ", :uid > >>>> = > > >>>> "workling_delta_workers:index:d9ba9a4bbec22daca144db294206d7b2 > >>>> ", :core_index_name=>"person_core", :document_id=>242557} > >>>> ThinkingSphinx::Search.search_for_id is deprecated. Please use > >>>> ThinkingSphinx.search_for_id instead. > >>>> Querying Sphinx: > > >>>> Any other ideas on what I can check? > > >>>> Two classes for reference: > > >>>> class WorklingDelta < ThinkingSphinx::Deltas::DefaultDelta > > >>>> def index(model, instance = nil) > >>>> return true unless ThinkingSphinx.updates_enabled? && > >>>> ThinkingSphinx.deltas_enabled? > >>>> return true if instance && !toggled(instance) > > >>>> doc_id = instance ? instance.sphinx_document_id : nil > >>>> WorklingDeltaWorker.asynch_index(:delta_index_name => > >>>> delta_index_name(model), :core_index_name => core_index_name > >>>> (model), :document_id => doc_id) > > >>>> return true > >>>> end > > >>>> end > > >>>> class WorklingDeltaWorker < Workling::Base > > >>>> def index(options = {}) > >>>> logger.info("WorklingDeltaWorker#index: #{options.inspect}") > >>>> ThinkingSphinx::Deltas::DeltaJob.new(options > >>>> [:delta_index_name]).perform > >>>> if options[:document_id] > >>>> ThinkingSphinx::Deltas::FlagAsDeletedJob.new(options > >>>> [:core_index_name], options[:document_id]).perform > >>>> end > > >>>> return true > >>>> end > > >>>> end > > >>>> If you are not familiar with workling, it allows for simple async > >>>> processing. In development mode, however, everything is executed > >>>> synchronously. > > >>>> The secondissueis that the index does not update when I change an > >>>> attribute. Here is some of my index: > > >>>> define_index do > > >>>> indexes first_name, last_name, :sortable => true > >>>> indexes [title, title1], :as => :title, :sortable => true > >>>> indexes description > > >>>> has "CRC32(people.state)", :as => :state, :type => :integer > >>>> has "CRC32(people.country)", :as => :country, :type => :integer > >>>> has "CRC32(people.area_code)", :as => :area_code, :type > >>>> => :integer > > >>>> set_property :delta=> WorklingDelta > >>>> end > > >>>> When I create a new record from the console, I see the following: > > >>>> using config file '/Users/dave/projects/msc/config/ > >>>> development.sphinx.conf'... > >>>> indexing index 'person_delta'... > >>>> collected 1 docs, 0.0 MB > >>>> collected 0 attr values > >>>> sorted 0.0 Mvalues, 100.0% done > >>>> sorted 0.0 Mhits, 100.0% done > >>>> total 1 docs, 12 bytes > >>>> total 0.235 sec, 51.03 bytes/sec, 4.25 docs/sec > >>>> rotating indices: succesfully sent SIGHUP to searchd (pid=32480). > >>>> => true > > >>>> However, if I update the state, country, or area_code, then nothing > >>>> is > >>>> output, and the index is not updated. Note, I have the state, > >>>> country, > >>>> and area_code as attributes because I want to filter on multiple > >>>> values. Is this a knownissue? Do I need to move these to indexes > >>>> and > >>>> use 'OR' searches to make this happy? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en -~----------~----~----~----~------~----~------~--~---
