Novo mecanismo de pesquisa para o Wiki

Muita gente reclama que o mecanismo de busca do Wiki é lento e, em alguns momentos, apresenta resultados inconsistentes.

O Wiki utilizado na Globo.com é o TWiki, software open source que não usa banco de dados, ao contrário de outros Wikis, como o MediaWiki, usado pela Wikipedia (o site WikiMatrix permite comparar os vários softwares de Wiki disponíveis). No TWiki, cada tópico é um arquivo texto, e estes arquivos são organizados numa estrutura de diretórios, refletindo a estrutura de webs. Em função desta característica, o mecanismo de busca original executa simplesmente um grep nesses arquivos texto. Apesar da simplicidade, isto traz como principais desvantagens a lentidão e a limitação no número máximo de tópicos - que é o limite de parâmetros aceitos na linha de comando do grep.

Para otimizar a pesquisa no Wiki, foi instalado o plugin SearchEngineKinoSearchAddOn. Este plugin permite o uso da biblioteca KinoSearch, que é um port em Perl do Lucene. Este software é um indexador de documentos desenvolvido em Java, que acelera bastante a pesquisa - o trabalho mais pesado de pesquisar documento por documento é feito pelo indexador, e a pesquisa acessa diretamente o índice. O site do KinoSearch traz mais detalhes, incluindo um benchmark comparando-o com o Lucene e o Plucene (outro port do Lucene para Perl, que não é atualizado há algum tempo) e uma apresentação feita na OSCON 2006.

Através deste plugin, é executado de hora em hora um script no servidor do Wiki. Este script verifica a data de última atualização de cada web (tópicos criados, editados e excluídos). Caso esta seja mais recente que a data de última execução do indexador, o script atualiza o índice desta web. Como desvantagem, as atualizações mais recentes só aparecerão nos resultados da busca após a próxima atualização do índice.

Outra vantagem da pesquisa pelo plugin do KinoSearch é que além dos tópicos, ele também indexa os anexos. O conteúdo dos anexos nos formatos DOC, PPT, XLS, PDF, XML, TXT e HTML também é indexado, e estes são incluídos nos resultados da busca. Os resultados são ordenados por relevância, e não mais separados por web.

Uma característica da pesquisa é que as palavras são pesquisadas pelo radical, ou seja, quando é pesquisada a palavra “testes”, por exemplo, os resultados incluem as palavras “teste”, “testar” e “testando”. A sintaxe da pesquisa é semelhante à do Google: termos precedidos por “+” e “-” são respectivamente incluídos e excluídos da pesquisa. Além disso, é possível pesquisar por título, texto, autor, web, tópico e outros parâmetros específicos, e não é permitido o uso de wildcards. O tópico do KinoSearch no Wiki descreve estas opções em mais detalhes.

One Response to “Novo mecanismo de pesquisa para o Wiki”

  1. Antonio Carlos Silveira Says:

    Muito legal Garnier,

    Agora precisa dar um tapa na aparencia da página que é muito confusa ainda, mas o mecanismo melhorou bastante.

Leave a Reply