Yeah, I have big concerns about not making this complicated for use in production. That's a big reason I was excited about Whoosh, it's pure python like Pygments vs Enscript/Silvercity.
The multiprocessing module might be a big win, but I can't imagine you are ready to set the minimum version at 2.6. I'll experiment with threading & queues to see how that handles things. The number of different ways trac can be used in production (wsgi, cgi, fastcgi, mod_python, tracd, I'm sure I'm forgetting some) certainly makes it a more "fun" problem. On Thu, Mar 12, 2009 at 11:57 AM, Alec Thomas <[email protected]> wrote: > > 2009/3/13 Chris Mulligan <[email protected]>: > > So I've had a go of replacing the current search with Whoosh. So far it's > > actually going fairly well. > > > > I implemented some IEnvironmentSetup participants to do the setup (and > for > > upgrading an existing environment). That includes some hacky wiki and > ticket > > indexers just to get it going to start with. I've replaced the actual > search > > results logic with Whoosh, and it's working. I need to do a lot to > cleanup > > with how the results are actually displayed so we get the nice summaries. > > > > However my question is really a structural one. I see Alec's stream of > > conciousness suggestion on Advanced Search and basically like the > concept. > > However it feels like there's an extra layer. WikiIndexer basically acts > as > > a WikiChange -> SearchUpdate bridge. It seems like that function would > > basically be copied and pasted into all parts of the system that used it, > > and if part of the goal is to make search more universal (attachments, > repo, > > milestones, plugins) it seems like an unfreindly burden on the component > > authors. > > I don't have a solution for this particular problem, though it sounds > vaguely like the general TracObjects scheme. I don't think there's any > real way around it with Trac as it stands. > > For the indexing itself though, I think a separate indexing process > would probably be preferable to indexing in a Trac thread, even if the > thread isn't the request thread itself. A message queue of some > description might be one approach, with the Trac processes pushing > references to the objects needing indexing onto the queue, and the > indexer pulling them off as it processes. This would allow indexing to > be completely asynchronous. But of course, this requires extra setup, > and so on. > > > I don't, however, have a much better suggestion. The only idea would be > to > > stick the SearchUpdate call into the actual wiki/whatever code, and that > > seems to violate the general trac style. > > > > On Wed, Mar 4, 2009 at 8:02 PM, Alec Thomas <[email protected]> wrote: > >> > >> I think it's a great idea. > >> > >> Some discussion has already been had on this subject: > >> http://trac.edgewall.org/wiki/AdvancedSearch > >> http://trac.edgewall.org/wiki/SearchRefactoring > >> > >> Implementing a Woosh-specific search shouldn't be too difficult. > >> Implement a bunch of XChangeListeners, update index, profit. > >> > >> Integrating a new search system in a general-purpose manner into the > >> core, would be great, but probably quite a bit more work to get it > >> right. > >> > >> 2009/3/5 Chris Mulligan <[email protected]>: > >> > Hey Devs, > >> > > >> > I'm sure many of you have heard of this new search library, Woosh > >> > http://whoosh.ca/. It's a pure python search library, and has > received > >> > some > >> > major thumbs up from some of the developers around here. I'm curious > if > >> > anyone has looked into implementing woosh (or another similar search > >> > library > >> > like Lucene) for Trac? > >> > > >> > This is motivated entirely by a local need. As our primary internal > >> > tracs > >> > grow (thousands of tickets and wiki pages) it's becoming harder and > >> > harder > >> > for users to find already existing content. They end up making lots of > >> > dupes, making the problem even worse the next time. > >> > > >> > Thanks, > >> > Chris > >> > > >> > > > >> > > >> > >> > >> > >> -- > >> "Life? Don't talk to me about life." - Marvin > >> > >> > > > > > > > > > > > > > -- > "Life? Don't talk to me about life." - Marvin > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Development" 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/trac-dev?hl=en -~----------~----~----~----~------~----~------~--~---
