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.


Reply via email to