Hi Oliver Unfortunately, I can't reproduce this - I created a test app with order and company models, with a belongs_to association, and indexes on both, including the delta index on order. All indexes fine.
If you'd like, perhaps you can send me a copy of your app, and I can try to make the issue happen on my machine? -- Pat On 29/11/2009, at 8:12 PM, karmacoma wrote: > Correction: > > I also have an index definition on my Customer model using these same > fields: account_ref, contact_name, *company_name*. > > On 29 Nov, 09:10, karmacoma <[email protected]> wrote: >> Hi Pat, >> Many thanks! I have just tried out your most recent commit, and it >> appears to have fixed my main problem of destroying records within >> the >> index. >> >> Thanks again for the pointer on my index definition; I hadn't noticed >> that. >> >> However, I am still trying to resolve the issue of rebuilding my >> indexes in development mode, with cache_classes set to true. >> If I disable these two lines in my Order index definition, everything >> works fine: >> >> indexes customer.account_ref >> indexes [customer.contact_name, customer.company_name], :as >> => :customer_name >> >> I also have an index definition on my Customer model using these same >> fields: account_ref, contact_name, customer_name. >> Disabling these fields within the Customer index definition has no >> effect either way. >> >> The only way I can get it to work is by disabling these two field >> indexes. >> The problem is that my application relies upon them, and I'm >> reluctant >> to push any changes to production that prevent me from rotating my >> indexes. >> >> Kind regards, Oliver. >> >> On 29 Nov, 01:50, Pat Allan <[email protected]> wrote: >> >>> Okay, there's been another update... >> >>> Current status: >>> -> With config.cache_classes = true >>> 1. Fixed >>> 2. Can't reproduce >>> -> With config.cache_classes = false >>> 1. Can't reproduce >>> 2. All fine. >> >>> It's possible that in fixing the nil.local_options issue, I've fixed >>> others. If you could give it a spin, that'd be great. >> >>> Also, one thing you might want to change in your index definition: >>> indexes customer.contact_name, customer.company_name, :as >>> => :customer_name >>> To: >>> indexes [customer.contact_name, customer.company_name], :as >>> => :customer_name >> >>> You were creating two fields with the same name, and I'm not sure >>> how >>> Sphinx handles that. My change combines the two columns into a >>> single >>> field called customer_name. >> >>> -- >>> Pat >> >>> On 29/11/2009, at 1:14 AM, karmacoma wrote: >> >>>> Hi, >>>> I have thinking-sphinx installed as a vendor/plugin. >> >>>> My index definition for looks like: >> >>>> === >>>> define_index do >>>> # Fields >>>> # >>>> indexes :id, :as => :order_id >>>> indexes customer.account_ref >>>> indexes customer.contact_name, customer.company_name, :as >>>> => :customer_name >>>> indexes line_items.code >>>> indexes line_items.name >> >>>> # Attributes >>>> # >>>> has :status_code >> >>>> # Properties >>>> # >>>> set_property :delta => true >>>> end >>>> === >> >>>> Here is what I have be able to establish so far. >>>> Note: I'm testing all of this in development mode. >> >>>> -> With config.cache_classes = true >> >>>> 1. If I perform a search, destroy a record within the results, re- >>>> perform the same search. >>>> I still get the same "nil.local_options" error as described in my >>>> previous email. >> >>>> 2. I am unable to rotate my indexes using rake ts:index. >> >>>> -> With config.cache_classes = false >> >>>> 1. If I perform a search, destroy a record within the results, re- >>>> perform the same search. >>>> I get a RuntimeError: "Called id for nil, which would mistakenly >>>> be 4" >> >>>> 2. I am able to rotate my indexes. >> >>>> Thanks for your efforts. >>>> Kind regards, Oliver. >> >>>> On Nov 28, 1:40 pm, Pat Allan <[email protected]> wrote: >>>>> Hmm, I can't seem to reproduce the indexing issue... >> >>>>> How do you have TS installed? (gem or plugin) And what's your >>>>> index >>>>> definition looking like in Order? >> >>>>> -- >>>>> Pat >> >>>>> On 28/11/2009, at 11:23 PM, karmacoma wrote: >> >>>>>> Hi Pat, >> >>>>>> Okay, deleting a record now works (which is great!). >>>>>> However, now I suffering a slightly different problem. >> >>>>>> If I perform a search; Destroy one of the records within the >>>>>> results; >>>>>> Then re-perform the search. >>>>>> I now get the following error: >> >>>>>> === >>>>>> "You have a nil object when you didn't expect it! >>>>>> The error occurred while evaluating nil.local_options" >>>>>> === >> >>>>>> With the stack trace leading me to: thinking-sphinx/lib/ >>>>>> thinking_sphinx/search.rb:310:in `client'. >> >>>>>> Secondly, I am unable to re-index my records, as I get the >>>>>> following >>>>>> error when I issue rake ts:index: >> >>>>>> === >>>>>> Generating Configuration to /Users/Oliver/git/greyville/config/ >>>>>> development.sphinx.conf >>>>>> Sphinx 0.9.8.1-release (r1533) >>>>>> Copyright (c) 2001-2008, Andrew Aksyonoff >> >>>>>> using config file '/Users/Oliver/git/greyville/config/ >>>>>> development.sphinx.conf'... >>>>>> ERROR: section 'order_core_0' (type='source') already exists in / >>>>>> Users/ >>>>>> Oliver/git/greyville/config/development.sphinx.conf line 75 col >>>>>> 1. >>>>>> === >> >>>>>> Kind regards, Oliver. >> >>>>>> On 28 Nov, 11:40, Pat Allan <[email protected]> wrote: >>>>>>> Hi Oliver >> >>>>>>> Can you give the latest release (1.3.7) a shot? It should fix >>>>>>> this >>>>>>> problem. >> >>>>>>> -- >>>>>>> Pat >> >>>>>>> On 28/11/2009, at 8:31 PM, karmacoma wrote: >> >>>>>>>> Hi Pat, >> >>>>>>>> I am using rails version 2.3.4. >> >>>>>>>> Starting a debugger just before: thinking-sphinx/lib/ >>>>>>>> thinking_sphinx/ >>>>>>>> active_record.rb:83 >>>>>>>> I can see the list of indexed models being gathered as script/ >>>>>>>> server >>>>>>>> boots up. >> >>>>>>>> Then if I place a breakpoint just before: vendor/plugins/ >>>>>>>> thinking- >>>>>>>> sphinx/lib/thinking_sphinx.rb:63 >>>>>>>> Upon hitting the first request, Thread.current >>>>>>>> [:thinking_sphinx_indexed_models] returns nil. >> >>>>>>>> I am using the following version of ruby in development: >>>>>>>> - ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10] >> >>>>>>>> And in production: >>>>>>>> - ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] >> >>>>>>>> Hope this helps... >> >>>>>>>> Kind regards, Oliver Beddows. >> >>>>>>>> On 28 Nov, 02:05, Pat Allan <[email protected]> wrote: >>>>>>>>> Hi Oliver >> >>>>>>>>> I'm kinda surprised by this - I thought that array was being >>>>>>>>> populated >>>>>>>>> at the beginning of each web request in the dev environment, >>>>>>>>> but >>>>>>>>> just >>>>>>>>> so I can track it down... what version of Rails are you using? >> >>>>>>>>> -- >>>>>>>>> Pat >> >>>>>>>>> On 28/11/2009, at 4:21 AM, karmacoma wrote: >> >>>>>>>>>> Hi, >>>>>>>>>> Using the latest version of thinking-sphinx (1.3.6). I am >>>>>>>>>> getting >>>>>>>>>> the >>>>>>>>>> following error: "undefined method `name' for nil:NilClass" >>>>>>>>>> when >>>>>>>>>> destroying a record. >> >>>>>>>>>> The stack trace leads me to the following file: thinking- >>>>>>>>>> sphinx/ >>>>>>>>>> lib/ >>>>>>>>>> thinking_sphinx/active_record.rb:229 >> >>>>>>>>>> def eldest_indexed_ancestor >>>>>>>>>> ancestors.reverse.detect { |ancestor| >>>>>>>>>> ThinkingSphinx.indexed_models.include?(ancestor.name) >>>>>>>>>> }.name >>>>>>>>>> end >> >>>>>>>>>> When the destroy method is called, >>>>>>>>>> "ThinkingSphinx.indexed_models" >>>>>>>>>> returns an empty array. >> >>>>>>>>>> However, according to my application it should be returning: >>>>>>>>>> ["Administrator", "Article", "Customer", "Order", "Product", >>>>>>>>>> "Representative"]. >> >>>>>>>>>> * Within production it raises the exception every time >>>>>>>>>> (obviously, >>>>>>>>>> as >>>>>>>>>> the classes are cached). >>>>>>>>>> * Within development it raises this exception on the first >>>>>>>>>> invocation, >>>>>>>>>> but works on the second attempt, and subsequent attempts. >> >>>>>>>>>> This seems to be an issue related to lazy loading? >> >>>>>>>>>> In my application I often have to delete records. So I am >>>>>>>>>> hoping >>>>>>>>>> someone can help me fix this problem. >> >>>>>>>>>> Kind regards, Oliver Beddows. >> >>>>>>>>>> -- >> >>>>>>>>>> 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 >>>>>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en >>>>>>>>>> . >> >>>>>>>> -- >> >>>>>>>> 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 >>>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en >>>>>>>> . >> >>>>>> -- >> >>>>>> 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 >>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en >>>>>> . >> >>>> -- >> >>>> 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 >>>> athttp://groups.google.com/group/thinking-sphinx?hl=en >>>> . > > -- > > 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 > . > > -- 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.
