during restart of the sphinx daemon i will have to take the site
offline to avoid potential problems in case destroying a models fail
because the deamon can't be contacted.


what would happpen if the delete flag is not set when a model is
destroyed? would a later search then cause errors, or simply return
empty records that could be filtered out?

what would happen if the delta index is not updated when a model is
changed? nothing except search results would be a bit out of date,
right? as soon as the db is reindexed, things would be fine again?

i'm considering patching my copy of ts so i would get get warnings
(perhaps by email) instead of exceptions if the search daemon can't be
reached when deleting/changing models.




On Oct 18, 4:41 pm, Pat Allan <[EMAIL PROTECTED]> wrote:
> That's correct - any change of structure (as opposed to data) requires  
> Sphinx to be restarted.
>
> --
> Pat
>
> On 17/10/2008, at 12:51 AM,EmilTin wrote:
>
>
>
> > hi pat,
> > thanks you for reply.
> > i trust that the daemon is very stable, but as far as i understood it,
> > whenever i change the define_index'es i have to stop, reconfigure,
> > reindex and restart sphinx?
>
> > On Oct 16, 6:13 am, Pat Allan <[EMAIL PROTECTED]> wrote:
> >> HiEmil
>
> >> Thinking Sphinx doesn't just talk to Sphinx to get deltas indexed.  
> >> For
> >> example, when a model instance is destroyed, the following things
> >> happen:
>
> >> - Check if the instance exists in the core index
> >> - Flags it as deleted in the core index if it does
> >> - If deltas are enabled and the instance had delta set to true, flag
> >> it as deleted in the delta index
>
> >> The first two steps happen every time, whether you're using delta
> >> indexes or not. This is to make sure those deleted records don't get
> >> returned in search queries.
>
> >> And ideally, the Sphinx daemon should be running constantly. From  
> >> what
> >> I've found (and heard from others), the daemon is very stable, and
> >> rarely crashes. And when it does, that's where process tracking tools
> >> like God and Monit can be useful.
>
> >> Hope this clears things up a bit.
>
> >> --
> >> Pat
> >> e: [EMAIL PROTECTED]    || m: +614 1327 3337
> >> w:http://freelancing-gods.com|| t: twitter.com/pat
> >> discworld:http://ausdwcon.org|| skype: patallan
>
> >> On 15/10/2008, at 11:27 PM,EmilTin wrote:
>
> >>> thanks for you reply.
>
> >>> i now have sphinx running on a separate ec2 instance, and rails
> >>> accessing it. the key was to edit the production.config.sphinx  
> >>> file in
> >>> the rails config folder on the sphinx server (i deploy the rail app
> >>> folder, but don't run the app) to 0.0.0.0 isntead of the default
> >>> 127.0.0.0, to make sure it listens to all interfaces, not just the
> >>> local one.
>
> >>> destroy an indexed model will still causes an exception if the  
> >>> sphinx
> >>> server can't be reached. that's really bad, since it could mean
> >>> otherwise perfect cod breaks down in case th sphinx server is down.
> >>> it's suddently making my rails app very fragile. and there's no need
> >>> to! delta indexing is off! in any case it would be better to just
> >>> silently ignore the error, so problems are not multiplied. it's much
> >>> worse to have a destroy() call fail than failing to update a non-
> >>> existing delta search index.
>
> >>> On Oct 15, 10:06 am, Pat Allan <[EMAIL PROTECTED]> wrote:
> >>>> HiEmil
>
> >>>> Sorry there's not been a reply to this, but I think the short  
> >>>> answer
> >>>> is: no, there's no easy way to do this. You could overwrite some
> >>>> methods or something like that, but it's definitely a hackish
> >>>> solution, and would be best just to focus on getting the  
> >>>> environment
> >>>> working correctly so this is no longer an issue.
>
> >>>> Sorry, I realise that's not really all that helpful. And I've never
> >>>> tried EC2, let alone getting Sphinx running on it.
>
> >>>> --
> >>>> Pat
>
> >>>> On 08/10/2008, at 4:59 PM,EmilTin wrote:
>
> >>>>> The problem is this: whenever the sphinx server is down, not only
> >>>>> the
> >>>>> search page stops working. Every page that tries to delete a model
> >>>>> will fail. This is a problem while I'm trying to get the sphinx
> >>>>> server
> >>>>> up running. I still haven't managed to make TS contact the sphinx
> >>>>> server running on a separate EC2 instance.
>
> >>>>> Is there anyway to stop TS from trying to change the  
> >>>>> sphinx_deleted
> >>>>> attribute? (Even just temporarily?)
>
> >>>>> On Oct 7, 10:18 am, Pat Allan <[EMAIL PROTECTED]> wrote:
> >>>>>> HiEmil
>
> >>>>>> Sphinx can update _attributes_ in indexes (but not fields - hence
> >>>>>> why
> >>>>>> some people use delta indexes) - and there's an attribute,
> >>>>>> created by
> >>>>>> Thinking Sphinx, called sphinx_deleted. This gets set to true
> >>>>>> when a
> >>>>>> model is deleted, so it won't get returned in future results
> >>>>>> (otherwise pagination counts are inaccurate).
>
> >>>>>> Cheers
>
> >>>>>> --
> >>>>>> Pat
>
> >>>>>> On 06/10/2008, at 9:12 PM,EmilTin wrote:
>
> >>>>>>> Hi!
>
> >>>>>>> I'm gettting the error 'Connection to Sphinx Daemon (searchd)
> >>>>>>> failed'
> >>>>>>> whenever I try to delete any of my indexed models.
>
> >>>>>>> It's true that the sphinx server is not running. But delta
> >>>>>>> indexing is
> >>>>>>> not turned on, so why would TS try to connect to the sphinx  
> >>>>>>> server
> >>>>>>> when destroying a model?
>
> >>>>>>> none of my models include :delta => true. They only contain
> >>>>>>> trivial
> >>>>>>> things like:
>
> >>>>>>> define_index do
> >>>>>>>   indexes :name
> >>>>>>>   indexes :description
> >>>>>>> end
>
> >>>>>>> trace:
> >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:
> >>>>>>> 231:in
> >>>>>>> `search_for_id'
> >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/
> >>>>>>> active_record/
> >>>>>>> search.rb:43:in `search_for_id'
> >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/
> >>>>>>> active_record.rb:
> >>>>>>> 121:in `in_core_index?'
> >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/
> >>>>>>> active_record.rb:
> >>>>>>> 137:in `toggle_deleted'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:
> >>>>>>> 173:in
> >>>>>>> `send'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:
> >>>>>>> 173:in
> >>>>>>> `evaluate_method'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:
> >>>>>>> 161:in
> >>>>>>> `call'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:93:in
> >>>>>>> `run'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in
> >>>>>>> `each'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in
> >>>>>>> `send'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:92:in
> >>>>>>> `run'
> >>>>>>> vendor/rails/activesupport/lib/active_support/callbacks.rb:
> >>>>>>> 272:in
> >>>>>>> `run_callbacks'
> >>>>>>> vendor/rails/activerecord/lib/active_record/callbacks.rb:298:in
> >>>>>>> `callback'
> >>>>>>> vendor/rails/activerecord/lib/active_record/callbacks.rb:290:in
> >>>>>>> `destroy_without_transactions'
> >>>>>>> vendor/rails/activerecord/lib/active_record/transactions.rb:
> >>>>>>> 102:in
> >>>>>>> `destroy_without_after_commit_callback'
> >>>>>>> vendor/rails/activerecord/lib/active_record/connection_adapters/
> >>>>>>> abstract/database_statements.rb:66:in `transaction'
> >>>>>>> vendor/rails/activerecord/lib/active_record/transactions.rb:
> >>>>>>> 79:in
> >>>>>>> `transaction'
> >>>>>>> vendor/rails/activerecord/lib/active_record/transactions.rb:
> >>>>>>> 98:in
> >>>>>>> `transaction'
> >>>>>>> vendor/rails/activerecord/lib/active_record/transactions.rb:
> >>>>>>> 102:in
> >>>>>>> `destroy_without_after_commit_callback'
> >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/
> >>>>>>> active_record/
> >>>>>>> delta.rb:58:in `destroy'
> >>>>>>> app/controllers/bands_controller.rb:236:in `destroy'
--~--~---------~--~----~------------~-------~--~----~
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