Hi Pat, I faced similar situation: when I create a model, it doesn't fire delta indexing under mongrel; but *does* under script/console :)
Best, Anton On 17 сен, 23:34, Pat Allan <[email protected]> wrote: > Just to confirm (all with regards to the server), file permissions are > okay, you're not seeing any errors in the logs, and it does fire off > the delta index in script/console? > > -- > Pat > > On 17/09/2009, at 7:37 AM, baldrailers wrote: > > > > > > > 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 -~----------~----~----~----~------~----~------~--~---
