Antipas,
Buscar esporte ou qualquer outro assunto cai numa vala comum: é necessário alguma heurística para filtrar o conteúdo, o resto é tudo a mesma coisa.
Infelizmente, o Google não divulga o seu código fonte 
O que pode ser feito na prática é juntar alguns pedaços de uma lib e outra e montar o seu próprio ‘Frankenstein’.
O mais próximo de um sistema desse tipo completo, talvez seja o websphyinx.
No parsing de páginas alguma coisa pode ser tirada do Lucene. Talvez vc tenha que fazer a classe stemmer em Português…
Na aranha de busca na internet, pode ser aproveitado o código em Acme.spider, que é bem simples.
No banco de dados não-relacional (IMHO um banco de dados mundial está além da capacidade do MySQL) eu sugiro uma solução customizada onde os primeiros N caracteres de uma palavra-chave estão armazenados numa árvore de diretório derivada diretamente dela. Exemplificando:
palavra-chave: portaljava
caminho: /pesquisa/p/o/r/t/a/l/java.dat
O arquivo java.dat por sua vez seria uma BTree (não confunda com bynary tree).
O uso de compactação de dados é uma necessidade básica, tanto para economizar espaço em disco quanto para acelerar a busca.
Como a serialização de Java é um pouco prolixa, talvez uma parte do código tenha que ser feito em C para economizar espaço em disco.
Esta árvore pode facilmente ser particionada em múltiplos hosts.
Boa sorte.
T+