User talk:Rainman

Hey Rainman, just a sponateous thank you for your work on Lucene. Searching really feels like being improved now :-) -- :Bdk: 11:03, 4 July 2007 (UTC)

How is search a page action?
I guess it isn't except in the broadest sense that it queries and operates on batches of pages (normally we think of a page action operating on a single page). You're right that that is pretty forced. I'm taking by your choice of "search" as a value that you feel it is a fundamental implementation type and not just a use case for the extension? Writing search engines is definitely a programming discipline unto itself and within MediaWiki there are specific hooks one needs to work with.

That being the case, it should remain part of the implementation taxonomy. On Template_talk:Extension we've been trying to sort out the distinction between the two (when there is one - which there isn't always). Your contributions would be most helpful. The point is to make this code set helpful to developers. Egfrank 10:29, 18 September 2007 (UTC)


 * From the taxonomy in Template_talk:Extension I think nearest match is special page, since LuceneSearch redefines the default mysql search on Special:Search. "Page action" is a bit misleading, because it implies that it's search within a page and not whole wiki. I guess that search is a core function of any wiki, and is different from other special pages, so there is some argument to single it out, especially if there are other implementations that would fall into this type... --Rainman 20:32, 18 September 2007 (UTC) - taken from my talk page.

Thanks for your thoughts - good documentation is impossible without a partnership between those who write the code and those who like to describe it. With your permission I'd like to move my question and your response to the Template_talk:Extension talk page. In the meantime, I'll respond here.
 * page action implies "within page" - hadn't thought about it that way, but I see your point.
 * There are other extensions related to this core function, see Category:Search extensions.
 * Implementation techniques differ widely. What I've seen so far:
 * page widgets using third party off-site search engines, e.g. Extension:Google
 * page widgets using local search daemons, e.g. Extension:Hyper Estraier
 * page widgets using default search engine, e.g. Extension:Inputbox
 * special page using local search daemons, e.g. your Extension:LuceneSearch
 * special page using custom SQL query, e.g. Extension:RigorousSearch
 * subclassing and then replacing the default class via the  hook. No examples yet.
 * attaching functions to defined in . No examples yet
 * configuring the by setting  to a custom class, e.g. Extension:Wildcard search.
 * patches to core code! Extension:Multi-select Namespace Search, Extension:GoogleSiteSearch
 * Despite being a core function, documentation is poor: we don't even have a Manual:Search overview page or a Manual:Search extensions page to describe how to customize or extend it. On the other hand, because it is core, people probably look for help using that word.
 * Even though the techniques vary widely, an extension writer still needs to make a choice among the techniques. Providing examples and documenting them as a single entity still has merit. Furthermore, back-end, any decent extension needs to consider some common questions: caching, indexing (and possibly intercepting saves to do it), and, most basically, the lovely MediaWiki version dependent multi-table join that is needed to connect a page title to its current text.  Front-end, special page isn't unique to search and not all search extensions subclass special page.

So my vote would be: add it to the implementation type taxonomy in honor of it being a core function of a wiki but don't further subtype it based on details. If we had a hundreds of extensions for this core function (e.g. parser extensions) maybe we would need subtypes, but this isn't the case at present. Egfrank 09:05, 19 September 2007 (UTC)

PS Is there any page or forum where people interested in improving MediaWiki search tend to congregate?