Mediawiki Search Engine

Recentemente realizei a instalação de um sistema de ajuda/knowledge base rodando com base em Mediawiki e MySQL, porém após alguns dias quando já havia muito conteúdo e diversos usuários registrados fui notificado que a pesquisa (search) não estava sendo realizada corretamente e não retornava nenhum resultado ao serem pesquisadas as palavras php e asp (que abrangem boa parte do conteúdo até o momento).

Após algum tempo pesquisando verifiquei que o sistema de busca padrão do Mediawiki é o “fulltext search”, que por padrão ignora quaisquer palavras com menos de 4 caracteres nas pesquisas.

Para contornar esta situação era necessário setar o padrão mínimo de caracteres para 3 diretamente no banco de dados através do próprio my.cnf setando a variável “ft_min_word_len” para o valor desejado e reiniciando o serviço do MySQL:

[mysqld]

ft_min_word_len=3

E após a alteração do banco de dados é necessário recriar os índices de pesquisa do Mediawiki para utilizar o novo padrão, para realizar esta operação entre com a seguinte query em sua base de dados:

REPAIR TABLE searchindex QUICK;

Lembrando que a tabela searchindex pode ter o nome diferente dependendo do prefixo utilizado durante a instalação do mediawiki / criação da base de dados, por exemplo, se meu prefix é “wiki_” a minha tabela terá o nome “wiki_searchindex”.

Maiores informações de fulltext search na documentação oficial do MySQL

Lembrando que existem diversas engines que aprimoram o sistema de busca do Mediawiki, como Lucene-search e Sphinx, se seu sistema de wiki for relativamente grande ou complexo recomendo dar uma olhada…

Share and Enjoy:
  • email
  • Facebook
  • del.icio.us
  • Google Bookmarks
  • Yahoo! Bookmarks
  • LinkedIn
  • Twitter
  • Digg
  • Slashdot
  • Technorati
  • Identi.ca
  • Live

Leave a Reply