Aerik Sylvan schreef:
Wow, awesome! - you (and your employer) beat the heck out of all my good intentions to acquaint myself with the current version of Mediawiki and write code good enough for production! I can't wait to see it.
I guess money helps. As does having more free time to develop it.
Lucene doesn't allow edits, it only allows add and delete. Presumably too many deletes make the index inefficient or something. But I think all that is moot - once you've got the categories into their own table, it *should* be simple to set up another index on the same type schedule/etc. as the base search index, and point it to that table. Then, change the interface to point to Lucene instead of MySQL. I'm not familiar with Wikipedia's Lucene backend, but... It seems reasonable to assume that this is not a major endeaver.
That's kind of what I was saying: if we have some kind of searchindex <--> Lucene interface, a categorysearch <--> Lucene interface should be easy.
What's your UI for the intersections look like? That was the killer for me; I'm a weak UI guy. I'd imagine (and implemented a rough prototype years ago) that let you "browse" intersections - ie, given intersection a it would show you the set of all categories B that have documents that have category a. Ideally the most frequently used categories appear at the top :-) But I never did any performance testing for this set up, and additionally, I'm not sure how to do it in Lucene... Anyway, what's your interface like?
I'm also not much of a UI guy, but the UI for this extension was mostly imposed on me by my 'employer', and after some discussion we settled on a format where the category intersection part (it does more) is basically a text box where you can enter "Living people AND American people OR Presidents of the United States". AND takes precedence over OR, so the example would get all living Americans plus all deceased ex-Presidents. Expressions with parentheses like "Living people AND (American people OR Canadian people)" aren't supported yet, but can be emulated with "Living people AND American people OR Living people AND Canadian people" (more complex expressions will probably be impossible to emulate that way, and of course the extension should really support parentheses, I'm working on that).
Anyway, you'll be able to play around with it around the beginning of next week, probably.
Roan Kattouw (Catrope)