7.5.1 Web Searches

It’s, like, too neat to search the Usenet for articles that match a string, but it, like, totally sucks, like, totally, to use one of those, like, Web browsers, and you, like, have to, rilly, like, look at the commercials, so, like, with Gnus you can do rad, rilly, searches without having to use a browser.

The nnweb back end allows an easy interface to the mighty search engine. You create an nnweb group, enter a search pattern, and then enter the group and read the articles like you would any normal group. The G w command in the group buffer (see Foreign Groups) will do this in an easy-to-use fashion.

nnweb groups don’t really lend themselves to being solid groups—they have a very fleeting idea of article numbers. In fact, each time you enter an nnweb group (not even changing the search pattern), you are likely to get the articles ordered in a different manner. Not even using duplicate suppression (see Duplicate Suppression) will help, since nnweb doesn’t even know the Message-ID of the articles before reading them using some search engines (Google, for instance). The only possible way to keep track of which articles you’ve read is by scoring on the Date header—mark all articles posted before the last date you read the group as read.

If the search engine changes its output substantially, nnweb won’t be able to parse it and will fail. One could hardly fault the Web providers if they were to do this—their raison d’ĂȘtre is to make money off of advertisements, not to provide services to the community. Since nnweb washes the ads off all the articles, one might think that the providers might be somewhat miffed. We’ll see.

Virtual server variables:

nnweb-type

What search engine type is being used. The currently supported types are google and dejanews. Note that dejanews is an alias to google.

nnweb-search

The search string to feed to the search engine.

nnweb-max-hits

Advisory maximum number of hits per search to display. The default is 999.

nnweb-type-definition

Type-to-definition alist. This alist says what nnweb should do with the various search engine types. The following elements must be present:

article

Function to decode the article and provide something that Gnus understands.

map

Function to create an article number to message header and URL alist.

search

Function to send the search string to the search engine.

address

The address the aforementioned function should send the search string to.

id

Format string URL to fetch an article by Message-ID.