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…