Ajuste Fino de Pesquisas Full-text no MariaDB
Infelizmente, pesquisas full-text ainda possui poucos parâmetros de ajuste, embora adicionar alguns seja de grande prioridade no TODO. Se você tiver uma distribuição fonte do MariaDB (see "Instalando uma distribuição com fontes do MariaDB"), você pode exercer maior controle sobre o comportamenteo de pesquisas full-text.
Note que o busca full-text foi cuidadosamente ajustada para a melhor busca efetiva. Mofificar o comportamento padrão irá, na maioria dos casos, apenas tornar os resultados de busca piores. Não alteren o fonte do MariaDB a menos que você saiba o que está fazendo!
A descrição das variáveis full-text na lista a seguir devem ser configuradas no servidor na inicialização. Você não pode modificá-los dinamicamente enquanto o servidor estiver em execução.
- O tamanho mínimo de palavras a serem indexadas é definido pela variavel
ft_min_word_len
do MariaDB. Leia "SHOW VARIABLES
".(Esta variável só está disponível a partir do MariaDB versão 4.0.)
O valor padrão é quatro caracteres. Altere-o para o valor de sua preferência e reconstrua os seus índices
FULLTEXT
. Por exemplo, se você quiser pesquisar palavras de três caracteres, você pode definir esta variável colocando a seguinte linha no arquivo de opções:[mysqld] ft_min_word_len=3
Então reinicie o servidor e reconstrua seus índices
FULLTEXT
. - A lista de palavras de parada pode ser carregada do arquivo especificado pela variável
ft_stopword_file
. Leia "SHOW VARIABLES
". Reconstrua o seu índiceFULLTEXT
depois de modificar a lista de palavras de parada. (Esta varável só está disponível a partir do MariaDB versão 4.0.10 e posterior) - O ponto inical de 50% é determinado pelo esquema de pesagem particular escolhido. Para disabilitá-lo, altere a seguinte linha em
myisam/ftdefs.h
:#define GWS_IN_USE GWS_PROB
Para:
#define GWS_IN_USE GWS_FREQ
Então recompile o MariaDB. Não há necessidade de reconstruir o índice neste caso. Note: fazendo isto você diminui em muito a habilidade do MariaDB fornecer valores de relevância adequados para a função
MATCH()
. Se você realmente precisa buscar por tais palavras comuns, seria melhor fazê-lo utilizandoIN BOOLEAN MODE
, que não observa o poonto inicial de 50%. - Algumas vezes o mantedor do mecanismo de busca gostaria de alterar os operadores usados por busca full-text boolanas. Eles são definidos pela variável
ft_boolean_syntax
. Leia "SHOW VARIABLES
". Ainda, esta variável é somente leitura; este valor está definido emmyisam/ft_static.c
.
Para mudanças full-text que exigem que você reconstrua seu índice FULLTEXT
, o modo mais fácil de fazê-lo para uma tabela MyISAM
é usar a seguinte instrução, a qual reconstroi o arquivo de índice: