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 cause delta index update.
>
> person = Person.new
> person.last_name = "Smith"
> person.save # caused delta index
> person.area_code = "617" # assume you have has CRC32("area_code"), :as
> => :area_code, :type => :integer
> person.save # did not cause delta index
>
> 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 the delta indexing.
>>
>> 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
>>> my delta indexes 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 the delta index 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 with delta indexes. 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 second issue is 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 known issue? 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to