I updated the plugin this morning, and it still doesn't seem to be working. I have it set up in the manner you described above (using a has and :with). Could there be an issue with my also having a conditions hash on the query, or having a where clause in my define_index block? I don't see any indication of the locked = false in the log, but I'm not sure if that would show up at all anyways.
I also had to update using the tarball (from http://github.com/freelancing-god/thinking-sphinx/tarball/master), as when I tried to install the plugin using "script/plugin install git://github.com/freelancing-god/thinking-sphinx.git" I was getting back the error "Plugin not found: ["git://github.com/freelancing-god/ thinking-sphinx.git"]". Perhaps the tarball wasn't updated to the latest version? Simon On May 16, 10:09 pm, Pat Allan <[email protected]> wrote: > Hi Simon > > Ideally the boolean column should do the job. It depends on how recent > your version of Thinking Sphinx is though... I only made the changes > for attribute-updating two weeks ago. > > All you'll need to do is have the boolean column as an attribute: > has locked > > And then filter on that when you're making your search queries: > Model.search "words", :with => {:locked => false} > > If you did want to go down the delta path though and want to keep the > tasks asynchronous, there is the Delayed Job approach, and Workling > (written by Dan) - search around on the list for info on the > latter.http://freelancing-gods.com/posts/thinking_sphinx_delta_changes > > -- > Pat > > On 16/05/2009, at 3:05 AM, Simon wrote: > > > > > Hi Pat, > > > I'm not sure I fully understand what you mean. I have a boolean > > (tinyint(1)) column in my DB, and I could use this to indicate the > > locked entry. I have added it to my define_index block using 'has > > column'. I then tried adding a condition to both my where clause in > > the define_index block, and also within the conditions hash on my > > actual search call, but nether seem to behave as you have indicated. > > If the boolean value is updated, the search results do not change. > > Have I misunderstood what you meant? > > > I think I could also achieve what I need using Dan's suggestion, but > > if I could avoid the overhead caused by the delta indexing altogether, > > that seems like a more desireable outcome. If I do end up using the > > delta indexing, is there a way to make it an asynchronous task, so > > that it does not block on the UI rendering? > > > Thanks again, > > > Simon > > > On May 14, 8:52 pm, Pat Allan <[email protected]> wrote: > >> Hi Simon > > >> If a locked entry is indicated by a boolean attribute in the index, > >> then you shouldn't even need delta indexes. Thinking Sphinx now > >> updates attributes on the fly, given the following: > >> * The attribute is an integer, timestamp or boolean > >> * The attribute is generated from a straight database column - not a > >> manual SQL stirng > > >> If your locking is a bit complex though, then Dan's suggestion > >> about a > >> custom delta indexer is probably the better solution. > > >> Cheers > > >> -- > >> Pat > > >> On 14/05/2009, at 5:41 AM, Simon wrote: > > >>> Hi, > > >>> I have a situation where I have lots of users concurrently creating/ > >>> updating entries that I have indexed. I think I can get away with > >>> just running ts:index once an hour or so to get relatively up to > >>> date > >>> results. My issue is that users also have the option to lock > >>> entries, > >>> at which point they should not be returned by search results. If I > >>> have delta indexing enabled, this works perfectly, however it also > >>> really impacts the overall system performance, since the delta > >>> indexing is also triggered for any other new/modify operation. > > >>> What I would like to do is to be able to only trigger a delta index > >>> when an entry is locked, and not when any other create/modify > >>> operation is done. Is there a way to achieve this? The only other > >>> option I can think of is to trigger a full index task when an > >>> entry is > >>> locked, in addition to what I have scheduled in a cron job. > > >>> I have also noticed that the UI hangs when an entry is created/ > >>> modified, as the delta indexing is being done. Is there a way to > >>> push > >>> this to a background or asynchronous process so that it doesn't > >>> interfere with the UI rendering? > > >>> Thanks, > > >>> Simon --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
